api: pull ava typescript support

Pedro Lucas Porcellis porcellis@eletrotupi.com 2 months ago 66973ed84c35f28ee34abb7b8e81d374dd574e52
Parents: 1218f83
3 file(s) changed
  • api/ava.config.mjs +27 -0
  • api/package-lock.json +676 -0
  • api/package.json +7 -1
api/ava.config.mjs
@@ -0,0 +1,27 @@
1 + export default {
2 + "typescript": {
3 + "extensions": [
4 + "ts",
5 + "tsx"
6 + ],
7 + "rewritePaths": {
8 + "src/": "dist/"
9 + },
10 + compile: false
11 + },
12 + // extensions: {
13 + // ts: 'module'
14 + // },
15 + // nodeArguments: [
16 + // '--import=tsx'
17 + // ],
18 + files: [
19 + 'tests/**/*.test.ts'
20 + ],
21 + environmentVariables: {
22 + NODE_ENV: 'test'
23 + },
24 + timeout: '30s',
25 + concurrency: 1, // Run tests serially to avoid database conflicts
26 + verbose: true
27 + };
api/package-lock.json
@@ -24,6 +24,7 @@ "morgan": "^1.10.1",
24 24 "pg": "^8.20.0"
25 25 },
26 26 "devDependencies": {
27 + "@ava/typescript": "^6.0.0",
27 28 "@types/better-sqlite3": "^7.6.13",
28 29 "@types/express": "^5.0.6",
29 30 "@types/morgan": "^1.9.10",
@@ -34,7 +35,22 @@ "supertest": "^7.1.4",
34 35 "ts-node": "^10.9.2",
35 36 "tsc-alias": "^1.8.16",
36 37 "tsconfig-paths": "^4.2.0",
38 + "tsx": "^4.21.0",
37 39 "typescript": "^6.0.2"
40 + }
41 + },
42 + "node_modules/@ava/typescript": {
43 + "version": "6.0.0",
44 + "resolved": "https://registry.npmjs.org/@ava/typescript/-/typescript-6.0.0.tgz",
45 + "integrity": "sha512-+8oDYc4J5cCaWZh1VUbyc+cegGplJO9FqHpqR4LVAVx8fRLVRaYlC4yyA6cqHJ1vWP23Ff/ECS5U68Zz6OLZlg==",
46 + "dev": true,
47 + "license": "MIT",
48 + "dependencies": {
49 + "escape-string-regexp": "^5.0.0",
50 + "execa": "^9.6.0"
51 + },
52 + "engines": {
53 + "node": "^20.8 || ^22 || >=24"
38 54 }
39 55 },
40 56 "node_modules/@chevrotain/cst-dts-gen": {
@@ -117,6 +133,448 @@ "peerDependencies": {
117 133 "@electric-sql/pglite": "0.3.15"
118 134 }
119 135 },
136 + "node_modules/@esbuild/aix-ppc64": {
137 + "version": "0.27.7",
138 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
139 + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
140 + "cpu": [
141 + "ppc64"
142 + ],
143 + "dev": true,
144 + "license": "MIT",
145 + "optional": true,
146 + "os": [
147 + "aix"
148 + ],
149 + "engines": {
150 + "node": ">=18"
151 + }
152 + },
153 + "node_modules/@esbuild/android-arm": {
154 + "version": "0.27.7",
155 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
156 + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
157 + "cpu": [
158 + "arm"
159 + ],
160 + "dev": true,
161 + "license": "MIT",
162 + "optional": true,
163 + "os": [
164 + "android"
165 + ],
166 + "engines": {
167 + "node": ">=18"
168 + }
169 + },
170 + "node_modules/@esbuild/android-arm64": {
171 + "version": "0.27.7",
172 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
173 + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
174 + "cpu": [
175 + "arm64"
176 + ],
177 + "dev": true,
178 + "license": "MIT",
179 + "optional": true,
180 + "os": [
181 + "android"
182 + ],
183 + "engines": {
184 + "node": ">=18"
185 + }
186 + },
187 + "node_modules/@esbuild/android-x64": {
188 + "version": "0.27.7",
189 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
190 + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
191 + "cpu": [
192 + "x64"
193 + ],
194 + "dev": true,
195 + "license": "MIT",
196 + "optional": true,
197 + "os": [
198 + "android"
199 + ],
200 + "engines": {
201 + "node": ">=18"
202 + }
203 + },
204 + "node_modules/@esbuild/darwin-arm64": {
205 + "version": "0.27.7",
206 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
207 + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
208 + "cpu": [
209 + "arm64"
210 + ],
211 + "dev": true,
212 + "license": "MIT",
213 + "optional": true,
214 + "os": [
215 + "darwin"
216 + ],
217 + "engines": {
218 + "node": ">=18"
219 + }
220 + },
221 + "node_modules/@esbuild/darwin-x64": {
222 + "version": "0.27.7",
223 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
224 + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
225 + "cpu": [
226 + "x64"
227 + ],
228 + "dev": true,
229 + "license": "MIT",
230 + "optional": true,
231 + "os": [
232 + "darwin"
233 + ],
234 + "engines": {
235 + "node": ">=18"
236 + }
237 + },
238 + "node_modules/@esbuild/freebsd-arm64": {
239 + "version": "0.27.7",
240 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
241 + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
242 + "cpu": [
243 + "arm64"
244 + ],
245 + "dev": true,
246 + "license": "MIT",
247 + "optional": true,
248 + "os": [
249 + "freebsd"
250 + ],
251 + "engines": {
252 + "node": ">=18"
253 + }
254 + },
255 + "node_modules/@esbuild/freebsd-x64": {
256 + "version": "0.27.7",
257 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
258 + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
259 + "cpu": [
260 + "x64"
261 + ],
262 + "dev": true,
263 + "license": "MIT",
264 + "optional": true,
265 + "os": [
266 + "freebsd"
267 + ],
268 + "engines": {
269 + "node": ">=18"
270 + }
271 + },
272 + "node_modules/@esbuild/linux-arm": {
273 + "version": "0.27.7",
274 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
275 + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
276 + "cpu": [
277 + "arm"
278 + ],
279 + "dev": true,
280 + "license": "MIT",
281 + "optional": true,
282 + "os": [
283 + "linux"
284 + ],
285 + "engines": {
286 + "node": ">=18"
287 + }
288 + },
289 + "node_modules/@esbuild/linux-arm64": {
290 + "version": "0.27.7",
291 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
292 + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
293 + "cpu": [
294 + "arm64"
295 + ],
296 + "dev": true,
297 + "license": "MIT",
298 + "optional": true,
299 + "os": [
300 + "linux"
301 + ],
302 + "engines": {
303 + "node": ">=18"
304 + }
305 + },
306 + "node_modules/@esbuild/linux-ia32": {
307 + "version": "0.27.7",
308 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz",
309 + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==",
310 + "cpu": [
311 + "ia32"
312 + ],
313 + "dev": true,
314 + "license": "MIT",
315 + "optional": true,
316 + "os": [
317 + "linux"
318 + ],
319 + "engines": {
320 + "node": ">=18"
321 + }
322 + },
323 + "node_modules/@esbuild/linux-loong64": {
324 + "version": "0.27.7",
325 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz",
326 + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==",
327 + "cpu": [
328 + "loong64"
329 + ],
330 + "dev": true,
331 + "license": "MIT",
332 + "optional": true,
333 + "os": [
334 + "linux"
335 + ],
336 + "engines": {
337 + "node": ">=18"
338 + }
339 + },
340 + "node_modules/@esbuild/linux-mips64el": {
341 + "version": "0.27.7",
342 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz",
343 + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==",
344 + "cpu": [
345 + "mips64el"
346 + ],
347 + "dev": true,
348 + "license": "MIT",
349 + "optional": true,
350 + "os": [
351 + "linux"
352 + ],
353 + "engines": {
354 + "node": ">=18"
355 + }
356 + },
357 + "node_modules/@esbuild/linux-ppc64": {
358 + "version": "0.27.7",
359 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz",
360 + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==",
361 + "cpu": [
362 + "ppc64"
363 + ],
364 + "dev": true,
365 + "license": "MIT",
366 + "optional": true,
367 + "os": [
368 + "linux"
369 + ],
370 + "engines": {
371 + "node": ">=18"
372 + }
373 + },
374 + "node_modules/@esbuild/linux-riscv64": {
375 + "version": "0.27.7",
376 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz",
377 + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==",
378 + "cpu": [
379 + "riscv64"
380 + ],
381 + "dev": true,
382 + "license": "MIT",
383 + "optional": true,
384 + "os": [
385 + "linux"
386 + ],
387 + "engines": {
388 + "node": ">=18"
389 + }
390 + },
391 + "node_modules/@esbuild/linux-s390x": {
392 + "version": "0.27.7",
393 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz",
394 + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==",
395 + "cpu": [
396 + "s390x"
397 + ],
398 + "dev": true,
399 + "license": "MIT",
400 + "optional": true,
401 + "os": [
402 + "linux"
403 + ],
404 + "engines": {
405 + "node": ">=18"
406 + }
407 + },
408 + "node_modules/@esbuild/linux-x64": {
409 + "version": "0.27.7",
410 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz",
411 + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==",
412 + "cpu": [
413 + "x64"
414 + ],
415 + "dev": true,
416 + "license": "MIT",
417 + "optional": true,
418 + "os": [
419 + "linux"
420 + ],
421 + "engines": {
422 + "node": ">=18"
423 + }
424 + },
425 + "node_modules/@esbuild/netbsd-arm64": {
426 + "version": "0.27.7",
427 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
428 + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
429 + "cpu": [
430 + "arm64"
431 + ],
432 + "dev": true,
433 + "license": "MIT",
434 + "optional": true,
435 + "os": [
436 + "netbsd"
437 + ],
438 + "engines": {
439 + "node": ">=18"
440 + }
441 + },
442 + "node_modules/@esbuild/netbsd-x64": {
443 + "version": "0.27.7",
444 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz",
445 + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==",
446 + "cpu": [
447 + "x64"
448 + ],
449 + "dev": true,
450 + "license": "MIT",
451 + "optional": true,
452 + "os": [
453 + "netbsd"
454 + ],
455 + "engines": {
456 + "node": ">=18"
457 + }
458 + },
459 + "node_modules/@esbuild/openbsd-arm64": {
460 + "version": "0.27.7",
461 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
462 + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
463 + "cpu": [
464 + "arm64"
465 + ],
466 + "dev": true,
467 + "license": "MIT",
468 + "optional": true,
469 + "os": [
470 + "openbsd"
471 + ],
472 + "engines": {
473 + "node": ">=18"
474 + }
475 + },
476 + "node_modules/@esbuild/openbsd-x64": {
477 + "version": "0.27.7",
478 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz",
479 + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==",
480 + "cpu": [
481 + "x64"
482 + ],
483 + "dev": true,
484 + "license": "MIT",
485 + "optional": true,
486 + "os": [
487 + "openbsd"
488 + ],
489 + "engines": {
490 + "node": ">=18"
491 + }
492 + },
493 + "node_modules/@esbuild/openharmony-arm64": {
494 + "version": "0.27.7",
495 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
496 + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
497 + "cpu": [
498 + "arm64"
499 + ],
500 + "dev": true,
501 + "license": "MIT",
502 + "optional": true,
503 + "os": [
504 + "openharmony"
505 + ],
506 + "engines": {
507 + "node": ">=18"
508 + }
509 + },
510 + "node_modules/@esbuild/sunos-x64": {
511 + "version": "0.27.7",
512 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz",
513 + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==",
514 + "cpu": [
515 + "x64"
516 + ],
517 + "dev": true,
518 + "license": "MIT",
519 + "optional": true,
520 + "os": [
521 + "sunos"
522 + ],
523 + "engines": {
524 + "node": ">=18"
525 + }
526 + },
527 + "node_modules/@esbuild/win32-arm64": {
528 + "version": "0.27.7",
529 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz",
530 + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==",
531 + "cpu": [
532 + "arm64"
533 + ],
534 + "dev": true,
535 + "license": "MIT",
536 + "optional": true,
537 + "os": [
538 + "win32"
539 + ],
540 + "engines": {
541 + "node": ">=18"
542 + }
543 + },
544 + "node_modules/@esbuild/win32-ia32": {
545 + "version": "0.27.7",
546 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz",
547 + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==",
548 + "cpu": [
549 + "ia32"
550 + ],
551 + "dev": true,
552 + "license": "MIT",
553 + "optional": true,
554 + "os": [
555 + "win32"
556 + ],
557 + "engines": {
558 + "node": ">=18"
559 + }
560 + },
561 + "node_modules/@esbuild/win32-x64": {
562 + "version": "0.27.7",
563 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
564 + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
565 + "cpu": [
566 + "x64"
567 + ],
568 + "dev": true,
569 + "license": "MIT",
570 + "optional": true,
571 + "os": [
572 + "win32"
573 + ],
574 + "engines": {
575 + "node": ">=18"
576 + }
577 + },
120 578 "node_modules/@hono/node-server": {
121 579 "version": "1.19.9",
122 580 "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.9.tgz",
@@ -558,6 +1016,13 @@ "rollup": {
558 1016 "optional": true
559 1017 }
560 1018 }
1019 + },
1020 + "node_modules/@sec-ant/readable-stream": {
1021 + "version": "0.4.1",
1022 + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
1023 + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
1024 + "dev": true,
1025 + "license": "MIT"
561 1026 },
562 1027 "node_modules/@sindresorhus/merge-streams": {
563 1028 "version": "2.3.0",
@@ -2119,6 +2584,48 @@ "hasown": "^2.0.2"
2119 2584 },
2120 2585 "engines": {
2121 2586 "node": ">= 0.4"
2587 + }
2588 + },
2589 + "node_modules/esbuild": {
2590 + "version": "0.27.7",
2591 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
2592 + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
2593 + "dev": true,
2594 + "hasInstallScript": true,
2595 + "license": "MIT",
2596 + "bin": {
2597 + "esbuild": "bin/esbuild"
2598 + },
2599 + "engines": {
2600 + "node": ">=18"
2601 + },
2602 + "optionalDependencies": {
2603 + "@esbuild/aix-ppc64": "0.27.7",
2604 + "@esbuild/android-arm": "0.27.7",
2605 + "@esbuild/android-arm64": "0.27.7",
2606 + "@esbuild/android-x64": "0.27.7",
2607 + "@esbuild/darwin-arm64": "0.27.7",
2608 + "@esbuild/darwin-x64": "0.27.7",
2609 + "@esbuild/freebsd-arm64": "0.27.7",
2610 + "@esbuild/freebsd-x64": "0.27.7",
2611 + "@esbuild/linux-arm": "0.27.7",
2612 + "@esbuild/linux-arm64": "0.27.7",
2613 + "@esbuild/linux-ia32": "0.27.7",
2614 + "@esbuild/linux-loong64": "0.27.7",
2615 + "@esbuild/linux-mips64el": "0.27.7",
2616 + "@esbuild/linux-ppc64": "0.27.7",
2617 + "@esbuild/linux-riscv64": "0.27.7",
2618 + "@esbuild/linux-s390x": "0.27.7",
2619 + "@esbuild/linux-x64": "0.27.7",
2620 + "@esbuild/netbsd-arm64": "0.27.7",
2621 + "@esbuild/netbsd-x64": "0.27.7",
2622 + "@esbuild/openbsd-arm64": "0.27.7",
2623 + "@esbuild/openbsd-x64": "0.27.7",
2624 + "@esbuild/openharmony-arm64": "0.27.7",
2625 + "@esbuild/sunos-x64": "0.27.7",
2626 + "@esbuild/win32-arm64": "0.27.7",
2627 + "@esbuild/win32-ia32": "0.27.7",
2628 + "@esbuild/win32-x64": "0.27.7"
2122 2629 }
2123 2630 },
2124 2631 "node_modules/escalade": {
@@ -2190,6 +2697,46 @@ "engines": {
2190 2697 "node": ">= 0.6"
2191 2698 }
2192 2699 },
2700 + "node_modules/execa": {
2701 + "version": "9.6.1",
2702 + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz",
2703 + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==",
2704 + "dev": true,
2705 + "license": "MIT",
2706 + "dependencies": {
2707 + "@sindresorhus/merge-streams": "^4.0.0",
2708 + "cross-spawn": "^7.0.6",
2709 + "figures": "^6.1.0",
2710 + "get-stream": "^9.0.0",
2711 + "human-signals": "^8.0.1",
2712 + "is-plain-obj": "^4.1.0",
2713 + "is-stream": "^4.0.1",
2714 + "npm-run-path": "^6.0.0",
2715 + "pretty-ms": "^9.2.0",
2716 + "signal-exit": "^4.1.0",
2717 + "strip-final-newline": "^4.0.0",
2718 + "yoctocolors": "^2.1.1"
2719 + },
2720 + "engines": {
2721 + "node": "^18.19.0 || >=20.5.0"
2722 + },
2723 + "funding": {
2724 + "url": "https://github.com/sindresorhus/execa?sponsor=1"
2725 + }
2726 + },
2727 + "node_modules/execa/node_modules/@sindresorhus/merge-streams": {
2728 + "version": "4.0.0",
2729 + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
2730 + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
2731 + "dev": true,
2732 + "license": "MIT",
2733 + "engines": {
2734 + "node": ">=18"
2735 + },
2736 + "funding": {
2737 + "url": "https://github.com/sponsors/sindresorhus"
2738 + }
2739 + },
2193 2740 "node_modules/expand-template": {
2194 2741 "version": "2.0.3",
2195 2742 "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
@@ -2582,6 +3129,23 @@ "engines": {
2582 3129 "node": ">= 0.4"
2583 3130 }
2584 3131 },
3132 + "node_modules/get-stream": {
3133 + "version": "9.0.1",
3134 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
3135 + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
3136 + "dev": true,
3137 + "license": "MIT",
3138 + "dependencies": {
3139 + "@sec-ant/readable-stream": "^0.4.1",
3140 + "is-stream": "^4.0.1"
3141 + },
3142 + "engines": {
3143 + "node": ">=18"
3144 + },
3145 + "funding": {
3146 + "url": "https://github.com/sponsors/sindresorhus"
3147 + }
3148 + },
2585 3149 "node_modules/get-tsconfig": {
2586 3150 "version": "4.13.6",
2587 3151 "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz",
@@ -2798,6 +3362,16 @@ "engines": {
2798 3362 "node": ">= 14"
2799 3363 }
2800 3364 },
3365 + "node_modules/human-signals": {
3366 + "version": "8.0.1",
3367 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz",
3368 + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==",
3369 + "dev": true,
3370 + "license": "Apache-2.0",
3371 + "engines": {
3372 + "node": ">=18.18.0"
3373 + }
3374 + },
2801 3375 "node_modules/iconv-lite": {
2802 3376 "version": "0.7.0",
2803 3377 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz",
@@ -2967,6 +3541,19 @@ "engines": {
2967 3541 "node": ">=0.12.0"
2968 3542 }
2969 3543 },
3544 + "node_modules/is-plain-obj": {
3545 + "version": "4.1.0",
3546 + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
3547 + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
3548 + "dev": true,
3549 + "license": "MIT",
3550 + "engines": {
3551 + "node": ">=12"
3552 + },
3553 + "funding": {
3554 + "url": "https://github.com/sponsors/sindresorhus"
3555 + }
3556 + },
2970 3557 "node_modules/is-plain-object": {
2971 3558 "version": "5.0.0",
2972 3559 "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
@@ -2990,6 +3577,19 @@ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==",
2990 3577 "devOptional": true,
2991 3578 "license": "MIT"
2992 3579 },
3580 + "node_modules/is-stream": {
3581 + "version": "4.0.1",
3582 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
3583 + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
3584 + "dev": true,
3585 + "license": "MIT",
3586 + "engines": {
3587 + "node": ">=18"
3588 + },
3589 + "funding": {
3590 + "url": "https://github.com/sponsors/sindresorhus"
3591 + }
3592 + },
2993 3593 "node_modules/is-unicode-supported": {
2994 3594 "version": "2.1.0",
2995 3595 "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz",
@@ -3662,6 +4262,36 @@ "dev": true,
3662 4262 "license": "MIT",
3663 4263 "engines": {
3664 4264 "node": ">=0.10.0"
4265 + }
4266 + },
4267 + "node_modules/npm-run-path": {
4268 + "version": "6.0.0",
4269 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
4270 + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
4271 + "dev": true,
4272 + "license": "MIT",
4273 + "dependencies": {
4274 + "path-key": "^4.0.0",
4275 + "unicorn-magic": "^0.3.0"
4276 + },
4277 + "engines": {
4278 + "node": ">=18"
4279 + },
4280 + "funding": {
4281 + "url": "https://github.com/sponsors/sindresorhus"
4282 + }
4283 + },
4284 + "node_modules/npm-run-path/node_modules/path-key": {
4285 + "version": "4.0.0",
4286 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
4287 + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
4288 + "dev": true,
4289 + "license": "MIT",
4290 + "engines": {
4291 + "node": ">=12"
4292 + },
4293 + "funding": {
4294 + "url": "https://github.com/sponsors/sindresorhus"
3665 4295 }
3666 4296 },
3667 4297 "node_modules/nypm": {
@@ -4972,6 +5602,19 @@ "engines": {
4972 5602 "node": ">=4"
4973 5603 }
4974 5604 },
5605 + "node_modules/strip-final-newline": {
5606 + "version": "4.0.0",
5607 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz",
5608 + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
5609 + "dev": true,
5610 + "license": "MIT",
5611 + "engines": {
5612 + "node": ">=18"
5613 + },
5614 + "funding": {
5615 + "url": "https://github.com/sponsors/sindresorhus"
5616 + }
5617 + },
4975 5618 "node_modules/strip-json-comments": {
4976 5619 "version": "2.0.1",
4977 5620 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
@@ -5317,6 +5960,26 @@ "strip-bom": "^3.0.0"
5317 5960 },
5318 5961 "engines": {
5319 5962 "node": ">=6"
5963 + }
5964 + },
5965 + "node_modules/tsx": {
5966 + "version": "4.21.0",
5967 + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
5968 + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
5969 + "dev": true,
5970 + "license": "MIT",
5971 + "dependencies": {
5972 + "esbuild": "~0.27.0",
5973 + "get-tsconfig": "^4.7.5"
5974 + },
5975 + "bin": {
5976 + "tsx": "dist/cli.mjs"
5977 + },
5978 + "engines": {
5979 + "node": ">=18.0.0"
5980 + },
5981 + "optionalDependencies": {
5982 + "fsevents": "~2.3.3"
5320 5983 }
5321 5984 },
5322 5985 "node_modules/tunnel-agent": {
@@ -5755,6 +6418,19 @@ "dev": true,
5755 6418 "license": "MIT",
5756 6419 "engines": {
5757 6420 "node": ">=6"
6421 + }
6422 + },
6423 + "node_modules/yoctocolors": {
6424 + "version": "2.1.2",
6425 + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz",
6426 + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==",
6427 + "dev": true,
6428 + "license": "MIT",
6429 + "engines": {
6430 + "node": ">=18"
6431 + },
6432 + "funding": {
6433 + "url": "https://github.com/sponsors/sindresorhus"
5758 6434 }
5759 6435 },
5760 6436 "node_modules/zeptomatch": {
api/package.json
@@ -11,7 +11,11 @@ },
11 11 "scripts": {
12 12 "build": "tsc && tsc-alias",
13 13 "start": "ts-node -r tsconfig-paths/register src/index.ts",
14 - "test": "npx ava",
14 + "test": "npm run test:setup && NODE_ENV=test npx ava tests/database.test.ts",
15 + "test:setup": "npm run test:setup:generate && npm run test:setup:migrate",
16 + "test:setup:generate": "DATABASE_URL='postgres://user:password@orbit_db:5432/orbit_test' npx prisma generate",
17 + "test:setup:migrate": "DATABASE_URL='postgres://user:password@orbit_db:5432/orbit_test' npx prisma migrate deploy",
18 + "test:watch": "npm run test:setup && NODE_ENV=test npx ava --watch",
15 19 "dev": "prisma generate && prisma migrate deploy && npm run start"
16 20 },
17 21 "dependencies": {
@@ -30,6 +34,7 @@ "morgan": "^1.10.1",
30 34 "pg": "^8.20.0"
31 35 },
32 36 "devDependencies": {
37 + "@ava/typescript": "^6.0.0",
33 38 "@types/better-sqlite3": "^7.6.13",
34 39 "@types/express": "^5.0.6",
35 40 "@types/morgan": "^1.9.10",
@@ -40,6 +45,7 @@ "supertest": "^7.1.4",
40 45 "ts-node": "^10.9.2",
41 46 "tsc-alias": "^1.8.16",
42 47 "tsconfig-paths": "^4.2.0",
48 + "tsx": "^4.21.0",
43 49 "typescript": "^6.0.2"
44 50 }
45 51 }