From e5d6c890a8597f580922ee66986730dfd14761aa Mon Sep 17 00:00:00 2001 From: schooltechx Date: Tue, 14 Mar 2023 13:47:44 +0700 Subject: [PATCH] Init project --- .github/workflows/build.yaml | 55 + README.md | 34 + cms/.eslintignore | 13 + cms/.eslintrc.cjs | 20 + cms/.gitignore | 10 + cms/.npmrc | 1 + cms/.prettierignore | 13 + cms/.prettierrc | 9 + cms/Dockerfile | 12 + cms/README.md | 85 + cms/package-lock.json | 6932 ++++++++++++++++++++++ cms/package.json | 47 + cms/playwright.config.ts | 11 + cms/postcss.config.cjs | 13 + cms/src/app.d.ts | 12 + cms/src/app.html | 13 + cms/src/app.postcss | 4 + cms/src/index.test.ts | 7 + cms/src/lib/components/Header.svelte | 33 + cms/src/lib/data/info.json | 13 + cms/src/lib/data/info.test.ts | 8 + cms/src/lib/data/info.ts | 4 + cms/src/lib/data/users.json | 72 + cms/src/lib/data/users.ts | 28 + cms/src/routes/+error.svelte | 9 + cms/src/routes/+layout.svelte | 11 + cms/src/routes/+page.svelte | 14 + cms/src/routes/about/+page.server.ts | 12 + cms/src/routes/about/+page.svelte | 10 + cms/src/routes/api/users/+server.ts | 12 + cms/src/routes/api/users/[id]/+server.ts | 19 + cms/src/routes/competitive/+page.svelte | 7 + cms/src/routes/qualifying/+page.svelte | 6 + cms/src/service-worker.ts | 66 + cms/static/favicon.ico | Bin 0 -> 15086 bytes cms/static/favicon.png | Bin 0 -> 1571 bytes cms/static/images/favicon.ico | Bin 0 -> 15086 bytes cms/static/images/favicon.svg | 130 + cms/static/images/pwa-192x192.png | Bin 0 -> 15230 bytes cms/static/images/pwa-512x512.png | Bin 0 -> 55738 bytes cms/static/manifest.json | 28 + cms/svelte.config.js | 25 + cms/tailwind.config.cjs | 21 + cms/tests/test.ts | 11 + cms/tsconfig.json | 17 + cms/vite.config.ts | 9 + 46 files changed, 7856 insertions(+) create mode 100644 .github/workflows/build.yaml create mode 100644 README.md create mode 100644 cms/.eslintignore create mode 100644 cms/.eslintrc.cjs create mode 100644 cms/.gitignore create mode 100644 cms/.npmrc create mode 100644 cms/.prettierignore create mode 100644 cms/.prettierrc create mode 100644 cms/Dockerfile create mode 100644 cms/README.md create mode 100644 cms/package-lock.json create mode 100644 cms/package.json create mode 100644 cms/playwright.config.ts create mode 100644 cms/postcss.config.cjs create mode 100644 cms/src/app.d.ts create mode 100644 cms/src/app.html create mode 100644 cms/src/app.postcss create mode 100644 cms/src/index.test.ts create mode 100644 cms/src/lib/components/Header.svelte create mode 100644 cms/src/lib/data/info.json create mode 100644 cms/src/lib/data/info.test.ts create mode 100644 cms/src/lib/data/info.ts create mode 100644 cms/src/lib/data/users.json create mode 100644 cms/src/lib/data/users.ts create mode 100644 cms/src/routes/+error.svelte create mode 100644 cms/src/routes/+layout.svelte create mode 100644 cms/src/routes/+page.svelte create mode 100644 cms/src/routes/about/+page.server.ts create mode 100644 cms/src/routes/about/+page.svelte create mode 100644 cms/src/routes/api/users/+server.ts create mode 100644 cms/src/routes/api/users/[id]/+server.ts create mode 100644 cms/src/routes/competitive/+page.svelte create mode 100644 cms/src/routes/qualifying/+page.svelte create mode 100644 cms/src/service-worker.ts create mode 100644 cms/static/favicon.ico create mode 100644 cms/static/favicon.png create mode 100644 cms/static/images/favicon.ico create mode 100644 cms/static/images/favicon.svg create mode 100644 cms/static/images/pwa-192x192.png create mode 100644 cms/static/images/pwa-512x512.png create mode 100644 cms/static/manifest.json create mode 100644 cms/svelte.config.js create mode 100644 cms/tailwind.config.cjs create mode 100644 cms/tests/test.ts create mode 100644 cms/tsconfig.json create mode 100644 cms/vite.config.ts diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..aa22967 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,55 @@ +name: build-docker +run-name: build-docker ${{ github.actor }} +on: + push: + tags: + - v1.** + branches: + - 'main' + # Allow run workflow manually from Action tab + workflow_dispatch: +env: + REGISTRY: docker.frappet.com + CMS_IMAGE_NAME: demo/qualifying-exam-cms + CMS_IMAGE_TAG: 0.1.0 +jobs: + # act --workflows .github/workflows/build.yaml --job remote-image -s DOCKER_USER -s DOCKER_PASS + # act -W .github/workflows/build.yaml -j remote-image -s DOCKER_USER -s DOCKER_PASS + remote-image: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + # skip Set up QEMU because it fail on act and container + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login in to registry + uses: docker/login-action@v2 + with: + registry: ${{env.REGISTRY}} + username: ${{secrets.DOCKER_USER}} + password: ${{secrets.DOCKER_PASS}} + - uses: actions/setup-node@v3 + with: + node-version: '18' + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + context: cms + # platforms: linux/amd64,linux/arm64 + push: true + tags: ${{env.REGISTRY}}/${{env.CMS_IMAGE_NAME}}:${{env.CMS_IMAGE_TAG}},${{env.REGISTRY}}/${{env.CMS_IMAGE_NAME}}:latest + # act -W .github/workflows/build.yaml -j local-image + local-image: + runs-on: ubuntu-latest + steps: + - name: "Check out code" + uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: '18' + - name: Build and push docker image + uses: docker/build-push-action@v3 + with: + context: cms + load: true + tags: ${{env.REGISTRY}}/${{env.CMS_IMAGE_NAME}}:${{env.CMS_IMAGE_TAG}},${{env.REGISTRY}}/${{env.CMS_IMAGE_NAME}}:latest \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3befda5 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# ระบบสรรคหา +แบ่งออกเป็นสามส่วน +- ส่วนจัดการการสอบแข่งขัน BE .NET,FE Vue.js อยู่ในระบบหลัก อยู่ในเน็ตเวิร์กของ BKK +- ส่วนรับสมัครสอบคัดเลือก FE/BE จะใช้คนละ Realms แยกจากระบบหบัก ผู้สมัครจะใช้ email ในการ login อยู่นอกเน็ตเวิร์กของ BKK +- เวปประกาศข่าว FE/BE Sveltekit ควรใช้การดึงข้อมูลจาก สอบแข่งขัน สอบคัดเลือก ผ่าน API ไม่ต้อง Authentication เพราะเป็นสาธารณะอยู่แล้ว อยู่นอกเน็ตเวิร์กของ BKK + +## ส่วนจัดการการสอบแข่งขัน +ทำส่วนนำเข้าข้อมูลไปบ้างแล้ว อยู่ที่ [BMA-EHR-RECRUIT-SERVICE](https://github.com/Frappet/BMA-EHR-RECRUIT-SERVICE) +ต้องมี API สำหรับดึงข้อมูลไปเวปประกาศข่าว + +## ส่วนรับสมัครสอบคัดเลือก +การรับสมัครสอบคัดเลือกจำเป็นต้องมี +- Backoffice เจ้าหน้าที่ใน eHR สำหรับหน่วยงานสร้างรอบ, เจ้าหน้าที่นำเข้าข้อมูล, ก.ก. อนุมัติ +- Frontend หน้าเวปสำหรับผู้ใช้งานมาสมัคร +- API สำหรับดึงข้อมูลไปเวปประกาศข่าว + +## เวปประกาศข่าว +หน้าเวปสำหรับผู้สมัครมาอ่านข่าวประกาศ +- Frontend ดึงข้อมูลจาก สอบแข่งขัน สอบคัดเลือก มาแสดง และข้อมูลทั่วไปของเวปเองจาก Backoffice +- Backoffice แบบหนึ่ง มี Admin control panel และฐานข้อมูลในตัวเอง login ในตัวเอง แยกจากระบบหลักเลย ใช้เข้าไปจัดการข้อมูลข่าวอื่นๆ และข้อมูลเวปได้ แบบนี้น่าจะงานหนักหน่อยเพราะต้องทำ authen เอง +- Backoffice แบบสอง ตัวจัดการข้อมูลอยู่ใน eHR ดึงข้อมูลผ่าน API มาแสดง ถ้าเลือกทำแบบนี้ CMS จะเป็นแบบอ่านอย่างเดียว ปลอดภัย Stateless อาจจะมองเรื่อง cache API ร่วมด้วย + +## Info +ข้อมูลเพิ่มเติมนอกจาก TOR สามารถดูได้ที่เวป [กองสรรหาบุคคล (Bangkok careers) ](https://webportal.bangkok.go.th/KSB) มีหลัการ +[การสรรหาและเลือกสรร](https://webportal.bangkok.go.th/KSB/page/sub/19478/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B8%A3%E0%B8%AB%E0%B8%B2%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%80%E0%B8%A5%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%A3%E0%B8%A3) + +## BKK CMS +ทางกรุงเทพมหานครมี [Web Portal](https://webportal.bangkok.go.th/) เป็นของตัวเองอยู่แล้ว ข้อมูลเยอะและซับซ้อน ควรเลือกดูเท่าที่จำเป็น ยังไม่แน่ใจว่าใครรับผิดชอบในการอัปเดตข่าวสาร มี่ข้อมูลจากหลายหน่วยงานอาจจะมี login ไปทำกันเอง มีลิงค์บางส่วนใช้งานไม่ได้ (อาจจะเป็นเวปภายใน) +- [โครงสร้างองค์กร](https://webportal.bangkok.go.th/KSB/page/sub/10761/%E0%B9%82%E0%B8%84%E0%B8%A3%E0%B8%87%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%AD%E0%B8%87%E0%B8%84%E0%B9%8C%E0%B8%81%E0%B8%A3) สามารถหาข้อมูลเพิ่มเติมของแต่ละสำนัก หน่วยงานเขต และ โรงพยาบาลในสังกัด สนพ. ได้ เมื่อเข้าไปดูโครงสร้่างในแต่ละสำนักเป็นภาพไม่ได้สร้างจากฐานข้อมูล +- [เวปหนังสือเวียน](https://circular.bangkok.go.th/)ดูแลโดย สำนักยุทธศาสตร์และประเมินผล. เอกสาร PDF บางอันมาจากที่นี้แล้วเอาลิงค์ไปแปะใน Portal ทำหลายอย่าง หนังสือเวียน, มีการขอใช้อีเมลล์(Zimbra), Linkage, จองห้องประชุม, ขอ IP Address ทางบริษัทเราน่าจะต้องติดต่อหน่วยงาน +เอกสารเป็น client paging โหลดค่อนข้างช้าข้อมูลมีแนวโน้มจะเพิ่มขึ้นเรื่อยๆ(9000+) +- [สถาบันพัฒนาข้าราชการกรุงเทพมหานคร](https://webportal.bangkok.go.th/training) +- [กองสรรหาบุคคล (Bangkok careers) ](https://webportal.bangkok.go.th/KSB) + diff --git a/cms/.eslintignore b/cms/.eslintignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/cms/.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/cms/.eslintrc.cjs b/cms/.eslintrc.cjs new file mode 100644 index 0000000..3ccf435 --- /dev/null +++ b/cms/.eslintrc.cjs @@ -0,0 +1,20 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], + plugins: ['svelte3', '@typescript-eslint'], + ignorePatterns: ['*.cjs'], + overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], + settings: { + 'svelte3/typescript': () => require('typescript') + }, + parserOptions: { + sourceType: 'module', + ecmaVersion: 2020 + }, + env: { + browser: true, + es2017: true, + node: true + } +}; diff --git a/cms/.gitignore b/cms/.gitignore new file mode 100644 index 0000000..6635cf5 --- /dev/null +++ b/cms/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example +vite.config.js.timestamp-* +vite.config.ts.timestamp-* diff --git a/cms/.npmrc b/cms/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/cms/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/cms/.prettierignore b/cms/.prettierignore new file mode 100644 index 0000000..3897265 --- /dev/null +++ b/cms/.prettierignore @@ -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/cms/.prettierrc b/cms/.prettierrc new file mode 100644 index 0000000..a77fdde --- /dev/null +++ b/cms/.prettierrc @@ -0,0 +1,9 @@ +{ + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "pluginSearchDirs": ["."], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] +} diff --git a/cms/Dockerfile b/cms/Dockerfile new file mode 100644 index 0000000..19a9fa5 --- /dev/null +++ b/cms/Dockerfile @@ -0,0 +1,12 @@ +# docker build . -t registry.home.lan/demo/be2:latest +FROM node:18 as build +WORKDIR /app +COPY . . +RUN npm ci +RUN npm run build +FROM node:18-alpine +WORKDIR /app +COPY --from=build /app . +EXPOSE 80 +ENV PORT=80 +CMD ["node", "./build/index.js"] \ No newline at end of file diff --git a/cms/README.md b/cms/README.md new file mode 100644 index 0000000..4da6a1d --- /dev/null +++ b/cms/README.md @@ -0,0 +1,85 @@ +# เวปประกาศข่าว (CMS) +การพัฒนาแบบที่เป็นอยู่ Vue(SPA)+dotnet(Web API) ของบริษัทไม่ได้รองรับ SEO เท่าใดนัก จำเป็นต้องใช้ Meta Framework ที่รองรับ SSR เช่น Nuxt.js เนื่องจากไม่ขึ้นกับส่วนอื่นมากนัก จะทดลองใช้เทคโนโลยีแบบใหม่ๆในการพัฒนา ที่ง่ายในการพัฒนากว่าเดิมจะ SvelteKit เป็นฐาน Daisy UI และ Daisy UI สำหรับการทำ Frontend และจะนำเครื่องมือในการ Automate ต่างๆมาร่วมด้วย +- [Sveltekit](https://www.youtube.com/watch?v=uEJ-Rnm2yOE) Meta JS Framework รองรับ SSR เขียนง่าย +- [TailWindCSS]() ติดตั้งด้วย [svelte-add](https://github.com/svelte-add/tailwindcss) +- [Daisy UI ](https://daisyui.com/) +- [PWA](https://web.dev/progressive-web-apps/) ทำให้ Web App เหมือนแอปมือถือ +- [Playwright](https://playwright.dev/) เขียนโค้ดทำการทดสอบเวปแอปบน Browser +- [Vitest](https://vitest.dev/) ทำ Unit test สำหรับ Vite +- [GitHub Actions](https://github.com/features/actions) ทำ CI/CD ในระบบทดสอบ +- [nektos/act](https://github.com/nektos/act) ใช้ GitHub Actions บนเครื่องของเราเอง +- [Argo CD](https://argo-cd.readthedocs.io/en/stable/) deploy ขึ้นระบบ Production (K8s) +- [Keycloak](https://www.keycloak.org/) ใช้สำหรับทำระบบ Login + +## Install +คำสั่งสำหรับเริ่มต้นสร้างโปรเจ็กเปล่าๆ จนใช้งาน +``` bash +# เลือก Skeleton project,Typescript แล้ว ติดตั้งทั้งหมด +npm create svelte@latest cms-recruit +cd cms-recruit +npm install +# ติดตั้ง Tailwindcss พร้อมเซ็ตค่าให้เรียบร้อย +npx svelte-add@latest tailwindcss +# เมื่อติดตั้ง daisyui ให้ดูวิธีการตั้งค่าเพิ่มจากในเวป +npm i daisyui +# ใช้สำหรับทำเป็น Node.js ทำ Docker Image +npm i -D @sveltejs/adapter-node +# Keycloak สำหรับ frontend และ backend +npm i -D keycloak-js keycloak-backend +# ช่วยทำ seo ให้ง่ายขึ้น +npm install -D svelte-seo +``` + +## Sveltekit +คำสั่งที่ใช้ +``` bash +npm run dev -- --port=4000 --host=0.0.0.0 +npm run build +npm run preview -- --port=4000 --host=0.0.0.0 +# หรือ +npx vite --port=4000 --host=0.0.0.0 +npm vite build +npx vite preview --port=4000 --host=0.0.0.0 +``` +โครงสร้างโค้ด +- หน้าเวปอยู่ใน [src/routes/](src/routes/) โครงหน้าหลัก +layout.svelte,หน้าต่างๆ +page.svelte +- library/component ที่ใช้ร่วมกัน [src/lib/](src/lib/) +ตัวอย่างการใช้ API โค้ดอยู่ใน [src/routes/api/users](./src/routes/api/users/) +- http://localhost:4000/api/users +- http://localhost:4000/api/users/1 + +## Browser Testing +ใช้ Playwright มีคอนฟิกไฟล์ [playwright.config.ts](./playwright.config.ts) โค้ดสำหรับการทดสอบจะอยู่ใน โฟลเดอร์ [tests](./tests/) ใน VS Code จะติดตั้ง Playwright Extension รูปเป็นเหมือนโหลรูปชมพู่สำหรับทดลองวิทยาศาสตร์ ให้กดปุ่มเล่นเพื่อทำการทดสอบ +```bash +# ติดตั้ง embeded broser ของ playwright +npx playwright install chromium +# รันเทสที่อยู่ในโฟลเดอร์ tests +npm run test +``` +### ดูเพิ่มเติมได้ที่ +- [การทำ Browser Automation ด้วย Playwright](https://www.youtube.com/watch?v=Bc6dz4hs_r0) + +## Unit Testing +ใช้ Vitest ทำ [Unit test](https://www.youtube.com/watch?v=5bQD3dCoyHA) คอนฟิกจะอยู่ที่ [vite.config.ts](./vite.config.ts) แนะนำให้ใส่ไว้ใน lib ในรูปแบบ src/lib/*.test.ts +แนะนำให้เขียนโค้ดใน +``` bash +npm run test:unit +``` +# CI Github Action +ให้ดูโค้ดที่ ../.github/workflow +- [ตัวอย่างการใช้งานในบริษัท](https://youtu.be/k1w_cCzCd0o) + +# CD Argo CD +TODO + +# Note +## PWA +ใน [app.html](./src/app.html) จะเรียกใช้ [manifest.json](./src/static/manifest.json) +ไฟล์ [service-worker.ts](./src/service-worker.ts) จะถูก SvelteKit นำไปทำเป็น Service Worker ให้ +- [ตอนนี้ใช้แบบง่ายตามนี้](https://thecodingchannel.hashnode.dev/turn-your-sveltekit-app-into-a-pwa-in-3-simple-steps) + +# Keycloak +ยังไม่แน่ใจว่าการ Authen จำเป็นสำหรับ CMS หรือเปล่า เพราะใช้แค่แสดงข้อมูล อาจจะใช้หน้า Frontend ของ eHR ในการใส่ข้อมูลทั้งหมดก็น่าจะดีกว่า ตอนนี้ใช้ Repository pattern ไปก่อน +- Frontend ใช้ [Keycloak JS](https://www.npmjs.com/package/keycloak-js) +- API จะไม่ใช้ keycloak-connect เพราะมันรองรับเฉพาะ Express จะใช้ [keycloak-backend](https://www.npmjs.com/package/keycloak-backend) หรือตัวอื่นๆแทน +- ควรใช้การก็อปปี้ public key มาเก็บไว้ แทนการ verify token แบบ online จะเร็วกว่า [How to verify a JWT token in JavaScript and Node.js?](https://www.youtube.com/watch?v=gm2PBHyjQmM) diff --git a/cms/package-lock.json b/cms/package-lock.json new file mode 100644 index 0000000..f1bc7ee --- /dev/null +++ b/cms/package-lock.json @@ -0,0 +1,6932 @@ +{ + "name": "cms", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cms", + "version": "0.0.1", + "dependencies": { + "daisyui": "^2.51.3" + }, + "devDependencies": { + "@playwright/test": "^1.28.1", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-node": "^1.2.2", + "@sveltejs/kit": "^1.5.0", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "autoprefixer": "^10.4.7", + "eslint": "^8.28.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-svelte3": "^4.0.0", + "keycloak-backend": "^4.0.1", + "postcss": "^8.4.14", + "postcss-load-config": "^4.0.1", + "prettier": "^2.8.0", + "prettier-plugin-svelte": "^2.8.1", + "sass": "^1.58.3", + "svelte": "^3.54.0", + "svelte-check": "^3.0.1", + "svelte-preprocess": "^4.10.7", + "svelte-seo": "^1.5.3", + "tailwindcss": "^3.1.5", + "tslib": "^2.4.1", + "typescript": "^4.9.3", + "vite": "^4.0.0", + "vitest": "^0.25.3" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.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/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@playwright/test": { + "version": "1.31.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.2.tgz", + "integrity": "sha512-BYVutxDI4JeZKV1+ups6dt5WiqKhjBtIYowyZIJ3kBDmJgsuPKsqqKNIMFbUePLSCmp2cZu+BDL427RcNKTRYw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "playwright-core": "1.31.2" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz", + "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { + "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" + } + }, + "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-commonjs/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/plugin-commonjs/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/@rollup/plugin-json": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", + "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.0", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.0.0.tgz", + "integrity": "sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^2.2.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^1.0.0" + } + }, + "node_modules/@sveltejs/adapter-node": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.2.2.tgz", + "integrity": "sha512-HA+QPRve97ZAQfZ0wkHjtoSR9ilyYZV82T7zRgzm2WJ0rIpAgyRYf6K7KNwiCq23KKkN0hZHY5elNyCnVz8zrA==", + "dev": true, + "dependencies": { + "@rollup/plugin-commonjs": "^24.0.0", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.0.1", + "rollup": "^3.7.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^1.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.11.0.tgz", + "integrity": "sha512-PwViZcMoLgEU/jhLoSyjf5hSrHS67wvSm0ifBo4prP9irpGa5HuPOZeVDTL5tPDSBoKxtdYi1zlGdoiJfO86jA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@types/cookie": "^0.5.1", + "cookie": "^0.5.0", + "devalue": "^4.3.0", + "esm-env": "^1.0.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.0", + "mime": "^3.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.5.1", + "sirv": "^2.0.2", + "tiny-glob": "^0.2.9", + "undici": "5.20.0" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": "^16.14 || >=18" + }, + "peerDependencies": { + "svelte": "^3.54.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.3.tgz", + "integrity": "sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "deepmerge": "^4.3.0", + "kleur": "^4.1.5", + "magic-string": "^0.29.0", + "svelte-hmr": "^0.15.1", + "vitefu": "^0.2.4" + }, + "engines": { + "node": "^14.18.0 || >= 16" + }, + "peerDependencies": { + "svelte": "^3.54.0", + "vite": "^4.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte/node_modules/magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "node_modules/@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "node_modules/@types/pug": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", + "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/@types/sass": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.45.0.tgz", + "integrity": "sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==", + "deprecated": "This is a stub types definition. sass provides its own type definitions, so you do not need this installed.", + "dev": true, + "dependencies": { + "sass": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz", + "integrity": "sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/type-utils": "5.54.1", + "@typescript-eslint/utils": "5.54.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz", + "integrity": "sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/typescript-estree": "5.54.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz", + "integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz", + "integrity": "sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.54.1", + "@typescript-eslint/utils": "5.54.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz", + "integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz", + "integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz", + "integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/typescript-estree": "5.54.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz", + "integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.54.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.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-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node/node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "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/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "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==" + }, + "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/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/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/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "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/axios": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz", + "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "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/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "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", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "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==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001464", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz", + "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "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.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "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==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "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==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": 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-selector-tokenizer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz", + "integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==", + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "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==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/daisyui": { + "version": "2.51.3", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-2.51.3.tgz", + "integrity": "sha512-AQa9exq/DsnvjyDi6bwOqHExQr9LJJag0iKRXNvRRtHXPo1gaAQ3ASJWylUB8J8KMH2M9zIpr7cvPHc7yGckyQ==", + "dependencies": { + "color": "^4.2", + "css-selector-tokenizer": "^0.8.0", + "postcss-js": "^4.0.0", + "tailwindcss": "^3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/daisyui" + }, + "peerDependencies": { + "autoprefixer": "^10.0.2", + "postcss": "^8.1.6" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/devalue": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.0.tgz", + "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==", + "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==" + }, + "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==" + }, + "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/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.326", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.326.tgz", + "integrity": "sha512-tFNZP7VlGDp88vR7TYQ/h5svw8lzfu44PU5tfDJ+JYdcsEuWv4GpEm7hOF3c4Z/o4QQ6lNxmlGtvGaBVMRM9uQ==" + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "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.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "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", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "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.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "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-config-prettier": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz", + "integrity": "sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz", + "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==", + "dev": true, + "peerDependencies": { + "eslint": ">=8.0.0", + "svelte": "^3.2.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/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/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.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "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/esquery/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/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/esrecurse/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/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "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/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.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "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==", + "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/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "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", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "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, + "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 + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "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/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.1.tgz", + "integrity": "sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==", + "dev": 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", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "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", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "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": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "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/js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "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-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/jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "dev": true, + "dependencies": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keycloak-backend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-4.0.1.tgz", + "integrity": "sha512-UHnXu9pTCsttdoKwVFaEg5MlavdyKOxUaRcAzwut+ql907vmKpfr5/kYfA/6x/Hkk/RTEMilv7UAjwxxj7Ld/w==", + "dev": true, + "dependencies": { + "axios": "^1.3.3", + "jsonwebtoken": "^9.0.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "engines": { + "node": ">=10" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "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": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "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.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "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==", + "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==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "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/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "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==", + "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==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "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": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "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", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "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==" + }, + "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/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/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/playwright-core": { + "version": "1.31.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.2.tgz", + "integrity": "sha512-a1dFgCNQw4vCsG7bnojZjDnPewZcw7tZUNFN0ZkcLYKj+mPmXvg4MpaaKZ5SgqPsOmqIf2YsVRkgqiRDxD+fDQ==", + "dev": true, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.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==", + "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": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "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.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "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==" + }, + "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": "2.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", + "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz", + "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==", + "dev": true, + "peerDependencies": { + "prettier": "^1.16.4 || ^2.0.0", + "svelte": "^3.2.0" + } + }, + "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==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.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", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "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": "3.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.18.0.tgz", + "integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "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/sass": { + "version": "1.58.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.3.tgz", + "integrity": "sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "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, + "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/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "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.10.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", + "integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0", + "sourcemap-codec": "^1.3.0" + }, + "bin": { + "sorcery": "bin/index.js" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "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-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "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.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.8.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "3.55.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.1.tgz", + "integrity": "sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/svelte-check": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.1.0.tgz", + "integrity": "sha512-aSdnsGtndfqtb0dmN5qm9Zjl7wGpqh3cWF35WVCcK96TmGn2NEar4M40QW6bvaPPu089mrkZdpeD3Yar2SERBg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.0.0", + "typescript": "^4.9.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.55.0" + } + }, + "node_modules/svelte-check/node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.13" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/svelte-check/node_modules/sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + }, + "bin": { + "sorcery": "bin/sorcery" + } + }, + "node_modules/svelte-check/node_modules/svelte-preprocess": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.1.tgz", + "integrity": "sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.6", + "@types/sass": "^1.43.1", + "detect-indent": "^6.1.0", + "magic-string": "^0.27.0", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 14.10.0" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", + "svelte": "^3.23.0", + "typescript": "^3.9.5 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/svelte-hmr": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", + "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": ">=3.19.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "4.10.7", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz", + "integrity": "sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.4", + "@types/sass": "^1.16.0", + "detect-indent": "^6.0.0", + "magic-string": "^0.25.7", + "sorcery": "^0.10.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 9.11.2" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0", + "svelte": "^3.23.0", + "typescript": "^3.9.5 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/svelte-preprocess/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/svelte-seo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/svelte-seo/-/svelte-seo-1.5.3.tgz", + "integrity": "sha512-xkaVGNaQOWiNYApx6ehFSEVfdpfzy4pJLKWqQucFepl4SxJWcKDugCcND2k8bF4FskQ1M/4v4/Js35dDE/xFjg==", + "dev": true + }, + "node_modules/tailwindcss": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.7.tgz", + "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==", + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/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==", + "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/tailwindcss/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "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/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, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "node_modules/tinybench": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", + "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", + "dev": true + }, + "node_modules/tinypool": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.1.tgz", + "integrity": "sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", + "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "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", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "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": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/undici": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", + "dev": true, + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=12.18" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "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==" + }, + "node_modules/vite": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz", + "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==", + "dev": true, + "dependencies": { + "esbuild": "^0.16.14", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.10.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", + "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", + "dev": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.25.8.tgz", + "integrity": "sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==", + "dev": true, + "dependencies": { + "@types/chai": "^4.3.4", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "acorn": "^8.8.1", + "acorn-walk": "^8.2.0", + "chai": "^4.3.7", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "source-map": "^0.6.1", + "strip-literal": "^1.0.0", + "tinybench": "^2.3.1", + "tinypool": "^0.3.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0 || ^4.0.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": ">=v14.16.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@vitest/browser": "*", + "@vitest/ui": "*", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "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/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "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" + } + } + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "dev": true, + "optional": true + }, + "@eslint/eslintrc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.0.tgz", + "integrity": "sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.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" + } + }, + "@eslint/js": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.35.0.tgz", + "integrity": "sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@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 + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@playwright/test": { + "version": "1.31.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.31.2.tgz", + "integrity": "sha512-BYVutxDI4JeZKV1+ups6dt5WiqKhjBtIYowyZIJ3kBDmJgsuPKsqqKNIMFbUePLSCmp2cZu+BDL427RcNKTRYw==", + "dev": true, + "requires": { + "@types/node": "*", + "fsevents": "2.3.2", + "playwright-core": "1.31.2" + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "@rollup/plugin-commonjs": { + "version": "24.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-24.0.1.tgz", + "integrity": "sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.27.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@rollup/plugin-json": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", + "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1" + } + }, + "@rollup/plugin-node-resolve": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz", + "integrity": "sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.0", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + } + }, + "@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@sveltejs/adapter-auto": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.0.0.tgz", + "integrity": "sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==", + "dev": true, + "requires": { + "import-meta-resolve": "^2.2.0" + } + }, + "@sveltejs/adapter-node": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.2.2.tgz", + "integrity": "sha512-HA+QPRve97ZAQfZ0wkHjtoSR9ilyYZV82T7zRgzm2WJ0rIpAgyRYf6K7KNwiCq23KKkN0hZHY5elNyCnVz8zrA==", + "dev": true, + "requires": { + "@rollup/plugin-commonjs": "^24.0.0", + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-node-resolve": "^15.0.1", + "rollup": "^3.7.0" + } + }, + "@sveltejs/kit": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.11.0.tgz", + "integrity": "sha512-PwViZcMoLgEU/jhLoSyjf5hSrHS67wvSm0ifBo4prP9irpGa5HuPOZeVDTL5tPDSBoKxtdYi1zlGdoiJfO86jA==", + "dev": true, + "requires": { + "@sveltejs/vite-plugin-svelte": "^2.0.0", + "@types/cookie": "^0.5.1", + "cookie": "^0.5.0", + "devalue": "^4.3.0", + "esm-env": "^1.0.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.0", + "mime": "^3.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.5.1", + "sirv": "^2.0.2", + "tiny-glob": "^0.2.9", + "undici": "5.20.0" + } + }, + "@sveltejs/vite-plugin-svelte": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.3.tgz", + "integrity": "sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "deepmerge": "^4.3.0", + "kleur": "^4.1.5", + "magic-string": "^0.29.0", + "svelte-hmr": "^0.15.1", + "vitefu": "^0.2.4" + }, + "dependencies": { + "magic-string": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz", + "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + } + } + }, + "@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "@types/chai-subset": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", + "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", + "dev": true, + "requires": { + "@types/chai": "*" + } + }, + "@types/cookie": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==", + "dev": true + }, + "@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/node": { + "version": "18.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", + "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", + "dev": true + }, + "@types/pug": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", + "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", + "dev": true + }, + "@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "@types/sass": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.45.0.tgz", + "integrity": "sha512-jn7qwGFmJHwUSphV8zZneO3GmtlgLsmhs/LQyVvQbIIa+fzGMUiHI4HXJZL3FT8MJmgXWbLGiVVY7ElvHq6vDA==", + "dev": true, + "requires": { + "sass": "*" + } + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz", + "integrity": "sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/type-utils": "5.54.1", + "@typescript-eslint/utils": "5.54.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.54.1.tgz", + "integrity": "sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/typescript-estree": "5.54.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz", + "integrity": "sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz", + "integrity": "sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.54.1", + "@typescript-eslint/utils": "5.54.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.54.1.tgz", + "integrity": "sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz", + "integrity": "sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/visitor-keys": "5.54.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.54.1.tgz", + "integrity": "sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.54.1", + "@typescript-eslint/types": "5.54.1", + "@typescript-eslint/typescript-estree": "5.54.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.54.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz", + "integrity": "sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.54.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "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, + "requires": {} + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + } + } + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "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 + }, + "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 + }, + "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 + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axios": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz", + "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "dev": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "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, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "requires": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "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==" + }, + "caniuse-lite": { + "version": "1.0.30001464", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001464.tgz", + "integrity": "sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==" + }, + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "requires": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "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, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz", + "integrity": "sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==", + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "daisyui": { + "version": "2.51.3", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-2.51.3.tgz", + "integrity": "sha512-AQa9exq/DsnvjyDi6bwOqHExQr9LJJag0iKRXNvRRtHXPo1gaAQ3ASJWylUB8J8KMH2M9zIpr7cvPHc7yGckyQ==", + "requires": { + "color": "^4.2", + "css-selector-tokenizer": "^0.8.0", + "postcss-js": "^4.0.0", + "tailwindcss": "^3" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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, + "requires": { + "type-detect": "^4.0.0" + } + }, + "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 + }, + "deepmerge": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", + "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==", + "dev": true + }, + "defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "requires": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + } + }, + "devalue": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.0.tgz", + "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==", + "dev": true + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "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, + "requires": { + "path-type": "^4.0.0" + } + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "electron-to-chromium": { + "version": "1.4.326", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.326.tgz", + "integrity": "sha512-tFNZP7VlGDp88vR7TYQ/h5svw8lzfu44PU5tfDJ+JYdcsEuWv4GpEm7hOF3c4Z/o4QQ6lNxmlGtvGaBVMRM9uQ==" + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", + "dev": true, + "requires": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "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 + }, + "eslint": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.35.0.tgz", + "integrity": "sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^2.0.0", + "@eslint/js": "8.35.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "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", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "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.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.7.0.tgz", + "integrity": "sha512-HHVXLSlVUhMSmyW4ZzEuvjpwqamgmlfkutD53cYXLikh4pt/modINRcCIApJ84czDxM4GZInwUrromsDdTImTA==", + "dev": true, + "requires": {} + }, + "eslint-plugin-svelte3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz", + "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "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 + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "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, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "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 + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "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 + }, + "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 + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "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, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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 + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "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" + } + }, + "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 + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "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 + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-meta-resolve": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.1.tgz", + "integrity": "sha512-C6lLL7EJPY44kBvA80gq4uMsVFw5x3oSKfuMl1cuZ2RkI5+UJqQXgn+6hlUew0y4ig7Ypt4CObAAIzU53Nfpuw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "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 + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sdsl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz", + "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", + "dev": true + }, + "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, + "requires": { + "argparse": "^2.0.1" + } + }, + "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 + }, + "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 + }, + "jsonwebtoken": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", + "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", + "dev": true, + "requires": { + "jws": "^3.2.2", + "lodash": "^4.17.21", + "ms": "^2.1.1", + "semver": "^7.3.8" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "keycloak-backend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/keycloak-backend/-/keycloak-backend-4.0.1.tgz", + "integrity": "sha512-UHnXu9pTCsttdoKwVFaEg5MlavdyKOxUaRcAzwut+ql907vmKpfr5/kYfA/6x/Hkk/RTEMilv7UAjwxxj7Ld/w==", + "dev": true, + "requires": { + "axios": "^1.3.3", + "jsonwebtoken": "^9.0.0" + } + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "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, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==" + }, + "local-pkg": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "dev": true + }, + "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, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "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 + }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "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, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", + "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "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==" + }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "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, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "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, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "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 + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "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 + }, + "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==" + }, + "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 + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "playwright-core": { + "version": "1.31.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.31.2.tgz", + "integrity": "sha512-a1dFgCNQw4vCsG7bnojZjDnPewZcw7tZUNFN0ZkcLYKj+mPmXvg4MpaaKZ5SgqPsOmqIf2YsVRkgqiRDxD+fDQ==", + "dev": true + }, + "postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + } + }, + "postcss-nested": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "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==" + }, + "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 + }, + "prettier": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", + "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", + "dev": true + }, + "prettier-plugin-svelte": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz", + "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + }, + "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==", + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.18.0.tgz", + "integrity": "sha512-J8C6VfEBjkvYPESMQYxKHxNOh4A5a3FlP+0BETGo34HEcE4eTlgCrO2+eWzlu2a/sHs2QUkZco+wscH7jhhgWg==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "requires": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "sass": { + "version": "1.58.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.3.tgz", + "integrity": "sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "set-cookie-parser": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz", + "integrity": "sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==", + "dev": true + }, + "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, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "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 + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "sirv": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", + "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^3.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sorcery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", + "integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0", + "sourcemap-codec": "^1.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "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 + }, + "strip-literal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", + "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", + "dev": true, + "requires": { + "acorn": "^8.8.2" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "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==" + }, + "svelte": { + "version": "3.55.1", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.1.tgz", + "integrity": "sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==", + "dev": true + }, + "svelte-check": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.1.0.tgz", + "integrity": "sha512-aSdnsGtndfqtb0dmN5qm9Zjl7wGpqh3cWF35WVCcK96TmGn2NEar4M40QW6bvaPPu089mrkZdpeD3Yar2SERBg==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.17", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^5.0.0", + "typescript": "^4.9.4" + }, + "dependencies": { + "magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.13" + } + }, + "sorcery": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", + "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.14", + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0" + } + }, + "svelte-preprocess": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.1.tgz", + "integrity": "sha512-0HXyhCoc9rsW4zGOgtInylC6qj259E1hpFnJMJWTf+aIfeqh4O/QHT31KT2hvPEqQfdjmqBR/kO2JDkkciBLrQ==", + "dev": true, + "requires": { + "@types/pug": "^2.0.6", + "@types/sass": "^1.43.1", + "detect-indent": "^6.1.0", + "magic-string": "^0.27.0", + "sorcery": "^0.11.0", + "strip-indent": "^3.0.0" + } + } + } + }, + "svelte-hmr": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", + "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==", + "dev": true, + "requires": {} + }, + "svelte-preprocess": { + "version": "4.10.7", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz", + "integrity": "sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==", + "dev": true, + "requires": { + "@types/pug": "^2.0.4", + "@types/sass": "^1.16.0", + "detect-indent": "^6.0.0", + "magic-string": "^0.25.7", + "sorcery": "^0.10.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "svelte-seo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/svelte-seo/-/svelte-seo-1.5.3.tgz", + "integrity": "sha512-xkaVGNaQOWiNYApx6ehFSEVfdpfzy4pJLKWqQucFepl4SxJWcKDugCcND2k8bF4FskQ1M/4v4/Js35dDE/xFjg==", + "dev": true + }, + "tailwindcss": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.7.tgz", + "integrity": "sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==", + "requires": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "detective": "^5.2.1", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "postcss-import": "^14.1.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1" + }, + "dependencies": { + "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==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + } + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + } + } + }, + "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 + }, + "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, + "requires": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "tinybench": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.4.0.tgz", + "integrity": "sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==", + "dev": true + }, + "tinypool": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.3.1.tgz", + "integrity": "sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==", + "dev": true + }, + "tinyspy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-1.1.1.tgz", + "integrity": "sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "totalist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", + "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", + "dev": true + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "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 + }, + "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 + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "undici": { + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", + "dev": true, + "requires": { + "busboy": "^1.6.0" + } + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "vite": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz", + "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==", + "dev": true, + "requires": { + "esbuild": "^0.16.14", + "fsevents": "~2.3.2", + "postcss": "^8.4.21", + "resolve": "^1.22.1", + "rollup": "^3.10.0" + } + }, + "vitefu": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz", + "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==", + "dev": true, + "requires": {} + }, + "vitest": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.25.8.tgz", + "integrity": "sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==", + "dev": true, + "requires": { + "@types/chai": "^4.3.4", + "@types/chai-subset": "^1.3.3", + "@types/node": "*", + "acorn": "^8.8.1", + "acorn-walk": "^8.2.0", + "chai": "^4.3.7", + "debug": "^4.3.4", + "local-pkg": "^0.4.2", + "source-map": "^0.6.1", + "strip-literal": "^1.0.0", + "tinybench": "^2.3.1", + "tinypool": "^0.3.0", + "tinyspy": "^1.0.2", + "vite": "^3.0.0 || ^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "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 + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", + "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "dev": true + }, + "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 + } + } +} diff --git a/cms/package.json b/cms/package.json new file mode 100644 index 0000000..09027e5 --- /dev/null +++ b/cms/package.json @@ -0,0 +1,47 @@ +{ + "name": "cms", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "test": "playwright test", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "test:unit": "vitest", + "lint": "prettier --plugin-search-dir . --check . && eslint .", + "format": "prettier --plugin-search-dir . --write ." + }, + "devDependencies": { + "@playwright/test": "^1.28.1", + "@sveltejs/adapter-auto": "^2.0.0", + "@sveltejs/adapter-node": "^1.2.2", + "@sveltejs/kit": "^1.5.0", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "autoprefixer": "^10.4.7", + "eslint": "^8.28.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-svelte3": "^4.0.0", + "keycloak-backend": "^4.0.1", + "postcss": "^8.4.14", + "postcss-load-config": "^4.0.1", + "prettier": "^2.8.0", + "prettier-plugin-svelte": "^2.8.1", + "sass": "^1.58.3", + "svelte": "^3.54.0", + "svelte-check": "^3.0.1", + "svelte-preprocess": "^4.10.7", + "svelte-seo": "^1.5.3", + "tailwindcss": "^3.1.5", + "tslib": "^2.4.1", + "typescript": "^4.9.3", + "vite": "^4.0.0", + "vitest": "^0.25.3" + }, + "type": "module", + "dependencies": { + "daisyui": "^2.51.3" + } +} diff --git a/cms/playwright.config.ts b/cms/playwright.config.ts new file mode 100644 index 0000000..80731be --- /dev/null +++ b/cms/playwright.config.ts @@ -0,0 +1,11 @@ +import type { PlaywrightTestConfig } from '@playwright/test'; + +const config: PlaywrightTestConfig = { + webServer: { + command: 'npm run build && npm run preview', + port: 4173 + }, + testDir: 'tests' +}; + +export default config; diff --git a/cms/postcss.config.cjs b/cms/postcss.config.cjs new file mode 100644 index 0000000..fe10e55 --- /dev/null +++ b/cms/postcss.config.cjs @@ -0,0 +1,13 @@ +const tailwindcss = require('tailwindcss'); +const autoprefixer = require('autoprefixer'); + +const config = { + plugins: [ + //Some plugins, like tailwindcss/nesting, need to run before Tailwind, + tailwindcss(), + //But others, like autoprefixer, need to run after, + autoprefixer + ] +}; + +module.exports = config; diff --git a/cms/src/app.d.ts b/cms/src/app.d.ts new file mode 100644 index 0000000..f59b884 --- /dev/null +++ b/cms/src/app.d.ts @@ -0,0 +1,12 @@ +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare global { + namespace App { + // interface Error {} + // interface Locals {} + // interface PageData {} + // interface Platform {} + } +} + +export {}; diff --git a/cms/src/app.html b/cms/src/app.html new file mode 100644 index 0000000..120e47d --- /dev/null +++ b/cms/src/app.html @@ -0,0 +1,13 @@ + + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/cms/src/app.postcss b/cms/src/app.postcss new file mode 100644 index 0000000..1a7b7cf --- /dev/null +++ b/cms/src/app.postcss @@ -0,0 +1,4 @@ +/* Write your global styles here, in PostCSS syntax */ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/cms/src/index.test.ts b/cms/src/index.test.ts new file mode 100644 index 0000000..e07cbbd --- /dev/null +++ b/cms/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/cms/src/lib/components/Header.svelte b/cms/src/lib/components/Header.svelte new file mode 100644 index 0000000..a83f66a --- /dev/null +++ b/cms/src/lib/components/Header.svelte @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/cms/src/lib/data/info.json b/cms/src/lib/data/info.json new file mode 100644 index 0000000..3bc278a --- /dev/null +++ b/cms/src/lib/data/info.json @@ -0,0 +1,13 @@ +{ + "contact":{ + "company_name": "กองสรรหาบุคคล", + "description": + "มีหน้าที่รับผิดชอบเกี่ยวกับการสรรหาและเลือกสรรบุคคลเข้ารับราบการเป็นข้าราขการกรุงเทพมหานคร สามัญและข้าราชการครูกรุงเทพมหานครเฉพาะสังกัดสำนักพัฒนาชุมชน ....", + "contact_email_address": "sale@frappet.com", + "phone": "(662) xxx xxx", + "address": "123 Example Street, xxx, 9876, yyy", + "zip": "10510", + "Country": "Thailand" + } + +} \ No newline at end of file diff --git a/cms/src/lib/data/info.test.ts b/cms/src/lib/data/info.test.ts new file mode 100644 index 0000000..e403e70 --- /dev/null +++ b/cms/src/lib/data/info.test.ts @@ -0,0 +1,8 @@ +//TDD +import {it,expect } from 'vitest' +import {getContact} from './info' +it('test getContact() ',async ()=>{ + const result = await getContact() + expect(result.company_name).toBe("กองสรรหาบุคคล") + expect(result.Country).toBe("Thailand") +}) \ No newline at end of file diff --git a/cms/src/lib/data/info.ts b/cms/src/lib/data/info.ts new file mode 100644 index 0000000..9230bf2 --- /dev/null +++ b/cms/src/lib/data/info.ts @@ -0,0 +1,4 @@ +import info from "./info.json" +export async function getContact(){ + return info.contact +} diff --git a/cms/src/lib/data/users.json b/cms/src/lib/data/users.json new file mode 100644 index 0000000..db2c666 --- /dev/null +++ b/cms/src/lib/data/users.json @@ -0,0 +1,72 @@ +[ + { + "id": 1, + "name": "Leanne Graham", + "username": "Bret", + "email": "Sincere@april.biz", + "phone": "1-770-736-8031 x56442" + }, + { + "id": 2, + "name": "Ervin Howell", + "username": "Antonette", + "email": "Shanna@melissa.tv", + "phone": "010-692-6593 x09125" + }, + { + "id": 3, + "name": "Clementine Bauch", + "username": "Samantha", + "email": "Nathan@yesenia.net", + "phone": "1-463-123-4447" + }, + { + "id": 4, + "name": "Patricia Lebsack", + "username": "Karianne", + "email": "Julianne.OConner@kory.org", + "phone": "493-170-9623 x156" + }, + { + "id": 5, + "name": "Chelsey Dietrich", + "username": "Kamren", + "email": "Lucio_Hettinger@annie.ca", + "phone": "(254)954-1289" + }, + { + "id": 6, + "name": "Mrs. Dennis Schulist", + "username": "Leopoldo_Corkery", + "email": "Karley_Dach@jasper.info", + "phone": "1-477-935-8478 x6430" + }, + { + "id": 7, + "name": "Kurtis Weissnat", + "username": "Elwyn.Skiles", + "email": "Telly.Hoeger@billy.biz", + "phone": "210.067.6132" + }, + { + "id": 8, + "name": "Nicholas Runolfsdottir V", + "username": "Maxime_Nienow", + "email": "Sherwood@rosamond.me", + "phone": "586.493.6943 x140" + }, + { + "id": 9, + "name": "Glenna Reichert", + "username": "Delphine", + "email": "Chaim_McDermott@dana.io", + "phone": "(775)976-6794 x41206" + }, + { + "id": 10, + "name": "Clementina DuBuque", + "username": "Moriah.Stanton", + "email": "Rey.Padberg@karina.biz", + "phone": "024-648-3804" + } + ] \ No newline at end of file diff --git a/cms/src/lib/data/users.ts b/cms/src/lib/data/users.ts new file mode 100644 index 0000000..a632bd9 --- /dev/null +++ b/cms/src/lib/data/users.ts @@ -0,0 +1,28 @@ +import users from "./users.json" +let userid =100 + +export interface User { + id: number; + email: string; + username: string; + name:string; + last_name: string; + phone:string +} +export async function getUser(id:number){ + return users.find(u=>u.id===id) +} +export async function getUsers(){ + return users +} +export async function createUser(u:User){ + u.id= userid++ + return users.push(u) +} +export async function updateUser(u:User){ + const user = await getUser(u.id) + if(!user) + return user + user.phone = u.phone + return user +} \ No newline at end of file diff --git a/cms/src/routes/+error.svelte b/cms/src/routes/+error.svelte new file mode 100644 index 0000000..64059f2 --- /dev/null +++ b/cms/src/routes/+error.svelte @@ -0,0 +1,9 @@ + + +

{$page.error?.message}

+ +
+ มีบางอย่างไม่ถูกต้องกรุณาติดต่อ 02-xxxxxxxx +
\ No newline at end of file diff --git a/cms/src/routes/+layout.svelte b/cms/src/routes/+layout.svelte new file mode 100644 index 0000000..359b317 --- /dev/null +++ b/cms/src/routes/+layout.svelte @@ -0,0 +1,11 @@ + + +
+
+
+ +
+
\ No newline at end of file diff --git a/cms/src/routes/+page.svelte b/cms/src/routes/+page.svelte new file mode 100644 index 0000000..0c70078 --- /dev/null +++ b/cms/src/routes/+page.svelte @@ -0,0 +1,14 @@ +

กองสรรหาบุคคล (Recruitment Division)

+ + + +

ประกาศเกี่ยวกับการคัดเลือกบุคลากรกทม

+
xxxx
+
xxxx
+
xxxx
+
xxxx
+

ประกาศเกี่ยวกับการสอบแข่งขัน

+
xxxx
+
xxxx
+
xxxx
+
xxxx
\ No newline at end of file diff --git a/cms/src/routes/about/+page.server.ts b/cms/src/routes/about/+page.server.ts new file mode 100644 index 0000000..0cb50e7 --- /dev/null +++ b/cms/src/routes/about/+page.server.ts @@ -0,0 +1,12 @@ + +import {getContact} from "$lib/data/info" + +import type { PageServerLoad } from './$types' +/* +export const load: PageServerLoad = async () => { + return getContact() +}*/ + +export const load = (async () => { + return getContact() +}) satisfies PageServerLoad diff --git a/cms/src/routes/about/+page.svelte b/cms/src/routes/about/+page.svelte new file mode 100644 index 0000000..e6f5860 --- /dev/null +++ b/cms/src/routes/about/+page.svelte @@ -0,0 +1,10 @@ + + +

{data.company_name}

+ +
{data.description}
+ + diff --git a/cms/src/routes/api/users/+server.ts b/cms/src/routes/api/users/+server.ts new file mode 100644 index 0000000..ffe694b --- /dev/null +++ b/cms/src/routes/api/users/+server.ts @@ -0,0 +1,12 @@ +import type { RequestEvent, RequestHandler } from './$types' +import {json} from '@sveltejs/kit' +import { createUser, getUsers } from '$lib/data/users' + +//api/users +export const POST: RequestHandler = async ({ request }: RequestEvent) => { + const data = await request.json() + return json(await createUser( data)) +} +export const GET: RequestHandler = async () => { + return json(await getUsers()) +} \ No newline at end of file diff --git a/cms/src/routes/api/users/[id]/+server.ts b/cms/src/routes/api/users/[id]/+server.ts new file mode 100644 index 0000000..bd3f162 --- /dev/null +++ b/cms/src/routes/api/users/[id]/+server.ts @@ -0,0 +1,19 @@ +import type { RequestEvent, RequestHandler } from './$types' +import {json} from '@sveltejs/kit' +import { getUser, updateUser } from '$lib/data/users' + +//api/users/1 +export const PUT: RequestHandler = async ({ request }: RequestEvent) => { + const o = await request.json() + if(!updateUser(o)) + return json({message:"call updateUser fail "},{status:400}) + return json({message:"Update Success"}) +} +export const GET: RequestHandler = async ({params}: RequestEvent) => { + const id = Number(params.id) + const u = await getUser(id) + if(!u) + return json({message:`User ${id} not found`},{status:404}) + return json(u) +} + diff --git a/cms/src/routes/competitive/+page.svelte b/cms/src/routes/competitive/+page.svelte new file mode 100644 index 0000000..f9fb294 --- /dev/null +++ b/cms/src/routes/competitive/+page.svelte @@ -0,0 +1,7 @@ +

การสอบแข่งขัน

+ +fdsafda +fdsafda sdaf + sdaffsdasaf rfffffffffffffffff fffffffffffffffffffffffff ffffffffffff fgedfgfdgfdsg + fedsddddddddddddd ddddddddddddddd ddddddddd d d d d d d d d d d d d xxxx + \ No newline at end of file diff --git a/cms/src/routes/qualifying/+page.svelte b/cms/src/routes/qualifying/+page.svelte new file mode 100644 index 0000000..19b0c23 --- /dev/null +++ b/cms/src/routes/qualifying/+page.svelte @@ -0,0 +1,6 @@ +

การสอบคัดเลือก

+ + + + + diff --git a/cms/src/service-worker.ts b/cms/src/service-worker.ts new file mode 100644 index 0000000..7bbdad8 --- /dev/null +++ b/cms/src/service-worker.ts @@ -0,0 +1,66 @@ +/// +/// +/// +/// + +import { build, files, version } from '$service-worker'; + +// Create a unique cache name for this deployment +const CACHE = `cache-${version}`; + +const ASSETS = [ + ...build, // the app itself + ...files // everything in `static` +]; + +self.addEventListener('install', (event) => { + // Create a new cache and add all files to it + async function addFilesToCache() { + const cache = await caches.open(CACHE); + await cache.addAll(ASSETS); + } + + event.waitUntil(addFilesToCache()); +}); + +self.addEventListener('activate', (event) => { + // Remove previous cached data from disk + async function deleteOldCaches() { + for (const key of await caches.keys()) { + if (key !== CACHE) await caches.delete(key); + } + } + + event.waitUntil(deleteOldCaches()); +}); + +self.addEventListener('fetch', (event) => { + // ignore POST requests etc + if (event.request.method !== 'GET') return; + + async function respond() { + const url = new URL(event.request.url); + const cache = await caches.open(CACHE); + + // `build`/`files` can always be served from the cache + if (ASSETS.includes(url.pathname)) { + return cache.match(event.request); + } + + // for everything else, try the network first, but + // fall back to the cache if we're offline + try { + const response = await fetch(event.request); + + if (response.status === 200) { + cache.put(event.request, response.clone()); + } + + return response; + } catch { + return cache.match(event.request); + } + } + + event.respondWith(respond()); +}); \ No newline at end of file diff --git a/cms/static/favicon.ico b/cms/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..96b4291a400bb652d7bc3e6170a5e81938240d37 GIT binary patch literal 15086 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 + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cms/static/images/pwa-192x192.png b/cms/static/images/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3ee45e5b7b6e74a9fcaa9b610caac5161be424 GIT binary patch literal 15230 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%0DtiI=f!M=*+^j2wN{nn;? z-#tp_A*1hMW$s}uXz6DCo&dNwxHwrkcv(4lwK@3&x!zAM77h+U4i4)bpR)f2;OJ~+ zZ{z!a1K{>R3Eu(q{IvBwG|jy!UEG{)>>aErJ$zlPDeYZ6ECB$Yyqzl$lB+HwS07!$%W{HYJgQJv+3&f$6hVTqn0cpNzQ;sjsj}A@@k`5w{L*$DT*#JibSRPlB Syy@>G017gy()E(ykpBVD1`M?T literal 0 HcmV?d00001 diff --git a/cms/static/images/pwa-512x512.png b/cms/static/images/pwa-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..200cb73a0b0378984fb76dad6172f0fbb6138a5f GIT binary patch literal 55738 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 XnbvRrp3EEI6CiC(eT}kvc2WNWzs1*! literal 0 HcmV?d00001 diff --git a/cms/static/manifest.json b/cms/static/manifest.json new file mode 100644 index 0000000..af50917 --- /dev/null +++ b/cms/static/manifest.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json.schemastore.org/web-manifest-combined.json", + "name": "BKK Recrute", + "short_name": "BKK Recrute", + "start_url": "/", + "display": "standalone", + "background_color": "#fff", + "description": "A readable Hacker News app.", + "icons": [ + { + "src": "images/pwa-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "images/pwa-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "related_applications": [ + { + "platform": "play", + "url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb" + } + ] + } + \ No newline at end of file diff --git a/cms/svelte.config.js b/cms/svelte.config.js new file mode 100644 index 0000000..ce7c783 --- /dev/null +++ b/cms/svelte.config.js @@ -0,0 +1,25 @@ +//import adapter from '@sveltejs/adapter-auto'; +import adapter from '@sveltejs/adapter-node'; +import preprocess from 'svelte-preprocess'; +import { vitePreprocess } from '@sveltejs/kit/vite'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: [ + vitePreprocess(), + preprocess({ + postcss: 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; diff --git a/cms/tailwind.config.cjs b/cms/tailwind.config.cjs new file mode 100644 index 0000000..1f0d3a1 --- /dev/null +++ b/cms/tailwind.config.cjs @@ -0,0 +1,21 @@ +const config = { + content: ['./src/**/*.{html,js,svelte,ts}'], + + theme: { + extend: {} + }, + + plugins: [require("daisyui")], + daisyui: { + styled: true, + themes: ["cupcake","cmyk"], + base: true, + utils: true, + logs: true, + rtl: false, + prefix: "", + darkTheme: "dark", + }, +}; + +module.exports = config; diff --git a/cms/tests/test.ts b/cms/tests/test.ts new file mode 100644 index 0000000..4cab5f9 --- /dev/null +++ b/cms/tests/test.ts @@ -0,0 +1,11 @@ +import { expect, test } from '@playwright/test'; + +test('Index page has expected h1', async ({ page }) => { + await page.goto('/'); + await expect(page.getByRole('heading', { name: 'กองสรรหาบุคคล (Recruitment Division)' })).toBeVisible(); +}); + +test('About page has expected h1', async ({ page }) => { + await page.goto('/about'); + await expect(page.getByRole('heading', { name: 'กองสรรหาบุคคล' })).toBeVisible(); +}); diff --git a/cms/tsconfig.json b/cms/tsconfig.json new file mode 100644 index 0000000..6ae0c8c --- /dev/null +++ b/cms/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true + } + // 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/cms/vite.config.ts b/cms/vite.config.ts new file mode 100644 index 0000000..37b6a84 --- /dev/null +++ b/cms/vite.config.ts @@ -0,0 +1,9 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [sveltekit()], + test: { + include: ['src/**/*.{test,spec}.{js,ts}'] + } +});