From 17d99d080c397904950afb66797e03b57b35274a Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 15 Feb 2024 09:49:35 -0500 Subject: [PATCH] Starting a new template using Svelte, SvelteKit, Tailwind, and Skeleton. --- .directory | 2 +- .eslintignore | 13 + .eslintrc.cjs | 31 + .gitignore | 35 +- .npmrc | 1 + .prettierignore | 4 + .prettierrc | 8 + .vscode/extensions.json | 3 - .vscode/settings.json | 120 + README.md | 40 +- ae_app_mod_sponsorships_svelte.code-workspace | 8 - index.html | 49 - package-lock.json | 3560 ++++++++++++++++- package.json | 53 +- playwright.config.ts | 12 + postcss.config.cjs | 6 + public/ae_bridge_init.js | 175 - public/vite.svg | 1 - src/0_archives__main.svelte | 617 --- src/0_hub__main.svelte | 239 -- src/0_posts__main.svelte | 711 ---- src/0_sponsorships__main.svelte | 847 ---- src/10_edit__archive_content_obj.svelte | 706 ---- src/10_edit__archive_obj.svelte | 588 --- src/10_edit__post_comment_obj.svelte | 384 -- src/10_edit__post_obj.svelte | 536 --- src/10_edit__sponsorship_obj.svelte | 1159 ------ src/10_hub__site_menu.svelte | 63 - src/10_list__archive_content_obj.svelte | 489 --- src/10_list__archive_obj.svelte | 151 - src/10_list__sponsorship_obj.svelte | 163 - src/10_player__archive_content_obj.svelte | 78 - src/10_view__archive_obj.svelte | 244 -- src/10_view__post_obj.svelte | 261 -- src/10_view__sponsorship_obj.svelte | 192 - src/App.svelte | 47 - src/app.css | 711 ---- src/app.d.ts | 9 + src/app.html | 12 + src/app.postcss | 16 + src/assets/svelte.svg | 1 - src/index.test.ts | 7 + src/lib/Counter.svelte | 10 - src/lib/index.ts | 1 + src/main.ts | 59 - src/routes/+layout.svelte | 64 + src/routes/+page.svelte | 71 + src/stores.ts | 246 -- src/stores_ae_api.js | 40 - src/vite-env.d.ts | 2 - static/favicon.png | Bin 0 -> 15086 bytes static/fonts/Quicksand.ttf | Bin 0 -> 124196 bytes svelte.config.js | 84 +- tailwind.config.ts | 27 + tests/test.ts | 6 + tsconfig.json | 34 +- tsconfig.node.json | 9 - vite.config.ts | 16 +- 58 files changed, 3894 insertions(+), 9127 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.cjs create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 .prettierrc delete mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json delete mode 100644 ae_app_mod_sponsorships_svelte.code-workspace delete mode 100644 index.html create mode 100644 playwright.config.ts create mode 100644 postcss.config.cjs delete mode 100644 public/ae_bridge_init.js delete mode 100644 public/vite.svg delete mode 100644 src/0_archives__main.svelte delete mode 100644 src/0_hub__main.svelte delete mode 100644 src/0_posts__main.svelte delete mode 100644 src/0_sponsorships__main.svelte delete mode 100644 src/10_edit__archive_content_obj.svelte delete mode 100644 src/10_edit__archive_obj.svelte delete mode 100644 src/10_edit__post_comment_obj.svelte delete mode 100644 src/10_edit__post_obj.svelte delete mode 100644 src/10_edit__sponsorship_obj.svelte delete mode 100644 src/10_hub__site_menu.svelte delete mode 100644 src/10_list__archive_content_obj.svelte delete mode 100644 src/10_list__archive_obj.svelte delete mode 100644 src/10_list__sponsorship_obj.svelte delete mode 100644 src/10_player__archive_content_obj.svelte delete mode 100644 src/10_view__archive_obj.svelte delete mode 100644 src/10_view__post_obj.svelte delete mode 100644 src/10_view__sponsorship_obj.svelte delete mode 100644 src/App.svelte delete mode 100644 src/app.css create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/app.postcss delete mode 100644 src/assets/svelte.svg create mode 100644 src/index.test.ts delete mode 100644 src/lib/Counter.svelte create mode 100644 src/lib/index.ts delete mode 100644 src/main.ts create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+page.svelte delete mode 100644 src/stores.ts delete mode 100644 src/stores_ae_api.js delete mode 100644 src/vite-env.d.ts create mode 100644 static/favicon.png create mode 100644 static/fonts/Quicksand.ttf create mode 100644 tailwind.config.ts create mode 100644 tests/test.ts delete mode 100644 tsconfig.node.json diff --git a/.directory b/.directory index 79f35686..9af614f0 100644 --- a/.directory +++ b/.directory @@ -1,5 +1,5 @@ [Dolphin] -Timestamp=2024,2,6,18,10,21.847 +Timestamp=2024,2,15,9,41,31.242 Version=4 ViewMode=1 diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..38972655 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,13 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example + +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..0b757582 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,31 @@ +/** @type { import("eslint").Linter.Config } */ +module.exports = { + root: true, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:svelte/recommended', + 'prettier' + ], + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020, + extraFileExtensions: ['.svelte'] + }, + env: { + browser: true, + es2017: true, + node: true + }, + overrides: [ + { + files: ['*.svelte'], + parser: 'svelte-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser' + } + } + ] +}; diff --git a/.gitignore b/.gitignore index 0611b204..6635cf55 100644 --- a/.gitignore +++ b/.gitignore @@ -1,27 +1,10 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea .DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -*.bak -*.tar.gz +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..b6f27f13 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..cc41cea9 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +# Ignore files for PNPM, NPM and YARN +pnpm-lock.yaml +package-lock.json +yarn.lock diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..95730232 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index bdef8201..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["svelte.svelte-vscode"] -} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..e5c5673c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,120 @@ +{ + "prettier.documentSelectors": [ + "**/*.svelte" + ], + "tailwindCSS.classAttributes": [ + "class", + "accent", + "active", + "animIndeterminate", + "aspectRatio", + "background", + "badge", + "bgBackdrop", + "bgDark", + "bgDrawer", + "bgLight", + "blur", + "border", + "button", + "buttonAction", + "buttonBack", + "buttonClasses", + "buttonComplete", + "buttonDismiss", + "buttonNeutral", + "buttonNext", + "buttonPositive", + "buttonTextCancel", + "buttonTextConfirm", + "buttonTextFirst", + "buttonTextLast", + "buttonTextNext", + "buttonTextPrevious", + "buttonTextSubmit", + "caretClosed", + "caretOpen", + "chips", + "color", + "controlSeparator", + "controlVariant", + "cursor", + "display", + "element", + "fill", + "fillDark", + "fillLight", + "flex", + "flexDirection", + "gap", + "gridColumns", + "height", + "hover", + "inactive", + "indent", + "justify", + "meter", + "padding", + "position", + "regionAnchor", + "regionBackdrop", + "regionBody", + "regionCaption", + "regionCaret", + "regionCell", + "regionChildren", + "regionChipList", + "regionChipWrapper", + "regionCone", + "regionContent", + "regionControl", + "regionDefault", + "regionDrawer", + "regionFoot", + "regionFootCell", + "regionFooter", + "regionHead", + "regionHeadCell", + "regionHeader", + "regionIcon", + "regionInput", + "regionInterface", + "regionInterfaceText", + "regionLabel", + "regionLead", + "regionLegend", + "regionList", + "regionListItem", + "regionNavigation", + "regionPage", + "regionPanel", + "regionRowHeadline", + "regionRowMain", + "regionSummary", + "regionSymbol", + "regionTab", + "regionTrail", + "ring", + "rounded", + "select", + "shadow", + "slotDefault", + "slotFooter", + "slotHeader", + "slotLead", + "slotMessage", + "slotMeta", + "slotPageContent", + "slotPageFooter", + "slotPageHeader", + "slotSidebarLeft", + "slotSidebarRight", + "slotTrail", + "spacing", + "text", + "track", + "transition", + "width", + "zIndex" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 5d1c7d8f..5ce67661 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,38 @@ -# OSIT AE - Sponsorships App (Svelte) -This was created for One Sky IT's Aether system. +# create-svelte + +Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte). + +## Creating a project + +If you're seeing this, you've probably already done this step. Congrats! + +```bash +# create a new project in the current directory +npm create svelte@latest + +# create a new project in my-app +npm create svelte@latest my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +To create a production version of your app: + +```bash +npm run build +``` + +You can preview the production build with `npm run preview`. + +> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. diff --git a/ae_app_mod_sponsorships_svelte.code-workspace b/ae_app_mod_sponsorships_svelte.code-workspace deleted file mode 100644 index 876a1499..00000000 --- a/ae_app_mod_sponsorships_svelte.code-workspace +++ /dev/null @@ -1,8 +0,0 @@ -{ - "folders": [ - { - "path": "." - } - ], - "settings": {} -} \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 100644 index a10d881e..00000000 --- a/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - Æ AE App (The Hub) - Sponsorships - Vite + Svelte + TS - - - - - - - - - - -
- -
- - - -
- -
- - - - - - diff --git a/package-lock.json b/package-lock.json index 037b9c1e..683985ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,25 +1,65 @@ { - "name": "ae_sponsorships_app_svelte", + "name": "ae-app-svelte-tailwind-skeleton", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "ae_sponsorships_app_svelte", + "name": "ae-app-svelte-tailwind-skeleton", "version": "0.0.1", "dependencies": { - "aether_npm_lib": "bitbucket:oneskyit/one-sky-it-npm-library", - "axios": "^1.6.0" + "@floating-ui/dom": "1.6.3", + "highlight.js": "11.9.0" }, "devDependencies": { - "@sveltejs/adapter-static": "^3.0.1", + "@playwright/test": "^1.28.1", + "@skeletonlabs/skeleton": "2.8.0", + "@skeletonlabs/tw-plugin": "0.3.1", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", - "@tsconfig/svelte": "^5.0.0", - "svelte": "^4.2.8", + "@tailwindcss/forms": "0.5.7", + "@tailwindcss/typography": "0.5.10", + "@types/eslint": "8.56.0", + "@types/node": "20.11.18", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "autoprefixer": "10.4.17", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.35.1", + "postcss": "8.4.35", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "svelte": "^4.2.7", "svelte-check": "^3.6.0", - "tslib": "^2.6.0", - "typescript": "^5.3.0", - "vite": "^5.0.0" + "tailwindcss": "3.4.1", + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^5.0.3", + "vite-plugin-tailwind-purgecss": "0.2.0", + "vitest": "^1.2.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@ampproject/remapping": { @@ -403,6 +443,217 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -418,9 +669,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -486,17 +737,41 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.41.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.41.2.tgz", + "integrity": "sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==", + "dev": true, + "dependencies": { + "playwright": "1.41.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@polka/url": { "version": "1.0.0-next.24", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.11.0.tgz", + "integrity": "sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==", "cpu": [ "arm" ], @@ -507,9 +782,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.11.0.tgz", + "integrity": "sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==", "cpu": [ "arm64" ], @@ -520,9 +795,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.11.0.tgz", + "integrity": "sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==", "cpu": [ "arm64" ], @@ -533,9 +808,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.11.0.tgz", + "integrity": "sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==", "cpu": [ "x64" ], @@ -546,9 +821,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.11.0.tgz", + "integrity": "sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==", "cpu": [ "arm" ], @@ -559,9 +834,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.11.0.tgz", + "integrity": "sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==", "cpu": [ "arm64" ], @@ -572,9 +847,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.11.0.tgz", + "integrity": "sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==", "cpu": [ "arm64" ], @@ -585,9 +860,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.11.0.tgz", + "integrity": "sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==", "cpu": [ "riscv64" ], @@ -598,9 +873,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.11.0.tgz", + "integrity": "sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==", "cpu": [ "x64" ], @@ -611,9 +886,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.11.0.tgz", + "integrity": "sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==", "cpu": [ "x64" ], @@ -624,9 +899,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.11.0.tgz", + "integrity": "sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==", "cpu": [ "arm64" ], @@ -637,9 +912,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.11.0.tgz", + "integrity": "sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==", "cpu": [ "ia32" ], @@ -650,9 +925,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.11.0.tgz", + "integrity": "sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==", "cpu": [ "x64" ], @@ -662,11 +937,41 @@ "win32" ] }, - "node_modules/@sveltejs/adapter-static": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-3.0.1.tgz", - "integrity": "sha512-6lMvf7xYEJ+oGeR5L8DFJJrowkefTK6ZgA4JiMqoClMkKq0s6yvsd3FZfCFvX1fQ0tpCD7fkuRVHsnUVgsHyNg==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@skeletonlabs/skeleton": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@skeletonlabs/skeleton/-/skeleton-2.8.0.tgz", + "integrity": "sha512-R6spSJSyW9MA6cnVQ8IV7uoYSXxHmP/oWJ9IHdGDU9epPZaZMmOXUHJSzA1gngccB2jFaA/6jXfS1O1CsIlGMg==", "dev": true, + "dependencies": { + "esm-env": "1.0.0" + }, + "peerDependencies": { + "svelte": "^3.56.0 || ^4.0.0" + } + }, + "node_modules/@skeletonlabs/tw-plugin": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@skeletonlabs/tw-plugin/-/tw-plugin-0.3.1.tgz", + "integrity": "sha512-DjjeOHN3HhFQf6gYPT2MUZMkIdw1jeB9mbuKC8etQxUlOR4XitfC7hssRWFJ8RJsvrrN0myCBbdWkVG1JVA96g==", + "dev": true, + "peerDependencies": { + "tailwindcss": ">=3.0.0" + } + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.1.1.tgz", + "integrity": "sha512-6LeZft2Fo/4HfmLBi5CucMYmgRxgcETweQl/yQoZo/895K3S9YWYN4Sfm/IhwlIpbJp3QNvhKmwCHbsqQNYQpw==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^4.0.0" + }, "peerDependencies": { "@sveltejs/kit": "^2.0.0" } @@ -677,7 +982,6 @@ "integrity": "sha512-1uyXvzC2Lu1FZa30T4y5jUAC21R309ZMRG0TPt+PPPbNUoDpy8zSmSNVWYaBWxYDqLGQ5oPNWvjvvF2IjJ1jmA==", "dev": true, "hasInstallScript": true, - "peer": true, "dependencies": { "@types/cookie": "^0.6.0", "cookie": "^0.6.0", @@ -743,18 +1047,48 @@ "vite": "^5.0.0" } }, - "node_modules/@tsconfig/svelte": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.2.tgz", - "integrity": "sha512-BRbo1fOtyVbhfLyuCWw6wAWp+U8UQle+ZXu84MYYWzYSEB28dyfnRBIE99eoG+qdAC0po6L2ScIEivcT07UaMA==", - "dev": true + "node_modules/@tailwindcss/forms": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", + "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "dev": true, + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==", "dev": true, - "peer": true + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } }, "node_modules/@types/estree": { "version": "1.0.5", @@ -762,12 +1096,325 @@ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.18.tgz", + "integrity": "sha512-ABT5VWnnYneSBcNWYSCuR05M826RoMyMSGiFivXGx6ZUIsXb9vn4643IEwkg2zbEOSgAiSogtapN2fgc4mAPlw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/pug": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", "dev": true }, + "node_modules/@types/semver": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz", + "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitest/expect": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.2.2.tgz", + "integrity": "sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.2.2", + "@vitest/utils": "1.2.2", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.2.2.tgz", + "integrity": "sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==", + "dev": true, + "dependencies": { + "@vitest/utils": "1.2.2", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner/node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/runner/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.2.2.tgz", + "integrity": "sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==", + "dev": true, + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.2.2.tgz", + "integrity": "sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.2.2.tgz", + "integrity": "sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -780,15 +1427,70 @@ "node": ">=0.4.0" } }, - "node_modules/aether_npm_lib": { - "version": "1.6.0", - "resolved": "git+ssh://git@bitbucket.org/oneskyit/one-sky-it-npm-library.git#24d17b091de194f961bfb8a608698a7a13045894", - "dependencies": { - "axios": "^1.1.3", - "html5-qrcode": "^2.1.6", - "openai": "^3.1.0" + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -802,6 +1504,18 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", @@ -811,19 +1525,59 @@ "dequal": "^2.0.3" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, "node_modules/axobject-query": { @@ -851,13 +1605,12 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -872,6 +1625,38 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -881,6 +1666,15 @@ "node": "*" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -890,6 +1684,81 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -914,6 +1783,18 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/code-red": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", @@ -927,15 +1808,31 @@ "periscopic": "^3.1.0" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "delayed-stream": "~1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.8" + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" } }, "node_modules/concat-map": { @@ -949,11 +1846,24 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, - "peer": true, "engines": { "node": ">= 0.6" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", @@ -967,6 +1877,18 @@ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -984,6 +1906,24 @@ } } }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -993,14 +1933,6 @@ "node": ">=0.10.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1023,8 +1955,70 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", + "dev": true + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "peer": true + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.670", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz", + "integrity": "sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true }, "node_modules/es6-promise": { "version": "3.3.1", @@ -1070,12 +2064,259 @@ "@esbuild/win32-x64": "0.19.12" } }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.35.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.35.1.tgz", + "integrity": "sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@jridgewell/sourcemap-codec": "^1.4.14", + "debug": "^4.3.1", + "eslint-compat-utils": "^0.1.2", + "esutils": "^2.0.3", + "known-css-properties": "^0.29.0", + "postcss": "^8.4.5", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "semver": "^7.5.3", + "svelte-eslint-parser": ">=0.33.0 <1.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0", + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-svelte/node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/esm-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", + "dev": true + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, - "peer": true + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } }, "node_modules/estree-walker": { "version": "3.0.3", @@ -1086,6 +2327,44 @@ "@types/estree": "^1.0.0" } }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -1102,6 +2381,30 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -1111,6 +2414,18 @@ "reusify": "^1.0.4" } }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -1123,36 +2438,69 @@ "node": ">=8" } }, - "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 6" + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fs.realpath": { @@ -1162,9 +2510,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, "optional": true, @@ -1175,6 +2523,36 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1196,30 +2574,85 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalyzer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "peer": true + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/globrex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/graceful-fs": { "version": "4.2.11", @@ -1227,10 +2660,58 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/html5-qrcode": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.3.8.tgz", - "integrity": "sha512-jsr4vafJhwoLVEDW3n1KvPnCCXWaQfRng0/EEYk1vNcQGcG/htAdhJX0be8YyqMoSz7+hZvOZSTAepsabiuhiQ==" + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/highlight.js": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } }, "node_modules/import-fresh": { "version": "3.3.0", @@ -1253,12 +2734,20 @@ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", "dev": true, - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1287,6 +2776,18 @@ "node": ">=8" } }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1296,6 +2797,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -1317,6 +2827,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-reference": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", @@ -1326,6 +2845,96 @@ "@types/estree": "*" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", @@ -1335,12 +2944,116 @@ "node": ">=6" } }, + "node_modules/known-css-properties": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-character": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", "dev": true }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/magic-string": { "version": "0.30.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", @@ -1359,6 +3072,12 @@ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1381,23 +3100,16 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" + "node": ">=12" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/min-indent": { @@ -1409,16 +3121,28 @@ "node": ">=4" } }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -1430,6 +3154,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -1442,6 +3175,18 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mlly": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.5.0.tgz", + "integrity": "sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.0.3", + "ufo": "^1.3.2" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -1456,7 +3201,6 @@ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "dev": true, - "peer": true, "engines": { "node": ">=10" } @@ -1467,6 +3211,17 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -1485,6 +3240,18 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1494,6 +3261,60 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1503,21 +3324,66 @@ "wrappy": "1" } }, - "node_modules/openai": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/openai/-/openai-3.3.0.tgz", - "integrity": "sha512-uqxI/Au+aPRnsaQRe8CojU0eCR7I0mBiKjD3sNMzY6DaC1ZVrc85u98mtJW6voDug8fgGN+DIZmTDxTthxb7dQ==", + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, "dependencies": { - "axios": "^0.26.0", - "form-data": "^4.0.0" + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/openai/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, "dependencies": { - "follow-redirects": "^1.14.8" + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parent-module": { @@ -1532,6 +3398,15 @@ "node": ">=6" } }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -1541,6 +3416,70 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/periscopic": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", @@ -1570,6 +3509,65 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, + "node_modules/playwright": { + "version": "1.41.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.41.2.tgz", + "integrity": "sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==", + "dev": true, + "dependencies": { + "playwright-core": "1.41.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.41.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.41.2.tgz", + "integrity": "sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/postcss": { "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", @@ -1598,10 +3596,287 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nested/node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.1.tgz", + "integrity": "sha512-ENAPbIxASf2R79IZwgkG5sBdeNA9kLRlXVvKKmTXh79zWTy0KKoT86XO2pHrTitUPINd+iXWy12MRmgzKGVckA==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/purgecss": { + "version": "6.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-6.0.0-alpha.0.tgz", + "integrity": "sha512-UC7d7uIyZsky+srEsSXny9BkbTcVn3ZtBCNX3rW3DsqJKhvUXFRpufA4ktcHzWF0+JLZgmsqjUm/8R82x9bHpw==", + "dev": true, + "dependencies": { + "commander": "^10.0.0", + "glob": "^8.0.3", + "postcss": "^8.4.4", + "postcss-selector-parser": "^6.0.7" + }, + "bin": { + "purgecss": "bin/purgecss.js" + } + }, + "node_modules/purgecss/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/purgecss/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/purgecss/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -1623,6 +3898,21 @@ } ] }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1635,6 +3925,23 @@ "node": ">=8.10.0" } }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1655,21 +3962,24 @@ } }, "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.11.0.tgz", + "integrity": "sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -1682,19 +3992,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", + "@rollup/rollup-android-arm-eabi": "4.11.0", + "@rollup/rollup-android-arm64": "4.11.0", + "@rollup/rollup-darwin-arm64": "4.11.0", + "@rollup/rollup-darwin-x64": "4.11.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.11.0", + "@rollup/rollup-linux-arm64-gnu": "4.11.0", + "@rollup/rollup-linux-arm64-musl": "4.11.0", + "@rollup/rollup-linux-riscv64-gnu": "4.11.0", + "@rollup/rollup-linux-x64-gnu": "4.11.0", + "@rollup/rollup-linux-x64-musl": "4.11.0", + "@rollup/rollup-win32-arm64-msvc": "4.11.0", + "@rollup/rollup-win32-ia32-msvc": "4.11.0", + "@rollup/rollup-win32-x64-msvc": "4.11.0", "fsevents": "~2.3.2" } }, @@ -1745,19 +4055,83 @@ "rimraf": "^2.5.2" } }, + "node_modules/sander/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/set-cookie-parser": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "peer": true + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", "dev": true, - "peer": true, "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -1767,6 +4141,15 @@ "node": ">= 10" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/sorcery": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", @@ -1791,6 +4174,120 @@ "node": ">=0.10.0" } }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -1803,6 +4300,98 @@ "node": ">=8" } }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.3.0.tgz", + "integrity": "sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/svelte": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.10.tgz", @@ -1850,6 +4439,33 @@ "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" } }, + "node_modules/svelte-eslint-parser": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.33.1.tgz", + "integrity": "sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "postcss": "^8.4.29", + "postcss-scss": "^4.0.8" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, "node_modules/svelte-hmr": { "version": "0.15.3", "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", @@ -1925,17 +4541,173 @@ } } }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.0.tgz", + "integrity": "sha512-p3cz0JV5vw/XeouBU3Ldnp+ZkBjE+n8ydJ4mcwBrOiXXPqNlrzGBqWs9X4MWF7f+iKUBu794Y8Hh8yawiJbCjw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", "dev": true, - "peer": true, "dependencies": { "globalyzer": "0.1.0", "globrex": "^0.1.2" } }, + "node_modules/tinybench": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.6.0.tgz", + "integrity": "sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.2.tgz", + "integrity": "sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1953,17 +4725,67 @@ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, - "peer": true, "engines": { "node": ">=6" } }, + "node_modules/ts-api-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", + "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", @@ -1977,10 +4799,67 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.4.0.tgz", + "integrity": "sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==", + "dev": true + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "node_modules/vite": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.1.tgz", - "integrity": "sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.3.tgz", + "integrity": "sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==", "dev": true, "dependencies": { "esbuild": "^0.19.3", @@ -2032,6 +4911,55 @@ } } }, + "node_modules/vite-node": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.2.2.tgz", + "integrity": "sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==", + "dev": true, + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-tailwind-purgecss": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-tailwind-purgecss/-/vite-plugin-tailwind-purgecss-0.2.0.tgz", + "integrity": "sha512-6Q+SaalUd0t3BOIIiCQPlbZQuYARVgjoC78X+fLbQJqIEy/9fC58aQgHMgi+CmYfVfZmJToA8YiLueSGEo2mng==", + "dev": true, + "dependencies": { + "estree-walker": "^3.0.3", + "purgecss": "6.0.0-alpha.0" + }, + "peerDependencies": { + "vite": "^4.1.1 || ^5.0.0" + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/vitefu": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", @@ -2046,11 +4974,229 @@ } } }, + "node_modules/vitest": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.2.2.tgz", + "integrity": "sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==", + "dev": true, + "dependencies": { + "@vitest/expect": "1.2.2", + "@vitest/runner": "1.2.2", + "@vitest/snapshot": "1.2.2", + "@vitest/spy": "1.2.2", + "@vitest/utils": "1.2.2", + "acorn-walk": "^8.3.2", + "cac": "^6.7.14", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^1.3.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.2", + "vite": "^5.0.0", + "vite-node": "1.2.2", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "^1.0.0", + "@vitest/ui": "^1.0.0", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", + "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "dev": true, + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index a45b099d..175d30e8 100644 --- a/package.json +++ b/package.json @@ -1,26 +1,51 @@ { - "name": "ae_sponsorships_app_svelte", - "private": true, + "name": "ae-app-svelte-tailwind-skeleton", "version": "0.0.1", - "type": "module", + "private": true, "scripts": { - "dev": "vite", + "dev": "vite dev", "build": "vite build", "preview": "vite preview", - "check": "svelte-check --tsconfig ./tsconfig.json" + "test": "npm run test:integration && npm run test:unit", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --check . && eslint .", + "format": "prettier --write .", + "test:integration": "playwright test", + "test:unit": "vitest" }, "devDependencies": { - "@sveltejs/adapter-static": "^3.0.1", + "@playwright/test": "^1.28.1", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", - "@tsconfig/svelte": "^5.0.0", - "svelte": "^4.2.8", + "@types/eslint": "8.56.0", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.35.1", + "prettier": "^3.1.1", + "prettier-plugin-svelte": "^3.1.2", + "svelte": "^4.2.7", "svelte-check": "^3.6.0", - "tslib": "^2.6.0", - "typescript": "^5.3.0", - "vite": "^5.0.0" + "tslib": "^2.4.1", + "typescript": "^5.0.0", + "vite": "^5.0.3", + "vitest": "^1.2.0", + "postcss": "8.4.35", + "autoprefixer": "10.4.17", + "tailwindcss": "3.4.1", + "@skeletonlabs/skeleton": "2.8.0", + "@skeletonlabs/tw-plugin": "0.3.1", + "vite-plugin-tailwind-purgecss": "0.2.0", + "@tailwindcss/typography": "0.5.10", + "@tailwindcss/forms": "0.5.7", + "@types/node": "20.11.18" }, + "type": "module", "dependencies": { - "aether_npm_lib": "bitbucket:oneskyit/one-sky-it-npm-library", - "axios": "^1.6.0" + "highlight.js": "11.9.0", + "@floating-ui/dom": "1.6.3" } -} +} \ No newline at end of file diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 00000000..1c5d7a1f --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,12 @@ +import type { PlaywrightTestConfig } from '@playwright/test'; + +const config: PlaywrightTestConfig = { + webServer: { + command: 'npm run build && npm run preview', + port: 4173 + }, + testDir: 'tests', + testMatch: /(.+\.)?(test|spec)\.[jt]s/ +}; + +export default config; diff --git a/postcss.config.cjs b/postcss.config.cjs new file mode 100644 index 00000000..16dce0bc --- /dev/null +++ b/postcss.config.cjs @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} \ No newline at end of file diff --git a/public/ae_bridge_init.js b/public/ae_bridge_init.js deleted file mode 100644 index a6f2a11b..00000000 --- a/public/ae_bridge_init.js +++ /dev/null @@ -1,175 +0,0 @@ - -// These localStorage values were created when generating the HTML - -// let ae_local = window.localStorage.getItem('ae'); // Includes: cfg, client, page, other -// let ae_session = window.sessionStorage.getItem('ae'); // Includes: cfg, client, page, other -// let ae_com_local = window.localStorage.getItem('ae_com'); -// let ae_com_session = window.sessionStorage.getItem('ae_com'); - -if (window.localStorage.getItem('ae') === null) { - window.localStorage.setItem('ae', JSON.stringify({ 'cfg': {}, 'client': {}, 'page': {}, 'other': {}, 'test': {} })); -} - -if (window.sessionStorage.getItem('ae') === null) { - window.sessionStorage.setItem('ae', JSON.stringify({ 'cfg': {}, 'client': {}, 'page': {}, 'other': {}, 'test': {} })); -} -// JSON.parse(window.sessionStorage.getItem('ae')) - -// export let ae_bridge = { -const ae_bridge = { - // example_var: 'Example Default Value', - // get example() { - // return this.example_var; - // }, - // set example(new_value) { - // this.example_var = new_value; - // this.example_var_listener(new_value); - // this.example_var_core_listener(new_value); - // this.example_var_mods_listener(new_value); - // }, - - // example_var_listener: function (new_value) {}, - // registerNewListener: function (external_listener_function) { - // this.example_var_listener = external_listener_function; - // }, - - // example_var_core_listener: function (new_value) {}, - // registerNewCoreListener: function (external_core_listener_function) { - // this.example_var_core_listener = external_core_listener_function; - // }, - - // example_var_mods_listener: function (new_value) {}, - // registerNewModsListener: function (external_mods_listener_function) { - // this.example_var_mods_listener = external_mods_listener_function; - // }, - - - // Monitor change in **local** storage AE - // Created and set when generating and then rendering the inital HTML and JS - // ae_local_var: true, - ae_local_var: JSON.parse(window.localStorage.getItem('ae')), - get ae_local() { - return this.ae_local_var; - }, - set ae_local(new_value) { - console.log('ae_local_var: new_value: ', new_value); - this.ae_local_var = new_value; - this.ae_local_listener(new_value); - window.localStorage.setItem('ae', new_value); - }, - - ae_local_listener: function (new_value) {}, - register_ae_local_listener: function (external_listener_function) { - this.ae_local_listener = external_listener_function; - }, - - - // Monitor change in **session* storage AE - // Created and set when generating and then rendering the inital HTML and JS - // ae_session_var: true, - // ae_session_var: JSON.parse((window.sessionStorage.getItem('ae') ? window.sessionStorage.getItem('ae') : {'cfg': true, 'client': true, 'page': true, 'other': true})), - // ae_session_var: {'example': 'This is just an example from init.js!'}, - ae_session_var: JSON.parse(window.sessionStorage.getItem('ae')), - get ae_session() { - return this.ae_session_var; - }, - set ae_session(new_value) { - console.log('ae_session_var: new_value: ', new_value); - this.ae_session_var = new_value; - this.ae_session_listener(new_value); - window.sessionStorage.setItem('ae', new_value); - }, - - ae_session_listener: function (new_value) {}, - register_ae_session_listener: function (external_listener_function) { - this.ae_session_listener = external_listener_function; - }, - - - // Monitor change in Access Type - access_type_var: 'anonymous', - get access_type() { - return this.access_type_var; - }, - set access_type(new_value) { - this.access_type_var = new_value; - this.access_type_var_core_listener(new_value); - this.access_type_var_mods_listener(new_value); - }, - - access_type_var_core_listener: function (new_value) {}, - register_core_access_type_listener: function (external_core_listener_function) { - this.access_type_var_core_listener = external_core_listener_function; - }, - - access_type_var_mods_listener: function (new_value) {}, - register_mods_access_type_listener: function (external_mods_listener_function) { - this.access_type_var_mods_listener = external_mods_listener_function; - }, - - - // Monitor change in AE Common - // ae_com_var: true, - ae_com_var: JSON.parse(window.localStorage.getItem('ae_com')), - get ae_com() { - return this.ae_com_var; - }, - set ae_com(new_value) { - this.ae_com_var = new_value; - this.ae_com_var_core_listener(new_value); - this.ae_com_var_mods_listener(new_value); - }, - - ae_com_var_core_listener: function (new_value) {}, - register_core_ae_com_listener: function (external_core_listener_function) { - this.ae_com_var_core_listener = external_core_listener_function; - }, - - ae_com_var_mods_listener: function (new_value) {}, - register_mods_ae_com_listener: function (external_mods_listener_function) { - this.ae_com_var_mods_listener = external_mods_listener_function; - }, - - - // Monitor change in Client - client_var: true, - get client() { - return this.client_var; - }, - set client(new_value) { - this.client_var = new_value; - this.client_var_core_listener(new_value); - this.client_var_mods_listener(new_value); - }, - - client_var_core_listener: function (new_value) {}, - register_core_client_listener: function (external_core_listener_function) { - this.client_var_core_listener = external_core_listener_function; - }, - - client_var_mods_listener: function (new_value) {}, - register_mods_client_listener: function (external_mods_listener_function) { - this.client_var_mods_listener = external_mods_listener_function; - }, - -}; -console.log('ae_bridge_init.js loaded'); - - -// Updated: 2024-02-09 -/* BEGIN: Add this to the stores.ts */ -// This adds a listener to the ae_bridge object. This can then be exported and used in the Svelte components. -// export let ae_example = writable(ae_bridge.ae_example); -// ae_bridge.register_ae_example_listener((new_value) => { -// console.log(`AE Bridge: AE Example: ${new_value}`); -// console.log(new_value); - -// ae_example.set(new_value); -// console.log(ae_example); -// }); -/* END: Add this to the stores.ts */ - - -/* BEGIN: Add this to the Svelte components */ -// import { ae_example } from './stores'; -/* END: Add this to the Svelte components */ diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/0_archives__main.svelte b/src/0_archives__main.svelte deleted file mode 100644 index bb569254..00000000 --- a/src/0_archives__main.svelte +++ /dev/null @@ -1,617 +0,0 @@ - - - -
- - -
-

- Novi: {$ae_app.novi_full_name} - - ( - {$ae_app.novi_email} - {#if $ae_app.administrator_access} - Administrator - {:else if $ae_app.trusted_access} - Trusted - {/if} - UUID: {$ae_app.novi_uuid} - ) - -

- -
- -{#if $ae_app.archives.show_main__options} -
- - - - - - -
- {#if $slct.archive_id} - - {/if} - {#if $ae_app.trusted_access} - - {/if} -
- -
-{/if} - - -{#if $ae_app.archives.show_list__archive_obj_li} - -{/if} - - -{#if $ae_app.archives.show_view__archive_obj && $slct.archive_obj} - -{/if} - - -
- - -{#if $ae_app.archives.show_edit__archive_obj} - { - $ae_app.archives.show_main__options = true; - $ae_app.archives.show_list__archive_obj_li = true; - $ae_app.archives.show_edit__archive_obj = false; - $ae_app.archives.show_view__archive_obj = false; - - const url = new URL(location); - url.searchParams.delete('archive_id'); - history.pushState({}, '', url); - - let message = {'archive_id': null}; - window.parent.postMessage(message, "*"); - }} - on:report__modal_dimensions={ (event) => { - console.log('*** on:report__modal_dimensions ***'); - console.log(event.detail); - - $ae_app.modal_dimensions = event.detail.modal_dimensions; - }} - > - {@html ($slct.archive_obj.name ? $slct.archive_obj.name : 'New Archive Group')} - - - - - - - -{/if} - - - - - - diff --git a/src/0_hub__main.svelte b/src/0_hub__main.svelte deleted file mode 100644 index be6e452d..00000000 --- a/src/0_hub__main.svelte +++ /dev/null @@ -1,239 +0,0 @@ - - -
- -The Hub! - - -{#if $ae_app.administrator_access} - Administrator -{:else if $ae_app.trusted_access} - Trusted -{/if} - -
- - - - -
- -{#await data_store_obj_get_promises['hub_site_header']} -

Loading site header...

-{:then} -

Site header loaded.

- - -{:catch error} -

{error.message}

-{/await} - -{#await data_store_obj_get_promises['hub_site_footer']} -

Loading site footer...

-{:then} -

Site footer loaded.

- - -{:catch error} -

{error.message}

-{/await} - -
- - - diff --git a/src/0_posts__main.svelte b/src/0_posts__main.svelte deleted file mode 100644 index 43d9712d..00000000 --- a/src/0_posts__main.svelte +++ /dev/null @@ -1,711 +0,0 @@ - - - -
- - -
-

- Novi: {$ae_app.novi_full_name} - - ( - {$ae_app.novi_email} - {#if $ae_app.administrator_access} - Administrator - {:else if $ae_app.trusted_access} - Trusted - {/if} - UUID: {$ae_app.novi_uuid} - ) - -

- -
- -{#if $ae_app.posts.show_main__options} -
- - {#if $ae_app.trusted_access && $ae_app.posts.hidden == 'not_hidden'} - - {:else} - - {/if} - - {#if $ae_app.administrator_access} - {#if $ae_app.posts.enabled == 'enabled'} - - {:else} - - {/if} - {/if} - - - -
-{/if} - -{#if $ae_app.posts.show_list__post_obj_li} -
-{#if $slct.post_obj_li} - -{#each $slct.post_obj_li as idaa_post_obj, index} -
-
-

- {@html idaa_post_obj.title} - {#if idaa_post_obj.topic_id} {idaa_post_obj.topic_name}{/if} -

-
- - {#if idaa_post_obj.content}
{@html idaa_post_obj.content}
{/if} - -
- - - {#if $ae_app.trusted_access || idaa_post_obj.external_person_id === $ae_app.novi_uuid || idaa_post_obj.email === $ae_app.novi_email} - - {/if} - - - -
- - - -
-{/each} - -{:else} - No posts found at this time -{/if} -
-{/if} - - -{#if $ae_app.posts.show_edit__post_id} - { - $ae_app.posts.show_main__options = true; - $ae_app.posts.show_list__post_obj_li = true; - $ae_app.posts.show_edit__post_id = false; - // $ae_app.posts.show_view__post_id = false; - - const url = new URL(location); - url.searchParams.delete('post_id'); - history.pushState({}, '', url); - - let message = {'post_id': null}; - window.parent.postMessage(message, "*"); - }} - on:report__modal_dimensions={ (event) => { - console.log('*** on:report__modal_dimensions ***'); - console.log(event.detail); - - $ae_app.modal_dimensions = event.detail.modal_dimensions; - }} - > - {@html ($slct.post_obj.title ? $slct.post_obj.title : 'New BB Post')} - - -
- -
-
-
-{/if} - - -{#if $ae_app.posts.show_view__post_id && $slct.post_obj} - { - $slct.post_comment_id = null; // NOTE: Reset in case the post comment was being edited. - $slct.post_comment_obj = {}; // NOTE: Reset in case the post comment was being edited. - $slct.post_comment_obj_li = []; - - $ae_app.posts.show_main__options = true; - $ae_app.posts.show_list__post_obj_li = true; - // $ae_app.posts.show_edit__post_id = false; - $ae_app.posts.show_view__post_id = false; - $ae_app.posts.show_edit__post_comment = false; - - const url = new URL(location); - url.searchParams.delete('post_id'); - history.pushState({}, '', url); - - let message = {'post_id': null}; - window.parent.postMessage(message, "*"); - }} - on:report__modal_dimensions={ (event) => { - console.log('*** on:report__modal_dimensions ***'); - console.log(event.detail); - - $ae_app.modal_dimensions = event.detail.modal_dimensions; - }} - > - {$slct.post_obj.title} - - - - - - - -{/if} - -
- - - diff --git a/src/0_sponsorships__main.svelte b/src/0_sponsorships__main.svelte deleted file mode 100644 index 250482cc..00000000 --- a/src/0_sponsorships__main.svelte +++ /dev/null @@ -1,847 +0,0 @@ - - - - - -
-
-

Sponsorships for One Sky IT Demo

-
- -
-

- ae: {($ae_app.ae_full_name ? $ae_app.ae_full_name : 'Name not set')} - - ( - {($ae_app.ae_email ? $ae_app.ae_email : 'Email not set')} - {#if $ae_app.administrator_access} - Administrator - {:else if $ae_app.trusted_access} - Trusted - {/if} - {$ae_app.ae_user ? $ae_app.ae_user : 'User not set'} - ) - -

-
- -
-
- {@html $ae_app.sponsorships.ds.sponsorships_info} -
-
- -{#if $ae_app.sponsorships.show_main__options} -
-
- {@html $ae_app.sponsorships.ds.sponsorships_options} -
- - - -
-{/if} - - -{#if $slct.sponsorship_obj_li && $ae_app.sponsorships.show_list__sponsorship_obj_li} - -{/if} - - -{#if $ae_app.sponsorships.show_edit__sponsorship_obj} - - { - $ae_app.sponsorships.show_main__options = true; - $ae_app.sponsorships.show_list__sponsorship_obj_li = true; - $ae_app.sponsorships.show_edit__sponsorship_obj = false; - $ae_app.sponsorships.show_view__sponsorship_obj = false; - - const url = new URL(location); - url.searchParams.delete('sponsorship_id'); - history.pushState({}, '', url); - - let message = {'sponsorship_id': null}; - window.parent.postMessage(message, "*"); - }} - on:report__modal_dimensions={ (event) => { - console.log('*** on:report__modal_dimensions ***'); - console.log(event.detail); - - $ae_app.modal_dimensions = event.detail.modal_dimensions; - }} - > - {@html ($slct.sponsorship_obj.name ? $slct.sponsorship_obj.name : 'New Sponsorship')} - - - - - - - - -{/if} - - -{#if $ae_app.sponsorships.show_view__sponsorship_obj && $slct.sponsorship_obj} - - { - $slct.sponsorship_id = null; - $slct.sponsorship_obj = {}; - - $ae_app.sponsorships.show_main__options = true; - $ae_app.sponsorships.show_list__sponsorship_obj_li = true; - $ae_app.sponsorships.show_view__sponsorship_obj = false; - $ae_app.sponsorships.show_edit__sponsorship_obj = false; - - const url = new URL(location); - url.searchParams.delete('sponsorship_id'); - history.pushState({}, '', url); - - let message = {'sponsorship_id': null}; - window.parent.postMessage(message, "*"); - }} - on:report__modal_dimensions={ (event) => { - console.log('*** on:report__modal_dimensions ***'); - console.log(event.detail); - - $ae_app.modal_dimensions = event.detail.modal_dimensions; - }} - > - {@html $slct.sponsorship_obj.name} - - - - - - - - -{/if} - -
- - - diff --git a/src/10_edit__archive_content_obj.svelte b/src/10_edit__archive_content_obj.svelte deleted file mode 100644 index 348e9e4c..00000000 --- a/src/10_edit__archive_content_obj.svelte +++ /dev/null @@ -1,706 +0,0 @@ - - - -
- - -
- - {#await update_archive_content_obj_promise} -
Saving...
- {:then} - {#if update_archive_content_obj_promise} -
Finished saving
- {:else} - - {/if} - {/await} - -

Archive Content

- - - - - - - - - -
- Public Access with Rotating Access Key/Passcode - - -
- - -

File?

- {#if !$slct.archive_content_id} - - - {/if} - - - - - - - -

Original

- - -
- -
- - - - - - - {#if $ae_app.trusted_access} -
- -

- Admin Options - -

- - - - - - - - - - - {#if $ae_app.administrator_access} - - {/if} - - - - - -
- {/if} - - -
- - - {#if $slct.archive_content_id} - - {/if} -
- - - -
- - - diff --git a/src/10_edit__archive_obj.svelte b/src/10_edit__archive_obj.svelte deleted file mode 100644 index c8f30870..00000000 --- a/src/10_edit__archive_obj.svelte +++ /dev/null @@ -1,588 +0,0 @@ - - - -
- -
- - {#await update_archive_obj_promise} -
Saving...
- {:then} - {#if update_archive_obj_promise} -
Finished saving
- {:else} - - {/if} - {/await} - -

Archive

- - - - - - - -

Original

- - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - {#if $ae_app.trusted_access} -
- -

- Admin Options - -

- - - - - - - - - - - {#if $ae_app.administrator_access} - - {/if} - - - - - -
- {/if} - - -
- - - {#if $slct.archive_id} - - {/if} -
- -
- -
- - - diff --git a/src/10_edit__post_comment_obj.svelte b/src/10_edit__post_comment_obj.svelte deleted file mode 100644 index 41cc3b07..00000000 --- a/src/10_edit__post_comment_obj.svelte +++ /dev/null @@ -1,384 +0,0 @@ - - - -
- -
- - {#await update_post_comment_obj_promise} -
Saving...
- {:then} - {#if update_post_comment_obj_promise} -
Finished saving
- {:else} - - {/if} - {/await} - -

Post Comment

- - - - - -

Poster's Information

-
- Post as Anonymous -
- - -
-
- - -
-
- - {#if $ae_app.trusted_access} - - {/if} - - - - {#if $ae_app.trusted_access} - - {/if} - - - {#if $ae_app.trusted_access} -
- -

- Admin Options - -

- - - - - - - - - - - {#if $ae_app.administrator_access} - - {/if} - - - - - -
- {/if} - - -
- - - {#if $slct.post_comment_id} - {#if $ae_app.administrator_access} - - {:else if $ae_app.trusted_access} - - {:else} - - {/if} - {/if} -
- -
- - - -
- - - diff --git a/src/10_edit__post_obj.svelte b/src/10_edit__post_obj.svelte deleted file mode 100644 index d6098942..00000000 --- a/src/10_edit__post_obj.svelte +++ /dev/null @@ -1,536 +0,0 @@ - - - -
- -
- - {#await update_post_obj_promise} -
Saving...
- {:then} - {#if update_post_obj_promise} -
Finished saving
- {:else} - - {/if} - {/await} - -

Post

- - - - - - - -

Poster's Information

-
- Post as Anonymous -
- - -
-
- - -
-
- - {#if $ae_app.trusted_access} - - {/if} - - - - {#if $ae_app.trusted_access} - - {/if} - - - - - - - - - {#if $ae_app.trusted_access} -
- -

- Admin Options - -

- - - - - - - - - - - {#if $ae_app.administrator_access} - - {/if} - - {#if $ae_app.trusted_access} - - {/if} - - - -
- {/if} - - -
- - - {#if $slct.post_id} - {#if $ae_app.administrator_access} - - {:else if $ae_app.trusted_access} - - {:else} - - {/if} - {/if} -
- -
- -
- - - diff --git a/src/10_edit__sponsorship_obj.svelte b/src/10_edit__sponsorship_obj.svelte deleted file mode 100644 index 1c783060..00000000 --- a/src/10_edit__sponsorship_obj.svelte +++ /dev/null @@ -1,1159 +0,0 @@ - - - -
- -
- - {#await update_sponsorship_obj_promise} -
Saving...
- {:then} - {#if update_sponsorship_obj_promise} -
Finished saving
- {:else} - - {/if} - {/await} - - - - - -
- - - - - - - -
- -
- -
-

How to Attended

- -
- Face-to-Face or Virtual -

Is this a face-to-face/in person sponsorship, a virtual/online sponsorship, or both?

-
- - -
-
- -
- - Address - - - - - - - - - - - -
- -
- - - - {#if $ae_app.lu_country_subdivision_list} - - {:else} - - {/if} - - - - {#if $ae_app.lu_country_list} - - {:else} - - {/if} - -
- - - -
- Virtual/Online - - - - - - - -
- - - -
- -
- -
-

Recurring and When

- -
- Recurring -
- - -
-
- -
- - Recurring - -
- -
- - - - - - - -
- -
- - - -
- - {#if ( $ae_app.administrator_access || $slct.sponsorship_obj && ($slct.sponsorship_obj.show_recurring_text || ($slct.sponsorship_obj.recurring_text && !$slct.sponsorship_obj.recurring_text.includes('*gen*'))) )} -

Please only use the text box for additional information if the options above do not cover your needs. This may affect how this sponsorship shows up in search results.

- - {/if} - {#if ( $ae_app.administrator_access || $slct.sponsorship_obj && ($slct.sponsorship_obj.show_recurring_text || ($slct.sponsorship_obj.recurring_text && !$slct.sponsorship_obj.recurring_text.includes('*gen*'))) )} - - {:else} - - {/if} - - -
- -
- -
-

Contacts

- -
- Contact 1 - - - - - - - - - - - - - -
- -
- Contact 2 - - - - - - - - - -
-
- -
- -
- -

- Admin Options - -

- - - - - - - - - - - {#if $ae_app.administrator_access} - - {/if} - - {#if $ae_app.trusted_access} - - {/if} - - - -
- - -
- {#if $slct.sponsorship_id} - - {:else} - - {/if} - - {#if $slct.sponsorship_id} - {#if $ae_app.administrator_access} - - {:else if $ae_app.trusted_access} - - {:else} - - {/if} - {/if} -
- -
- -
- - - diff --git a/src/10_hub__site_menu.svelte b/src/10_hub__site_menu.svelte deleted file mode 100644 index 38d9a724..00000000 --- a/src/10_hub__site_menu.svelte +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - diff --git a/src/10_list__archive_content_obj.svelte b/src/10_list__archive_content_obj.svelte deleted file mode 100644 index befdb469..00000000 --- a/src/10_list__archive_content_obj.svelte +++ /dev/null @@ -1,489 +0,0 @@ - - - -
-{#if $slct.archive_content_obj_li} - -{#each $slct.archive_content_obj_li as idaa_archive_content_obj, index} - -{#if idaa_archive_content_obj.group && idaa_archive_content_obj.group != $slct.archive_content_obj_li[index - 1]?.group} -
- -
-{/if} -{#if $ae_app.archives.show_list__archive_content_li_group == idaa_archive_content_obj.group} - -
- -
-

- {idaa_archive_content_obj.name} - - {#if idaa_archive_content_obj.type} {idaa_archive_content_obj.type}{/if} - - {#if $ae_app.trusted_access && idaa_archive_content_obj.hide} Hidden{/if} - {#if $ae_app.administrator_access && !idaa_archive_content_obj.enable} Not enabled{/if} -

-
- -
- {#if idaa_archive_content_obj.archive_content_id_random != $ae_app.archives.show_view__archive_content_media} - - {:else} - - {/if} - - {#if $ae_app.trusted_access} - - - Download - - {#if file_icons[idaa_archive_content_obj.file_extension]} - - {:else} - - {/if} - .{idaa_archive_content_obj.file_extension} - - {/if} - - {#if $ae_app.trusted_access} - - - {/if} -
- - - - {#if idaa_archive_content_obj.archive_content_id_random == $ae_app.archives.show_view__archive_content_media} - - {/if} - - -
- {#if idaa_archive_content_obj.description} -
-
Description:
-
- {idaa_archive_content_obj.description} -
-
- {/if} - - {#if idaa_archive_content_obj.content_html} -
-
Content:
-
- {@html idaa_archive_content_obj.content_html} -
-
- {/if} - -
- Original date/time: - {#if idaa_archive_content_obj.original_datetime} - {ae.util.iso_datetime_formatter(idaa_archive_content_obj.original_datetime, 'datetime_long')} - {/if} - {#if idaa_archive_content_obj.original_timezone} - Timezone: - {idaa_archive_content_obj.original_timezone} - {/if} -
- -
- - - -
-{/if} -{/each} - -{:else} -
No archives avalible to show at this time
-{/if} -
- - -{#if $ae_app.archives.show_edit__archive_content_id} - - { - $slct.archive_content_id = null; - $slct.archive_content_obj = {}; - - // $ae_app.archives.show_main__options = true; - // $ae_app.archives.show_list__archive_content_li = true; - $ae_app.archives.show_view__archive_content_media = false; - $ae_app.archives.show_edit__archive_content_id = false; - // $ae_app.archives.show_view__archive_content_id = false; - - const url = new URL(location); - url.searchParams.delete('archive_content_id'); - history.pushState({}, '', url); - - let message = {'archive_content_id': null}; - window.parent.postMessage(message, "*"); - }} - > - {@html ($slct.archive_content_obj.name ? $slct.archive_content_obj.name : 'New Archive Content')} - - - - - - - - -{/if} - - - diff --git a/src/10_list__archive_obj.svelte b/src/10_list__archive_obj.svelte deleted file mode 100644 index bc2f5eb5..00000000 --- a/src/10_list__archive_obj.svelte +++ /dev/null @@ -1,151 +0,0 @@ - - - -
-{#if $slct.archive_obj_li} - -{#each $slct.archive_obj_li as idaa_archive_obj, index} -
- -
- {idaa_archive_obj.name} - {#if idaa_archive_obj.original_location} - ( - - {idaa_archive_obj.original_location} - ) - - {/if} - - {#if $ae_app.trusted_access && idaa_archive_obj.hide} Hidden{/if} - {#if $ae_app.administrator_access && !idaa_archive_obj.enable} Not enabled{/if} -
- -
- - - {#if $ae_app.trusted_access} - - {/if} -
- - -
-
- -
- {@html idaa_archive_obj.description} -
-
-
- - - -
-{/each} - -{:else} -
No archives avalible to show at this time
-{/if} -
- - - diff --git a/src/10_list__sponsorship_obj.svelte b/src/10_list__sponsorship_obj.svelte deleted file mode 100644 index 21594bcd..00000000 --- a/src/10_list__sponsorship_obj.svelte +++ /dev/null @@ -1,163 +0,0 @@ - - - -
-{#if $slct.sponsorship_obj_li} - - - - - - - - - - - - - - -{#each $slct.sponsorship_obj_li as ae_sponsorship_obj, index} - - - - - - - - - - - - - - - - - - -{/each} - -
OptionsName LevelPaidGuests - - POC - CreatedUpdated
- - - {#if $ae_app.administrator_access} - - {/if} - {ae_sponsorship_obj.name} - - {#if ae_sponsorship_obj.level_num}{ae_sponsorship_obj.level_num}{/if} - {#if ae_sponsorship_obj.level_str}{ae_sponsorship_obj.level_str}{/if} - - {#if ae_sponsorship_obj.paid} - - - {:else} - - - {/if} - {#if ae_sponsorship_obj.amount} - ${ae_sponsorship_obj.amount} - {/if} - - {#if ae_sponsorship_obj.guest_li_json} - {ae_sponsorship_obj.guest_li_json.length} - {:else} - - -- None -- - {/if} - - {#if ae_sponsorship_obj.poc_json} - - {ae_sponsorship_obj.poc_json.given_name} {ae_sponsorship_obj.poc_json.family_name} - - {ae_sponsorship_obj.poc_json.email} - {/if} - {ae.util.iso_datetime_formatter(ae_sponsorship_obj.created_on, 'datetime_short')}{ae.util.iso_datetime_formatter(ae_sponsorship_obj.updated_on, 'datetime_short')}
-{:else} -
No sponsorships avalible to show at this time
-{/if} -
- - - diff --git a/src/10_player__archive_content_obj.svelte b/src/10_player__archive_content_obj.svelte deleted file mode 100644 index 93a0b43a..00000000 --- a/src/10_player__archive_content_obj.svelte +++ /dev/null @@ -1,78 +0,0 @@ - - - - -
- {#if file_icons[$slct.archive_content_obj.file_extension] == 'file-audio'} - - - {:else if file_icons[$slct.archive_content_obj.file_extension] == 'file-video'} - - - {:else if file_icons[$slct.archive_content_obj.file_extension] == 'file-image'} - {$slct.archive_content_obj.name} - {:else} - {$slct.archive_content_obj.filename} - {/if} - - {#if $slct.archive_content_obj.description} -
- {$slct.archive_content_obj.description} -
- {/if} - - {#if $slct.archive_content_obj.content_html} -
- {@html $slct.archive_content_obj.content_html} -
- {/if} - -
\ No newline at end of file diff --git a/src/10_view__archive_obj.svelte b/src/10_view__archive_obj.svelte deleted file mode 100644 index c505b036..00000000 --- a/src/10_view__archive_obj.svelte +++ /dev/null @@ -1,244 +0,0 @@ - - - -
- -
-

{@html $slct.archive_obj.name}

-
- -
- {#if $slct.archive_obj.description}
{@html $slct.archive_obj.description}
{/if} - {#if $slct.archive_obj.content_html}
{@html $slct.archive_obj.content_html}
{/if} - {#if $slct.archive_obj.original_url} -
- URL: - {$slct.archive_obj.original_url} -
- {/if} - {#if $slct.archive_obj.original_datetime} -
- Start Date: - {ae.util.iso_datetime_formatter($slct.archive_obj.original_datetime, 'datetime_long')} -
- {/if} - {#if $slct.archive_obj.original_timezone} - Timezone: - {$slct.archive_obj.original_timezone} - {/if} - {#if $slct.archive_obj.original_location} -
- Location: - {$slct.archive_obj.original_location} -
- {/if} -
- -
-
-
- Created on: - {ae.util.iso_datetime_formatter($slct.archive_obj.created_on, 'datetime_iso_no_seconds')} - {#if $slct.archive_obj.updated_on} - Updated on: - {ae.util.iso_datetime_formatter($slct.archive_obj.updated_on, 'datetime_iso_no_seconds')} - {/if} -
-
- - {#if $ae_app.trusted_access} -
- {#if $ae_app.trusted_access || $slct.archive_obj.external_person_id === $ae_app.novi_uuid} - - - - {/if} -
- {/if} -
- -{#if $slct.archive_obj} - - - -{/if} - - - - - - - -
- - - diff --git a/src/10_view__post_obj.svelte b/src/10_view__post_obj.svelte deleted file mode 100644 index 680c3b26..00000000 --- a/src/10_view__post_obj.svelte +++ /dev/null @@ -1,261 +0,0 @@ - - - -
- -
-

- {@html $slct.post_obj.title} - {#if $slct.post_obj.topic_id} {$slct.post_obj.topic_name}{/if} -

-
- -
{@html $slct.post_obj.content}
- - - - - -{#if $ae_app.posts.show_edit__post_comment} -
- - { - $slct.post_comment_id = null; - $slct.post_comment_obj = {}; - - // $ae_app.posts.show_post_list = true; - // $ae_app.posts.show_edit__post_id = false; - // $ae_app.posts.show_view__post_id = false; - $ae_app.posts.show_edit__post_comment = false; - }} - > - Comment on: {($slct.post_obj.title ? $slct.post_obj.title : '')} - - -
- -
-
-
-
-{/if} - -{#if $slct.post_comment_obj_li.length} -{#each $slct.post_comment_obj_li as idaa_post_comment_obj, index} -
-
{@html idaa_post_comment_obj.content}
- - -
-
- - Comment by: - {#if idaa_post_comment_obj.anonymous} - - Anonymous - {:else} - - {idaa_post_comment_obj.full_name} - - {/if} -
- Created on: - {ae.util.iso_datetime_formatter(idaa_post_comment_obj.created_on, 'datetime_iso_no_seconds')} - {#if idaa_post_comment_obj.updated_on} - Updated on: - {ae.util.iso_datetime_formatter(idaa_post_comment_obj.updated_on, 'datetime_iso_no_seconds')} - {/if} -
-
- - {#if $ae_app.trusted_access || idaa_post_comment_obj.external_person_id === $ae_app.novi_uuid} -
- -
- {/if} -
- -{/each} -{/if} - -
- - - diff --git a/src/10_view__sponsorship_obj.svelte b/src/10_view__sponsorship_obj.svelte deleted file mode 100644 index e062c3f2..00000000 --- a/src/10_view__sponsorship_obj.svelte +++ /dev/null @@ -1,192 +0,0 @@ - - - -
- -
-

{@html $slct.sponsorship_obj.name}

-
- -
-
-
Description:
-
{@html $slct.sponsorship_obj.description ? $slct.sponsorship_obj.description : '-- No Description Given --'}
-
- -
- Level of Sponsorship: - {$slct.sponsorship_obj.level_num} — {$slct.sponsorship_obj.level_str} -
- -
- Paid: - $ - - {$slct.sponsorship_obj.paid ? 'Yes, marked as paid' : 'Not yet marked as paid'} - -
- - - -
-

Guest List

- - {#if $slct.sponsorship_obj.guest_li_json && $slct.sponsorship_obj.guest_li_json.length && $slct.sponsorship_obj.guest_li_json[0].full_name} - - {:else} -
No guest list found!
- {/if} - -
- -
-
- - ID: - {$slct.sponsorship_obj.sponsorship_id_random} - - - Created on: {ae.util.iso_datetime_formatter($slct.sponsorship_obj.created_on, 'datetime_short')} - - - Updated on: {ae.util.iso_datetime_formatter($slct.sponsorship_obj.updated_on, 'datetime_short')} - -
- - {#if $ae_app.trusted_access || $slct.sponsorship_obj.external_person_id === $ae_app.novi_uuid || $slct.sponsorship_obj.contact_1_email === $ae_app.novi_email} -
- -
- {/if} -
- -
- -
- - - diff --git a/src/App.svelte b/src/App.svelte deleted file mode 100644 index e8b590f1..00000000 --- a/src/App.svelte +++ /dev/null @@ -1,47 +0,0 @@ - - -
-
- - - - - - -
-

Vite + Svelte

- -
- -
- -

- Check out SvelteKit, the official Svelte app framework powered by Vite! -

- -

- Click on the Vite and Svelte logos to learn more -

-
- - diff --git a/src/app.css b/src/app.css deleted file mode 100644 index aef7c5a2..00000000 --- a/src/app.css +++ /dev/null @@ -1,711 +0,0 @@ -:root { - font-family: system-ui, Helvetica, Arial, sans-serif; - /* line-height: 1.5; */ - /* font-weight: 400; */ - - color-scheme: light dark; - /* color: rgba(255, 255, 255, 0.87); */ - /* background-color: #242424; */ - - /* font-synthesis: none; */ - /* text-rendering: optimizeLegibility; */ - /* -webkit-font-smoothing: antialiased; */ - /* -moz-osx-font-smoothing: grayscale; */ - /* -webkit-text-size-adjust: 100%; */ -} - -body { - /* Use boarder-box to make things easier with borders and scrolling in general. */ - box-sizing: border-box; - - /* outline: dashed thick blue; */ - /* border: solid thick blue; */ - - margin: 1em; - padding: 0em; - - /* Account for the margin */ - height: calc(100vh - 1em - 1em); - - /* max-width: 1280px; */ - - /* background-color: hsla(240, 50%, 20%); */ - background-color: hsla(207, 43%, 18%); - - /* Display as flex does not seem to work well here. */ -} - -.svelte_target.ae_svelte_app_hub { - position: fixed; - top: 0; - right: 0; - - background-color: hsla(0, 0%, 100%, .50); - color: black; - font-size: x-small; - - padding: .25em; - - z-index: 1000; - - opacity: .5; - - transition: all .25s ease-in-out; -} -.svelte_target.ae_svelte_app_hub:hover { - opacity: 1; - background-color: hsla(0, 50%, 80%, .75); -} - -.svelte_target.ae_svelte_app { - - box-sizing: border-box; - /* box-sizing: content-box; */ - /* outline: solid thin hsla(0, 50%, 50%, .50); */ - border: solid medium hsla(0, 0%, 50%, .40); - /* border-color: hsla(207, 43%, 18%); */ - - /* background-color: white; */ - /* background-color: hsla(240, 100%, 95%, .97); */ - background-color: hsla(0, 0%, 100%, .90); - - - overflow: scroll; - - height: 100%; - /* max-height: calc(100% - 1em); */ - - /* width: 100%; */ - /* max-width: calc(100% - 1em); */ - max-width: 1280px; - - /* margin: 1em; */ - /* Use auto margin to center this element within the body */ - margin: auto; - padding: .5em; - - -} - -/* Use this to fix the scrolling. This is mostly useful for wide tables. */ -/* This must be applied to the parent of the table. */ -.svelte_target.ae_svelte_app .svelte_component { - overflow: scroll; -} - -#Site-Header { - background-color: hsla(0, 0%, 100%, 0.85); - padding: .5em 1em; - margin-bottom: 1em; - - /* display: flex; */ - /* justify-content: space-between; */ -} - -#Site-Header h1 { - /* text-shadow: 0em 0em .75em hsla(240,100%,25%,1); */ - /* text-shadow: 0em 0em .75em hsla(0,0%,5%,1); */ - - font-size: 2.5em; - line-height: 1.1; - margin: 0; - padding: 0; -} - -#Site-Header h2 { - font-size: 1.5em; - line-height: 1.1; - margin: 0; - padding: 0; - - /* Make font italic */ - font-style: italic; -} - -#Site-Nav-Menu { - background-color: hsla(0, 0%, 100%, 0.85); - /* padding: .5em 1em; */ - margin-bottom: 1em; -} - -#Site-Footer { - background-color: hsla(0, 0%, 100%, 0.85); - padding: .5em 1em; - margin-top: 1em; - - display: flex; - justify-content: space-between; -} - - -address { - margin-bottom: .25em; - padding-left: .5em; - font-style: italic; -} - -pre { - white-space: pre-wrap; - word-break: normal; - word-wrap: normal; - - border: none; -} - -table.ae_table { - /* border-collapse: collapse; */ - border-spacing: 0px; - border: solid thin hsla(0, 0%, 0%, .30); - - width: 100%; - max-width: 100%; - - /* margin: 1em; */ - /* padding: 1em; */ - /* overflow: scroll; */ - -} -.ae_table tr { - border: solid thin hsla(0, 0%, 0%, .20); -} -.ae_table th { - border: solid thin hsla(0, 0%, 0%, .10); - border-bottom: solid thin hsla(0, 0%, 0%, .20); - - padding: .5em; - - /* text-align: center; */ -} -.ae_table td { - border: solid thin hsla(0, 0%, 0%, .10); - - padding: .5em; - - text-align: center; -} - - -textarea { - /* width: calc(fit-content - 1em); */ - width: 100%; - max-width: calc(fit-content - .5em); -} - -button.ae_normal, .btn.ae_normal { - /* font: normal 1em sans-serif; */ - font-size: 1rem; -} - -button.ae_smaller, .btn.ae_smaller { - font-size: .8rem; -} - -button.ae_smallest, .btn.ae_smallest { - font-size: .65rem; -} - -/* h1 { - font-size: 3.2em; - line-height: 1.1; -} */ - -/* .card { - padding: 2em; -} */ - -/* #app { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} */ - -/* button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} */ - -/* @media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} */ - - -/* BEGIN: Novi and Bootstrap specific fixes */ -/* .ae_btn .btn_xs, .btn .btn-xs { - font-size: .65rem; -} */ - -.ae_btn.btn-danger, .ae_btn.btn-info, .ae_btn.btn-warning { - border-radius: 60px; -} - -/* END: Novi and Bootstrap specific fixes */ - - -.ae_main { - /* min-height: fit-content; */ - /* min-height: 100vh; */ - /* height: 100%; */ - - /* min-width: 100vw; */ - /* width: 100%; */ - - /* contain: layout; */ - /* contain: content; */ - /* contain: size; */ -} - -.ae_dev_in_progress { - background-color: hsla(300,80%,50%,1); -} - -.c_idaa_bb, .c_idaa_recovery_meetings { - display: flex; - flex-direction: column; - /* align-items: center; */ - /* justify-content: center; */ - /* min-height: 100vh; */ - - gap: 1em; -} - -.c_idaa_archives>.ae_meta, .c_idaa_bb>.ae_meta, .c_idaa_recovery_meetings>.ae_meta { - background-color: lightgray; -} - -.ae_list.archive_obj_li { - /* border: solid thin gray; */ - - display: flex; - flex-direction: column; - /* align-items: stretch; */ - /* justify-content: stretch; */ - gap: .5em; -} - -.ae_list.archive_obj_li .ae_object.archive_obj, .ae_list.archive_content_obj_li .ae_object.archive_content_obj { - border-top: solid medium hsla(0,0%,90%,1); - /* border-bottom: solid thin hsla(0,0%,90%,1); */ - /* margin: 1em .5em; */ - padding: .5em .5em; - - width: 100%; - - /* flex-grow: 1; */ -} - -.c_idaa_recovery_meetings section.ae_options fieldset { - display: flex; - flex-direction: row; -} - -.c_idaa_recovery_meetings section.ae_options fieldset legend { - display: inline; - /* border: none; */ - margin: 0; - - width: auto; -} - -.ae_list.event_obj_li { - /* border: solid thin gray; */ - - display: flex; - flex-direction: column; - /* align-items: stretch; */ - /* justify-content: stretch; */ - gap: .5em; -} - -.ae_list.event_obj_li .ae_object.event_obj { - border-top: solid medium hsla(0,0%,90%,1); - /* border-bottom: solid thin hsla(0,0%,90%,1); */ - /* margin: 1em .5em; */ - padding: .5em .5em; - - width: 100%; - - /* flex-grow: 1; */ -} - -/* For now this only affects the IDAA Recovery Meetings when viewing a specific meeting. */ -.view__event_obj a, .view__event_obj a.ae_link { - /* color: #007bff; */ - color: #82B6E1; - /* text-decoration: underline; */ - /* background-color: transparent; */ -} -.view__event_obj a:hover, .view__event_obj a:focus, .view__event_obj a.ae_link:hover, .view__event_obj a.ae_link:focus { - color: #0056b3; - text-decoration: underline; - /* background-color: transparent; */ - - /* scale: 1.1; */ -} - -.svelte_component { - margin: 0em; - padding: 0em; -} - -.ae_section { - display: flex; - flex-direction: column; -} - -.ae_warning { - color: red; -} - -.ae_highlight { - background-color: hsla(60,100%,50%,1); -} - -.ae_d_none, .d-none { - display: none; -} - -.ae_group { - /* display: flex; */ - /* flex-direction: row; */ - /* align-items: center; */ - /* justify-content: space-between; */ - /* justify-content: space-evenly; */ -} - -.ae_flex { - display: flex; - - /* flex-direction: row; */ - /* align-items: center; */ - /* justify-content: space-between; */ -} - -.ae_column { - display: flex; - flex-direction: column; - /* align-items: center; */ - /* justify-content: space-between; */ - justify-content: space-evenly; -} - -.ae_row { - display: flex; - flex-direction: row; - - align-items: center; - /* justify-content: space-between; */ - justify-content: space-evenly; -} - -.ae_flex_justify_around { - justify-content: space-around; -} - -.ae_text_align_left { - text-align: left; -} -.ae_text_align_center { - text-align: center; -} -.ae_text_align_right { - text-align: right; -} - - -.ae_width_25 { - width: 25%; - /* max-width: 25%; */ -} -.ae_width_30 { - width: 30%; - /* max-width: 30%; */ -} -.ae_width_50 { - width: 50%; - /* max-width: 50%; */ -} -.ae_width_100 { - width: 100%; - /* max-width: 100%; */ -} - -.ae_width_md { - min-width: 16em; - width: 16em; - max-width: 16em; -} - -.ae_margin_xs { - margin: .25em; -} -.ae_margin_sm { - margin: .5em; -} -.ae_margin_md { - margin: .75em; -} -.ae_margin_lg { - margin: 1.0em; -} -.ae_margin_lg { - margin: 1.25em; -} - -.ae_float_right { - float: right; - align-self: flex-end; -} - - -.ae_options { - padding: 1em; -} - -.ae_fade_in { - /* animation: fadein 1s; */ - opacity: 1; - /* height: initial; */ - /* max-height: 100%; */ - /* width: initial; */ - /* max-width: 100%; */ - transition: opacity, height, width, .25s ease-in; - - /* transition: height 1s ease-in; */ - /* width: initial; */ - /* transition: opacity, height, width 1s ease-in 1s; */ -} -.ae_fade_out { - /* animation: fadeout 1s; */ - opacity: 0; - height: 0; - max-height: 0; - width: 0; - max-width: 0; - transition: opacity, height, width, .25s ease-out; -} - -/* .ae_section.ae_options { - border: solid thin hsla(0,0%,90%,.75); */ - - /* Display options using flex (row, wrap, space elements equally) */ - /* display: flex; - flex-direction: column; - flex-wrap: wrap; - justify-content: center; */ - /* justify-content: space-evenly; */ - /* align-content: center; - align-items: center; -} */ - -.ae_section.ae_meta { - font-size: smaller; - color: hsla(0,0%,50%,1); -} - -.svelte_component.ae_edit { - /* outline: dashed thin pink; */ - border: solid medium hsla(220,100%,50%,.1); - -} - -.svelte_component.ae_create { - border: solid medium hsla(0,100%,50%,.1); -} - -/* This covers the entire viewable area. Essentially a new "body" */ -/* element_ae_modal ae_modal_showing_container ae_modal modal_cover_body */ -.ae_modal { - position: fixed; - top: 0; - left: 0; - z-index: 1000; - - min-height: 100vh; - height: 100%; - /* max-height: 100vh; */ - - min-width: 100%; - /* width: 100%; */ - width: 100vw; - max-width: 100vw; - /* max-width: 1280px; */ - - /* background-color: hsla(180,75%,90%,.75); */ - background-color: hsla(180,0%,90%,.75); - - display: flex; - flex-direction: column; - - align-items: center; - /* align-items: flex-start; */ - /* justify-content: center; */ - /* justify-content: flex-start; */ - - /* contain: layout; */ - contain: strict; - /* contain: size; */ - - /* Margin should stay 0 and padding can be used to create space within the modal for the actual content. */ - margin: 0; - padding: 0em; - - /* pointer-events: auto; */ -} - -.ae_modal .modal_content { - z-index: 1001; - position: relative; - - box-sizing: content-box; - - background-color: white; - /* margin: 1em; - padding: .25em .5em; */ - margin: 0em; - padding: 0em; - - border: solid thin lightgray; - border-radius: .5em; - - /* box-shadow: .5em .5em 1.5em .5em hsla(0, 0%, 0%, .9); */ - box-shadow: 0em 0em 1.5em .5em hsla(0, 0%, 0%, .9); - - /* min-height: 50vh; */ - max-height: calc(100vh - 2em); - /* max-height: fit-content; */ - - /* min-width: 50vw; */ - max-width: calc(100vw - 2em); - /* max-width: 100vw; */ - - /* scroll-behavior: auto; */ - /* overflow: scroll; */ - /* overflow: auto; */ - /* contain: content; */ - /* contain: strict; */ - /* overflow: auto; */ - - display: flex; - flex-direction: column; - align-items: stretch; -} - -.ae_modal .modal_header { - background-color: hsla(0,0%,90%,.5); - border-bottom: solid thin lightgray; - - margin: 0em; - padding: .25em .25em; - - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; -} - -.ae_modal .modal_body { - /* outline: dashed medium pink; */ - - margin: 0em; - padding: .25em .25em; - - /* height: 100vh; */ - - /* contain: content; */ - /* pointer-events: auto; */ - overflow: scroll; - /* overflow-x: auto; */ - /* overflow-y: scroll; */ -} - -.ae_modal .modal_footer { - background-color: hsla(0,0%,90%,.5); - border-top: solid thin lightgray; - - margin: 0em; - padding: .25em .25em; - - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; -} - -/* body.modal_cover_body { - pointer-events: none; - overflow-y: hidden; - height: fit-content; - contain: size; -} */ - -body.modal_cover_body .ae_modal { - margin: 0em; - padding: 0em; - /* max-width: 100vw; */ - - align-items: stretch; -} - -body.modal_cover_body .ae_modal .modal_content { - /* outline: dashed thin pink; */ - - border: none; - border-radius: 0; - - box-shadow: none; - - max-height: calc(100vh - .5em); - - max-width: calc(100vw); -} - -body.modal_cover_body .ae_modal .modal_body { - /* outline: dashed medium pink; */ -} - - -form { - display: flex; - flex-direction: column; - /* justify-content: flex-start; */ - /* align-items: center; */ - - padding: .75em; -} - -form fieldset { - display: flex; - flex-direction: column; - /* justify-content: flex-start; */ - /* align-items: center; */ -} - -/* Make readonly input fields grayed out and hide border*/ -form input:read-only { - /* background-color: hsla(0,0%,90%,1); */ - border: none; -} \ No newline at end of file diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 00000000..8f4d6389 --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,9 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +// and what to do when importing types +declare namespace App { + // interface Locals {} + // interface PageData {} + // interface Error {} + // interface Platform {} +} diff --git a/src/app.html b/src/app.html new file mode 100644 index 00000000..60cefdc9 --- /dev/null +++ b/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/app.postcss b/src/app.postcss new file mode 100644 index 00000000..91958db0 --- /dev/null +++ b/src/app.postcss @@ -0,0 +1,16 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; +@tailwind variants; + +html, +body { + @apply h-full overflow-hidden; +} + +/* modern theme */ +@font-face { + font-family: 'Quicksand'; + src: url('/fonts/Quicksand.ttf'); + font-display: swap; +} \ No newline at end of file diff --git a/src/assets/svelte.svg b/src/assets/svelte.svg deleted file mode 100644 index c5e08481..00000000 --- a/src/assets/svelte.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/index.test.ts b/src/index.test.ts new file mode 100644 index 00000000..e07cbbd7 --- /dev/null +++ b/src/index.test.ts @@ -0,0 +1,7 @@ +import { describe, it, expect } from 'vitest'; + +describe('sum test', () => { + it('adds 1 + 2 to equal 3', () => { + expect(1 + 2).toBe(3); + }); +}); diff --git a/src/lib/Counter.svelte b/src/lib/Counter.svelte deleted file mode 100644 index 979b4dfc..00000000 --- a/src/lib/Counter.svelte +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/src/lib/index.ts b/src/lib/index.ts new file mode 100644 index 00000000..856f2b6c --- /dev/null +++ b/src/lib/index.ts @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/src/main.ts b/src/main.ts deleted file mode 100644 index 7947f644..00000000 --- a/src/main.ts +++ /dev/null @@ -1,59 +0,0 @@ -// Import ae_bridge from ae_bridge_init.js -// import './ae_bridge_init'; -// import './ae_bridge_init.js'; -import './app.css'; - -import { ae } from 'aether_npm_lib'; - -import Hub_main from './0_hub__main.svelte'; -import Hub_site_menu from './10_hub__site_menu.svelte'; -import Sponsorships from './0_sponsorships__main.svelte'; - -let url_params = ae.util.get_url_params(); -// console.log(url_params); -// IMPORTANT: The URL paramater 'uuid' is used to determine if the user is logged in or not. If the user is logged in, the uuid will be passed in as a url param. If the user is not logged in, the uuid will not be passed in as a url param. - - -if (document.querySelector('.svelte_target.ae_svelte_app_hub')) { // ae_hub_main - const hub_main_app = new Hub_main({ - target: document.querySelector('.svelte_target.ae_svelte_app_hub'), // ae_hub_main - props: { - // NOTE: decodeURIComponent() is needed because the value is passed in as a url param. Should this be taken care of by the ae.util.get_url_params() function? - 'ae_obj_type': url_params.ae_type, - 'ae_obj_id': url_params.ae_id, - 'user': decodeURIComponent(url_params.user), - 'email': decodeURIComponent(url_params.email), - 'key': (url_params.key ? url_params.key : false), - // 'results_limit_administrator': 75, - // 'results_limit_trusted': 50, - // 'results_limit_authenticated': 25, - } - }); -} - - - -if (document.querySelector('#Site-Nav-Menu')) { // ae_hub_main - const hub_main_app = new Hub_site_menu({ - target: document.querySelector('#Site-Nav-Menu'), // ae_hub_main - props: { - } - }); -} - - - -if (document.querySelector('.svelte_target.ae_svelte_app')) { // ae_sponsorships_main - const sponsorships_main_app = new Sponsorships({ - target: document.querySelector('.svelte_target.ae_svelte_app'), // ae_sponsorships_main - props: { - // NOTE: decodeURIComponent() is needed because the value is passed in as a url param. Should this be taken care of by the ae.util.get_url_params() function? - 'sponsorship_id': url_params.sponsorship_id, - 'user': decodeURIComponent(url_params.email), - 'key': (url_params.key ? url_params.key : false), - // 'results_limit_administrator': 75, - // 'results_limit_trusted': 50, - // 'results_limit_authenticated': 25, - } - }); -} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 00000000..93e2d2c9 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,64 @@ + + + + + + + + + Skeleton + + + + Discord + + + Twitter + + + GitHub + + + + + + + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 00000000..67c03533 --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,71 @@ + + +
+
+

Welcome to Skeleton.

+ +
+
+ + + +
+ + +
+

Try editing the following:

+

/src/routes/+layout.svelte

+

/src/routes/+page.svelte

+
+
+
+ + diff --git a/src/stores.ts b/src/stores.ts deleted file mode 100644 index ad385978..00000000 --- a/src/stores.ts +++ /dev/null @@ -1,246 +0,0 @@ -import { readable, writable } from 'svelte/store'; -// console.log('*** stores.ts ***'); - -/* FAKE TESTING DATA */ - -let fake_app_base_url = 'https://dev-app.oneskyit.com'; -let fake_app_base_url_backup = 'https://bak-app.oneskyit.com'; -let fake_api_base_url = 'https://dev-api.oneskyit.com'; -let fake_api_base_url_backup = 'https://bak-api.oneskyit.com'; -let fake_api_secret_key = 'dFP6J9DVj9hUgIMn-fNIqg'; -let fake_ae_account_id = '_XY7DXtc9MY'; // OSIT Demo _XY7DXtc9MY (1) -let fake_ae_api_jwt_key="EHmSXZFKfMEW65E8kxCKmQ" // 22 characters; super secret Aether JWT signing key - -let fake_api_temporary_token = ''; - -let fake_access_type = 'anonymous'; -let fake_administrator_access: boolean = false; -let fake_trusted_access: boolean = false; - -/* FAKE TESTING DATA */ - -type key_val = { - [key: string]: any; // variable key - // name: string; -}; - -export const account_id = fake_ae_account_id; - -let ae_cfg_data: key_val = {}; - -// NOTE: This API CRUD super key thing being here should be short term! -2023-05-02 - -ae_cfg_data['api'] = {}; -ae_cfg_data['app'] = {}; - -// ae_cfg_data['api']['api_crud_super_key'] = 'zp5PtX4zUsI'; - -let ae_api_cfg_data: key_val = {}; -if (api_base_url) { - ae_api_cfg_data['base_url'] = api_base_url; -} else { - console.log(`WARNING: api_base_url not set. Using fake_api_base_url: ${fake_api_base_url}`); - ae_api_cfg_data['base_url'] = fake_api_base_url; -} -if (api_base_url_backup) { - ae_api_cfg_data['base_url_backup'] = api_base_url_backup; -} else { - console.log(`WARNING: api_base_url_backup not set. Using fake_api_base_url_backup: ${fake_api_base_url_backup}`); - ae_api_cfg_data['base_url_backup'] = fake_api_base_url_backup; -} - -ae_api_cfg_data['api_crud_super_key'] = 'zp5PtX4zUsI'; - -ae_api_cfg_data['headers'] = {}; -ae_api_cfg_data['headers']['Access-Control-Allow-Origin'] = '*'; -ae_api_cfg_data['headers']['content-type'] = 'application/json'; -ae_api_cfg_data['headers']['x-aether-api-key'] = fake_api_secret_key; -ae_api_cfg_data['headers']['x-aether-api-token'] = 'fake-temp-token'; -ae_api_cfg_data['headers']['x-aether-api-expire-on'] = ''; -ae_api_cfg_data['headers']['x-account-id'] = fake_ae_account_id; - -console.log(`Aether API Config Data:`, ae_api_cfg_data); - -ae_cfg_data['api']['headers'] = ae_api_cfg_data['headers']; - -let ae_app_cfg_data: key_val = {}; -if (app_base_url) { - ae_app_cfg_data['base_url'] = app_base_url; -} else { - console.log(`WARNING: app_base_url not set. Using fake_app_base_url: ${fake_app_base_url}`); - ae_app_cfg_data['base_url'] = fake_app_base_url; -} -ae_cfg_data['app'] = ae_app_cfg_data; - -console.log(`All Aether App and API Config Data:`, ae_cfg_data); -window.localStorage.setItem('ae_cfg', JSON.stringify(ae_cfg_data)); // Also set in main HTML template files -export const ae_cfg = readable(ae_cfg_data); - - - -/* *** BEGIN *** Initialize slct variable */ -// Updated 2023-11-01 -export let slct_trigger: any = writable(null); -let slct_obj_template: key_val = { 'sponsorship_id': null, 'sponsorship_obj': {}, 'post_id': null, 'post_obj': {}, 'post_obj_li': [], 'post_comment_id': null, 'post_comment_obj': {}, 'post_comment_obj_li': [] }; -export let slct = writable(slct_obj_template); - -let novi_api_cfg_data: key_val = {}; - - -/* *** BEGIN *** Initialize IDAA app structure variable (JS object) */ -// Updated 2023-11-01 -let ae_app_data_version = .5; - -let ae_app_struct: key_val = { - 'ver': ae_app_data_version, - 'app': ae_cfg_data.app, // Includes AE app base_url {'base_url': ae_cfg_data.app.base_url}, - 'ae_api': ae_api_cfg_data, // Includes the AE API headers - 'novi_api': novi_api_cfg_data, // Includes the Novi API headers - - 'access_type': fake_access_type, - 'administrator_access': fake_administrator_access, - 'trusted_access': fake_trusted_access, - - 'account_id': account_id, - - // YYYY-MM-DD string of the current date - 'current_date_str': new Date().toISOString().slice(0, 10), - - 'ae_user': null, - 'ae_key': null, - 'ae_full_name': null, - 'ae_admin_li': [], - - // Module - OSIT Aether - The Hub - 'hub':{ - 'show__site_header': true, - 'show__site_menu': true, - 'show__site_notificatons': true, - 'show__site_footer': true, - 'show__site_quick_access': false, - - 'ds':{}, - }, - - // Module - OSIT Aether - Sponsorships - 'sponsorships':{ - 'show_sponsorship_id_view': false, - 'show_sponsorship_id_edit': false, - - 'filter_meeting_type': 'all', // all, idaa, al-anon - 'filter_meeting_group': 'all', // all, in-person, virtual - 'filter_location': 'all', // all, something something - - // all, disabled, enabled - 'enabled': 'enabled', // all or nothing... easier for now - - // all, hidden, not_hidden - 'hidden': 'not_hidden', // all or nothing... easier for now - - 'limit': 250, // all or nothing... easier for now - 'offset': 0, // all or nothing... easier for now - - 'group_sort': 'ASC', // ASC or DESC - - 'sponsorship_id': null, - 'sponsorship_cfg_id': null, - - 'qry_status': null, - - 'ds':{}, - }, - - 'ds':{}, - - 'testing': null -} -export let ae_app = writable(ae_app_struct); -console.log(ae_app); - - - - -// NOTE: read/write -// Updated 2024-02-01 -export let ae_local = writable(ae_bridge.ae_local); -ae_bridge.register_ae_local_listener((new_value) => { - console.log(`Bridge to all: AE localStorage: ${new_value}`); - console.log(new_value); - - ae_local.set(new_value); - console.log(ae_local); -}); - -export let ae_session = writable(ae_bridge.ae_session); -ae_bridge.register_ae_session_listener((new_value) => { - console.log(`Bridge to all: AE sessionStorage: ${new_value}`); - console.log(new_value); - - ae_session.set(new_value); - console.log(ae_session); -}); - - -// if (ae_bridge.ae_local && !ae_bridge.ae_local.app && ae_bridge.ae_local.app !== {}) { -// ae_bridge.ae_local.app = ae_app_struct; // .set({}); -// } - -// if (ae_bridge.ae_session && !ae_bridge.ae_session.app && ae_bridge.ae_session.app !== {}) { -// ae_bridge.ae_session.app = ae_app_struct; // .set({}); -// } - -// if (!ae_bridge.ae_session.app.sponsorships) { -// ae_bridge.ae_session.app.sponsorships = { -// 'ver': ae_app_data_version, -// 'app': ae_cfg_data.app, // Includes AE app base_url {'base_url': ae_cfg_data.app.base_url}, -// 'ae_api': ae_api_cfg_data, // Includes the AE API headers -// 'novi_api': novi_api_cfg_data, // Includes the Novi API headers - -// 'access_type': fake_access_type, -// 'administrator_access': fake_administrator_access, -// 'trusted_access': fake_trusted_access, - -// 'account_id': account_id, - -// // YYYY-MM-DD string of the current date -// 'current_date_str': new Date().toISOString().slice(0, 10), - -// 'ae_user': null, -// 'ae_key': null, -// 'ae_full_name': null, -// 'ae_admin_li': [], - -// // Module - OSIT Aether - Sponsorships -// 'sponsorships':{ -// 'show_sponsorship_id_view': false, -// 'show_sponsorship_id_edit': false, - -// 'filter_meeting_type': 'all', // all, idaa, al-anon -// 'filter_meeting_group': 'all', // all, in-person, virtual -// 'filter_location': 'all', // all, something something - -// // all, disabled, enabled -// 'enabled': 'enabled', // all or nothing... easier for now - -// // all, hidden, not_hidden -// 'hidden': 'not_hidden', // all or nothing... easier for now - -// 'limit': 250, // all or nothing... easier for now -// 'offset': 0, // all or nothing... easier for now - -// 'group_sort': 'ASC', // ASC or DESC - -// 'sponsorship_id': null, -// 'sponsorship_cfg_id': null, - -// 'qry_status': null, - -// 'ds':{}, -// }, - -// 'ds':{}, - -// }; -// } - -console.log(ae_bridge.ae_session); \ No newline at end of file diff --git a/src/stores_ae_api.js b/src/stores_ae_api.js deleted file mode 100644 index 4a0da48e..00000000 --- a/src/stores_ae_api.js +++ /dev/null @@ -1,40 +0,0 @@ -console.log('*** stores_data_store_api.js Stores ***'); -import { get } from 'svelte/store'; -import { ae_app } from './stores'; -import { api } from 'aether_npm_lib'; - - -/* BEGIN: IDAA Recover Meetings Related */ -export let get_account_event_obj_list = async function get_account_event_obj_list({account_id, enabled='enabled', hidden='not_hidden', limit=100, params={}, timeout=50000, log_lvl=0}) { - console.log('*** stores_meetings_api.js: get_account_event_obj_list() ***'); - - const endpoint = `/account/${account_id}/event/meeting_list_flat`; - - let allowed_enabled_list = ['all', 'enabled', 'not_enabled'] - if (allowed_enabled_list.includes(enabled) ) { - params['enabled'] = enabled; - } - - let allowed_hidden_list = ['all', 'hidden', 'not_hidden']; - if (allowed_hidden_list.includes(hidden) ) { - params['hidden'] = hidden; - } - - if (limit) { - params['limit'] = limit; - } - - let event_obj_list_get_promise = await api.get_object({api_cfg: get(ae_app).ae_api, endpoint: endpoint, params: params, timeout: timeout, log_lvl: log_lvl}); - - // if (event_obj_list_get_promise === false) { - // console.log('Event - RUN AGAIN WITH BACKUP'); - - // let temp_api = get(cfg).api; - // temp_api['base_url'] = temp_api['base_url_backup'] - - // event_obj_list_get_promise = await api.get_object({api_cfg: temp_api, endpoint: endpoint, params: params, timeout: timeout, log_lvl: log_lvl}); - // } - - let event_obj_list = event_obj_list_get_promise; - return event_obj_list; -} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts deleted file mode 100644 index 4078e747..00000000 --- a/src/vite-env.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/// -/// diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e3735c58901acc906145296267c98399e77e61 GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/static/fonts/Quicksand.ttf b/static/fonts/Quicksand.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0ec221996683fb1820d5515172f71243731d0e2b GIT binary patch literal 124196 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 { - // console.log('HERE'); - if (warning.code.includes("a11y")) return; - // if (warning.code === 'a11y-distracting-elements') return; - handler(warning); - }, - - // kit: { - // adapter: adapter({ - // // default options are shown. On some platforms - // // these options are set automatically — see below - // // pages: 'build', - // // assets: 'build', - // // fallback: undefined, - // // precompress: false, - // // strict: true, - - // // output directory: - // // target: 'dist_x', - - // // default options are shown - // out: 'build_x', - // precompress: false, - // envPrefix: '' - - - // }) - // } -} -export default config; - - - -// import adapter from '@sveltejs/adapter-auto'; - -// /** @type {import('@sveltejs/kit').Config} */ -// const config = { -// // Consult https://svelte.dev/docs#compile-time-svelte-preprocess -// // for more information about preprocessors -// preprocess: vitePreprocess(), - -// // Disable accessibility warnings -// onwarn: (warning, handler) => { -// console.log('HERE'); -// if (warning.code.includes("a11y")) return; -// handler(warning); -// }, - -// kit: { -// adapter: adapter() -// } -// }; - -// export default config; - + extensions: ['.svelte'], + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: [vitePreprocess()], + + vitePlugin: { + inspector: true, + }, + kit: { + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. + // If your environment is not supported or you settled on a specific environment, switch out the adapter. + // See https://kit.svelte.dev/docs/adapters for more information about adapters. + adapter: adapter() + } +}; +export default config; \ No newline at end of file diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 00000000..21625193 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,27 @@ +import { join } from 'path' +import type { Config } from 'tailwindcss' +import forms from '@tailwindcss/forms'; +import typography from '@tailwindcss/typography'; +import { skeleton } from '@skeletonlabs/tw-plugin' + +export default { + darkMode: 'class', + content: ['./src/**/*.{html,js,svelte,ts}', join(require.resolve('@skeletonlabs/skeleton'), '../**/*.{html,js,svelte,ts}')], + theme: { + extend: {}, + }, + plugins: [ + forms, + typography, + skeleton({ + themes: { + preset: [ + { + name: 'modern', + enhancements: true, + }, + ], + }, + }), + ], +} satisfies Config; diff --git a/tests/test.ts b/tests/test.ts new file mode 100644 index 00000000..5816be41 --- /dev/null +++ b/tests/test.ts @@ -0,0 +1,6 @@ +import { expect, test } from '@playwright/test'; + +test('index page has expected h1', async ({ page }) => { + await page.goto('/'); + await expect(page.getByRole('heading', { name: 'Welcome to SvelteKit' })).toBeVisible(); +}); diff --git a/tsconfig.json b/tsconfig.json index c4e1c5fe..82081abc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,20 +1,18 @@ { - "extends": "@tsconfig/svelte/tsconfig.json", - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "module": "ESNext", - "resolveJsonModule": true, - /** - * Typecheck JS in `.svelte` and `.js` files by default. - * Disable checkJs if you'd like to use dynamic types in JS. - * Note that setting allowJs false does not prevent the use - * of JS in `.svelte` files. - */ - "allowJs": true, - "checkJs": true, - "isolatedModules": true - }, - "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], - "references": [{ "path": "./tsconfig.node.json" }] + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in } diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index 494bfe08..00000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler" - }, - "include": ["vite.config.ts"] -} diff --git a/vite.config.ts b/vite.config.ts index d7019694..dd4c1f0b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,7 +1,13 @@ -import { defineConfig } from 'vite' -import { svelte } from '@sveltejs/vite-plugin-svelte' +import { purgeCss } from 'vite-plugin-tailwind-purgecss'; +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; -// https://vitejs.dev/config/ export default defineConfig({ - plugins: [svelte()], -}) + plugins: [sveltekit(), purgeCss({ + safelist: { + // any selectors that begin with "hljs-" will not be purged + greedy: [/^hljs-/], + }, + }), + ], +}); \ No newline at end of file