@fuzdev/fuz_app 0.104.0 → 0.105.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 +2 -2
- package/dist/actions/action_bridge.d.ts.map +1 -1
- package/dist/actions/action_bridge.js +2 -2
- package/dist/actions/action_codegen.d.ts.map +1 -1
- package/dist/actions/action_codegen.js +3 -3
- package/dist/actions/action_dispatcher.d.ts.map +1 -1
- package/dist/actions/action_dispatcher.js +3 -3
- package/dist/actions/action_event.d.ts.map +1 -1
- package/dist/actions/action_event.js +11 -11
- package/dist/actions/action_event_data.d.ts.map +1 -1
- package/dist/actions/action_event_data.js +2 -2
- package/dist/actions/action_event_helpers.d.ts.map +1 -1
- package/dist/actions/action_event_helpers.js +2 -2
- package/dist/actions/action_event_types.d.ts.map +1 -1
- package/dist/actions/action_event_types.js +4 -4
- package/dist/actions/action_rpc.d.ts.map +1 -1
- package/dist/actions/action_rpc.js +13 -13
- package/dist/actions/action_spec.d.ts.map +1 -1
- package/dist/actions/action_spec.js +6 -6
- package/dist/actions/action_types.d.ts.map +1 -1
- package/dist/actions/broadcast_api.d.ts.map +1 -1
- package/dist/actions/broadcast_api.js +1 -1
- package/dist/actions/cancel.d.ts.map +1 -1
- package/dist/actions/cancel.js +3 -3
- package/dist/actions/compile_action_registry.d.ts.map +1 -1
- package/dist/actions/frontend_rpc_client.d.ts.map +1 -1
- package/dist/actions/frontend_rpc_client.js +3 -3
- package/dist/actions/heartbeat.d.ts.map +1 -1
- package/dist/actions/heartbeat.js +2 -2
- package/dist/actions/peer_ping.d.ts.map +1 -1
- package/dist/actions/peer_ping.js +6 -6
- package/dist/actions/peer_request.d.ts.map +1 -1
- package/dist/actions/perform_action.d.ts.map +1 -1
- package/dist/actions/perform_action.js +13 -13
- package/dist/actions/protocol.d.ts.map +1 -1
- package/dist/actions/protocol.js +1 -1
- package/dist/actions/register_action_ws.d.ts.map +1 -1
- package/dist/actions/register_action_ws.js +14 -11
- package/dist/actions/register_ws_endpoint.d.ts.map +1 -1
- package/dist/actions/register_ws_endpoint.js +3 -3
- package/dist/actions/request_tracker.svelte.d.ts.map +1 -1
- package/dist/actions/request_tracker.svelte.js +2 -2
- package/dist/actions/rpc_client.d.ts.map +1 -1
- package/dist/actions/rpc_client.js +7 -7
- package/dist/actions/socket.svelte.d.ts.map +1 -1
- package/dist/actions/socket.svelte.js +4 -3
- package/dist/actions/transports.d.ts.map +1 -1
- package/dist/actions/transports_http.d.ts.map +1 -1
- package/dist/actions/transports_http.js +7 -7
- package/dist/actions/transports_ws.d.ts.map +1 -1
- package/dist/actions/transports_ws.js +3 -3
- package/dist/actions/transports_ws_auth_guard.d.ts +4 -4
- package/dist/actions/transports_ws_auth_guard.d.ts.map +1 -1
- package/dist/actions/transports_ws_auth_guard.js +5 -5
- package/dist/actions/transports_ws_backend.d.ts.map +1 -1
- package/dist/actions/transports_ws_backend.js +2 -2
- package/dist/actions/ws_endpoint_spec.d.ts +2 -2
- package/dist/actions/ws_endpoint_spec.d.ts.map +1 -1
- package/dist/auth/CLAUDE.md +11 -7
- package/dist/auth/account_action_specs.d.ts +4 -4
- package/dist/auth/account_action_specs.d.ts.map +1 -1
- package/dist/auth/account_action_specs.js +18 -19
- package/dist/auth/account_actions.d.ts +3 -3
- package/dist/auth/account_actions.d.ts.map +1 -1
- package/dist/auth/account_actions.js +10 -10
- package/dist/auth/account_queries.d.ts.map +1 -1
- package/dist/auth/account_queries.js +6 -6
- package/dist/auth/account_route_schema.d.ts.map +1 -1
- package/dist/auth/account_route_schema.js +19 -19
- package/dist/auth/account_routes.d.ts +2 -2
- package/dist/auth/account_routes.d.ts.map +1 -1
- package/dist/auth/account_routes.js +27 -27
- package/dist/auth/account_schema.d.ts +13 -2
- package/dist/auth/account_schema.d.ts.map +1 -1
- package/dist/auth/account_schema.js +22 -11
- package/dist/auth/actor_lookup_action_specs.d.ts.map +1 -1
- package/dist/auth/actor_lookup_action_specs.js +5 -5
- package/dist/auth/actor_lookup_actions.d.ts +4 -2
- package/dist/auth/actor_lookup_actions.d.ts.map +1 -1
- package/dist/auth/actor_lookup_actions.js +3 -3
- package/dist/auth/actor_lookup_queries.d.ts.map +1 -1
- package/dist/auth/actor_search_action_specs.d.ts.map +1 -1
- package/dist/auth/actor_search_action_specs.js +6 -6
- package/dist/auth/actor_search_actions.d.ts +4 -2
- package/dist/auth/actor_search_actions.d.ts.map +1 -1
- package/dist/auth/actor_search_actions.js +5 -5
- package/dist/auth/actor_search_queries.d.ts.map +1 -1
- package/dist/auth/admin_action_specs.d.ts +2 -2
- package/dist/auth/admin_action_specs.d.ts.map +1 -1
- package/dist/auth/admin_action_specs.js +55 -55
- package/dist/auth/admin_actions.d.ts +5 -5
- package/dist/auth/admin_actions.d.ts.map +1 -1
- package/dist/auth/admin_actions.js +45 -44
- package/dist/auth/all_action_spec_registries.d.ts.map +1 -1
- package/dist/auth/all_action_spec_registries.js +1 -1
- package/dist/auth/all_cell_actions.d.ts.map +1 -1
- package/dist/auth/all_cell_actions.js +1 -1
- package/dist/auth/api_token.d.ts.map +1 -1
- package/dist/auth/api_token_queries.d.ts +7 -2
- package/dist/auth/api_token_queries.d.ts.map +1 -1
- package/dist/auth/api_token_queries.js +8 -3
- package/dist/auth/app_settings_queries.d.ts.map +1 -1
- package/dist/auth/app_settings_schema.d.ts.map +1 -1
- package/dist/auth/app_settings_schema.js +3 -3
- package/dist/auth/audit_emitter.d.ts +28 -20
- package/dist/auth/audit_emitter.d.ts.map +1 -1
- package/dist/auth/audit_emitter.js +37 -19
- package/dist/auth/audit_log_ddl.js +1 -1
- package/dist/auth/audit_log_queries.d.ts.map +1 -1
- package/dist/auth/audit_log_queries.js +2 -2
- package/dist/auth/audit_log_route_schema.d.ts.map +1 -1
- package/dist/auth/audit_log_route_schema.js +1 -1
- package/dist/auth/audit_log_routes.d.ts.map +1 -1
- package/dist/auth/audit_log_routes.js +3 -3
- package/dist/auth/audit_log_schema.d.ts +2 -2
- package/dist/auth/audit_log_schema.d.ts.map +1 -1
- package/dist/auth/audit_log_schema.js +69 -68
- package/dist/auth/auth_ddl.js +3 -3
- package/dist/auth/auth_guard_resolver.d.ts.map +1 -1
- package/dist/auth/bearer_auth.d.ts.map +1 -1
- package/dist/auth/bootstrap_account.d.ts.map +1 -1
- package/dist/auth/bootstrap_account.js +5 -5
- package/dist/auth/bootstrap_route_schema.d.ts.map +1 -1
- package/dist/auth/bootstrap_route_schema.js +6 -6
- package/dist/auth/bootstrap_routes.d.ts.map +1 -1
- package/dist/auth/bootstrap_routes.js +7 -7
- package/dist/auth/cell_action_specs.d.ts +1 -1
- package/dist/auth/cell_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_action_specs.js +47 -47
- package/dist/auth/cell_actions.d.ts +2 -2
- package/dist/auth/cell_actions.d.ts.map +1 -1
- package/dist/auth/cell_actions.js +37 -37
- package/dist/auth/cell_audit_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_audit_action_specs.js +4 -4
- package/dist/auth/cell_audit_actions.d.ts.map +1 -1
- package/dist/auth/cell_audit_actions.js +3 -3
- package/dist/auth/cell_audit_events.d.ts.map +1 -1
- package/dist/auth/cell_audit_events.js +5 -5
- package/dist/auth/cell_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_audit_metadata.js +3 -3
- package/dist/auth/cell_authorize.d.ts.map +1 -1
- package/dist/auth/cell_data_schema.d.ts.map +1 -1
- package/dist/auth/cell_data_schema.js +1 -1
- package/dist/auth/cell_field_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_field_action_specs.js +16 -16
- package/dist/auth/cell_field_actions.d.ts +2 -2
- package/dist/auth/cell_field_actions.d.ts.map +1 -1
- package/dist/auth/cell_field_actions.js +11 -11
- package/dist/auth/cell_field_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_field_audit_metadata.js +2 -2
- package/dist/auth/cell_grant_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_grant_action_specs.js +15 -15
- package/dist/auth/cell_grant_actions.d.ts +2 -2
- package/dist/auth/cell_grant_actions.d.ts.map +1 -1
- package/dist/auth/cell_grant_actions.js +12 -12
- package/dist/auth/cell_grant_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_grant_audit_metadata.js +3 -3
- package/dist/auth/cell_item_action_specs.d.ts +6 -2
- package/dist/auth/cell_item_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_item_action_specs.js +25 -21
- package/dist/auth/cell_item_actions.d.ts +2 -2
- package/dist/auth/cell_item_actions.d.ts.map +1 -1
- package/dist/auth/cell_item_actions.js +14 -14
- package/dist/auth/cell_item_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_item_audit_metadata.js +3 -3
- package/dist/auth/cell_relation_visibility.d.ts.map +1 -1
- package/dist/auth/cleanup.d.ts.map +1 -1
- package/dist/auth/cleanup.js +2 -2
- package/dist/auth/credential_type_schema.d.ts.map +1 -1
- package/dist/auth/credential_type_schema.js +5 -5
- package/dist/auth/daemon_token.d.ts.map +1 -1
- package/dist/auth/daemon_token_middleware.d.ts.map +1 -1
- package/dist/auth/daemon_token_middleware.js +2 -2
- package/dist/auth/deps.d.ts +20 -5
- package/dist/auth/deps.d.ts.map +1 -1
- package/dist/auth/grant_path_schema.d.ts.map +1 -1
- package/dist/auth/grant_path_schema.js +8 -8
- package/dist/auth/invite_queries.d.ts.map +1 -1
- package/dist/auth/invite_schema.d.ts.map +1 -1
- package/dist/auth/invite_schema.js +2 -2
- package/dist/auth/keyring.d.ts.map +1 -1
- package/dist/auth/keyring.js +1 -1
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +7 -7
- package/dist/auth/migrations.d.ts.map +1 -1
- package/dist/auth/migrations.js +22 -20
- package/dist/auth/password.d.ts.map +1 -1
- package/dist/auth/password_argon2.d.ts.map +1 -1
- package/dist/auth/password_argon2.js +2 -2
- package/dist/auth/request_context.d.ts.map +1 -1
- package/dist/auth/request_context.js +7 -7
- package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_action_specs.js +35 -35
- package/dist/auth/role_grant_offer_actions.d.ts +7 -4
- package/dist/auth/role_grant_offer_actions.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_actions.js +43 -43
- package/dist/auth/role_grant_offer_notifications.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_notifications.js +13 -13
- package/dist/auth/role_grant_offer_queries.d.ts +1 -1
- package/dist/auth/role_grant_offer_queries.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_queries.js +11 -11
- package/dist/auth/role_grant_offer_schema.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_schema.js +7 -7
- package/dist/auth/role_grant_queries.d.ts.map +1 -1
- package/dist/auth/role_grant_queries.js +3 -3
- package/dist/auth/role_schema.d.ts.map +1 -1
- package/dist/auth/role_schema.js +7 -7
- package/dist/auth/scope_kind_schema.d.ts.map +1 -1
- package/dist/auth/self_service_role_action_specs.d.ts.map +1 -1
- package/dist/auth/self_service_role_action_specs.js +5 -5
- package/dist/auth/self_service_role_actions.d.ts +3 -3
- package/dist/auth/self_service_role_actions.d.ts.map +1 -1
- package/dist/auth/self_service_role_actions.js +9 -9
- package/dist/auth/session_cookie.d.ts.map +1 -1
- package/dist/auth/session_cookie.js +3 -3
- package/dist/auth/session_middleware.d.ts.map +1 -1
- package/dist/auth/session_middleware.js +4 -4
- package/dist/auth/session_queries.d.ts +14 -4
- package/dist/auth/session_queries.d.ts.map +1 -1
- package/dist/auth/session_queries.js +13 -3
- package/dist/auth/signup_route_schema.d.ts.map +1 -1
- package/dist/auth/signup_route_schema.js +6 -6
- package/dist/auth/signup_routes.d.ts.map +1 -1
- package/dist/auth/signup_routes.js +11 -11
- package/dist/auth/standard_action_specs.d.ts.map +1 -1
- package/dist/auth/standard_action_specs.js +1 -1
- package/dist/auth/standard_rpc_actions.d.ts +4 -4
- package/dist/auth/standard_rpc_actions.d.ts.map +1 -1
- package/dist/auth/standard_rpc_actions.js +3 -3
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +3 -3
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +1 -1
- package/dist/cli/logger.d.ts.map +1 -1
- package/dist/cli/logger.js +1 -1
- package/dist/cli/util.d.ts.map +1 -1
- package/dist/cli/util.js +1 -1
- package/dist/db/cell_audit_queries.d.ts.map +1 -1
- package/dist/db/cell_audit_queries.js +1 -1
- package/dist/db/cell_ddl.d.ts.map +1 -1
- package/dist/db/cell_ddl.js +7 -7
- package/dist/db/cell_field_queries.d.ts.map +1 -1
- package/dist/db/cell_grant_queries.d.ts.map +1 -1
- package/dist/db/cell_grant_queries.js +1 -1
- package/dist/db/cell_history_ddl.d.ts.map +1 -1
- package/dist/db/cell_history_ddl.js +4 -4
- package/dist/db/cell_item_queries.d.ts.map +1 -1
- package/dist/db/cell_queries.d.ts +1 -1
- package/dist/db/cell_queries.d.ts.map +1 -1
- package/dist/db/cell_queries.js +3 -3
- package/dist/db/create_db.d.ts.map +1 -1
- package/dist/db/create_db.js +1 -1
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db_pg.d.ts.map +1 -1
- package/dist/db/db_pg.js +1 -1
- package/dist/db/db_pglite.d.ts.map +1 -1
- package/dist/db/db_pglite.js +1 -1
- package/dist/db/fact_ddl.d.ts.map +1 -1
- package/dist/db/fact_ddl.js +3 -3
- package/dist/db/fact_disk_storage.d.ts +1 -1
- package/dist/db/fact_disk_storage.d.ts.map +1 -1
- package/dist/db/fact_disk_storage.js +6 -6
- package/dist/db/fact_queries.d.ts +1 -1
- package/dist/db/fact_queries.d.ts.map +1 -1
- package/dist/db/fact_queries.js +2 -2
- package/dist/db/fact_store.d.ts +1 -1
- package/dist/db/fact_store.d.ts.map +1 -1
- package/dist/db/fact_store.js +9 -9
- package/dist/db/fact_store_errors.d.ts.map +1 -1
- package/dist/db/file_fact_url.d.ts +1 -1
- package/dist/db/file_fact_url.d.ts.map +1 -1
- package/dist/db/file_fact_url.js +1 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/pg_error.d.ts.map +1 -1
- package/dist/db/query_deps.d.ts.map +1 -1
- package/dist/db/schema_ready.d.ts.map +1 -1
- package/dist/db/schema_ready.js +2 -2
- package/dist/db/status.d.ts.map +1 -1
- package/dist/db/status.js +6 -6
- package/dist/dev/setup.d.ts.map +1 -1
- package/dist/dev/setup.js +6 -6
- package/dist/env/dotenv.d.ts.map +1 -1
- package/dist/env/load.d.ts.map +1 -1
- package/dist/env/resolve.d.ts.map +1 -1
- package/dist/hono_context.d.ts.map +1 -1
- package/dist/hono_context.js +2 -2
- package/dist/http/auth_shape.d.ts.map +1 -1
- package/dist/http/auth_shape.js +6 -6
- package/dist/http/client_ip.d.ts.map +1 -1
- package/dist/http/common_routes.d.ts.map +1 -1
- package/dist/http/common_routes.js +8 -8
- package/dist/http/db_routes.d.ts.map +1 -1
- package/dist/http/db_routes.js +27 -23
- package/dist/http/error_schemas.d.ts +1 -1
- package/dist/http/error_schemas.d.ts.map +1 -1
- package/dist/http/error_schemas.js +13 -13
- package/dist/http/jsonrpc.d.ts.map +1 -1
- package/dist/http/jsonrpc.js +9 -9
- package/dist/http/jsonrpc_errors.d.ts.map +1 -1
- package/dist/http/jsonrpc_errors.js +21 -21
- package/dist/http/jsonrpc_helpers.d.ts.map +1 -1
- package/dist/http/jsonrpc_helpers.js +7 -7
- package/dist/http/middleware_spec.d.ts.map +1 -1
- package/dist/http/origin.d.ts.map +1 -1
- package/dist/http/pending_effects.d.ts.map +1 -1
- package/dist/http/proxy.d.ts.map +1 -1
- package/dist/http/proxy.js +1 -1
- package/dist/http/route_spec.d.ts.map +1 -1
- package/dist/http/route_spec.js +6 -6
- package/dist/http/schema_helpers.d.ts.map +1 -1
- package/dist/http/schema_helpers.js +1 -1
- package/dist/http/surface.d.ts.map +1 -1
- package/dist/http/surface.js +11 -11
- package/dist/http/surface_query.d.ts.map +1 -1
- package/dist/http/surface_query.js +1 -1
- package/dist/primitive_schemas.d.ts.map +1 -1
- package/dist/primitive_schemas.js +1 -1
- package/dist/rate_limiter.d.ts.map +1 -1
- package/dist/rate_limiter.js +4 -4
- package/dist/realtime/sse.d.ts.map +1 -1
- package/dist/realtime/sse.js +2 -2
- package/dist/realtime/sse_auth_guard.d.ts +4 -4
- package/dist/realtime/sse_auth_guard.d.ts.map +1 -1
- package/dist/realtime/sse_auth_guard.js +8 -8
- package/dist/realtime/subscriber_registry.d.ts.map +1 -1
- package/dist/runtime/deno.d.ts.map +1 -1
- package/dist/runtime/deno.js +7 -7
- package/dist/runtime/deps.d.ts.map +1 -1
- package/dist/runtime/fs.d.ts.map +1 -1
- package/dist/runtime/mock.d.ts.map +1 -1
- package/dist/runtime/mock.js +3 -3
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +7 -7
- package/dist/schema_meta.d.ts.map +1 -1
- package/dist/server/app_backend.d.ts +3 -3
- package/dist/server/app_backend.d.ts.map +1 -1
- package/dist/server/app_backend.js +3 -3
- package/dist/server/app_server.d.ts +6 -6
- package/dist/server/app_server.d.ts.map +1 -1
- package/dist/server/app_server.js +32 -32
- package/dist/server/app_server_context.d.ts.map +1 -1
- package/dist/server/env.d.ts.map +1 -1
- package/dist/server/env.js +9 -9
- package/dist/server/fact_write.d.ts +1 -1
- package/dist/server/fact_write.d.ts.map +1 -1
- package/dist/server/fact_write.js +2 -1
- package/dist/server/file_fact_fetcher.d.ts.map +1 -1
- package/dist/server/file_fact_fetcher.js +1 -1
- package/dist/server/serve_fact_route.d.ts.map +1 -1
- package/dist/server/serve_fact_route.js +15 -13
- package/dist/server/startup.d.ts.map +1 -1
- package/dist/server/static.d.ts.map +1 -1
- package/dist/server/validate_nginx.js +1 -1
- package/dist/server/x_accel.d.ts.map +1 -1
- package/dist/server/x_accel.js +1 -1
- package/dist/testing/CLAUDE.md +2 -2
- package/dist/testing/admin_integration.d.ts.map +1 -1
- package/dist/testing/admin_integration.js +62 -62
- package/dist/testing/adversarial_404.d.ts.map +1 -1
- package/dist/testing/adversarial_404.js +1 -1
- package/dist/testing/adversarial_headers.d.ts.map +1 -1
- package/dist/testing/adversarial_headers.js +15 -15
- package/dist/testing/adversarial_input.d.ts.map +1 -1
- package/dist/testing/adversarial_input.js +22 -22
- package/dist/testing/app_server.d.ts.map +1 -1
- package/dist/testing/app_server.js +32 -32
- package/dist/testing/assertions.d.ts.map +1 -1
- package/dist/testing/attack_surface.d.ts.map +1 -1
- package/dist/testing/attack_surface.js +12 -12
- package/dist/testing/audit_completeness.d.ts.map +1 -1
- package/dist/testing/audit_completeness.js +41 -41
- package/dist/testing/audit_drift_guard.d.ts +3 -1
- package/dist/testing/audit_drift_guard.d.ts.map +1 -1
- package/dist/testing/audit_drift_guard.js +12 -6
- package/dist/testing/auth_apps.d.ts.map +1 -1
- package/dist/testing/auth_apps.js +4 -4
- package/dist/testing/bootstrap_success.d.ts.map +1 -1
- package/dist/testing/bootstrap_success.js +11 -11
- package/dist/testing/connection_closer_helpers.d.ts.map +1 -1
- package/dist/testing/connection_closer_helpers.js +1 -1
- package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
- package/dist/testing/cross_backend/account_lifecycle.js +1 -1
- package/dist/testing/cross_backend/action_manifest.d.ts.map +1 -1
- package/dist/testing/cross_backend/action_manifest.js +4 -4
- package/dist/testing/cross_backend/action_manifest_parity.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_lookup.js +3 -3
- package/dist/testing/cross_backend/actor_search.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_search.js +5 -5
- package/dist/testing/cross_backend/app_settings.d.ts.map +1 -1
- package/dist/testing/cross_backend/app_settings.js +6 -6
- package/dist/testing/cross_backend/backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/bench_report.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/bench_report.js +5 -5
- package/dist/testing/cross_backend/bench/run_cross_impl_bench.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/run_cross_impl_bench.js +2 -2
- package/dist/testing/cross_backend/bench/scenario.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/scenario.js +1 -1
- package/dist/testing/cross_backend/body_size.d.ts.map +1 -1
- package/dist/testing/cross_backend/body_size.js +1 -1
- package/dist/testing/cross_backend/bootstrap_backend.d.ts.map +1 -1
- package/dist/testing/cross_backend/bootstrap_backend.js +2 -2
- package/dist/testing/cross_backend/build_test_backend_paths.js +1 -1
- package/dist/testing/cross_backend/capabilities.js +2 -2
- package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_crud.js +5 -2
- package/dist/testing/cross_backend/cell_gated_create.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_gated_create.js +8 -7
- package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_grant_role.js +2 -2
- package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_relations.js +13 -13
- package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_case.js +11 -11
- package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_table.js +11 -11
- package/dist/testing/cross_backend/cookie_attributes.d.ts.map +1 -1
- package/dist/testing/cross_backend/cookie_attributes.js +4 -4
- package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts +1 -1
- package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/create_cross_backend_global_setup.js +1 -1
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts +1 -1
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.js +1 -1
- package/dist/testing/cross_backend/credential_header_robustness.js +1 -1
- package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_backend_configs.js +12 -12
- package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_spine_surface.js +9 -9
- package/dist/testing/cross_backend/fact_serving.d.ts.map +1 -1
- package/dist/testing/cross_backend/fact_serving.js +2 -2
- package/dist/testing/cross_backend/full_spine_mount.d.ts.map +1 -1
- package/dist/testing/cross_backend/full_spine_mount.js +4 -4
- package/dist/testing/cross_backend/identity_parity.d.ts.map +1 -1
- package/dist/testing/cross_backend/identity_parity.js +28 -24
- package/dist/testing/cross_backend/in_process_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/in_process_setup.js +9 -9
- package/dist/testing/cross_backend/login_security.d.ts.map +1 -1
- package/dist/testing/cross_backend/login_security.js +2 -2
- package/dist/testing/cross_backend/make_cross_backend_project.d.ts +1 -1
- package/dist/testing/cross_backend/make_cross_backend_project.d.ts.map +1 -1
- package/dist/testing/cross_backend/make_cross_backend_project.js +3 -3
- package/dist/testing/cross_backend/method_coverage.d.ts.map +1 -1
- package/dist/testing/cross_backend/origin.d.ts.map +1 -1
- package/dist/testing/cross_backend/origin.js +4 -4
- package/dist/testing/cross_backend/peer_ping_ws.d.ts.map +1 -1
- package/dist/testing/cross_backend/peer_ping_ws.js +6 -6
- package/dist/testing/cross_backend/ready.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_enumeration.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_enumeration.js +1 -1
- package/dist/testing/cross_backend/role_grant_offer_notification_ws.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_notification_ws.js +1 -1
- package/dist/testing/cross_backend/role_grant_participation.d.ts.map +1 -1
- 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 +5 -5
- package/dist/testing/cross_backend/setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/setup.js +36 -36
- package/dist/testing/cross_backend/spawn_backend.d.ts.map +1 -1
- package/dist/testing/cross_backend/spawn_backend.js +1 -1
- package/dist/testing/cross_backend/sse_round_trip.d.ts.map +1 -1
- package/dist/testing/cross_backend/sse_round_trip.js +10 -7
- package/dist/testing/cross_backend/standard.d.ts.map +1 -1
- package/dist/testing/cross_backend/standard.js +5 -5
- package/dist/testing/cross_backend/testing_backdoor.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_backdoor.js +7 -7
- package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_reset_actions.js +24 -23
- package/dist/testing/cross_backend/testing_server_bun.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_bun.js +3 -3
- package/dist/testing/cross_backend/testing_server_core.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_core.js +1 -1
- package/dist/testing/cross_backend/testing_server_deno.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_deno.js +1 -1
- package/dist/testing/cross_backend/testing_server_node.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_node.js +3 -3
- package/dist/testing/cross_backend/ts_spine_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/ts_spine_backend_config.js +13 -13
- package/dist/testing/cross_backend/ws_round_trip.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_round_trip.js +2 -2
- package/dist/testing/data_exposure.d.ts.map +1 -1
- package/dist/testing/data_exposure.js +8 -8
- package/dist/testing/db.d.ts.map +1 -1
- package/dist/testing/db.js +3 -3
- package/dist/testing/db_entities.d.ts.map +1 -1
- package/dist/testing/db_entities.js +1 -1
- package/dist/testing/entities.d.ts.map +1 -1
- package/dist/testing/entities.js +5 -5
- package/dist/testing/error_coverage.d.ts.map +1 -1
- package/dist/testing/integration.d.ts.map +1 -1
- package/dist/testing/integration.js +106 -106
- package/dist/testing/integration_helpers.d.ts.map +1 -1
- package/dist/testing/integration_helpers.js +3 -3
- package/dist/testing/middleware.d.ts.map +1 -1
- package/dist/testing/middleware.js +11 -11
- package/dist/testing/mock_fs.js +1 -1
- package/dist/testing/rate_limiting.d.ts.map +1 -1
- package/dist/testing/rate_limiting.js +23 -23
- package/dist/testing/role_grant_helpers.d.ts.map +1 -1
- package/dist/testing/role_grant_helpers.js +3 -3
- package/dist/testing/round_trip.d.ts.map +1 -1
- package/dist/testing/round_trip.js +6 -6
- package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
- package/dist/testing/rpc_attack_surface.js +12 -12
- package/dist/testing/rpc_helpers.d.ts.map +1 -1
- package/dist/testing/rpc_helpers.js +11 -11
- package/dist/testing/rpc_round_trip.d.ts.map +1 -1
- package/dist/testing/rpc_round_trip.js +3 -3
- package/dist/testing/schema_generators.d.ts.map +1 -1
- package/dist/testing/schema_generators.js +3 -3
- package/dist/testing/schema_introspect.d.ts.map +1 -1
- package/dist/testing/schema_introspect.js +12 -12
- package/dist/testing/schema_parity.d.ts.map +1 -1
- package/dist/testing/schema_parity.js +7 -7
- package/dist/testing/schema_ready_fixture.d.ts.map +1 -1
- package/dist/testing/sse_round_trip.d.ts.map +1 -1
- package/dist/testing/sse_round_trip.js +8 -8
- package/dist/testing/standard.d.ts.map +1 -1
- package/dist/testing/standard.js +8 -8
- package/dist/testing/stubs.d.ts +6 -6
- package/dist/testing/stubs.d.ts.map +1 -1
- package/dist/testing/stubs.js +26 -23
- package/dist/testing/surface_invariants.d.ts.map +1 -1
- package/dist/testing/surface_invariants.js +5 -5
- package/dist/testing/testing_rate_limiter.d.ts.map +1 -1
- package/dist/testing/transports/bootstrap.d.ts.map +1 -1
- package/dist/testing/transports/bootstrap.js +4 -4
- package/dist/testing/transports/fetch_transport.d.ts.map +1 -1
- package/dist/testing/transports/sse_frame_reader.d.ts.map +1 -1
- package/dist/testing/transports/sse_transport.js +1 -1
- package/dist/testing/transports/ws_client.d.ts.map +1 -1
- package/dist/testing/transports/ws_client.js +1 -1
- package/dist/testing/transports/ws_transport.js +4 -4
- package/dist/testing/ws_round_trip.d.ts.map +1 -1
- package/dist/testing/ws_round_trip.js +21 -21
- package/dist/ui/AccountSessions.svelte +11 -11
- package/dist/ui/AdminAccounts.svelte +10 -10
- package/dist/ui/AdminAuditLog.svelte +14 -14
- package/dist/ui/AdminInvites.svelte +13 -13
- package/dist/ui/AdminOverview.svelte +22 -22
- package/dist/ui/AdminRoleGrantHistory.svelte +11 -11
- package/dist/ui/AdminSessions.svelte +12 -12
- package/dist/ui/AdminSettings.svelte +1 -1
- package/dist/ui/AdminSurface.svelte +3 -3
- package/dist/ui/AppShell.svelte +8 -8
- package/dist/ui/AppShell.svelte.d.ts.map +1 -1
- package/dist/ui/BootstrapForm.svelte +9 -9
- package/dist/ui/CLAUDE.md +1 -1
- package/dist/ui/ColumnLayout.svelte +2 -2
- package/dist/ui/ColumnLayout.svelte.d.ts.map +1 -1
- package/dist/ui/ConfirmButton.svelte +8 -8
- package/dist/ui/ConfirmButton.svelte.d.ts.map +1 -1
- package/dist/ui/Datatable.svelte +6 -6
- package/dist/ui/Datatable.svelte.d.ts.map +1 -1
- package/dist/ui/LoginForm.svelte +6 -6
- package/dist/ui/LogoutButton.svelte +2 -2
- package/dist/ui/LogoutButton.svelte.d.ts.map +1 -1
- package/dist/ui/MenuLink.svelte +5 -5
- package/dist/ui/MenuLink.svelte.d.ts.map +1 -1
- package/dist/ui/OpenSignupToggle.svelte +2 -2
- package/dist/ui/PopoverButton.svelte +10 -10
- package/dist/ui/PopoverButton.svelte.d.ts.map +1 -1
- package/dist/ui/RoleGrantOfferForm.svelte +8 -11
- package/dist/ui/RoleGrantOfferForm.svelte.d.ts.map +1 -1
- package/dist/ui/RoleGrantOfferHistory.svelte +11 -11
- package/dist/ui/RoleGrantOfferHistory.svelte.d.ts.map +1 -1
- package/dist/ui/RoleGrantOfferInbox.svelte +6 -6
- package/dist/ui/RoleGrantOfferInbox.svelte.d.ts.map +1 -1
- package/dist/ui/SignupForm.svelte +9 -9
- package/dist/ui/SurfaceExplorer.svelte +11 -11
- package/dist/ui/SurfaceExplorer.svelte.d.ts.map +1 -1
- package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_accounts_state.svelte.js +2 -2
- package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_rpc_adapters.d.ts.map +1 -1
- package/dist/ui/admin_rpc_adapters.js +5 -5
- package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -1
- package/dist/ui/app_settings_state.svelte.d.ts.map +1 -1
- package/dist/ui/async_slot.svelte.d.ts.map +1 -1
- package/dist/ui/audit_log_state.svelte.d.ts.map +1 -1
- package/dist/ui/audit_log_state.svelte.js +1 -1
- package/dist/ui/auth_state.svelte.js +4 -4
- package/dist/ui/form_state.svelte.d.ts.map +1 -1
- package/dist/ui/format_scope.d.ts.map +1 -1
- package/dist/ui/keyed_async_slot.svelte.d.ts.map +1 -1
- package/dist/ui/popover.svelte.d.ts.map +1 -1
- package/dist/ui/popover.svelte.js +1 -1
- package/dist/ui/position_helpers.js +1 -1
- package/dist/ui/role_grant_offers_state.svelte.d.ts.map +1 -1
- package/dist/ui/role_grant_offers_state.svelte.js +1 -1
- package/dist/ui/table_state.svelte.d.ts.map +1 -1
- package/dist/ui/ui_fetch.d.ts.map +1 -1
- package/dist/ui/ui_format.js +2 -2
- package/package.json +13 -12
|
@@ -48,7 +48,7 @@ import '../assert_dev_env.js';
|
|
|
48
48
|
* @module
|
|
49
49
|
*/
|
|
50
50
|
import { assert, describe } from 'vitest';
|
|
51
|
-
import { account_session_list_action_spec, account_session_revoke_action_spec, account_session_revoke_all_action_spec
|
|
51
|
+
import { account_session_list_action_spec, account_session_revoke_action_spec, account_session_revoke_all_action_spec } from '../../auth/account_action_specs.js';
|
|
52
52
|
import { admin_session_revoke_all_action_spec } from '../../auth/admin_action_specs.js';
|
|
53
53
|
import { audit_log_event_specs } from '../../realtime/sse_auth_guard.js';
|
|
54
54
|
import { SSE_CONNECTED_COMMENT } from '../../realtime/sse_constants.js';
|
|
@@ -87,7 +87,7 @@ export const describe_cross_process_sse_tests = (options) => {
|
|
|
87
87
|
base_url,
|
|
88
88
|
sse_path,
|
|
89
89
|
cookies: fixture.transport.cookies(),
|
|
90
|
-
origin
|
|
90
|
+
origin
|
|
91
91
|
});
|
|
92
92
|
try {
|
|
93
93
|
const first = await sse.read_frame();
|
|
@@ -103,18 +103,21 @@ export const describe_cross_process_sse_tests = (options) => {
|
|
|
103
103
|
// keeper (target ≠ subscriber, so the stream stays open).
|
|
104
104
|
test_if(capabilities.sse && rpc_path !== undefined, 'broadcasts an audit event as a data frame', async () => {
|
|
105
105
|
const fixture = await setup_test();
|
|
106
|
-
const secondary = await fixture.create_account({
|
|
106
|
+
const secondary = await fixture.create_account({
|
|
107
|
+
username: 'sse_revoke_target',
|
|
108
|
+
roles: []
|
|
109
|
+
});
|
|
107
110
|
const sse = await create_sse_transport({
|
|
108
111
|
base_url,
|
|
109
112
|
sse_path,
|
|
110
113
|
cookies: fixture.transport.cookies(),
|
|
111
|
-
origin
|
|
114
|
+
origin
|
|
112
115
|
});
|
|
113
116
|
try {
|
|
114
117
|
const first = await sse.read_frame();
|
|
115
118
|
assert.strictEqual(first + '\n\n', SSE_CONNECTED_COMMENT, 'first frame must be the connected comment');
|
|
116
119
|
const res = await fixture.transport(rpc_path, create_rpc_post_init(admin_session_revoke_all_action_spec.method, {
|
|
117
|
-
account_id: secondary.account.id
|
|
120
|
+
account_id: secondary.account.id
|
|
118
121
|
}));
|
|
119
122
|
assert.strictEqual(res.status, 200, `admin_session_revoke_all RPC failed (status=${res.status})`);
|
|
120
123
|
const data_frame = await sse.read_frame();
|
|
@@ -132,7 +135,7 @@ export const describe_cross_process_sse_tests = (options) => {
|
|
|
132
135
|
base_url,
|
|
133
136
|
sse_path,
|
|
134
137
|
cookies: fixture.transport.cookies(),
|
|
135
|
-
origin
|
|
138
|
+
origin
|
|
136
139
|
});
|
|
137
140
|
try {
|
|
138
141
|
const first = await sse.read_frame();
|
|
@@ -161,7 +164,7 @@ export const describe_cross_process_sse_tests = (options) => {
|
|
|
161
164
|
base_url,
|
|
162
165
|
sse_path,
|
|
163
166
|
cookies: fixture.transport.cookies(),
|
|
164
|
-
origin
|
|
167
|
+
origin
|
|
165
168
|
});
|
|
166
169
|
try {
|
|
167
170
|
const first = await sse.read_frame();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/standard.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"standard.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/standard.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,+BAA+B;IAC/C,2CAA2C;IAC3C,UAAU,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAC;IAC/B,uCAAuC;IACvC,YAAY,EAAE,mBAAmB,CAAC;IAClC,uFAAuF;IACvF,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC;;;;;OAKG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/F;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAC1B,MAAM,EACN,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CACnF,CAAC;CACF;AAED;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,GACjD,SAAS,+BAA+B,KACtC,IAwCF,CAAC"}
|
|
@@ -16,14 +16,14 @@ export const describe_standard_cross_process_tests = (options) => {
|
|
|
16
16
|
capabilities: options.capabilities,
|
|
17
17
|
session_options: options.session_options,
|
|
18
18
|
rpc_endpoints: options.rpc_endpoints,
|
|
19
|
-
error_coverage_min: options.error_coverage_min
|
|
19
|
+
error_coverage_min: options.error_coverage_min
|
|
20
20
|
});
|
|
21
21
|
describe_round_trip_validation({
|
|
22
22
|
setup_test: options.setup_test,
|
|
23
23
|
surface_source: options.surface_source,
|
|
24
24
|
capabilities: options.capabilities,
|
|
25
25
|
skip_routes: options.round_trip_skip_routes,
|
|
26
|
-
success_fixtures: options.rest_success_fixtures
|
|
26
|
+
success_fixtures: options.rest_success_fixtures
|
|
27
27
|
});
|
|
28
28
|
describe_rpc_round_trip_tests({
|
|
29
29
|
setup_test: options.setup_test,
|
|
@@ -31,12 +31,12 @@ export const describe_standard_cross_process_tests = (options) => {
|
|
|
31
31
|
capabilities: options.capabilities,
|
|
32
32
|
session_options: options.session_options,
|
|
33
33
|
rpc_endpoints: options.rpc_endpoints,
|
|
34
|
-
success_fixtures: options.rpc_success_fixtures
|
|
34
|
+
success_fixtures: options.rpc_success_fixtures
|
|
35
35
|
});
|
|
36
36
|
describe_data_exposure_tests({
|
|
37
37
|
setup_test: options.setup_test,
|
|
38
38
|
surface_source: options.surface_source,
|
|
39
|
-
capabilities: options.capabilities
|
|
39
|
+
capabilities: options.capabilities
|
|
40
40
|
});
|
|
41
41
|
if (options.roles) {
|
|
42
42
|
describe_standard_admin_integration_tests({
|
|
@@ -46,7 +46,7 @@ export const describe_standard_cross_process_tests = (options) => {
|
|
|
46
46
|
session_options: options.session_options,
|
|
47
47
|
roles: options.roles,
|
|
48
48
|
rpc_endpoints: options.rpc_endpoints,
|
|
49
|
-
admin_prefix: options.admin_prefix
|
|
49
|
+
admin_prefix: options.admin_prefix
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_backdoor.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_backdoor.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA2D9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"testing_backdoor.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_backdoor.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA2D9B,OAAO,KAAK,EAAE,wBAAwB,EAAe,MAAM,YAAY,CAAC;AAqExE,kEAAkE;AAClE,MAAM,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEvE,eAAO,MAAM,qCAAqC,GACjD,SAAS,+BAA+B,KACtC,IAiCF,CAAC"}
|
|
@@ -73,20 +73,20 @@ const backdoor_methods = [
|
|
|
73
73
|
{ method: '_testing_migration_tracker', params: {} },
|
|
74
74
|
// The RPC-registry-dump read — input is an empty strict object, so `{}` is
|
|
75
75
|
// valid and clears the 400 phase, reaching the credential gate like the rest.
|
|
76
|
-
{ method: '_testing_action_manifest', params: {} }
|
|
76
|
+
{ method: '_testing_action_manifest', params: {} }
|
|
77
77
|
];
|
|
78
78
|
const principals = [
|
|
79
79
|
{
|
|
80
80
|
name: 'anonymous',
|
|
81
81
|
status: 401,
|
|
82
82
|
// Fresh jar so the keeper cookie (cross-process) can't leak in.
|
|
83
|
-
resolve: (f) => ({ transport: f.fresh_transport(), headers: {} })
|
|
83
|
+
resolve: (f) => ({ transport: f.fresh_transport(), headers: {} })
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
name: 'session',
|
|
87
87
|
status: 403,
|
|
88
88
|
reason: ERROR_CREDENTIAL_TYPE_REQUIRED,
|
|
89
|
-
resolve: (f) => ({ transport: f.transport, headers: f.create_session_headers() })
|
|
89
|
+
resolve: (f) => ({ transport: f.transport, headers: f.create_session_headers() })
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
name: 'bearer',
|
|
@@ -98,9 +98,9 @@ const principals = [
|
|
|
98
98
|
resolve: (f) => ({
|
|
99
99
|
transport: f.fresh_transport({ origin: null }),
|
|
100
100
|
headers: f.create_bearer_headers(),
|
|
101
|
-
suppress_default_origin: true
|
|
102
|
-
})
|
|
103
|
-
}
|
|
101
|
+
suppress_default_origin: true
|
|
102
|
+
})
|
|
103
|
+
}
|
|
104
104
|
];
|
|
105
105
|
export const describe_testing_backdoor_cross_tests = (options) => {
|
|
106
106
|
const { setup_test } = options;
|
|
@@ -117,7 +117,7 @@ export const describe_testing_backdoor_cross_tests = (options) => {
|
|
|
117
117
|
method,
|
|
118
118
|
params,
|
|
119
119
|
headers,
|
|
120
|
-
...(suppress_default_origin && { suppress_default_origin: true })
|
|
120
|
+
...(suppress_default_origin && { suppress_default_origin: true })
|
|
121
121
|
});
|
|
122
122
|
const label = `${method} ${principal.name}`;
|
|
123
123
|
assert.ok(!res.ok, `${label}: expected denial (${principal.status}) but the call succeeded`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_reset_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_reset_actions.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"testing_reset_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_reset_actions.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAKzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAqCzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;QAiBpC;;;;;;;;WAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWyC,CAAC;AAE/C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;CAWA,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;CAwBC,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC,QAAO,SACmB,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;CAeK,CAAC;AAE/C;;;;;;;;;GASG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWF,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,QAAO,SAGvD,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;CAYJ,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,uCAAuC,QAAO,SAGzD,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYF,CAAC;AAyB/C,eAAO,MAAM,qCAAqC,GACjD,SAAS,aAAa,CAAC,SAAS,CAAC,KAC/B,SAMF,CAAC;AAEF,4CAA4C;AAC5C,MAAM,WAAW,2BAA2B;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IAC9C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,GAClC,MAAM,OAAO,EACb,SAAS,2BAA2B,KAClC,KAAK,CAAC,SAAS,CAsIjB,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,UAAmC,CAAC"}
|
|
@@ -70,13 +70,14 @@ import '../assert_dev_env.js';
|
|
|
70
70
|
*/
|
|
71
71
|
import { z } from 'zod';
|
|
72
72
|
import { Uuid } from '@fuzdev/fuz_util/id.ts';
|
|
73
|
-
import { fact_hash_bytes
|
|
73
|
+
import { fact_hash_bytes } from '@fuzdev/fuz_util/fact_hash.ts';
|
|
74
|
+
import { FactHashSchema } from '@fuzdev/fuz_util/hash_schemas.ts';
|
|
74
75
|
import { rpc_action } from '../../actions/action_rpc.js';
|
|
75
76
|
import { protocol_action_specs } from '../../actions/protocol.js';
|
|
76
77
|
import { query_put_fact } from '../../db/fact_queries.js';
|
|
77
78
|
import { ROLE_ADMIN, ROLE_KEEPER } from '../../auth/role_schema.js';
|
|
78
79
|
import { auth_integration_truncate_tables } from '../db.js';
|
|
79
|
-
import { query_schema_snapshot, SchemaSnapshot, query_migration_tracker, MigrationTracker
|
|
80
|
+
import { query_schema_snapshot, SchemaSnapshot, query_migration_tracker, MigrationTracker } from '../schema_introspect.js';
|
|
80
81
|
import { ActionManifest, build_action_manifest } from './action_manifest.js';
|
|
81
82
|
import { query_create_actor } from '../../auth/account_queries.js';
|
|
82
83
|
import { create_test_account_with_credentials, mint_test_session } from '../app_server.js';
|
|
@@ -93,14 +94,14 @@ import { DEFAULT_TEST_PASSWORD } from '../test_credentials.js';
|
|
|
93
94
|
const TESTING_ACTION_AUTH = {
|
|
94
95
|
account: 'required',
|
|
95
96
|
actor: 'none',
|
|
96
|
-
credential_types: ['daemon_token']
|
|
97
|
+
credential_types: ['daemon_token']
|
|
97
98
|
};
|
|
98
99
|
/** Output shape for an individual seeded account (keeper or extra). */
|
|
99
100
|
const SeededAccountShape = z.strictObject({
|
|
100
101
|
account: z.strictObject({ id: Uuid, username: z.string() }),
|
|
101
102
|
actor: z.strictObject({ id: Uuid }),
|
|
102
103
|
api_token: z.string(),
|
|
103
|
-
session_cookie: z.string()
|
|
104
|
+
session_cookie: z.string()
|
|
104
105
|
});
|
|
105
106
|
/**
|
|
106
107
|
* The `_testing_reset` action spec.
|
|
@@ -139,7 +140,7 @@ export const testing_reset_action_spec = {
|
|
|
139
140
|
.array(z.strictObject({
|
|
140
141
|
username: z.string(),
|
|
141
142
|
password_value: z.string().optional(),
|
|
142
|
-
roles: z.array(z.string())
|
|
143
|
+
roles: z.array(z.string())
|
|
143
144
|
}))
|
|
144
145
|
.optional(),
|
|
145
146
|
/**
|
|
@@ -151,15 +152,15 @@ export const testing_reset_action_spec = {
|
|
|
151
152
|
* production wire path adds a second. Bootstrap-cradle seeding, same
|
|
152
153
|
* rationale as `extra_accounts`.
|
|
153
154
|
*/
|
|
154
|
-
extra_actors: z.array(z.string()).optional()
|
|
155
|
+
extra_actors: z.array(z.string()).optional()
|
|
155
156
|
}),
|
|
156
157
|
output: SeededAccountShape.extend({
|
|
157
158
|
extra_accounts: z.array(SeededAccountShape),
|
|
158
159
|
/** The keeper's additional actors (from input `extra_actors`), in order. */
|
|
159
|
-
extra_actors: z.array(z.strictObject({ id: Uuid, name: z.string() }))
|
|
160
|
+
extra_actors: z.array(z.strictObject({ id: Uuid, name: z.string() }))
|
|
160
161
|
}),
|
|
161
162
|
async: true,
|
|
162
|
-
description: 'Test-binary only — wipe auth tables, re-bootstrap a fresh keeper (+ optional extras), fire the domain-state reset.'
|
|
163
|
+
description: 'Test-binary only — wipe auth tables, re-bootstrap a fresh keeper (+ optional extras), fire the domain-state reset.'
|
|
163
164
|
};
|
|
164
165
|
/**
|
|
165
166
|
* `_testing_drain_effects` — await in-flight fire-and-forget audit writes so
|
|
@@ -186,7 +187,7 @@ export const testing_drain_effects_action_spec = {
|
|
|
186
187
|
input: z.void(),
|
|
187
188
|
output: z.strictObject({ ok: z.boolean() }),
|
|
188
189
|
async: true,
|
|
189
|
-
description: 'Test-binary only — await in-flight fire-and-forget audit writes so a following audit_log_list read is authoritative.'
|
|
190
|
+
description: 'Test-binary only — await in-flight fire-and-forget audit writes so a following audit_log_list read is authoritative.'
|
|
190
191
|
};
|
|
191
192
|
/**
|
|
192
193
|
* `_testing_mint_session` — mint an expired-by-construction server-side
|
|
@@ -233,13 +234,13 @@ export const testing_mint_session_action_spec = {
|
|
|
233
234
|
.meta({
|
|
234
235
|
description: 'Seconds to offset the session row from NOW(). Constrained negative so this ' +
|
|
235
236
|
'backdoor can ONLY mint an already-expired (backdated) row — never a usable ' +
|
|
236
|
-
'session for an arbitrary account. Its sole use is the expired-session gate.'
|
|
237
|
-
})
|
|
237
|
+
'session for an arbitrary account. Its sole use is the expired-session gate.'
|
|
238
|
+
})
|
|
238
239
|
}),
|
|
239
240
|
output: z.strictObject({ session_cookie: z.string() }),
|
|
240
241
|
async: true,
|
|
241
242
|
description: 'Test-binary only — mint a backdated-expiry auth_session row for an account and return its ' +
|
|
242
|
-
'signed cookie value (exercises the authoritative server-side DB-row expiry gate).'
|
|
243
|
+
'signed cookie value (exercises the authoritative server-side DB-row expiry gate).'
|
|
243
244
|
};
|
|
244
245
|
/**
|
|
245
246
|
* Build the standalone `_testing_drain_effects` action. No deps — on TS the
|
|
@@ -271,12 +272,12 @@ export const testing_put_fact_action_spec = {
|
|
|
271
272
|
side_effects: true,
|
|
272
273
|
input: z.strictObject({
|
|
273
274
|
content: z.string(),
|
|
274
|
-
content_type: z.string().optional()
|
|
275
|
+
content_type: z.string().optional()
|
|
275
276
|
}),
|
|
276
277
|
output: z.strictObject({ hash: FactHashSchema }),
|
|
277
278
|
async: true,
|
|
278
279
|
description: 'Test-binary only — seed an embedded fact (blake3 of the UTF-8 content) and return its hash, ' +
|
|
279
|
-
'so the cross-process fact-serving suite can store bytes without a DB handle.'
|
|
280
|
+
'so the cross-process fact-serving suite can store bytes without a DB handle.'
|
|
280
281
|
};
|
|
281
282
|
/**
|
|
282
283
|
* `_testing_schema_snapshot` — introspect the live database into a normalized
|
|
@@ -297,7 +298,7 @@ export const testing_schema_snapshot_action_spec = {
|
|
|
297
298
|
input: z.strictObject({ exclude_tables: z.array(z.string()).optional() }),
|
|
298
299
|
output: SchemaSnapshot,
|
|
299
300
|
async: true,
|
|
300
|
-
description: 'Test-binary only — introspect the live schema into a normalized snapshot for cross-impl parity diffing.'
|
|
301
|
+
description: 'Test-binary only — introspect the live schema into a normalized snapshot for cross-impl parity diffing.'
|
|
301
302
|
};
|
|
302
303
|
/**
|
|
303
304
|
* Build the standalone `_testing_schema_snapshot` action. No deps —
|
|
@@ -329,7 +330,7 @@ export const testing_migration_tracker_action_spec = {
|
|
|
329
330
|
output: MigrationTracker,
|
|
330
331
|
async: true,
|
|
331
332
|
description: 'Test-binary only — dump the schema_version tracker rows as a normalized {namespace, name, ' +
|
|
332
|
-
'sequence} list for cross-impl migration-identity parity diffing.'
|
|
333
|
+
'sequence} list for cross-impl migration-identity parity diffing.'
|
|
333
334
|
};
|
|
334
335
|
/**
|
|
335
336
|
* Build the standalone `_testing_migration_tracker` action. No deps — reads
|
|
@@ -368,7 +369,7 @@ export const testing_action_manifest_action_spec = {
|
|
|
368
369
|
output: ActionManifest,
|
|
369
370
|
async: true,
|
|
370
371
|
description: 'Test-binary only — dump the live RPC registry as a normalized {method, auth, side_effects} ' +
|
|
371
|
-
'manifest for cross-impl method-set + auth-shape parity diffing.'
|
|
372
|
+
'manifest for cross-impl method-set + auth-shape parity diffing.'
|
|
372
373
|
};
|
|
373
374
|
/**
|
|
374
375
|
* Build the `_testing_action_manifest` action over a backend's full live RPC
|
|
@@ -393,7 +394,7 @@ const PROTOCOL_METHODS = new Set(protocol_action_specs.map((spec) => spec.method
|
|
|
393
394
|
export const create_testing_action_manifest_action = (mounted) => {
|
|
394
395
|
const manifest = build_action_manifest([
|
|
395
396
|
...mounted.map((action) => action.spec).filter((spec) => !PROTOCOL_METHODS.has(spec.method)),
|
|
396
|
-
testing_action_manifest_action_spec
|
|
397
|
+
testing_action_manifest_action_spec
|
|
397
398
|
]);
|
|
398
399
|
return rpc_action(testing_action_manifest_action_spec, async () => manifest);
|
|
399
400
|
};
|
|
@@ -463,7 +464,7 @@ export const create_testing_actions = (deps, options) => {
|
|
|
463
464
|
session_options,
|
|
464
465
|
password: deps.password,
|
|
465
466
|
password_value: DEFAULT_TEST_PASSWORD,
|
|
466
|
-
roles: [ROLE_KEEPER, ROLE_ADMIN, ...(input.extra_keeper_roles ?? [])]
|
|
467
|
+
roles: [ROLE_KEEPER, ROLE_ADMIN, ...(input.extra_keeper_roles ?? [])]
|
|
467
468
|
});
|
|
468
469
|
// 5. Seed any caller-requested extras. These are bootstrap-time
|
|
469
470
|
// secondaries — the bypass exists in the same cradle the
|
|
@@ -477,7 +478,7 @@ export const create_testing_actions = (deps, options) => {
|
|
|
477
478
|
password: deps.password,
|
|
478
479
|
username: spec.username,
|
|
479
480
|
password_value: spec.password_value ?? DEFAULT_TEST_PASSWORD,
|
|
480
|
-
roles: spec.roles
|
|
481
|
+
roles: spec.roles
|
|
481
482
|
});
|
|
482
483
|
extras.push(seeded);
|
|
483
484
|
}
|
|
@@ -512,7 +513,7 @@ export const create_testing_actions = (deps, options) => {
|
|
|
512
513
|
keyring: deps.keyring,
|
|
513
514
|
session_options,
|
|
514
515
|
account_id: input.account_id,
|
|
515
|
-
expires_in_seconds: input.expires_in_seconds
|
|
516
|
+
expires_in_seconds: input.expires_in_seconds
|
|
516
517
|
});
|
|
517
518
|
return { session_cookie };
|
|
518
519
|
}),
|
|
@@ -524,13 +525,13 @@ export const create_testing_actions = (deps, options) => {
|
|
|
524
525
|
bytes,
|
|
525
526
|
external_url: null,
|
|
526
527
|
content_type: input.content_type ?? null,
|
|
527
|
-
size: bytes.length
|
|
528
|
+
size: bytes.length
|
|
528
529
|
});
|
|
529
530
|
return { hash };
|
|
530
531
|
}),
|
|
531
532
|
create_testing_drain_effects_action(),
|
|
532
533
|
create_testing_schema_snapshot_action(),
|
|
533
|
-
create_testing_migration_tracker_action()
|
|
534
|
+
create_testing_migration_tracker_action()
|
|
534
535
|
];
|
|
535
536
|
};
|
|
536
537
|
/** Set of auth-namespace tables `_testing_reset` wipes. Mirrored by the coverage test. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_server_bun.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_bun.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA6B9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"testing_server_bun.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_bun.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA6B9B,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAelF,kDAAkD;AAClD,eAAO,MAAM,0BAA0B,QAAO,oBA0D5C,CAAC"}
|
|
@@ -40,7 +40,7 @@ export const create_bun_testing_adapter = () => ({
|
|
|
40
40
|
hostname,
|
|
41
41
|
// Harmless for HTTP-only binaries — Bun only invokes it for sockets
|
|
42
42
|
// upgraded via `upgradeWebSocket`.
|
|
43
|
-
websocket
|
|
43
|
+
websocket
|
|
44
44
|
});
|
|
45
45
|
const handle = {
|
|
46
46
|
// Bun bug (1.3.14): after a *server-initiated* WebSocket close
|
|
@@ -73,7 +73,7 @@ export const create_bun_testing_adapter = () => ({
|
|
|
73
73
|
void Promise.resolve(server.stop(true)).catch(() => { });
|
|
74
74
|
return Promise.resolve();
|
|
75
75
|
},
|
|
76
|
-
native: server
|
|
76
|
+
native: server
|
|
77
77
|
};
|
|
78
78
|
return handle;
|
|
79
79
|
},
|
|
@@ -82,5 +82,5 @@ export const create_bun_testing_adapter = () => ({
|
|
|
82
82
|
process.on('SIGINT', () => void handler());
|
|
83
83
|
process.on('SIGTERM', () => void handler());
|
|
84
84
|
},
|
|
85
|
-
exit: (code) => process.exit(code)
|
|
85
|
+
exit: (code) => process.exit(code)
|
|
86
86
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_server_core.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_core.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"testing_server_core.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_core.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAU,KAAK,MAAM,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,iFAAiF;IACjF,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACpC,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,OAAO,EAAE,WAAW,CAAC;IACrB,6DAA6D;IAC7D,iBAAiB,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,mFAAmF;IACnF,iBAAiB,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,iBAAiB,CAAC;IACpD,8EAA8E;IAC9E,KAAK,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,WAAW,CAAC;IAC1F,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,yBAAyB,EAAE,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAClE,oEAAoE;IACpE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC/B,kEAAkE;IAClE,GAAG,EAAE,IAAI,CAAC;IACV,qEAAqE;IACrE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,uEAAuE;IACvE,eAAe,CAAC,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAChE;AAED,gDAAgD;AAChD,MAAM,WAAW,yBAAyB;IACzC,+CAA+C;IAC/C,OAAO,EAAE,oBAAoB,CAAC;IAC9B;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,GAAG,CAAC,EAAE,UAAU,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,OAG/C,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAAU,SAAS,yBAAyB,KAAG,OAAO,CAAC,IAAI,CA4D3F,CAAC"}
|
|
@@ -53,7 +53,7 @@ export const start_testing_server = async (options) => {
|
|
|
53
53
|
pid: adapter.pid,
|
|
54
54
|
port,
|
|
55
55
|
started: new Date().toISOString(),
|
|
56
|
-
app_version: app_version ?? '0.0.0-test'
|
|
56
|
+
app_version: app_version ?? '0.0.0-test'
|
|
57
57
|
});
|
|
58
58
|
log.info(`Listening on http://${host}:${port} (${adapter.runtime_label}, test mode)`);
|
|
59
59
|
const server = adapter.serve({ fetch: built.app.fetch, port, hostname: host });
|
|
@@ -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;AAqB9B,OAAO,KAAK,
|
|
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;AAqB9B,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAelF,mDAAmD;AACnD,eAAO,MAAM,2BAA2B,QAAO,oBAkB7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing_server_node.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_node.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAuB9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"testing_server_node.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/testing_server_node.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAuB9B,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAUlF,mDAAmD;AACnD,eAAO,MAAM,2BAA2B,QAAO,oBAsB7C,CAAC"}
|
|
@@ -22,7 +22,7 @@ const node_serve_handle = (server) => ({
|
|
|
22
22
|
shutdown: () => new Promise((resolve, reject) => {
|
|
23
23
|
server.close((err) => (err ? reject(err) : resolve()));
|
|
24
24
|
}),
|
|
25
|
-
native: server
|
|
25
|
+
native: server
|
|
26
26
|
});
|
|
27
27
|
/** Build the Node {@link TestingServerAdapter}. */
|
|
28
28
|
export const create_node_testing_adapter = () => ({
|
|
@@ -37,7 +37,7 @@ export const create_node_testing_adapter = () => ({
|
|
|
37
37
|
// `handle.native` is the `ServerType` from `serve()` —
|
|
38
38
|
// type-erased at the {@link ServeHandle} seam, so it downcasts here.
|
|
39
39
|
injectWebSocket(handle.native);
|
|
40
|
-
}
|
|
40
|
+
}
|
|
41
41
|
};
|
|
42
42
|
},
|
|
43
43
|
serve: ({ fetch, port, hostname }) => node_serve_handle(serve({ fetch, port, hostname })),
|
|
@@ -46,5 +46,5 @@ export const create_node_testing_adapter = () => ({
|
|
|
46
46
|
process.on('SIGINT', () => void handler());
|
|
47
47
|
process.on('SIGTERM', () => void handler());
|
|
48
48
|
},
|
|
49
|
-
exit: (code) => process.exit(code)
|
|
49
|
+
exit: (code) => process.exit(code)
|
|
50
50
|
});
|
|
@@ -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,
|
|
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;AAkC3D,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;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GACvC,UAAS,2BAAgC,KACvC,aAmBF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,GACxC,UAAS,2BAAgC,KACvC,aAgCF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assert_dev_env.js';
|
|
2
2
|
import { build_test_backend_paths } from './build_test_backend_paths.js';
|
|
3
|
-
import { LOGIN_RATE_LIMIT_ENABLED_ENV, make_default_ts_backend_config, ts_default_capabilities
|
|
3
|
+
import { LOGIN_RATE_LIMIT_ENABLED_ENV, make_default_ts_backend_config, ts_default_capabilities } from './default_backend_configs.js';
|
|
4
4
|
import { SPINE_SSE_PATH } from './spine_surface_constants.js';
|
|
5
5
|
/** Env var naming the backend root dir; `{dir}/run/daemon_token` must match `bootstrap.daemon_token_path`. */
|
|
6
6
|
export const TS_SPINE_DIR_ENV = 'FUZ_TESTING_TS_SPINE_DIR';
|
|
@@ -17,7 +17,7 @@ const ts_spine_capabilities = Object.freeze({
|
|
|
17
17
|
sse: true,
|
|
18
18
|
ready: true,
|
|
19
19
|
peer_request: true,
|
|
20
|
-
cell_gated_create: true
|
|
20
|
+
cell_gated_create: true
|
|
21
21
|
});
|
|
22
22
|
/**
|
|
23
23
|
* Capabilities for the **Bun** spine binary — `ts_spine_capabilities` with
|
|
@@ -32,7 +32,7 @@ const ts_spine_capabilities = Object.freeze({
|
|
|
32
32
|
*/
|
|
33
33
|
const ts_spine_bun_capabilities = Object.freeze({
|
|
34
34
|
...ts_spine_capabilities,
|
|
35
|
-
oversized_reject_closes_connection: false
|
|
35
|
+
oversized_reject_closes_connection: false
|
|
36
36
|
});
|
|
37
37
|
/** Default port for the Node TS spine binary — slots beside the Rust `spine_stub` (1177). */
|
|
38
38
|
export const TS_SPINE_NODE_DEFAULT_PORT = 1178;
|
|
@@ -70,11 +70,11 @@ export const ts_spine_node_backend_config = (options = {}) => {
|
|
|
70
70
|
paths,
|
|
71
71
|
extra_env: {
|
|
72
72
|
[TS_SPINE_DIR_ENV]: paths.root,
|
|
73
|
-
...login_rate_limit_env(enable_login_rate_limit)
|
|
73
|
+
...login_rate_limit_env(enable_login_rate_limit)
|
|
74
74
|
},
|
|
75
|
-
capabilities: ts_spine_capabilities
|
|
75
|
+
capabilities: ts_spine_capabilities
|
|
76
76
|
}),
|
|
77
|
-
sse_path: SPINE_SSE_PATH
|
|
77
|
+
sse_path: SPINE_SSE_PATH
|
|
78
78
|
};
|
|
79
79
|
};
|
|
80
80
|
/**
|
|
@@ -96,11 +96,11 @@ export const ts_spine_bun_backend_config = (options = {}) => {
|
|
|
96
96
|
paths,
|
|
97
97
|
extra_env: {
|
|
98
98
|
[TS_SPINE_DIR_ENV]: paths.root,
|
|
99
|
-
...login_rate_limit_env(enable_login_rate_limit)
|
|
99
|
+
...login_rate_limit_env(enable_login_rate_limit)
|
|
100
100
|
},
|
|
101
|
-
capabilities: ts_spine_bun_capabilities
|
|
101
|
+
capabilities: ts_spine_bun_capabilities
|
|
102
102
|
}),
|
|
103
|
-
sse_path: SPINE_SSE_PATH
|
|
103
|
+
sse_path: SPINE_SSE_PATH
|
|
104
104
|
};
|
|
105
105
|
};
|
|
106
106
|
/**
|
|
@@ -134,16 +134,16 @@ export const ts_spine_deno_backend_config = (options = {}) => {
|
|
|
134
134
|
'--allow-run',
|
|
135
135
|
'--unstable-detect-cjs',
|
|
136
136
|
'--sloppy-imports',
|
|
137
|
-
TS_SPINE_DENO_ENTRY
|
|
137
|
+
TS_SPINE_DENO_ENTRY
|
|
138
138
|
],
|
|
139
139
|
database_url,
|
|
140
140
|
paths,
|
|
141
141
|
extra_env: {
|
|
142
142
|
[TS_SPINE_DIR_ENV]: paths.root,
|
|
143
|
-
...login_rate_limit_env(enable_login_rate_limit)
|
|
143
|
+
...login_rate_limit_env(enable_login_rate_limit)
|
|
144
144
|
},
|
|
145
|
-
capabilities: ts_spine_capabilities
|
|
145
|
+
capabilities: ts_spine_capabilities
|
|
146
146
|
}),
|
|
147
|
-
sse_path: SPINE_SSE_PATH
|
|
147
|
+
sse_path: SPINE_SSE_PATH
|
|
148
148
|
};
|
|
149
149
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/ws_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAmD9B,OAAO,
|
|
1
|
+
{"version":3,"file":"ws_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/ws_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAmD9B,OAAO,EAAE,KAAK,mBAAmB,EAAW,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,iEAAiE;AACjE,MAAM,WAAW,yBAAyB;IACzC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,GAAI,SAAS,yBAAyB,KAAG,IAsEpF,CAAC"}
|
|
@@ -64,7 +64,7 @@ export const describe_cross_process_ws_tests = (options) => {
|
|
|
64
64
|
base_url,
|
|
65
65
|
ws_path,
|
|
66
66
|
cookies: fixture.transport.cookies(),
|
|
67
|
-
origin
|
|
67
|
+
origin
|
|
68
68
|
});
|
|
69
69
|
try {
|
|
70
70
|
const result = await client.request(1, heartbeat_action_spec.method, {});
|
|
@@ -94,7 +94,7 @@ export const describe_cross_process_ws_tests = (options) => {
|
|
|
94
94
|
base_url,
|
|
95
95
|
ws_path,
|
|
96
96
|
cookies: fixture.transport.cookies(),
|
|
97
|
-
origin
|
|
97
|
+
origin
|
|
98
98
|
});
|
|
99
99
|
try {
|
|
100
100
|
// Confirm the socket dispatches before revoking, so a failed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_exposure.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/data_exposure.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAqB7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"data_exposure.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/data_exposure.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAqB7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,0BAA0B,CAAC;AAIvE;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,GAAI,QAAQ,OAAO,KAAG,GAAG,CAAC,MAAM,CAuB9E,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,yCAAyC,GACrD,SAAS,UAAU,EACnB,mBAAkB,aAAa,CAAC,MAAM,CAA6B,KACjE,IAWF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wCAAwC,GACpD,SAAS,UAAU,EACnB,oBAAmB,aAAa,CAAC,MAAM,CAA8B,KACnE,IAgBF,CAAC;AAIF,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACvC,kEAAkE;IAClE,UAAU,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAC;IAC/B,uCAAuC;IACvC,YAAY,EAAE,mBAAmB,CAAC;IAClC,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,iGAAiG;IACjG,iBAAiB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,kDAAkD;IAClD,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,GAAI,SAAS,uBAAuB,KAAG,IA2L/E,CAAC"}
|
|
@@ -20,7 +20,7 @@ import { ROLE_ADMIN } from '../auth/role_schema.js';
|
|
|
20
20
|
import { resolve_valid_path, generate_valid_body } from './schema_generators.js';
|
|
21
21
|
import { is_null_schema, is_strict_object_schema } from '../http/schema_helpers.js';
|
|
22
22
|
import { is_keeper_auth, is_public_auth } from '../http/auth_shape.js';
|
|
23
|
-
import { sensitive_field_blocklist, admin_only_field_blocklist, assert_no_sensitive_fields_in_json, pick_auth_headers
|
|
23
|
+
import { sensitive_field_blocklist, admin_only_field_blocklist, assert_no_sensitive_fields_in_json, pick_auth_headers } from './integration_helpers.js';
|
|
24
24
|
// --- Schema introspection ---
|
|
25
25
|
/**
|
|
26
26
|
* Recursively collect all property names from a JSON Schema.
|
|
@@ -94,7 +94,7 @@ export const assert_non_admin_schemas_no_admin_fields = (surface, admin_only_fie
|
|
|
94
94
|
*/
|
|
95
95
|
export const describe_data_exposure_tests = (options) => {
|
|
96
96
|
const { surface, route_specs } = options.surface_source;
|
|
97
|
-
const { sensitive_fields = sensitive_field_blocklist, admin_only_fields = admin_only_field_blocklist
|
|
97
|
+
const { sensitive_fields = sensitive_field_blocklist, admin_only_fields = admin_only_field_blocklist } = options;
|
|
98
98
|
const skip_set = new Set(options.skip_routes);
|
|
99
99
|
void options.capabilities;
|
|
100
100
|
describe('data exposure — schema-level', () => {
|
|
@@ -125,11 +125,11 @@ export const describe_data_exposure_tests = (options) => {
|
|
|
125
125
|
fixture = await options.setup_test();
|
|
126
126
|
authed_account = await fixture.create_account({
|
|
127
127
|
username: 'exposure_authed',
|
|
128
|
-
roles: []
|
|
128
|
+
roles: []
|
|
129
129
|
});
|
|
130
130
|
admin_account = await fixture.create_account({
|
|
131
131
|
username: 'exposure_admin',
|
|
132
|
-
roles: [ROLE_ADMIN]
|
|
132
|
+
roles: [ROLE_ADMIN]
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
// Tests that don't fire authenticated requests run first — they don't
|
|
@@ -143,7 +143,7 @@ export const describe_data_exposure_tests = (options) => {
|
|
|
143
143
|
const url = resolve_valid_path(spec.path, spec.params);
|
|
144
144
|
const res = await fixture.transport(url, {
|
|
145
145
|
method: spec.method,
|
|
146
|
-
headers: { host: 'localhost', origin: 'http://localhost:5173' }
|
|
146
|
+
headers: { host: 'localhost', origin: 'http://localhost:5173' }
|
|
147
147
|
});
|
|
148
148
|
if (res.headers.get('Content-Type')?.includes('text/event-stream')) {
|
|
149
149
|
await res.body?.cancel();
|
|
@@ -171,7 +171,7 @@ export const describe_data_exposure_tests = (options) => {
|
|
|
171
171
|
const headers = authed_account.create_session_headers();
|
|
172
172
|
const res = await fixture.transport(url, {
|
|
173
173
|
method: spec.method,
|
|
174
|
-
headers
|
|
174
|
+
headers
|
|
175
175
|
});
|
|
176
176
|
assert.strictEqual(res.status, 403, `${route_key} should return 403 for non-admin user`);
|
|
177
177
|
let error_body;
|
|
@@ -210,9 +210,9 @@ export const describe_data_exposure_tests = (options) => {
|
|
|
210
210
|
method: spec.method,
|
|
211
211
|
headers: {
|
|
212
212
|
...headers,
|
|
213
|
-
...(body ? { 'content-type': 'application/json' } : {})
|
|
213
|
+
...(body ? { 'content-type': 'application/json' } : {})
|
|
214
214
|
},
|
|
215
|
-
...(body ? { body: JSON.stringify(body) } : {})
|
|
215
|
+
...(body ? { body: JSON.stringify(body) } : {})
|
|
216
216
|
};
|
|
217
217
|
const res = await fixture.transport(url, request_init);
|
|
218
218
|
if (res.headers.get('Content-Type')?.includes('text/event-stream')) {
|