@fuzdev/fuz_app 0.52.0 → 0.54.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 +29 -9
- package/dist/actions/action_codegen.d.ts +10 -35
- package/dist/actions/action_codegen.d.ts.map +1 -1
- package/dist/actions/action_codegen.js +13 -42
- package/dist/actions/action_peer.d.ts.map +1 -1
- package/dist/actions/action_peer.js +0 -9
- package/dist/actions/action_registry.d.ts +0 -4
- package/dist/actions/action_registry.d.ts.map +1 -1
- package/dist/actions/action_registry.js +4 -10
- package/dist/actions/action_rpc.d.ts +16 -0
- package/dist/actions/action_rpc.d.ts.map +1 -1
- package/dist/actions/action_rpc.js +41 -20
- package/dist/actions/action_spec.d.ts +54 -5
- package/dist/actions/action_spec.d.ts.map +1 -1
- package/dist/actions/action_spec.js +21 -5
- package/dist/actions/frontend_rpc_client.d.ts +1 -9
- package/dist/actions/frontend_rpc_client.d.ts.map +1 -1
- package/dist/actions/frontend_rpc_client.js +1 -9
- package/dist/actions/register_action_ws.d.ts +16 -0
- package/dist/actions/register_action_ws.d.ts.map +1 -1
- package/dist/actions/register_action_ws.js +41 -1
- package/dist/actions/request_tracker.svelte.d.ts +10 -15
- package/dist/actions/request_tracker.svelte.d.ts.map +1 -1
- package/dist/actions/request_tracker.svelte.js +10 -15
- package/dist/actions/rpc_client.d.ts +0 -1
- package/dist/actions/rpc_client.d.ts.map +1 -1
- package/dist/actions/rpc_client.js +3 -17
- package/dist/actions/socket.svelte.d.ts +0 -1
- package/dist/actions/socket.svelte.d.ts.map +1 -1
- package/dist/actions/socket.svelte.js +0 -1
- package/dist/actions/transports.d.ts +4 -3
- package/dist/actions/transports.d.ts.map +1 -1
- package/dist/actions/transports.js +4 -13
- package/dist/actions/transports_ws_auth_guard.d.ts +0 -2
- package/dist/actions/transports_ws_auth_guard.d.ts.map +1 -1
- package/dist/actions/transports_ws_auth_guard.js +0 -2
- package/dist/actions/transports_ws_backend.d.ts.map +1 -1
- package/dist/actions/transports_ws_backend.js +0 -9
- package/dist/auth/CLAUDE.md +43 -19
- package/dist/auth/account_queries.d.ts +0 -3
- package/dist/auth/account_queries.d.ts.map +1 -1
- package/dist/auth/account_queries.js +0 -3
- package/dist/auth/admin_action_specs.d.ts +5 -0
- package/dist/auth/admin_action_specs.d.ts.map +1 -1
- package/dist/auth/admin_action_specs.js +5 -0
- package/dist/auth/api_token_queries.d.ts +0 -1
- package/dist/auth/api_token_queries.d.ts.map +1 -1
- package/dist/auth/api_token_queries.js +0 -1
- package/dist/auth/audit_log_queries.d.ts +0 -1
- package/dist/auth/audit_log_queries.d.ts.map +1 -1
- package/dist/auth/audit_log_queries.js +0 -1
- package/dist/auth/audit_log_routes.d.ts +2 -2
- package/dist/auth/audit_log_routes.js +2 -2
- package/dist/auth/invite_queries.d.ts +0 -1
- package/dist/auth/invite_queries.d.ts.map +1 -1
- package/dist/auth/invite_queries.js +0 -1
- package/dist/auth/permit_offer_action_specs.d.ts +1 -0
- package/dist/auth/permit_offer_action_specs.d.ts.map +1 -1
- package/dist/auth/permit_offer_action_specs.js +1 -0
- package/dist/auth/permit_offer_actions.d.ts.map +1 -1
- package/dist/auth/permit_offer_actions.js +9 -6
- package/dist/auth/permit_offer_queries.d.ts +0 -1
- package/dist/auth/permit_offer_queries.d.ts.map +1 -1
- package/dist/auth/permit_offer_queries.js +0 -1
- package/dist/auth/permit_queries.d.ts +0 -1
- package/dist/auth/permit_queries.d.ts.map +1 -1
- package/dist/auth/permit_queries.js +0 -1
- package/dist/auth/request_context.d.ts +47 -2
- package/dist/auth/request_context.d.ts.map +1 -1
- package/dist/auth/request_context.js +57 -2
- package/dist/auth/self_service_role_actions.d.ts.map +1 -1
- package/dist/auth/self_service_role_actions.js +14 -11
- package/dist/auth/session_lifecycle.d.ts +0 -1
- package/dist/auth/session_lifecycle.d.ts.map +1 -1
- package/dist/auth/session_lifecycle.js +0 -1
- package/dist/auth/session_middleware.d.ts +0 -4
- package/dist/auth/session_middleware.d.ts.map +1 -1
- package/dist/auth/session_middleware.js +0 -4
- package/dist/cli/config.d.ts +0 -3
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +0 -3
- package/dist/cli/daemon.d.ts +1 -1
- package/dist/cli/daemon.js +1 -1
- package/dist/db/create_db.d.ts +0 -1
- package/dist/db/create_db.d.ts.map +1 -1
- package/dist/db/create_db.js +0 -1
- package/dist/db/db.d.ts +0 -4
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db.js +0 -4
- package/dist/db/db_pg.d.ts +2 -2
- package/dist/db/db_pg.js +2 -2
- package/dist/db/db_pglite.d.ts +1 -2
- package/dist/db/db_pglite.d.ts.map +1 -1
- package/dist/db/db_pglite.js +1 -2
- package/dist/db/migrate.d.ts +0 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +0 -1
- package/dist/dev/setup.d.ts +0 -3
- package/dist/dev/setup.d.ts.map +1 -1
- package/dist/dev/setup.js +0 -3
- package/dist/env/load.d.ts +0 -2
- package/dist/env/load.d.ts.map +1 -1
- package/dist/env/load.js +0 -2
- package/dist/hono_context.d.ts +2 -5
- package/dist/hono_context.d.ts.map +1 -1
- package/dist/hono_context.js +2 -5
- package/dist/http/common_routes.d.ts +0 -8
- package/dist/http/common_routes.d.ts.map +1 -1
- package/dist/http/common_routes.js +0 -8
- package/dist/http/db_routes.d.ts +0 -3
- package/dist/http/db_routes.d.ts.map +1 -1
- package/dist/http/db_routes.js +0 -3
- package/dist/http/error_schemas.d.ts +12 -11
- package/dist/http/error_schemas.d.ts.map +1 -1
- package/dist/http/error_schemas.js +11 -7
- package/dist/http/jsonrpc_errors.d.ts +0 -6
- package/dist/http/jsonrpc_errors.d.ts.map +1 -1
- package/dist/http/jsonrpc_errors.js +0 -6
- package/dist/http/origin.d.ts +6 -13
- package/dist/http/origin.d.ts.map +1 -1
- package/dist/http/origin.js +7 -14
- package/dist/http/proxy.d.ts +1 -7
- package/dist/http/proxy.d.ts.map +1 -1
- package/dist/http/proxy.js +1 -7
- package/dist/http/route_spec.d.ts +13 -35
- package/dist/http/route_spec.d.ts.map +1 -1
- package/dist/http/route_spec.js +10 -22
- package/dist/http/schema_helpers.d.ts +0 -4
- package/dist/http/schema_helpers.d.ts.map +1 -1
- package/dist/http/schema_helpers.js +0 -4
- package/dist/http/surface.d.ts +2 -12
- package/dist/http/surface.d.ts.map +1 -1
- package/dist/http/surface.js +1 -12
- package/dist/rate_limiter.d.ts +16 -0
- package/dist/rate_limiter.d.ts.map +1 -1
- package/dist/rate_limiter.js +26 -0
- package/dist/realtime/sse.d.ts +0 -1
- package/dist/realtime/sse.d.ts.map +1 -1
- package/dist/realtime/sse.js +0 -1
- package/dist/realtime/subscriber_registry.d.ts +0 -3
- package/dist/realtime/subscriber_registry.d.ts.map +1 -1
- package/dist/realtime/subscriber_registry.js +0 -3
- package/dist/runtime/fs.d.ts +1 -4
- package/dist/runtime/fs.d.ts.map +1 -1
- package/dist/runtime/fs.js +1 -4
- package/dist/runtime/mock.d.ts +0 -3
- package/dist/runtime/mock.d.ts.map +1 -1
- package/dist/runtime/mock.js +0 -3
- package/dist/server/app_server.d.ts +27 -5
- package/dist/server/app_server.d.ts.map +1 -1
- package/dist/server/app_server.js +19 -7
- package/dist/server/startup.d.ts +0 -2
- package/dist/server/startup.d.ts.map +1 -1
- package/dist/server/startup.js +0 -2
- package/dist/server/static.d.ts +0 -1
- package/dist/server/static.d.ts.map +1 -1
- package/dist/server/static.js +0 -1
- package/dist/server/validate_nginx.d.ts +0 -3
- package/dist/server/validate_nginx.d.ts.map +1 -1
- package/dist/server/validate_nginx.js +0 -3
- package/dist/testing/CLAUDE.md +1 -1
- package/dist/testing/admin_integration.d.ts +0 -1
- package/dist/testing/admin_integration.d.ts.map +1 -1
- package/dist/testing/admin_integration.js +3 -6
- package/dist/testing/adversarial_404.d.ts +0 -2
- package/dist/testing/adversarial_404.d.ts.map +1 -1
- package/dist/testing/adversarial_404.js +0 -2
- package/dist/testing/adversarial_headers.d.ts +0 -1
- package/dist/testing/adversarial_headers.d.ts.map +1 -1
- package/dist/testing/adversarial_headers.js +0 -1
- package/dist/testing/adversarial_input.d.ts +0 -2
- package/dist/testing/adversarial_input.d.ts.map +1 -1
- package/dist/testing/adversarial_input.js +0 -2
- package/dist/testing/app_server.d.ts +22 -0
- package/dist/testing/app_server.d.ts.map +1 -1
- package/dist/testing/app_server.js +2 -4
- package/dist/testing/assertions.d.ts +0 -4
- package/dist/testing/assertions.d.ts.map +1 -1
- package/dist/testing/assertions.js +0 -4
- package/dist/testing/attack_surface.d.ts +0 -4
- package/dist/testing/attack_surface.d.ts.map +1 -1
- package/dist/testing/attack_surface.js +0 -4
- package/dist/testing/audit_completeness.d.ts +0 -1
- package/dist/testing/audit_completeness.d.ts.map +1 -1
- package/dist/testing/audit_completeness.js +0 -1
- package/dist/testing/auth_apps.d.ts +2 -10
- package/dist/testing/auth_apps.d.ts.map +1 -1
- package/dist/testing/auth_apps.js +2 -10
- package/dist/testing/data_exposure.d.ts +0 -11
- package/dist/testing/data_exposure.d.ts.map +1 -1
- package/dist/testing/data_exposure.js +0 -11
- package/dist/testing/db.d.ts +0 -6
- package/dist/testing/db.d.ts.map +1 -1
- package/dist/testing/db.js +0 -6
- package/dist/testing/error_coverage.d.ts +0 -14
- package/dist/testing/error_coverage.d.ts.map +1 -1
- package/dist/testing/error_coverage.js +0 -14
- package/dist/testing/integration.d.ts +0 -1
- package/dist/testing/integration.d.ts.map +1 -1
- package/dist/testing/integration.js +0 -1
- package/dist/testing/integration_helpers.d.ts +1 -36
- package/dist/testing/integration_helpers.d.ts.map +1 -1
- package/dist/testing/integration_helpers.js +1 -43
- package/dist/testing/middleware.d.ts +0 -10
- package/dist/testing/middleware.d.ts.map +1 -1
- package/dist/testing/middleware.js +0 -10
- package/dist/testing/mock_fs.d.ts +0 -2
- package/dist/testing/mock_fs.d.ts.map +1 -1
- package/dist/testing/mock_fs.js +0 -2
- package/dist/testing/rate_limiting.d.ts +0 -1
- package/dist/testing/rate_limiting.d.ts.map +1 -1
- package/dist/testing/rate_limiting.js +0 -1
- package/dist/testing/round_trip.d.ts +0 -2
- package/dist/testing/round_trip.d.ts.map +1 -1
- package/dist/testing/round_trip.js +0 -2
- package/dist/testing/rpc_attack_surface.d.ts +0 -2
- package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
- package/dist/testing/rpc_attack_surface.js +0 -2
- package/dist/testing/rpc_helpers.d.ts +0 -6
- package/dist/testing/rpc_helpers.d.ts.map +1 -1
- package/dist/testing/rpc_helpers.js +0 -6
- package/dist/testing/rpc_round_trip.d.ts +0 -2
- package/dist/testing/rpc_round_trip.d.ts.map +1 -1
- package/dist/testing/rpc_round_trip.js +0 -2
- package/dist/testing/schema_generators.d.ts +0 -3
- package/dist/testing/schema_generators.d.ts.map +1 -1
- package/dist/testing/schema_generators.js +29 -3
- package/dist/testing/sse_round_trip.d.ts +0 -1
- package/dist/testing/sse_round_trip.d.ts.map +1 -1
- package/dist/testing/sse_round_trip.js +0 -1
- package/dist/testing/standard.d.ts +0 -2
- package/dist/testing/standard.d.ts.map +1 -1
- package/dist/testing/standard.js +0 -2
- package/dist/testing/stubs.d.ts +3 -5
- package/dist/testing/stubs.d.ts.map +1 -1
- package/dist/testing/stubs.js +5 -5
- package/dist/testing/surface_invariants.d.ts +0 -3
- package/dist/testing/surface_invariants.d.ts.map +1 -1
- package/dist/testing/surface_invariants.js +0 -3
- package/dist/ui/CLAUDE.md +1 -1
- package/dist/ui/audit_log_state.svelte.js +1 -1
- package/dist/ui/position_helpers.d.ts +0 -3
- package/dist/ui/position_helpers.d.ts.map +1 -1
- package/dist/ui/position_helpers.js +0 -3
- package/dist/ui/sidebar_state.svelte.d.ts +1 -2
- package/dist/ui/sidebar_state.svelte.d.ts.map +1 -1
- package/dist/ui/sidebar_state.svelte.js +1 -2
- package/dist/ui/ui_fetch.d.ts +1 -7
- package/dist/ui/ui_fetch.d.ts.map +1 -1
- package/dist/ui/ui_fetch.js +1 -7
- package/dist/ui/ui_format.d.ts +2 -14
- package/dist/ui/ui_format.d.ts.map +1 -1
- package/dist/ui/ui_format.js +2 -14
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/rpc_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAa7B,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EAIN,KAAK,gBAAgB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACpG,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAG9D;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAChC,KAAK,CAAC,eAAe,CAAC,GACtB,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,+BAA+B,GAC3C,eAAe,uBAAuB,EACtC,iBAAiB,cAAc,CAAC,MAAM,CAAC,KACrC,KAAK,CAAC,eAAe,CAuBvB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"rpc_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/rpc_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,6 @@ export const resolve_rpc_endpoints_for_setup = (rpc_endpoints, session_options)
|
|
|
57
57
|
/**
|
|
58
58
|
* Create a `RequestInit` for a JSON-RPC POST request.
|
|
59
59
|
*
|
|
60
|
-
* @param method - JSON-RPC method name
|
|
61
60
|
* @param params - params (omit for parameterless methods; `null` is also
|
|
62
61
|
* stripped for ergonomic call sites — JSON-RPC 2.0 §4.2
|
|
63
62
|
* forbids `"params": null` on the wire, and `create_rpc_endpoint`
|
|
@@ -66,7 +65,6 @@ export const resolve_rpc_endpoints_for_setup = (rpc_endpoints, session_options)
|
|
|
66
65
|
* envelope (e.g. asserting envelope-level rejection) should
|
|
67
66
|
* build the body inline rather than route through this helper.
|
|
68
67
|
* @param id - request id (default `'test'`)
|
|
69
|
-
* @returns a `RequestInit` with the JSON-RPC envelope as body
|
|
70
68
|
*/
|
|
71
69
|
export const create_rpc_post_init = (method, params, id = 'test') => {
|
|
72
70
|
const envelope = { jsonrpc: JSONRPC_VERSION, method, id };
|
|
@@ -82,10 +80,8 @@ export const create_rpc_post_init = (method, params, id = 'test') => {
|
|
|
82
80
|
* Build a GET URL with JSON-RPC query parameters.
|
|
83
81
|
*
|
|
84
82
|
* @param endpoint_path - the RPC endpoint path (e.g., `/api/rpc`)
|
|
85
|
-
* @param method - JSON-RPC method name
|
|
86
83
|
* @param params - params (omit for parameterless methods)
|
|
87
84
|
* @param id - request id (default `'test'`)
|
|
88
|
-
* @returns the full URL with query string
|
|
89
85
|
*/
|
|
90
86
|
export const create_rpc_get_url = (endpoint_path, method, params, id = 'test') => {
|
|
91
87
|
const search = new URLSearchParams({ method, id: String(id) });
|
|
@@ -100,7 +96,6 @@ export const create_rpc_get_url = (endpoint_path, method, params, id = 'test') =
|
|
|
100
96
|
* Validates the structure matches `JsonrpcErrorResponse` and optionally
|
|
101
97
|
* checks the error code.
|
|
102
98
|
*
|
|
103
|
-
* @param body - parsed response body
|
|
104
99
|
* @param expected_code - optional error code to assert
|
|
105
100
|
*/
|
|
106
101
|
export const assert_jsonrpc_error_response = (body, expected_code) => {
|
|
@@ -117,7 +112,6 @@ export const assert_jsonrpc_error_response = (body, expected_code) => {
|
|
|
117
112
|
* is provided, also validates the `result` field against the declared
|
|
118
113
|
* output schema — matching the REST round-trip's `assert_response_matches_spec`.
|
|
119
114
|
*
|
|
120
|
-
* @param body - parsed response body
|
|
121
115
|
* @param output_schema - optional Zod schema to validate the `result` field against
|
|
122
116
|
*/
|
|
123
117
|
export const assert_jsonrpc_success_response = (body, output_schema) => {
|
|
@@ -45,8 +45,6 @@ export interface RpcRoundTripTestOptions {
|
|
|
45
45
|
* Error responses (from missing DB state, etc.) are expected and validated
|
|
46
46
|
* as well-formed JSON-RPC errors. Successful responses are validated against
|
|
47
47
|
* `action.spec.output`.
|
|
48
|
-
*
|
|
49
|
-
* @param options - round-trip test configuration
|
|
50
48
|
*/
|
|
51
49
|
export declare const describe_rpc_round_trip_tests: (options: RpcRoundTripTestOptions) => void;
|
|
52
50
|
//# sourceMappingURL=rpc_round_trip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/rpc_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAe7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAEN,KAAK,eAAe,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,SAAS,CAAC;AAM9D,OAAO,EAMN,KAAK,uBAAuB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACvC,4CAA4C;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,wDAAwD;IACxD,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE;;;;;;;;;;OAUG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC,iDAAiD;IACjD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,qEAAqE;IACrE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,oDAAoD;IACpD,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,6EAA6E;IAC7E,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD;AA2BD
|
|
1
|
+
{"version":3,"file":"rpc_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/rpc_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAe7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAEN,KAAK,eAAe,EAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,SAAS,CAAC;AAM9D,OAAO,EAMN,KAAK,uBAAuB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACvC,4CAA4C;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,wDAAwD;IACxD,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE;;;;;;;;;;OAUG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC,iDAAiD;IACjD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,qEAAqE;IACrE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,oDAAoD;IACpD,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,6EAA6E;IAC7E,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD;AA2BD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,GAAI,SAAS,uBAAuB,KAAG,IA8IhF,CAAC"}
|
|
@@ -49,8 +49,6 @@ const pick_rpc_auth_headers = (method, test_app, authed_account, admin_account)
|
|
|
49
49
|
* Error responses (from missing DB state, etc.) are expected and validated
|
|
50
50
|
* as well-formed JSON-RPC errors. Successful responses are validated against
|
|
51
51
|
* `action.spec.output`.
|
|
52
|
-
*
|
|
53
|
-
* @param options - round-trip test configuration
|
|
54
52
|
*/
|
|
55
53
|
export const describe_rpc_round_trip_tests = (options) => {
|
|
56
54
|
const skip_set = new Set(options.skip_methods);
|
|
@@ -25,9 +25,6 @@ export declare const resolve_valid_path: (path: string, params_schema?: z.ZodObj
|
|
|
25
25
|
/**
|
|
26
26
|
* Generate a valid request body for a route's input schema.
|
|
27
27
|
*
|
|
28
|
-
* Returns `undefined` for null schemas or schemas that can't be unwrapped to objects.
|
|
29
|
-
*
|
|
30
|
-
* @param input_schema - the route's input Zod schema
|
|
31
28
|
* @returns a generated body that passes `safeParse`, or `undefined` for null /
|
|
32
29
|
* non-object schemas
|
|
33
30
|
* @throws Error if the generated body fails `input_schema.safeParse` — catches
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema_generators.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/schema_generators.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAKN,KAAK,YAAY,EACjB,MAAM,yBAAyB,CAAC;AAIjC;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,cAAc,CAAC,CAAC,OAAO,KAAG,MAAM,GAAG,IAShE,CAAC;AA+FF,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,GAAI,OAAO,YAAY,EAAE,cAAc,CAAC,CAAC,OAAO,KAAG,
|
|
1
|
+
{"version":3,"file":"schema_generators.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/schema_generators.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAKN,KAAK,YAAY,EACjB,MAAM,yBAAyB,CAAC;AAIjC;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,cAAc,CAAC,CAAC,OAAO,KAAG,MAAM,GAAG,IAShE,CAAC;AA+FF,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,GAAI,OAAO,YAAY,EAAE,cAAc,CAAC,CAAC,OAAO,KAAG,OA+EnF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,gBAAgB,CAAC,CAAC,SAAS,KAAG,MAa9E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC/B,cAAc,CAAC,CAAC,OAAO,KACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAkB5B,CAAC"}
|
|
@@ -165,6 +165,35 @@ export const generate_valid_value = (field, field_schema) => {
|
|
|
165
165
|
}
|
|
166
166
|
case 'null':
|
|
167
167
|
return null;
|
|
168
|
+
case 'union': {
|
|
169
|
+
// Pick the first variant and recurse. Works for both `z.union` and
|
|
170
|
+
// `z.discriminatedUnion` — Zod 4 represents both as `def.type ===
|
|
171
|
+
// 'union'` with a `def.options` array. Picking `options[0]` is a
|
|
172
|
+
// pragmatic default; consumers needing a specific branch can pass
|
|
173
|
+
// an override via the relevant test helper.
|
|
174
|
+
const def = zod_unwrap_def(field_schema);
|
|
175
|
+
const first = def.options?.[0];
|
|
176
|
+
if (first) {
|
|
177
|
+
const inner_field = {
|
|
178
|
+
...field,
|
|
179
|
+
base_type: zod_get_base_type(first),
|
|
180
|
+
};
|
|
181
|
+
return generate_valid_value(inner_field, first);
|
|
182
|
+
}
|
|
183
|
+
return 'test_value';
|
|
184
|
+
}
|
|
185
|
+
case 'literal': {
|
|
186
|
+
// Zod 4 stores literal values on `def.values` (always an array, even
|
|
187
|
+
// for single-valued literals). Returning the first literal satisfies
|
|
188
|
+
// `z.literal('foo')` as well as required discriminator fields in
|
|
189
|
+
// `z.discriminatedUnion` variants — without this branch the literal
|
|
190
|
+
// would fall through to the default and break parse.
|
|
191
|
+
const literal_def = zod_unwrap_def(field_schema);
|
|
192
|
+
if (literal_def.values && literal_def.values.length > 0) {
|
|
193
|
+
return literal_def.values[0];
|
|
194
|
+
}
|
|
195
|
+
return 'test_value';
|
|
196
|
+
}
|
|
168
197
|
case 'enum': {
|
|
169
198
|
const enum_def = zod_unwrap_def(field_schema);
|
|
170
199
|
if ('entries' in enum_def) {
|
|
@@ -206,9 +235,6 @@ export const resolve_valid_path = (path, params_schema) => {
|
|
|
206
235
|
/**
|
|
207
236
|
* Generate a valid request body for a route's input schema.
|
|
208
237
|
*
|
|
209
|
-
* Returns `undefined` for null schemas or schemas that can't be unwrapped to objects.
|
|
210
|
-
*
|
|
211
|
-
* @param input_schema - the route's input Zod schema
|
|
212
238
|
* @returns a generated body that passes `safeParse`, or `undefined` for null /
|
|
213
239
|
* non-object schemas
|
|
214
240
|
* @throws Error if the generated body fails `input_schema.safeParse` — catches
|
|
@@ -74,7 +74,6 @@ export interface SseRouteTestOptions {
|
|
|
74
74
|
* connected comment, fires the trigger, validates the resulting payload,
|
|
75
75
|
* then asserts close-on-revoke (unless opted out).
|
|
76
76
|
*
|
|
77
|
-
* @param options - SSE test configuration
|
|
78
77
|
* @throws Error at setup time when `options.rpc_endpoints` is empty — the
|
|
79
78
|
* close-on-revoke assertion dispatches `account_session_revoke_all` via
|
|
80
79
|
* RPC. Hard-fails via `require_rpc_endpoint_path`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAmB7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAwB,KAAK,SAAS,EAAuB,MAAM,oBAAoB,CAAC;AAE/F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,SAAS,CAAC;AAE9D,OAAO,EAIN,KAAK,uBAAuB,EAC5B,MAAM,kBAAkB,CAAC;AAM1B,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAChC,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IACnC,4CAA4C;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,qDAAqD;IACrD,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,iDAAiD;IACjD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,qEAAqE;IACrE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD;;;;;;;;;;;;;OAaG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC,8BAA8B;IAC9B,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAyHD
|
|
1
|
+
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAmB7B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAwB,KAAK,SAAS,EAAuB,MAAM,oBAAoB,CAAC;AAE/F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAEN,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAwB,KAAK,SAAS,EAAC,MAAM,SAAS,CAAC;AAE9D,OAAO,EAIN,KAAK,uBAAuB,EAC5B,MAAM,kBAAkB,CAAC;AAM1B,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAChC,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,8CAA8C;AAC9C,MAAM,WAAW,mBAAmB;IACnC,4CAA4C;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,qDAAqD;IACrD,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,iDAAiD;IACjD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,qEAAqE;IACrE,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD;;;;;;;;;;;;;OAaG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC,8BAA8B;IAC9B,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAyHD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,SAAS,mBAAmB,KAAG,IA2HvE,CAAC"}
|
|
@@ -126,7 +126,6 @@ const parse_and_validate_sse_payload = (frame, event_specs, route_path) => {
|
|
|
126
126
|
* connected comment, fires the trigger, validates the resulting payload,
|
|
127
127
|
* then asserts close-on-revoke (unless opted out).
|
|
128
128
|
*
|
|
129
|
-
* @param options - SSE test configuration
|
|
130
129
|
* @throws Error at setup time when `options.rpc_endpoints` is empty — the
|
|
131
130
|
* close-on-revoke assertion dispatches `account_session_revoke_all` via
|
|
132
131
|
* RPC. Hard-fails via `require_rpc_endpoint_path`.
|
|
@@ -55,8 +55,6 @@ export interface StandardTestOptions {
|
|
|
55
55
|
* Run both standard integration and admin integration test suites.
|
|
56
56
|
*
|
|
57
57
|
* Admin tests are only included when `roles` is provided.
|
|
58
|
-
*
|
|
59
|
-
* @param options - session config, route factory, RPC endpoints, and optional role schema
|
|
60
58
|
*/
|
|
61
59
|
export declare const describe_standard_tests: (options: StandardTestOptions) => void;
|
|
62
60
|
//# sourceMappingURL=standard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/standard.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,4CAA4C;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,wDAAwD;IACxD,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CACpB,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,iBAAiB,GAAG,oBAAoB,CAAC,CAC5E,CAAC;IACF;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;;;;;;;OAUG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED
|
|
1
|
+
{"version":3,"file":"standard.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/standard.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,kBAAkB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,4CAA4C;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,wDAAwD;IACxD,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CACpB,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,iBAAiB,GAAG,oBAAoB,CAAC,CAC5E,CAAC;IACF;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;;;;;;;;OAUG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,mBAAmB,KAAG,IAStE,CAAC"}
|
package/dist/testing/standard.js
CHANGED
|
@@ -5,8 +5,6 @@ import { describe_standard_admin_integration_tests } from './admin_integration.j
|
|
|
5
5
|
* Run both standard integration and admin integration test suites.
|
|
6
6
|
*
|
|
7
7
|
* Admin tests are only included when `roles` is provided.
|
|
8
|
-
*
|
|
9
|
-
* @param options - session config, route factory, RPC endpoints, and optional role schema
|
|
10
8
|
*/
|
|
11
9
|
export const describe_standard_tests = (options) => {
|
|
12
10
|
describe_standard_integration_tests(options);
|
package/dist/testing/stubs.d.ts
CHANGED
|
@@ -21,8 +21,8 @@ import type { EventSpec } from '../realtime/sse.js';
|
|
|
21
21
|
* surfaces the stub's identity in console output rather than silent `"{}"`.
|
|
22
22
|
*
|
|
23
23
|
* @param label - descriptive name for error messages (e.g. `'keyring'`, `'db'`)
|
|
24
|
-
* @throws Error on any non-internal property access
|
|
25
|
-
*
|
|
24
|
+
* @throws Error on any non-internal property access, labeled with the stub
|
|
25
|
+
* name and the offending property.
|
|
26
26
|
*/
|
|
27
27
|
export declare const create_throwing_stub: <T = any>(label: string) => T;
|
|
28
28
|
/**
|
|
@@ -54,9 +54,7 @@ export declare const stub_mw: (_c: any, next: any) => Promise<void>;
|
|
|
54
54
|
/** Stub `AppDeps` for auth surface tests — throws on any method access. */
|
|
55
55
|
export declare const stub_app_deps: AppDeps;
|
|
56
56
|
/**
|
|
57
|
-
* Create no-op
|
|
58
|
-
*
|
|
59
|
-
* @returns an `AppDeps`-shaped object with no-op deps
|
|
57
|
+
* Create no-op `AppDeps` for auth surface testing.
|
|
60
58
|
*/
|
|
61
59
|
export declare const create_stub_app_deps: () => AppDeps;
|
|
62
60
|
/** Create the API middleware stub array matching `create_auth_middleware_specs` output. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stubs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/stubs.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAa7B,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAE3B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,EAAE,EAAC,MAAM,aAAa,CAAC;AAC/B,OAAO,EAAqB,KAAK,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAKlD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,MAAM,KAAG,CAqBtD,CAAC;AAET;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,QAAQ,MAAM,EAAE,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,CAOxF,CAAC;AAET,iEAAiE;AACjE,eAAO,MAAM,IAAI,EAAE,GAAkC,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,QAAO,EAI/B,CAAC;AAEJ,gDAAgD;AAChD,eAAO,MAAM,YAAY,QAAO,QAAgC,CAAC;AAEjE,2CAA2C;AAC3C,eAAO,MAAM,OAAO,GAAU,IAAI,GAAG,EAAE,MAAM,GAAG,KAAG,OAAO,CAAC,IAAI,CAAW,CAAC;AAI3E,2EAA2E;AAC3E,eAAO,MAAM,aAAa,EAAE,OAS3B,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"stubs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/stubs.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAa7B,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAE3B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE/D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,EAAE,EAAC,MAAM,aAAa,CAAC;AAC/B,OAAO,EAAqB,KAAK,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAEN,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAKlD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,MAAM,KAAG,CAqBtD,CAAC;AAET;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,QAAQ,MAAM,EAAE,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,CAOxF,CAAC;AAET,iEAAiE;AACjE,eAAO,MAAM,IAAI,EAAE,GAAkC,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,QAAO,EAI/B,CAAC;AAEJ,gDAAgD;AAChD,eAAO,MAAM,YAAY,QAAO,QAAgC,CAAC;AAEjE,2CAA2C;AAC3C,eAAO,MAAM,OAAO,GAAU,IAAI,GAAG,EAAE,MAAM,GAAG,KAAG,OAAO,CAAC,IAAI,CAAW,CAAC;AAI3E,2EAA2E;AAC3E,eAAO,MAAM,aAAa,EAAE,OAS3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAAO,OAStC,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,GAAI,UAAU;IACpD,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B,KAAG,KAAK,CAAC,cAAc,CAqBvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,GAC1C,iBAAiB,cAAc,CAAC,MAAM,CAAC,KACrC,gBAqBF,CAAC;AAEF,kDAAkD;AAClD,MAAM,WAAW,+BAA+B;IAC/C,6DAA6D;IAC7D,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,qFAAqF;IACrF,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,oEAAoE;IACpE,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;IACzB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/B;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7F,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/E,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,GACxC,SAAS,+BAA+B,KACtC,cA2CF,CAAC"}
|
package/dist/testing/stubs.js
CHANGED
|
@@ -29,8 +29,8 @@ import { BaseServerEnv } from '../server/env.js';
|
|
|
29
29
|
* surfaces the stub's identity in console output rather than silent `"{}"`.
|
|
30
30
|
*
|
|
31
31
|
* @param label - descriptive name for error messages (e.g. `'keyring'`, `'db'`)
|
|
32
|
-
* @throws Error on any non-internal property access
|
|
33
|
-
*
|
|
32
|
+
* @throws Error on any non-internal property access, labeled with the stub
|
|
33
|
+
* name and the offending property.
|
|
34
34
|
*/
|
|
35
35
|
export const create_throwing_stub = (label) => new Proxy({}, {
|
|
36
36
|
get: (_target, prop) => {
|
|
@@ -100,9 +100,7 @@ export const stub_app_deps = {
|
|
|
100
100
|
on_audit_event: () => { }, // eslint-disable-line @typescript-eslint/no-empty-function
|
|
101
101
|
};
|
|
102
102
|
/**
|
|
103
|
-
* Create no-op
|
|
104
|
-
*
|
|
105
|
-
* @returns an `AppDeps`-shaped object with no-op deps
|
|
103
|
+
* Create no-op `AppDeps` for auth surface testing.
|
|
106
104
|
*/
|
|
107
105
|
export const create_stub_app_deps = () => ({
|
|
108
106
|
stat: async () => null,
|
|
@@ -161,6 +159,8 @@ export const create_stub_app_server_context = (session_options) => {
|
|
|
161
159
|
ip_rate_limiter: null,
|
|
162
160
|
login_account_rate_limiter: null,
|
|
163
161
|
signup_account_rate_limiter: null,
|
|
162
|
+
action_ip_rate_limiter: null,
|
|
163
|
+
action_account_rate_limiter: null,
|
|
164
164
|
app_settings: { open_signup: false, updated_at: null, updated_by: null },
|
|
165
165
|
audit_sse: null,
|
|
166
166
|
};
|
|
@@ -85,7 +85,6 @@ export interface ErrorSchemaAuditEntry {
|
|
|
85
85
|
* (`z.string()`) vs specific `z.literal()` or `z.enum()` error codes.
|
|
86
86
|
* Use the output to prioritize progressive tightening of error schemas.
|
|
87
87
|
*
|
|
88
|
-
* @param surface - the app surface to audit
|
|
89
88
|
* @returns audit entries for every route x status combination
|
|
90
89
|
*/
|
|
91
90
|
export declare const audit_error_schema_tightness: (surface: AppSurface) => Array<ErrorSchemaAuditEntry>;
|
|
@@ -199,8 +198,6 @@ export declare const DEFAULT_ERROR_SCHEMA_TIGHTNESS: ErrorSchemaTightnessOptions
|
|
|
199
198
|
* the configured threshold. Use `allowlist` and `ignore_statuses` to exclude
|
|
200
199
|
* known exceptions during progressive tightening.
|
|
201
200
|
*
|
|
202
|
-
* @param surface - the app surface to check
|
|
203
|
-
* @param options - threshold and exclusion configuration
|
|
204
201
|
* @throws AssertionError listing every route × status combination whose error
|
|
205
202
|
* schema specificity is below `min_specificity` (default `'enum'`) and is
|
|
206
203
|
* not in `allowlist` or `ignore_statuses`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface_invariants.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/surface_invariants.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAuB7B,OAAO,KAAK,EAAC,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAczE;;GAEG;AACH,eAAO,MAAM,mCAAmC,GAAI,SAAS,UAAU,KAAG,IAQzE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,SAAS,UAAU,KAAG,IASpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,SAAS,UAAU,KAAG,IAQrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gCAAgC,GAAI,SAAS,UAAU,KAAG,IAQtE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,SAAS,UAAU,KAAG,IAQrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,SAAS,UAAU,KAAG,IAIjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,SAAS,UAAU,KAAG,IAOhE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mCAAmC,GAAI,SAAS,UAAU,KAAG,IAezE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uCAAuC,GAAI,SAAS,UAAU,KAAG,IAgB7E,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oCAAoC,GAAI,SAAS,UAAU,KAAG,IAuC1E,CAAC;AA0CF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sCAAsC,GAAI,SAAS,UAAU,KAAG,IAU5E,CAAC;AAIF,4DAA4D;AAC5D,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpE,iEAAiE;AACjE,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,sBAAsB,CAAC;IACpC,qDAAqD;IACrD,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAClC;AA+BD
|
|
1
|
+
{"version":3,"file":"surface_invariants.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/surface_invariants.ts"],"names":[],"mappings":"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"}
|
|
@@ -278,7 +278,6 @@ const extract_error_codes = (schema) => {
|
|
|
278
278
|
* (`z.string()`) vs specific `z.literal()` or `z.enum()` error codes.
|
|
279
279
|
* Use the output to prioritize progressive tightening of error schemas.
|
|
280
280
|
*
|
|
281
|
-
* @param surface - the app surface to audit
|
|
282
281
|
* @returns audit entries for every route x status combination
|
|
283
282
|
*/
|
|
284
283
|
export const audit_error_schema_tightness = (surface) => {
|
|
@@ -423,8 +422,6 @@ export const DEFAULT_ERROR_SCHEMA_TIGHTNESS = {
|
|
|
423
422
|
* the configured threshold. Use `allowlist` and `ignore_statuses` to exclude
|
|
424
423
|
* known exceptions during progressive tightening.
|
|
425
424
|
*
|
|
426
|
-
* @param surface - the app surface to check
|
|
427
|
-
* @param options - threshold and exclusion configuration
|
|
428
425
|
* @throws AssertionError listing every route × status combination whose error
|
|
429
426
|
* schema specificity is below `min_specificity` (default `'enum'`) and is
|
|
430
427
|
* not in `allowlist` or `ignore_statuses`.
|
package/dist/ui/CLAUDE.md
CHANGED
|
@@ -238,7 +238,7 @@ destructive actions.
|
|
|
238
238
|
`connected`. Internal `#last_seq` for SSE gap fill on reconnect.
|
|
239
239
|
Methods: `fetch(options?)` (RPC), `fetch_permit_history`,
|
|
240
240
|
`subscribe()` (opens `EventSource` at `#stream_url`, default
|
|
241
|
-
`/api/admin/audit
|
|
241
|
+
`/api/admin/audit/stream`; prepends new events; refills gap
|
|
242
242
|
via `since_seq`), `disconnect()`. SSE stays on `EventSource` —
|
|
243
243
|
streaming is not an RPC concern.
|
|
244
244
|
- `admin_accounts_state.svelte.ts` — `AdminAccountsState` extends
|
|
@@ -32,7 +32,7 @@ export class AuditLogState extends Loadable {
|
|
|
32
32
|
constructor(options) {
|
|
33
33
|
super();
|
|
34
34
|
this.#get_rpc = options?.get_rpc ?? (() => null);
|
|
35
|
-
this.#stream_url = options?.stream_url ?? '/api/admin/audit
|
|
35
|
+
this.#stream_url = options?.stream_url ?? '/api/admin/audit/stream';
|
|
36
36
|
}
|
|
37
37
|
/** True when an RPC adapter is wired. `fetch`/`fetch_permit_history` no-op without it. */
|
|
38
38
|
get has_rpc() {
|
|
@@ -18,10 +18,7 @@ export type Alignment = 'start' | 'center' | 'end';
|
|
|
18
18
|
/**
|
|
19
19
|
* Generates CSS positioning styles for UI elements.
|
|
20
20
|
*
|
|
21
|
-
* @param position - where to position the element ('left', 'right', etc.)
|
|
22
|
-
* @param align - alignment along the position edge ('start', 'center', 'end')
|
|
23
21
|
* @param offset - distance from the position (CSS value)
|
|
24
|
-
* @returns CSS styles as a Record
|
|
25
22
|
* @throws UnreachableError if `position` is not a known `Position` value
|
|
26
23
|
*/
|
|
27
24
|
export declare const generate_position_styles: (position?: Position, align?: Alignment, offset?: string) => Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/position_helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"position_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/position_helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACpC,WAAU,QAAmB,EAC7B,QAAO,SAAoB,EAC3B,eAAY,KACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAiEvB,CAAC"}
|
|
@@ -7,10 +7,7 @@ import { UnreachableError } from '@fuzdev/fuz_util/error.js';
|
|
|
7
7
|
/**
|
|
8
8
|
* Generates CSS positioning styles for UI elements.
|
|
9
9
|
*
|
|
10
|
-
* @param position - where to position the element ('left', 'right', etc.)
|
|
11
|
-
* @param align - alignment along the position edge ('start', 'center', 'end')
|
|
12
10
|
* @param offset - distance from the position (CSS value)
|
|
13
|
-
* @returns CSS styles as a Record
|
|
14
11
|
* @throws UnreachableError if `position` is not a known `Position` value
|
|
15
12
|
*/
|
|
16
13
|
export const generate_position_styles = (position = 'center', align = 'center', offset = '0') => {
|
|
@@ -35,8 +35,7 @@ export declare class SidebarState {
|
|
|
35
35
|
* Show the sidebar and enable the toggle. The returned disposer hides
|
|
36
36
|
* and disables on cleanup — pair with `$effect` for scoped activation.
|
|
37
37
|
*
|
|
38
|
-
* @
|
|
39
|
-
* @mutates `this`
|
|
38
|
+
* @mutates `this` - sets `enabled` and `show_sidebar`; disposer clears both
|
|
40
39
|
*/
|
|
41
40
|
activate(): () => void;
|
|
42
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/sidebar_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;2CAAwB,YAAY;4BAAZ,YAAY;uBAAZ,YAAY,WAAZ,YAAY;CAAG,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,qBAAa,YAAY;;IAKxB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,YAAY,IAAI,OAAO,CAG1B;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAE9B;gBAEW,OAAO,CAAC,EAAE,mBAAmB;IAIzC,cAAc,CAAC,KAAK,GAAE,OAA4B,GAAG,IAAI;IAIzD
|
|
1
|
+
{"version":3,"file":"sidebar_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/sidebar_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;2CAAwB,YAAY;4BAAZ,YAAY;uBAAZ,YAAY,WAAZ,YAAY;CAAG,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;CACxB;AAED,qBAAa,YAAY;;IAKxB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAEzB;IAED,IAAI,YAAY,IAAI,OAAO,CAG1B;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,EAE9B;gBAEW,OAAO,CAAC,EAAE,mBAAmB;IAIzC,cAAc,CAAC,KAAK,GAAE,OAA4B,GAAG,IAAI;IAIzD;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,IAAI;CAQtB"}
|
|
@@ -40,8 +40,7 @@ export class SidebarState {
|
|
|
40
40
|
* Show the sidebar and enable the toggle. The returned disposer hides
|
|
41
41
|
* and disables on cleanup — pair with `$effect` for scoped activation.
|
|
42
42
|
*
|
|
43
|
-
* @
|
|
44
|
-
* @mutates `this`
|
|
43
|
+
* @mutates `this` - sets `enabled` and `show_sidebar`; disposer clears both
|
|
45
44
|
*/
|
|
46
45
|
activate() {
|
|
47
46
|
this.enabled = true;
|
package/dist/ui/ui_fetch.d.ts
CHANGED
|
@@ -9,10 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
11
11
|
* Fetch with credentials included (sends cookies).
|
|
12
|
-
*
|
|
13
|
-
* @param input - the request URL or Request object
|
|
14
|
-
* @param init - optional fetch init options
|
|
15
|
-
* @returns fetch response promise
|
|
16
12
|
*/
|
|
17
13
|
export declare const ui_fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
18
14
|
/**
|
|
@@ -21,9 +17,7 @@ export declare const ui_fetch: (input: RequestInfo | URL, init?: RequestInit) =>
|
|
|
21
17
|
* Handles responses with non-JSON bodies (e.g. HTML 404 pages)
|
|
22
18
|
* that would throw on `response.json()`.
|
|
23
19
|
*
|
|
24
|
-
* @param
|
|
25
|
-
* @param fallback - fallback message when no `.error` field is found
|
|
26
|
-
* @returns error message string
|
|
20
|
+
* @param fallback - message when no `.error` field is found
|
|
27
21
|
*/
|
|
28
22
|
export declare const parse_response_error: (response: Response, fallback?: string) => Promise<string>;
|
|
29
23
|
//# sourceMappingURL=ui_fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui_fetch.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH
|
|
1
|
+
{"version":3,"file":"ui_fetch.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,WAAW,GAAG,GAAG,EAAE,OAAO,WAAW,KAAG,OAAO,CAAC,QAAQ,CACxC,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAChC,UAAU,QAAQ,EAClB,WAAW,MAAM,KACf,OAAO,CAAC,MAAM,CAQhB,CAAC"}
|
package/dist/ui/ui_fetch.js
CHANGED
|
@@ -9,10 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/**
|
|
11
11
|
* Fetch with credentials included (sends cookies).
|
|
12
|
-
*
|
|
13
|
-
* @param input - the request URL or Request object
|
|
14
|
-
* @param init - optional fetch init options
|
|
15
|
-
* @returns fetch response promise
|
|
16
12
|
*/
|
|
17
13
|
export const ui_fetch = (input, init) => fetch(input, { ...init, credentials: 'include' });
|
|
18
14
|
/**
|
|
@@ -21,9 +17,7 @@ export const ui_fetch = (input, init) => fetch(input, { ...init, credentials: 'i
|
|
|
21
17
|
* Handles responses with non-JSON bodies (e.g. HTML 404 pages)
|
|
22
18
|
* that would throw on `response.json()`.
|
|
23
19
|
*
|
|
24
|
-
* @param
|
|
25
|
-
* @param fallback - fallback message when no `.error` field is found
|
|
26
|
-
* @returns error message string
|
|
20
|
+
* @param fallback - message when no `.error` field is found
|
|
27
21
|
*/
|
|
28
22
|
export const parse_response_error = async (response, fallback) => {
|
|
29
23
|
const default_message = fallback ?? `Error: ${response.status}`;
|
package/dist/ui/ui_format.d.ts
CHANGED
|
@@ -9,54 +9,42 @@
|
|
|
9
9
|
/**
|
|
10
10
|
* Format a timestamp as a relative time string.
|
|
11
11
|
*
|
|
12
|
-
* @param timestamp - a date value (`string`, `number`, or `Date`)
|
|
13
|
-
* @param now - reference time in ms since epoch, defaults to `Date.now()`
|
|
14
12
|
* @returns human-friendly relative time (e.g. "2m ago", "3h ago", "5d ago", "2mo ago", "1y ago")
|
|
15
13
|
*/
|
|
16
14
|
export declare const format_relative_time: (timestamp: string | number | Date, now?: number) => string;
|
|
17
15
|
/**
|
|
18
16
|
* Format milliseconds as a human-friendly uptime string.
|
|
19
17
|
*
|
|
20
|
-
* @param ms - duration in milliseconds
|
|
21
18
|
* @returns human-friendly duration (e.g. "45s", "12m", "3h 15m", "2d 5h")
|
|
22
19
|
*/
|
|
23
20
|
export declare const format_uptime: (ms: number) => string;
|
|
24
21
|
/**
|
|
25
22
|
* Truncate a string by keeping the start and end, with a separator in the middle.
|
|
26
23
|
*
|
|
27
|
-
* @param
|
|
28
|
-
* @param max_length - maximum total length including separator
|
|
29
|
-
* @param separator - the middle separator
|
|
24
|
+
* @param max_length - total length including separator
|
|
30
25
|
* @returns the truncated string, or the original if it fits
|
|
31
26
|
*/
|
|
32
27
|
export declare const truncate_middle: (str: string, max_length: number, separator?: string) => string;
|
|
33
28
|
/**
|
|
34
29
|
* Truncate a UUID for display, keeping start and end visible.
|
|
35
30
|
*
|
|
36
|
-
* @param uuid - the UUID string to truncate
|
|
37
31
|
* @returns a 12-character truncated UUID like `a1b2c…7890`
|
|
38
32
|
*/
|
|
39
33
|
export declare const truncate_uuid: (uuid: string) => string;
|
|
40
34
|
/**
|
|
41
35
|
* Format an arbitrary value for table cell display.
|
|
42
|
-
*
|
|
43
|
-
* @param value - the value to format
|
|
44
|
-
* @returns string representation suitable for UI display
|
|
45
36
|
*/
|
|
46
37
|
export declare const format_value: (value: unknown) => string;
|
|
47
38
|
/**
|
|
48
39
|
* Format a timestamp as an absolute datetime string for title attributes.
|
|
49
40
|
*
|
|
50
|
-
* @param timestamp - a date value
|
|
51
41
|
* @returns readable absolute datetime like `"2026-03-21 14:30:00 UTC"`
|
|
52
42
|
*/
|
|
53
43
|
export declare const format_datetime_local: (timestamp: string | number | Date) => string;
|
|
54
44
|
/**
|
|
55
45
|
* Format audit event metadata for display based on event type.
|
|
56
46
|
*
|
|
57
|
-
* @param event_type -
|
|
58
|
-
* @param metadata - the metadata object (may be null)
|
|
59
|
-
* @returns human-readable summary string
|
|
47
|
+
* @param event_type - builtin or consumer-registered audit event type
|
|
60
48
|
*/
|
|
61
49
|
export declare const format_audit_metadata: (event_type: string, metadata: Record<string, unknown> | null) => string;
|
|
62
50
|
//# sourceMappingURL=ui_format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui_format.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH
|
|
1
|
+
{"version":3,"file":"ui_format.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/ui_format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAChC,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,EACjC,MAAK,MAAmB,KACtB,MA2BF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,IAAI,MAAM,KAAG,MAY1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,EAAE,YAAY,MAAM,EAAE,kBAAe,KAAG,MAOlF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,KAAG,MAAmC,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,MAS7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,GAAG,MAAM,GAAG,IAAI,KAAG,MAOzE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GACjC,YAAY,MAAM,EAClB,UAAU,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,KACtC,MAuDF,CAAC"}
|
package/dist/ui/ui_format.js
CHANGED
|
@@ -9,8 +9,6 @@
|
|
|
9
9
|
/**
|
|
10
10
|
* Format a timestamp as a relative time string.
|
|
11
11
|
*
|
|
12
|
-
* @param timestamp - a date value (`string`, `number`, or `Date`)
|
|
13
|
-
* @param now - reference time in ms since epoch, defaults to `Date.now()`
|
|
14
12
|
* @returns human-friendly relative time (e.g. "2m ago", "3h ago", "5d ago", "2mo ago", "1y ago")
|
|
15
13
|
*/
|
|
16
14
|
export const format_relative_time = (timestamp, now = Date.now()) => {
|
|
@@ -49,7 +47,6 @@ export const format_relative_time = (timestamp, now = Date.now()) => {
|
|
|
49
47
|
/**
|
|
50
48
|
* Format milliseconds as a human-friendly uptime string.
|
|
51
49
|
*
|
|
52
|
-
* @param ms - duration in milliseconds
|
|
53
50
|
* @returns human-friendly duration (e.g. "45s", "12m", "3h 15m", "2d 5h")
|
|
54
51
|
*/
|
|
55
52
|
export const format_uptime = (ms) => {
|
|
@@ -72,9 +69,7 @@ export const format_uptime = (ms) => {
|
|
|
72
69
|
/**
|
|
73
70
|
* Truncate a string by keeping the start and end, with a separator in the middle.
|
|
74
71
|
*
|
|
75
|
-
* @param
|
|
76
|
-
* @param max_length - maximum total length including separator
|
|
77
|
-
* @param separator - the middle separator
|
|
72
|
+
* @param max_length - total length including separator
|
|
78
73
|
* @returns the truncated string, or the original if it fits
|
|
79
74
|
*/
|
|
80
75
|
export const truncate_middle = (str, max_length, separator = '…') => {
|
|
@@ -90,15 +85,11 @@ export const truncate_middle = (str, max_length, separator = '…') => {
|
|
|
90
85
|
/**
|
|
91
86
|
* Truncate a UUID for display, keeping start and end visible.
|
|
92
87
|
*
|
|
93
|
-
* @param uuid - the UUID string to truncate
|
|
94
88
|
* @returns a 12-character truncated UUID like `a1b2c…7890`
|
|
95
89
|
*/
|
|
96
90
|
export const truncate_uuid = (uuid) => truncate_middle(uuid, 12);
|
|
97
91
|
/**
|
|
98
92
|
* Format an arbitrary value for table cell display.
|
|
99
|
-
*
|
|
100
|
-
* @param value - the value to format
|
|
101
|
-
* @returns string representation suitable for UI display
|
|
102
93
|
*/
|
|
103
94
|
export const format_value = (value) => {
|
|
104
95
|
if (value === null)
|
|
@@ -118,7 +109,6 @@ export const format_value = (value) => {
|
|
|
118
109
|
/**
|
|
119
110
|
* Format a timestamp as an absolute datetime string for title attributes.
|
|
120
111
|
*
|
|
121
|
-
* @param timestamp - a date value
|
|
122
112
|
* @returns readable absolute datetime like `"2026-03-21 14:30:00 UTC"`
|
|
123
113
|
*/
|
|
124
114
|
export const format_datetime_local = (timestamp) => {
|
|
@@ -133,9 +123,7 @@ export const format_datetime_local = (timestamp) => {
|
|
|
133
123
|
/**
|
|
134
124
|
* Format audit event metadata for display based on event type.
|
|
135
125
|
*
|
|
136
|
-
* @param event_type -
|
|
137
|
-
* @param metadata - the metadata object (may be null)
|
|
138
|
-
* @returns human-readable summary string
|
|
126
|
+
* @param event_type - builtin or consumer-registered audit event type
|
|
139
127
|
*/
|
|
140
128
|
export const format_audit_metadata = (event_type, metadata) => {
|
|
141
129
|
if (!metadata)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fuzdev/fuz_app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.54.0",
|
|
4
4
|
"description": "fullstack app library",
|
|
5
5
|
"glyph": "🗝",
|
|
6
6
|
"logo": "logo.svg",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@fuzdev/blake3_wasm": "^0.1.0",
|
|
46
46
|
"@fuzdev/fuz_code": "^0.45.1",
|
|
47
47
|
"@fuzdev/fuz_css": "^0.59.0",
|
|
48
|
-
"@fuzdev/fuz_ui": "^0.
|
|
48
|
+
"@fuzdev/fuz_ui": "^0.192.0",
|
|
49
49
|
"@fuzdev/fuz_util": "^0.59.0",
|
|
50
50
|
"@fuzdev/gro": "^0.199.0",
|
|
51
51
|
"@jridgewell/trace-mapping": "^0.3.31",
|