nsarrazin commited on
Commit
57e16da
·
0 Parent(s):

first commit

Browse files
README.md ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # create-svelte
2
+
3
+ Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
4
+
5
+ ## Creating a project
6
+
7
+ If you're seeing this, you've probably already done this step. Congrats!
8
+
9
+ ```bash
10
+ # create a new project in the current directory
11
+ npm create svelte@latest
12
+
13
+ # create a new project in my-app
14
+ npm create svelte@latest my-app
15
+ ```
16
+
17
+ ## Developing
18
+
19
+ Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
20
+
21
+ ```bash
22
+ npm run dev
23
+
24
+ # or start the server and open the app in a new browser tab
25
+ npm run dev -- --open
26
+ ```
27
+
28
+ ## Building
29
+
30
+ To create a production version of your app:
31
+
32
+ ```bash
33
+ npm run build
34
+ ```
35
+
36
+ You can preview the production build with `npm run preview`.
37
+
38
+ > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
package.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "poc-agents-js",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "vite dev",
7
+ "build": "vite build",
8
+ "preview": "vite preview",
9
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
10
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
11
+ "test:unit": "vitest",
12
+ "lint": "prettier --plugin-search-dir . --check . && eslint .",
13
+ "format": "prettier --plugin-search-dir . --write ."
14
+ },
15
+ "devDependencies": {
16
+ "@magidoc/plugin-svelte-prismjs": "^4.0.0",
17
+ "@sveltejs/adapter-auto": "^2.0.0",
18
+ "@sveltejs/kit": "^1.5.0",
19
+ "@types/prismjs": "^1.26.0",
20
+ "@typescript-eslint/eslint-plugin": "^5.45.0",
21
+ "@typescript-eslint/parser": "^5.45.0",
22
+ "autoprefixer": "^10.4.14",
23
+ "eslint": "^8.28.0",
24
+ "eslint-config-prettier": "^8.5.0",
25
+ "eslint-plugin-svelte": "^2.26.0",
26
+ "postcss": "^8.4.24",
27
+ "prettier": "^2.8.0",
28
+ "prettier-plugin-svelte": "^2.8.1",
29
+ "prismjs": "^1.29.0",
30
+ "svelte": "^3.54.0",
31
+ "svelte-check": "^3.0.1",
32
+ "tailwindcss": "^3.3.2",
33
+ "tslib": "^2.4.1",
34
+ "typescript": "^5.0.0",
35
+ "vite": "^4.3.0",
36
+ "vitest": "^0.25.3"
37
+ },
38
+ "type": "module",
39
+ "dependencies": {
40
+ "@huggingface/hub": "^0.8.3",
41
+ "@huggingface/inference": "^2.5.2",
42
+ "daisyui": "^3.1.6",
43
+ "dotenv": "^16.3.1",
44
+ "openai": "^3.3.0",
45
+ "quickjs-emscripten": "^0.23.0"
46
+ }
47
+ }
pnpm-lock.yaml ADDED
@@ -0,0 +1,2334 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '6.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ dependencies:
8
+ '@huggingface/hub':
9
+ specifier: ^0.8.3
10
+ version: 0.8.3
11
+ '@huggingface/inference':
12
+ specifier: ^2.5.2
13
+ version: 2.5.2
14
+
15
+ devDependencies:
16
+ '@sveltejs/adapter-auto':
17
+ specifier: ^2.0.0
18
+ version: 2.1.0(@sveltejs/kit@1.20.4)
19
+ '@sveltejs/kit':
20
+ specifier: ^1.5.0
21
+ version: 1.20.4(svelte@3.59.2)(vite@4.3.9)
22
+ '@typescript-eslint/eslint-plugin':
23
+ specifier: ^5.45.0
24
+ version: 5.60.0(@typescript-eslint/parser@5.60.0)(eslint@8.43.0)(typescript@5.1.3)
25
+ '@typescript-eslint/parser':
26
+ specifier: ^5.45.0
27
+ version: 5.60.0(eslint@8.43.0)(typescript@5.1.3)
28
+ autoprefixer:
29
+ specifier: ^10.4.14
30
+ version: 10.4.14(postcss@8.4.24)
31
+ eslint:
32
+ specifier: ^8.28.0
33
+ version: 8.43.0
34
+ eslint-config-prettier:
35
+ specifier: ^8.5.0
36
+ version: 8.8.0(eslint@8.43.0)
37
+ eslint-plugin-svelte:
38
+ specifier: ^2.26.0
39
+ version: 2.31.0(eslint@8.43.0)(svelte@3.59.2)
40
+ postcss:
41
+ specifier: ^8.4.24
42
+ version: 8.4.24
43
+ prettier:
44
+ specifier: ^2.8.0
45
+ version: 2.8.8
46
+ prettier-plugin-svelte:
47
+ specifier: ^2.8.1
48
+ version: 2.10.1(prettier@2.8.8)(svelte@3.59.2)
49
+ svelte:
50
+ specifier: ^3.54.0
51
+ version: 3.59.2
52
+ svelte-check:
53
+ specifier: ^3.0.1
54
+ version: 3.4.4(postcss@8.4.24)(svelte@3.59.2)
55
+ tailwindcss:
56
+ specifier: ^3.3.2
57
+ version: 3.3.2
58
+ tslib:
59
+ specifier: ^2.4.1
60
+ version: 2.5.3
61
+ typescript:
62
+ specifier: ^5.0.0
63
+ version: 5.1.3
64
+ vite:
65
+ specifier: ^4.3.0
66
+ version: 4.3.9(@types/node@20.3.1)
67
+ vitest:
68
+ specifier: ^0.25.3
69
+ version: 0.25.8
70
+
71
+ packages:
72
+
73
+ /@alloc/quick-lru@5.2.0:
74
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
75
+ engines: {node: '>=10'}
76
+ dev: true
77
+
78
+ /@esbuild/android-arm64@0.17.19:
79
+ resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==}
80
+ engines: {node: '>=12'}
81
+ cpu: [arm64]
82
+ os: [android]
83
+ requiresBuild: true
84
+ dev: true
85
+ optional: true
86
+
87
+ /@esbuild/android-arm@0.17.19:
88
+ resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==}
89
+ engines: {node: '>=12'}
90
+ cpu: [arm]
91
+ os: [android]
92
+ requiresBuild: true
93
+ dev: true
94
+ optional: true
95
+
96
+ /@esbuild/android-x64@0.17.19:
97
+ resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==}
98
+ engines: {node: '>=12'}
99
+ cpu: [x64]
100
+ os: [android]
101
+ requiresBuild: true
102
+ dev: true
103
+ optional: true
104
+
105
+ /@esbuild/darwin-arm64@0.17.19:
106
+ resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==}
107
+ engines: {node: '>=12'}
108
+ cpu: [arm64]
109
+ os: [darwin]
110
+ requiresBuild: true
111
+ dev: true
112
+ optional: true
113
+
114
+ /@esbuild/darwin-x64@0.17.19:
115
+ resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==}
116
+ engines: {node: '>=12'}
117
+ cpu: [x64]
118
+ os: [darwin]
119
+ requiresBuild: true
120
+ dev: true
121
+ optional: true
122
+
123
+ /@esbuild/freebsd-arm64@0.17.19:
124
+ resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==}
125
+ engines: {node: '>=12'}
126
+ cpu: [arm64]
127
+ os: [freebsd]
128
+ requiresBuild: true
129
+ dev: true
130
+ optional: true
131
+
132
+ /@esbuild/freebsd-x64@0.17.19:
133
+ resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==}
134
+ engines: {node: '>=12'}
135
+ cpu: [x64]
136
+ os: [freebsd]
137
+ requiresBuild: true
138
+ dev: true
139
+ optional: true
140
+
141
+ /@esbuild/linux-arm64@0.17.19:
142
+ resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==}
143
+ engines: {node: '>=12'}
144
+ cpu: [arm64]
145
+ os: [linux]
146
+ requiresBuild: true
147
+ dev: true
148
+ optional: true
149
+
150
+ /@esbuild/linux-arm@0.17.19:
151
+ resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==}
152
+ engines: {node: '>=12'}
153
+ cpu: [arm]
154
+ os: [linux]
155
+ requiresBuild: true
156
+ dev: true
157
+ optional: true
158
+
159
+ /@esbuild/linux-ia32@0.17.19:
160
+ resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==}
161
+ engines: {node: '>=12'}
162
+ cpu: [ia32]
163
+ os: [linux]
164
+ requiresBuild: true
165
+ dev: true
166
+ optional: true
167
+
168
+ /@esbuild/linux-loong64@0.17.19:
169
+ resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==}
170
+ engines: {node: '>=12'}
171
+ cpu: [loong64]
172
+ os: [linux]
173
+ requiresBuild: true
174
+ dev: true
175
+ optional: true
176
+
177
+ /@esbuild/linux-mips64el@0.17.19:
178
+ resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==}
179
+ engines: {node: '>=12'}
180
+ cpu: [mips64el]
181
+ os: [linux]
182
+ requiresBuild: true
183
+ dev: true
184
+ optional: true
185
+
186
+ /@esbuild/linux-ppc64@0.17.19:
187
+ resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==}
188
+ engines: {node: '>=12'}
189
+ cpu: [ppc64]
190
+ os: [linux]
191
+ requiresBuild: true
192
+ dev: true
193
+ optional: true
194
+
195
+ /@esbuild/linux-riscv64@0.17.19:
196
+ resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==}
197
+ engines: {node: '>=12'}
198
+ cpu: [riscv64]
199
+ os: [linux]
200
+ requiresBuild: true
201
+ dev: true
202
+ optional: true
203
+
204
+ /@esbuild/linux-s390x@0.17.19:
205
+ resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==}
206
+ engines: {node: '>=12'}
207
+ cpu: [s390x]
208
+ os: [linux]
209
+ requiresBuild: true
210
+ dev: true
211
+ optional: true
212
+
213
+ /@esbuild/linux-x64@0.17.19:
214
+ resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==}
215
+ engines: {node: '>=12'}
216
+ cpu: [x64]
217
+ os: [linux]
218
+ requiresBuild: true
219
+ dev: true
220
+ optional: true
221
+
222
+ /@esbuild/netbsd-x64@0.17.19:
223
+ resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==}
224
+ engines: {node: '>=12'}
225
+ cpu: [x64]
226
+ os: [netbsd]
227
+ requiresBuild: true
228
+ dev: true
229
+ optional: true
230
+
231
+ /@esbuild/openbsd-x64@0.17.19:
232
+ resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==}
233
+ engines: {node: '>=12'}
234
+ cpu: [x64]
235
+ os: [openbsd]
236
+ requiresBuild: true
237
+ dev: true
238
+ optional: true
239
+
240
+ /@esbuild/sunos-x64@0.17.19:
241
+ resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==}
242
+ engines: {node: '>=12'}
243
+ cpu: [x64]
244
+ os: [sunos]
245
+ requiresBuild: true
246
+ dev: true
247
+ optional: true
248
+
249
+ /@esbuild/win32-arm64@0.17.19:
250
+ resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==}
251
+ engines: {node: '>=12'}
252
+ cpu: [arm64]
253
+ os: [win32]
254
+ requiresBuild: true
255
+ dev: true
256
+ optional: true
257
+
258
+ /@esbuild/win32-ia32@0.17.19:
259
+ resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==}
260
+ engines: {node: '>=12'}
261
+ cpu: [ia32]
262
+ os: [win32]
263
+ requiresBuild: true
264
+ dev: true
265
+ optional: true
266
+
267
+ /@esbuild/win32-x64@0.17.19:
268
+ resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==}
269
+ engines: {node: '>=12'}
270
+ cpu: [x64]
271
+ os: [win32]
272
+ requiresBuild: true
273
+ dev: true
274
+ optional: true
275
+
276
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.43.0):
277
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
278
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
279
+ peerDependencies:
280
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
281
+ dependencies:
282
+ eslint: 8.43.0
283
+ eslint-visitor-keys: 3.4.1
284
+ dev: true
285
+
286
+ /@eslint-community/regexpp@4.5.1:
287
+ resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==}
288
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
289
+ dev: true
290
+
291
+ /@eslint/eslintrc@2.0.3:
292
+ resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==}
293
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
294
+ dependencies:
295
+ ajv: 6.12.6
296
+ debug: 4.3.4
297
+ espree: 9.5.2
298
+ globals: 13.20.0
299
+ ignore: 5.2.4
300
+ import-fresh: 3.3.0
301
+ js-yaml: 4.1.0
302
+ minimatch: 3.1.2
303
+ strip-json-comments: 3.1.1
304
+ transitivePeerDependencies:
305
+ - supports-color
306
+ dev: true
307
+
308
+ /@eslint/js@8.43.0:
309
+ resolution: {integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==}
310
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
311
+ dev: true
312
+
313
+ /@huggingface/hub@0.8.3:
314
+ resolution: {integrity: sha512-tysAE1afXqEHsuu1oCR3mKu5+/KVkHFWsaLBB3e67Llo0m2ZL+7SE0pQPq8SopO8zxmYH8QIm5m8OhlNn+QJHA==}
315
+ engines: {node: '>=18'}
316
+ dependencies:
317
+ hash-wasm: 4.9.0
318
+ dev: false
319
+
320
+ /@huggingface/inference@2.5.2:
321
+ resolution: {integrity: sha512-v2f4mRgumisTOkelYPCZQRBzh5K0l2vexH8b88CevWv+KgzeC0oPeQhDiSNisCpE6hK+UC6KQ/FxF265kcd6FA==}
322
+ engines: {node: '>=18'}
323
+ dev: false
324
+
325
+ /@humanwhocodes/config-array@0.11.10:
326
+ resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==}
327
+ engines: {node: '>=10.10.0'}
328
+ dependencies:
329
+ '@humanwhocodes/object-schema': 1.2.1
330
+ debug: 4.3.4
331
+ minimatch: 3.1.2
332
+ transitivePeerDependencies:
333
+ - supports-color
334
+ dev: true
335
+
336
+ /@humanwhocodes/module-importer@1.0.1:
337
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
338
+ engines: {node: '>=12.22'}
339
+ dev: true
340
+
341
+ /@humanwhocodes/object-schema@1.2.1:
342
+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
343
+ dev: true
344
+
345
+ /@jridgewell/gen-mapping@0.3.3:
346
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
347
+ engines: {node: '>=6.0.0'}
348
+ dependencies:
349
+ '@jridgewell/set-array': 1.1.2
350
+ '@jridgewell/sourcemap-codec': 1.4.15
351
+ '@jridgewell/trace-mapping': 0.3.18
352
+ dev: true
353
+
354
+ /@jridgewell/resolve-uri@3.1.0:
355
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
356
+ engines: {node: '>=6.0.0'}
357
+ dev: true
358
+
359
+ /@jridgewell/set-array@1.1.2:
360
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
361
+ engines: {node: '>=6.0.0'}
362
+ dev: true
363
+
364
+ /@jridgewell/sourcemap-codec@1.4.14:
365
+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
366
+ dev: true
367
+
368
+ /@jridgewell/sourcemap-codec@1.4.15:
369
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
370
+ dev: true
371
+
372
+ /@jridgewell/trace-mapping@0.3.18:
373
+ resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
374
+ dependencies:
375
+ '@jridgewell/resolve-uri': 3.1.0
376
+ '@jridgewell/sourcemap-codec': 1.4.14
377
+ dev: true
378
+
379
+ /@nodelib/fs.scandir@2.1.5:
380
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
381
+ engines: {node: '>= 8'}
382
+ dependencies:
383
+ '@nodelib/fs.stat': 2.0.5
384
+ run-parallel: 1.2.0
385
+ dev: true
386
+
387
+ /@nodelib/fs.stat@2.0.5:
388
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
389
+ engines: {node: '>= 8'}
390
+ dev: true
391
+
392
+ /@nodelib/fs.walk@1.2.8:
393
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
394
+ engines: {node: '>= 8'}
395
+ dependencies:
396
+ '@nodelib/fs.scandir': 2.1.5
397
+ fastq: 1.15.0
398
+ dev: true
399
+
400
+ /@polka/url@1.0.0-next.21:
401
+ resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
402
+ dev: true
403
+
404
+ /@sveltejs/adapter-auto@2.1.0(@sveltejs/kit@1.20.4):
405
+ resolution: {integrity: sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==}
406
+ peerDependencies:
407
+ '@sveltejs/kit': ^1.0.0
408
+ dependencies:
409
+ '@sveltejs/kit': 1.20.4(svelte@3.59.2)(vite@4.3.9)
410
+ import-meta-resolve: 3.0.0
411
+ dev: true
412
+
413
+ /@sveltejs/kit@1.20.4(svelte@3.59.2)(vite@4.3.9):
414
+ resolution: {integrity: sha512-MmAzIuMrP7A+8fqDVbxm6ekGHRHL/+Fk8sQPAzPG4G2TxUDtHdn/WcIxeEqHzARMf0OtGSC+VPyOSFuw2Cy2Mg==}
415
+ engines: {node: ^16.14 || >=18}
416
+ hasBin: true
417
+ requiresBuild: true
418
+ peerDependencies:
419
+ svelte: ^3.54.0 || ^4.0.0-next.0
420
+ vite: ^4.0.0
421
+ dependencies:
422
+ '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.2)(vite@4.3.9)
423
+ '@types/cookie': 0.5.1
424
+ cookie: 0.5.0
425
+ devalue: 4.3.2
426
+ esm-env: 1.0.0
427
+ kleur: 4.1.5
428
+ magic-string: 0.30.0
429
+ mime: 3.0.0
430
+ sade: 1.8.1
431
+ set-cookie-parser: 2.6.0
432
+ sirv: 2.0.3
433
+ svelte: 3.59.2
434
+ undici: 5.22.1
435
+ vite: 4.3.9(@types/node@20.3.1)
436
+ transitivePeerDependencies:
437
+ - supports-color
438
+ dev: true
439
+
440
+ /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.2)(vite@4.3.9):
441
+ resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==}
442
+ engines: {node: ^14.18.0 || >= 16}
443
+ peerDependencies:
444
+ '@sveltejs/vite-plugin-svelte': ^2.2.0
445
+ svelte: ^3.54.0 || ^4.0.0-next.0
446
+ vite: ^4.0.0
447
+ dependencies:
448
+ '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.2)(vite@4.3.9)
449
+ debug: 4.3.4
450
+ svelte: 3.59.2
451
+ vite: 4.3.9(@types/node@20.3.1)
452
+ transitivePeerDependencies:
453
+ - supports-color
454
+ dev: true
455
+
456
+ /@sveltejs/vite-plugin-svelte@2.4.1(svelte@3.59.2)(vite@4.3.9):
457
+ resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==}
458
+ engines: {node: ^14.18.0 || >= 16}
459
+ peerDependencies:
460
+ svelte: ^3.54.0 || ^4.0.0-next.0
461
+ vite: ^4.0.0
462
+ dependencies:
463
+ '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.2)(vite@4.3.9)
464
+ debug: 4.3.4
465
+ deepmerge: 4.3.1
466
+ kleur: 4.1.5
467
+ magic-string: 0.30.0
468
+ svelte: 3.59.2
469
+ svelte-hmr: 0.15.2(svelte@3.59.2)
470
+ vite: 4.3.9(@types/node@20.3.1)
471
+ vitefu: 0.2.4(vite@4.3.9)
472
+ transitivePeerDependencies:
473
+ - supports-color
474
+ dev: true
475
+
476
+ /@types/chai-subset@1.3.3:
477
+ resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
478
+ dependencies:
479
+ '@types/chai': 4.3.5
480
+ dev: true
481
+
482
+ /@types/chai@4.3.5:
483
+ resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==}
484
+ dev: true
485
+
486
+ /@types/cookie@0.5.1:
487
+ resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==}
488
+ dev: true
489
+
490
+ /@types/json-schema@7.0.12:
491
+ resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
492
+ dev: true
493
+
494
+ /@types/node@20.3.1:
495
+ resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==}
496
+ dev: true
497
+
498
+ /@types/pug@2.0.6:
499
+ resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
500
+ dev: true
501
+
502
+ /@types/semver@7.5.0:
503
+ resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
504
+ dev: true
505
+
506
+ /@typescript-eslint/eslint-plugin@5.60.0(@typescript-eslint/parser@5.60.0)(eslint@8.43.0)(typescript@5.1.3):
507
+ resolution: {integrity: sha512-78B+anHLF1TI8Jn/cD0Q00TBYdMgjdOn980JfAVa9yw5sop8nyTfVOQAv6LWywkOGLclDBtv5z3oxN4w7jxyNg==}
508
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
509
+ peerDependencies:
510
+ '@typescript-eslint/parser': ^5.0.0
511
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
512
+ typescript: '*'
513
+ peerDependenciesMeta:
514
+ typescript:
515
+ optional: true
516
+ dependencies:
517
+ '@eslint-community/regexpp': 4.5.1
518
+ '@typescript-eslint/parser': 5.60.0(eslint@8.43.0)(typescript@5.1.3)
519
+ '@typescript-eslint/scope-manager': 5.60.0
520
+ '@typescript-eslint/type-utils': 5.60.0(eslint@8.43.0)(typescript@5.1.3)
521
+ '@typescript-eslint/utils': 5.60.0(eslint@8.43.0)(typescript@5.1.3)
522
+ debug: 4.3.4
523
+ eslint: 8.43.0
524
+ grapheme-splitter: 1.0.4
525
+ ignore: 5.2.4
526
+ natural-compare-lite: 1.4.0
527
+ semver: 7.5.2
528
+ tsutils: 3.21.0(typescript@5.1.3)
529
+ typescript: 5.1.3
530
+ transitivePeerDependencies:
531
+ - supports-color
532
+ dev: true
533
+
534
+ /@typescript-eslint/parser@5.60.0(eslint@8.43.0)(typescript@5.1.3):
535
+ resolution: {integrity: sha512-jBONcBsDJ9UoTWrARkRRCgDz6wUggmH5RpQVlt7BimSwaTkTjwypGzKORXbR4/2Hqjk9hgwlon2rVQAjWNpkyQ==}
536
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
537
+ peerDependencies:
538
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
539
+ typescript: '*'
540
+ peerDependenciesMeta:
541
+ typescript:
542
+ optional: true
543
+ dependencies:
544
+ '@typescript-eslint/scope-manager': 5.60.0
545
+ '@typescript-eslint/types': 5.60.0
546
+ '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3)
547
+ debug: 4.3.4
548
+ eslint: 8.43.0
549
+ typescript: 5.1.3
550
+ transitivePeerDependencies:
551
+ - supports-color
552
+ dev: true
553
+
554
+ /@typescript-eslint/scope-manager@5.60.0:
555
+ resolution: {integrity: sha512-hakuzcxPwXi2ihf9WQu1BbRj1e/Pd8ZZwVTG9kfbxAMZstKz8/9OoexIwnmLzShtsdap5U/CoQGRCWlSuPbYxQ==}
556
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
557
+ dependencies:
558
+ '@typescript-eslint/types': 5.60.0
559
+ '@typescript-eslint/visitor-keys': 5.60.0
560
+ dev: true
561
+
562
+ /@typescript-eslint/type-utils@5.60.0(eslint@8.43.0)(typescript@5.1.3):
563
+ resolution: {integrity: sha512-X7NsRQddORMYRFH7FWo6sA9Y/zbJ8s1x1RIAtnlj6YprbToTiQnM6vxcMu7iYhdunmoC0rUWlca13D5DVHkK2g==}
564
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
565
+ peerDependencies:
566
+ eslint: '*'
567
+ typescript: '*'
568
+ peerDependenciesMeta:
569
+ typescript:
570
+ optional: true
571
+ dependencies:
572
+ '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3)
573
+ '@typescript-eslint/utils': 5.60.0(eslint@8.43.0)(typescript@5.1.3)
574
+ debug: 4.3.4
575
+ eslint: 8.43.0
576
+ tsutils: 3.21.0(typescript@5.1.3)
577
+ typescript: 5.1.3
578
+ transitivePeerDependencies:
579
+ - supports-color
580
+ dev: true
581
+
582
+ /@typescript-eslint/types@5.60.0:
583
+ resolution: {integrity: sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==}
584
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
585
+ dev: true
586
+
587
+ /@typescript-eslint/typescript-estree@5.60.0(typescript@5.1.3):
588
+ resolution: {integrity: sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==}
589
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
590
+ peerDependencies:
591
+ typescript: '*'
592
+ peerDependenciesMeta:
593
+ typescript:
594
+ optional: true
595
+ dependencies:
596
+ '@typescript-eslint/types': 5.60.0
597
+ '@typescript-eslint/visitor-keys': 5.60.0
598
+ debug: 4.3.4
599
+ globby: 11.1.0
600
+ is-glob: 4.0.3
601
+ semver: 7.5.2
602
+ tsutils: 3.21.0(typescript@5.1.3)
603
+ typescript: 5.1.3
604
+ transitivePeerDependencies:
605
+ - supports-color
606
+ dev: true
607
+
608
+ /@typescript-eslint/utils@5.60.0(eslint@8.43.0)(typescript@5.1.3):
609
+ resolution: {integrity: sha512-ba51uMqDtfLQ5+xHtwlO84vkdjrqNzOnqrnwbMHMRY8Tqeme8C2Q8Fc7LajfGR+e3/4LoYiWXUM6BpIIbHJ4hQ==}
610
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
611
+ peerDependencies:
612
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
613
+ dependencies:
614
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0)
615
+ '@types/json-schema': 7.0.12
616
+ '@types/semver': 7.5.0
617
+ '@typescript-eslint/scope-manager': 5.60.0
618
+ '@typescript-eslint/types': 5.60.0
619
+ '@typescript-eslint/typescript-estree': 5.60.0(typescript@5.1.3)
620
+ eslint: 8.43.0
621
+ eslint-scope: 5.1.1
622
+ semver: 7.5.2
623
+ transitivePeerDependencies:
624
+ - supports-color
625
+ - typescript
626
+ dev: true
627
+
628
+ /@typescript-eslint/visitor-keys@5.60.0:
629
+ resolution: {integrity: sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==}
630
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
631
+ dependencies:
632
+ '@typescript-eslint/types': 5.60.0
633
+ eslint-visitor-keys: 3.4.1
634
+ dev: true
635
+
636
+ /acorn-jsx@5.3.2(acorn@8.9.0):
637
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
638
+ peerDependencies:
639
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
640
+ dependencies:
641
+ acorn: 8.9.0
642
+ dev: true
643
+
644
+ /acorn-walk@8.2.0:
645
+ resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
646
+ engines: {node: '>=0.4.0'}
647
+ dev: true
648
+
649
+ /acorn@8.9.0:
650
+ resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==}
651
+ engines: {node: '>=0.4.0'}
652
+ hasBin: true
653
+ dev: true
654
+
655
+ /ajv@6.12.6:
656
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
657
+ dependencies:
658
+ fast-deep-equal: 3.1.3
659
+ fast-json-stable-stringify: 2.1.0
660
+ json-schema-traverse: 0.4.1
661
+ uri-js: 4.4.1
662
+ dev: true
663
+
664
+ /ansi-regex@5.0.1:
665
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
666
+ engines: {node: '>=8'}
667
+ dev: true
668
+
669
+ /ansi-styles@4.3.0:
670
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
671
+ engines: {node: '>=8'}
672
+ dependencies:
673
+ color-convert: 2.0.1
674
+ dev: true
675
+
676
+ /any-promise@1.3.0:
677
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
678
+ dev: true
679
+
680
+ /anymatch@3.1.3:
681
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
682
+ engines: {node: '>= 8'}
683
+ dependencies:
684
+ normalize-path: 3.0.0
685
+ picomatch: 2.3.1
686
+ dev: true
687
+
688
+ /arg@5.0.2:
689
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
690
+ dev: true
691
+
692
+ /argparse@2.0.1:
693
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
694
+ dev: true
695
+
696
+ /array-union@2.1.0:
697
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
698
+ engines: {node: '>=8'}
699
+ dev: true
700
+
701
+ /assertion-error@1.1.0:
702
+ resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
703
+ dev: true
704
+
705
+ /autoprefixer@10.4.14(postcss@8.4.24):
706
+ resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
707
+ engines: {node: ^10 || ^12 || >=14}
708
+ hasBin: true
709
+ peerDependencies:
710
+ postcss: ^8.1.0
711
+ dependencies:
712
+ browserslist: 4.21.9
713
+ caniuse-lite: 1.0.30001506
714
+ fraction.js: 4.2.0
715
+ normalize-range: 0.1.2
716
+ picocolors: 1.0.0
717
+ postcss: 8.4.24
718
+ postcss-value-parser: 4.2.0
719
+ dev: true
720
+
721
+ /balanced-match@1.0.2:
722
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
723
+ dev: true
724
+
725
+ /binary-extensions@2.2.0:
726
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
727
+ engines: {node: '>=8'}
728
+ dev: true
729
+
730
+ /brace-expansion@1.1.11:
731
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
732
+ dependencies:
733
+ balanced-match: 1.0.2
734
+ concat-map: 0.0.1
735
+ dev: true
736
+
737
+ /braces@3.0.2:
738
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
739
+ engines: {node: '>=8'}
740
+ dependencies:
741
+ fill-range: 7.0.1
742
+ dev: true
743
+
744
+ /browserslist@4.21.9:
745
+ resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==}
746
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
747
+ hasBin: true
748
+ dependencies:
749
+ caniuse-lite: 1.0.30001506
750
+ electron-to-chromium: 1.4.437
751
+ node-releases: 2.0.12
752
+ update-browserslist-db: 1.0.11(browserslist@4.21.9)
753
+ dev: true
754
+
755
+ /buffer-crc32@0.2.13:
756
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
757
+ dev: true
758
+
759
+ /busboy@1.6.0:
760
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
761
+ engines: {node: '>=10.16.0'}
762
+ dependencies:
763
+ streamsearch: 1.1.0
764
+ dev: true
765
+
766
+ /callsites@3.1.0:
767
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
768
+ engines: {node: '>=6'}
769
+ dev: true
770
+
771
+ /camelcase-css@2.0.1:
772
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
773
+ engines: {node: '>= 6'}
774
+ dev: true
775
+
776
+ /caniuse-lite@1.0.30001506:
777
+ resolution: {integrity: sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw==}
778
+ dev: true
779
+
780
+ /chai@4.3.7:
781
+ resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==}
782
+ engines: {node: '>=4'}
783
+ dependencies:
784
+ assertion-error: 1.1.0
785
+ check-error: 1.0.2
786
+ deep-eql: 4.1.3
787
+ get-func-name: 2.0.0
788
+ loupe: 2.3.6
789
+ pathval: 1.1.1
790
+ type-detect: 4.0.8
791
+ dev: true
792
+
793
+ /chalk@4.1.2:
794
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
795
+ engines: {node: '>=10'}
796
+ dependencies:
797
+ ansi-styles: 4.3.0
798
+ supports-color: 7.2.0
799
+ dev: true
800
+
801
+ /check-error@1.0.2:
802
+ resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
803
+ dev: true
804
+
805
+ /chokidar@3.5.3:
806
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
807
+ engines: {node: '>= 8.10.0'}
808
+ dependencies:
809
+ anymatch: 3.1.3
810
+ braces: 3.0.2
811
+ glob-parent: 5.1.2
812
+ is-binary-path: 2.1.0
813
+ is-glob: 4.0.3
814
+ normalize-path: 3.0.0
815
+ readdirp: 3.6.0
816
+ optionalDependencies:
817
+ fsevents: 2.3.2
818
+ dev: true
819
+
820
+ /color-convert@2.0.1:
821
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
822
+ engines: {node: '>=7.0.0'}
823
+ dependencies:
824
+ color-name: 1.1.4
825
+ dev: true
826
+
827
+ /color-name@1.1.4:
828
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
829
+ dev: true
830
+
831
+ /commander@4.1.1:
832
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
833
+ engines: {node: '>= 6'}
834
+ dev: true
835
+
836
+ /concat-map@0.0.1:
837
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
838
+ dev: true
839
+
840
+ /cookie@0.5.0:
841
+ resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
842
+ engines: {node: '>= 0.6'}
843
+ dev: true
844
+
845
+ /cross-spawn@7.0.3:
846
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
847
+ engines: {node: '>= 8'}
848
+ dependencies:
849
+ path-key: 3.1.1
850
+ shebang-command: 2.0.0
851
+ which: 2.0.2
852
+ dev: true
853
+
854
+ /cssesc@3.0.0:
855
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
856
+ engines: {node: '>=4'}
857
+ hasBin: true
858
+ dev: true
859
+
860
+ /debug@4.3.4:
861
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
862
+ engines: {node: '>=6.0'}
863
+ peerDependencies:
864
+ supports-color: '*'
865
+ peerDependenciesMeta:
866
+ supports-color:
867
+ optional: true
868
+ dependencies:
869
+ ms: 2.1.2
870
+ dev: true
871
+
872
+ /deep-eql@4.1.3:
873
+ resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
874
+ engines: {node: '>=6'}
875
+ dependencies:
876
+ type-detect: 4.0.8
877
+ dev: true
878
+
879
+ /deep-is@0.1.4:
880
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
881
+ dev: true
882
+
883
+ /deepmerge@4.3.1:
884
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
885
+ engines: {node: '>=0.10.0'}
886
+ dev: true
887
+
888
+ /detect-indent@6.1.0:
889
+ resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
890
+ engines: {node: '>=8'}
891
+ dev: true
892
+
893
+ /devalue@4.3.2:
894
+ resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==}
895
+ dev: true
896
+
897
+ /didyoumean@1.2.2:
898
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
899
+ dev: true
900
+
901
+ /dir-glob@3.0.1:
902
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
903
+ engines: {node: '>=8'}
904
+ dependencies:
905
+ path-type: 4.0.0
906
+ dev: true
907
+
908
+ /dlv@1.1.3:
909
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
910
+ dev: true
911
+
912
+ /doctrine@3.0.0:
913
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
914
+ engines: {node: '>=6.0.0'}
915
+ dependencies:
916
+ esutils: 2.0.3
917
+ dev: true
918
+
919
+ /electron-to-chromium@1.4.437:
920
+ resolution: {integrity: sha512-ZFekRuBOHUXp21wrR5lshT6pZa/KmjkhKBAtmZz4NN5sCWlHOk3kdhiwFINrDBsRLX6FjyBAb1TRN+KBeNlyzQ==}
921
+ dev: true
922
+
923
+ /es6-promise@3.3.1:
924
+ resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
925
+ dev: true
926
+
927
+ /esbuild@0.17.19:
928
+ resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==}
929
+ engines: {node: '>=12'}
930
+ hasBin: true
931
+ requiresBuild: true
932
+ optionalDependencies:
933
+ '@esbuild/android-arm': 0.17.19
934
+ '@esbuild/android-arm64': 0.17.19
935
+ '@esbuild/android-x64': 0.17.19
936
+ '@esbuild/darwin-arm64': 0.17.19
937
+ '@esbuild/darwin-x64': 0.17.19
938
+ '@esbuild/freebsd-arm64': 0.17.19
939
+ '@esbuild/freebsd-x64': 0.17.19
940
+ '@esbuild/linux-arm': 0.17.19
941
+ '@esbuild/linux-arm64': 0.17.19
942
+ '@esbuild/linux-ia32': 0.17.19
943
+ '@esbuild/linux-loong64': 0.17.19
944
+ '@esbuild/linux-mips64el': 0.17.19
945
+ '@esbuild/linux-ppc64': 0.17.19
946
+ '@esbuild/linux-riscv64': 0.17.19
947
+ '@esbuild/linux-s390x': 0.17.19
948
+ '@esbuild/linux-x64': 0.17.19
949
+ '@esbuild/netbsd-x64': 0.17.19
950
+ '@esbuild/openbsd-x64': 0.17.19
951
+ '@esbuild/sunos-x64': 0.17.19
952
+ '@esbuild/win32-arm64': 0.17.19
953
+ '@esbuild/win32-ia32': 0.17.19
954
+ '@esbuild/win32-x64': 0.17.19
955
+ dev: true
956
+
957
+ /escalade@3.1.1:
958
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
959
+ engines: {node: '>=6'}
960
+ dev: true
961
+
962
+ /escape-string-regexp@4.0.0:
963
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
964
+ engines: {node: '>=10'}
965
+ dev: true
966
+
967
+ /eslint-config-prettier@8.8.0(eslint@8.43.0):
968
+ resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
969
+ hasBin: true
970
+ peerDependencies:
971
+ eslint: '>=7.0.0'
972
+ dependencies:
973
+ eslint: 8.43.0
974
+ dev: true
975
+
976
+ /eslint-plugin-svelte@2.31.0(eslint@8.43.0)(svelte@3.59.2):
977
+ resolution: {integrity: sha512-Q70jPFRraTkc/giPSfY7yuatmJcb5fPelWNplevqd45gfaJDjc3qXRtWQ6m9U5tWVVYERU9dcdUod294vwD8Gw==}
978
+ engines: {node: ^14.17.0 || >=16.0.0}
979
+ peerDependencies:
980
+ eslint: ^7.0.0 || ^8.0.0-0
981
+ svelte: ^3.37.0 || ^4.0.0-0
982
+ peerDependenciesMeta:
983
+ svelte:
984
+ optional: true
985
+ dependencies:
986
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0)
987
+ '@jridgewell/sourcemap-codec': 1.4.15
988
+ debug: 4.3.4
989
+ eslint: 8.43.0
990
+ esutils: 2.0.3
991
+ known-css-properties: 0.27.0
992
+ postcss: 8.4.24
993
+ postcss-load-config: 3.1.4(postcss@8.4.24)
994
+ postcss-safe-parser: 6.0.0(postcss@8.4.24)
995
+ postcss-selector-parser: 6.0.13
996
+ svelte: 3.59.2
997
+ svelte-eslint-parser: 0.31.0(svelte@3.59.2)
998
+ transitivePeerDependencies:
999
+ - supports-color
1000
+ - ts-node
1001
+ dev: true
1002
+
1003
+ /eslint-scope@5.1.1:
1004
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
1005
+ engines: {node: '>=8.0.0'}
1006
+ dependencies:
1007
+ esrecurse: 4.3.0
1008
+ estraverse: 4.3.0
1009
+ dev: true
1010
+
1011
+ /eslint-scope@7.2.0:
1012
+ resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
1013
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1014
+ dependencies:
1015
+ esrecurse: 4.3.0
1016
+ estraverse: 5.3.0
1017
+ dev: true
1018
+
1019
+ /eslint-visitor-keys@3.4.1:
1020
+ resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==}
1021
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1022
+ dev: true
1023
+
1024
+ /eslint@8.43.0:
1025
+ resolution: {integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==}
1026
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1027
+ hasBin: true
1028
+ dependencies:
1029
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0)
1030
+ '@eslint-community/regexpp': 4.5.1
1031
+ '@eslint/eslintrc': 2.0.3
1032
+ '@eslint/js': 8.43.0
1033
+ '@humanwhocodes/config-array': 0.11.10
1034
+ '@humanwhocodes/module-importer': 1.0.1
1035
+ '@nodelib/fs.walk': 1.2.8
1036
+ ajv: 6.12.6
1037
+ chalk: 4.1.2
1038
+ cross-spawn: 7.0.3
1039
+ debug: 4.3.4
1040
+ doctrine: 3.0.0
1041
+ escape-string-regexp: 4.0.0
1042
+ eslint-scope: 7.2.0
1043
+ eslint-visitor-keys: 3.4.1
1044
+ espree: 9.5.2
1045
+ esquery: 1.5.0
1046
+ esutils: 2.0.3
1047
+ fast-deep-equal: 3.1.3
1048
+ file-entry-cache: 6.0.1
1049
+ find-up: 5.0.0
1050
+ glob-parent: 6.0.2
1051
+ globals: 13.20.0
1052
+ graphemer: 1.4.0
1053
+ ignore: 5.2.4
1054
+ import-fresh: 3.3.0
1055
+ imurmurhash: 0.1.4
1056
+ is-glob: 4.0.3
1057
+ is-path-inside: 3.0.3
1058
+ js-yaml: 4.1.0
1059
+ json-stable-stringify-without-jsonify: 1.0.1
1060
+ levn: 0.4.1
1061
+ lodash.merge: 4.6.2
1062
+ minimatch: 3.1.2
1063
+ natural-compare: 1.4.0
1064
+ optionator: 0.9.1
1065
+ strip-ansi: 6.0.1
1066
+ strip-json-comments: 3.1.1
1067
+ text-table: 0.2.0
1068
+ transitivePeerDependencies:
1069
+ - supports-color
1070
+ dev: true
1071
+
1072
+ /esm-env@1.0.0:
1073
+ resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==}
1074
+ dev: true
1075
+
1076
+ /espree@9.5.2:
1077
+ resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==}
1078
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1079
+ dependencies:
1080
+ acorn: 8.9.0
1081
+ acorn-jsx: 5.3.2(acorn@8.9.0)
1082
+ eslint-visitor-keys: 3.4.1
1083
+ dev: true
1084
+
1085
+ /esquery@1.5.0:
1086
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1087
+ engines: {node: '>=0.10'}
1088
+ dependencies:
1089
+ estraverse: 5.3.0
1090
+ dev: true
1091
+
1092
+ /esrecurse@4.3.0:
1093
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1094
+ engines: {node: '>=4.0'}
1095
+ dependencies:
1096
+ estraverse: 5.3.0
1097
+ dev: true
1098
+
1099
+ /estraverse@4.3.0:
1100
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
1101
+ engines: {node: '>=4.0'}
1102
+ dev: true
1103
+
1104
+ /estraverse@5.3.0:
1105
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1106
+ engines: {node: '>=4.0'}
1107
+ dev: true
1108
+
1109
+ /esutils@2.0.3:
1110
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1111
+ engines: {node: '>=0.10.0'}
1112
+ dev: true
1113
+
1114
+ /fast-deep-equal@3.1.3:
1115
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1116
+ dev: true
1117
+
1118
+ /fast-glob@3.2.12:
1119
+ resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
1120
+ engines: {node: '>=8.6.0'}
1121
+ dependencies:
1122
+ '@nodelib/fs.stat': 2.0.5
1123
+ '@nodelib/fs.walk': 1.2.8
1124
+ glob-parent: 5.1.2
1125
+ merge2: 1.4.1
1126
+ micromatch: 4.0.5
1127
+ dev: true
1128
+
1129
+ /fast-json-stable-stringify@2.1.0:
1130
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1131
+ dev: true
1132
+
1133
+ /fast-levenshtein@2.0.6:
1134
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1135
+ dev: true
1136
+
1137
+ /fastq@1.15.0:
1138
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
1139
+ dependencies:
1140
+ reusify: 1.0.4
1141
+ dev: true
1142
+
1143
+ /file-entry-cache@6.0.1:
1144
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1145
+ engines: {node: ^10.12.0 || >=12.0.0}
1146
+ dependencies:
1147
+ flat-cache: 3.0.4
1148
+ dev: true
1149
+
1150
+ /fill-range@7.0.1:
1151
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1152
+ engines: {node: '>=8'}
1153
+ dependencies:
1154
+ to-regex-range: 5.0.1
1155
+ dev: true
1156
+
1157
+ /find-up@5.0.0:
1158
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1159
+ engines: {node: '>=10'}
1160
+ dependencies:
1161
+ locate-path: 6.0.0
1162
+ path-exists: 4.0.0
1163
+ dev: true
1164
+
1165
+ /flat-cache@3.0.4:
1166
+ resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
1167
+ engines: {node: ^10.12.0 || >=12.0.0}
1168
+ dependencies:
1169
+ flatted: 3.2.7
1170
+ rimraf: 3.0.2
1171
+ dev: true
1172
+
1173
+ /flatted@3.2.7:
1174
+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
1175
+ dev: true
1176
+
1177
+ /fraction.js@4.2.0:
1178
+ resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
1179
+ dev: true
1180
+
1181
+ /fs.realpath@1.0.0:
1182
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1183
+ dev: true
1184
+
1185
+ /fsevents@2.3.2:
1186
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
1187
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1188
+ os: [darwin]
1189
+ requiresBuild: true
1190
+ dev: true
1191
+ optional: true
1192
+
1193
+ /function-bind@1.1.1:
1194
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
1195
+ dev: true
1196
+
1197
+ /get-func-name@2.0.0:
1198
+ resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
1199
+ dev: true
1200
+
1201
+ /glob-parent@5.1.2:
1202
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1203
+ engines: {node: '>= 6'}
1204
+ dependencies:
1205
+ is-glob: 4.0.3
1206
+ dev: true
1207
+
1208
+ /glob-parent@6.0.2:
1209
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1210
+ engines: {node: '>=10.13.0'}
1211
+ dependencies:
1212
+ is-glob: 4.0.3
1213
+ dev: true
1214
+
1215
+ /glob@7.1.6:
1216
+ resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
1217
+ dependencies:
1218
+ fs.realpath: 1.0.0
1219
+ inflight: 1.0.6
1220
+ inherits: 2.0.4
1221
+ minimatch: 3.1.2
1222
+ once: 1.4.0
1223
+ path-is-absolute: 1.0.1
1224
+ dev: true
1225
+
1226
+ /glob@7.2.3:
1227
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1228
+ dependencies:
1229
+ fs.realpath: 1.0.0
1230
+ inflight: 1.0.6
1231
+ inherits: 2.0.4
1232
+ minimatch: 3.1.2
1233
+ once: 1.4.0
1234
+ path-is-absolute: 1.0.1
1235
+ dev: true
1236
+
1237
+ /globals@13.20.0:
1238
+ resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
1239
+ engines: {node: '>=8'}
1240
+ dependencies:
1241
+ type-fest: 0.20.2
1242
+ dev: true
1243
+
1244
+ /globby@11.1.0:
1245
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1246
+ engines: {node: '>=10'}
1247
+ dependencies:
1248
+ array-union: 2.1.0
1249
+ dir-glob: 3.0.1
1250
+ fast-glob: 3.2.12
1251
+ ignore: 5.2.4
1252
+ merge2: 1.4.1
1253
+ slash: 3.0.0
1254
+ dev: true
1255
+
1256
+ /graceful-fs@4.2.11:
1257
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1258
+ dev: true
1259
+
1260
+ /grapheme-splitter@1.0.4:
1261
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
1262
+ dev: true
1263
+
1264
+ /graphemer@1.4.0:
1265
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1266
+ dev: true
1267
+
1268
+ /has-flag@4.0.0:
1269
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1270
+ engines: {node: '>=8'}
1271
+ dev: true
1272
+
1273
+ /has@1.0.3:
1274
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
1275
+ engines: {node: '>= 0.4.0'}
1276
+ dependencies:
1277
+ function-bind: 1.1.1
1278
+ dev: true
1279
+
1280
+ /hash-wasm@4.9.0:
1281
+ resolution: {integrity: sha512-7SW7ejyfnRxuOc7ptQHSf4LDoZaWOivfzqw+5rpcQku0nHfmicPKE51ra9BiRLAmT8+gGLestr1XroUkqdjL6w==}
1282
+ dev: false
1283
+
1284
+ /ignore@5.2.4:
1285
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
1286
+ engines: {node: '>= 4'}
1287
+ dev: true
1288
+
1289
+ /import-fresh@3.3.0:
1290
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1291
+ engines: {node: '>=6'}
1292
+ dependencies:
1293
+ parent-module: 1.0.1
1294
+ resolve-from: 4.0.0
1295
+ dev: true
1296
+
1297
+ /import-meta-resolve@3.0.0:
1298
+ resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==}
1299
+ dev: true
1300
+
1301
+ /imurmurhash@0.1.4:
1302
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1303
+ engines: {node: '>=0.8.19'}
1304
+ dev: true
1305
+
1306
+ /inflight@1.0.6:
1307
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1308
+ dependencies:
1309
+ once: 1.4.0
1310
+ wrappy: 1.0.2
1311
+ dev: true
1312
+
1313
+ /inherits@2.0.4:
1314
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1315
+ dev: true
1316
+
1317
+ /is-binary-path@2.1.0:
1318
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1319
+ engines: {node: '>=8'}
1320
+ dependencies:
1321
+ binary-extensions: 2.2.0
1322
+ dev: true
1323
+
1324
+ /is-core-module@2.12.1:
1325
+ resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
1326
+ dependencies:
1327
+ has: 1.0.3
1328
+ dev: true
1329
+
1330
+ /is-extglob@2.1.1:
1331
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1332
+ engines: {node: '>=0.10.0'}
1333
+ dev: true
1334
+
1335
+ /is-glob@4.0.3:
1336
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1337
+ engines: {node: '>=0.10.0'}
1338
+ dependencies:
1339
+ is-extglob: 2.1.1
1340
+ dev: true
1341
+
1342
+ /is-number@7.0.0:
1343
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1344
+ engines: {node: '>=0.12.0'}
1345
+ dev: true
1346
+
1347
+ /is-path-inside@3.0.3:
1348
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1349
+ engines: {node: '>=8'}
1350
+ dev: true
1351
+
1352
+ /isexe@2.0.0:
1353
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1354
+ dev: true
1355
+
1356
+ /jiti@1.18.2:
1357
+ resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==}
1358
+ hasBin: true
1359
+ dev: true
1360
+
1361
+ /js-yaml@4.1.0:
1362
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1363
+ hasBin: true
1364
+ dependencies:
1365
+ argparse: 2.0.1
1366
+ dev: true
1367
+
1368
+ /json-schema-traverse@0.4.1:
1369
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1370
+ dev: true
1371
+
1372
+ /json-stable-stringify-without-jsonify@1.0.1:
1373
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1374
+ dev: true
1375
+
1376
+ /kleur@4.1.5:
1377
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
1378
+ engines: {node: '>=6'}
1379
+ dev: true
1380
+
1381
+ /known-css-properties@0.27.0:
1382
+ resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==}
1383
+ dev: true
1384
+
1385
+ /levn@0.4.1:
1386
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1387
+ engines: {node: '>= 0.8.0'}
1388
+ dependencies:
1389
+ prelude-ls: 1.2.1
1390
+ type-check: 0.4.0
1391
+ dev: true
1392
+
1393
+ /lilconfig@2.1.0:
1394
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1395
+ engines: {node: '>=10'}
1396
+ dev: true
1397
+
1398
+ /lines-and-columns@1.2.4:
1399
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1400
+ dev: true
1401
+
1402
+ /local-pkg@0.4.3:
1403
+ resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
1404
+ engines: {node: '>=14'}
1405
+ dev: true
1406
+
1407
+ /locate-path@6.0.0:
1408
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1409
+ engines: {node: '>=10'}
1410
+ dependencies:
1411
+ p-locate: 5.0.0
1412
+ dev: true
1413
+
1414
+ /lodash.merge@4.6.2:
1415
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1416
+ dev: true
1417
+
1418
+ /loupe@2.3.6:
1419
+ resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
1420
+ dependencies:
1421
+ get-func-name: 2.0.0
1422
+ dev: true
1423
+
1424
+ /lru-cache@6.0.0:
1425
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1426
+ engines: {node: '>=10'}
1427
+ dependencies:
1428
+ yallist: 4.0.0
1429
+ dev: true
1430
+
1431
+ /magic-string@0.27.0:
1432
+ resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
1433
+ engines: {node: '>=12'}
1434
+ dependencies:
1435
+ '@jridgewell/sourcemap-codec': 1.4.15
1436
+ dev: true
1437
+
1438
+ /magic-string@0.30.0:
1439
+ resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
1440
+ engines: {node: '>=12'}
1441
+ dependencies:
1442
+ '@jridgewell/sourcemap-codec': 1.4.15
1443
+ dev: true
1444
+
1445
+ /merge2@1.4.1:
1446
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1447
+ engines: {node: '>= 8'}
1448
+ dev: true
1449
+
1450
+ /micromatch@4.0.5:
1451
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1452
+ engines: {node: '>=8.6'}
1453
+ dependencies:
1454
+ braces: 3.0.2
1455
+ picomatch: 2.3.1
1456
+ dev: true
1457
+
1458
+ /mime@3.0.0:
1459
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
1460
+ engines: {node: '>=10.0.0'}
1461
+ hasBin: true
1462
+ dev: true
1463
+
1464
+ /min-indent@1.0.1:
1465
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
1466
+ engines: {node: '>=4'}
1467
+ dev: true
1468
+
1469
+ /minimatch@3.1.2:
1470
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1471
+ dependencies:
1472
+ brace-expansion: 1.1.11
1473
+ dev: true
1474
+
1475
+ /minimist@1.2.8:
1476
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
1477
+ dev: true
1478
+
1479
+ /mkdirp@0.5.6:
1480
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
1481
+ hasBin: true
1482
+ dependencies:
1483
+ minimist: 1.2.8
1484
+ dev: true
1485
+
1486
+ /mri@1.2.0:
1487
+ resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
1488
+ engines: {node: '>=4'}
1489
+ dev: true
1490
+
1491
+ /mrmime@1.0.1:
1492
+ resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
1493
+ engines: {node: '>=10'}
1494
+ dev: true
1495
+
1496
+ /ms@2.1.2:
1497
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1498
+ dev: true
1499
+
1500
+ /mz@2.7.0:
1501
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1502
+ dependencies:
1503
+ any-promise: 1.3.0
1504
+ object-assign: 4.1.1
1505
+ thenify-all: 1.6.0
1506
+ dev: true
1507
+
1508
+ /nanoid@3.3.6:
1509
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
1510
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1511
+ hasBin: true
1512
+ dev: true
1513
+
1514
+ /natural-compare-lite@1.4.0:
1515
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
1516
+ dev: true
1517
+
1518
+ /natural-compare@1.4.0:
1519
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1520
+ dev: true
1521
+
1522
+ /node-releases@2.0.12:
1523
+ resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
1524
+ dev: true
1525
+
1526
+ /normalize-path@3.0.0:
1527
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1528
+ engines: {node: '>=0.10.0'}
1529
+ dev: true
1530
+
1531
+ /normalize-range@0.1.2:
1532
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1533
+ engines: {node: '>=0.10.0'}
1534
+ dev: true
1535
+
1536
+ /object-assign@4.1.1:
1537
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1538
+ engines: {node: '>=0.10.0'}
1539
+ dev: true
1540
+
1541
+ /object-hash@3.0.0:
1542
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1543
+ engines: {node: '>= 6'}
1544
+ dev: true
1545
+
1546
+ /once@1.4.0:
1547
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1548
+ dependencies:
1549
+ wrappy: 1.0.2
1550
+ dev: true
1551
+
1552
+ /optionator@0.9.1:
1553
+ resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
1554
+ engines: {node: '>= 0.8.0'}
1555
+ dependencies:
1556
+ deep-is: 0.1.4
1557
+ fast-levenshtein: 2.0.6
1558
+ levn: 0.4.1
1559
+ prelude-ls: 1.2.1
1560
+ type-check: 0.4.0
1561
+ word-wrap: 1.2.3
1562
+ dev: true
1563
+
1564
+ /p-limit@3.1.0:
1565
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1566
+ engines: {node: '>=10'}
1567
+ dependencies:
1568
+ yocto-queue: 0.1.0
1569
+ dev: true
1570
+
1571
+ /p-locate@5.0.0:
1572
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1573
+ engines: {node: '>=10'}
1574
+ dependencies:
1575
+ p-limit: 3.1.0
1576
+ dev: true
1577
+
1578
+ /parent-module@1.0.1:
1579
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1580
+ engines: {node: '>=6'}
1581
+ dependencies:
1582
+ callsites: 3.1.0
1583
+ dev: true
1584
+
1585
+ /path-exists@4.0.0:
1586
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1587
+ engines: {node: '>=8'}
1588
+ dev: true
1589
+
1590
+ /path-is-absolute@1.0.1:
1591
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1592
+ engines: {node: '>=0.10.0'}
1593
+ dev: true
1594
+
1595
+ /path-key@3.1.1:
1596
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1597
+ engines: {node: '>=8'}
1598
+ dev: true
1599
+
1600
+ /path-parse@1.0.7:
1601
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1602
+ dev: true
1603
+
1604
+ /path-type@4.0.0:
1605
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1606
+ engines: {node: '>=8'}
1607
+ dev: true
1608
+
1609
+ /pathval@1.1.1:
1610
+ resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
1611
+ dev: true
1612
+
1613
+ /picocolors@1.0.0:
1614
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1615
+ dev: true
1616
+
1617
+ /picomatch@2.3.1:
1618
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1619
+ engines: {node: '>=8.6'}
1620
+ dev: true
1621
+
1622
+ /pify@2.3.0:
1623
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1624
+ engines: {node: '>=0.10.0'}
1625
+ dev: true
1626
+
1627
+ /pirates@4.0.6:
1628
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1629
+ engines: {node: '>= 6'}
1630
+ dev: true
1631
+
1632
+ /postcss-import@15.1.0(postcss@8.4.24):
1633
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1634
+ engines: {node: '>=14.0.0'}
1635
+ peerDependencies:
1636
+ postcss: ^8.0.0
1637
+ dependencies:
1638
+ postcss: 8.4.24
1639
+ postcss-value-parser: 4.2.0
1640
+ read-cache: 1.0.0
1641
+ resolve: 1.22.2
1642
+ dev: true
1643
+
1644
+ /postcss-js@4.0.1(postcss@8.4.24):
1645
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1646
+ engines: {node: ^12 || ^14 || >= 16}
1647
+ peerDependencies:
1648
+ postcss: ^8.4.21
1649
+ dependencies:
1650
+ camelcase-css: 2.0.1
1651
+ postcss: 8.4.24
1652
+ dev: true
1653
+
1654
+ /postcss-load-config@3.1.4(postcss@8.4.24):
1655
+ resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
1656
+ engines: {node: '>= 10'}
1657
+ peerDependencies:
1658
+ postcss: '>=8.0.9'
1659
+ ts-node: '>=9.0.0'
1660
+ peerDependenciesMeta:
1661
+ postcss:
1662
+ optional: true
1663
+ ts-node:
1664
+ optional: true
1665
+ dependencies:
1666
+ lilconfig: 2.1.0
1667
+ postcss: 8.4.24
1668
+ yaml: 1.10.2
1669
+ dev: true
1670
+
1671
+ /postcss-load-config@4.0.1(postcss@8.4.24):
1672
+ resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
1673
+ engines: {node: '>= 14'}
1674
+ peerDependencies:
1675
+ postcss: '>=8.0.9'
1676
+ ts-node: '>=9.0.0'
1677
+ peerDependenciesMeta:
1678
+ postcss:
1679
+ optional: true
1680
+ ts-node:
1681
+ optional: true
1682
+ dependencies:
1683
+ lilconfig: 2.1.0
1684
+ postcss: 8.4.24
1685
+ yaml: 2.3.1
1686
+ dev: true
1687
+
1688
+ /postcss-nested@6.0.1(postcss@8.4.24):
1689
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
1690
+ engines: {node: '>=12.0'}
1691
+ peerDependencies:
1692
+ postcss: ^8.2.14
1693
+ dependencies:
1694
+ postcss: 8.4.24
1695
+ postcss-selector-parser: 6.0.13
1696
+ dev: true
1697
+
1698
+ /postcss-safe-parser@6.0.0(postcss@8.4.24):
1699
+ resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
1700
+ engines: {node: '>=12.0'}
1701
+ peerDependencies:
1702
+ postcss: ^8.3.3
1703
+ dependencies:
1704
+ postcss: 8.4.24
1705
+ dev: true
1706
+
1707
+ /postcss-scss@4.0.6(postcss@8.4.24):
1708
+ resolution: {integrity: sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==}
1709
+ engines: {node: '>=12.0'}
1710
+ peerDependencies:
1711
+ postcss: ^8.4.19
1712
+ dependencies:
1713
+ postcss: 8.4.24
1714
+ dev: true
1715
+
1716
+ /postcss-selector-parser@6.0.13:
1717
+ resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
1718
+ engines: {node: '>=4'}
1719
+ dependencies:
1720
+ cssesc: 3.0.0
1721
+ util-deprecate: 1.0.2
1722
+ dev: true
1723
+
1724
+ /postcss-value-parser@4.2.0:
1725
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1726
+ dev: true
1727
+
1728
+ /postcss@8.4.24:
1729
+ resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==}
1730
+ engines: {node: ^10 || ^12 || >=14}
1731
+ dependencies:
1732
+ nanoid: 3.3.6
1733
+ picocolors: 1.0.0
1734
+ source-map-js: 1.0.2
1735
+ dev: true
1736
+
1737
+ /prelude-ls@1.2.1:
1738
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1739
+ engines: {node: '>= 0.8.0'}
1740
+ dev: true
1741
+
1742
+ /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@3.59.2):
1743
+ resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==}
1744
+ peerDependencies:
1745
+ prettier: ^1.16.4 || ^2.0.0
1746
+ svelte: ^3.2.0 || ^4.0.0-next.0
1747
+ dependencies:
1748
+ prettier: 2.8.8
1749
+ svelte: 3.59.2
1750
+ dev: true
1751
+
1752
+ /prettier@2.8.8:
1753
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
1754
+ engines: {node: '>=10.13.0'}
1755
+ hasBin: true
1756
+ dev: true
1757
+
1758
+ /punycode@2.3.0:
1759
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
1760
+ engines: {node: '>=6'}
1761
+ dev: true
1762
+
1763
+ /queue-microtask@1.2.3:
1764
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1765
+ dev: true
1766
+
1767
+ /read-cache@1.0.0:
1768
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1769
+ dependencies:
1770
+ pify: 2.3.0
1771
+ dev: true
1772
+
1773
+ /readdirp@3.6.0:
1774
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1775
+ engines: {node: '>=8.10.0'}
1776
+ dependencies:
1777
+ picomatch: 2.3.1
1778
+ dev: true
1779
+
1780
+ /resolve-from@4.0.0:
1781
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1782
+ engines: {node: '>=4'}
1783
+ dev: true
1784
+
1785
+ /resolve@1.22.2:
1786
+ resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
1787
+ hasBin: true
1788
+ dependencies:
1789
+ is-core-module: 2.12.1
1790
+ path-parse: 1.0.7
1791
+ supports-preserve-symlinks-flag: 1.0.0
1792
+ dev: true
1793
+
1794
+ /reusify@1.0.4:
1795
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1796
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1797
+ dev: true
1798
+
1799
+ /rimraf@2.7.1:
1800
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
1801
+ hasBin: true
1802
+ dependencies:
1803
+ glob: 7.2.3
1804
+ dev: true
1805
+
1806
+ /rimraf@3.0.2:
1807
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1808
+ hasBin: true
1809
+ dependencies:
1810
+ glob: 7.2.3
1811
+ dev: true
1812
+
1813
+ /rollup@3.25.1:
1814
+ resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==}
1815
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
1816
+ hasBin: true
1817
+ optionalDependencies:
1818
+ fsevents: 2.3.2
1819
+ dev: true
1820
+
1821
+ /run-parallel@1.2.0:
1822
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1823
+ dependencies:
1824
+ queue-microtask: 1.2.3
1825
+ dev: true
1826
+
1827
+ /sade@1.8.1:
1828
+ resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
1829
+ engines: {node: '>=6'}
1830
+ dependencies:
1831
+ mri: 1.2.0
1832
+ dev: true
1833
+
1834
+ /sander@0.5.1:
1835
+ resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
1836
+ dependencies:
1837
+ es6-promise: 3.3.1
1838
+ graceful-fs: 4.2.11
1839
+ mkdirp: 0.5.6
1840
+ rimraf: 2.7.1
1841
+ dev: true
1842
+
1843
+ /semver@7.5.2:
1844
+ resolution: {integrity: sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==}
1845
+ engines: {node: '>=10'}
1846
+ hasBin: true
1847
+ dependencies:
1848
+ lru-cache: 6.0.0
1849
+ dev: true
1850
+
1851
+ /set-cookie-parser@2.6.0:
1852
+ resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
1853
+ dev: true
1854
+
1855
+ /shebang-command@2.0.0:
1856
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1857
+ engines: {node: '>=8'}
1858
+ dependencies:
1859
+ shebang-regex: 3.0.0
1860
+ dev: true
1861
+
1862
+ /shebang-regex@3.0.0:
1863
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1864
+ engines: {node: '>=8'}
1865
+ dev: true
1866
+
1867
+ /sirv@2.0.3:
1868
+ resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==}
1869
+ engines: {node: '>= 10'}
1870
+ dependencies:
1871
+ '@polka/url': 1.0.0-next.21
1872
+ mrmime: 1.0.1
1873
+ totalist: 3.0.1
1874
+ dev: true
1875
+
1876
+ /slash@3.0.0:
1877
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1878
+ engines: {node: '>=8'}
1879
+ dev: true
1880
+
1881
+ /sorcery@0.11.0:
1882
+ resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==}
1883
+ hasBin: true
1884
+ dependencies:
1885
+ '@jridgewell/sourcemap-codec': 1.4.15
1886
+ buffer-crc32: 0.2.13
1887
+ minimist: 1.2.8
1888
+ sander: 0.5.1
1889
+ dev: true
1890
+
1891
+ /source-map-js@1.0.2:
1892
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1893
+ engines: {node: '>=0.10.0'}
1894
+ dev: true
1895
+
1896
+ /source-map@0.6.1:
1897
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1898
+ engines: {node: '>=0.10.0'}
1899
+ dev: true
1900
+
1901
+ /streamsearch@1.1.0:
1902
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
1903
+ engines: {node: '>=10.0.0'}
1904
+ dev: true
1905
+
1906
+ /strip-ansi@6.0.1:
1907
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1908
+ engines: {node: '>=8'}
1909
+ dependencies:
1910
+ ansi-regex: 5.0.1
1911
+ dev: true
1912
+
1913
+ /strip-indent@3.0.0:
1914
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
1915
+ engines: {node: '>=8'}
1916
+ dependencies:
1917
+ min-indent: 1.0.1
1918
+ dev: true
1919
+
1920
+ /strip-json-comments@3.1.1:
1921
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1922
+ engines: {node: '>=8'}
1923
+ dev: true
1924
+
1925
+ /strip-literal@1.0.1:
1926
+ resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==}
1927
+ dependencies:
1928
+ acorn: 8.9.0
1929
+ dev: true
1930
+
1931
+ /sucrase@3.32.0:
1932
+ resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==}
1933
+ engines: {node: '>=8'}
1934
+ hasBin: true
1935
+ dependencies:
1936
+ '@jridgewell/gen-mapping': 0.3.3
1937
+ commander: 4.1.1
1938
+ glob: 7.1.6
1939
+ lines-and-columns: 1.2.4
1940
+ mz: 2.7.0
1941
+ pirates: 4.0.6
1942
+ ts-interface-checker: 0.1.13
1943
+ dev: true
1944
+
1945
+ /supports-color@7.2.0:
1946
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1947
+ engines: {node: '>=8'}
1948
+ dependencies:
1949
+ has-flag: 4.0.0
1950
+ dev: true
1951
+
1952
+ /supports-preserve-symlinks-flag@1.0.0:
1953
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1954
+ engines: {node: '>= 0.4'}
1955
+ dev: true
1956
+
1957
+ /svelte-check@3.4.4(postcss@8.4.24)(svelte@3.59.2):
1958
+ resolution: {integrity: sha512-Uys9+R65cj8TmP8f5UpS7B2xKpNLYNxEWJsA5ZoKcWq/uwvABFF7xS6iPQGLoa7hxz0DS6xU60YFpmq06E4JxA==}
1959
+ hasBin: true
1960
+ peerDependencies:
1961
+ svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0
1962
+ dependencies:
1963
+ '@jridgewell/trace-mapping': 0.3.18
1964
+ chokidar: 3.5.3
1965
+ fast-glob: 3.2.12
1966
+ import-fresh: 3.3.0
1967
+ picocolors: 1.0.0
1968
+ sade: 1.8.1
1969
+ svelte: 3.59.2
1970
+ svelte-preprocess: 5.0.4(postcss@8.4.24)(svelte@3.59.2)(typescript@5.1.3)
1971
+ typescript: 5.1.3
1972
+ transitivePeerDependencies:
1973
+ - '@babel/core'
1974
+ - coffeescript
1975
+ - less
1976
+ - postcss
1977
+ - postcss-load-config
1978
+ - pug
1979
+ - sass
1980
+ - stylus
1981
+ - sugarss
1982
+ dev: true
1983
+
1984
+ /svelte-eslint-parser@0.31.0(svelte@3.59.2):
1985
+ resolution: {integrity: sha512-/31RpBf/e3YjoFphjsyo3JRyN1r4UalGAGafXrZ6EJK4h4COOO0rbfBoen5byGsXnIJKsrlC1lkEd2Vzpq2IDg==}
1986
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1987
+ peerDependencies:
1988
+ svelte: ^3.37.0 || ^4.0.0-0
1989
+ peerDependenciesMeta:
1990
+ svelte:
1991
+ optional: true
1992
+ dependencies:
1993
+ eslint-scope: 7.2.0
1994
+ eslint-visitor-keys: 3.4.1
1995
+ espree: 9.5.2
1996
+ postcss: 8.4.24
1997
+ postcss-scss: 4.0.6(postcss@8.4.24)
1998
+ svelte: 3.59.2
1999
+ dev: true
2000
+
2001
+ /svelte-hmr@0.15.2(svelte@3.59.2):
2002
+ resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==}
2003
+ engines: {node: ^12.20 || ^14.13.1 || >= 16}
2004
+ peerDependencies:
2005
+ svelte: ^3.19.0 || ^4.0.0-next.0
2006
+ dependencies:
2007
+ svelte: 3.59.2
2008
+ dev: true
2009
+
2010
+ /svelte-preprocess@5.0.4(postcss@8.4.24)(svelte@3.59.2)(typescript@5.1.3):
2011
+ resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==}
2012
+ engines: {node: '>= 14.10.0'}
2013
+ requiresBuild: true
2014
+ peerDependencies:
2015
+ '@babel/core': ^7.10.2
2016
+ coffeescript: ^2.5.1
2017
+ less: ^3.11.3 || ^4.0.0
2018
+ postcss: ^7 || ^8
2019
+ postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0
2020
+ pug: ^3.0.0
2021
+ sass: ^1.26.8
2022
+ stylus: ^0.55.0
2023
+ sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0
2024
+ svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0
2025
+ typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0'
2026
+ peerDependenciesMeta:
2027
+ '@babel/core':
2028
+ optional: true
2029
+ coffeescript:
2030
+ optional: true
2031
+ less:
2032
+ optional: true
2033
+ postcss:
2034
+ optional: true
2035
+ postcss-load-config:
2036
+ optional: true
2037
+ pug:
2038
+ optional: true
2039
+ sass:
2040
+ optional: true
2041
+ stylus:
2042
+ optional: true
2043
+ sugarss:
2044
+ optional: true
2045
+ typescript:
2046
+ optional: true
2047
+ dependencies:
2048
+ '@types/pug': 2.0.6
2049
+ detect-indent: 6.1.0
2050
+ magic-string: 0.27.0
2051
+ postcss: 8.4.24
2052
+ sorcery: 0.11.0
2053
+ strip-indent: 3.0.0
2054
+ svelte: 3.59.2
2055
+ typescript: 5.1.3
2056
+ dev: true
2057
+
2058
+ /svelte@3.59.2:
2059
+ resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==}
2060
+ engines: {node: '>= 8'}
2061
+ dev: true
2062
+
2063
+ /tailwindcss@3.3.2:
2064
+ resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
2065
+ engines: {node: '>=14.0.0'}
2066
+ hasBin: true
2067
+ dependencies:
2068
+ '@alloc/quick-lru': 5.2.0
2069
+ arg: 5.0.2
2070
+ chokidar: 3.5.3
2071
+ didyoumean: 1.2.2
2072
+ dlv: 1.1.3
2073
+ fast-glob: 3.2.12
2074
+ glob-parent: 6.0.2
2075
+ is-glob: 4.0.3
2076
+ jiti: 1.18.2
2077
+ lilconfig: 2.1.0
2078
+ micromatch: 4.0.5
2079
+ normalize-path: 3.0.0
2080
+ object-hash: 3.0.0
2081
+ picocolors: 1.0.0
2082
+ postcss: 8.4.24
2083
+ postcss-import: 15.1.0(postcss@8.4.24)
2084
+ postcss-js: 4.0.1(postcss@8.4.24)
2085
+ postcss-load-config: 4.0.1(postcss@8.4.24)
2086
+ postcss-nested: 6.0.1(postcss@8.4.24)
2087
+ postcss-selector-parser: 6.0.13
2088
+ postcss-value-parser: 4.2.0
2089
+ resolve: 1.22.2
2090
+ sucrase: 3.32.0
2091
+ transitivePeerDependencies:
2092
+ - ts-node
2093
+ dev: true
2094
+
2095
+ /text-table@0.2.0:
2096
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
2097
+ dev: true
2098
+
2099
+ /thenify-all@1.6.0:
2100
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
2101
+ engines: {node: '>=0.8'}
2102
+ dependencies:
2103
+ thenify: 3.3.1
2104
+ dev: true
2105
+
2106
+ /thenify@3.3.1:
2107
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
2108
+ dependencies:
2109
+ any-promise: 1.3.0
2110
+ dev: true
2111
+
2112
+ /tinybench@2.5.0:
2113
+ resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==}
2114
+ dev: true
2115
+
2116
+ /tinypool@0.3.1:
2117
+ resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==}
2118
+ engines: {node: '>=14.0.0'}
2119
+ dev: true
2120
+
2121
+ /tinyspy@1.1.1:
2122
+ resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==}
2123
+ engines: {node: '>=14.0.0'}
2124
+ dev: true
2125
+
2126
+ /to-regex-range@5.0.1:
2127
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
2128
+ engines: {node: '>=8.0'}
2129
+ dependencies:
2130
+ is-number: 7.0.0
2131
+ dev: true
2132
+
2133
+ /totalist@3.0.1:
2134
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
2135
+ engines: {node: '>=6'}
2136
+ dev: true
2137
+
2138
+ /ts-interface-checker@0.1.13:
2139
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
2140
+ dev: true
2141
+
2142
+ /tslib@1.14.1:
2143
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
2144
+ dev: true
2145
+
2146
+ /tslib@2.5.3:
2147
+ resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==}
2148
+ dev: true
2149
+
2150
+ /tsutils@3.21.0(typescript@5.1.3):
2151
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
2152
+ engines: {node: '>= 6'}
2153
+ peerDependencies:
2154
+ 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'
2155
+ dependencies:
2156
+ tslib: 1.14.1
2157
+ typescript: 5.1.3
2158
+ dev: true
2159
+
2160
+ /type-check@0.4.0:
2161
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
2162
+ engines: {node: '>= 0.8.0'}
2163
+ dependencies:
2164
+ prelude-ls: 1.2.1
2165
+ dev: true
2166
+
2167
+ /type-detect@4.0.8:
2168
+ resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
2169
+ engines: {node: '>=4'}
2170
+ dev: true
2171
+
2172
+ /type-fest@0.20.2:
2173
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
2174
+ engines: {node: '>=10'}
2175
+ dev: true
2176
+
2177
+ /typescript@5.1.3:
2178
+ resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==}
2179
+ engines: {node: '>=14.17'}
2180
+ hasBin: true
2181
+ dev: true
2182
+
2183
+ /undici@5.22.1:
2184
+ resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==}
2185
+ engines: {node: '>=14.0'}
2186
+ dependencies:
2187
+ busboy: 1.6.0
2188
+ dev: true
2189
+
2190
+ /update-browserslist-db@1.0.11(browserslist@4.21.9):
2191
+ resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
2192
+ hasBin: true
2193
+ peerDependencies:
2194
+ browserslist: '>= 4.21.0'
2195
+ dependencies:
2196
+ browserslist: 4.21.9
2197
+ escalade: 3.1.1
2198
+ picocolors: 1.0.0
2199
+ dev: true
2200
+
2201
+ /uri-js@4.4.1:
2202
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2203
+ dependencies:
2204
+ punycode: 2.3.0
2205
+ dev: true
2206
+
2207
+ /util-deprecate@1.0.2:
2208
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
2209
+ dev: true
2210
+
2211
+ /vite@4.3.9(@types/node@20.3.1):
2212
+ resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==}
2213
+ engines: {node: ^14.18.0 || >=16.0.0}
2214
+ hasBin: true
2215
+ peerDependencies:
2216
+ '@types/node': '>= 14'
2217
+ less: '*'
2218
+ sass: '*'
2219
+ stylus: '*'
2220
+ sugarss: '*'
2221
+ terser: ^5.4.0
2222
+ peerDependenciesMeta:
2223
+ '@types/node':
2224
+ optional: true
2225
+ less:
2226
+ optional: true
2227
+ sass:
2228
+ optional: true
2229
+ stylus:
2230
+ optional: true
2231
+ sugarss:
2232
+ optional: true
2233
+ terser:
2234
+ optional: true
2235
+ dependencies:
2236
+ '@types/node': 20.3.1
2237
+ esbuild: 0.17.19
2238
+ postcss: 8.4.24
2239
+ rollup: 3.25.1
2240
+ optionalDependencies:
2241
+ fsevents: 2.3.2
2242
+ dev: true
2243
+
2244
+ /vitefu@0.2.4(vite@4.3.9):
2245
+ resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}
2246
+ peerDependencies:
2247
+ vite: ^3.0.0 || ^4.0.0
2248
+ peerDependenciesMeta:
2249
+ vite:
2250
+ optional: true
2251
+ dependencies:
2252
+ vite: 4.3.9(@types/node@20.3.1)
2253
+ dev: true
2254
+
2255
+ /vitest@0.25.8:
2256
+ resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==}
2257
+ engines: {node: '>=v14.16.0'}
2258
+ hasBin: true
2259
+ peerDependencies:
2260
+ '@edge-runtime/vm': '*'
2261
+ '@vitest/browser': '*'
2262
+ '@vitest/ui': '*'
2263
+ happy-dom: '*'
2264
+ jsdom: '*'
2265
+ peerDependenciesMeta:
2266
+ '@edge-runtime/vm':
2267
+ optional: true
2268
+ '@vitest/browser':
2269
+ optional: true
2270
+ '@vitest/ui':
2271
+ optional: true
2272
+ happy-dom:
2273
+ optional: true
2274
+ jsdom:
2275
+ optional: true
2276
+ dependencies:
2277
+ '@types/chai': 4.3.5
2278
+ '@types/chai-subset': 1.3.3
2279
+ '@types/node': 20.3.1
2280
+ acorn: 8.9.0
2281
+ acorn-walk: 8.2.0
2282
+ chai: 4.3.7
2283
+ debug: 4.3.4
2284
+ local-pkg: 0.4.3
2285
+ source-map: 0.6.1
2286
+ strip-literal: 1.0.1
2287
+ tinybench: 2.5.0
2288
+ tinypool: 0.3.1
2289
+ tinyspy: 1.1.1
2290
+ vite: 4.3.9(@types/node@20.3.1)
2291
+ transitivePeerDependencies:
2292
+ - less
2293
+ - sass
2294
+ - stylus
2295
+ - sugarss
2296
+ - supports-color
2297
+ - terser
2298
+ dev: true
2299
+
2300
+ /which@2.0.2:
2301
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2302
+ engines: {node: '>= 8'}
2303
+ hasBin: true
2304
+ dependencies:
2305
+ isexe: 2.0.0
2306
+ dev: true
2307
+
2308
+ /word-wrap@1.2.3:
2309
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
2310
+ engines: {node: '>=0.10.0'}
2311
+ dev: true
2312
+
2313
+ /wrappy@1.0.2:
2314
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
2315
+ dev: true
2316
+
2317
+ /yallist@4.0.0:
2318
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
2319
+ dev: true
2320
+
2321
+ /yaml@1.10.2:
2322
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
2323
+ engines: {node: '>= 6'}
2324
+ dev: true
2325
+
2326
+ /yaml@2.3.1:
2327
+ resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==}
2328
+ engines: {node: '>= 14'}
2329
+ dev: true
2330
+
2331
+ /yocto-queue@0.1.0:
2332
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2333
+ engines: {node: '>=10'}
2334
+ dev: true
postcss.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
src/app.css ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
src/app.d.ts ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // See https://kit.svelte.dev/docs/types#app
2
+ // for information about these interfaces
3
+ declare global {
4
+ namespace App {
5
+ // interface Error {}
6
+ // interface Locals {}
7
+ // interface PageData {}
8
+ // interface Platform {}
9
+ }
10
+ }
11
+
12
+ export {};
src/app.html ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <link rel="icon" href="%sveltekit.assets%/favicon.svg" />
6
+ <meta name="viewport" content="width=device-width" />
7
+ <title>agents js demo</title>
8
+ %sveltekit.head%
9
+ </head>
10
+ <body data-sveltekit-preload-data="hover">
11
+ <div style="display: contents">%sveltekit.body%</div>
12
+ </body>
13
+ </html>
src/index.test.ts ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import { describe, it, expect } from 'vitest';
2
+
3
+ describe('sum test', () => {
4
+ it('adds 1 + 2 to equal 3', () => {
5
+ expect(1 + 2).toBe(3);
6
+ });
7
+ });
src/lib/agents/evalBuilder.ts ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Tool } from './tools/tool';
2
+
3
+ export type Update = {
4
+ message: string;
5
+ data: undefined | string | Blob;
6
+ };
7
+
8
+ // this function passes the tools & files to the context before calling eval
9
+ export async function evalBuilder(
10
+ code: string,
11
+ tools: Tool<any, any>[],
12
+ files: FileList | null,
13
+ updateCallback: (message: string, data: undefined | string | Blob) => void
14
+ ) {
15
+ async function wrapperEval() {
16
+ if (files) {
17
+ if (files[0].type.startsWith('image')) {
18
+ // @ts-ignore
19
+ globalThis['image'] = await files[0].arrayBuffer();
20
+ } else if (files[0].type.startsWith('audio')) {
21
+ // @ts-ignore
22
+ globalThis['audio'] = await files[0].arrayBuffer();
23
+ }
24
+ }
25
+
26
+ // add tools to context
27
+ for (const tool of tools.filter((el) => el.name !== 'message')) {
28
+ // @ts-ignore
29
+ globalThis[tool.name] = tool.call;
30
+ }
31
+
32
+ // @ts-ignore
33
+ globalThis['message'] = updateCallback;
34
+
35
+ await Object.getPrototypeOf(async function () {}).constructor(`
36
+ ${code}
37
+ return await generate();
38
+ `)();
39
+
40
+ // clean up tools
41
+ for (const tool of tools) {
42
+ // @ts-ignore
43
+ delete globalThis[tool.name];
44
+ }
45
+ }
46
+
47
+ return wrapperEval;
48
+ }
src/lib/agents/generateCode.ts ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Tool } from './tools/tool';
2
+
3
+ import { get } from 'svelte/store';
4
+ import { OPENAI_API_KEY } from '../store';
5
+ import { Configuration, OpenAIApi } from 'openai';
6
+ import { generatePrompt } from './promptGeneration';
7
+
8
+ export async function generateCode(
9
+ prompt: string,
10
+ tools: Tool<any, any>[],
11
+ files: FileList | null
12
+ ) {
13
+ const fullprompt = generatePrompt(
14
+ prompt,
15
+ tools,
16
+ !!files && files[0].type.startsWith('image'),
17
+ !!files && files[0].type.startsWith('audio')
18
+ );
19
+
20
+ const openai = new OpenAIApi(new Configuration({ apiKey: get(OPENAI_API_KEY) }));
21
+ const textAnswer =
22
+ (
23
+ await openai.createCompletion({
24
+ model: 'text-davinci-003',
25
+ prompt: fullprompt,
26
+ max_tokens: 1000
27
+ })
28
+ ).data.choices[0].text ?? '';
29
+
30
+ const regex = /```(.*?)```/gs;
31
+ const matches = [...textAnswer.matchAll(regex)];
32
+
33
+ const codeBlocks = matches.map((match) => match[1]);
34
+ return codeBlocks[0].replace('js\n', '') ?? 'nothing';
35
+ }
src/lib/agents/getInference.ts ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import { HfInference } from '@huggingface/inference';
2
+ import { get } from 'svelte/store';
3
+ import { HF_ACCESS_TOKEN } from '../store';
4
+
5
+ export function getInference() {
6
+ return new HfInference(get(HF_ACCESS_TOKEN));
7
+ }
src/lib/agents/promptGeneration.ts ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Tool } from './tools/tool';
2
+
3
+ function toolDescription(tool: Tool<any, any>) {
4
+ let prompt = ` name: ${tool.name} \n description: ${tool.description}`;
5
+
6
+ const examples = tool.examples.slice(0, 1).map((example) => {
7
+ return ` prompt: ${example.prompt} \n command generated: \`${example.command}\``;
8
+ });
9
+
10
+ prompt += `\n` + examples.join('\n');
11
+
12
+ return prompt;
13
+ }
14
+
15
+ export function generatePrompt(
16
+ prompt: string,
17
+ tools: Tool<any, any>[],
18
+ image?: boolean,
19
+ audio?: boolean
20
+ ) {
21
+ if (tools.length === 0) {
22
+ throw new Error('no tools selected');
23
+ }
24
+
25
+ let params = '';
26
+
27
+ if (image) {
28
+ params += `image`;
29
+ }
30
+ if (audio) {
31
+ params += params ? ',' : '';
32
+ params += `audio`;
33
+ }
34
+
35
+ // describe all the tools
36
+ const fullPrompt = `
37
+ Create a function that does the following: ${prompt}.
38
+
39
+ Examples:
40
+ For the prompt: "Caption the image and give me the caption read out loud."
41
+ \`\`\`js
42
+ async function generate(image) {
43
+ const caption = await imageToText(image);
44
+ message("First we caption the image", caption);
45
+ const output = await textToSpeech(caption);
46
+ message("Then we read the caption out loud", output);
47
+ return output;
48
+ };
49
+ \`\`\`
50
+
51
+ For the prompt "Display an image of a yellow dog wearing a top hat"
52
+ \`\`\`js
53
+ async function generate() {
54
+ const output = await textToImage("yellow dog wearing a top hat");
55
+ message("We generate the dog picture", output);
56
+ return output;
57
+ }
58
+ \`\`\`
59
+
60
+ For the prompt "transcribe the attached audio"
61
+
62
+ \`\`\`js
63
+ async function generate(audio) {
64
+ const output = await speechToText(audio)
65
+ message("We read the text", output);
66
+ return output;
67
+ }
68
+ \`\`\`
69
+
70
+ In order to help in answering the above prompt, the function has access to the following methods to generate outputs.
71
+ ${tools.map((tool) => toolDescription(tool)).join('\n\n ')}
72
+
73
+ Use the above methods and only the above methods to answer the prompt: ${prompt}.
74
+
75
+ It must match the following signature:
76
+ \`\`\`js
77
+ async function generate(${params}}) {
78
+ // your code here
79
+ return output;
80
+ };
81
+ \`\`\``;
82
+
83
+ return fullPrompt;
84
+ }
src/lib/agents/tools/imageToText.ts ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getInference } from '$lib/agents/getInference';
2
+ import type { ImageToTextArgs, ImageToTextOutput } from '@huggingface/inference';
3
+ import type { Tool } from './tool';
4
+
5
+ export const imageToTextTool: Tool<ImageToTextArgs['data'], ImageToTextOutput['generated_text']> = {
6
+ name: 'imageToText',
7
+ description: 'Caption an image.',
8
+ examples: [
9
+ {
10
+ prompt: 'Describe the image',
11
+ command: 'imageToText(image)'
12
+ }
13
+ ],
14
+ call: async (input) => {
15
+ return (
16
+ await getInference().imageToText(
17
+ {
18
+ data: await input,
19
+ model: 'nlpconnect/vit-gpt2-image-captioning'
20
+ },
21
+ { wait_for_model: true }
22
+ )
23
+ ).generated_text;
24
+ }
25
+ };
src/lib/agents/tools/index.ts ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { textToImageTool } from './textToImage';
2
+ import { textToSpeechTool } from './textToSpeech';
3
+ import { speechToTextTool } from './speechToText';
4
+ import { imageToTextTool } from './imageToText';
5
+ import { messageTool } from './message';
6
+
7
+ export const tools = [
8
+ textToImageTool,
9
+ textToSpeechTool,
10
+ speechToTextTool,
11
+ imageToTextTool,
12
+ messageTool
13
+ ];
src/lib/agents/tools/message.ts ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import type { Tool } from './tool';
2
+
3
+ export const messageTool: Tool<Promise<Blob | string> | string, void> = {
4
+ name: 'message',
5
+ description: 'Send data back to the user.',
6
+ examples: [
7
+ {
8
+ prompt: 'Display the created image',
9
+ command: 'message("we display the image", image)'
10
+ },
11
+ {
12
+ prompt: 'Display the generated text',
13
+ command: 'message("we render the text", text)'
14
+ },
15
+ {
16
+ prompt: 'Display the text "hello world"',
17
+ command: 'message("hello world")'
18
+ }
19
+ ],
20
+ call: async () => {
21
+ return;
22
+ }
23
+ };
src/lib/agents/tools/speechToText.ts ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getInference } from '$lib/agents/getInference';
2
+ import type {
3
+ AutomaticSpeechRecognitionArgs,
4
+ AutomaticSpeechRecognitionOutput
5
+ } from '@huggingface/inference';
6
+ import type { Tool } from './tool';
7
+
8
+ export const speechToTextTool: Tool<
9
+ AutomaticSpeechRecognitionArgs['data'],
10
+ AutomaticSpeechRecognitionOutput['text']
11
+ > = {
12
+ name: 'speechToText',
13
+ description: 'Caption an audio file and returns its text content.',
14
+ examples: [
15
+ {
16
+ prompt: 'Transcribe the sound file',
17
+ command: 'speechToText(audio)'
18
+ }
19
+ ],
20
+ call: async (data) => {
21
+ return (
22
+ await getInference().automaticSpeechRecognition(
23
+ {
24
+ data: await data,
25
+ model: 'facebook/wav2vec2-large-960h-lv60-self'
26
+ },
27
+ { wait_for_model: true }
28
+ )
29
+ ).text;
30
+ }
31
+ };
src/lib/agents/tools/textToImage.ts ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getInference } from '$lib/agents/getInference';
2
+ import type { TextToImageArgs, TextToImageOutput } from '@huggingface/inference';
3
+ import type { Tool } from './tool';
4
+
5
+ export const textToImageTool: Tool<TextToImageArgs['inputs'], TextToImageOutput> = {
6
+ name: 'textToImage',
7
+ description: 'Generate an image from a text prompt.',
8
+ examples: [
9
+ {
10
+ prompt: 'Generate an image of a cat wearing a top hat',
11
+ command: "textToImage('cat wearing a top hat')"
12
+ },
13
+ {
14
+ prompt: 'Draw a brown dog on a beach',
15
+ command: "textToImage('drawing of a brown dog on a beach')"
16
+ }
17
+ ],
18
+ call: async (input) => {
19
+ return await getInference().textToImage(
20
+ {
21
+ inputs: await input,
22
+ model: 'stabilityai/stable-diffusion-2'
23
+ },
24
+ { wait_for_model: true }
25
+ );
26
+ }
27
+ };
src/lib/agents/tools/textToSpeech.ts ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { getInference } from '$lib/agents/getInference';
2
+ import type { TextToSpeechArgs, TextToSpeechOutput } from '@huggingface/inference';
3
+
4
+ import type { Tool } from './tool';
5
+
6
+ export const textToSpeechTool: Tool<TextToSpeechArgs['inputs'], TextToSpeechOutput> = {
7
+ name: 'textToSpeech',
8
+ description: 'This tool takes a text input and turns it into an audio file.',
9
+ examples: [
10
+ {
11
+ prompt: 'Say the following out loud:"Hello world!"',
12
+ command: "textToSpeech('Hello world!')"
13
+ },
14
+ { prompt: 'Say the content of the string txt out loud', command: 'textToSpeech(txt)' }
15
+ ],
16
+ call: async (input) => {
17
+ return await getInference().textToSpeech(
18
+ {
19
+ inputs: await input,
20
+ model: 'espnet/kan-bayashi_ljspeech_vits'
21
+ },
22
+ { wait_for_model: true }
23
+ );
24
+ }
25
+ };
src/lib/agents/tools/tool.ts ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ export interface Tool<Input, Output> {
2
+ name: string;
3
+ description: string;
4
+ examples: Array<{
5
+ prompt: string;
6
+ command: string;
7
+ }>;
8
+ call: (input: Promise<Input> | Input) => Promise<Output>;
9
+ }
src/lib/components/ApiKeyModal.svelte ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import { onMount } from 'svelte';
3
+ import { HF_ACCESS_TOKEN, OPENAI_API_KEY } from '../store';
4
+
5
+ let dialogElement: HTMLDialogElement;
6
+
7
+ onMount(() => {
8
+ if ($HF_ACCESS_TOKEN === '') {
9
+ dialogElement.showModal();
10
+ }
11
+ });
12
+ </script>
13
+
14
+ <dialog
15
+ id="api_modal"
16
+ class="modal"
17
+ bind:this={dialogElement}
18
+ on:close={() => {
19
+ if ($HF_ACCESS_TOKEN === '' || $OPENAI_API_KEY === '') {
20
+ dialogElement.showModal();
21
+ } else {
22
+ localStorage.setItem('HF_ACCESS_TOKEN', $HF_ACCESS_TOKEN);
23
+ localStorage.setItem('OPENAI_API_KEY', $OPENAI_API_KEY);
24
+ }
25
+ }}
26
+ >
27
+ <form method="dialog" class="modal-box">
28
+ <h3 class="font-bold text-lg">API keys needed</h3>
29
+ <p class="py-4">In order for this demo to work you need API keys for HF and OpenAI.</p>
30
+ <div class="w-full flex flex-col gap-5">
31
+ <form aria-label="HF API" class="form-control">
32
+ <label for="hf_key" class="label-text pb-2">HF API key</label>
33
+ <input
34
+ class="input"
35
+ name="hf_key"
36
+ type="text"
37
+ placeholder="hf_***"
38
+ bind:value={$HF_ACCESS_TOKEN}
39
+ />
40
+ </form>
41
+ <form aria-label="OPENAI API" class="form-control">
42
+ <label for="oai_key" class="label-text pb-2">OpenAI API key</label>
43
+ <input
44
+ class="input"
45
+ name="oai_key"
46
+ type="text"
47
+ placeholder="sk-***"
48
+ bind:value={$OPENAI_API_KEY}
49
+ />
50
+ </form>
51
+ </div>
52
+ <div class="modal-action">
53
+ <button class="btn">Close</button>
54
+ </div>
55
+ </form>
56
+ </dialog>
src/lib/components/LogoHuggingFaceBorderless.svelte ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ export let classNames = "";
3
+ </script>
4
+
5
+ <svg
6
+ class={classNames}
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ width="1em"
9
+ height="1em"
10
+ fill="none"
11
+ viewBox="0 0 95 88"
12
+ >
13
+ <path fill="#FFD21E" d="M47.21 76.5a34.75 34.75 0 1 0 0-69.5 34.75 34.75 0 0 0 0 69.5Z" />
14
+ <path
15
+ fill="#FF9D0B"
16
+ d="M81.96 41.75a34.75 34.75 0 1 0-69.5 0 34.75 34.75 0 0 0 69.5 0Zm-73.5 0a38.75 38.75 0 1 1 77.5 0 38.75 38.75 0 0 1-77.5 0Z"
17
+ />
18
+ <path
19
+ fill="#3A3B45"
20
+ d="M58.5 32.3c1.28.44 1.78 3.06 3.07 2.38a5 5 0 1 0-6.76-2.07c.61 1.15 2.55-.72 3.7-.32ZM34.95 32.3c-1.28.44-1.79 3.06-3.07 2.38a5 5 0 1 1 6.76-2.07c-.61 1.15-2.56-.72-3.7-.32ZM46.96 56.29c9.83 0 13-8.76 13-13.26 0-2.34-1.57-1.6-4.09-.36-2.33 1.15-5.46 2.74-8.9 2.74-7.19 0-13-6.88-13-2.38s3.16 13.26 13 13.26Z"
21
+ />
22
+ <mask id="a" width="27" height="16" x="33" y="41" maskUnits="userSpaceOnUse">
23
+ <path
24
+ fill="#fff"
25
+ d="M46.96 56.29c9.83 0 13-8.76 13-13.26 0-2.34-1.57-1.6-4.09-.36-2.33 1.15-5.46 2.74-8.9 2.74-7.19 0-13-6.88-13-2.38s3.16 13.26 13 13.26Z"
26
+ />
27
+ </mask>
28
+ <g mask="url(#a)">
29
+ <path
30
+ fill="#F94040"
31
+ d="M47.21 66.5a8.67 8.67 0 0 0 2.65-16.94c-.84-.26-1.73 2.6-2.65 2.6-.86 0-1.7-2.88-2.48-2.65a8.68 8.68 0 0 0 2.48 16.99Z"
32
+ />
33
+ </g>
34
+ <path
35
+ fill="#FF9D0B"
36
+ d="M70.71 37a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5ZM24.21 37a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5ZM17.52 48c-1.62 0-3.06.66-4.07 1.87a5.97 5.97 0 0 0-1.33 3.76 7.1 7.1 0 0 0-1.94-.3c-1.55 0-2.95.59-3.94 1.66a5.8 5.8 0 0 0-.8 7 5.3 5.3 0 0 0-1.79 2.82c-.24.9-.48 2.8.8 4.74a5.22 5.22 0 0 0-.37 5.02c1.02 2.32 3.57 4.14 8.52 6.1 3.07 1.22 5.89 2 5.91 2.01a44.33 44.33 0 0 0 10.93 1.6c5.86 0 10.05-1.8 12.46-5.34 3.88-5.69 3.33-10.9-1.7-15.92-2.77-2.78-4.62-6.87-5-7.77-.78-2.66-2.84-5.62-6.25-5.62a5.7 5.7 0 0 0-4.6 2.46c-1-1.26-1.98-2.25-2.86-2.82A7.4 7.4 0 0 0 17.52 48Zm0 4c.51 0 1.14.22 1.82.65 2.14 1.36 6.25 8.43 7.76 11.18.5.92 1.37 1.31 2.14 1.31 1.55 0 2.75-1.53.15-3.48-3.92-2.93-2.55-7.72-.68-8.01.08-.02.17-.02.24-.02 1.7 0 2.45 2.93 2.45 2.93s2.2 5.52 5.98 9.3c3.77 3.77 3.97 6.8 1.22 10.83-1.88 2.75-5.47 3.58-9.16 3.58-3.81 0-7.73-.9-9.92-1.46-.11-.03-13.45-3.8-11.76-7 .28-.54.75-.76 1.34-.76 2.38 0 6.7 3.54 8.57 3.54.41 0 .7-.17.83-.6.79-2.85-12.06-4.05-10.98-8.17.2-.73.71-1.02 1.44-1.02 3.14 0 10.2 5.53 11.68 5.53.11 0 .2-.03.24-.1.74-1.2.33-2.04-4.9-5.2-5.21-3.16-8.88-5.06-6.8-7.33.24-.26.58-.38 1-.38 3.17 0 10.66 6.82 10.66 6.82s2.02 2.1 3.25 2.1c.28 0 .52-.1.68-.38.86-1.46-8.06-8.22-8.56-11.01-.34-1.9.24-2.85 1.31-2.85Z"
37
+ />
38
+ <path
39
+ fill="#FFD21E"
40
+ d="M38.6 76.69c2.75-4.04 2.55-7.07-1.22-10.84-3.78-3.77-5.98-9.3-5.98-9.3s-.82-3.2-2.69-2.9c-1.87.3-3.24 5.08.68 8.01 3.91 2.93-.78 4.92-2.29 2.17-1.5-2.75-5.62-9.82-7.76-11.18-2.13-1.35-3.63-.6-3.13 2.2.5 2.79 9.43 9.55 8.56 11-.87 1.47-3.93-1.71-3.93-1.71s-9.57-8.71-11.66-6.44c-2.08 2.27 1.59 4.17 6.8 7.33 5.23 3.16 5.64 4 4.9 5.2-.75 1.2-12.28-8.53-13.36-4.4-1.08 4.11 11.77 5.3 10.98 8.15-.8 2.85-9.06-5.38-10.74-2.18-1.7 3.21 11.65 6.98 11.76 7.01 4.3 1.12 15.25 3.49 19.08-2.12Z"
41
+ />
42
+ <path
43
+ fill="#FF9D0B"
44
+ d="M77.4 48c1.62 0 3.07.66 4.07 1.87a5.97 5.97 0 0 1 1.33 3.76 7.1 7.1 0 0 1 1.95-.3c1.55 0 2.95.59 3.94 1.66a5.8 5.8 0 0 1 .8 7 5.3 5.3 0 0 1 1.78 2.82c.24.9.48 2.8-.8 4.74a5.22 5.22 0 0 1 .37 5.02c-1.02 2.32-3.57 4.14-8.51 6.1-3.08 1.22-5.9 2-5.92 2.01a44.33 44.33 0 0 1-10.93 1.6c-5.86 0-10.05-1.8-12.46-5.34-3.88-5.69-3.33-10.9 1.7-15.92 2.78-2.78 4.63-6.87 5.01-7.77.78-2.66 2.83-5.62 6.24-5.62a5.7 5.7 0 0 1 4.6 2.46c1-1.26 1.98-2.25 2.87-2.82A7.4 7.4 0 0 1 77.4 48Zm0 4c-.51 0-1.13.22-1.82.65-2.13 1.36-6.25 8.43-7.76 11.18a2.43 2.43 0 0 1-2.14 1.31c-1.54 0-2.75-1.53-.14-3.48 3.91-2.93 2.54-7.72.67-8.01a1.54 1.54 0 0 0-.24-.02c-1.7 0-2.45 2.93-2.45 2.93s-2.2 5.52-5.97 9.3c-3.78 3.77-3.98 6.8-1.22 10.83 1.87 2.75 5.47 3.58 9.15 3.58 3.82 0 7.73-.9 9.93-1.46.1-.03 13.45-3.8 11.76-7-.29-.54-.75-.76-1.34-.76-2.38 0-6.71 3.54-8.57 3.54-.42 0-.71-.17-.83-.6-.8-2.85 12.05-4.05 10.97-8.17-.19-.73-.7-1.02-1.44-1.02-3.14 0-10.2 5.53-11.68 5.53-.1 0-.19-.03-.23-.1-.74-1.2-.34-2.04 4.88-5.2 5.23-3.16 8.9-5.06 6.8-7.33-.23-.26-.57-.38-.98-.38-3.18 0-10.67 6.82-10.67 6.82s-2.02 2.1-3.24 2.1a.74.74 0 0 1-.68-.38c-.87-1.46 8.05-8.22 8.55-11.01.34-1.9-.24-2.85-1.31-2.85Z"
45
+ />
46
+ <path
47
+ fill="#FFD21E"
48
+ d="M56.33 76.69c-2.75-4.04-2.56-7.07 1.22-10.84 3.77-3.77 5.97-9.3 5.97-9.3s.82-3.2 2.7-2.9c1.86.3 3.23 5.08-.68 8.01-3.92 2.93.78 4.92 2.28 2.17 1.51-2.75 5.63-9.82 7.76-11.18 2.13-1.35 3.64-.6 3.13 2.2-.5 2.79-9.42 9.55-8.55 11 .86 1.47 3.92-1.71 3.92-1.71s9.58-8.71 11.66-6.44c2.08 2.27-1.58 4.17-6.8 7.33-5.23 3.16-5.63 4-4.9 5.2.75 1.2 12.28-8.53 13.36-4.4 1.08 4.11-11.76 5.3-10.97 8.15.8 2.85 9.05-5.38 10.74-2.18 1.69 3.21-11.65 6.98-11.76 7.01-4.31 1.12-15.26 3.49-19.08-2.12Z"
49
+ />
50
+ </svg>
src/lib/components/renderers/AudioRenderer.svelte ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ export let data: Promise<Blob>;
3
+ </script>
4
+
5
+ {#await data}
6
+ <p>... loading audio ...</p>
7
+ {:then audio}
8
+ <audio controls>
9
+ <source src={URL.createObjectURL(audio)} type="audio/mpeg" />
10
+ </audio>
11
+ {/await}
src/lib/components/renderers/ImageRenderer.svelte ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ export let data: Promise<Blob>;
3
+ </script>
4
+
5
+ {#await data}
6
+ <p>... loading img ...</p>
7
+ {:then img}
8
+ <img src={URL.createObjectURL(img)} alt="generated" class="px-10" />
9
+ {/await}
src/lib/store.ts ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { writable } from 'svelte/store';
2
+ import { browser } from '$app/environment';
3
+
4
+ // Set the stored value or a sane default.
5
+ export const HF_ACCESS_TOKEN = writable((browser && localStorage.HF_ACCESS_TOKEN) || '');
6
+
7
+ export const OPENAI_API_KEY = writable((browser && localStorage.OPENAI_API_KEY) || '');
8
+
9
+ if (browser) {
10
+ HF_ACCESS_TOKEN.subscribe((value) => (localStorage.content = value));
11
+ OPENAI_API_KEY.subscribe((value) => (localStorage.content = value));
12
+ }
src/routes/+layout.svelte ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ <script>
2
+ import ApiKeyModal from '$lib/components/ApiKeyModal.svelte';
3
+ import '../app.css';
4
+ </script>
5
+
6
+ <div class="p-4 max-w-xl mx-auto">
7
+ <ApiKeyModal />
8
+ <slot />
9
+ </div>
src/routes/+page.server.ts ADDED
File without changes
src/routes/+page.svelte ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ import LogoHuggingFaceBorderless from '$lib/components/LogoHuggingFaceBorderless.svelte';
3
+ import { generateCode } from '$lib/agents/generateCode';
4
+ import { tools } from '$lib/agents/tools';
5
+ import { evalBuilder } from '$lib/agents/evalBuilder';
6
+
7
+ let prompt = 'Draw a picture of a brown dog. Then caption the picture and read it out loud.';
8
+ let selectedTools: Array<string> = [];
9
+ let codePromise: Promise<string> | null = null;
10
+ let messages: Array<{ message: string; data: string | Blob | undefined }> = [];
11
+
12
+ let files: FileList | null = null;
13
+
14
+ let isLoading = false;
15
+ const onGenerate = async () => {
16
+ messages = [];
17
+ codePromise = generateCode(
18
+ prompt,
19
+ tools.filter((el) => el.name === 'message' || selectedTools.includes(el.name)),
20
+ files
21
+ );
22
+ };
23
+
24
+ const onRun = async (code: string) => {
25
+ messages = [];
26
+
27
+ const wrapperEval = await evalBuilder(
28
+ code,
29
+ tools.filter((el) => el.name === 'message' || selectedTools.includes(el.name)),
30
+ files,
31
+ (message, data) => {
32
+ messages = [...messages, { message, data }];
33
+ }
34
+ );
35
+
36
+ isLoading = true;
37
+ await wrapperEval();
38
+ isLoading = false;
39
+ };
40
+
41
+ const isBlob = (message: string | Blob): message is Blob => {
42
+ return message instanceof Blob;
43
+ };
44
+ </script>
45
+
46
+ <div class="flex flex-col space-y-4 max-w-xl">
47
+ <div class="flex flex-row justify-around">
48
+ <LogoHuggingFaceBorderless classNames="text-4xl" />
49
+ <h1 class="text-3xl font-semibold w-fit mx-auto">Agents.js</h1>
50
+ </div>
51
+ <div class="divider" />
52
+ <h3 class="text-lg w-fit mx-auto">Select your tools</h3>
53
+
54
+ <div class="join mx-auto">
55
+ {#each tools.filter((tool) => tool.name != 'message') as tool}
56
+ <label
57
+ class="form-switch join-item btn normal-case btn-sm"
58
+ class:btn-info={selectedTools.includes(tool.name)}
59
+ >
60
+ <input
61
+ class="hidden"
62
+ type="checkbox"
63
+ bind:group={selectedTools}
64
+ name="tools"
65
+ value={tool.name}
66
+ />
67
+ {tool.name}
68
+ </label>
69
+ {/each}
70
+ </div>
71
+ <div class="divider" />
72
+ <span class="label-text"> Input your request </span>
73
+
74
+ <textarea
75
+ class="textarea border-base-300 bg-base-300"
76
+ placeholder="Ask something here"
77
+ bind:value={prompt}
78
+ />
79
+
80
+ <div class="grid grid-cols-2 gap-5">
81
+ <div class="form-control">
82
+ <label class="label">
83
+ <span class="label-text">
84
+ {#if files && files.length > 0}
85
+ {files[0].type.split('/')[0]} detected
86
+ <button class="btn-sm btn btn-ghost" on:click={() => (files = null)}>clear </button>
87
+ {:else}
88
+ Upload a file (image or audio)
89
+ {/if}
90
+ </span>
91
+ </label>
92
+ <input
93
+ type="file"
94
+ bind:files
95
+ accept="audio/*, image/*"
96
+ class="mt-auto file-input file-input-bordered max-w-xs"
97
+ class:file-input-primary={files && files.length > 0}
98
+ />
99
+ </div>
100
+
101
+ <button
102
+ class="btn btn-primary mt-auto"
103
+ on:click={onGenerate}
104
+ on:keypress={onGenerate}
105
+ disabled={selectedTools.length === 0}>generate</button
106
+ >
107
+ </div>
108
+
109
+ {#if codePromise}
110
+ {#await codePromise}
111
+ <div class="loading loading-lg mx-auto" />
112
+ {:then code}
113
+ <div class="mockup-code text-sm">
114
+ <pre class="ml-4"><code>{code}</code></pre>
115
+ </div>
116
+
117
+ <button
118
+ class="btn btn-primary w-fit mx-auto"
119
+ on:click={() => {
120
+ onRun(code);
121
+ }}
122
+ >
123
+ run code
124
+ </button>
125
+ {/await}
126
+ {/if}
127
+ <div class="divider" />
128
+ {#if isLoading}
129
+ <div class="loading loading-lg mx-auto" />
130
+ {:else if messages.length > 0}
131
+ <h3 class="text-lg w-fit mx-auto">Results</h3>
132
+ {/if}
133
+ <div class="join join-vertical w-full">
134
+ {#each messages as message}
135
+ <div class="collapse collapse-arrow join-item border border-base-300">
136
+ <input type="radio" name="my-accordion-4" checked={true} />
137
+ <div class="collapse-title text-xl font-medium">
138
+ {message.message}
139
+ </div>
140
+ <div class="collapse-content">
141
+ {#if !!message.data && isBlob(message.data)}
142
+ {#if message.data.type.startsWith('image')}
143
+ <img class="mx-auto" alt="generated" src={URL.createObjectURL(message.data)} />
144
+ {:else if message.data.type.startsWith('audio')}
145
+ <audio controls src={URL.createObjectURL(message.data)} />
146
+ {:else}
147
+ <p class="text-mono text-light w-full">blob type unknown</p>
148
+ {/if}
149
+ {:else if !!message.data}
150
+ <p class="text-mono text-light w-full">{message.data}</p>
151
+ {/if}
152
+ </div>
153
+ </div>
154
+ {/each}
155
+ </div>
156
+ </div>
static/favicon.svg ADDED
svelte.config.js ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import adapter from '@sveltejs/adapter-auto';
2
+ import { vitePreprocess } from '@sveltejs/kit/vite';
3
+
4
+ /** @type {import('@sveltejs/kit').Config} */
5
+ const config = {
6
+ // Consult https://kit.svelte.dev/docs/integrations#preprocessors
7
+ // for more information about preprocessors
8
+ preprocess: vitePreprocess(),
9
+
10
+ kit: {
11
+ // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
12
+ // If your environment is not supported or you settled on a specific environment, switch out the adapter.
13
+ // See https://kit.svelte.dev/docs/adapters for more information about adapters.
14
+ adapter: adapter()
15
+ }
16
+ };
17
+
18
+ export default config;
tailwind.config.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /** @type {import('tailwindcss').Config} */
2
+ export default {
3
+ content: ['./src/**/*.{html,js,svelte,ts}'],
4
+ theme: {
5
+ extend: {},
6
+ },
7
+ plugins: [
8
+ require('daisyui')
9
+ ]
10
+ }
11
+
tsconfig.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "extends": "./.svelte-kit/tsconfig.json",
3
+ "compilerOptions": {
4
+ "allowJs": true,
5
+ "checkJs": true,
6
+ "esModuleInterop": true,
7
+ "forceConsistentCasingInFileNames": true,
8
+ "resolveJsonModule": true,
9
+ "skipLibCheck": true,
10
+ "sourceMap": true,
11
+ "strict": true
12
+ }
13
+ // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
14
+ //
15
+ // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
16
+ // from the referenced tsconfig.json - TypeScript does not merge them in
17
+ }
vite.config.ts ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { sveltekit } from '@sveltejs/kit/vite';
2
+ import { defineConfig } from 'vitest/config';
3
+
4
+ export default defineConfig({
5
+ plugins: [sveltekit()],
6
+ test: {
7
+ include: ['src/**/*.{test,spec}.{js,ts}']
8
+ },
9
+ server: {
10
+ fs: {
11
+ // Allow serving files from one level up to the project root
12
+ allow: ['..']
13
+ }
14
+ }
15
+ });