diff --git a/.gitignore b/.gitignore index 5d582f89..9115bc36 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,8 @@ theseus_gui/build/ theseus_gui/generated/ WixTools .direnv/ +.DS_Store +.pnpm-debug.log [#]*[#] diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..2d7ef645 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,12 @@ +{ + "recommendations": [ + "tauri-apps.tauri-vscode", + "vunguyentuan.vscode-css-variables", + "stylelint.vscode-stylelint", + "eamodio.gitlens", + "esbenp.prettier-vscode", + "pivaszbs.svelte-autoimport", + "svelte.svelte-vscode", + "ardenivanov.svelte-intellisense" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..d5fbd58d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,56 @@ +{ + "cssVariables.lookupFiles": [ + "**/*.postcss", + "**/node_modules/omorphia/**/*.postcss" + ], + "cssVariables.blacklistFolders": [ + "**/.git", + "**/.svn", + "**/.hg", + "**/CVS", + "**/.DS_Store", + "**/.git", + "**/bower_components", + "**/tmp", + "**/dist", + "**/tests" + ], + "gitlens.showWelcomeOnInstall": false, + "gitlens.showWhatsNewAfterUpgrades": false, + "gitlens.plusFeatures.enabled": false, + "gitlens.currentLine.enabled": false, + "gitlens.currentLine.pullRequests.enabled": false, + "gitlens.currentLine.scrollable": true, + "gitlens.codeLens.enabled": false, + "gitlens.hovers.enabled": false, + "CSSNavigation.activeCSSFileExtensions": [ + "css", + "postcss" + ], + "CSSNavigation.activeHTMLFileExtensions": [ + "html", + "svelte", + "js", + "ts" + ], + "CSSNavigation.excludeGlobPatterns": [ + "**/bower_components/**", + "**/vendor/**", + "**/coverage/**" + ], + "CSSNavigation.alwaysIncludeGlobPatterns": [ + "./theseus_gui/node_modules/omorphia/**/*.postcss" + ], + "html-css-class-completion.HTMLLanguages": [ + "html", + "svelte" + ], + "html-css-class-completion.includeGlobPattern": "**/*.{postcss,svelte}", + "html-css-class-completion.CSSLanguages": [ + "postcss", + ], + "svelte.enable-ts-plugin": true, + "svelte.ask-to-enable-ts-plugin": false, + "svelte.plugin.css.diagnostics.enable": false, + "svelte.plugin.svelte.diagnostics.enable": false, +} \ No newline at end of file diff --git a/theseus_gui/package.json b/theseus_gui/package.json index d70af806..5ac527eb 100644 --- a/theseus_gui/package.json +++ b/theseus_gui/package.json @@ -20,9 +20,10 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.1", "kill-port-process": "^3.0.1", + "node-fetch": "^3.2.4", "prettier": "^2.5.1", "prettier-plugin-svelte": "^2.5.0", - "svelte": "^3.46.0", + "svelte": "^3.48.0", "svelte-check": "^2.2.6", "svelte-intl-precompile": "^0.11.1", "tslib": "^2.3.1", @@ -31,6 +32,7 @@ }, "type": "module", "dependencies": { + "@babel/core": "^7.17.10", "@fontsource/inter": "^4.5.4", "@iconify-json/carbon": "^1.1.1", "@iconify-json/heroicons-outline": "^1.1.1", diff --git a/theseus_gui/pnpm-lock.yaml b/theseus_gui/pnpm-lock.yaml index 90d59a21..4cb9495e 100644 --- a/theseus_gui/pnpm-lock.yaml +++ b/theseus_gui/pnpm-lock.yaml @@ -1,6 +1,7 @@ lockfileVersion: 5.4 specifiers: + '@babel/core': ^7.17.10 '@fontsource/inter': ^4.5.4 '@iconify-json/carbon': ^1.1.1 '@iconify-json/heroicons-outline': ^1.1.1 @@ -17,10 +18,11 @@ specifiers: eslint-plugin-svelte3: ^3.2.1 highlight.js: 11.5.1 kill-port-process: ^3.0.1 + node-fetch: ^3.2.4 omorphia: 0.0.67 prettier: ^2.5.1 prettier-plugin-svelte: ^2.5.0 - svelte: ^3.46.0 + svelte: ^3.48.0 svelte-check: ^2.2.6 svelte-intl-precompile: ^0.11.1 svrollbar: ^0.12.0 @@ -30,6 +32,7 @@ specifiers: vite: ^3.0.0 dependencies: + '@babel/core': 7.18.9 '@fontsource/inter': 4.5.11 '@iconify-json/carbon': 1.1.7 '@iconify-json/heroicons-outline': 1.1.2 @@ -51,10 +54,11 @@ devDependencies: eslint-config-prettier: 8.5.0_eslint@7.32.0 eslint-plugin-svelte3: 3.4.1_k4rvtr32uzrs6rwp57u73ssa6q kill-port-process: 3.1.0 + node-fetch: 3.2.10 prettier: 2.7.1 prettier-plugin-svelte: 2.7.0_o3ioganyptcsrh6x4hnxvjkpqi svelte: 3.49.0 - svelte-check: 2.8.0_svelte@3.49.0 + svelte-check: 2.8.0_jm7k62256lskgsykp6r2fix7f4 svelte-intl-precompile: 0.11.1_svelte@3.49.0 tslib: 2.4.0 typescript: 4.5.5 @@ -68,7 +72,6 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.1.1 '@jridgewell/trace-mapping': 0.3.14 - dev: true /@antfu/install-pkg/0.1.0: resolution: {integrity: sha512-VaIJd3d1o7irZfK1U0nvBsHMyjkuyMP3HKYVV53z8DKyulkHKmjhhtccXO51WSPeeSHIeoJEoNOKavYpS7jkZw==} @@ -92,12 +95,10 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.18.6 - dev: true /@babel/compat-data/7.18.8: resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==} engines: {node: '>=6.9.0'} - dev: true /@babel/core/7.18.9: resolution: {integrity: sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==} @@ -120,7 +121,6 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: true /@babel/generator/7.18.9: resolution: {integrity: sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==} @@ -129,7 +129,6 @@ packages: '@babel/types': 7.18.9 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 - dev: true /@babel/helper-compilation-targets/7.18.9_@babel+core@7.18.9: resolution: {integrity: sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==} @@ -142,12 +141,10 @@ packages: '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.3 semver: 6.3.0 - dev: true /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-function-name/7.18.9: resolution: {integrity: sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==} @@ -155,21 +152,18 @@ packages: dependencies: '@babel/template': 7.18.6 '@babel/types': 7.18.9 - dev: true /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.9 - dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.9 - dev: true /@babel/helper-module-transforms/7.18.9: resolution: {integrity: sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==} @@ -185,7 +179,6 @@ packages: '@babel/types': 7.18.9 transitivePeerDependencies: - supports-color - dev: true /@babel/helper-plugin-utils/7.18.9: resolution: {integrity: sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==} @@ -197,24 +190,20 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.9 - dev: true /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.18.9 - dev: true /@babel/helper-validator-identifier/7.18.6: resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} engines: {node: '>=6.9.0'} - dev: true /@babel/helper-validator-option/7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} - dev: true /@babel/helpers/7.18.9: resolution: {integrity: sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==} @@ -225,7 +214,6 @@ packages: '@babel/types': 7.18.9 transitivePeerDependencies: - supports-color - dev: true /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -234,7 +222,6 @@ packages: '@babel/helper-validator-identifier': 7.18.6 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true /@babel/parser/7.18.9: resolution: {integrity: sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==} @@ -242,7 +229,6 @@ packages: hasBin: true dependencies: '@babel/types': 7.18.9 - dev: true /@babel/runtime/7.18.9: resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} @@ -258,7 +244,6 @@ packages: '@babel/code-frame': 7.18.6 '@babel/parser': 7.18.9 '@babel/types': 7.18.9 - dev: true /@babel/traverse/7.18.9: resolution: {integrity: sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==} @@ -276,7 +261,6 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true /@babel/types/7.18.9: resolution: {integrity: sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==} @@ -284,7 +268,6 @@ packages: dependencies: '@babel/helper-validator-identifier': 7.18.6 to-fast-properties: 2.0.0 - dev: true /@csstools/postcss-cascade-layers/1.0.5_postcss@8.4.14: resolution: {integrity: sha512-Id/9wBT7FkgFzdEpiEWrsVd4ltDxN0rI0QS0SChbeQiSuux3z21SJCRLu6h2cvCEUmaRi+VD0mHFj+GJD4GFnw==} @@ -919,7 +902,6 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@jridgewell/gen-mapping/0.3.2: resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} @@ -928,28 +910,23 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/trace-mapping': 0.3.14 - dev: true /@jridgewell/resolve-uri/3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/set-array/1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true /@jridgewell/trace-mapping/0.3.14: resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1345,7 +1322,6 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -1515,7 +1491,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1554,7 +1529,6 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -1564,7 +1538,6 @@ packages: /color-name/1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1600,7 +1573,6 @@ packages: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: safe-buffer: 5.1.2 - dev: true /cross-spawn/5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -1758,6 +1730,11 @@ packages: css-tree: 1.1.3 dev: false + /data-uri-to-buffer/4.0.0: + resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==} + engines: {node: '>= 12'} + dev: true + /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -2066,7 +2043,6 @@ packages: /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -2316,6 +2292,14 @@ packages: dependencies: reusify: 1.0.4 + /fetch-blob/3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.2.1 + dev: true + /file-entry-cache/6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2354,6 +2338,13 @@ packages: resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} dev: true + /formdata-polyfill/4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.2.0 + dev: true + /fraction.js/4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: false @@ -2382,7 +2373,6 @@ packages: /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: true /get-stream/3.0.0: resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} @@ -2435,7 +2425,6 @@ packages: /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: true /globals/13.17.0: resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} @@ -2480,7 +2469,6 @@ packages: /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -2627,7 +2615,6 @@ packages: /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true /js-yaml/3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -2647,7 +2634,6 @@ packages: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - dev: true /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -2665,7 +2651,6 @@ packages: resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} engines: {node: '>=6'} hasBin: true - dev: true /kill-port-process/3.1.0: resolution: {integrity: sha512-sVODd2xDGzN3OaLGhHcJPiaRwWK0QZc+bD5YQTo3Xgh1AUg1AZgDYDeqRI6ILg4AhWrmSpupGwQEFK1G0Sy2fw==} @@ -2877,6 +2862,11 @@ packages: resolution: {integrity: sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==} dev: false + /node-domexception/1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: true + /node-fetch/2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} @@ -2889,6 +2879,15 @@ packages: whatwg-url: 5.0.0 dev: false + /node-fetch/3.2.10: + resolution: {integrity: sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.0 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + dev: true + /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} @@ -4035,7 +4034,6 @@ packages: /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true /safe-buffer/5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -4061,7 +4059,6 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - dev: true /semver/7.3.7: resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} @@ -4242,7 +4239,6 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: true /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -4255,7 +4251,7 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check/2.8.0_svelte@3.49.0: + /svelte-check/2.8.0_jm7k62256lskgsykp6r2fix7f4: resolution: {integrity: sha512-HRL66BxffMAZusqe5I5k26mRWQ+BobGd9Rxm3onh7ZVu0nTk8YTKJ9vu3LVPjUGLU9IX7zS+jmwPVhJYdXJ8vg==} hasBin: true peerDependencies: @@ -4268,7 +4264,7 @@ packages: picocolors: 1.0.0 sade: 1.8.1 svelte: 3.49.0 - svelte-preprocess: 4.10.7_ut7ie4tqg2ygg3ru4utt6vrtaq + svelte-preprocess: 4.10.7_3efltl5pc3dgiobctbl4ejtqrm typescript: 4.5.5 transitivePeerDependencies: - '@babel/core' @@ -4306,7 +4302,7 @@ packages: - svelte dev: true - /svelte-preprocess/4.10.7_ut7ie4tqg2ygg3ru4utt6vrtaq: + /svelte-preprocess/4.10.7_3efltl5pc3dgiobctbl4ejtqrm: resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} engines: {node: '>= 9.11.2'} requiresBuild: true @@ -4347,6 +4343,7 @@ packages: typescript: optional: true dependencies: + '@babel/core': 7.18.9 '@types/pug': 2.0.6 '@types/sass': 1.43.1 detect-indent: 6.1.0 @@ -4444,7 +4441,6 @@ packages: /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - dev: true /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -4615,6 +4611,11 @@ packages: optionalDependencies: fsevents: 2.3.2 + /web-streams-polyfill/3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + dev: true + /webidl-conversions/3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false diff --git a/theseus_gui/src/components/ProjectCard.svelte b/theseus_gui/src/components/ProjectCard.svelte new file mode 100644 index 00000000..7b5626e8 --- /dev/null +++ b/theseus_gui/src/components/ProjectCard.svelte @@ -0,0 +1,130 @@ + + +
+ + + + +
+
+
+ {project.title} + {#if author} + {@html $t('generic.byline', { values: { author } })} + {/if} + + +

+ {project.description} +

+
+
+ +
+
+ +
+ {#each project.categories as category} +
+ {@html tagIcons[category] || '?'} + {$t(`tags.${category}`)} +
+ {/each} + + + + {simplify(project.downloads)} + + + + {@html $t('stats.updated', { values: { ago: ago(updated) } })} + +
+
+ + {#if !$$slots.actions}{:else} + + {/if} +
+ + diff --git a/theseus_gui/src/components/VerticalNav.svelte b/theseus_gui/src/components/VerticalNav.svelte index b8e2a1a5..ec447fa3 100644 --- a/theseus_gui/src/components/VerticalNav.svelte +++ b/theseus_gui/src/components/VerticalNav.svelte @@ -1,5 +1,5 @@
- +
diff --git a/theseus_gui/src/routes/search/__layout.svelte b/theseus_gui/src/routes/search/__layout.svelte new file mode 100644 index 00000000..ae2f91f1 --- /dev/null +++ b/theseus_gui/src/routes/search/__layout.svelte @@ -0,0 +1,12 @@ + + + diff --git a/theseus_gui/src/routes/search/index.svelte b/theseus_gui/src/routes/search/index.svelte new file mode 100644 index 00000000..b4b08704 --- /dev/null +++ b/theseus_gui/src/routes/search/index.svelte @@ -0,0 +1,90 @@ + + + + +
+
+ + +
+
+ + + + + +
+
+ +
+ {#each projects as project} + + {/each} +
+ + diff --git a/theseus_gui/src/styles/global.postcss b/theseus_gui/src/styles/global.postcss index 59166fbc..c8ea5620 100644 --- a/theseus_gui/src/styles/global.postcss +++ b/theseus_gui/src/styles/global.postcss @@ -1,5 +1,13 @@ @import 'components.postcss'; +.base { + font-size: 14px; +} + +.avatar--size-md { + --size: 64px !important; +} + .theme-dark { --status-bg: hsl(216, 5%, 29%); --sidebar-bg: hsl(216, 10%, 3%); diff --git a/theseus_gui/tsconfig.json b/theseus_gui/tsconfig.json index 4baf33ae..a1d1c140 100644 --- a/theseus_gui/tsconfig.json +++ b/theseus_gui/tsconfig.json @@ -24,17 +24,17 @@ "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, - "baseUrl": "../test/Modrinth", + "baseUrl": "./", "allowJs": true, "checkJs": true, "paths": { "$assets/*": ["src/assets/*"], "$components/*": ["src/components/*"], - "$layout/*": ["src/components/*"], + "$layout/*": ["src/layout/*"], "$lib/*": ["src/lib/*"], "$stores/*": ["src/stores/*"], "$styles/*": ["src/styles/*"], - "$generated/*": ["src/generated/*"], + "$generated/*": ["generated/*"], "$lib":["src/lib"], } }, diff --git a/theseus_gui/vite.config.js b/theseus_gui/vite.config.js index c8fac45c..ccf13da6 100644 --- a/theseus_gui/vite.config.js +++ b/theseus_gui/vite.config.js @@ -12,7 +12,8 @@ const config = { precompileIntl('locales'), Generator({ gameVersions: true, - openapi: true + openapi: true, + tags: true }) ], optimizeDeps: {