create-spatius-app 0.1.1 → 0.1.3-beta.1

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.
Files changed (57) hide show
  1. package/README.md +17 -8
  2. package/dist/cli.js +8264 -162
  3. package/dist/templates.js +8226 -128
  4. package/package.json +5 -5
  5. package/schemas/result-v3.schema.json +174 -0
  6. package/schemas/result-v4.schema.json +170 -0
  7. package/templates/cloudflare-livekit/AGENTS.md +4 -0
  8. package/templates/cloudflare-livekit/README.md +41 -0
  9. package/templates/cloudflare-livekit/agent/README.md +0 -4
  10. package/templates/cloudflare-livekit/agent/env.example +3 -0
  11. package/templates/cloudflare-livekit/agent/pyproject.toml +1 -1
  12. package/templates/cloudflare-livekit/agent/src/agent.py +5 -3
  13. package/templates/cloudflare-livekit/agent/uv.lock +7 -7
  14. package/templates/cloudflare-livekit/package-lock.json +70 -142
  15. package/templates/cloudflare-livekit/package.json +2 -2
  16. package/templates/cloudflare-livekit/pnpm-lock.yaml +197 -153
  17. package/templates/cloudflare-livekit/tests/dev-events.test.mjs +23 -0
  18. package/templates/cloudflare-livekit/tests/dev-fixtures.mjs +7 -3
  19. package/templates/cloudflare-livekit/tsconfig.web.json +1 -0
  20. package/templates/cloudflare-livekit/tsconfig.worker.json +1 -0
  21. package/templates/cloudflare-livekit/web/api.ts +12 -0
  22. package/templates/cloudflare-livekit/web/components/agents-ui/agent-chat-transcript.tsx +6 -90
  23. package/templates/cloudflare-livekit/web/components/transcript-view.tsx +90 -0
  24. package/templates/cloudflare-livekit/web/session-attempt.ts +23 -2
  25. package/templates/cloudflare-livekit/worker/capability.test.ts +31 -0
  26. package/templates/cloudflare-livekit/worker/capability.ts +72 -0
  27. package/templates/cloudflare-livekit/worker/index.test.ts +2 -2
  28. package/templates/cloudflare-livekit/worker/index.ts +15 -3
  29. package/templates/cloudflare-livekit/worker/session.ts +34 -0
  30. package/templates/layers/agora/AGENTS.md +8 -0
  31. package/templates/layers/agora/README.md +19 -0
  32. package/templates/layers/agora/env.example +9 -0
  33. package/templates/layers/agora/package-lock.json +6068 -0
  34. package/templates/layers/agora/package.json +54 -0
  35. package/templates/layers/agora/pnpm-lock.yaml +3816 -0
  36. package/templates/layers/agora/tsconfig.json +16 -0
  37. package/templates/layers/agora/vitest.config.ts +4 -0
  38. package/templates/layers/agora/web/App.tsx +174 -0
  39. package/templates/layers/agora/web/agora-session.test.ts +70 -0
  40. package/templates/layers/agora/web/agora-session.ts +267 -0
  41. package/templates/layers/agora/worker/agora.test.ts +60 -0
  42. package/templates/layers/agora/worker/agora.ts +165 -0
  43. package/templates/layers/agora/worker/index.ts +50 -0
  44. package/templates/layers/catalog/DEPLOYMENT.md +3 -0
  45. package/templates/layers/catalog/spatius.config.json +1 -0
  46. package/templates/layers/node/Dockerfile +12 -0
  47. package/templates/layers/node/dockerignore +10 -0
  48. package/templates/layers/node/package-lock.json +5569 -0
  49. package/templates/layers/node/pnpm-lock.yaml +3470 -0
  50. package/templates/layers/node/railway.json +8 -0
  51. package/templates/layers/node/scripts/dev-service.mjs +14 -0
  52. package/templates/layers/node/scripts/dev-web.mjs +22 -0
  53. package/templates/layers/node/server/index.ts +92 -0
  54. package/templates/layers/node/vite.config.ts +17 -0
  55. package/templates/layers/railway-agent/agent/railway.json +5 -0
  56. package/dist/cli.js.map +0 -1
  57. package/dist/templates.js.map +0 -1
@@ -1,3 +1,104 @@
1
+ ---
2
+ lockfileVersion: '9.0'
3
+
4
+ importers:
5
+
6
+ .:
7
+ configDependencies: {}
8
+ packageManagerDependencies:
9
+ pnpm:
10
+ specifier: 12.3.4
11
+ version: 12.3.4
12
+
13
+ packages:
14
+
15
+ '@pnpm/exe.darwin-arm64@12.3.4':
16
+ resolution: {integrity: sha512-PAyUol8T1+/+ViOiXAt51ECA+QnfXCqz6foL4bW+LsoX0NcVd5XVEM2mRQu+LV4oc7uRz9zf9U0P+XFfuQeDAw==}
17
+ cpu: [arm64]
18
+ os: [darwin]
19
+
20
+ '@pnpm/exe.darwin-x64@12.3.4':
21
+ resolution: {integrity: sha512-fxP9JCk0Cdye+ePuj+GJJLMUMTqHGWRdb1dtv4How876uQ2ehxvenpgiYAir/ceO9PsYUZkFTtyZdx+rRu5QOA==}
22
+ cpu: [x64]
23
+ os: [darwin]
24
+
25
+ '@pnpm/exe.linux-arm64-musl@12.3.4':
26
+ resolution: {integrity: sha512-FBOt0/7ye6O6q4AllVV5QMviB6qE6fqkeczV/+MDWQsmo+QJrlfsh6X7CpH/tClVpBZEyIbjpUoT8bNhCYBxEg==}
27
+ cpu: [arm64]
28
+ os: [linux]
29
+ libc: [musl]
30
+
31
+ '@pnpm/exe.linux-arm64@12.3.4':
32
+ resolution: {integrity: sha512-t71AVA7LRqiKTyZ5xMYaZc2n5DfdpMbfokZuiIOXHBOM03ECnF0t4iYwaBDqJgVjlKYUOwaF/bRQajGNA4cJ4w==}
33
+ cpu: [arm64]
34
+ os: [linux]
35
+ libc: [glibc]
36
+
37
+ '@pnpm/exe.linux-x64-musl@12.3.4':
38
+ resolution: {integrity: sha512-RPmk7Jb/aYaFvL2iyDN/AtMY+hUEsue732WmXpcuQ9tBpMnGyA5py7Z3+e+qmQaJ0zY/4ni9jJiyPBQHujmv6w==}
39
+ cpu: [x64]
40
+ os: [linux]
41
+ libc: [musl]
42
+
43
+ '@pnpm/exe.linux-x64@12.3.4':
44
+ resolution: {integrity: sha512-2ZqOlSPkfwX1h5cR+FPiWf8+F+2hZT/3TvhUK5sigHqwaQCIiq8R7CGxhndKs63JtcLi2a1Qpo+wX/EoyfjyJQ==}
45
+ cpu: [x64]
46
+ os: [linux]
47
+ libc: [glibc]
48
+
49
+ '@pnpm/exe.win32-arm64@12.3.4':
50
+ resolution: {integrity: sha512-ANyrHqyqco6SXBysUTRF74itDyyraea7IbFsKFdNXTjcFnfycTDx37EwuhdpPYFNSIh2JhUG4fByclsRfiHX7w==}
51
+ cpu: [arm64]
52
+ os: [win32]
53
+
54
+ '@pnpm/exe.win32-x64@12.3.4':
55
+ resolution: {integrity: sha512-WH/KqBPY/hq2Tb7SgQltEZytimcjgKRaCRL/aM9CI0c67iKc5TVmHUhIiL3Ux9FB4bWn36i6XewUcScQI+zG8w==}
56
+ cpu: [x64]
57
+ os: [win32]
58
+
59
+ pnpm@12.3.4:
60
+ resolution: {integrity: sha512-lhqkH7B32joEpEHZ+OFevAyW2o73ELLrZ7+e58sGEOq9SPH9hfUc/+c4RnhfoPh8VqOocqHYk/hEZ0G1zORUVw==}
61
+ engines: {node: '>=18.*'}
62
+ hasBin: true
63
+
64
+ snapshots:
65
+
66
+ '@pnpm/exe.darwin-arm64@12.3.4':
67
+ optional: true
68
+
69
+ '@pnpm/exe.darwin-x64@12.3.4':
70
+ optional: true
71
+
72
+ '@pnpm/exe.linux-arm64-musl@12.3.4':
73
+ optional: true
74
+
75
+ '@pnpm/exe.linux-arm64@12.3.4':
76
+ optional: true
77
+
78
+ '@pnpm/exe.linux-x64-musl@12.3.4':
79
+ optional: true
80
+
81
+ '@pnpm/exe.linux-x64@12.3.4':
82
+ optional: true
83
+
84
+ '@pnpm/exe.win32-arm64@12.3.4':
85
+ optional: true
86
+
87
+ '@pnpm/exe.win32-x64@12.3.4':
88
+ optional: true
89
+
90
+ pnpm@12.3.4:
91
+ optionalDependencies:
92
+ '@pnpm/exe.darwin-arm64': 12.3.4
93
+ '@pnpm/exe.darwin-x64': 12.3.4
94
+ '@pnpm/exe.linux-arm64': 12.3.4
95
+ '@pnpm/exe.linux-arm64-musl': 12.3.4
96
+ '@pnpm/exe.linux-x64': 12.3.4
97
+ '@pnpm/exe.linux-x64-musl': 12.3.4
98
+ '@pnpm/exe.win32-arm64': 12.3.4
99
+ '@pnpm/exe.win32-x64': 12.3.4
100
+
101
+ ---
1
102
  lockfileVersion: '9.0'
2
103
 
3
104
  settings:
@@ -38,7 +139,7 @@ importers:
38
139
  version: 1.54.4(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0))(wrangler@4.129.0)
39
140
  '@eslint/js':
40
141
  specifier: 10.0.1
41
- version: 10.0.1(eslint@10.10.0(jiti@2.7.0))
142
+ version: 10.0.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))
42
143
  '@playwright/test':
43
144
  specifier: 1.63.0
44
145
  version: 1.63.0
@@ -77,16 +178,16 @@ importers:
77
178
  version: 10.0.5
78
179
  eslint:
79
180
  specifier: 10.10.0
80
- version: 10.10.0(jiti@2.7.0)
181
+ version: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
81
182
  eslint-config-prettier:
82
183
  specifier: 10.1.8
83
- version: 10.1.8(eslint@10.10.0(jiti@2.7.0))
184
+ version: 10.1.8(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))
84
185
  globals:
85
186
  specifier: 17.12.0
86
187
  version: 17.12.0
87
188
  jsdom:
88
189
  specifier: 26.1.0
89
- version: 26.1.0
190
+ version: 26.1.0(supports-color@10.2.2)
90
191
  prettier:
91
192
  specifier: 3.9.6
92
193
  version: 3.9.6
@@ -98,13 +199,13 @@ importers:
98
199
  version: 6.0.3
99
200
  typescript-eslint:
100
201
  specifier: 8.69.0
101
- version: 8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
202
+ version: 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
102
203
  vite:
103
204
  specifier: 8.2.2
104
205
  version: 8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0)
105
206
  vitest:
106
- specifier: 4.1.11
107
- version: 4.1.11(@opentelemetry/api@1.9.1)(@types/node@26.4.1)(jsdom@26.1.0)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0))
207
+ specifier: 5.0.0
208
+ version: 5.0.0(@opentelemetry/api@1.9.1)(@types/node@26.4.1)(jsdom@26.1.0(supports-color@10.2.2))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0))
108
209
  wrangler:
109
210
  specifier: 4.129.0
110
211
  version: 4.129.0
@@ -915,9 +1016,6 @@ packages:
915
1016
  '@speed-highlight/core@1.2.24':
916
1017
  resolution: {integrity: sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==}
917
1018
 
918
- '@standard-schema/spec@1.1.0':
919
- resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
920
-
921
1019
  '@tailwindcss/node@4.3.3':
922
1020
  resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
923
1021
 
@@ -1147,11 +1245,8 @@ packages:
1147
1245
  oxc-transform-react:
1148
1246
  optional: true
1149
1247
 
1150
- '@vitest/expect@4.1.11':
1151
- resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==}
1152
-
1153
- '@vitest/mocker@4.1.11':
1154
- resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==}
1248
+ '@vitest/mocker@5.0.0':
1249
+ resolution: {integrity: sha512-66PGTMIiVJP3t4a5yxU9qPtf7MdTBs8jmToMvy+HVflB3Yy13WJZTtPePdvU+wjRV02SKK5doLbSA6o9pwOmiA==}
1155
1250
  peerDependencies:
1156
1251
  msw: ^2.4.9
1157
1252
  vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -1161,20 +1256,8 @@ packages:
1161
1256
  vite:
1162
1257
  optional: true
1163
1258
 
1164
- '@vitest/pretty-format@4.1.11':
1165
- resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==}
1166
-
1167
- '@vitest/runner@4.1.11':
1168
- resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==}
1169
-
1170
- '@vitest/snapshot@4.1.11':
1171
- resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==}
1172
-
1173
- '@vitest/spy@4.1.11':
1174
- resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==}
1175
-
1176
- '@vitest/utils@4.1.11':
1177
- resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==}
1259
+ '@vitest/spy@5.0.0':
1260
+ resolution: {integrity: sha512-uy+luWBAPw9XfthoHi5AkfHUnuPYEESjl0p/r+meoBnU8bxg5GDQ3Ey8MjcJ6sqahkL4PFyrvfMJJBw7LbU06g==}
1178
1261
 
1179
1262
  '@webgpu/types@0.1.72':
1180
1263
  resolution: {integrity: sha512-0cF7RFM2edNoiIS1ODJp0/Gzv4/xSXhwoR0YCza+OWpJWtn4wmo9DvK91aLlH9+uUnwIriP7ZiC3WitmyhuzBw==}
@@ -1254,9 +1337,6 @@ packages:
1254
1337
  engines: {node: '>=22'}
1255
1338
  hasBin: true
1256
1339
 
1257
- convert-source-map@2.0.0:
1258
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
1259
-
1260
1340
  cookie@1.1.1:
1261
1341
  resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
1262
1342
  engines: {node: '>=18'}
@@ -1735,6 +1815,9 @@ packages:
1735
1815
  magic-string@0.30.21:
1736
1816
  resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
1737
1817
 
1818
+ magic-string@1.2.3:
1819
+ resolution: {integrity: sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==}
1820
+
1738
1821
  miniflare@5.20260903.0-alpha:
1739
1822
  resolution: {integrity: sha512-VCZIFxOqFXeibRBJWwTlppqbv2lkeO10IX3QBRGK9j1QiMAfH/OSsCvbjp1MslBMhVZmy2VTRlVaVnsKnbDp6A==}
1740
1823
  engines: {node: '>=22.0.0'}
@@ -1961,8 +2044,9 @@ packages:
1961
2044
  resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==}
1962
2045
  engines: {node: '>=6'}
1963
2046
 
1964
- tinybench@2.9.0:
1965
- resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
2047
+ tinybench@6.1.4:
2048
+ resolution: {integrity: sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ==}
2049
+ engines: {node: '>=20.0.0'}
1966
2050
 
1967
2051
  tinyexec@1.3.0:
1968
2052
  resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==}
@@ -1972,10 +2056,6 @@ packages:
1972
2056
  resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
1973
2057
  engines: {node: '>=12.0.0'}
1974
2058
 
1975
- tinyrainbow@3.1.1:
1976
- resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==}
1977
- engines: {node: '>=14.0.0'}
1978
-
1979
2059
  tldts-core@6.1.86:
1980
2060
  resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
1981
2061
 
@@ -2085,23 +2165,23 @@ packages:
2085
2165
  yaml:
2086
2166
  optional: true
2087
2167
 
2088
- vitest@4.1.11:
2089
- resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==}
2090
- engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
2168
+ vitest@5.0.0:
2169
+ resolution: {integrity: sha512-gpsMNoRhMjMktVxPtstOH4/PJuPyovVaMDr4oDilXaGH1EcqM2OE96SoHT2VIQ6fTGtTjqmHDrEu2X9RQiXf8Q==}
2170
+ engines: {node: ^22.12.0 || ^24.0.0 || >=26.0.0}
2091
2171
  hasBin: true
2092
2172
  peerDependencies:
2093
2173
  '@edge-runtime/vm': '*'
2094
2174
  '@opentelemetry/api': ^1.9.0
2095
- '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
2096
- '@vitest/browser-playwright': 4.1.11
2097
- '@vitest/browser-preview': 4.1.11
2098
- '@vitest/browser-webdriverio': 4.1.11
2099
- '@vitest/coverage-istanbul': 4.1.11
2100
- '@vitest/coverage-v8': 4.1.11
2101
- '@vitest/ui': 4.1.11
2175
+ '@types/node': ^22.0.0 || >=24.0.0
2176
+ '@vitest/browser-playwright': 5.0.0
2177
+ '@vitest/browser-preview': 5.0.0
2178
+ '@vitest/browser-webdriverio': ^5.0.0-beta.5 || >=5.0.0
2179
+ '@vitest/coverage-istanbul': 5.0.0
2180
+ '@vitest/coverage-v8': 5.0.0
2181
+ '@vitest/ui': 5.0.0
2102
2182
  happy-dom: '*'
2103
2183
  jsdom: '*'
2104
- vite: ^6.0.0 || ^7.0.0 || ^8.0.0
2184
+ vite: ^6.4.0 || ^7.0.0 || ^8.0.0
2105
2185
  peerDependenciesMeta:
2106
2186
  '@edge-runtime/vm':
2107
2187
  optional: true
@@ -2407,17 +2487,17 @@ snapshots:
2407
2487
  '@esbuild/win32-x64@0.28.1':
2408
2488
  optional: true
2409
2489
 
2410
- '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(jiti@2.7.0))':
2490
+ '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))':
2411
2491
  dependencies:
2412
- eslint: 10.10.0(jiti@2.7.0)
2492
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
2413
2493
  eslint-visitor-keys: 3.4.3
2414
2494
 
2415
2495
  '@eslint-community/regexpp@4.12.2': {}
2416
2496
 
2417
- '@eslint/config-array@0.23.5':
2497
+ '@eslint/config-array@0.23.5(supports-color@10.2.2)':
2418
2498
  dependencies:
2419
2499
  '@eslint/object-schema': 3.0.5
2420
- debug: 4.4.3
2500
+ debug: 4.4.3(supports-color@10.2.2)
2421
2501
  minimatch: 10.2.6
2422
2502
  transitivePeerDependencies:
2423
2503
  - supports-color
@@ -2430,9 +2510,9 @@ snapshots:
2430
2510
  dependencies:
2431
2511
  '@types/json-schema': 7.0.15
2432
2512
 
2433
- '@eslint/js@10.0.1(eslint@10.10.0(jiti@2.7.0))':
2513
+ '@eslint/js@10.0.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))':
2434
2514
  optionalDependencies:
2435
- eslint: 10.10.0(jiti@2.7.0)
2515
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
2436
2516
 
2437
2517
  '@eslint/object-schema@3.0.5': {}
2438
2518
 
@@ -2855,8 +2935,6 @@ snapshots:
2855
2935
 
2856
2936
  '@speed-highlight/core@1.2.24': {}
2857
2937
 
2858
- '@standard-schema/spec@1.1.0': {}
2859
-
2860
2938
  '@tailwindcss/node@4.3.3':
2861
2939
  dependencies:
2862
2940
  '@jridgewell/remapping': 2.3.5
@@ -2982,15 +3060,15 @@ snapshots:
2982
3060
  '@types/trusted-types@2.0.7':
2983
3061
  optional: true
2984
3062
 
2985
- '@typescript-eslint/eslint-plugin@8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)':
3063
+ '@typescript-eslint/eslint-plugin@8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)':
2986
3064
  dependencies:
2987
3065
  '@eslint-community/regexpp': 4.12.2
2988
- '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
3066
+ '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
2989
3067
  '@typescript-eslint/scope-manager': 8.69.0
2990
- '@typescript-eslint/type-utils': 8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
2991
- '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
3068
+ '@typescript-eslint/type-utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
3069
+ '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
2992
3070
  '@typescript-eslint/visitor-keys': 8.69.0
2993
- eslint: 10.10.0(jiti@2.7.0)
3071
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
2994
3072
  ignore: 7.0.8
2995
3073
  natural-compare: 1.4.0
2996
3074
  ts-api-utils: 2.5.0(typescript@6.0.3)
@@ -2998,23 +3076,23 @@ snapshots:
2998
3076
  transitivePeerDependencies:
2999
3077
  - supports-color
3000
3078
 
3001
- '@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)':
3079
+ '@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)':
3002
3080
  dependencies:
3003
3081
  '@typescript-eslint/scope-manager': 8.69.0
3004
3082
  '@typescript-eslint/types': 8.69.0
3005
- '@typescript-eslint/typescript-estree': 8.69.0(typescript@6.0.3)
3083
+ '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3)
3006
3084
  '@typescript-eslint/visitor-keys': 8.69.0
3007
- debug: 4.4.3
3008
- eslint: 10.10.0(jiti@2.7.0)
3085
+ debug: 4.4.3(supports-color@10.2.2)
3086
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
3009
3087
  typescript: 6.0.3
3010
3088
  transitivePeerDependencies:
3011
3089
  - supports-color
3012
3090
 
3013
- '@typescript-eslint/project-service@8.69.0(typescript@6.0.3)':
3091
+ '@typescript-eslint/project-service@8.69.0(supports-color@10.2.2)(typescript@6.0.3)':
3014
3092
  dependencies:
3015
3093
  '@typescript-eslint/tsconfig-utils': 8.69.0(typescript@6.0.3)
3016
3094
  '@typescript-eslint/types': 8.69.0
3017
- debug: 4.4.3
3095
+ debug: 4.4.3(supports-color@10.2.2)
3018
3096
  typescript: 6.0.3
3019
3097
  transitivePeerDependencies:
3020
3098
  - supports-color
@@ -3028,13 +3106,13 @@ snapshots:
3028
3106
  dependencies:
3029
3107
  typescript: 6.0.3
3030
3108
 
3031
- '@typescript-eslint/type-utils@8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)':
3109
+ '@typescript-eslint/type-utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)':
3032
3110
  dependencies:
3033
3111
  '@typescript-eslint/types': 8.69.0
3034
- '@typescript-eslint/typescript-estree': 8.69.0(typescript@6.0.3)
3035
- '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
3036
- debug: 4.4.3
3037
- eslint: 10.10.0(jiti@2.7.0)
3112
+ '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3)
3113
+ '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
3114
+ debug: 4.4.3(supports-color@10.2.2)
3115
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
3038
3116
  ts-api-utils: 2.5.0(typescript@6.0.3)
3039
3117
  typescript: 6.0.3
3040
3118
  transitivePeerDependencies:
@@ -3042,13 +3120,13 @@ snapshots:
3042
3120
 
3043
3121
  '@typescript-eslint/types@8.69.0': {}
3044
3122
 
3045
- '@typescript-eslint/typescript-estree@8.69.0(typescript@6.0.3)':
3123
+ '@typescript-eslint/typescript-estree@8.69.0(supports-color@10.2.2)(typescript@6.0.3)':
3046
3124
  dependencies:
3047
- '@typescript-eslint/project-service': 8.69.0(typescript@6.0.3)
3125
+ '@typescript-eslint/project-service': 8.69.0(supports-color@10.2.2)(typescript@6.0.3)
3048
3126
  '@typescript-eslint/tsconfig-utils': 8.69.0(typescript@6.0.3)
3049
3127
  '@typescript-eslint/types': 8.69.0
3050
3128
  '@typescript-eslint/visitor-keys': 8.69.0
3051
- debug: 4.4.3
3129
+ debug: 4.4.3(supports-color@10.2.2)
3052
3130
  minimatch: 10.2.6
3053
3131
  semver: 7.8.5
3054
3132
  tinyglobby: 0.2.17
@@ -3057,13 +3135,13 @@ snapshots:
3057
3135
  transitivePeerDependencies:
3058
3136
  - supports-color
3059
3137
 
3060
- '@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)':
3138
+ '@typescript-eslint/utils@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)':
3061
3139
  dependencies:
3062
- '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0))
3140
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))
3063
3141
  '@typescript-eslint/scope-manager': 8.69.0
3064
3142
  '@typescript-eslint/types': 8.69.0
3065
- '@typescript-eslint/typescript-estree': 8.69.0(typescript@6.0.3)
3066
- eslint: 10.10.0(jiti@2.7.0)
3143
+ '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3)
3144
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
3067
3145
  typescript: 6.0.3
3068
3146
  transitivePeerDependencies:
3069
3147
  - supports-color
@@ -3078,46 +3156,16 @@ snapshots:
3078
3156
  '@rolldown/pluginutils': 1.0.1
3079
3157
  vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0)
3080
3158
 
3081
- '@vitest/expect@4.1.11':
3159
+ '@vitest/mocker@5.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0))':
3082
3160
  dependencies:
3083
- '@standard-schema/spec': 1.1.0
3084
- '@types/chai': 5.2.3
3085
- '@vitest/spy': 4.1.11
3086
- '@vitest/utils': 4.1.11
3087
- chai: 6.2.2
3088
- tinyrainbow: 3.1.1
3089
-
3090
- '@vitest/mocker@4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0))':
3091
- dependencies:
3092
- '@vitest/spy': 4.1.11
3161
+ '@jridgewell/trace-mapping': 0.3.31
3162
+ '@vitest/spy': 5.0.0
3093
3163
  estree-walker: 3.0.3
3094
- magic-string: 0.30.21
3164
+ magic-string: 1.2.3
3095
3165
  optionalDependencies:
3096
3166
  vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0)
3097
3167
 
3098
- '@vitest/pretty-format@4.1.11':
3099
- dependencies:
3100
- tinyrainbow: 3.1.1
3101
-
3102
- '@vitest/runner@4.1.11':
3103
- dependencies:
3104
- '@vitest/utils': 4.1.11
3105
- pathe: 2.0.3
3106
-
3107
- '@vitest/snapshot@4.1.11':
3108
- dependencies:
3109
- '@vitest/pretty-format': 4.1.11
3110
- '@vitest/utils': 4.1.11
3111
- magic-string: 0.30.21
3112
- pathe: 2.0.3
3113
-
3114
- '@vitest/spy@4.1.11': {}
3115
-
3116
- '@vitest/utils@4.1.11':
3117
- dependencies:
3118
- '@vitest/pretty-format': 4.1.11
3119
- convert-source-map: 2.0.0
3120
- tinyrainbow: 3.1.1
3168
+ '@vitest/spy@5.0.0': {}
3121
3169
 
3122
3170
  '@webgpu/types@0.1.72': {}
3123
3171
 
@@ -3187,8 +3235,6 @@ snapshots:
3187
3235
  tree-kill: 1.2.2
3188
3236
  yargs: 18.0.0
3189
3237
 
3190
- convert-source-map@2.0.0: {}
3191
-
3192
3238
  cookie@1.1.1: {}
3193
3239
 
3194
3240
  core-js@3.50.0: {}
@@ -3211,9 +3257,11 @@ snapshots:
3211
3257
  whatwg-mimetype: 4.0.0
3212
3258
  whatwg-url: 14.2.0
3213
3259
 
3214
- debug@4.4.3:
3260
+ debug@4.4.3(supports-color@10.2.2):
3215
3261
  dependencies:
3216
3262
  ms: 2.1.3
3263
+ optionalDependencies:
3264
+ supports-color: 10.2.2
3217
3265
 
3218
3266
  decimal.js@10.6.0: {}
3219
3267
 
@@ -3279,9 +3327,9 @@ snapshots:
3279
3327
 
3280
3328
  escape-string-regexp@4.0.0: {}
3281
3329
 
3282
- eslint-config-prettier@10.1.8(eslint@10.10.0(jiti@2.7.0)):
3330
+ eslint-config-prettier@10.1.8(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2)):
3283
3331
  dependencies:
3284
- eslint: 10.10.0(jiti@2.7.0)
3332
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
3285
3333
 
3286
3334
  eslint-scope@9.1.2:
3287
3335
  dependencies:
@@ -3294,11 +3342,11 @@ snapshots:
3294
3342
 
3295
3343
  eslint-visitor-keys@5.0.1: {}
3296
3344
 
3297
- eslint@10.10.0(jiti@2.7.0):
3345
+ eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2):
3298
3346
  dependencies:
3299
- '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0))
3347
+ '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))
3300
3348
  '@eslint-community/regexpp': 4.12.2
3301
- '@eslint/config-array': 0.23.5
3349
+ '@eslint/config-array': 0.23.5(supports-color@10.2.2)
3302
3350
  '@eslint/config-helpers': 0.7.0
3303
3351
  '@eslint/core': 1.2.1
3304
3352
  '@eslint/plugin-kit': 0.7.3
@@ -3308,7 +3356,7 @@ snapshots:
3308
3356
  '@types/estree': 1.0.9
3309
3357
  ajv: 6.15.0
3310
3358
  cross-spawn: 7.0.6
3311
- debug: 4.4.3
3359
+ debug: 4.4.3(supports-color@10.2.2)
3312
3360
  escape-string-regexp: 4.0.0
3313
3361
  eslint-scope: 9.1.2
3314
3362
  eslint-visitor-keys: 5.0.1
@@ -3413,17 +3461,17 @@ snapshots:
3413
3461
  dependencies:
3414
3462
  whatwg-encoding: 3.1.1
3415
3463
 
3416
- http-proxy-agent@7.0.2:
3464
+ http-proxy-agent@7.0.2(supports-color@10.2.2):
3417
3465
  dependencies:
3418
3466
  agent-base: 7.1.4
3419
- debug: 4.4.3
3467
+ debug: 4.4.3(supports-color@10.2.2)
3420
3468
  transitivePeerDependencies:
3421
3469
  - supports-color
3422
3470
 
3423
- https-proxy-agent@7.0.6:
3471
+ https-proxy-agent@7.0.6(supports-color@10.2.2):
3424
3472
  dependencies:
3425
3473
  agent-base: 7.1.4
3426
- debug: 4.4.3
3474
+ debug: 4.4.3(supports-color@10.2.2)
3427
3475
  transitivePeerDependencies:
3428
3476
  - supports-color
3429
3477
 
@@ -3455,14 +3503,14 @@ snapshots:
3455
3503
 
3456
3504
  js-tokens@4.0.0: {}
3457
3505
 
3458
- jsdom@26.1.0:
3506
+ jsdom@26.1.0(supports-color@10.2.2):
3459
3507
  dependencies:
3460
3508
  cssstyle: 4.6.0
3461
3509
  data-urls: 5.0.0
3462
3510
  decimal.js: 10.6.0
3463
3511
  html-encoding-sniffer: 4.0.0
3464
- http-proxy-agent: 7.0.2
3465
- https-proxy-agent: 7.0.6
3512
+ http-proxy-agent: 7.0.2(supports-color@10.2.2)
3513
+ https-proxy-agent: 7.0.6(supports-color@10.2.2)
3466
3514
  is-potential-custom-element-name: 1.0.1
3467
3515
  nwsapi: 2.2.27
3468
3516
  parse5: 7.3.0
@@ -3635,6 +3683,10 @@ snapshots:
3635
3683
  dependencies:
3636
3684
  '@jridgewell/sourcemap-codec': 1.6.0
3637
3685
 
3686
+ magic-string@1.2.3:
3687
+ dependencies:
3688
+ '@jridgewell/sourcemap-codec': 1.6.0
3689
+
3638
3690
  miniflare@5.20260903.0-alpha:
3639
3691
  dependencies:
3640
3692
  '@cspotcode/source-map-support': 0.8.1
@@ -3866,7 +3918,7 @@ snapshots:
3866
3918
 
3867
3919
  tapable@2.3.3: {}
3868
3920
 
3869
- tinybench@2.9.0: {}
3921
+ tinybench@6.1.4: {}
3870
3922
 
3871
3923
  tinyexec@1.3.0: {}
3872
3924
 
@@ -3875,8 +3927,6 @@ snapshots:
3875
3927
  fdir: 6.5.0(picomatch@4.0.7)
3876
3928
  picomatch: 4.0.7
3877
3929
 
3878
- tinyrainbow@3.1.1: {}
3879
-
3880
3930
  tldts-core@6.1.86: {}
3881
3931
 
3882
3932
  tldts@6.1.86:
@@ -3907,13 +3957,13 @@ snapshots:
3907
3957
  optionalDependencies:
3908
3958
  rxjs: 7.8.2
3909
3959
 
3910
- typescript-eslint@8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3):
3960
+ typescript-eslint@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3):
3911
3961
  dependencies:
3912
- '@typescript-eslint/eslint-plugin': 8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
3913
- '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
3914
- '@typescript-eslint/typescript-estree': 8.69.0(typescript@6.0.3)
3915
- '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0))(typescript@6.0.3)
3916
- eslint: 10.10.0(jiti@2.7.0)
3962
+ '@typescript-eslint/eslint-plugin': 8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
3963
+ '@typescript-eslint/parser': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
3964
+ '@typescript-eslint/typescript-estree': 8.69.0(supports-color@10.2.2)(typescript@6.0.3)
3965
+ '@typescript-eslint/utils': 8.69.0(eslint@10.10.0(jiti@2.7.0)(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
3966
+ eslint: 10.10.0(jiti@2.7.0)(supports-color@10.2.2)
3917
3967
  typescript: 6.0.3
3918
3968
  transitivePeerDependencies:
3919
3969
  - supports-color
@@ -3950,32 +4000,26 @@ snapshots:
3950
4000
  fsevents: 2.3.3
3951
4001
  jiti: 2.7.0
3952
4002
 
3953
- vitest@4.1.11(@opentelemetry/api@1.9.1)(@types/node@26.4.1)(jsdom@26.1.0)(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0)):
4003
+ vitest@5.0.0(@opentelemetry/api@1.9.1)(@types/node@26.4.1)(jsdom@26.1.0(supports-color@10.2.2))(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0)):
3954
4004
  dependencies:
3955
- '@vitest/expect': 4.1.11
3956
- '@vitest/mocker': 4.1.11(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0))
3957
- '@vitest/pretty-format': 4.1.11
3958
- '@vitest/runner': 4.1.11
3959
- '@vitest/snapshot': 4.1.11
3960
- '@vitest/spy': 4.1.11
3961
- '@vitest/utils': 4.1.11
4005
+ '@types/chai': 5.2.3
4006
+ '@vitest/mocker': 5.0.0(vite@8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0))
4007
+ chai: 6.2.2
3962
4008
  es-module-lexer: 2.3.2
3963
4009
  expect-type: 1.4.0
3964
- magic-string: 0.30.21
4010
+ magic-string: 1.2.3
3965
4011
  obug: 2.1.4
3966
- pathe: 2.0.3
3967
4012
  picomatch: 4.0.7
3968
4013
  std-env: 4.2.0
3969
- tinybench: 2.9.0
4014
+ tinybench: 6.1.4
3970
4015
  tinyexec: 1.3.0
3971
4016
  tinyglobby: 0.2.17
3972
- tinyrainbow: 3.1.1
3973
4017
  vite: 8.2.2(@types/node@26.4.1)(esbuild@0.28.1)(jiti@2.7.0)
3974
4018
  why-is-node-running: 2.3.0
3975
4019
  optionalDependencies:
3976
4020
  '@opentelemetry/api': 1.9.1
3977
4021
  '@types/node': 26.4.1
3978
- jsdom: 26.1.0
4022
+ jsdom: 26.1.0(supports-color@10.2.2)
3979
4023
  transitivePeerDependencies:
3980
4024
  - msw
3981
4025
 
@@ -0,0 +1,23 @@
1
+ import assert from 'node:assert/strict';
2
+ import { appendFile, mkdtemp, rm, writeFile } from 'node:fs/promises';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import test from 'node:test';
6
+ import { readEvents } from './dev-fixtures.mjs';
7
+
8
+ test('event polling waits for a complete trailing record', async (t) => {
9
+ const directory = await mkdtemp(join(tmpdir(), 'spatius-events-'));
10
+ t.after(() => rm(directory, { recursive: true, force: true }));
11
+ const path = join(directory, 'events.jsonl');
12
+ await writeFile(path, '{"type":"ready"}\n{"type":"reg');
13
+ assert.deepEqual(await readEvents(path), [{ type: 'ready' }]);
14
+ await appendFile(path, 'istered"}\n');
15
+ assert.deepEqual(await readEvents(path), [
16
+ { type: 'ready' },
17
+ { type: 'registered' },
18
+ ]);
19
+ await writeFile(path, '{"type":');
20
+ assert.deepEqual(await readEvents(path), []);
21
+ await appendFile(path, 'broken}\n');
22
+ await assert.rejects(readEvents(path), SyntaxError);
23
+ });