@teamkeel/testing-runtime 0.365.14 → 0.365.15-prerelease19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamkeel/testing-runtime",
3
- "version": "0.365.14",
3
+ "version": "0.365.15-prerelease19",
4
4
  "description": "Internal package used by the generated @teamkeel/testing package",
5
5
  "exports": "./src/index.mjs",
6
6
  "typings": "src/index.d.ts",
@@ -1,85 +1,10 @@
1
- import jwt from "jsonwebtoken";
1
+ import { Executor } from "./Executor.mjs";
2
2
 
3
- export class ActionExecutor {
3
+ export class ActionExecutor extends Executor {
4
4
  constructor(props) {
5
- this._identity = props.identity || null;
6
- this._authToken = props.authToken || null;
5
+ props.apiBaseUrl = process.env.KEEL_TESTING_ACTIONS_API_URL;
6
+ props.parseJsonResult = true;
7
7
 
8
- // Return a proxy which will return a bound version of the
9
- // _execute method for any unknown properties. This creates
10
- // the actions API we want but in a dynamic way without needing
11
- // codegen. We then generate the right type definitions for
12
- // this class in the @teamkeel/testing package.
13
- return new Proxy(this, {
14
- get(target, prop) {
15
- const v = Reflect.get(...arguments);
16
- if (v !== undefined) {
17
- return v;
18
- }
19
- return target._execute.bind(target, prop);
20
- },
21
- });
22
- }
23
- withIdentity(i) {
24
- return new ActionExecutor({ identity: i });
25
- }
26
- withAuthToken(t) {
27
- return new ActionExecutor({ authToken: t });
28
- }
29
- _execute(method, params) {
30
- const headers = { "Content-Type": "application/json" };
31
-
32
- // An Identity instance is provided make a JWT
33
- if (this._identity !== null) {
34
- headers["Authorization"] =
35
- "Bearer " +
36
- jwt.sign(
37
- {},
38
- // Not using a signing algorithm, therefore the private key is undefined
39
- undefined,
40
- {
41
- algorithm: "none",
42
- expiresIn: 60 * 60 * 24,
43
- subject: this._identity.id,
44
- issuer: "keel",
45
- }
46
- );
47
- }
48
-
49
- // If an auth token is provided that can be sent as-is
50
- if (this._authToken !== null) {
51
- headers["Authorization"] = "Bearer " + this._authToken;
52
- }
53
-
54
- // Use the HTTP JSON API as that returns more friendly errors than
55
- // the JSON-RPC API.
56
- return fetch(process.env.KEEL_TESTING_ACTIONS_API_URL + "/" + method, {
57
- method: "POST",
58
- body: JSON.stringify(params),
59
- headers,
60
- }).then((r) => {
61
- if (r.status !== 200) {
62
- // For non-200 first read the response as text
63
- return r.text().then((t) => {
64
- let d;
65
- try {
66
- d = JSON.parse(t);
67
- } catch (e) {
68
- // If JSON parsing fails then throw an error with the
69
- // response text as the message
70
- throw new Error(t);
71
- }
72
- // Otherwise throw the parsed JSON error response
73
- // We override toString as otherwise you get expect errors like:
74
- // `expected to resolve but rejected with "[object Object]"`
75
- Object.defineProperty(d, "toString", {
76
- value: () => t,
77
- enumerable: false,
78
- });
79
- throw d;
80
- });
81
- }
82
- return r.json();
83
- });
8
+ super(props);
84
9
  }
85
10
  }
@@ -0,0 +1,111 @@
1
+ import jwt from "jsonwebtoken";
2
+
3
+ export class Executor {
4
+ constructor(props) {
5
+ this._identity = props.identity || null;
6
+ this._authToken = props.authToken || null;
7
+ this._apiBaseUrl = props.apiBaseUrl;
8
+ this._parseJsonResult = props.parseJsonResult;
9
+
10
+ // Return a proxy which will return a bound version of the
11
+ // _execute method for any unknown properties. This creates
12
+ // the actions API we want but in a dynamic way without needing
13
+ // codegen. We then generate the right type definitions for
14
+ // this class in the @teamkeel/testing package.
15
+ return new Proxy(this, {
16
+ get(target, prop) {
17
+ const v = Reflect.get(...arguments);
18
+ if (v !== undefined) {
19
+ return v;
20
+ }
21
+ return target._execute.bind(target, prop);
22
+ },
23
+ });
24
+ }
25
+ withIdentity(i) {
26
+ return new Executor({
27
+ identity: i,
28
+ apiBaseUrl: this._apiBaseUrl,
29
+ parseJsonResult: this._parseJsonResult,
30
+ });
31
+ }
32
+ withAuthToken(t) {
33
+ return new Executor({
34
+ authToken: t,
35
+ apiBaseUrl: this._apiBaseUrl,
36
+ parseJsonResult: this._parseJsonResult,
37
+ });
38
+ }
39
+ _execute(method, params) {
40
+ const headers = { "Content-Type": "application/json" };
41
+
42
+ // An Identity instance is provided make a JWT
43
+ if (this._identity !== null) {
44
+ const base64pk = process.env.KEEL_DEFAULT_PK;
45
+ let privateKey = undefined;
46
+
47
+ if (base64pk) {
48
+ privateKey = Buffer.from(base64pk, "base64").toString("utf8");
49
+ }
50
+
51
+ headers["Authorization"] =
52
+ "Bearer " +
53
+ jwt.sign({}, privateKey, {
54
+ algorithm: privateKey ? "RS256" : "none",
55
+ expiresIn: 60 * 60 * 24,
56
+ subject: this._identity.id,
57
+ issuer: "keel",
58
+ });
59
+ }
60
+
61
+ // If an auth token is provided that can be sent as-is
62
+ if (this._authToken !== null) {
63
+ headers["Authorization"] = "Bearer " + this._authToken;
64
+ }
65
+
66
+ if (params?.scheduled) {
67
+ headers["X-Trigger-Type"] = "scheduled";
68
+ } else {
69
+ headers["X-Trigger-Type"] = "manual";
70
+ }
71
+
72
+ // Use the HTTP JSON API as that returns more friendly errors than
73
+ // the JSON-RPC API.
74
+ return fetch(this._apiBaseUrl + "/" + method, {
75
+ method: "POST",
76
+ body: JSON.stringify(params),
77
+ headers,
78
+ }).then((r) => {
79
+ if (r.status !== 200) {
80
+ // For non-200 first read the response as text
81
+ return r.text().then((t) => {
82
+ let d;
83
+ try {
84
+ d = JSON.parse(t);
85
+ } catch (e) {
86
+ if ("DEBUG" in process.env) {
87
+ console.log(e);
88
+ }
89
+ // If JSON parsing fails then throw an error with the
90
+ // response text as the message
91
+ throw new Error(t);
92
+ }
93
+ // Otherwise throw the parsed JSON error response
94
+ // We override toString as otherwise you get expect errors like:
95
+ // `expected to resolve but rejected with "[object Object]"`
96
+ Object.defineProperty(d, "toString", {
97
+ value: () => t,
98
+ enumerable: false,
99
+ });
100
+ throw d;
101
+ });
102
+ }
103
+
104
+ if (this._parseJsonResult) {
105
+ return r.json();
106
+ } else {
107
+ return true;
108
+ }
109
+ });
110
+ }
111
+ }
@@ -1,94 +1,10 @@
1
- import jwt from "jsonwebtoken";
1
+ import { Executor } from "./Executor.mjs";
2
2
 
3
- export class JobExecutor {
3
+ export class JobExecutor extends Executor {
4
4
  constructor(props) {
5
- this._identity = props.identity || null;
6
- this._authToken = props.authToken || null;
5
+ props.apiBaseUrl = process.env.KEEL_TESTING_JOBS_URL;
6
+ props.parseJsonResult = false;
7
7
 
8
- // Return a proxy which will return a bound version of the
9
- // _execute method for any unknown properties. This creates
10
- // the jobs API we want but in a dynamic way without needing
11
- // codegen. We then generate the right type definitions for
12
- // this class in the @teamkeel/testing package.
13
- return new Proxy(this, {
14
- get(target, prop) {
15
- const v = Reflect.get(...arguments);
16
- if (v !== undefined) {
17
- return v;
18
- }
19
- return target._execute.bind(target, prop);
20
- },
21
- });
22
- }
23
- withIdentity(i) {
24
- return new JobExecutor({ identity: i });
25
- }
26
- withAuthToken(t) {
27
- return new JobExecutor({ authToken: t });
28
- }
29
- _execute(method, params) {
30
- const headers = { "Content-Type": "application/json" };
31
-
32
- // An Identity instance is provided make a JWT
33
- if (this._identity !== null) {
34
- headers["Authorization"] =
35
- "Bearer " +
36
- jwt.sign(
37
- {},
38
- // Not using a signing algorithm, therefore the private key is undefined
39
- undefined,
40
- {
41
- algorithm: "none",
42
- expiresIn: 60 * 60 * 24,
43
- subject: this._identity.id,
44
- issuer: "keel",
45
- }
46
- );
47
- }
48
-
49
- // If an auth token is provided that can be sent as-is
50
- if (this._authToken !== null) {
51
- headers["Authorization"] = "Bearer " + this._authToken;
52
- }
53
-
54
- if (params?.scheduled) {
55
- headers["X-Trigger-Type"] = "scheduled";
56
- } else {
57
- headers["X-Trigger-Type"] = "manual";
58
- }
59
-
60
- return fetch(process.env.KEEL_TESTING_JOBS_URL + "/" + method, {
61
- method: "POST",
62
- body: JSON.stringify(params),
63
- headers,
64
- }).then((r) => {
65
- if (r.status !== 200) {
66
- // For non-200 first read the response as text
67
- return r.text().then((t) => {
68
- let d;
69
- try {
70
- d = JSON.parse(t);
71
- } catch (e) {
72
- if ("DEBUG" in process.env) {
73
- console.log(e);
74
- }
75
- // If JSON parsing fails then throw an error with the
76
- // response text as the message
77
- throw new Error(t);
78
- }
79
- // Otherwise throw the parsed JSON error response
80
- // We override toString as otherwise you get expect errors like:
81
- // `expected to resolve but rejected with "[object Object]"`
82
- Object.defineProperty(d, "toString", {
83
- value: () => t,
84
- enumerable: false,
85
- });
86
-
87
- throw d;
88
- });
89
- }
90
-
91
- return true;
92
- });
8
+ super(props);
93
9
  }
94
10
  }
@@ -0,0 +1,10 @@
1
+ import { Executor } from "./Executor.mjs";
2
+
3
+ export class SubscriberExecutor extends Executor {
4
+ constructor(props) {
5
+ props.apiBaseUrl = process.env.KEEL_TESTING_SUBSCRIBERS_URL;
6
+ props.parseJsonResult = false;
7
+
8
+ super(props);
9
+ }
10
+ }
package/src/index.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  export { sql } from "kysely";
2
2
  export { ActionExecutor } from "./ActionExecutor.mjs";
3
3
  export { JobExecutor } from "./JobExecutor.mjs";
4
+ export { SubscriberExecutor } from "./SubscriberExecutor.mjs";
4
5
  export { toHaveError } from "./toHaveError.mjs";
5
6
  export { toHaveAuthorizationError } from "./toHaveAuthorizationError.mjs";
@@ -9,9 +9,12 @@ export async function toHaveAuthorizationError(received) {
9
9
  };
10
10
  } catch (err) {
11
11
  return {
12
- pass: err.code === "ERR_PERMISSION_DENIED",
12
+ pass:
13
+ err.code === "ERR_PERMISSION_DENIED" || err.code === "ERR_UNAUTHORIZED",
13
14
  message: () =>
14
- `expected there to be ${isNot ? "no " : ""}ERR_PERMISSION_DENIED error`,
15
+ `expected there to be ${
16
+ isNot ? "no " : ""
17
+ }ERR_PERMISSION_DENIED or ERR_UNAUTHORIZED error`,
15
18
  actual: err,
16
19
  expected: {
17
20
  ...err,
package/pnpm-lock.yaml DELETED
@@ -1,709 +0,0 @@
1
- lockfileVersion: '6.0'
2
-
3
- dependencies:
4
- jsonwebtoken:
5
- specifier: ^9.0.0
6
- version: 9.0.0
7
- kysely:
8
- specifier: ^0.23.4
9
- version: 0.23.4
10
- lodash.ismatch:
11
- specifier: ^4.4.0
12
- version: 4.4.0
13
- vitest:
14
- specifier: ^0.27.2
15
- version: 0.27.2
16
-
17
- devDependencies:
18
- '@types/lodash.ismatch':
19
- specifier: ^4.4.7
20
- version: 4.4.7
21
- prettier:
22
- specifier: 2.7.1
23
- version: 2.7.1
24
-
25
- packages:
26
-
27
- /@esbuild/android-arm64@0.16.17:
28
- resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==}
29
- engines: {node: '>=12'}
30
- cpu: [arm64]
31
- os: [android]
32
- requiresBuild: true
33
- dev: false
34
- optional: true
35
-
36
- /@esbuild/android-arm@0.16.17:
37
- resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==}
38
- engines: {node: '>=12'}
39
- cpu: [arm]
40
- os: [android]
41
- requiresBuild: true
42
- dev: false
43
- optional: true
44
-
45
- /@esbuild/android-x64@0.16.17:
46
- resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==}
47
- engines: {node: '>=12'}
48
- cpu: [x64]
49
- os: [android]
50
- requiresBuild: true
51
- dev: false
52
- optional: true
53
-
54
- /@esbuild/darwin-arm64@0.16.17:
55
- resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==}
56
- engines: {node: '>=12'}
57
- cpu: [arm64]
58
- os: [darwin]
59
- requiresBuild: true
60
- dev: false
61
- optional: true
62
-
63
- /@esbuild/darwin-x64@0.16.17:
64
- resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==}
65
- engines: {node: '>=12'}
66
- cpu: [x64]
67
- os: [darwin]
68
- requiresBuild: true
69
- dev: false
70
- optional: true
71
-
72
- /@esbuild/freebsd-arm64@0.16.17:
73
- resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==}
74
- engines: {node: '>=12'}
75
- cpu: [arm64]
76
- os: [freebsd]
77
- requiresBuild: true
78
- dev: false
79
- optional: true
80
-
81
- /@esbuild/freebsd-x64@0.16.17:
82
- resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==}
83
- engines: {node: '>=12'}
84
- cpu: [x64]
85
- os: [freebsd]
86
- requiresBuild: true
87
- dev: false
88
- optional: true
89
-
90
- /@esbuild/linux-arm64@0.16.17:
91
- resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==}
92
- engines: {node: '>=12'}
93
- cpu: [arm64]
94
- os: [linux]
95
- requiresBuild: true
96
- dev: false
97
- optional: true
98
-
99
- /@esbuild/linux-arm@0.16.17:
100
- resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==}
101
- engines: {node: '>=12'}
102
- cpu: [arm]
103
- os: [linux]
104
- requiresBuild: true
105
- dev: false
106
- optional: true
107
-
108
- /@esbuild/linux-ia32@0.16.17:
109
- resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==}
110
- engines: {node: '>=12'}
111
- cpu: [ia32]
112
- os: [linux]
113
- requiresBuild: true
114
- dev: false
115
- optional: true
116
-
117
- /@esbuild/linux-loong64@0.16.17:
118
- resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==}
119
- engines: {node: '>=12'}
120
- cpu: [loong64]
121
- os: [linux]
122
- requiresBuild: true
123
- dev: false
124
- optional: true
125
-
126
- /@esbuild/linux-mips64el@0.16.17:
127
- resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==}
128
- engines: {node: '>=12'}
129
- cpu: [mips64el]
130
- os: [linux]
131
- requiresBuild: true
132
- dev: false
133
- optional: true
134
-
135
- /@esbuild/linux-ppc64@0.16.17:
136
- resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==}
137
- engines: {node: '>=12'}
138
- cpu: [ppc64]
139
- os: [linux]
140
- requiresBuild: true
141
- dev: false
142
- optional: true
143
-
144
- /@esbuild/linux-riscv64@0.16.17:
145
- resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==}
146
- engines: {node: '>=12'}
147
- cpu: [riscv64]
148
- os: [linux]
149
- requiresBuild: true
150
- dev: false
151
- optional: true
152
-
153
- /@esbuild/linux-s390x@0.16.17:
154
- resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==}
155
- engines: {node: '>=12'}
156
- cpu: [s390x]
157
- os: [linux]
158
- requiresBuild: true
159
- dev: false
160
- optional: true
161
-
162
- /@esbuild/linux-x64@0.16.17:
163
- resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==}
164
- engines: {node: '>=12'}
165
- cpu: [x64]
166
- os: [linux]
167
- requiresBuild: true
168
- dev: false
169
- optional: true
170
-
171
- /@esbuild/netbsd-x64@0.16.17:
172
- resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==}
173
- engines: {node: '>=12'}
174
- cpu: [x64]
175
- os: [netbsd]
176
- requiresBuild: true
177
- dev: false
178
- optional: true
179
-
180
- /@esbuild/openbsd-x64@0.16.17:
181
- resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==}
182
- engines: {node: '>=12'}
183
- cpu: [x64]
184
- os: [openbsd]
185
- requiresBuild: true
186
- dev: false
187
- optional: true
188
-
189
- /@esbuild/sunos-x64@0.16.17:
190
- resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==}
191
- engines: {node: '>=12'}
192
- cpu: [x64]
193
- os: [sunos]
194
- requiresBuild: true
195
- dev: false
196
- optional: true
197
-
198
- /@esbuild/win32-arm64@0.16.17:
199
- resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==}
200
- engines: {node: '>=12'}
201
- cpu: [arm64]
202
- os: [win32]
203
- requiresBuild: true
204
- dev: false
205
- optional: true
206
-
207
- /@esbuild/win32-ia32@0.16.17:
208
- resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==}
209
- engines: {node: '>=12'}
210
- cpu: [ia32]
211
- os: [win32]
212
- requiresBuild: true
213
- dev: false
214
- optional: true
215
-
216
- /@esbuild/win32-x64@0.16.17:
217
- resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==}
218
- engines: {node: '>=12'}
219
- cpu: [x64]
220
- os: [win32]
221
- requiresBuild: true
222
- dev: false
223
- optional: true
224
-
225
- /@types/chai-subset@1.3.3:
226
- resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==}
227
- dependencies:
228
- '@types/chai': 4.3.4
229
- dev: false
230
-
231
- /@types/chai@4.3.4:
232
- resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==}
233
- dev: false
234
-
235
- /@types/lodash.ismatch@4.4.7:
236
- resolution: {integrity: sha512-ybydj07Fw8332Q4+LQSiSkxQCPkAZTt6YQHXyAISfa/HfFq8yWhhDF8lVr8s09eyG6W++iPRCkXgT5tXMA3e9g==}
237
- dependencies:
238
- '@types/lodash': 4.14.191
239
- dev: true
240
-
241
- /@types/lodash@4.14.191:
242
- resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==}
243
- dev: true
244
-
245
- /@types/node@18.11.18:
246
- resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
247
- dev: false
248
-
249
- /acorn-walk@8.2.0:
250
- resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
251
- engines: {node: '>=0.4.0'}
252
- dev: false
253
-
254
- /acorn@8.8.1:
255
- resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
256
- engines: {node: '>=0.4.0'}
257
- hasBin: true
258
- dev: false
259
-
260
- /assertion-error@1.1.0:
261
- resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
262
- dev: false
263
-
264
- /buffer-equal-constant-time@1.0.1:
265
- resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
266
- dev: false
267
-
268
- /buffer-from@1.1.2:
269
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
270
- dev: false
271
-
272
- /cac@6.7.14:
273
- resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
274
- engines: {node: '>=8'}
275
- dev: false
276
-
277
- /chai@4.3.7:
278
- resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==}
279
- engines: {node: '>=4'}
280
- dependencies:
281
- assertion-error: 1.1.0
282
- check-error: 1.0.2
283
- deep-eql: 4.1.3
284
- get-func-name: 2.0.0
285
- loupe: 2.3.6
286
- pathval: 1.1.1
287
- type-detect: 4.0.8
288
- dev: false
289
-
290
- /check-error@1.0.2:
291
- resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
292
- dev: false
293
-
294
- /debug@4.3.4:
295
- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
296
- engines: {node: '>=6.0'}
297
- peerDependencies:
298
- supports-color: '*'
299
- peerDependenciesMeta:
300
- supports-color:
301
- optional: true
302
- dependencies:
303
- ms: 2.1.2
304
- dev: false
305
-
306
- /deep-eql@4.1.3:
307
- resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==}
308
- engines: {node: '>=6'}
309
- dependencies:
310
- type-detect: 4.0.8
311
- dev: false
312
-
313
- /ecdsa-sig-formatter@1.0.11:
314
- resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
315
- dependencies:
316
- safe-buffer: 5.2.1
317
- dev: false
318
-
319
- /esbuild@0.16.17:
320
- resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==}
321
- engines: {node: '>=12'}
322
- hasBin: true
323
- requiresBuild: true
324
- optionalDependencies:
325
- '@esbuild/android-arm': 0.16.17
326
- '@esbuild/android-arm64': 0.16.17
327
- '@esbuild/android-x64': 0.16.17
328
- '@esbuild/darwin-arm64': 0.16.17
329
- '@esbuild/darwin-x64': 0.16.17
330
- '@esbuild/freebsd-arm64': 0.16.17
331
- '@esbuild/freebsd-x64': 0.16.17
332
- '@esbuild/linux-arm': 0.16.17
333
- '@esbuild/linux-arm64': 0.16.17
334
- '@esbuild/linux-ia32': 0.16.17
335
- '@esbuild/linux-loong64': 0.16.17
336
- '@esbuild/linux-mips64el': 0.16.17
337
- '@esbuild/linux-ppc64': 0.16.17
338
- '@esbuild/linux-riscv64': 0.16.17
339
- '@esbuild/linux-s390x': 0.16.17
340
- '@esbuild/linux-x64': 0.16.17
341
- '@esbuild/netbsd-x64': 0.16.17
342
- '@esbuild/openbsd-x64': 0.16.17
343
- '@esbuild/sunos-x64': 0.16.17
344
- '@esbuild/win32-arm64': 0.16.17
345
- '@esbuild/win32-ia32': 0.16.17
346
- '@esbuild/win32-x64': 0.16.17
347
- dev: false
348
-
349
- /fsevents@2.3.2:
350
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
351
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
352
- os: [darwin]
353
- requiresBuild: true
354
- dev: false
355
- optional: true
356
-
357
- /function-bind@1.1.1:
358
- resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
359
- dev: false
360
-
361
- /get-func-name@2.0.0:
362
- resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
363
- dev: false
364
-
365
- /has@1.0.3:
366
- resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
367
- engines: {node: '>= 0.4.0'}
368
- dependencies:
369
- function-bind: 1.1.1
370
- dev: false
371
-
372
- /is-core-module@2.11.0:
373
- resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
374
- dependencies:
375
- has: 1.0.3
376
- dev: false
377
-
378
- /jsonc-parser@3.2.0:
379
- resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
380
- dev: false
381
-
382
- /jsonwebtoken@9.0.0:
383
- resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==}
384
- engines: {node: '>=12', npm: '>=6'}
385
- dependencies:
386
- jws: 3.2.2
387
- lodash: 4.17.21
388
- ms: 2.1.3
389
- semver: 7.3.8
390
- dev: false
391
-
392
- /jwa@1.4.1:
393
- resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
394
- dependencies:
395
- buffer-equal-constant-time: 1.0.1
396
- ecdsa-sig-formatter: 1.0.11
397
- safe-buffer: 5.2.1
398
- dev: false
399
-
400
- /jws@3.2.2:
401
- resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
402
- dependencies:
403
- jwa: 1.4.1
404
- safe-buffer: 5.2.1
405
- dev: false
406
-
407
- /kysely@0.23.4:
408
- resolution: {integrity: sha512-3icLnj1fahUtZsP9zzOvF4DcdhekGsLX4ZaoBaIz0ZeHegyRDdbwpJD7zezAJ+KwQZNDeKchel6MikFNLsSZIA==}
409
- engines: {node: '>=14.0.0'}
410
- dev: false
411
-
412
- /local-pkg@0.4.3:
413
- resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
414
- engines: {node: '>=14'}
415
- dev: false
416
-
417
- /lodash.ismatch@4.4.0:
418
- resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
419
- dev: false
420
-
421
- /lodash@4.17.21:
422
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
423
- dev: false
424
-
425
- /loupe@2.3.6:
426
- resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
427
- dependencies:
428
- get-func-name: 2.0.0
429
- dev: false
430
-
431
- /lru-cache@6.0.0:
432
- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
433
- engines: {node: '>=10'}
434
- dependencies:
435
- yallist: 4.0.0
436
- dev: false
437
-
438
- /mlly@1.1.0:
439
- resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==}
440
- dependencies:
441
- acorn: 8.8.1
442
- pathe: 1.1.0
443
- pkg-types: 1.0.1
444
- ufo: 1.0.1
445
- dev: false
446
-
447
- /ms@2.1.2:
448
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
449
- dev: false
450
-
451
- /ms@2.1.3:
452
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
453
- dev: false
454
-
455
- /nanoid@3.3.4:
456
- resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
457
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
458
- hasBin: true
459
- dev: false
460
-
461
- /path-parse@1.0.7:
462
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
463
- dev: false
464
-
465
- /pathe@0.2.0:
466
- resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
467
- dev: false
468
-
469
- /pathe@1.1.0:
470
- resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==}
471
- dev: false
472
-
473
- /pathval@1.1.1:
474
- resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
475
- dev: false
476
-
477
- /picocolors@1.0.0:
478
- resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
479
- dev: false
480
-
481
- /pkg-types@1.0.1:
482
- resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==}
483
- dependencies:
484
- jsonc-parser: 3.2.0
485
- mlly: 1.1.0
486
- pathe: 1.1.0
487
- dev: false
488
-
489
- /postcss@8.4.21:
490
- resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
491
- engines: {node: ^10 || ^12 || >=14}
492
- dependencies:
493
- nanoid: 3.3.4
494
- picocolors: 1.0.0
495
- source-map-js: 1.0.2
496
- dev: false
497
-
498
- /prettier@2.7.1:
499
- resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
500
- engines: {node: '>=10.13.0'}
501
- hasBin: true
502
- dev: true
503
-
504
- /resolve@1.22.1:
505
- resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
506
- hasBin: true
507
- dependencies:
508
- is-core-module: 2.11.0
509
- path-parse: 1.0.7
510
- supports-preserve-symlinks-flag: 1.0.0
511
- dev: false
512
-
513
- /rollup@3.10.1:
514
- resolution: {integrity: sha512-3Er+yel3bZbZX1g2kjVM+FW+RUWDxbG87fcqFM5/9HbPCTpbVp6JOLn7jlxnNlbu7s/N/uDA4EV/91E2gWnxzw==}
515
- engines: {node: '>=14.18.0', npm: '>=8.0.0'}
516
- hasBin: true
517
- optionalDependencies:
518
- fsevents: 2.3.2
519
- dev: false
520
-
521
- /safe-buffer@5.2.1:
522
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
523
- dev: false
524
-
525
- /semver@7.3.8:
526
- resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
527
- engines: {node: '>=10'}
528
- hasBin: true
529
- dependencies:
530
- lru-cache: 6.0.0
531
- dev: false
532
-
533
- /siginfo@2.0.0:
534
- resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
535
- dev: false
536
-
537
- /source-map-js@1.0.2:
538
- resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
539
- engines: {node: '>=0.10.0'}
540
- dev: false
541
-
542
- /source-map-support@0.5.21:
543
- resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
544
- dependencies:
545
- buffer-from: 1.1.2
546
- source-map: 0.6.1
547
- dev: false
548
-
549
- /source-map@0.6.1:
550
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
551
- engines: {node: '>=0.10.0'}
552
- dev: false
553
-
554
- /stackback@0.0.2:
555
- resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
556
- dev: false
557
-
558
- /strip-literal@1.0.0:
559
- resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==}
560
- dependencies:
561
- acorn: 8.8.1
562
- dev: false
563
-
564
- /supports-preserve-symlinks-flag@1.0.0:
565
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
566
- engines: {node: '>= 0.4'}
567
- dev: false
568
-
569
- /tinybench@2.3.1:
570
- resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==}
571
- dev: false
572
-
573
- /tinypool@0.3.0:
574
- resolution: {integrity: sha512-NX5KeqHOBZU6Bc0xj9Vr5Szbb1j8tUHIeD18s41aDJaPeC5QTdEhK0SpdpUrZlj2nv5cctNcSjaKNanXlfcVEQ==}
575
- engines: {node: '>=14.0.0'}
576
- dev: false
577
-
578
- /tinyspy@1.0.2:
579
- resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==}
580
- engines: {node: '>=14.0.0'}
581
- dev: false
582
-
583
- /type-detect@4.0.8:
584
- resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
585
- engines: {node: '>=4'}
586
- dev: false
587
-
588
- /ufo@1.0.1:
589
- resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==}
590
- dev: false
591
-
592
- /vite-node@0.27.2(@types/node@18.11.18):
593
- resolution: {integrity: sha512-IDwuVhslF10qCnWOGJui7/2KksAOBHi+UbVo6Pqt4f5lgn+kS2sVvYDsETRG5PSuslisGB5CFGvb9I6FQgymBQ==}
594
- engines: {node: '>=v14.16.0'}
595
- hasBin: true
596
- dependencies:
597
- cac: 6.7.14
598
- debug: 4.3.4
599
- mlly: 1.1.0
600
- pathe: 0.2.0
601
- picocolors: 1.0.0
602
- source-map: 0.6.1
603
- source-map-support: 0.5.21
604
- vite: 4.0.4(@types/node@18.11.18)
605
- transitivePeerDependencies:
606
- - '@types/node'
607
- - less
608
- - sass
609
- - stylus
610
- - sugarss
611
- - supports-color
612
- - terser
613
- dev: false
614
-
615
- /vite@4.0.4(@types/node@18.11.18):
616
- resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
617
- engines: {node: ^14.18.0 || >=16.0.0}
618
- hasBin: true
619
- peerDependencies:
620
- '@types/node': '>= 14'
621
- less: '*'
622
- sass: '*'
623
- stylus: '*'
624
- sugarss: '*'
625
- terser: ^5.4.0
626
- peerDependenciesMeta:
627
- '@types/node':
628
- optional: true
629
- less:
630
- optional: true
631
- sass:
632
- optional: true
633
- stylus:
634
- optional: true
635
- sugarss:
636
- optional: true
637
- terser:
638
- optional: true
639
- dependencies:
640
- '@types/node': 18.11.18
641
- esbuild: 0.16.17
642
- postcss: 8.4.21
643
- resolve: 1.22.1
644
- rollup: 3.10.1
645
- optionalDependencies:
646
- fsevents: 2.3.2
647
- dev: false
648
-
649
- /vitest@0.27.2:
650
- resolution: {integrity: sha512-y7tdsL2uaQy+KF18AlmNHZe29ukyFytlxrpSTwwmgLE2XHR/aPucJP9FLjWoqjgqFlXzRAjHlFJLU+HDyI/OsA==}
651
- engines: {node: '>=v14.16.0'}
652
- hasBin: true
653
- peerDependencies:
654
- '@edge-runtime/vm': '*'
655
- '@vitest/browser': '*'
656
- '@vitest/ui': '*'
657
- happy-dom: '*'
658
- jsdom: '*'
659
- peerDependenciesMeta:
660
- '@edge-runtime/vm':
661
- optional: true
662
- '@vitest/browser':
663
- optional: true
664
- '@vitest/ui':
665
- optional: true
666
- happy-dom:
667
- optional: true
668
- jsdom:
669
- optional: true
670
- dependencies:
671
- '@types/chai': 4.3.4
672
- '@types/chai-subset': 1.3.3
673
- '@types/node': 18.11.18
674
- acorn: 8.8.1
675
- acorn-walk: 8.2.0
676
- cac: 6.7.14
677
- chai: 4.3.7
678
- debug: 4.3.4
679
- local-pkg: 0.4.3
680
- picocolors: 1.0.0
681
- source-map: 0.6.1
682
- strip-literal: 1.0.0
683
- tinybench: 2.3.1
684
- tinypool: 0.3.0
685
- tinyspy: 1.0.2
686
- vite: 4.0.4(@types/node@18.11.18)
687
- vite-node: 0.27.2(@types/node@18.11.18)
688
- why-is-node-running: 2.2.2
689
- transitivePeerDependencies:
690
- - less
691
- - sass
692
- - stylus
693
- - sugarss
694
- - supports-color
695
- - terser
696
- dev: false
697
-
698
- /why-is-node-running@2.2.2:
699
- resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==}
700
- engines: {node: '>=8'}
701
- hasBin: true
702
- dependencies:
703
- siginfo: 2.0.0
704
- stackback: 0.0.2
705
- dev: false
706
-
707
- /yallist@4.0.0:
708
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
709
- dev: false