diff --git a/.npmignore b/.npmignore index 4e42a7a13..73c496441 100644 --- a/.npmignore +++ b/.npmignore @@ -26,4 +26,6 @@ postcss.config.cjs mdsvex.config.js svelte.config.js tsconfig.json -pnpm-lock.yaml \ No newline at end of file +pnpm-lock.yaml + +src/ \ No newline at end of file diff --git a/README.md b/README.md index 8ec92e88b..2970e115a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,17 @@ # Omorphia -_The Modrinth component library, in Svelte_ +_The Modrinth frontend library_ --- +Omorphia is Modrinth's component, style, and utility library for Svelte projects. It includes: + +- 🧩 Typed components which enhance HTML elements and provide a consistent UI +- 🎨 CSS classes to easily style elements with a coherent style +- 🧰 Typed utilities to solve common tasks quick and dependably +- ⚙️ Configuration for SvelteKit and PostCSS to simplify setups +- 🚚 A Rollup plugin to generate a cache of heavily used API requests and OpenAPI typ + Read the documentation at [omorphia.modrinth.com.](https://omorphia.modrinth.com) ## Developing diff --git a/docs/components/Sidebar.svelte b/docs/components/Sidebar.svelte index 6c1d87970..9ad2e5398 100644 --- a/docs/components/Sidebar.svelte +++ b/docs/components/Sidebar.svelte @@ -1,14 +1,15 @@ - - -``` - -For more information on each component, check out the pages on the sidebar navigation. - -> To get Svelte language support in your code editor, [use this list of extensions.](https://sveltesociety.dev/tools#editor-support) - -### Using icons and styles - -Follow the guides on the sidebar to learn how to use [icons](/getting-started/icons) and general concepts. +Follow the instructions on the [➜ setup page 🛠️](/setup). diff --git a/docs/routes/setup.md b/docs/routes/setup.md new file mode 100644 index 000000000..2d842cbe8 --- /dev/null +++ b/docs/routes/setup.md @@ -0,0 +1,183 @@ +--- +title: Setup +--- + +## `0.` Prerequisites + +First install the following: + +- [Node 16.x](https://docs.volta.sh/guide/getting-started) or higher +- [PNPM](https://pnpm.io/installation) (required for Modrinth projects) + +## `1.` Create a SvelteKit project + +Run the following command to create a SvelteKit project: + +```bash +pnpm create svelte +``` + +Follow the instructions to install dependencies and setup git. + +## `2.` Add Omorphia to your project + +```bash +pnpm add omorphia +``` + +## `3.` Setup translations + +Install the translations submodule: + +```bash +git submodule add https://github.com/modrinth/translations locales/ +``` + +Install `svelte-intl-precompile`: + +```bash +pnpm add svelte-intl-precompile -D +``` + +Add translations in `src/routes/__layout.svelte`: + +```html + +``` + +## `4.` Configure SvelteKit + +Add the following parts to your `svelte.config.js` file: + +```js +import adapter from '@sveltejs/adapter-auto' +import { preprocess, plugins } from 'omorphia/config/svelte' +import precompileIntl from 'svelte-intl-precompile/sveltekit-plugin' +import { Generator } from 'omorphia/plugins' +import path from 'path' + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + preprocess: [preprocess], + + kit: { + adapter: adapter(), + + alias: { + $generated: path.resolve('./generated'), + $stores: path.resolve('./src/stores'), + }, + + vite: { + plugins: [ + ...plugins, + precompileIntl('locales'), + Generator({ + gameVersions: true, + openapi: true, + // Add more if needed + }), + ], + + server: { + fs: { + allow: ['generated'], + }, + }, + }, + }, +} + +export default config +``` + +Create a `src/stores/account.ts` file with a `token` store export: + +```ts +import { writable } from 'svelte/store' + +export const token = writable('') +``` + +## `5.` Configure PostCSS + +Create a `postcss.config.cjs` file in the root of your project. + +Add the following line to that file: + +```js +module.exports = require('omorphia/config/postcss.cjs') +``` + +## `6.` Setup styles + +Import styles in `src/routes/__layout.svelte`: + +```html + +``` + +Add the `base` class and a theme to the `
` tag in `src/app.html`: + +```html + + %sveltekit.body% + +``` + +## `7.` Using Omorphia + +### Developing + +Start the development server with: + +```bash +pnpm dev +``` + +> To get Svelte language support in your code editor, [use this list of extensions.](https://sveltesociety.dev/tools#editor-support) + +### Components + +Use a component by importing from `omorphia`. For example, use the [Button component](/components/Button) like so: + +```svelte example raised + + + +``` + +### Utils + +Use a utility by importing from `omorphia/utils`. + +```svelte example raised + + +{ago(Date.now() - 100000)} +``` + +### Using icons and styles + +Follow the guides on the sidebar to learn how to use [icons](/getting-started/icons) and general concepts. diff --git a/docs/routes/getting-started/css.md b/docs/routes/usage/css.md similarity index 100% rename from docs/routes/getting-started/css.md rename to docs/routes/usage/css.md diff --git a/docs/routes/getting-started/generator.md b/docs/routes/usage/generator.md similarity index 100% rename from docs/routes/getting-started/generator.md rename to docs/routes/usage/generator.md diff --git a/docs/routes/getting-started/icons.md b/docs/routes/usage/icons.md similarity index 100% rename from docs/routes/getting-started/icons.md rename to docs/routes/usage/icons.md diff --git a/docs/routes/getting-started/illustrations.md b/docs/routes/usage/illustrations.md similarity index 100% rename from docs/routes/getting-started/illustrations.md rename to docs/routes/usage/illustrations.md diff --git a/docs/routes/getting-started/utils.md b/docs/routes/usage/utils.md similarity index 100% rename from docs/routes/getting-started/utils.md rename to docs/routes/usage/utils.md diff --git a/package.json b/package.json index 0f6dbefba..95527e01e 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "svelte-kit dev", "build": "svelte-kit build", - "package": "svelte-kit package", + "package": "svelte-kit package && merge-dirs package/src package", "preview": "svelte-kit preview", "prepare": "svelte-kit sync", "check": "svelte-check --tsconfig ./tsconfig.json", @@ -42,6 +42,8 @@ "eslint-plugin-svelte3": "^3.2.1", "mdsvex": "^0.10.5", "mdsvexamples": "^0.3.0", + "merge-dirs": "^0.2.1", + "micromatch": "^4.0.5", "nodemon": "^2.0.15", "prettier": "^2.6.2", "prettier-plugin-svelte": "^2.7.0", @@ -49,7 +51,6 @@ "svelte": "^3.48.0", "svelte-check": "^2.7.2", "svelte-intl-precompile": "^0.11.1", - "svelte-preprocess": "^4.10.1", "svelte2tsx": "^0.5.5", "tslib": "^2.3.1", "typescript": "~4.6.2" @@ -80,6 +81,7 @@ "postcss-preset-env": "^7.7.1", "postcss-pxtorem": "^6.0.0", "sanitize.css": "^13.0.0", + "svelte-preprocess": "^4.10.1", "svelte-tiny-virtual-list": "^2.0.1", "svelte-use-click-outside": "^1.0.0", "throttle-debounce": "^3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 87c1e9a6e..7bf5497b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,8 @@ specifiers: marked: ^4.0.12 mdsvex: ^0.10.5 mdsvexamples: ^0.3.0 + merge-dirs: ^0.2.1 + micromatch: ^4.0.5 nodemon: ^2.0.15 openapi-typescript: ^5.4.0 postcss: ^8.4.8 @@ -80,6 +82,7 @@ dependencies: postcss-preset-env: 7.7.1_postcss@8.4.8 postcss-pxtorem: 6.0.0_postcss@8.4.8 sanitize.css: 13.0.0 + svelte-preprocess: 4.10.4_44qe5g6fi6uxvss56imdgyaaty svelte-tiny-virtual-list: 2.0.1 svelte-use-click-outside: 1.0.0 throttle-debounce: 3.0.1 @@ -98,6 +101,8 @@ devDependencies: eslint-plugin-svelte3: 3.4.1_6wevxxng4y4ff26nzlndg2wnpa mdsvex: 0.10.5_svelte@3.48.0 mdsvexamples: 0.3.0 + merge-dirs: 0.2.1 + micromatch: 4.0.5 nodemon: 2.0.15 prettier: 2.6.2 prettier-plugin-svelte: 2.7.0_kkjbqzpydplecjtkxrgomroeru @@ -105,7 +110,6 @@ devDependencies: svelte: 3.48.0 svelte-check: 2.7.2_2pvebpkgu3ohgo43qaf5qmcxwm svelte-intl-precompile: 0.11.1_svelte@3.48.0 - svelte-preprocess: 4.10.4_44qe5g6fi6uxvss56imdgyaaty svelte2tsx: 0.5.5_c64miirrcucob5yjzfkddrmila tslib: 2.3.1 typescript: 4.6.2 @@ -150,24 +154,24 @@ packages: '@babel/highlight': 7.16.10 dev: true - /@babel/compat-data/7.17.10: - resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==} + /@babel/compat-data/7.18.5: + resolution: {integrity: sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.18.2: - resolution: {integrity: sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==} + /@babel/core/7.18.5: + resolution: {integrity: sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.16.7 '@babel/generator': 7.18.2 - '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.2 + '@babel/helper-compilation-targets': 7.18.2_@babel+core@7.18.5 '@babel/helper-module-transforms': 7.18.0 '@babel/helpers': 7.18.2 - '@babel/parser': 7.18.4 + '@babel/parser': 7.18.5 '@babel/template': 7.16.7 - '@babel/traverse': 7.18.2 + '@babel/traverse': 7.18.5 '@babel/types': 7.18.4 convert-source-map: 1.8.0 debug: 4.3.4 @@ -187,14 +191,14 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.2: + /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.5: resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.17.10 - '@babel/core': 7.18.2 + '@babel/compat-data': 7.18.5 + '@babel/core': 7.18.5 '@babel/helper-validator-option': 7.16.7 browserslist: 4.20.4 semver: 6.3.0 @@ -237,7 +241,7 @@ packages: '@babel/helper-split-export-declaration': 7.16.7 '@babel/helper-validator-identifier': 7.16.7 '@babel/template': 7.16.7 - '@babel/traverse': 7.18.2 + '@babel/traverse': 7.18.5 '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color @@ -277,7 +281,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.16.7 - '@babel/traverse': 7.18.2 + '@babel/traverse': 7.18.5 '@babel/types': 7.18.4 transitivePeerDependencies: - supports-color @@ -292,8 +296,8 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser/7.18.4: - resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==} + /@babel/parser/7.18.5: + resolution: {integrity: sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: @@ -312,12 +316,12 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 - '@babel/parser': 7.18.4 + '@babel/parser': 7.18.5 '@babel/types': 7.18.4 dev: true - /@babel/traverse/7.18.2: - resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==} + /@babel/traverse/7.18.5: + resolution: {integrity: sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 @@ -326,7 +330,7 @@ packages: '@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.18.4 + '@babel/parser': 7.18.5 '@babel/types': 7.18.4 debug: 4.3.4 globals: 11.12.0 @@ -1165,7 +1169,6 @@ packages: /@types/node/17.0.21: resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} - dev: true /@types/offscreencanvas/2019.6.4: resolution: {integrity: sha512-u8SAgdZ8ROtkTF+mfZGOscl0or6BSj9A4g37e6nvxDc+YB/oDut0wHkK2PBBiC2bNR8TS0CPV+1gAk4fNisr1Q==} @@ -1173,7 +1176,6 @@ packages: /@types/pug/2.0.6: resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} - dev: true /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} @@ -1191,7 +1193,6 @@ packages: resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} dependencies: '@types/node': 17.0.21 - dev: true /@types/throttle-debounce/2.1.0: resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} @@ -1392,15 +1393,24 @@ packages: engines: {node: '>=6'} dev: true - /ansi-regex/2.1.1: - resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=} + /ansi-escapes/1.4.0: + resolution: {integrity: sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex/2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} engines: {node: '>=0.10.0'} - dev: false /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + /ansi-styles/2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -1509,7 +1519,7 @@ packages: /babel-plugin-precompile-intl/0.5.1: resolution: {integrity: sha512-ki0llx5xZT1jQeLUIILVlAaaJQl/Jk+YTCXQZXoqjdwdUeAd2FTAOUWOYKk0W4KC+ONGFqtYfKmyjZkm5hlhpw==} dependencies: - '@babel/core': 7.18.2 + '@babel/core': 7.18.5 '@babel/helper-plugin-utils': 7.17.12 '@formatjs/icu-messageformat-parser': 2.1.3 transitivePeerDependencies: @@ -1595,7 +1605,6 @@ packages: /buffer-crc32/0.2.13: resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} - dev: true /buffer-equal/0.0.1: resolution: {integrity: sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=} @@ -1653,6 +1662,17 @@ packages: /caniuse-lite/1.0.30001349: resolution: {integrity: sha512-VFaWW3jeo6DLU5rwdiasosxhYSduJgSGil4cSyX3/85fbctlE58pXAkWyuRmVA0r2RxsOSVYUTZcySJ8WpbTxw==} + /chalk/1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -1698,6 +1718,13 @@ packages: engines: {node: '>=6'} dev: true + /cli-cursor/1.0.2: + resolution: {integrity: sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A==} + engines: {node: '>=0.10.0'} + dependencies: + restore-cursor: 1.0.1 + dev: true + /cli-progress/3.11.1: resolution: {integrity: sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==} engines: {node: '>=4'} @@ -1705,6 +1732,10 @@ packages: string-width: 4.2.3 dev: false + /cli-width/1.1.1: + resolution: {integrity: sha512-eMU2akIeEIkCxGXUNmDnJq1KzOIiPnJ+rKqRe6hcxE3vIOPvpMrBYOn/Bl7zNlYJj/zQxXquAnozHUCf9Whnsg==} + dev: true + /clone-response/1.0.2: resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} dependencies: @@ -1712,9 +1743,8 @@ packages: dev: true /code-point-at/1.1.0: - resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=} + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} engines: {node: '>=0.10.0'} - dev: false /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2023,7 +2053,6 @@ packages: /detect-indent/6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - dev: true /detect-libc/2.0.1: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} @@ -2114,7 +2143,6 @@ packages: /es6-promise/3.3.1: resolution: {integrity: sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=} - dev: true /esbuild-android-64/0.14.30: resolution: {integrity: sha512-vdJ7t8A8msPfKpYUGUV/KaTQRiZ0vDa2XSTlzXVkGGVHLKPeb85PBUtYJcEgw3htW3IdX5i1t1IMdQCwJJgNAg==} @@ -2527,6 +2555,11 @@ packages: resolution: {integrity: sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=} dev: false + /exit-hook/1.1.1: + resolution: {integrity: sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg==} + engines: {node: '>=0.10.0'} + dev: true + /expand-template/2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} @@ -2562,7 +2595,7 @@ packages: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.4 + micromatch: 4.0.5 /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -2581,6 +2614,14 @@ packages: dependencies: reusify: 1.0.4 + /figures/1.7.0: + resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + dev: true + /file-entry-cache/6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2795,6 +2836,12 @@ packages: /graceful-fs/4.2.9: resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} + + /has-ansi/2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 dev: true /has-flag/3.0.0: @@ -2889,6 +2936,10 @@ packages: once: 1.4.0 wrappy: 1.0.2 + /inherits/2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -2900,6 +2951,24 @@ packages: engines: {node: '>=10'} dev: true + /inquirer/0.11.4: + resolution: {integrity: sha512-QR+2TW90jnKk9LUUtbcA3yQXKt2rDEKMh6+BAZQIeumtzHexnwVLdPakSslGijXYLJCzFv7GMXbFCn0pA00EUw==} + dependencies: + ansi-escapes: 1.4.0 + ansi-regex: 2.1.1 + chalk: 1.1.3 + cli-cursor: 1.0.2 + cli-width: 1.1.1 + figures: 1.7.0 + lodash: 3.10.1 + readline2: 1.0.1 + run-async: 0.1.0 + rx-lite: 3.1.2 + string-width: 1.0.2 + strip-ansi: 3.0.1 + through: 2.3.8 + dev: true + /insane/2.6.2: resolution: {integrity: sha1-wqtouz4AarRRVg0bRGkXMpwKgSA=} dependencies: @@ -2935,11 +3004,10 @@ packages: engines: {node: '>=0.10.0'} /is-fullwidth-code-point/1.0.0: - resolution: {integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=} + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} dependencies: number-is-nan: 1.0.1 - dev: false /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -3154,6 +3222,10 @@ packages: resolution: {integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=} dev: false + /lodash/3.10.1: + resolution: {integrity: sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==} + dev: true + /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: false @@ -3184,7 +3256,6 @@ packages: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 - dev: true /magic-string/0.26.2: resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} @@ -3238,6 +3309,16 @@ packages: - webpack dev: true + /merge-dirs/0.2.1: + resolution: {integrity: sha512-x9S0RKVGdoTv5+HkVkGFhyBXhSde3+F8EN8a1lgDW975ytTN+3JoTRB/J7kFStsDr2XVrbRZfKsqsTdE5DAzkw==} + hasBin: true + dependencies: + inquirer: 0.11.4 + minimist: 1.2.5 + node-fs: 0.1.7 + path: 0.12.7 + dev: true + /merge-stream/2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: false @@ -3251,8 +3332,8 @@ packages: engines: {node: '>=10.4.0'} dev: true - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 @@ -3294,7 +3375,6 @@ packages: /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - dev: true /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -3322,6 +3402,10 @@ packages: /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /mute-stream/0.0.5: + resolution: {integrity: sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=} + dev: true + /nanoid/3.3.1: resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3371,6 +3455,12 @@ packages: whatwg-url: 5.0.0 dev: false + /node-fs/0.1.7: + resolution: {integrity: sha512-XqDBlmUKgDGe76+lZ/0sRBF3XW2vVcK07+ZPvdpUTK8jrvtPahUd0aBqJ9+ZjB01ANjZLuvK3O/eoMVmz62rpA==} + engines: {node: '>=0.1.97'} + os: [linux, darwin, freebsd, win32, smartos, sunos] + dev: true + /node-releases/2.0.2: resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} dev: false @@ -3446,14 +3536,12 @@ packages: dev: false /number-is-nan/1.0.1: - resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=} + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} - dev: false /object-assign/4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} - dev: false /omggif/1.0.10: resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} @@ -3464,6 +3552,11 @@ packages: dependencies: wrappy: 1.0.2 + /onetime/1.1.0: + resolution: {integrity: sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A==} + engines: {node: '>=0.10.0'} + dev: true + /onetime/5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -3588,6 +3681,13 @@ packages: engines: {node: '>=8'} dev: true + /path/0.12.7: + resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==} + dependencies: + process: 0.11.10 + util: 0.10.4 + dev: true + /phin/2.9.3: resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} dev: false @@ -4429,9 +4529,8 @@ packages: dev: false /process/0.11.10: - resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=} + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - dev: false /progress/2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} @@ -4506,6 +4605,14 @@ packages: picomatch: 2.3.1 dev: true + /readline2/1.0.1: + resolution: {integrity: sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + mute-stream: 0.0.5 + dev: true + /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} dev: false @@ -4557,6 +4664,14 @@ packages: lowercase-keys: 1.0.1 dev: true + /restore-cursor/1.0.1: + resolution: {integrity: sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw==} + engines: {node: '>=0.10.0'} + dependencies: + exit-hook: 1.1.1 + onetime: 1.1.0 + dev: true + /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4566,7 +4681,6 @@ packages: hasBin: true dependencies: glob: 7.2.0 - dev: true /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -4602,11 +4716,21 @@ packages: fsevents: 2.3.2 dev: true + /run-async/0.1.0: + resolution: {integrity: sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw==} + dependencies: + once: 1.4.0 + dev: true + /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + /rx-lite/3.1.2: + resolution: {integrity: sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ==} + dev: true + /sade/1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} @@ -4628,7 +4752,6 @@ packages: graceful-fs: 4.2.9 mkdirp: 0.5.5 rimraf: 2.7.1 - dev: true /sanitize.css/13.0.0: resolution: {integrity: sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==} @@ -4743,7 +4866,6 @@ packages: minimist: 1.2.5 sander: 0.5.1 sourcemap-codec: 1.4.8 - dev: true /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} @@ -4761,7 +4883,6 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: true /sprintf-js/1.0.3: resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} @@ -4772,13 +4893,12 @@ packages: dev: false /string-width/1.0.2: - resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=} + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} engines: {node: '>=0.10.0'} dependencies: code-point-at: 1.1.0 is-fullwidth-code-point: 1.0.0 strip-ansi: 3.0.1 - dev: false /string-width/4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -4801,11 +4921,10 @@ packages: dev: false /strip-ansi/3.0.1: - resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=} + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} engines: {node: '>=0.10.0'} dependencies: ansi-regex: 2.1.1 - dev: false /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -4828,7 +4947,6 @@ packages: engines: {node: '>=8'} dependencies: min-indent: 1.0.1 - dev: true /strip-json-comments/2.0.1: resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} @@ -4850,6 +4968,11 @@ packages: postcss-selector-parser: 6.0.10 dev: false + /supports-color/2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -4998,7 +5121,6 @@ packages: strip-indent: 3.0.0 svelte: 3.48.0 typescript: 4.6.2 - dev: true /svelte-tiny-virtual-list/2.0.1: resolution: {integrity: sha512-0X6k5cZxF9yRLfVJ1bfwQmfEMbd3OSNNM/tI9y44jYbsB/FkI2GEIKpeV5J8AQy87qFU9xnPLxxo3erQFfdC2A==} @@ -5078,6 +5200,10 @@ packages: engines: {node: '>=10'} dev: false + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + /timm/1.7.1: resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} dev: false @@ -5173,7 +5299,6 @@ packages: resolution: {integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /undefsafe/2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} @@ -5348,6 +5473,12 @@ packages: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} dev: false + /util/0.10.4: + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} + dependencies: + inherits: 2.0.3 + dev: true + /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true diff --git a/svelte.config.js b/svelte.config.js index cc0d7758f..9feae764f 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -7,6 +7,7 @@ import path from 'path' import { preprocess, plugins } from './src/config/svelte.js' import Generator from './src/plugins/generator/index.js' import precompileIntl from 'svelte-intl-precompile/sveltekit-plugin' +import mm from 'micromatch' /** @type {import('@sveltejs/kit').Config} */ export default {