@teamkeel/testing-runtime 0.237.0

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