@fuzdev/fuz_app 0.124.0 → 0.125.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/dist/actions/CLAUDE.md +1 -1
- package/dist/actions/register_action_ws.js +1 -1
- package/dist/actions/transports_ws_backend.d.ts +1 -1
- package/dist/actions/transports_ws_backend.js +1 -1
- package/dist/server/app_server.d.ts +7 -3
- package/dist/server/app_server.d.ts.map +1 -1
- package/dist/server/static.d.ts +1 -1
- package/dist/testing/CLAUDE.md +2 -2
- package/dist/testing/cross_backend/testing_server_bun.js +6 -6
- package/dist/testing/cross_backend/testing_server_core.d.ts +1 -1
- package/dist/testing/cross_backend/testing_server_deno.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_deno.js +4 -3
- package/dist/testing/cross_backend/testing_server_node.js +1 -1
- package/dist/testing/cross_backend/ts_spine_backend_config.d.ts +2 -1
- package/dist/testing/cross_backend/ts_spine_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/ts_spine_backend_config.js +2 -1
- package/package.json +15 -5
package/dist/actions/CLAUDE.md
CHANGED
|
@@ -408,7 +408,7 @@ sets `api_token_id`, daemon-token sets both null).
|
|
|
408
408
|
The id is the connection's only handle — `register_pending` / `add_connection`
|
|
409
409
|
return it and `admit` / `remove_connection` / `is_registered` take it. There is
|
|
410
410
|
no socket → id lookup: a runtime adapter may hand each socket event its own
|
|
411
|
-
`WSContext` (
|
|
411
|
+
`WSContext` (`@hono/bun` builds one per event), so the object a close event
|
|
412
412
|
carries can't identify the connection. `register_action_ws` captures the id on
|
|
413
413
|
open and removes by it.
|
|
414
414
|
|
|
@@ -772,7 +772,7 @@ export const register_action_ws = (options) => {
|
|
|
772
772
|
stop_heartbeat_timer();
|
|
773
773
|
socket_abort_controller.abort();
|
|
774
774
|
// Removed by the id captured on open — an adapter may hand each
|
|
775
|
-
// event its own `WSContext` (
|
|
775
|
+
// event its own `WSContext` (`@hono/bun` does), so the one this
|
|
776
776
|
// event carries can't identify the connection. And removed before
|
|
777
777
|
// the hook is awaited: the socket is gone, so a slow hook must not
|
|
778
778
|
// keep a dead entry that broadcasts still target and the
|
|
@@ -207,7 +207,7 @@ export declare class BackendWebsocketTransport implements FilterableBroadcastTra
|
|
|
207
207
|
* no-op for an unknown id.
|
|
208
208
|
*
|
|
209
209
|
* Keyed by id rather than by `WSContext` because a runtime adapter may hand
|
|
210
|
-
* each socket event its own context object (
|
|
210
|
+
* each socket event its own context object (`@hono/bun` does), so the one a
|
|
211
211
|
* close event carries can't identify the connection.
|
|
212
212
|
*
|
|
213
213
|
* Removal only: the socket is not closed and the registered
|
|
@@ -204,7 +204,7 @@ export class BackendWebsocketTransport {
|
|
|
204
204
|
* no-op for an unknown id.
|
|
205
205
|
*
|
|
206
206
|
* Keyed by id rather than by `WSContext` because a runtime adapter may hand
|
|
207
|
-
* each socket event its own context object (
|
|
207
|
+
* each socket event its own context object (`@hono/bun` does), so the one a
|
|
208
208
|
* close event carries can't identify the connection.
|
|
209
209
|
*
|
|
210
210
|
* Removal only: the socket is not closed and the registered
|
|
@@ -244,9 +244,13 @@ export interface AppServerOptions {
|
|
|
244
244
|
* adapter helper services every `WsEndpointSpec` mounted from
|
|
245
245
|
* `ws_endpoints` — one adapter per app.
|
|
246
246
|
*
|
|
247
|
-
* For
|
|
248
|
-
*
|
|
249
|
-
*
|
|
247
|
+
* For Deno or Bun, `import {upgradeWebSocket} from '@hono/deno'` (or
|
|
248
|
+
* `'@hono/bun'`). Node's `@hono/node-ws` has no module-level helper -
|
|
249
|
+
* `createNodeWebSocket({app})` needs the app this function builds - so
|
|
250
|
+
* on Node omit this and `ws_endpoints`, then mount on the returned
|
|
251
|
+
* `app` with `register_ws_endpoint` and call `injectWebSocket(server)`
|
|
252
|
+
* after `serve()`. Test harnesses use `create_stub_upgrade` from
|
|
253
|
+
* `$lib/testing/ws_round_trip.ts`.
|
|
250
254
|
*/
|
|
251
255
|
upgradeWebSocket?: UpgradeWebSocket;
|
|
252
256
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_server.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/server/app_server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app_server.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/server/app_server.ts"],"names":[],"mappings":"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"}
|
package/dist/server/static.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export interface ServeStaticOptions {
|
|
|
20
20
|
/**
|
|
21
21
|
* Factory function that creates a static file serving middleware.
|
|
22
22
|
*
|
|
23
|
-
* Matches the signature of `serveStatic` from
|
|
23
|
+
* Matches the signature of `serveStatic` from `@hono/deno` and `@hono/node-server/serve-static`.
|
|
24
24
|
*/
|
|
25
25
|
export type ServeStaticFactory = (options: ServeStaticOptions) => MiddlewareHandler;
|
|
26
26
|
/**
|
package/dist/testing/CLAUDE.md
CHANGED
|
@@ -1744,8 +1744,8 @@ re-roll the serve / daemon-info / WS-attach / drain boilerplate:
|
|
|
1744
1744
|
|
|
1745
1745
|
- `testing/cross_backend/testing_server_core.ts` — `start_testing_server({adapter, daemon_name, host, port, app_version?, build_app})`. Owns the runtime-neutral orchestration: open-host refusal, stale-daemon check, daemon-info write, `serve`, post-serve WS attach, graceful drain. Domain-free — the app is the caller's `build_app(): Promise<BuiltTestingApp>` seam (`{app, close, mount_websocket?}`). `mount_websocket(upgrade)` is invoked after the app exists + the adapter prepared WS (the mount-after-app order Node's `@hono/node-ws` forces — `create_app_server`'s `ws_endpoints` auto-mount can't be used on Node). Exports the `TestingServerAdapter` / `ServeHandle` / `PreparedWebsocket` interfaces.
|
|
1746
1746
|
- `testing/cross_backend/testing_server_node.ts` — `create_node_testing_adapter()` (`@hono/node-server` + `@hono/node-ws`). Optional peer deps (like `ws`); only test binaries import them.
|
|
1747
|
-
- `testing/cross_backend/testing_server_deno.ts` — `create_deno_testing_adapter()` (`Deno.serve` +
|
|
1748
|
-
- `testing/cross_backend/testing_server_bun.ts` — `create_bun_testing_adapter()` (`Bun.serve` +
|
|
1747
|
+
- `testing/cross_backend/testing_server_deno.ts` — `create_deno_testing_adapter()` (`Deno.serve` + `@hono/deno`, an optional peer dep; `Deno` declared locally so it typechecks under the Node toolchain). Spawn the entry with `--sloppy-imports` (Deno doesn't do `.js`→`.ts`; Gro's loader does, so the Node path needs no flag).
|
|
1748
|
+
- `testing/cross_backend/testing_server_bun.ts` — `create_bun_testing_adapter()` (`Bun.serve` + `@hono/bun`'s module-level `getConnInfo`, `upgradeWebSocket`, and `websocket`; `Bun.serve` declared locally so it typechecks under the Node toolchain). Needs the optional `@hono/bun` peer dep (the counterpart to Node's `@hono/node-server` + `@hono/node-ws`; `Bun.serve` is built in), and Bun resolves `.js`→`.ts` natively (no flag, unlike Deno). Reuses `create_node_runtime` (Bun implements the `node:fs`/`node:process` surface). WS is module-level + stateless (like Deno) — the `websocket` handler is threaded into `serve`, where `Bun.serve` wants it, so no post-serve attach.
|
|
1749
1749
|
- `testing/cross_backend/default_spine_surface.ts` — the canonical no-domain spine surface (account/admin/audit/signup + bootstrap): `spine_session_options`, `spine_roles`, `create_spine_route_specs`, `spine_rpc_endpoints`, `create_spine_surface_spec`. This is the **declared** surface — the `create_standard_rpc_actions` bundle the spec-derived suites auto-enumerate. `$lib`-free (it's reached by the spawned binary under Gro's loader, which doesn't resolve `$lib`), so keep it on relative imports. Shared by the spine_stub cross test, the TS cross tests, and the binary.
|
|
1750
1750
|
- `testing/cross_backend/full_spine_mount.ts` — `build_full_spine_rpc_actions(deps, options)` / `full_spine_rpc_endpoints(ctx, options)` — the **full** live RPC mount: the declared bundle **plus** the off-declared-surface families the binary live-mounts (`_testing_*` backdoors, the cell verb set, the opt-in `actor_lookup` / `actor_search` resolvers). Single-sources what was an inline assembly in `testing_spine_server.ts`, so the binary and the `spine_method_coverage` reconciliation test build the same list. Also `$lib`-free.
|
|
1751
1751
|
- `testing/cross_backend/ts_spine_backend_config.ts` — `ts_spine_node_backend_config()` / `ts_spine_deno_backend_config()` / `ts_spine_bun_backend_config()` presets (in-memory PGlite, no external infra), the TS analog of `rust_spine_stub_backend_config()`.
|
|
@@ -2,16 +2,16 @@ import '../assert_dev_env.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Bun runtime adapter for spawnable cross-process test server binaries.
|
|
4
4
|
*
|
|
5
|
-
* Binds `Bun.serve` and
|
|
5
|
+
* Binds `Bun.serve` and `@hono/bun`'s module-level `upgradeWebSocket` +
|
|
6
6
|
* `websocket` handler. The shared `testing/cross_backend/testing_server_core.ts` owns the rest.
|
|
7
7
|
* Third sibling to `testing/cross_backend/testing_server_node.ts` / `testing/cross_backend/testing_server_deno.ts` —
|
|
8
8
|
* together the three isolate the JS-runtime axis (Node V8 / Deno V8 / Bun
|
|
9
9
|
* JSC) on identical TS surfaces, and the Rust spine binary covers the
|
|
10
10
|
* cross-language axis.
|
|
11
11
|
*
|
|
12
|
-
* Needs
|
|
13
|
-
* `Bun.serve` is built in
|
|
14
|
-
*
|
|
12
|
+
* Needs the optional `@hono/bun` peer dep (the Bun counterpart to Node's
|
|
13
|
+
* `@hono/node-server` + `@hono/node-ws`); `Bun.serve` is built in.
|
|
14
|
+
* `RuntimeDeps` reuse `create_node_runtime` — Bun
|
|
15
15
|
* implements the `node:fs` / `node:process` surface `RuntimeDeps` +
|
|
16
16
|
* `cli/daemon` touch.
|
|
17
17
|
*
|
|
@@ -22,7 +22,7 @@ import '../assert_dev_env.js';
|
|
|
22
22
|
* @module
|
|
23
23
|
*/
|
|
24
24
|
import process from 'node:process';
|
|
25
|
-
import { getConnInfo, upgradeWebSocket, websocket } from 'hono/bun';
|
|
25
|
+
import { getConnInfo, upgradeWebSocket, websocket } from '@hono/bun';
|
|
26
26
|
import { create_node_runtime } from '../../runtime/node.js';
|
|
27
27
|
/** Build the Bun {@link TestingServerAdapter}. */
|
|
28
28
|
export const create_bun_testing_adapter = () => ({
|
|
@@ -44,7 +44,7 @@ export const create_bun_testing_adapter = () => ({
|
|
|
44
44
|
});
|
|
45
45
|
const handle = {
|
|
46
46
|
// Bun bug (1.3.14): after a *server-initiated* WebSocket close
|
|
47
|
-
// (`ServerWebSocket.close()` /
|
|
47
|
+
// (`ServerWebSocket.close()` / `@hono/bun`'s `WSContext.close()`),
|
|
48
48
|
// `server.stop()` never resolves — Bun doesn't decrement its
|
|
49
49
|
// active-connection count for a server-closed socket, so the stop
|
|
50
50
|
// waits forever for a connection it already closed. The trigger is
|
|
@@ -11,7 +11,7 @@ import '../assert_dev_env.js';
|
|
|
11
11
|
* primitives (HTTP serve, WS upgrade construction, signals, pid, exit) to a
|
|
12
12
|
* {@link TestingServerAdapter}. The two shipped adapters are
|
|
13
13
|
* `testing/cross_backend/testing_server_node.ts` (`@hono/node-server` + `@hono/node-ws`) and
|
|
14
|
-
* `testing/cross_backend/testing_server_deno.ts` (`Deno.serve` +
|
|
14
|
+
* `testing/cross_backend/testing_server_deno.ts` (`Deno.serve` + `@hono/deno`).
|
|
15
15
|
*
|
|
16
16
|
* The app itself — routes, RPC, DB, `_testing_reset`, optional WS mount —
|
|
17
17
|
* is the caller's {@link StartTestingServerOptions.build_app} seam, so this
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_server_deno.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_deno.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing_server_deno.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_deno.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAsB9B,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAelF,mDAAmD;AACnD,eAAO,MAAM,2BAA2B,QAAO,oBAkB7C,CAAC"}
|
|
@@ -2,8 +2,9 @@ import '../assert_dev_env.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Deno runtime adapter for spawnable cross-process test server binaries.
|
|
4
4
|
*
|
|
5
|
-
* Binds `Deno.serve` and
|
|
6
|
-
*
|
|
5
|
+
* Binds `Deno.serve` and `@hono/deno`'s module-level `upgradeWebSocket` (the
|
|
6
|
+
* optional `@hono/deno` peer dep). The shared
|
|
7
|
+
* `testing/cross_backend/testing_server_core.ts` owns the rest. Counterpart to
|
|
7
8
|
* `testing/cross_backend/testing_server_node.ts` — together they isolate the JS-runtime axis (Deno
|
|
8
9
|
* vs Node V8) on identical TS surfaces, and the Rust spine binary covers the
|
|
9
10
|
* cross-language axis.
|
|
@@ -14,7 +15,7 @@ import '../assert_dev_env.js';
|
|
|
14
15
|
*
|
|
15
16
|
* @module
|
|
16
17
|
*/
|
|
17
|
-
import { upgradeWebSocket } from 'hono/deno';
|
|
18
|
+
import { upgradeWebSocket } from '@hono/deno';
|
|
18
19
|
import { create_deno_runtime } from '../../runtime/deno.js';
|
|
19
20
|
/** Build the Deno {@link TestingServerAdapter}. */
|
|
20
21
|
export const create_deno_testing_adapter = () => ({
|
|
@@ -3,7 +3,7 @@ import '../assert_dev_env.js';
|
|
|
3
3
|
* Node runtime adapter for spawnable cross-process test server binaries.
|
|
4
4
|
*
|
|
5
5
|
* Binds `@hono/node-server`'s `serve()` and `@hono/node-ws`'s two-phase
|
|
6
|
-
* `createNodeWebSocket(app)` / `injectWebSocket(server)`. The shared
|
|
6
|
+
* `createNodeWebSocket({app})` / `injectWebSocket(server)`. The shared
|
|
7
7
|
* `testing/cross_backend/testing_server_core.ts` owns the rest. A test binary builds this adapter
|
|
8
8
|
* and hands it to `start_testing_server` alongside its `build_app` seam.
|
|
9
9
|
*
|
|
@@ -57,7 +57,8 @@ export declare const ts_spine_node_backend_config: (options?: TsSpineBackendConf
|
|
|
57
57
|
* `BackendConfig` for the Bun TS spine binary — spawned via `bun run`. Bun
|
|
58
58
|
* resolves the entry's relative `.js`→`.ts` source specifiers natively (no
|
|
59
59
|
* flag needed — unlike Deno's `--sloppy-imports`, and like Gro's loader on
|
|
60
|
-
* the Node path)
|
|
60
|
+
* the Node path). `Bun.serve` is built in; the WS upgrade comes from the
|
|
61
|
+
* optional `@hono/bun` peer dep.
|
|
61
62
|
*/
|
|
62
63
|
export declare const ts_spine_bun_backend_config: (options?: TsSpineBackendConfigOptions) => BackendConfig;
|
|
63
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts_spine_backend_config.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/ts_spine_backend_config.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASzD,8GAA8G;AAC9G,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AA0C3D,6FAA6F;AAC7F,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,gDAAgD;AAChD,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,wDAAwD,CAAC;AAEzF,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,wDAAwD,CAAC;AAEzF,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,uDAAuD,CAAC;AAEvF,MAAM,WAAW,2BAA2B;IAC3C,mFAAmF;IACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAWD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACxC,UAAS,2BAAgC,KACvC,aAmBF,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"ts_spine_backend_config.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/ts_spine_backend_config.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASzD,8GAA8G;AAC9G,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AA0C3D,6FAA6F;AAC7F,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,gDAAgD;AAChD,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,wDAAwD,CAAC;AAEzF,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,wDAAwD,CAAC;AAEzF,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,uDAAuD,CAAC;AAEvF,MAAM,WAAW,2BAA2B;IAC3C,mFAAmF;IACnF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;;;OASG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAWD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACxC,UAAS,2BAAgC,KACvC,aAmBF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GACvC,UAAS,2BAAgC,KACvC,aAmBF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,GACxC,UAAS,2BAAgC,KACvC,aAgCF,CAAC"}
|
|
@@ -89,7 +89,8 @@ export const ts_spine_node_backend_config = (options = {}) => {
|
|
|
89
89
|
* `BackendConfig` for the Bun TS spine binary — spawned via `bun run`. Bun
|
|
90
90
|
* resolves the entry's relative `.js`→`.ts` source specifiers natively (no
|
|
91
91
|
* flag needed — unlike Deno's `--sloppy-imports`, and like Gro's loader on
|
|
92
|
-
* the Node path)
|
|
92
|
+
* the Node path). `Bun.serve` is built in; the WS upgrade comes from the
|
|
93
|
+
* optional `@hono/bun` peer dep.
|
|
93
94
|
*/
|
|
94
95
|
export const ts_spine_bun_backend_config = (options = {}) => {
|
|
95
96
|
const { port = TS_SPINE_BUN_DEFAULT_PORT, database_url, enable_login_rate_limit } = options;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fuzdev/fuz_app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.125.0",
|
|
4
4
|
"description": "fullstack app library",
|
|
5
5
|
"glyph": "🗝",
|
|
6
6
|
"logo": "logo.svg",
|
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
"@fuzdev/blake3-wasm": ">=0.2.0",
|
|
36
36
|
"@fuzdev/fuz_css": ">=0.65.0",
|
|
37
37
|
"@fuzdev/fuz_util": ">=0.70.0",
|
|
38
|
+
"@hono/bun": ">=1",
|
|
39
|
+
"@hono/deno": ">=1",
|
|
38
40
|
"@hono/node-server": ">=1",
|
|
39
41
|
"@hono/node-ws": ">=1",
|
|
40
42
|
"@node-rs/argon2": ">=2",
|
|
@@ -53,6 +55,12 @@
|
|
|
53
55
|
"@fuzdev/fuz_css": {
|
|
54
56
|
"optional": true
|
|
55
57
|
},
|
|
58
|
+
"@hono/bun": {
|
|
59
|
+
"optional": true
|
|
60
|
+
},
|
|
61
|
+
"@hono/deno": {
|
|
62
|
+
"optional": true
|
|
63
|
+
},
|
|
56
64
|
"@hono/node-server": {
|
|
57
65
|
"optional": true
|
|
58
66
|
},
|
|
@@ -79,11 +87,13 @@
|
|
|
79
87
|
"@electric-sql/pglite": "^0.4.5",
|
|
80
88
|
"@fuzdev/blake3-wasm": "^0.2.0",
|
|
81
89
|
"@fuzdev/fuz_code": "^0.50.0",
|
|
82
|
-
"@fuzdev/fuz_css": "^0.65.
|
|
83
|
-
"@fuzdev/fuz_ui": "^0.210.
|
|
90
|
+
"@fuzdev/fuz_css": "^0.65.2",
|
|
91
|
+
"@fuzdev/fuz_ui": "^0.210.2",
|
|
84
92
|
"@fuzdev/fuz_util": "^0.71.0",
|
|
85
93
|
"@fuzdev/gro": "^0.213.0",
|
|
86
94
|
"@fuzdev/mdz": "^0.3.0",
|
|
95
|
+
"@hono/bun": "^1.0.1",
|
|
96
|
+
"@hono/deno": "^1.0.3",
|
|
87
97
|
"@hono/node-server": "^1.19.14",
|
|
88
98
|
"@hono/node-ws": "^1.3.1",
|
|
89
99
|
"@node-rs/argon2": "^2.0.2",
|
|
@@ -100,13 +110,13 @@
|
|
|
100
110
|
"eslint": "^9.39.4",
|
|
101
111
|
"eslint-plugin-svelte": "^3.15.1",
|
|
102
112
|
"esm-env": "^1.2.2",
|
|
103
|
-
"hono": "^4.
|
|
113
|
+
"hono": "^4.13.9",
|
|
104
114
|
"jsdom": "^28.1.0",
|
|
105
115
|
"magic-string": "^0.30.21",
|
|
106
116
|
"pg": "^8.20.0",
|
|
107
117
|
"svelte": "^5.56.4",
|
|
108
118
|
"svelte-check": "^4.7.1",
|
|
109
|
-
"svelte-docinfo": "^0.
|
|
119
|
+
"svelte-docinfo": "^0.8.0",
|
|
110
120
|
"svelte2tsx": "^0.7.52",
|
|
111
121
|
"tslib": "^2.8.1",
|
|
112
122
|
"typescript": "^5.9.3",
|