@apisurf/wireui 0.1.2

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 (38) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +157 -0
  3. package/bin/wireui.mjs +233 -0
  4. package/dist/nitro.json +17 -0
  5. package/dist/public/assets/collections-CLHcfRfi.js +1 -0
  6. package/dist/public/assets/globals-CZiNFGaK.css +1 -0
  7. package/dist/public/assets/index-D5VFd_3H.js +14 -0
  8. package/dist/public/assets/kv-table-oB5gcq0i.js +2 -0
  9. package/dist/public/assets/query-BKAhHNIi.js +19 -0
  10. package/dist/public/assets/requests._requestId-Bu7E2eoI.js +1 -0
  11. package/dist/public/assets/routes-DDY2CfzA.js +1 -0
  12. package/dist/public/assets/runs._runId-CzwtVjYq.js +1 -0
  13. package/dist/public/assets/scoped-DB8raIWx.js +1 -0
  14. package/dist/public/assets/split-Br1RX2I4.js +1 -0
  15. package/dist/public/favicon.svg +1 -0
  16. package/dist/server/_chunks/ssr-renderer.mjs +26 -0
  17. package/dist/server/_libs/@tanstack/react-router+[...].mjs +15246 -0
  18. package/dist/server/_libs/h3+rou3+srvx.mjs +2086 -0
  19. package/dist/server/_libs/hookable.mjs +41 -0
  20. package/dist/server/_libs/tanstack__history.mjs +369 -0
  21. package/dist/server/_libs/ufo.mjs +64 -0
  22. package/dist/server/_runtime.mjs +35 -0
  23. package/dist/server/_ssr/api-Dw1Zb_PK.mjs +931 -0
  24. package/dist/server/_ssr/collections-CqidTQpw.mjs +495 -0
  25. package/dist/server/_ssr/empty-plugin-adapters-CCuiUfKt.mjs +5 -0
  26. package/dist/server/_ssr/kv-table-DQUkoItO.mjs +458 -0
  27. package/dist/server/_ssr/query-D4so9xiY.mjs +416 -0
  28. package/dist/server/_ssr/requests._requestId-BFukRwqL.mjs +942 -0
  29. package/dist/server/_ssr/router-CPcgc_kh.mjs +3176 -0
  30. package/dist/server/_ssr/routes-DaV9vGHn.mjs +375 -0
  31. package/dist/server/_ssr/runs._runId-Df_LmPHa.mjs +836 -0
  32. package/dist/server/_ssr/scoped-CnQ56K8h.mjs +42 -0
  33. package/dist/server/_ssr/split-DWrMIs7K.mjs +115 -0
  34. package/dist/server/_ssr/ssr.mjs +6827 -0
  35. package/dist/server/_ssr/start-zk_ZfrWl.mjs +4 -0
  36. package/dist/server/_tanstack-start-manifest_v-CARKjHfs.mjs +50 -0
  37. package/dist/server/index.mjs +368 -0
  38. package/package.json +71 -0
@@ -0,0 +1,4 @@
1
+ //#region node_modules/.nitro/vite/services/ssr/assets/start-zk_ZfrWl.js
2
+ var startInstance = void 0;
3
+ //#endregion
4
+ export { startInstance };
@@ -0,0 +1,50 @@
1
+ //#region node_modules/.nitro/vite/services/ssr/assets/_tanstack-start-manifest_v-CARKjHfs.js
2
+ var tsrStartManifest = () => ({ routes: {
3
+ __root__: {
4
+ filePath: "/Users/apisurfer/devas/wire/packages/ui/src/routes/__root.tsx",
5
+ children: [
6
+ "/",
7
+ "/collections",
8
+ "/query",
9
+ "/requests/$requestId",
10
+ "/runs/$runId"
11
+ ],
12
+ preloads: ["/assets/index-D5VFd_3H.js"],
13
+ scripts: [{ attrs: {
14
+ type: "module",
15
+ async: !0,
16
+ src: "/assets/index-D5VFd_3H.js"
17
+ } }]
18
+ },
19
+ "/": {
20
+ filePath: "/Users/apisurfer/devas/wire/packages/ui/src/routes/index.tsx",
21
+ children: void 0,
22
+ preloads: ["/assets/routes-DDY2CfzA.js", "/assets/scoped-DB8raIWx.js"]
23
+ },
24
+ "/collections": {
25
+ filePath: "/Users/apisurfer/devas/wire/packages/ui/src/routes/collections.tsx",
26
+ children: void 0,
27
+ preloads: ["/assets/collections-CLHcfRfi.js", "/assets/scoped-DB8raIWx.js"]
28
+ },
29
+ "/query": {
30
+ filePath: "/Users/apisurfer/devas/wire/packages/ui/src/routes/query.tsx",
31
+ children: void 0,
32
+ preloads: ["/assets/query-BKAhHNIi.js", "/assets/split-Br1RX2I4.js"]
33
+ },
34
+ "/requests/$requestId": {
35
+ filePath: "/Users/apisurfer/devas/wire/packages/ui/src/routes/requests.$requestId.tsx",
36
+ children: void 0,
37
+ preloads: [
38
+ "/assets/requests._requestId-Bu7E2eoI.js",
39
+ "/assets/split-Br1RX2I4.js",
40
+ "/assets/kv-table-oB5gcq0i.js"
41
+ ]
42
+ },
43
+ "/runs/$runId": {
44
+ filePath: "/Users/apisurfer/devas/wire/packages/ui/src/routes/runs.$runId.tsx",
45
+ children: void 0,
46
+ preloads: ["/assets/runs._runId-CzwtVjYq.js", "/assets/kv-table-oB5gcq0i.js"]
47
+ }
48
+ } });
49
+ //#endregion
50
+ export { tsrStartManifest };
@@ -0,0 +1,368 @@
1
+ globalThis.__nitro_main__ = import.meta.url;
2
+ import { H3Core, HTTPError, NodeResponse, composeMiddleware, createMatcherFromFind, defineHandler, defineLazyEventHandler, headers, memoizeRouteRulesMatcher, serve, toEventHandler } from "./_libs/h3+rou3+srvx.mjs";
3
+ import { HookableCore } from "./_libs/hookable.mjs";
4
+ import { decodePath, joinURL, withLeadingSlash, withoutTrailingSlash } from "./_libs/ufo.mjs";
5
+ import { promises } from "node:fs";
6
+ import { fileURLToPath } from "node:url";
7
+ import { dirname, resolve } from "node:path";
8
+ //#region #nitro/virtual/public-assets-data
9
+ var public_assets_data_default = {
10
+ "/favicon.svg": {
11
+ "type": "image/svg+xml",
12
+ "etag": "\"fe-LzIiy4wksvD8tcoPcnPPoZfCAH8\"",
13
+ "mtime": "2026-09-26T22:52:53.826Z",
14
+ "size": 254,
15
+ "path": "../public/favicon.svg"
16
+ },
17
+ "/assets/collections-CLHcfRfi.js": {
18
+ "type": "text/javascript; charset=utf-8",
19
+ "etag": "\"2258-Ss2ahk2B+UktgLypqzeUGj6zswY\"",
20
+ "mtime": "2026-09-26T22:52:53.538Z",
21
+ "size": 8792,
22
+ "path": "../public/assets/collections-CLHcfRfi.js"
23
+ },
24
+ "/assets/globals-CZiNFGaK.css": {
25
+ "type": "text/css; charset=utf-8",
26
+ "etag": "\"8775-jnUzYC3p99/GA0iN6lm9XR5w04o\"",
27
+ "mtime": "2026-09-26T22:52:53.539Z",
28
+ "size": 34677,
29
+ "path": "../public/assets/globals-CZiNFGaK.css"
30
+ },
31
+ "/assets/kv-table-oB5gcq0i.js": {
32
+ "type": "text/javascript; charset=utf-8",
33
+ "etag": "\"1ead-OgqkfVG4ldBmM83V96z3LYsoHIY\"",
34
+ "mtime": "2026-09-26T22:52:53.538Z",
35
+ "size": 7853,
36
+ "path": "../public/assets/kv-table-oB5gcq0i.js"
37
+ },
38
+ "/assets/query-BKAhHNIi.js": {
39
+ "type": "text/javascript; charset=utf-8",
40
+ "etag": "\"1bf2-0zmv0ovpl4LaX2PG2Fdd/wFX4Uc\"",
41
+ "mtime": "2026-09-26T22:52:53.538Z",
42
+ "size": 7154,
43
+ "path": "../public/assets/query-BKAhHNIi.js"
44
+ },
45
+ "/assets/requests._requestId-Bu7E2eoI.js": {
46
+ "type": "text/javascript; charset=utf-8",
47
+ "etag": "\"3bc3-+67BuBGRHuRlZC72HcRwEntpmRQ\"",
48
+ "mtime": "2026-09-26T22:52:53.538Z",
49
+ "size": 15299,
50
+ "path": "../public/assets/requests._requestId-Bu7E2eoI.js"
51
+ },
52
+ "/assets/routes-DDY2CfzA.js": {
53
+ "type": "text/javascript; charset=utf-8",
54
+ "etag": "\"1b1b-JXbCO7FenzXZv1++q4YKyMP3j+M\"",
55
+ "mtime": "2026-09-26T22:52:53.539Z",
56
+ "size": 6939,
57
+ "path": "../public/assets/routes-DDY2CfzA.js"
58
+ },
59
+ "/assets/runs._runId-CzwtVjYq.js": {
60
+ "type": "text/javascript; charset=utf-8",
61
+ "etag": "\"391d-/LoHuq1JB+JdlDZHrBCZsVr7VBQ\"",
62
+ "mtime": "2026-09-26T22:52:53.539Z",
63
+ "size": 14621,
64
+ "path": "../public/assets/runs._runId-CzwtVjYq.js"
65
+ },
66
+ "/assets/scoped-DB8raIWx.js": {
67
+ "type": "text/javascript; charset=utf-8",
68
+ "etag": "\"1a9-6LhyimjvMhoc68Mw1/gcfBeRUsY\"",
69
+ "mtime": "2026-09-26T22:52:53.539Z",
70
+ "size": 425,
71
+ "path": "../public/assets/scoped-DB8raIWx.js"
72
+ },
73
+ "/assets/index-D5VFd_3H.js": {
74
+ "type": "text/javascript; charset=utf-8",
75
+ "etag": "\"63151-VvUUX0vgP9RNbdvp1DdDOwX80lI\"",
76
+ "mtime": "2026-09-26T22:52:53.538Z",
77
+ "size": 405841,
78
+ "path": "../public/assets/index-D5VFd_3H.js"
79
+ },
80
+ "/assets/split-Br1RX2I4.js": {
81
+ "type": "text/javascript; charset=utf-8",
82
+ "etag": "\"685-HWlUJsMKmTuCA1U6i8LGHbLl7vE\"",
83
+ "mtime": "2026-09-26T22:52:53.539Z",
84
+ "size": 1669,
85
+ "path": "../public/assets/split-Br1RX2I4.js"
86
+ }
87
+ };
88
+ //#endregion
89
+ //#region #nitro/virtual/public-assets-node
90
+ function readAsset(id) {
91
+ const serverDir = dirname(fileURLToPath(globalThis.__nitro_main__));
92
+ return promises.readFile(resolve(serverDir, public_assets_data_default[id].path));
93
+ }
94
+ //#endregion
95
+ //#region #nitro/virtual/public-assets
96
+ var publicAssetBases = {};
97
+ function isPublicAssetURL(id = "") {
98
+ if (public_assets_data_default[id]) return true;
99
+ for (const base in publicAssetBases) if (id.startsWith(base)) return true;
100
+ return false;
101
+ }
102
+ function getAsset(id) {
103
+ return public_assets_data_default[id];
104
+ }
105
+ //#endregion
106
+ //#region ../../node_modules/.pnpm/nitro@3.0.260903-beta/node_modules/nitro/dist/runtime/internal/static.mjs
107
+ var METHODS = /* @__PURE__ */ new Set(["HEAD", "GET"]);
108
+ var EncodingMap = {
109
+ gzip: ".gz",
110
+ br: ".br",
111
+ zstd: ".zst"
112
+ };
113
+ var static_default = defineHandler((event) => {
114
+ if (event.req.method && !METHODS.has(event.req.method)) return;
115
+ let id = decodePath(withLeadingSlash(withoutTrailingSlash(event.url.pathname)));
116
+ let asset;
117
+ const encodings = [...(event.req.headers.get("accept-encoding") || "").split(",").map((e) => EncodingMap[e.trim()]).filter(Boolean).sort(), ""];
118
+ for (const encoding of encodings) for (const _id of [id + encoding, joinURL(id, "index.html" + encoding)]) {
119
+ const _asset = getAsset(_id);
120
+ if (_asset) {
121
+ asset = _asset;
122
+ id = _id;
123
+ break;
124
+ }
125
+ }
126
+ if (!asset) {
127
+ if (isPublicAssetURL(id)) {
128
+ event.res.headers.delete("Cache-Control");
129
+ throw new HTTPError({ status: 404 });
130
+ }
131
+ return;
132
+ }
133
+ if (encodings.length > 1) event.res.headers.append("Vary", "Accept-Encoding");
134
+ if (event.req.headers.get("if-none-match") === asset.etag) {
135
+ event.res.status = 304;
136
+ event.res.statusText = "Not Modified";
137
+ return "";
138
+ }
139
+ const ifModifiedSinceH = event.req.headers.get("if-modified-since");
140
+ const mtimeDate = new Date(asset.mtime);
141
+ if (ifModifiedSinceH && asset.mtime && new Date(ifModifiedSinceH) >= mtimeDate) {
142
+ event.res.status = 304;
143
+ event.res.statusText = "Not Modified";
144
+ return "";
145
+ }
146
+ if (asset.type) event.res.headers.set("Content-Type", asset.type);
147
+ if (asset.etag && !event.res.headers.has("ETag")) event.res.headers.set("ETag", asset.etag);
148
+ if (asset.mtime && !event.res.headers.has("Last-Modified")) event.res.headers.set("Last-Modified", mtimeDate.toUTCString());
149
+ if (asset.encoding && !event.res.headers.has("Content-Encoding")) event.res.headers.set("Content-Encoding", asset.encoding);
150
+ if (asset.size > 0 && !event.res.headers.has("Content-Length")) event.res.headers.set("Content-Length", asset.size.toString());
151
+ return readAsset(id);
152
+ });
153
+ //#endregion
154
+ //#region #nitro/virtual/routing
155
+ var findRouteRules = /* @__PURE__ */ (() => {
156
+ const $0 = {
157
+ route: "/assets/**",
158
+ rank: 0,
159
+ rules: [{
160
+ name: "headers",
161
+ route: "/assets/**",
162
+ handler: headers,
163
+ options: { "cache-control": "public, max-age=31536000, immutable" }
164
+ }]
165
+ };
166
+ return (m, p) => {
167
+ let r = [];
168
+ if (p.charCodeAt(p.length - 1) === 47) p = p.slice(0, -1);
169
+ let s = p.split("/");
170
+ if (s.length > 1 && s[s.length - 1] === "") {
171
+ s.pop();
172
+ p = p.slice(0, -1);
173
+ }
174
+ if (s.length > 1) {
175
+ if (s[1] === "assets") r.push({
176
+ data: $0,
177
+ params: { "_": p.slice(8) }
178
+ });
179
+ }
180
+ return r.reverse();
181
+ };
182
+ })();
183
+ var _lazy_9b48b7c0ec3c599f = defineLazyEventHandler(() => import("./_chunks/ssr-renderer.mjs"));
184
+ var findRoute = /* @__PURE__ */ (() => {
185
+ const data = {
186
+ route: "/**",
187
+ handler: _lazy_9b48b7c0ec3c599f
188
+ };
189
+ return ((_m, p) => {
190
+ return {
191
+ data,
192
+ params: { "_": p.slice(1) }
193
+ };
194
+ });
195
+ })();
196
+ var globalMiddleware = [toEventHandler(static_default)].filter(Boolean);
197
+ //#endregion
198
+ //#region ../../node_modules/.pnpm/nitro@3.0.260903-beta/node_modules/nitro/dist/runtime/internal/error/prod.mjs
199
+ var errorHandler = (error, event) => {
200
+ const res = defaultHandler(error, event);
201
+ return new NodeResponse(typeof res.body === "string" ? res.body : JSON.stringify(res.body, null, 2), res);
202
+ };
203
+ function defaultHandler(error, event) {
204
+ const unhandled = error.unhandled ?? !HTTPError.isError(error);
205
+ const { status = 500, statusText = "" } = unhandled ? {} : error;
206
+ if (status === 404) {
207
+ const url = event.url || new URL(event.req.url);
208
+ const baseURL = "/";
209
+ if (/^\/[^/]/.test(baseURL) && !url.pathname.startsWith(baseURL)) return {
210
+ status: 302,
211
+ headers: new Headers({ location: `${baseURL}${url.pathname.slice(1)}${url.search}` })
212
+ };
213
+ }
214
+ const headers = new Headers(unhandled ? {} : error.headers);
215
+ headers.set("content-type", "application/json; charset=utf-8");
216
+ return {
217
+ status,
218
+ statusText,
219
+ headers,
220
+ body: {
221
+ error: true,
222
+ ...unhandled ? {
223
+ status,
224
+ unhandled: true
225
+ } : typeof error.toJSON === "function" ? error.toJSON() : {
226
+ status,
227
+ statusText,
228
+ message: error.message
229
+ }
230
+ }
231
+ };
232
+ }
233
+ //#endregion
234
+ //#region #nitro/virtual/error-handler
235
+ var errorHandlers = [errorHandler];
236
+ async function error_handler_default(error, event) {
237
+ for (const handler of errorHandlers) try {
238
+ const response = await handler(error, event, { defaultHandler });
239
+ if (response) return response;
240
+ } catch (error) {
241
+ console.error(error);
242
+ }
243
+ }
244
+ //#endregion
245
+ //#region #nitro/virtual/app
246
+ function createNitroApp() {
247
+ const captureError = (error, errorCtx) => {
248
+ if (errorCtx?.event) {
249
+ const errors = errorCtx.event.req.context?.nitro?.errors;
250
+ if (errors) errors.push({
251
+ error,
252
+ context: errorCtx
253
+ });
254
+ }
255
+ };
256
+ const h3App = createH3App({ onError(error, event) {
257
+ return error_handler_default(error, event);
258
+ } });
259
+ let appHandler = (req) => {
260
+ req.context ||= {};
261
+ req.context.nitro = req.context.nitro || { errors: [] };
262
+ return h3App.fetch(req);
263
+ };
264
+ return {
265
+ fetch: appHandler,
266
+ h3: h3App,
267
+ hooks: void 0,
268
+ captureError
269
+ };
270
+ }
271
+ function createH3App(config) {
272
+ const h3App = new H3Core(config);
273
+ h3App["~findRoute"] = (event) => {
274
+ event.context.routeRules = getRouteRules(event.req.method, event.url.pathname).routeRules;
275
+ return findRoute(event.req.method, event.url.pathname);
276
+ };
277
+ h3App["~middleware"].push(createRouteRulesMiddleware());
278
+ h3App["~middleware"].push(...globalMiddleware);
279
+ return h3App;
280
+ }
281
+ //#endregion
282
+ //#region ../../node_modules/.pnpm/nitro@3.0.260903-beta/node_modules/nitro/dist/runtime/internal/app.mjs
283
+ var APP_ID = "default";
284
+ function useNitroApp() {
285
+ let instance = useNitroApp._instance;
286
+ if (instance) return instance;
287
+ instance = useNitroApp._instance = createNitroApp();
288
+ globalThis.__nitro__ = globalThis.__nitro__ || {};
289
+ globalThis.__nitro__[APP_ID] = instance;
290
+ return instance;
291
+ }
292
+ function useNitroHooks() {
293
+ const nitroApp = useNitroApp();
294
+ const hooks = nitroApp.hooks;
295
+ if (hooks) return hooks;
296
+ return nitroApp.hooks = new HookableCore();
297
+ }
298
+ var _matchRouteRules;
299
+ function getRouteRules(method, pathname) {
300
+ return (_matchRouteRules ??= memoizeRouteRulesMatcher(createMatcherFromFind(findRouteRules)))(method, pathname);
301
+ }
302
+ function createRouteRulesMiddleware() {
303
+ const composed = /* @__PURE__ */ new WeakMap();
304
+ const middleware = (event, next) => {
305
+ const ruleMiddleware = getRouteRules(event.req.method, event.url.pathname).routeRuleMiddleware;
306
+ if (ruleMiddleware.length === 0) return next();
307
+ let chain = composed.get(ruleMiddleware);
308
+ if (!chain) {
309
+ chain = composeMiddleware(ruleMiddleware);
310
+ composed.set(ruleMiddleware, chain);
311
+ }
312
+ return chain(event, next);
313
+ };
314
+ return markUntraced(middleware);
315
+ }
316
+ function markUntraced(middleware) {
317
+ middleware.__traced__ = true;
318
+ return middleware;
319
+ }
320
+ //#endregion
321
+ //#region ../../node_modules/.pnpm/nitro@3.0.260903-beta/node_modules/nitro/dist/runtime/internal/error/hooks.mjs
322
+ function _captureError(error, type) {
323
+ console.error(`[${type}]`, error);
324
+ useNitroApp().captureError?.(error, { tags: [type] });
325
+ }
326
+ function trapUnhandledErrors() {
327
+ process.on("unhandledRejection", (error) => _captureError(error, "unhandledRejection"));
328
+ process.on("uncaughtException", (error) => _captureError(error, "uncaughtException"));
329
+ }
330
+ //#endregion
331
+ //#region #nitro/virtual/tracing
332
+ var tracingSrvxPlugins = [];
333
+ //#endregion
334
+ //#region ../../node_modules/.pnpm/nitro@3.0.260903-beta/node_modules/nitro/dist/runtime/internal/shutdown.mjs
335
+ function setupCloseHooks(server) {
336
+ const closeServer = server.close.bind(server);
337
+ let closeHooks;
338
+ server.close = (closeActiveConnections) => closeServer(closeActiveConnections).finally(() => closeHooks ??= callCloseHooks());
339
+ }
340
+ async function callCloseHooks() {
341
+ try {
342
+ await useNitroHooks().callHook("close");
343
+ } catch (error) {
344
+ console.error("[nitro] Error while calling `close` hooks:", error);
345
+ }
346
+ }
347
+ //#endregion
348
+ //#region ../../node_modules/.pnpm/nitro@3.0.260903-beta/node_modules/nitro/dist/presets/node/runtime/node-server.mjs
349
+ var _parsedPort = Number.parseInt(process.env.NITRO_PORT ?? process.env.PORT ?? "");
350
+ var port = Number.isNaN(_parsedPort) ? 3e3 : _parsedPort;
351
+ var host = process.env.NITRO_HOST || process.env.HOST;
352
+ var cert = process.env.NITRO_SSL_CERT;
353
+ var key = process.env.NITRO_SSL_KEY;
354
+ var nitroApp = useNitroApp();
355
+ setupCloseHooks(serve({
356
+ port,
357
+ hostname: host,
358
+ tls: cert && key ? {
359
+ cert,
360
+ key
361
+ } : void 0,
362
+ fetch: nitroApp.fetch,
363
+ plugins: [...tracingSrvxPlugins]
364
+ }));
365
+ trapUnhandledErrors();
366
+ var node_server_default = {};
367
+ //#endregion
368
+ export { node_server_default as default };
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@apisurf/wireui",
3
+ "version": "0.1.2",
4
+ "description": "wireui — browse a recorded wire.sqlite in a local, read-only web UI: collections, runs, requests, payloads, timings, checks.",
5
+ "keywords": [
6
+ "debugging",
7
+ "http",
8
+ "observability",
9
+ "sqlite",
10
+ "sse",
11
+ "viewer",
12
+ "websocket",
13
+ "wire"
14
+ ],
15
+ "homepage": "https://github.com/apisurf/wire/tree/main/packages/ui#readme",
16
+ "bugs": {
17
+ "url": "https://github.com/apisurf/wire/issues"
18
+ },
19
+ "license": "ISC",
20
+ "author": "Luka Vidakovic (https://github.com/apisurfer)",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/apisurf/wire.git",
24
+ "directory": "packages/ui"
25
+ },
26
+ "bin": {
27
+ "wireui": "./bin/wireui.mjs"
28
+ },
29
+ "files": [
30
+ "bin",
31
+ "dist"
32
+ ],
33
+ "type": "module",
34
+ "publishConfig": {
35
+ "access": "public",
36
+ "registry": "https://registry.npmjs.org/"
37
+ },
38
+ "dependencies": {
39
+ "better-sqlite3": "11.7.0"
40
+ },
41
+ "devDependencies": {
42
+ "@pandacss/dev": "1.12.1",
43
+ "@tanstack/react-router": "1.170.39",
44
+ "@tanstack/react-start": "1.168.58",
45
+ "@types/better-sqlite3": "7.6.12",
46
+ "@types/node": "22.14.0",
47
+ "@types/react": "19.3.0",
48
+ "@types/react-dom": "19.3.0",
49
+ "@typescript/native-preview": "7.0.0-dev.20260527.2",
50
+ "@vitejs/plugin-react": "6.1.1",
51
+ "nitro": "3.0.260903-beta",
52
+ "postcss": "8.5.28",
53
+ "react": "19.3.0",
54
+ "react-dom": "19.3.0",
55
+ "typescript": "5.6.3",
56
+ "vite": "8.3.1",
57
+ "vitest": "4.1.8",
58
+ "@apisurf/wire-db": "0.1.2"
59
+ },
60
+ "engines": {
61
+ "node": ">=20.12"
62
+ },
63
+ "scripts": {
64
+ "dev": "vite dev",
65
+ "build": "panda codegen --silent && vite build",
66
+ "start": "node ./bin/wireui.mjs",
67
+ "typecheck": "panda codegen --silent && tsgo --noEmit",
68
+ "test": "vitest run",
69
+ "lint": "oxlint --deny-warnings"
70
+ }
71
+ }