@fuzdev/fuz_app 0.134.0 → 0.135.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 +91 -9
- package/dist/actions/register_action_ws.d.ts +23 -3
- package/dist/actions/register_action_ws.d.ts.map +1 -1
- package/dist/actions/register_action_ws.js +57 -37
- package/dist/actions/transports.d.ts +23 -0
- package/dist/actions/transports.d.ts.map +1 -1
- package/dist/actions/transports.js +23 -0
- package/dist/actions/transports_ws_backend.d.ts +132 -9
- package/dist/actions/transports_ws_backend.d.ts.map +1 -1
- package/dist/actions/transports_ws_backend.js +236 -33
- package/dist/actions/ws_endpoint_spec.d.ts +9 -0
- package/dist/actions/ws_endpoint_spec.d.ts.map +1 -1
- package/dist/actions/ws_outbound_writer.d.ts +206 -0
- package/dist/actions/ws_outbound_writer.d.ts.map +1 -0
- package/dist/actions/ws_outbound_writer.js +431 -0
- package/dist/auth/CLAUDE.md +2 -2
- package/dist/auth/audit_log_routes.d.ts.map +1 -1
- package/dist/auth/audit_log_routes.js +3 -1
- package/dist/auth/cell_actions.js +1 -1
- package/dist/auth/role_schema.d.ts +14 -3
- package/dist/auth/role_schema.d.ts.map +1 -1
- package/dist/auth/role_schema.js +14 -2
- package/dist/db/migrate.d.ts +1 -1
- package/dist/db/migrate.js +2 -2
- package/dist/http/CLAUDE.md +2 -1
- package/dist/http/body_limit.d.ts +61 -0
- package/dist/http/body_limit.d.ts.map +1 -0
- package/dist/http/body_limit.js +87 -0
- package/dist/http/db_routes.js +2 -2
- package/dist/http/error_schemas.d.ts +2 -0
- package/dist/http/error_schemas.d.ts.map +1 -1
- package/dist/http/error_schemas.js +2 -0
- package/dist/realtime/outbound_budget.d.ts +91 -0
- package/dist/realtime/outbound_budget.d.ts.map +1 -0
- package/dist/realtime/outbound_budget.js +108 -0
- package/dist/realtime/sse.d.ts +36 -3
- package/dist/realtime/sse.d.ts.map +1 -1
- package/dist/realtime/sse.js +58 -6
- package/dist/realtime/sse_constants.d.ts +12 -0
- package/dist/realtime/sse_constants.d.ts.map +1 -1
- package/dist/realtime/sse_constants.js +12 -0
- package/dist/server/app_server.d.ts.map +1 -1
- package/dist/server/app_server.js +3 -6
- package/dist/testing/CLAUDE.md +70 -10
- package/dist/testing/admin_integration.js +1 -1
- package/dist/testing/audit_completeness.d.ts +1 -1
- package/dist/testing/audit_completeness.js +1 -1
- package/dist/testing/audit_drift_guard.d.ts +1 -1
- package/dist/testing/audit_drift_guard.js +1 -1
- package/dist/testing/cross_backend/body_size_smuggling.d.ts +9 -9
- package/dist/testing/cross_backend/body_size_smuggling.d.ts.map +1 -1
- package/dist/testing/cross_backend/body_size_smuggling.js +110 -60
- package/dist/testing/cross_backend/capabilities.d.ts +18 -15
- package/dist/testing/cross_backend/capabilities.d.ts.map +1 -1
- package/dist/testing/cross_backend/capabilities.js +1 -0
- package/dist/testing/cross_backend/default_backend_configs.js +5 -5
- package/dist/testing/cross_backend/role_grant_role_grammar.d.ts +6 -0
- package/dist/testing/cross_backend/role_grant_role_grammar.d.ts.map +1 -0
- package/dist/testing/cross_backend/role_grant_role_grammar.js +117 -0
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts +2 -3
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.js +2 -3
- package/dist/testing/cross_backend/testing_backdoor.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_backdoor.js +8 -4
- package/dist/testing/cross_backend/testing_reset_actions.d.ts +82 -2
- package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_reset_actions.js +101 -2
- package/dist/testing/cross_backend/ts_spine_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/ts_spine_backend_config.js +9 -7
- package/dist/testing/cross_backend/ws_outbound_overflow.d.ts +29 -0
- package/dist/testing/cross_backend/ws_outbound_overflow.d.ts.map +1 -0
- package/dist/testing/cross_backend/ws_outbound_overflow.js +211 -0
- package/dist/testing/integration.js +1 -1
- package/dist/testing/schema_introspect.d.ts +10 -2
- package/dist/testing/schema_introspect.d.ts.map +1 -1
- package/dist/testing/schema_introspect.js +15 -7
- package/dist/testing/transports/ws_transport.d.ts +4 -2
- package/dist/testing/transports/ws_transport.d.ts.map +1 -1
- package/dist/testing/transports/ws_transport.js +2 -1
- package/dist/testing/ws_round_trip.d.ts +32 -2
- package/dist/testing/ws_round_trip.d.ts.map +1 -1
- package/dist/testing/ws_round_trip.js +26 -4
- package/package.json +1 -1
|
@@ -11,24 +11,46 @@ import { ACCOUNT_ID_KEY, AUTH_API_TOKEN_ID_KEY, CREDENTIAL_TYPE_KEY, TEST_CONTEX
|
|
|
11
11
|
import { create_jsonrpc_request } from '../http/jsonrpc_helpers.js';
|
|
12
12
|
import { create_test_account, create_test_actor, create_test_role_grant } from './entities.js';
|
|
13
13
|
import { WS_CLIENT_DEFAULT_TIMEOUT_MS, deliver_inbound, is_response_for } from './transports/ws_client.js';
|
|
14
|
+
const fake_ws_text_encoder = new TextEncoder();
|
|
14
15
|
/**
|
|
15
16
|
* Build a real `WSContext` backed by in-memory `send`/`close` capture.
|
|
16
17
|
* Parsing of outgoing frames is left to the caller — `sends` holds the
|
|
17
18
|
* raw strings as the dispatcher wrote them.
|
|
19
|
+
*
|
|
20
|
+
* `readyState` reads `1` (open) until the socket is closed (`2`) or
|
|
21
|
+
* terminated (`3`).
|
|
18
22
|
*/
|
|
19
|
-
export const create_fake_ws = () => {
|
|
23
|
+
export const create_fake_ws = (options) => {
|
|
20
24
|
const sends = [];
|
|
21
25
|
const closes = [];
|
|
26
|
+
const socket = {
|
|
27
|
+
bufferedAmount: 0,
|
|
28
|
+
stalled: options?.stalled ?? false,
|
|
29
|
+
terminated: false,
|
|
30
|
+
terminate: () => {
|
|
31
|
+
socket.terminated = true;
|
|
32
|
+
socket.bufferedAmount = 0;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
22
35
|
const init = {
|
|
23
36
|
send: (data) => {
|
|
24
|
-
|
|
37
|
+
const text = typeof data === 'string' ? data : '<binary>';
|
|
38
|
+
sends.push(text);
|
|
39
|
+
if (socket.stalled)
|
|
40
|
+
socket.bufferedAmount += fake_ws_text_encoder.encode(text).byteLength;
|
|
25
41
|
},
|
|
26
42
|
close: (code, reason) => {
|
|
27
43
|
closes.push({ code, reason });
|
|
44
|
+
// a close frame is a few bytes behind whatever is still unwritten
|
|
45
|
+
if (socket.stalled)
|
|
46
|
+
socket.bufferedAmount += 2;
|
|
28
47
|
},
|
|
29
|
-
|
|
48
|
+
raw: socket,
|
|
49
|
+
get readyState() {
|
|
50
|
+
return socket.terminated ? 3 : closes.length > 0 ? 2 : 1;
|
|
51
|
+
}
|
|
30
52
|
};
|
|
31
|
-
return { ws: new WSContext(init), sends, closes };
|
|
53
|
+
return { ws: new WSContext(init), sends, closes, socket };
|
|
32
54
|
};
|
|
33
55
|
/**
|
|
34
56
|
* Build a fake Hono `Context` exposing the auth keys the dispatcher
|