@fuzdev/fuz_app 0.104.0 → 0.106.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 +14 -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 +8 -0
- package/dist/actions/perform_action.d.ts.map +1 -1
- package/dist/actions/perform_action.js +41 -23
- 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 +39 -12
- 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 +32 -9
- package/dist/auth/account_action_specs.d.ts.map +1 -1
- package/dist/auth/account_action_specs.js +35 -23
- 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 +25 -12
- 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 +26 -2
- package/dist/auth/account_schema.d.ts.map +1 -1
- package/dist/auth/account_schema.js +28 -10
- 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 +9 -3
- package/dist/auth/api_token_queries.d.ts.map +1 -1
- package/dist/auth/api_token_queries.js +29 -8
- 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 +12 -4
- 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/bearer_auth.js +6 -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 +7 -3
- 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 +54 -19
- 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 +18 -0
- package/dist/auth/request_context.d.ts.map +1 -1
- package/dist/auth/request_context.js +33 -7
- package/dist/auth/role_grant_offer_action_specs.d.ts +12 -0
- package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_action_specs.js +47 -36
- 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 +7 -0
- package/dist/auth/self_service_role_action_specs.d.ts.map +1 -1
- package/dist/auth/self_service_role_action_specs.js +12 -6
- 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/auth/token_scope.d.ts +155 -0
- package/dist/auth/token_scope.d.ts.map +1 -0
- package/dist/auth/token_scope.js +190 -0
- 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/CLAUDE.md +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 +23 -0
- package/dist/hono_context.d.ts.map +1 -1
- package/dist/hono_context.js +16 -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 +13 -1
- package/dist/http/error_schemas.d.ts.map +1 -1
- package/dist/http/error_schemas.js +25 -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/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 +23 -13
- package/dist/server/startup.d.ts.map +1 -1
- package/dist/server/static.d.ts.map +1 -1
- package/dist/server/x_accel.d.ts +2 -4
- package/dist/server/x_accel.d.ts.map +1 -1
- package/dist/server/x_accel.js +3 -5
- package/dist/testing/CLAUDE.md +2 -2
- package/dist/testing/admin_integration.d.ts.map +1 -1
- package/dist/testing/admin_integration.js +64 -64
- 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 +34 -33
- 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 +42 -42
- 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 +23 -0
- package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_case.js +32 -11
- package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_table.js +68 -15
- 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/expected_schema.json +1 -0
- 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 +41 -37
- 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 +109 -109
- 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
- package/dist/server/fact_write.d.ts +0 -32
- package/dist/server/fact_write.d.ts.map +0 -1
- package/dist/server/fact_write.js +0 -56
- package/dist/server/validate_nginx.d.ts +0 -34
- package/dist/server/validate_nginx.d.ts.map +0 -1
- package/dist/server/validate_nginx.js +0 -169
|
@@ -47,12 +47,12 @@ export const build_extra_account_fixture = (seeded, cookie_name) => ({
|
|
|
47
47
|
session_cookie: seeded.session_cookie,
|
|
48
48
|
create_session_headers: (extra) => ({
|
|
49
49
|
cookie: `${cookie_name}=${seeded.session_cookie}`,
|
|
50
|
-
...extra
|
|
50
|
+
...extra
|
|
51
51
|
}),
|
|
52
52
|
create_bearer_headers: (extra) => ({
|
|
53
53
|
authorization: `Bearer ${seeded.api_token}`,
|
|
54
|
-
...extra
|
|
55
|
-
})
|
|
54
|
+
...extra
|
|
55
|
+
})
|
|
56
56
|
});
|
|
57
57
|
/**
|
|
58
58
|
* Strip the non-serializable members so the result can be passed to
|
|
@@ -63,7 +63,7 @@ export const serialize_bootstrapped_handle = (handle) => ({
|
|
|
63
63
|
daemon_token: handle.daemon_token,
|
|
64
64
|
keeper_account: handle.keeper_account,
|
|
65
65
|
keeper_actor: handle.keeper_actor,
|
|
66
|
-
keeper_cookies: [...handle.keeper_cookies]
|
|
66
|
+
keeper_cookies: [...handle.keeper_cookies]
|
|
67
67
|
});
|
|
68
68
|
/**
|
|
69
69
|
* Rebuild a usable handle from the serialized subset. Synthesizes a
|
|
@@ -81,7 +81,7 @@ export const reconstruct_bootstrapped_handle = (serialized) => ({
|
|
|
81
81
|
keeper_cookies: serialized.keeper_cookies,
|
|
82
82
|
keeper_transport: create_fetch_transport({
|
|
83
83
|
base_url: serialized.config.base_url,
|
|
84
|
-
initial_cookies: serialized.keeper_cookies
|
|
84
|
+
initial_cookies: serialized.keeper_cookies
|
|
85
85
|
}),
|
|
86
86
|
// Same cookie jar but Origin-free so the daemon-token middleware doesn't
|
|
87
87
|
// discard the credential as browser-context — used by the `_testing_*`
|
|
@@ -90,8 +90,8 @@ export const reconstruct_bootstrapped_handle = (serialized) => ({
|
|
|
90
90
|
keeper_daemon_transport: create_fetch_transport({
|
|
91
91
|
base_url: serialized.config.base_url,
|
|
92
92
|
initial_cookies: serialized.keeper_cookies,
|
|
93
|
-
origin: null
|
|
94
|
-
})
|
|
93
|
+
origin: null
|
|
94
|
+
})
|
|
95
95
|
});
|
|
96
96
|
/**
|
|
97
97
|
* Structural subset of `SignupOutput` the runner cares about. Looser
|
|
@@ -101,12 +101,12 @@ export const reconstruct_bootstrapped_handle = (serialized) => ({
|
|
|
101
101
|
const SignupResponseShape = z.object({
|
|
102
102
|
ok: z.literal(true),
|
|
103
103
|
account: z.object({ id: Uuid, username: z.string() }),
|
|
104
|
-
actor: z.object({ id: Uuid })
|
|
104
|
+
actor: z.object({ id: Uuid })
|
|
105
105
|
});
|
|
106
106
|
/** Structural subset of `account_token_create`'s output. */
|
|
107
107
|
const TokenCreateResponseShape = z.object({
|
|
108
108
|
token: z.string(),
|
|
109
|
-
id: z.string()
|
|
109
|
+
id: z.string()
|
|
110
110
|
});
|
|
111
111
|
/**
|
|
112
112
|
* Per-test username generator for the *default* `fixture.create_account()`
|
|
@@ -148,7 +148,7 @@ const rpc_via_transport = async (transport, rpc_path, method, params, backend_na
|
|
|
148
148
|
const response = await transport(rpc_path, {
|
|
149
149
|
method: 'POST',
|
|
150
150
|
headers: { 'Content-Type': 'application/json', ...extra_headers },
|
|
151
|
-
body: JSON.stringify({ jsonrpc: '2.0', method, params, id: method })
|
|
151
|
+
body: JSON.stringify({ jsonrpc: '2.0', method, params, id: method })
|
|
152
152
|
});
|
|
153
153
|
if (!response.ok) {
|
|
154
154
|
const body = await response.text().catch(() => '<unreadable>');
|
|
@@ -238,9 +238,9 @@ const TestingResetResponseShape = z.object({
|
|
|
238
238
|
account: z.object({ id: Uuid, username: z.string() }),
|
|
239
239
|
actor: z.object({ id: Uuid }),
|
|
240
240
|
api_token: z.string(),
|
|
241
|
-
session_cookie: z.string()
|
|
241
|
+
session_cookie: z.string()
|
|
242
242
|
})),
|
|
243
|
-
extra_actors: z.array(z.object({ id: Uuid, name: z.string() }))
|
|
243
|
+
extra_actors: z.array(z.object({ id: Uuid, name: z.string() }))
|
|
244
244
|
});
|
|
245
245
|
/**
|
|
246
246
|
* Fire the `_testing_reset` RPC action over the keeper's daemon-token
|
|
@@ -255,9 +255,9 @@ const fire_testing_reset = async (handle, options) => {
|
|
|
255
255
|
extra_accounts: (options.extra_accounts ?? []).map((spec) => ({
|
|
256
256
|
username: spec.username,
|
|
257
257
|
...(spec.password_value !== undefined && { password_value: spec.password_value }),
|
|
258
|
-
roles: [...spec.roles]
|
|
258
|
+
roles: [...spec.roles]
|
|
259
259
|
})),
|
|
260
|
-
extra_actors: [...(options.extra_actors ?? [])]
|
|
260
|
+
extra_actors: [...(options.extra_actors ?? [])]
|
|
261
261
|
}, handle.config.name, { [DAEMON_TOKEN_HEADER]: handle.daemon_token });
|
|
262
262
|
const parsed = TestingResetResponseShape.safeParse(raw);
|
|
263
263
|
if (!parsed.success) {
|
|
@@ -268,10 +268,10 @@ const fire_testing_reset = async (handle, options) => {
|
|
|
268
268
|
account: parsed.data.account,
|
|
269
269
|
actor: parsed.data.actor,
|
|
270
270
|
api_token: parsed.data.api_token,
|
|
271
|
-
session_cookie: parsed.data.session_cookie
|
|
271
|
+
session_cookie: parsed.data.session_cookie
|
|
272
272
|
},
|
|
273
273
|
extra_accounts: parsed.data.extra_accounts,
|
|
274
|
-
extra_actors: parsed.data.extra_actors
|
|
274
|
+
extra_actors: parsed.data.extra_actors
|
|
275
275
|
};
|
|
276
276
|
};
|
|
277
277
|
/**
|
|
@@ -347,8 +347,8 @@ const mint_account = async (handle, options) => {
|
|
|
347
347
|
body: JSON.stringify({
|
|
348
348
|
username,
|
|
349
349
|
password,
|
|
350
|
-
...(options.email !== undefined && { email: options.email })
|
|
351
|
-
})
|
|
350
|
+
...(options.email !== undefined && { email: options.email })
|
|
351
|
+
})
|
|
352
352
|
});
|
|
353
353
|
if (!signup_response.ok) {
|
|
354
354
|
const body = await signup_response.text().catch(() => '<unreadable>');
|
|
@@ -362,7 +362,7 @@ const mint_account = async (handle, options) => {
|
|
|
362
362
|
const login_response = await transport('/api/account/login', {
|
|
363
363
|
method: 'POST',
|
|
364
364
|
headers: { 'Content-Type': 'application/json' },
|
|
365
|
-
body: JSON.stringify({ username, password })
|
|
365
|
+
body: JSON.stringify({ username, password })
|
|
366
366
|
});
|
|
367
367
|
if (!login_response.ok) {
|
|
368
368
|
const body = await login_response.text().catch(() => '<unreadable>');
|
|
@@ -371,7 +371,11 @@ const mint_account = async (handle, options) => {
|
|
|
371
371
|
// Drain the body so the connection releases — Hono's login returns
|
|
372
372
|
// `{ok: true}` and we already have the cookie via the jar.
|
|
373
373
|
await login_response.arrayBuffer().catch(() => undefined);
|
|
374
|
-
|
|
374
|
+
// `scope` is required at mint — there is no absent state, which is the whole
|
|
375
|
+
// point of the default-deny design. A minted-account fixture stands in for an
|
|
376
|
+
// ordinary account credential, so it takes full account authority; the
|
|
377
|
+
// narrowed credential is the conformance table's `scoped_token` principal.
|
|
378
|
+
const token_result = await rpc_via_transport(transport, handle.config.rpc_path, 'account_token_create', { scope: { kind: 'full' } }, handle.config.name);
|
|
375
379
|
const token_parsed = TokenCreateResponseShape.safeParse(token_result);
|
|
376
380
|
if (!token_parsed.success) {
|
|
377
381
|
throw new Error(`account_token_create(${handle.config.name}) returned unexpected result: ${JSON.stringify(token_result)}`);
|
|
@@ -381,7 +385,7 @@ const mint_account = async (handle, options) => {
|
|
|
381
385
|
account: parsed.data.account,
|
|
382
386
|
actor: parsed.data.actor,
|
|
383
387
|
session_cookie: extract_cookie_value(transport, handle.config.cookie_name, handle.config.name),
|
|
384
|
-
api_token: token_parsed.data.token
|
|
388
|
+
api_token: token_parsed.data.token
|
|
385
389
|
};
|
|
386
390
|
};
|
|
387
391
|
/**
|
|
@@ -418,7 +422,7 @@ const grant_roles_via_offer_accept = async (handle, minted, roles) => {
|
|
|
418
422
|
*/
|
|
419
423
|
const create_keeper_transport = (handle, cookie_name, session_cookie) => create_fetch_transport({
|
|
420
424
|
base_url: handle.config.base_url,
|
|
421
|
-
initial_cookies: [`${cookie_name}=${session_cookie}`]
|
|
425
|
+
initial_cookies: [`${cookie_name}=${session_cookie}`]
|
|
422
426
|
});
|
|
423
427
|
/**
|
|
424
428
|
* Origin-free twin of `create_keeper_transport` — same fresh keeper cookie
|
|
@@ -429,7 +433,7 @@ const create_keeper_transport = (handle, cookie_name, session_cookie) => create_
|
|
|
429
433
|
const create_keeper_daemon_transport = (handle, cookie_name, session_cookie) => create_fetch_transport({
|
|
430
434
|
base_url: handle.config.base_url,
|
|
431
435
|
initial_cookies: [`${cookie_name}=${session_cookie}`],
|
|
432
|
-
origin: null
|
|
436
|
+
origin: null
|
|
433
437
|
});
|
|
434
438
|
/**
|
|
435
439
|
* Build a `SetupTest` against a spawned + bootstrapped backend.
|
|
@@ -460,10 +464,10 @@ export const default_cross_process_setup = (handle, options) => {
|
|
|
460
464
|
const extra_actor_names = options?.extra_actors ?? [];
|
|
461
465
|
const { cookie_name } = handle.config;
|
|
462
466
|
return async () => {
|
|
463
|
-
const { keeper, extra_accounts: seeded_extras, extra_actors
|
|
467
|
+
const { keeper, extra_accounts: seeded_extras, extra_actors } = await fire_testing_reset(handle, {
|
|
464
468
|
extra_keeper_roles,
|
|
465
469
|
extra_accounts: extra_account_specs,
|
|
466
|
-
extra_actors: extra_actor_names
|
|
470
|
+
extra_actors: extra_actor_names
|
|
467
471
|
});
|
|
468
472
|
// Rebuild the keeper transport with the new session cookie — the
|
|
469
473
|
// reset action wiped the `globalSetup` keeper's auth_session row,
|
|
@@ -482,27 +486,27 @@ export const default_cross_process_setup = (handle, options) => {
|
|
|
482
486
|
keeper_daemon_transport,
|
|
483
487
|
keeper_account: keeper.account,
|
|
484
488
|
keeper_actor: keeper.actor,
|
|
485
|
-
keeper_cookies: [`${cookie_name}=${keeper.session_cookie}`]
|
|
489
|
+
keeper_cookies: [`${cookie_name}=${keeper.session_cookie}`]
|
|
486
490
|
};
|
|
487
491
|
const create_session_headers = (extra) => ({
|
|
488
492
|
cookie: `${cookie_name}=${keeper.session_cookie}`,
|
|
489
|
-
...extra
|
|
493
|
+
...extra
|
|
490
494
|
});
|
|
491
495
|
const create_bearer_headers = (extra) => ({
|
|
492
496
|
authorization: `Bearer ${keeper.api_token}`,
|
|
493
|
-
...extra
|
|
497
|
+
...extra
|
|
494
498
|
});
|
|
495
499
|
const create_daemon_token_headers = (extra) => ({
|
|
496
500
|
[DAEMON_TOKEN_HEADER]: handle.daemon_token,
|
|
497
|
-
...extra
|
|
501
|
+
...extra
|
|
498
502
|
});
|
|
499
503
|
const create_account = async (account_options) => {
|
|
500
504
|
const other = await mint_account(refreshed_handle, {
|
|
501
505
|
...(account_options?.username !== undefined && { username: account_options.username }),
|
|
502
506
|
...(account_options?.password_value !== undefined && {
|
|
503
|
-
password_value: account_options.password_value
|
|
507
|
+
password_value: account_options.password_value
|
|
504
508
|
}),
|
|
505
|
-
...(account_options?.email !== undefined && { email: account_options.email })
|
|
509
|
+
...(account_options?.email !== undefined && { email: account_options.email })
|
|
506
510
|
});
|
|
507
511
|
if (account_options?.roles && account_options.roles.length > 0) {
|
|
508
512
|
await grant_roles_via_offer_accept(refreshed_handle, other, account_options.roles);
|
|
@@ -514,12 +518,12 @@ export const default_cross_process_setup = (handle, options) => {
|
|
|
514
518
|
api_token: other.api_token,
|
|
515
519
|
create_session_headers: (extra) => ({
|
|
516
520
|
cookie: `${cookie_name}=${other.session_cookie}`,
|
|
517
|
-
...extra
|
|
521
|
+
...extra
|
|
518
522
|
}),
|
|
519
523
|
create_bearer_headers: (extra) => ({
|
|
520
524
|
authorization: `Bearer ${other.api_token}`,
|
|
521
|
-
...extra
|
|
522
|
-
})
|
|
525
|
+
...extra
|
|
526
|
+
})
|
|
523
527
|
};
|
|
524
528
|
};
|
|
525
529
|
const extra_accounts = {};
|
|
@@ -537,13 +541,13 @@ export const default_cross_process_setup = (handle, options) => {
|
|
|
537
541
|
// secondary's transport via `fixture.create_account()`.
|
|
538
542
|
const transport = create_fetch_transport({
|
|
539
543
|
base_url: handle.config.base_url,
|
|
540
|
-
initial_cookies: [`${cookie_name}=${keeper.session_cookie}`]
|
|
544
|
+
initial_cookies: [`${cookie_name}=${keeper.session_cookie}`]
|
|
541
545
|
});
|
|
542
546
|
return {
|
|
543
547
|
transport,
|
|
544
548
|
fresh_transport: (fresh_options) => create_fetch_transport({
|
|
545
549
|
base_url: handle.config.base_url,
|
|
546
|
-
...(fresh_options?.origin !== undefined && { origin: fresh_options.origin })
|
|
550
|
+
...(fresh_options?.origin !== undefined && { origin: fresh_options.origin })
|
|
547
551
|
}),
|
|
548
552
|
account: keeper.account,
|
|
549
553
|
actor: keeper.actor,
|
|
@@ -564,7 +568,7 @@ export const default_cross_process_setup = (handle, options) => {
|
|
|
564
568
|
`${JSON.stringify(raw)} (${parsed.error.message})`);
|
|
565
569
|
}
|
|
566
570
|
return `${cookie_name}=${parsed.data.session_cookie}`;
|
|
567
|
-
}
|
|
571
|
+
}
|
|
568
572
|
};
|
|
569
573
|
};
|
|
570
574
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn_backend.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/spawn_backend.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"spawn_backend.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/spawn_backend.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,6EAA6E;AAC7E,MAAM,WAAW,aAAa;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AA4ID;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAU,QAAQ,aAAa,KAAG,OAAO,CAAC,aAAa,CAiHhF,CAAC"}
|
|
@@ -168,7 +168,7 @@ export const spawn_backend = async (config) => {
|
|
|
168
168
|
// Own process group so SIGTERM to the negative PID tears down the
|
|
169
169
|
// binary's descendants too — Hono workers, PTY children, etc.
|
|
170
170
|
detached: true,
|
|
171
|
-
stdio: ['ignore', 'pipe', 'pipe']
|
|
171
|
+
stdio: ['ignore', 'pipe', 'pipe']
|
|
172
172
|
});
|
|
173
173
|
// Buffer stderr so a startup-time crash surfaces with context.
|
|
174
174
|
const stderr_chunks = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+D9B,OAAO,
|
|
1
|
+
{"version":3,"file":"sse_round_trip.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/sse_round_trip.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+D9B,OAAO,EAAE,KAAK,mBAAmB,EAAW,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,kEAAkE;AAClE,MAAM,WAAW,0BAA0B;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AA0BD;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,GAAI,SAAS,0BAA0B,KAAG,IAwKtF,CAAC"}
|
|
@@ -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"}
|