From b0a55c9b180efe5e00a80804f190d67884df1996 Mon Sep 17 00:00:00 2001 From: venashial Date: Sun, 8 May 2022 13:03:01 -0700 Subject: [PATCH] Start search page + Add i18n & generation base --- .gitignore | 3 +- theseus_gui/locales/en.json | 130 ++++ theseus_gui/package.json | 11 +- theseus_gui/pnpm-lock.yaml | 645 ++++++++++++++---- theseus_gui/scripts/generate.js | 56 ++ theseus_gui/src/components/ProjectCard.svelte | 129 ++++ theseus_gui/src/components/VerticalNav.svelte | 2 +- theseus_gui/src/layout/Sidebar.svelte | 2 +- theseus_gui/src/layout/StatusBar.svelte | 120 ++-- theseus_gui/src/routes/__layout.svelte | 18 + .../library/instance/[id]/settings.svelte | 2 +- theseus_gui/src/routes/search/__layout.svelte | 12 + theseus_gui/src/routes/search/index.svelte | 90 +++ theseus_gui/src/styles/global.postcss | 8 + theseus_gui/svelte.config.js | 10 +- theseus_gui/tsconfig.json | 2 +- 16 files changed, 1062 insertions(+), 178 deletions(-) create mode 100644 theseus_gui/locales/en.json create mode 100644 theseus_gui/scripts/generate.js create mode 100644 theseus_gui/src/components/ProjectCard.svelte create mode 100644 theseus_gui/src/routes/search/__layout.svelte create mode 100644 theseus_gui/src/routes/search/index.svelte diff --git a/.gitignore b/.gitignore index efb469d39..6d7c71f2a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ WixTools theseus_cli/launcher theseus_cli/foo .DS_Store -.pnpm-debug.log \ No newline at end of file +.pnpm-debug.log +generated/ \ No newline at end of file diff --git a/theseus_gui/locales/en.json b/theseus_gui/locales/en.json new file mode 100644 index 000000000..a0a665f82 --- /dev/null +++ b/theseus_gui/locales/en.json @@ -0,0 +1,130 @@ +{ + "pages": { + "description": "Description", + "gallery": "Gallery", + "changelog": "Changelog", + "versions": "Versions", + "settings": "Settings", + "reports": "Reports", + "moderation": "Moderation", + "notifications": "Notifications", + "about": "About", + "following": "Following", + "all": "All" + }, + "generic": { + "labels": { + "license": "License", + "project_id": "Project ID", + "project_status": "Project status" + }, + "actions": { + "edit": "Edit", + "follow": "Follow", + "unfollow": "Unfollow", + "report": "Report", + "new_project": "New project", + "download": "Download", + "save": "Save", + "cancel": "Cancel", + "discard": "Discard changes" + }, + "external": { + "github_profile": "GitHub profile", + "discord": "Discord", + "github": "GitHub", + "issues": "Issues", + "source": "Source", + "wiki": "Wiki", + "patreon": "Patreon", + "paypal": "PayPal", + "buy_me_a_coffee": "Buy Me a Coffee", + "github_sponsors": "GitHub Sponsors", + "donate": "Donate", + "kofi": "Ko-Fi" + }, + "environments": { + "label": "Environment", + "server_side": "Server side", + "client_side": "Client side", + "values": { + "required": "Required", + "unsupported": "Unsupported", + "optional": "Optional", + "unknown": "Unknown" + } + }, + "byline": "by {author}" + }, + "project": { + "types": { + "mod": { + "singular": "Mod", + "plural": "Mods", + "search": "Search mods..." + }, + "modpack": { + "singular": "Modpack", + "plural": "Modpacks", + "search": "Search modpacks..." + } + }, + "sidebar_headings": { + "external_resources": "External resources", + "featured_versions": "Featured versions", + "project_members": "Project members", + "technical_information": "Technical information" + } + }, + "status": { + "approved": "Approved", + "rejected": "Rejected", + "draft": "Draft", + "unlisted": "Unlisted", + "processing": "Under review", + "unknown": "Unknown" + }, + "release_channels": { + "release": "Release", + "beta": "Beta", + "alpha": "Alpha" + }, + "roles": { + "developer": "Developer", + "admin": "Admin", + "moderator": "Moderator" + }, + "stats": { + "joined": "Joined {ago}", + "notified": "Notified {ago}", + "downloads": "{downloads, plural, one {1 download} other {# downloads}}", + "followers_of_projects": "{followers, plural, one {1 follower of projects} other {# followers of projects}}", + "followers": "{followers, plural, one {1 follower} other {# followers}}", + "user_id": "User ID: {id}", + "created": "Created {ago}", + "updated": "Updated {ago}" + }, + "tags": { + "technology": "Technology", + "adventure": "Adventure", + "magic": "Magic", + "utility": "Utility", + "decoration": "Decoration", + "library": "Library", + "cursed": "Cursed", + "worldgen": "World generation", + "storage": "Storage", + "food": "Food", + "equipment": "Equipment", + "miscellaneous": "Miscellaneous", + "optimization": "Optimization", + "fabric": "Fabric", + "quilt": "Quilt", + "forge": "Forge", + "server": "Server", + "client": "Client", + "good": "Good", + "trash": "Trash", + "misc": "Miscellaneous" + } +} diff --git a/theseus_gui/package.json b/theseus_gui/package.json index effb7c488..1d541a10e 100644 --- a/theseus_gui/package.json +++ b/theseus_gui/package.json @@ -8,7 +8,9 @@ "build:web": "svelte-kit build", "test": "cargo ../test --manifest-path ./src-tauri/Cargo.toml", "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. src", - "check": "cargo check --manifest-path src-tauri/Cargo.toml && svelte-check --tsconfig ./tsconfig.json" + "check": "cargo check --manifest-path src-tauri/Cargo.toml && svelte-check --tsconfig ./tsconfig.json", + "generate": "node ./scripts/generate.js", + "postinstall": "pnpm generate" }, "devDependencies": { "@sveltejs/adapter-static": "next", @@ -20,22 +22,25 @@ "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", "tslib": "^2.3.1", "typescript": "~4.5.4" }, "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", "@iconify-json/heroicons-solid": "^1.1.1", "@iconify-json/lucide": "^1.1.5", "@tauri-apps/api": "^1.0.0-rc.1", - "omorphia": "0.0.17", + "omorphia": "0.0.19", + "svelte-intl-precompile": "^0.9.2", "svrollbar": "^0.10.4", "unplugin-icons": "^0.13.2" } diff --git a/theseus_gui/pnpm-lock.yaml b/theseus_gui/pnpm-lock.yaml index dd3d61c58..cd529ca6e 100644 --- a/theseus_gui/pnpm-lock.yaml +++ b/theseus_gui/pnpm-lock.yaml @@ -1,6 +1,7 @@ lockfileVersion: 5.3 specifiers: + '@babel/core': ^7.17.10 '@fontsource/inter': ^4.5.4 '@iconify-json/carbon': ^1.1.1 '@iconify-json/heroicons-outline': ^1.1.1 @@ -16,46 +17,59 @@ specifiers: eslint-config-prettier: ^8.3.0 eslint-plugin-svelte3: ^3.2.1 kill-port-process: ^3.0.1 - omorphia: 0.0.17 + node-fetch: ^3.2.4 + omorphia: 0.0.19 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.9.2 svrollbar: ^0.10.4 tslib: ^2.3.1 typescript: ~4.5.4 unplugin-icons: ^0.13.2 dependencies: + '@babel/core': 7.17.10 '@fontsource/inter': 4.5.4 '@iconify-json/carbon': 1.1.1 '@iconify-json/heroicons-outline': 1.1.1 '@iconify-json/heroicons-solid': 1.1.1 '@iconify-json/lucide': 1.1.5 '@tauri-apps/api': 1.0.0-rc.1 - omorphia: 0.0.17_svelte@3.46.4 + omorphia: 0.0.19_svelte@3.48.0 + svelte-intl-precompile: 0.9.2_svelte@3.48.0 svrollbar: 0.10.4 unplugin-icons: 0.13.2 devDependencies: '@sveltejs/adapter-static': 1.0.0-next.29 - '@sveltejs/kit': 1.0.0-next.314_svelte@3.46.4 + '@sveltejs/kit': 1.0.0-next.326_svelte@3.48.0 '@tauri-apps/cli': 1.0.0-rc.5 '@typescript-eslint/eslint-plugin': 5.12.1_78ba2542c270c83b2a80bb1c125195b6 '@typescript-eslint/parser': 5.12.1_eslint@7.32.0+typescript@4.5.5 eslint: 7.32.0 eslint-config-prettier: 8.4.0_eslint@7.32.0 - eslint-plugin-svelte3: 3.4.0_eslint@7.32.0+svelte@3.46.4 + eslint-plugin-svelte3: 3.4.0_eslint@7.32.0+svelte@3.48.0 kill-port-process: 3.0.1 + node-fetch: 3.2.4 prettier: 2.5.1 - prettier-plugin-svelte: 2.6.0_prettier@2.5.1+svelte@3.46.4 - svelte: 3.46.4 - svelte-check: 2.4.5_svelte@3.46.4 + prettier-plugin-svelte: 2.6.0_prettier@2.5.1+svelte@3.48.0 + svelte: 3.48.0 + svelte-check: 2.4.5_c41d0477867e5b4ada3cfb73a51f73fe tslib: 2.3.1 typescript: 4.5.5 packages: + /@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.10 + dev: false + /@antfu/install-pkg/0.1.0: resolution: {integrity: sha512-VaIJd3d1o7irZfK1U0nvBsHMyjkuyMP3HKYVV53z8DKyulkHKmjhhtccXO51WSPeeSHIeoJEoNOKavYpS7jkZw==} dependencies: @@ -79,10 +93,146 @@ packages: '@babel/highlight': 7.16.10 dev: true + /@babel/code-frame/7.16.7: + resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.16.10 + dev: false + + /@babel/compat-data/7.17.10: + resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/core/7.17.10: + resolution: {integrity: sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.17.10 + '@babel/helper-compilation-targets': 7.17.10_@babel+core@7.17.10 + '@babel/helper-module-transforms': 7.17.7 + '@babel/helpers': 7.17.9 + '@babel/parser': 7.17.10 + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.10 + '@babel/types': 7.17.10 + convert-source-map: 1.8.0 + debug: 4.3.3 + gensync: 1.0.0-beta.2 + json5: 2.2.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/generator/7.17.10: + resolution: {integrity: sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.10 + '@jridgewell/gen-mapping': 0.1.1 + jsesc: 2.5.2 + dev: false + + /@babel/helper-compilation-targets/7.17.10_@babel+core@7.17.10: + resolution: {integrity: sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.17.10 + '@babel/core': 7.17.10 + '@babel/helper-validator-option': 7.16.7 + browserslist: 4.20.3 + semver: 6.3.0 + dev: false + + /@babel/helper-environment-visitor/7.16.7: + resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.10 + dev: false + + /@babel/helper-function-name/7.17.9: + resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/types': 7.17.10 + dev: false + + /@babel/helper-hoist-variables/7.16.7: + resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.10 + dev: false + + /@babel/helper-module-imports/7.16.7: + resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.10 + dev: false + + /@babel/helper-module-transforms/7.17.7: + resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-module-imports': 7.16.7 + '@babel/helper-simple-access': 7.17.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/helper-validator-identifier': 7.16.7 + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.10 + '@babel/types': 7.17.10 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-plugin-utils/7.16.7: + resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-simple-access/7.17.7: + resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.10 + dev: false + + /@babel/helper-split-export-declaration/7.16.7: + resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.17.10 + dev: false + /@babel/helper-validator-identifier/7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} - dev: true + + /@babel/helper-validator-option/7.16.7: + resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/helpers/7.17.9: + resolution: {integrity: sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.16.7 + '@babel/traverse': 7.17.10 + '@babel/types': 7.17.10 + transitivePeerDependencies: + - supports-color + dev: false /@babel/highlight/7.16.10: resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} @@ -91,10 +241,50 @@ packages: '@babel/helper-validator-identifier': 7.16.7 chalk: 2.4.2 js-tokens: 4.0.0 - dev: true - /@csstools/postcss-color-function/1.0.3_postcss@8.4.12: - resolution: {integrity: sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==} + /@babel/parser/7.17.10: + resolution: {integrity: sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dev: false + + /@babel/template/7.16.7: + resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/parser': 7.17.10 + '@babel/types': 7.17.10 + dev: false + + /@babel/traverse/7.17.10: + resolution: {integrity: sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.16.7 + '@babel/generator': 7.17.10 + '@babel/helper-environment-visitor': 7.16.7 + '@babel/helper-function-name': 7.17.9 + '@babel/helper-hoist-variables': 7.16.7 + '@babel/helper-split-export-declaration': 7.16.7 + '@babel/parser': 7.17.10 + '@babel/types': 7.17.10 + debug: 4.3.3 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/types/7.17.10: + resolution: {integrity: sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.16.7 + to-fast-properties: 2.0.0 + dev: false + + /@csstools/postcss-color-function/1.1.0_postcss@8.4.12: + resolution: {integrity: sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 @@ -135,8 +325,8 @@ packages: postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-is-pseudo-class/2.0.1_postcss@8.4.12: - resolution: {integrity: sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==} + /@csstools/postcss-is-pseudo-class/2.0.2_postcss@8.4.12: + resolution: {integrity: sha512-L9h1yxXMj7KpgNzlMrw3isvHJYkikZgZE4ASwssTnGEH8tm50L6QsM9QQT5wR4/eO5mU0rN5axH7UzNxEYg5CA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 @@ -155,8 +345,8 @@ packages: postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-oklab-function/1.0.2_postcss@8.4.12: - resolution: {integrity: sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==} + /@csstools/postcss-oklab-function/1.1.0_postcss@8.4.12: + resolution: {integrity: sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 @@ -176,6 +366,25 @@ packages: postcss-value-parser: 4.2.0 dev: false + /@csstools/postcss-stepped-value-functions/1.0.0_postcss@8.4.12: + resolution: {integrity: sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: 8.4.12 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-unset-value/1.0.0_postcss@8.4.12: + resolution: {integrity: sha512-T5ZyNSw9G0x0UDFiXV40a7VjKw2b+l4G+S0sctKqxhx8cg9QtMUAGwJBVU9mHPDPoZEmwm0tEoukjl4zb9MU7Q==} + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: 8.4.12 + dev: false + /@eslint/eslintrc/0.4.3: resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -197,6 +406,34 @@ packages: resolution: {integrity: sha512-D0icTFpt9bWvB/OEXMztYf0bhUQZoDIYpsco5C7GVfxgKDRl8Jdn3N2aHHQqwjgRUUvRuyMv8HrRM8Hrt4U52w==} dev: false + /@formatjs/ecma402-abstract/1.11.4: + resolution: {integrity: sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==} + dependencies: + '@formatjs/intl-localematcher': 0.2.25 + tslib: 2.3.1 + dev: false + + /@formatjs/icu-messageformat-parser/2.1.0: + resolution: {integrity: sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==} + dependencies: + '@formatjs/ecma402-abstract': 1.11.4 + '@formatjs/icu-skeleton-parser': 1.3.6 + tslib: 2.3.1 + dev: false + + /@formatjs/icu-skeleton-parser/1.3.6: + resolution: {integrity: sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==} + dependencies: + '@formatjs/ecma402-abstract': 1.11.4 + tslib: 2.3.1 + dev: false + + /@formatjs/intl-localematcher/0.2.25: + resolution: {integrity: sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==} + dependencies: + tslib: 2.3.1 + dev: false + /@humanwhocodes/config-array/0.5.0: resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} engines: {node: '>=10.10.0'} @@ -218,6 +455,12 @@ packages: '@iconify/types': 1.0.12 dev: false + /@iconify-json/fa-regular/1.1.1: + resolution: {integrity: sha512-KFMX9DurKhOUpKqGlYRqlnCbcieEKo35961pnyf7NqUvHefBk1PZCU/kKbM2ib3piy8cn3V7RGvmZKq/INKGAA==} + dependencies: + '@iconify/types': 1.0.12 + dev: false + /@iconify-json/heroicons-outline/1.1.1: resolution: {integrity: sha512-Jy/aFbNQdszRxzhBvHB2AVu/IeMcK/YG3qJVf3XeqvBvhcPq/rWFEmo7jshzBclR/wbt9ylcBEUY1qRFcCXS9Q==} dependencies: @@ -230,10 +473,10 @@ packages: '@iconify/types': 1.0.12 dev: false - /@iconify-json/lucide/1.1.13: - resolution: {integrity: sha512-HFhWH/ky3AL7vA/XQZp1ED5bSG0+5sKt3UYbVRv4oUAL5q9yqoF3DEQLv5ZSDYrJzF/v+ienlHdu/pK696xB7A==} + /@iconify-json/lucide/1.1.21: + resolution: {integrity: sha512-kvVhoUjku7bnRgWd5FaVTGHJx4KQsDtfey7hQbR30Zr7Nipkx41y3bhnjwsWthpItVAS/VoR7t8NtcghedY3Pg==} dependencies: - '@iconify/types': 1.0.12 + '@iconify/types': 1.1.0 dev: false /@iconify-json/lucide/1.1.5: @@ -246,6 +489,10 @@ packages: resolution: {integrity: sha512-6er6wSGF3hgc1JEZqiGpg21CTCjHBYOUwqLmb2Idzkjiw6ogalGP0ZMLVutCzah+0WB4yP+Zd2oVPN8jvJ+Ftg==} dev: false + /@iconify/types/1.1.0: + resolution: {integrity: sha512-Jh0llaK2LRXQoYsorIH8maClebsnzTcve+7U3rQUSnC11X4jtPnFuyatqFLvMxZ8MLG8dB4zfHsbPfuvxluONw==} + dev: false + /@iconify/utils/1.0.23: resolution: {integrity: sha512-Ktdmpe4mkMXQAnnDUz3s6s5aY/BeVPwHC1d5IhG1bgrWVNWFQNUj8cQPMbHpNCSD9MRC5yGxm9/PGPpOWGJLAg==} dependencies: @@ -259,6 +506,35 @@ packages: - supports-color dev: false + /@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.1 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: false + + /@jridgewell/resolve-uri/3.0.7: + resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array/1.1.1: + resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} + engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/sourcemap-codec/1.4.13: + resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} + dev: false + + /@jridgewell/trace-mapping/0.3.10: + resolution: {integrity: sha512-Q0YbBd6OTsXm8Y21+YUSDXupHnodNC2M4O18jtd3iwJ3+vMZNdKGols0a9G6JOK0dcJ3IdUUHoh908ZI6qhk8Q==} + dependencies: + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 + dev: false + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -277,12 +553,12 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - /@poppanator/sveltekit-svg/0.3.1_svelte@3.46.4: - resolution: {integrity: sha512-atwGnEYD3S18hrwvM4S55sAB2EKzbvLPVBWoL9KSVqPgbSfRvKQb6aBrA7gWOQVz3uoCwDujUvvlbxvzYxmthw==} + /@poppanator/sveltekit-svg/0.3.2_svelte@3.48.0: + resolution: {integrity: sha512-SAnp0frw2T3sPjgYEXtXUSXYGHmppJO0k1ZF/3mzW4wUOygK1N1qvLI16cPQbnnO1xx1XL72W5d85ZXzwJ2zNg==} peerDependencies: svelte: 3.x dependencies: - svelte: 3.46.4 + svelte: 3.48.0 svgo: 2.8.0 dev: false @@ -300,16 +576,17 @@ packages: tiny-glob: 0.2.9 dev: true - /@sveltejs/kit/1.0.0-next.314_svelte@3.46.4: - resolution: {integrity: sha512-EkXjEd30XO8+AydBLARxAtI6Ak8V0KFSEJ07sNsrkGq9J70sWPL7yGenhGaeq6S852XZAqeyWd6uGQZmQLR4Wg==} + /@sveltejs/kit/1.0.0-next.326_svelte@3.48.0: + resolution: {integrity: sha512-prJqmXZ2H1wmFfnMw7wDujfbkcA8vuubuqUkpVVmXhfh2+SEzQscPTNwxoE5EJxb5sywtLWEvYx3hv1gPS4Lvg==} engines: {node: '>=14.13'} hasBin: true peerDependencies: svelte: ^3.44.0 dependencies: - '@sveltejs/vite-plugin-svelte': 1.0.0-next.37_svelte@3.46.4+vite@2.9.1 + '@sveltejs/vite-plugin-svelte': 1.0.0-next.37_svelte@3.48.0+vite@2.9.1 + chokidar: 3.5.3 sade: 1.8.1 - svelte: 3.46.4 + svelte: 3.48.0 vite: 2.9.1 transitivePeerDependencies: - diff-match-patch @@ -319,7 +596,7 @@ packages: - supports-color dev: true - /@sveltejs/vite-plugin-svelte/1.0.0-next.37_svelte@3.46.4+vite@2.9.1: + /@sveltejs/vite-plugin-svelte/1.0.0-next.37_svelte@3.48.0+vite@2.9.1: resolution: {integrity: sha512-EdSXw2rXeOahNrQfMJVZxa/NxZxW1a0TiBI3s+pVxnxU14hEQtnkLtdbTFhnceu22gJpNPFSIJRcIwRBBDQIeA==} engines: {node: ^14.13.1 || >= 16} peerDependencies: @@ -334,8 +611,8 @@ packages: debug: 4.3.3 kleur: 4.1.4 magic-string: 0.25.7 - svelte: 3.46.4 - svelte-hmr: 0.14.9_svelte@3.46.4 + svelte: 3.48.0 + svelte-hmr: 0.14.9_svelte@3.48.0 vite: 2.9.1 transitivePeerDependencies: - supports-color @@ -645,7 +922,6 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -667,6 +943,10 @@ packages: sprintf-js: 1.0.3 dev: true + /argparse/2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + dev: false + /array-union/1.0.2: resolution: {integrity: sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=} engines: {node: '>=0.10.0'} @@ -693,15 +973,15 @@ packages: engines: {node: '>=8'} dev: true - /autoprefixer/10.4.4_postcss@8.4.12: - resolution: {integrity: sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==} + /autoprefixer/10.4.7_postcss@8.4.12: + resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.20.2 - caniuse-lite: 1.0.30001324 + browserslist: 4.20.3 + caniuse-lite: 1.0.30001338 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -709,6 +989,16 @@ packages: postcss-value-parser: 4.2.0 dev: false + /babel-plugin-precompile-intl/0.3.0: + resolution: {integrity: sha512-pEMIrYu7U/1pvjX6Wgw5jsYPRNx4TLKy47woBpEJjAFoVMoToRzpxS/cQRq3A7Bz8CN8cbKknCnnNOJrkdEscA==} + dependencies: + '@babel/core': 7.17.10 + '@babel/helper-plugin-utils': 7.16.7 + '@formatjs/icu-messageformat-parser': 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -732,15 +1022,15 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist/4.20.2: - resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} + /browserslist/4.20.3: + resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001324 - electron-to-chromium: 1.4.103 + caniuse-lite: 1.0.30001338 + electron-to-chromium: 1.4.137 escalade: 3.1.1 - node-releases: 2.0.2 + node-releases: 2.0.4 picocolors: 1.0.0 dev: false @@ -756,14 +1046,14 @@ packages: /caniuse-api/3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.20.2 - caniuse-lite: 1.0.30001324 + browserslist: 4.20.3 + caniuse-lite: 1.0.30001338 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: false - /caniuse-lite/1.0.30001324: - resolution: {integrity: sha512-/eYp1J6zYh1alySQB4uzYFkLmxxI8tk0kxldbNHXp8+v+rdMKdUBNjRLz7T7fz6Iox+1lIdYpc7rq6ZcXfTukg==} + /caniuse-lite/1.0.30001338: + resolution: {integrity: sha512-1gLHWyfVoRDsHieO+CaeYe7jSo/MT7D7lhaXUiwwbuR5BwQxORs0f1tAwUSQr3YbxRXJvxHM/PA5FfPQRnsPeQ==} dev: false /chalk/1.1.3: @@ -784,7 +1074,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==} @@ -812,7 +1101,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==} @@ -823,7 +1111,6 @@ packages: /color-name/1.1.3: resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -841,6 +1128,12 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: false + /cross-spawn/5.1.0: resolution: {integrity: sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=} dependencies: @@ -921,8 +1214,8 @@ packages: engines: {node: '>= 6'} dev: false - /cssdb/6.5.0: - resolution: {integrity: sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==} + /cssdb/6.6.1: + resolution: {integrity: sha512-0/nZEYfp8SFEzJkMud8NxZJsGfD7RHDJti6GRBLZptIwAzco6RTx1KgwFl4mGWsYS0ZNbCrsY9QryhQ4ldF3Mg==} dev: false /cssesc/3.0.0: @@ -997,6 +1290,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.3: resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} engines: {node: '>=6.0'} @@ -1031,35 +1329,35 @@ packages: esutils: 2.0.3 dev: true - /dom-serializer/1.3.2: - resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==} + /dom-serializer/1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: - domelementtype: 2.2.0 + domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 dev: false - /domelementtype/2.2.0: - resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} + /domelementtype/2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} dev: false /domhandler/4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} dependencies: - domelementtype: 2.2.0 + domelementtype: 2.3.0 dev: false /domutils/2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: - dom-serializer: 1.3.2 - domelementtype: 2.2.0 + dom-serializer: 1.4.1 + domelementtype: 2.3.0 domhandler: 4.3.1 dev: false - /electron-to-chromium/1.4.103: - resolution: {integrity: sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==} + /electron-to-chromium/1.4.137: + resolution: {integrity: sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==} dev: false /emoji-regex/8.0.0: @@ -1312,7 +1610,7 @@ packages: eslint: 7.32.0 dev: true - /eslint-plugin-svelte3/3.4.0_eslint@7.32.0+svelte@3.46.4: + /eslint-plugin-svelte3/3.4.0_eslint@7.32.0+svelte@3.48.0: resolution: {integrity: sha512-MIQUTuRv3o7LyQ+360qOc9mLT35j1I5YzHr04g/UDcvJTpg0X/kHWELY99ve869Rp/9wjqD7I26Aq5H8OH5RIg==} engines: {node: '>=10'} peerDependencies: @@ -1320,7 +1618,7 @@ packages: svelte: ^3.2.0 dependencies: eslint: 7.32.0 - svelte: 3.46.4 + svelte: 3.48.0 dev: true /eslint-scope/5.1.1: @@ -1519,6 +1817,14 @@ packages: dependencies: reusify: 1.0.4 + /fetch-blob/3.1.5: + resolution: {integrity: sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==} + 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} @@ -1552,6 +1858,13 @@ packages: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} dev: true + /formdata-polyfill/4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: 3.1.5 + dev: true + /fraction.js/4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: false @@ -1573,6 +1886,11 @@ packages: resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} dev: true + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: false + /get-stream/3.0.0: resolution: {integrity: sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=} engines: {node: '>=4'} @@ -1603,6 +1921,11 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: false + /globals/13.12.1: resolution: {integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==} engines: {node: '>=8'} @@ -1660,7 +1983,6 @@ packages: /has-flag/3.0.0: resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} engines: {node: '>=4'} - dev: true /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -1678,8 +2000,8 @@ packages: hasBin: true dev: false - /highlight.js/11.5.0: - resolution: {integrity: sha512-SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw==} + /highlight.js/11.5.1: + resolution: {integrity: sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==} engines: {node: '>=12.0.0'} dev: false @@ -1776,7 +2098,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==} @@ -1786,6 +2107,19 @@ packages: esprima: 4.0.1 dev: true + /js-yaml/4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: false + /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -1798,6 +2132,12 @@ packages: resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} dev: true + /json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + engines: {node: '>=6'} + hasBin: true + dev: false + /kill-port-process/3.0.1: resolution: {integrity: sha512-WAmjirZm4sL6Ooprf3AOQuwGHa83jMwsGPRl3qwbOswzP7OzUGI/Z76n/1gVfe2RUJXZmgo5Bf0VFLID0mk0hQ==} engines: {node: '>=10'} @@ -1881,8 +2221,8 @@ packages: sourcemap-codec: 1.4.8 dev: true - /marked/4.0.12: - resolution: {integrity: sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==} + /marked/4.0.15: + resolution: {integrity: sha512-esX5lPdTfG4p8LDkv+obbRCyOKzB+820ZZyMOXJZygZBHrH9b3xXR64X4kT3sPe9Nx8qQXbmcz6kFSMt4Nfk6Q==} engines: {node: '>= 12'} hasBin: true dev: false @@ -1949,8 +2289,22 @@ packages: resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} dev: true - /node-releases/2.0.2: - resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} + /node-domexception/1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + dev: true + + /node-fetch/3.2.4: + resolution: {integrity: sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: 4.0.0 + fetch-blob: 3.1.5 + formdata-polyfill: 4.0.10 + dev: true + + /node-releases/2.0.4: + resolution: {integrity: sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==} dev: false /normalize-path/3.0.0: @@ -1992,19 +2346,20 @@ packages: engines: {node: '>=0.10.0'} dev: false - /omorphia/0.0.17_svelte@3.46.4: - resolution: {integrity: sha512-MeOhG4VT7GHt/rNB37Fj2YSkVV813ZMgjImOtPilwxE9NNyJp220JU5Cy4/BxCRpdF2GOuokZPPIK+RO6mWRYA==} + /omorphia/0.0.19_svelte@3.48.0: + resolution: {integrity: sha512-RhMkSRIEwadsQFOh4FPMKwRAepjZuEMrNQU4XYvWbYXLj3GRhhYcLqJMvE6VC8Um62GHhennY+VuBdpU3Q4Kcw==} dependencies: '@iconify-json/carbon': 1.1.1 + '@iconify-json/fa-regular': 1.1.1 '@iconify-json/heroicons-outline': 1.1.1 '@iconify-json/heroicons-solid': 1.1.1 - '@iconify-json/lucide': 1.1.13 - '@poppanator/sveltekit-svg': 0.3.1_svelte@3.46.4 - autoprefixer: 10.4.4_postcss@8.4.12 + '@iconify-json/lucide': 1.1.21 + '@poppanator/sveltekit-svg': 0.3.2_svelte@3.48.0 + autoprefixer: 10.4.7_postcss@8.4.12 cssnano: 5.1.7_postcss@8.4.12 - highlight.js: 11.5.0 + highlight.js: 11.5.1 insane: 2.6.2 - marked: 4.0.12 + marked: 4.0.15 postcss: 8.4.12 postcss-easy-import: 4.0.0_postcss@8.4.12 postcss-extend-rule: 4.0.0_postcss@8.4.12 @@ -2012,11 +2367,11 @@ packages: postcss-import-ext-glob: 2.0.1_postcss@8.4.12 postcss-load-config: 3.1.4_postcss@8.4.12 postcss-nested: 5.0.6_postcss@8.4.12 - postcss-preset-env: 7.4.3_postcss@8.4.12 + postcss-preset-env: 7.5.0_postcss@8.4.12 postcss-pxtorem: 6.0.0_postcss@8.4.12 postcss-strip-inline-comments: 0.1.5 sanitize.css: 13.0.0 - svelte-tiny-virtual-list: 2.0.1 + svelte-tiny-virtual-list: 2.0.3 svelte-use-click-outside: 1.0.0 throttle-debounce: 3.0.1 unplugin-icons: 0.13.4 @@ -2105,6 +2460,11 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-starts-with/2.0.0: + resolution: {integrity: sha512-3UHTHbJz5+NLkPafFR+2ycJOjoc4WV2e9qCZCnm71zHiWaFrm1XniLVTkZXvaRgxr1xFh9JsTdicpH2yM03nLA==} + engines: {node: '>=8'} + dev: false + /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -2211,7 +2571,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 caniuse-api: 3.0.0 colord: 2.9.2 postcss: 8.4.12 @@ -2237,8 +2597,8 @@ packages: postcss: 8.4.12 dev: false - /postcss-custom-properties/12.1.5_postcss@8.4.12: - resolution: {integrity: sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==} + /postcss-custom-properties/12.1.7_postcss@8.4.12: + resolution: {integrity: sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 @@ -2347,7 +2707,7 @@ packages: postcss: ^8.4.6 dependencies: postcss: 8.4.12 - postcss-nesting: 10.1.3_postcss@8.4.12 + postcss-nesting: 10.1.4_postcss@8.4.12 dev: false /postcss-focus-visible/6.0.4_postcss@8.4.12: @@ -2428,8 +2788,8 @@ packages: postcss: 8.4.12 dev: false - /postcss-lab-function/4.1.2_postcss@8.4.12: - resolution: {integrity: sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==} + /postcss-lab-function/4.2.0_postcss@8.4.12: + resolution: {integrity: sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 @@ -2491,7 +2851,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 caniuse-api: 3.0.0 cssnano-utils: 3.1.0_postcss@8.4.12 postcss: 8.4.12 @@ -2526,7 +2886,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 cssnano-utils: 3.1.0_postcss@8.4.12 postcss: 8.4.12 postcss-value-parser: 4.2.0 @@ -2552,8 +2912,8 @@ packages: postcss-selector-parser: 6.0.10 dev: false - /postcss-nesting/10.1.3_postcss@8.4.12: - resolution: {integrity: sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==} + /postcss-nesting/10.1.4_postcss@8.4.12: + resolution: {integrity: sha512-2ixdQ59ik/Gt1+oPHiI1kHdwEI8lLKEmui9B1nl6163ANLC+GewQn7fXMxJF2JSb4i2MKL96GU8fIiQztK4TTA==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 @@ -2627,7 +2987,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 postcss: 8.4.12 postcss-value-parser: 4.2.0 dev: false @@ -2696,26 +3056,28 @@ packages: postcss-value-parser: 4.2.0 dev: false - /postcss-preset-env/7.4.3_postcss@8.4.12: - resolution: {integrity: sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==} + /postcss-preset-env/7.5.0_postcss@8.4.12: + resolution: {integrity: sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-color-function': 1.0.3_postcss@8.4.12 + '@csstools/postcss-color-function': 1.1.0_postcss@8.4.12 '@csstools/postcss-font-format-keywords': 1.0.0_postcss@8.4.12 '@csstools/postcss-hwb-function': 1.0.0_postcss@8.4.12 '@csstools/postcss-ic-unit': 1.0.0_postcss@8.4.12 - '@csstools/postcss-is-pseudo-class': 2.0.1_postcss@8.4.12 + '@csstools/postcss-is-pseudo-class': 2.0.2_postcss@8.4.12 '@csstools/postcss-normalize-display-values': 1.0.0_postcss@8.4.12 - '@csstools/postcss-oklab-function': 1.0.2_postcss@8.4.12 + '@csstools/postcss-oklab-function': 1.1.0_postcss@8.4.12 '@csstools/postcss-progressive-custom-properties': 1.3.0_postcss@8.4.12 - autoprefixer: 10.4.4_postcss@8.4.12 - browserslist: 4.20.2 + '@csstools/postcss-stepped-value-functions': 1.0.0_postcss@8.4.12 + '@csstools/postcss-unset-value': 1.0.0_postcss@8.4.12 + autoprefixer: 10.4.7_postcss@8.4.12 + browserslist: 4.20.3 css-blank-pseudo: 3.0.3_postcss@8.4.12 css-has-pseudo: 3.0.4_postcss@8.4.12 css-prefers-color-scheme: 6.0.3_postcss@8.4.12 - cssdb: 6.5.0 + cssdb: 6.6.1 postcss: 8.4.12 postcss-attribute-case-insensitive: 5.0.0_postcss@8.4.12 postcss-clamp: 4.1.0_postcss@8.4.12 @@ -2723,7 +3085,7 @@ packages: postcss-color-hex-alpha: 8.0.3_postcss@8.4.12 postcss-color-rebeccapurple: 7.0.2_postcss@8.4.12 postcss-custom-media: 8.0.0_postcss@8.4.12 - postcss-custom-properties: 12.1.5_postcss@8.4.12 + postcss-custom-properties: 12.1.7_postcss@8.4.12 postcss-custom-selectors: 6.0.0_postcss@8.4.12 postcss-dir-pseudo-class: 6.0.4_postcss@8.4.12 postcss-double-position-gradients: 3.1.1_postcss@8.4.12 @@ -2734,22 +3096,22 @@ packages: postcss-gap-properties: 3.0.3_postcss@8.4.12 postcss-image-set-function: 4.0.6_postcss@8.4.12 postcss-initial: 4.0.1_postcss@8.4.12 - postcss-lab-function: 4.1.2_postcss@8.4.12 + postcss-lab-function: 4.2.0_postcss@8.4.12 postcss-logical: 5.0.4_postcss@8.4.12 postcss-media-minmax: 5.0.0_postcss@8.4.12 - postcss-nesting: 10.1.3_postcss@8.4.12 + postcss-nesting: 10.1.4_postcss@8.4.12 postcss-opacity-percentage: 1.1.2 postcss-overflow-shorthand: 3.0.3_postcss@8.4.12 postcss-page-break: 3.0.4_postcss@8.4.12 postcss-place: 7.0.4_postcss@8.4.12 - postcss-pseudo-class-any-link: 7.1.1_postcss@8.4.12 + postcss-pseudo-class-any-link: 7.1.3_postcss@8.4.12 postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.12 postcss-selector-not: 5.0.0_postcss@8.4.12 postcss-value-parser: 4.2.0 dev: false - /postcss-pseudo-class-any-link/7.1.1_postcss@8.4.12: - resolution: {integrity: sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==} + /postcss-pseudo-class-any-link/7.1.3_postcss@8.4.12: + resolution: {integrity: sha512-I9Yp1VV2r8xFwg/JrnAlPCcKmutv6f6Ig6/CHFPqGJiDgYXM9C+0kgLfK4KOXbKNw+63QYl4agRUB0Wi9ftUIg==} engines: {node: ^12 || ^14 || >=16} peerDependencies: postcss: ^8.4 @@ -2772,7 +3134,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 caniuse-api: 3.0.0 postcss: 8.4.12 dev: false @@ -2861,19 +3223,27 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /precompile-intl-runtime/0.5.1_svelte@3.48.0: + resolution: {integrity: sha512-/08faNpx76Ui9sxO2H/bGhKmWNcl8AMzUvH5kesAEbiUg9WTDZcxAd26bYxGuDz9eHBFTUuHCtc+x5k+UqQyLg==} + peerDependencies: + svelte: ^3.37.0 + dependencies: + svelte: 3.48.0 + dev: false + /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte/2.6.0_prettier@2.5.1+svelte@3.46.4: + /prettier-plugin-svelte/2.6.0_prettier@2.5.1+svelte@3.48.0: resolution: {integrity: sha512-NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 dependencies: prettier: 2.5.1 - svelte: 3.46.4 + svelte: 3.48.0 dev: true /prettier/2.5.1: @@ -2972,6 +3342,10 @@ packages: mri: 1.2.0 dev: true + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: false + /sander/0.5.1: resolution: {integrity: sha1-dB4kXiMfB8r7b98PEzrfohalAq0=} dependencies: @@ -2985,6 +3359,11 @@ packages: resolution: {integrity: sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==} dev: false + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: false + /semver/7.3.5: resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} engines: {node: '>=10'} @@ -3096,6 +3475,11 @@ packages: ansi-regex: 5.0.1 dev: true + /strip-bom/5.0.0: + resolution: {integrity: sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==} + engines: {node: '>=12'} + dev: false + /strip-eof/1.0.0: resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=} engines: {node: '>=0.10.0'} @@ -3124,7 +3508,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.20.2 + browserslist: 4.20.3 postcss: 8.4.12 postcss-selector-parser: 6.0.10 dev: false @@ -3146,7 +3530,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==} @@ -3159,7 +3542,7 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check/2.4.5_svelte@3.46.4: + /svelte-check/2.4.5_c41d0477867e5b4ada3cfb73a51f73fe: resolution: {integrity: sha512-nRft8BbG2wcxyCdHDZ7X43xLcvDzua3xLwq6wzHGcAF3ka3Jyhv2rvgq0+SF9NwHLMefp9C2XkM6etzsxK/cMQ==} hasBin: true peerDependencies: @@ -3172,8 +3555,8 @@ packages: picocolors: 1.0.0 sade: 1.8.1 source-map: 0.7.3 - svelte: 3.46.4 - svelte-preprocess: 4.10.3_svelte@3.46.4+typescript@4.5.5 + svelte: 3.48.0 + svelte-preprocess: 4.10.3_48f50bbfe234019669ab66f0654069eb typescript: 4.5.5 transitivePeerDependencies: - '@babel/core' @@ -3188,15 +3571,29 @@ packages: - sugarss dev: true - /svelte-hmr/0.14.9_svelte@3.46.4: + /svelte-hmr/0.14.9_svelte@3.48.0: resolution: {integrity: sha512-bKE9+4qb4sAnA+TKHiYurUl970rjA0XmlP9TEP7K/ncyWz3m81kA4HOgmlZK/7irGK7gzZlaPDI3cmf8fp/+tg==} peerDependencies: svelte: '>=3.19.0' dependencies: - svelte: 3.46.4 + svelte: 3.48.0 dev: true - /svelte-preprocess/4.10.3_svelte@3.46.4+typescript@4.5.5: + /svelte-intl-precompile/0.9.2_svelte@3.48.0: + resolution: {integrity: sha512-WvKI975WqlUB5g45d3mmViqHKwFe63UReFMLp4Hhd5Ow1YluvRe/zIAZ0lCMq28MjMa33oQvQic3OqGVGWhZdQ==} + dependencies: + babel-plugin-precompile-intl: 0.3.0 + js-yaml: 4.1.0 + json5: 2.2.1 + path-starts-with: 2.0.0 + precompile-intl-runtime: 0.5.1_svelte@3.48.0 + strip-bom: 5.0.0 + transitivePeerDependencies: + - supports-color + - svelte + dev: false + + /svelte-preprocess/4.10.3_48f50bbfe234019669ab66f0654069eb: resolution: {integrity: sha512-ttw17lJfb/dx2ZJT9sesaXT5l7mPQ9Apx1H496Kli3Hkk7orIRGpOw6rCPkRNzr6ueVPqb4vzodS5x7sBFhKHw==} engines: {node: '>= 9.11.2'} requiresBuild: true @@ -3237,26 +3634,27 @@ packages: typescript: optional: true dependencies: + '@babel/core': 7.17.10 '@types/pug': 2.0.6 '@types/sass': 1.43.1 detect-indent: 6.1.0 magic-string: 0.25.7 sorcery: 0.10.0 strip-indent: 3.0.0 - svelte: 3.46.4 + svelte: 3.48.0 typescript: 4.5.5 dev: true - /svelte-tiny-virtual-list/2.0.1: - resolution: {integrity: sha512-0X6k5cZxF9yRLfVJ1bfwQmfEMbd3OSNNM/tI9y44jYbsB/FkI2GEIKpeV5J8AQy87qFU9xnPLxxo3erQFfdC2A==} + /svelte-tiny-virtual-list/2.0.3: + resolution: {integrity: sha512-f2V8xlB+5bnsQ2w02MqQvD/vTUrVr1QLacbDU8DNVNby/YMKX8b8IOft//eJId9Wv3ATaiIpnFpRD5ojt9MYtw==} dev: false /svelte-use-click-outside/1.0.0: resolution: {integrity: sha512-tOWeMPxeIoW9RshS0WbogRhdYdbxcJV0ebkzSh1lwR7Ihl0hSZMmB4YyCHHoXJK4xcbxCCFh0AnQ1vkzGZfLVQ==} dev: false - /svelte/3.46.4: - resolution: {integrity: sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==} + /svelte/3.48.0: + resolution: {integrity: sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ==} engines: {node: '>= 8'} dev: true @@ -3305,6 +3703,11 @@ packages: globrex: 0.1.2 dev: true + /to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + dev: false + /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3317,7 +3720,6 @@ packages: /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} - dev: true /tsutils/3.21.0_typescript@4.5.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -3495,6 +3897,11 @@ packages: fsevents: 2.3.2 dev: true + /web-streams-polyfill/3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + engines: {node: '>= 8'} + dev: true + /webpack-virtual-modules/0.4.3: resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} dev: false diff --git a/theseus_gui/scripts/generate.js b/theseus_gui/scripts/generate.js new file mode 100644 index 000000000..b51f0b368 --- /dev/null +++ b/theseus_gui/scripts/generate.js @@ -0,0 +1,56 @@ +import fetch from 'node-fetch'; +import { promises as fs } from 'fs'; + +const API_URL = + process.env.VITE_API_URL || process.env?.NODE_ENV === 'development' + ? 'https://staging-api.modrinth.com/v2/' + : 'https://api.modrinth.com/v2/'; +const GENERATED_PATH = './generated/'; + +(async () => { + /* GAME VERSIONS */ + + // Fetch data + let gameVersions = await (await fetch(API_URL + 'tag/game_version')).json(); + + // Write JSON file + await fs.writeFile(GENERATED_PATH + 'gameVersions.json', JSON.stringify(gameVersions)); + + console.log('Generated gameVersions.json'); + + /* TAGS */ + + // Fetch data + let [categories, loaders, licenses, donationPlatforms] = await Promise.all([ + await (await fetch(API_URL + 'tag/category')).json(), + await (await fetch(API_URL + 'tag/loader')).json(), + await (await fetch(API_URL + 'tag/license')).json(), + await (await fetch(API_URL + 'tag/donation_platform')).json(), + ]); + + // Create single object with icons + let tagIcons = { + ...categories.reduce((a, v) => ({ ...a, [v.name]: v.icon }), {}), + ...loaders.reduce((a, v) => ({ ...a, [v.name]: v.icon }), {}), + }; + + // Add icon class + tagIcons = Object.fromEntries(Object.entries(tagIcons).map(([k, v]) => [k, v.replace(' rest); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + loaders = loaders.map(({ icon, ...rest }) => rest); + + // Set project types + const projectTypes = ['mod', 'modpack']; + + // Write JSON file + await fs.writeFile( + GENERATED_PATH + 'tags.json', + JSON.stringify({ categories, loaders, projectTypes, licenses, donationPlatforms, tagIcons }) + ); + + console.log('Generated tags.json'); +})(); diff --git a/theseus_gui/src/components/ProjectCard.svelte b/theseus_gui/src/components/ProjectCard.svelte new file mode 100644 index 000000000..03b376f26 --- /dev/null +++ b/theseus_gui/src/components/ProjectCard.svelte @@ -0,0 +1,129 @@ + + +
+ + + + +
+
+
+ {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 d68a0bfbe..e8423d778 100644 --- a/theseus_gui/src/components/VerticalNav.svelte +++ b/theseus_gui/src/components/VerticalNav.svelte @@ -20,7 +20,7 @@
{#each items as item (item.href)} - + {item.label} diff --git a/theseus_gui/src/layout/Sidebar.svelte b/theseus_gui/src/layout/Sidebar.svelte index 16483c325..c4233fa9d 100644 --- a/theseus_gui/src/layout/Sidebar.svelte +++ b/theseus_gui/src/layout/Sidebar.svelte @@ -127,7 +127,7 @@ grid-gap: 8px; :global(button) { - width: 34px; + width: 32px; } } } diff --git a/theseus_gui/src/layout/StatusBar.svelte b/theseus_gui/src/layout/StatusBar.svelte index 5e45826ee..d0b28ac8d 100644 --- a/theseus_gui/src/layout/StatusBar.svelte +++ b/theseus_gui/src/layout/StatusBar.svelte @@ -1,71 +1,91 @@
- + - + -
-
Updating 12 mods...
-
236 mods installed
-
+
+
Updating 12 mods...
+
236 mods installed
+
diff --git a/theseus_gui/src/routes/__layout.svelte b/theseus_gui/src/routes/__layout.svelte index 8080cd50a..d95f857f3 100644 --- a/theseus_gui/src/routes/__layout.svelte +++ b/theseus_gui/src/routes/__layout.svelte @@ -1,3 +1,21 @@ + +
- +
diff --git a/theseus_gui/src/routes/search/__layout.svelte b/theseus_gui/src/routes/search/__layout.svelte new file mode 100644 index 000000000..ae2f91f1d --- /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 000000000..b4b08704d --- /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 2c1d2a91a..17f64261e 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/svelte.config.js b/theseus_gui/svelte.config.js index c4156a740..8d9bc276c 100644 --- a/theseus_gui/svelte.config.js +++ b/theseus_gui/svelte.config.js @@ -1,6 +1,7 @@ import adapter from '@sveltejs/adapter-static'; import path from "path"; import { preprocess, plugins } from 'omorphia/config/svelte.config' +import precompileIntl from "svelte-intl-precompile/sveltekit-plugin"; /** @type {import('@sveltejs/kit').Config} */ const config = { @@ -12,6 +13,7 @@ const config = { vite: { plugins: [ ...plugins, + precompileIntl('locales'), ], resolve: { alias: { @@ -21,9 +23,15 @@ const config = { $lib: path.resolve('./src/lib'), $stores: path.resolve('./src/stores'), $styles: path.resolve('./src/styles'), - $generated: path.resolve('./src/generated'), + $generated: path.resolve('./generated'), }, }, + server: { + fs: { + // Allow serving files from one level up to the project root + allow: ['..', './generated/*.json'], + } + } } } }; diff --git a/theseus_gui/tsconfig.json b/theseus_gui/tsconfig.json index 6eb0e8cad..a1d1c1403 100644 --- a/theseus_gui/tsconfig.json +++ b/theseus_gui/tsconfig.json @@ -34,7 +34,7 @@ "$lib/*": ["src/lib/*"], "$stores/*": ["src/stores/*"], "$styles/*": ["src/styles/*"], - "$generated/*": ["src/generated/*"], + "$generated/*": ["generated/*"], "$lib":["src/lib"], } },