@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
|
@@ -24,14 +24,14 @@ import './assert_dev_env.js';
|
|
|
24
24
|
*/
|
|
25
25
|
import { describe, test, assert } from 'vitest';
|
|
26
26
|
import { ROLE_ADMIN } from '../auth/role_schema.js';
|
|
27
|
-
import { AUDIT_EVENT_TYPES
|
|
27
|
+
import { AUDIT_EVENT_TYPES } from '../auth/audit_log_schema.js';
|
|
28
28
|
import { DEFAULT_TEST_PASSWORD } from './test_credentials.js';
|
|
29
29
|
import { find_auth_route } from './integration_helpers.js';
|
|
30
|
-
import { rpc_call_for_spec, require_rpc_endpoint_path, resolve_rpc_endpoints_for_setup
|
|
30
|
+
import { rpc_call_for_spec, require_rpc_endpoint_path, resolve_rpc_endpoints_for_setup } from './rpc_helpers.js';
|
|
31
31
|
import { role_grant_offer_and_accept } from './role_grant_helpers.js';
|
|
32
|
-
import { role_grant_offer_accept_action_spec, role_grant_offer_create_action_spec, role_grant_revoke_action_spec
|
|
33
|
-
import { account_delete_action_spec, account_purge_action_spec, account_undelete_action_spec, admin_session_revoke_all_action_spec, admin_token_revoke_all_action_spec, app_settings_update_action_spec, audit_log_list_action_spec, AUDIT_LOG_LIST_LIMIT_MAX, invite_create_action_spec, invite_delete_action_spec
|
|
34
|
-
import { account_session_list_action_spec, account_session_revoke_action_spec, account_session_revoke_all_action_spec, account_token_create_action_spec, account_token_list_action_spec, account_token_revoke_action_spec
|
|
32
|
+
import { role_grant_offer_accept_action_spec, role_grant_offer_create_action_spec, role_grant_revoke_action_spec } from '../auth/role_grant_offer_action_specs.js';
|
|
33
|
+
import { account_delete_action_spec, account_purge_action_spec, account_undelete_action_spec, admin_session_revoke_all_action_spec, admin_token_revoke_all_action_spec, app_settings_update_action_spec, audit_log_list_action_spec, AUDIT_LOG_LIST_LIMIT_MAX, invite_create_action_spec, invite_delete_action_spec } from '../auth/admin_action_specs.js';
|
|
34
|
+
import { account_session_list_action_spec, account_session_revoke_action_spec, account_session_revoke_all_action_spec, account_token_create_action_spec, account_token_list_action_spec, account_token_revoke_action_spec } from '../auth/account_action_specs.js';
|
|
35
35
|
/**
|
|
36
36
|
* Mint a dedicated admin account whose sole job is to read the audit log
|
|
37
37
|
* via RPC. Decoupling the *observer* from the *subject* keeps the helper
|
|
@@ -61,7 +61,7 @@ const list_audit_events = async (app, rpc_path, observer, params = {}) => {
|
|
|
61
61
|
path: rpc_path,
|
|
62
62
|
spec: audit_log_list_action_spec,
|
|
63
63
|
params: { limit: AUDIT_LOG_LIST_LIMIT_MAX, ...params },
|
|
64
|
-
headers: observer.create_session_headers()
|
|
64
|
+
headers: observer.create_session_headers()
|
|
65
65
|
});
|
|
66
66
|
assert.ok(res.ok, `audit_log_list failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
67
67
|
return res.result.events;
|
|
@@ -85,12 +85,12 @@ const assert_event_credential_type = (events, expected, credential_type, context
|
|
|
85
85
|
const UNAUTHENTICATED_JSON_HEADERS = {
|
|
86
86
|
host: 'localhost',
|
|
87
87
|
origin: 'http://localhost:5173',
|
|
88
|
-
'content-type': 'application/json'
|
|
88
|
+
'content-type': 'application/json'
|
|
89
89
|
};
|
|
90
90
|
/** Standard request headers for session-authenticated JSON requests. */
|
|
91
91
|
const json_session_headers = (fixture, extra) => fixture.create_session_headers({
|
|
92
92
|
'content-type': 'application/json',
|
|
93
|
-
...extra
|
|
93
|
+
...extra
|
|
94
94
|
});
|
|
95
95
|
/**
|
|
96
96
|
* Composable audit log completeness test suite.
|
|
@@ -125,8 +125,8 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
125
125
|
headers: UNAUTHENTICATED_JSON_HEADERS,
|
|
126
126
|
body: JSON.stringify({
|
|
127
127
|
username: fixture.account.username,
|
|
128
|
-
password: DEFAULT_TEST_PASSWORD
|
|
129
|
-
})
|
|
128
|
+
password: DEFAULT_TEST_PASSWORD
|
|
129
|
+
})
|
|
130
130
|
});
|
|
131
131
|
assert.strictEqual(res.status, 200);
|
|
132
132
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -142,8 +142,8 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
142
142
|
headers: UNAUTHENTICATED_JSON_HEADERS,
|
|
143
143
|
body: JSON.stringify({
|
|
144
144
|
username: fixture.account.username,
|
|
145
|
-
password: 'wrong-password'
|
|
146
|
-
})
|
|
145
|
+
password: 'wrong-password'
|
|
146
|
+
})
|
|
147
147
|
});
|
|
148
148
|
assert.strictEqual(res.status, 401);
|
|
149
149
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -156,7 +156,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
156
156
|
assert.ok(logout_route, 'Expected POST /logout route');
|
|
157
157
|
const res = await fixture.transport(logout_route.path, {
|
|
158
158
|
method: 'POST',
|
|
159
|
-
headers: fixture.create_session_headers()
|
|
159
|
+
headers: fixture.create_session_headers()
|
|
160
160
|
});
|
|
161
161
|
assert.strictEqual(res.status, 200);
|
|
162
162
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -170,7 +170,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
170
170
|
path: rpc_path,
|
|
171
171
|
spec: account_token_create_action_spec,
|
|
172
172
|
params: { name: 'audit-test' },
|
|
173
|
-
headers: fixture.create_session_headers()
|
|
173
|
+
headers: fixture.create_session_headers()
|
|
174
174
|
});
|
|
175
175
|
assert.ok(res.ok, `account_token_create failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
176
176
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -186,7 +186,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
186
186
|
path: rpc_path,
|
|
187
187
|
spec: account_token_list_action_spec,
|
|
188
188
|
params: undefined,
|
|
189
|
-
headers: fixture.create_session_headers()
|
|
189
|
+
headers: fixture.create_session_headers()
|
|
190
190
|
});
|
|
191
191
|
assert.ok(list_res.ok, 'account_token_list should succeed');
|
|
192
192
|
const { tokens } = list_res.result;
|
|
@@ -196,7 +196,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
196
196
|
path: rpc_path,
|
|
197
197
|
spec: account_token_revoke_action_spec,
|
|
198
198
|
params: { token_id: tokens[0].id },
|
|
199
|
-
headers: fixture.create_session_headers()
|
|
199
|
+
headers: fixture.create_session_headers()
|
|
200
200
|
});
|
|
201
201
|
assert.ok(res.ok, `account_token_revoke failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
202
202
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -214,8 +214,8 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
214
214
|
headers: UNAUTHENTICATED_JSON_HEADERS,
|
|
215
215
|
body: JSON.stringify({
|
|
216
216
|
username: fixture.account.username,
|
|
217
|
-
password: DEFAULT_TEST_PASSWORD
|
|
218
|
-
})
|
|
217
|
+
password: DEFAULT_TEST_PASSWORD
|
|
218
|
+
})
|
|
219
219
|
});
|
|
220
220
|
// get session IDs (newest first — `account_session_list` orders DESC
|
|
221
221
|
// by `created_at`, so [0] is the just-logged-in session and [1] is
|
|
@@ -225,7 +225,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
225
225
|
path: rpc_path,
|
|
226
226
|
spec: account_session_list_action_spec,
|
|
227
227
|
params: undefined,
|
|
228
|
-
headers: fixture.create_session_headers()
|
|
228
|
+
headers: fixture.create_session_headers()
|
|
229
229
|
});
|
|
230
230
|
assert.ok(list_res.ok, 'account_session_list should succeed');
|
|
231
231
|
const { sessions } = list_res.result;
|
|
@@ -236,7 +236,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
236
236
|
path: rpc_path,
|
|
237
237
|
spec: account_session_revoke_action_spec,
|
|
238
238
|
params: { session_id: sessions[0].id },
|
|
239
|
-
headers: fixture.create_session_headers()
|
|
239
|
+
headers: fixture.create_session_headers()
|
|
240
240
|
});
|
|
241
241
|
assert.ok(res.ok, `account_session_revoke failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
242
242
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -251,7 +251,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
251
251
|
path: rpc_path,
|
|
252
252
|
spec: account_session_revoke_all_action_spec,
|
|
253
253
|
params: undefined,
|
|
254
|
-
headers: fixture.create_session_headers()
|
|
254
|
+
headers: fixture.create_session_headers()
|
|
255
255
|
});
|
|
256
256
|
assert.ok(res.ok, `account_session_revoke_all failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
257
257
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -268,8 +268,8 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
268
268
|
headers: json_session_headers(fixture),
|
|
269
269
|
body: JSON.stringify({
|
|
270
270
|
current_password: DEFAULT_TEST_PASSWORD,
|
|
271
|
-
new_password: 'new-password-456'
|
|
272
|
-
})
|
|
271
|
+
new_password: 'new-password-456'
|
|
272
|
+
})
|
|
273
273
|
});
|
|
274
274
|
assert.strictEqual(res.status, 200);
|
|
275
275
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -288,7 +288,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
288
288
|
path: rpc_path,
|
|
289
289
|
spec: role_grant_offer_create_action_spec,
|
|
290
290
|
params: { to_account_id: target.account.id, role: ROLE_ADMIN },
|
|
291
|
-
headers: fixture.create_session_headers()
|
|
291
|
+
headers: fixture.create_session_headers()
|
|
292
292
|
});
|
|
293
293
|
assert.ok(offer_res.ok, `role_grant_offer_create failed: ${offer_res.ok ? '' : JSON.stringify(offer_res.error)}`);
|
|
294
294
|
const { offer } = offer_res.result;
|
|
@@ -302,7 +302,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
302
302
|
path: rpc_path,
|
|
303
303
|
spec: role_grant_offer_accept_action_spec,
|
|
304
304
|
params: { offer_id: offer.id },
|
|
305
|
-
headers: target.create_session_headers()
|
|
305
|
+
headers: target.create_session_headers()
|
|
306
306
|
});
|
|
307
307
|
assert.ok(accept_res.ok, `role_grant_offer_accept failed: ${accept_res.ok ? '' : JSON.stringify(accept_res.error)}`);
|
|
308
308
|
const events_after_accept = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -321,7 +321,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
321
321
|
rpc_path,
|
|
322
322
|
grantor: fixture,
|
|
323
323
|
recipient: target,
|
|
324
|
-
role: ROLE_ADMIN
|
|
324
|
+
role: ROLE_ADMIN
|
|
325
325
|
});
|
|
326
326
|
// Revoke via RPC.
|
|
327
327
|
const revoke_res = await rpc_call_for_spec({
|
|
@@ -329,7 +329,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
329
329
|
path: rpc_path,
|
|
330
330
|
spec: role_grant_revoke_action_spec,
|
|
331
331
|
params: { actor_id: target.actor.id, role_grant_id },
|
|
332
|
-
headers: fixture.create_session_headers()
|
|
332
|
+
headers: fixture.create_session_headers()
|
|
333
333
|
});
|
|
334
334
|
assert.ok(revoke_res.ok, `role_grant_revoke failed: ${revoke_res.ok ? '' : JSON.stringify(revoke_res.error)}`);
|
|
335
335
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -351,7 +351,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
351
351
|
path: rpc_path,
|
|
352
352
|
spec: admin_session_revoke_all_action_spec,
|
|
353
353
|
params: { account_id: target.account.id },
|
|
354
|
-
headers: fixture.create_session_headers()
|
|
354
|
+
headers: fixture.create_session_headers()
|
|
355
355
|
});
|
|
356
356
|
assert.ok(res.ok, `admin_session_revoke_all failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
357
357
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -367,7 +367,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
367
367
|
path: rpc_path,
|
|
368
368
|
spec: admin_token_revoke_all_action_spec,
|
|
369
369
|
params: { account_id: target.account.id },
|
|
370
|
-
headers: fixture.create_session_headers()
|
|
370
|
+
headers: fixture.create_session_headers()
|
|
371
371
|
});
|
|
372
372
|
assert.ok(res.ok, `admin_token_revoke_all failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
373
373
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -384,7 +384,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
384
384
|
path: rpc_path,
|
|
385
385
|
spec: invite_create_action_spec,
|
|
386
386
|
params: { username: 'invited_user' },
|
|
387
|
-
headers: fixture.create_session_headers()
|
|
387
|
+
headers: fixture.create_session_headers()
|
|
388
388
|
});
|
|
389
389
|
assert.ok(create_res.ok, `invite_create failed: ${create_res.ok ? '' : JSON.stringify(create_res.error)}`);
|
|
390
390
|
const { invite } = create_res.result;
|
|
@@ -393,7 +393,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
393
393
|
path: rpc_path,
|
|
394
394
|
spec: invite_delete_action_spec,
|
|
395
395
|
params: { invite_id: invite.id },
|
|
396
|
-
headers: fixture.create_session_headers()
|
|
396
|
+
headers: fixture.create_session_headers()
|
|
397
397
|
});
|
|
398
398
|
assert.ok(delete_res.ok, `invite_delete failed: ${delete_res.ok ? '' : JSON.stringify(delete_res.error)}`);
|
|
399
399
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -411,7 +411,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
411
411
|
path: rpc_path,
|
|
412
412
|
spec: app_settings_update_action_spec,
|
|
413
413
|
params: { open_signup: true },
|
|
414
|
-
headers: fixture.create_session_headers()
|
|
414
|
+
headers: fixture.create_session_headers()
|
|
415
415
|
});
|
|
416
416
|
assert.ok(res.ok, `app_settings_update failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
417
417
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -429,7 +429,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
429
429
|
path: rpc_path,
|
|
430
430
|
spec: account_delete_action_spec,
|
|
431
431
|
params: { account_id: target.account.id },
|
|
432
|
-
headers: fixture.create_session_headers()
|
|
432
|
+
headers: fixture.create_session_headers()
|
|
433
433
|
});
|
|
434
434
|
assert.ok(res.ok, `account_delete failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
435
435
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -449,7 +449,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
449
449
|
// default `origin` header — the daemon-token middleware discards the
|
|
450
450
|
// credential in a browser context (Origin/Referer present).
|
|
451
451
|
suppress_default_origin: true,
|
|
452
|
-
headers: fixture.create_daemon_token_headers()
|
|
452
|
+
headers: fixture.create_daemon_token_headers()
|
|
453
453
|
});
|
|
454
454
|
assert.ok(res.ok, `account_purge failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
455
455
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -465,7 +465,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
465
465
|
path: rpc_path,
|
|
466
466
|
spec: account_delete_action_spec,
|
|
467
467
|
params: { account_id: target.account.id },
|
|
468
|
-
headers: fixture.create_session_headers()
|
|
468
|
+
headers: fixture.create_session_headers()
|
|
469
469
|
});
|
|
470
470
|
assert.ok(del.ok, `account_delete failed: ${del.ok ? '' : JSON.stringify(del.error)}`);
|
|
471
471
|
const res = await rpc_call_for_spec({
|
|
@@ -473,7 +473,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
473
473
|
path: rpc_path,
|
|
474
474
|
spec: account_undelete_action_spec,
|
|
475
475
|
params: { account_id: target.account.id },
|
|
476
|
-
headers: fixture.create_session_headers()
|
|
476
|
+
headers: fixture.create_session_headers()
|
|
477
477
|
});
|
|
478
478
|
assert.ok(res.ok, `account_undelete failed: ${res.ok ? '' : JSON.stringify(res.error)}`);
|
|
479
479
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -499,7 +499,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
499
499
|
path: rpc_path,
|
|
500
500
|
spec: app_settings_update_action_spec,
|
|
501
501
|
params: { open_signup: true },
|
|
502
|
-
headers: fixture.create_session_headers()
|
|
502
|
+
headers: fixture.create_session_headers()
|
|
503
503
|
});
|
|
504
504
|
assert.ok(settings_res.ok, `app_settings_update failed: ${settings_res.ok ? '' : JSON.stringify(settings_res.error)}`);
|
|
505
505
|
const res = await fixture.transport(signup_route.path, {
|
|
@@ -507,8 +507,8 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
507
507
|
headers: UNAUTHENTICATED_JSON_HEADERS,
|
|
508
508
|
body: JSON.stringify({
|
|
509
509
|
username: 'signup_user',
|
|
510
|
-
password: 'signup-password-123'
|
|
511
|
-
})
|
|
510
|
+
password: 'signup-password-123'
|
|
511
|
+
})
|
|
512
512
|
});
|
|
513
513
|
assert.strictEqual(res.status, 200);
|
|
514
514
|
const events = await list_audit_events({ request: fixture.transport }, rpc_path, observer);
|
|
@@ -543,7 +543,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
543
543
|
'actor_delete',
|
|
544
544
|
'actor_purge',
|
|
545
545
|
'actor_undelete',
|
|
546
|
-
'app_settings_update'
|
|
546
|
+
'app_settings_update'
|
|
547
547
|
]);
|
|
548
548
|
/** Event types excluded with justification. */
|
|
549
549
|
const EXCLUDED_EVENT_TYPES = new Set([
|
|
@@ -561,7 +561,7 @@ export const describe_audit_completeness_tests = (options) => {
|
|
|
561
561
|
'role_grant_offer_decline',
|
|
562
562
|
'role_grant_offer_retract',
|
|
563
563
|
'role_grant_offer_expire',
|
|
564
|
-
'role_grant_offer_supersede'
|
|
564
|
+
'role_grant_offer_supersede'
|
|
565
565
|
]);
|
|
566
566
|
test('all audit event types are covered or explicitly excluded', () => {
|
|
567
567
|
const all_covered = new Set([...COVERED_EVENT_TYPES, ...EXCLUDED_EVENT_TYPES]);
|
|
@@ -56,7 +56,9 @@ export interface RecordingAuditEmitter {
|
|
|
56
56
|
* and the `event_type` / `outcome` / `target_*_id` / `metadata` fields
|
|
57
57
|
* forward from the input envelope. Tests asserting on role-grant-shape
|
|
58
58
|
* emissions read out of the same homogeneous `calls` array.
|
|
59
|
-
* `notify` is a no-op; `
|
|
59
|
+
* `notify` is a no-op; `add_listener` records into a local array that
|
|
60
|
+
* `listener_count` reports (registered listeners never fire — this emitter
|
|
61
|
+
* captures `emit` shapes, not fan-out).
|
|
60
62
|
*
|
|
61
63
|
* `emit` AND `emit_pool` both append to `calls` so cleanup-sweep tests
|
|
62
64
|
* (which use `emit_pool` exclusively — see `auth/cleanup.ts`) can also
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit_drift_guard.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/audit_drift_guard.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAU7B,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"audit_drift_guard.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/audit_drift_guard.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAU7B,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,yBAAyB,QAAO,IAiB5C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACX;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,8BAA8B,GAC1C,YAAY,KAAK,CAAC,aAAa,CAAC,KAC9B,qBA8BF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,kCAAkC,GAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACxF,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC1B,YAAY,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EACtC,gBAAgB,IAAI,CAAC,yBAAyB,EAAE,IAAI,GAAG,KAAK,GAAG,gBAAgB,CAAC,KAC9E,YAWF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './assert_dev_env.js';
|
|
2
2
|
import { assert, beforeEach, afterEach } from 'vitest';
|
|
3
|
-
import { get_audit_metadata_validation_failures, get_audit_unknown_event_type_failures, reset_audit_metadata_validation_failures, reset_audit_unknown_event_type_failures
|
|
4
|
-
import { create_audit_emitter
|
|
3
|
+
import { get_audit_metadata_validation_failures, get_audit_unknown_event_type_failures, reset_audit_metadata_validation_failures, reset_audit_unknown_event_type_failures } from '../auth/audit_log_queries.js';
|
|
4
|
+
import { create_audit_emitter } from '../auth/audit_emitter.js';
|
|
5
5
|
/**
|
|
6
6
|
* Register per-test `beforeEach` + `afterEach` hooks that catch any audit
|
|
7
7
|
* emission with a metadata shape that fails its `audit_metadata_schemas`
|
|
@@ -44,7 +44,9 @@ export const install_audit_drift_guard = () => {
|
|
|
44
44
|
* and the `event_type` / `outcome` / `target_*_id` / `metadata` fields
|
|
45
45
|
* forward from the input envelope. Tests asserting on role-grant-shape
|
|
46
46
|
* emissions read out of the same homogeneous `calls` array.
|
|
47
|
-
* `notify` is a no-op; `
|
|
47
|
+
* `notify` is a no-op; `add_listener` records into a local array that
|
|
48
|
+
* `listener_count` reports (registered listeners never fire — this emitter
|
|
49
|
+
* captures `emit` shapes, not fan-out).
|
|
48
50
|
*
|
|
49
51
|
* `emit` AND `emit_pool` both append to `calls` so cleanup-sweep tests
|
|
50
52
|
* (which use `emit_pool` exclusively — see `auth/cleanup.ts`) can also
|
|
@@ -65,6 +67,7 @@ export const install_audit_drift_guard = () => {
|
|
|
65
67
|
*/
|
|
66
68
|
export const create_recording_audit_emitter = (calls_ref) => {
|
|
67
69
|
const calls = calls_ref ?? [];
|
|
70
|
+
const listeners = [];
|
|
68
71
|
const emitter = {
|
|
69
72
|
emit: (_ctx, input) => {
|
|
70
73
|
calls.push(input);
|
|
@@ -78,7 +81,7 @@ export const create_recording_audit_emitter = (calls_ref) => {
|
|
|
78
81
|
target_account_id: input.target_account_id,
|
|
79
82
|
target_actor_id: input.target_actor_id,
|
|
80
83
|
ip: ctx.client_ip,
|
|
81
|
-
metadata: input.metadata
|
|
84
|
+
metadata: input.metadata
|
|
82
85
|
});
|
|
83
86
|
},
|
|
84
87
|
emit_pool: (input) => {
|
|
@@ -86,7 +89,10 @@ export const create_recording_audit_emitter = (calls_ref) => {
|
|
|
86
89
|
return Promise.resolve();
|
|
87
90
|
},
|
|
88
91
|
notify: () => undefined,
|
|
89
|
-
|
|
92
|
+
add_listener: (listener) => {
|
|
93
|
+
listeners.push(listener);
|
|
94
|
+
},
|
|
95
|
+
listener_count: () => listeners.length
|
|
90
96
|
};
|
|
91
97
|
return { emitter, calls };
|
|
92
98
|
};
|
|
@@ -129,6 +135,6 @@ export const create_emit_ordering_audit_factory = (seq_ref, events_ref, extra_op
|
|
|
129
135
|
emit_decorator: (inner) => (ctx, input) => {
|
|
130
136
|
events_ref.push({ kind: 'emit', at: seq_ref.value++ });
|
|
131
137
|
inner(ctx, input);
|
|
132
|
-
}
|
|
138
|
+
}
|
|
133
139
|
});
|
|
134
140
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth_apps.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/auth_apps.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"auth_apps.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/auth_apps.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAE7B;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAGN,KAAK,cAAc,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAIN,KAAK,cAAc,EACnB,MAAM,oBAAoB,CAAC;AAI5B;;GAEG;AACH,eAAO,MAAM,2BAA2B,GAAI,OAAO,MAAM,KAAG,cAI1D,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACtC,aAAa,KAAK,CAAC,SAAS,CAAC,EAC7B,WAAW,cAAc,EACzB,kBAAkB,cAAc,KAC9B,IAuBF,CAAC;AAEF,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;IACb,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GACjC,aAAa,KAAK,CAAC,SAAS,CAAC,EAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,KAClB,YAeF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,YAAY,EAAE,MAAM,SAAS,KAAG,IAarE,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,MAA4C,CAAC"}
|
|
@@ -12,8 +12,8 @@ import { Logger } from '@fuzdev/fuz_util/log.ts';
|
|
|
12
12
|
import { apply_route_specs } from '../http/route_spec.js';
|
|
13
13
|
import { is_public_auth } from '../http/auth_shape.js';
|
|
14
14
|
import { fuz_auth_guard_resolver } from '../auth/auth_guard_resolver.js';
|
|
15
|
-
import { REQUEST_CONTEXT_KEY, create_fuz_authorization_handler
|
|
16
|
-
import { ACCOUNT_ID_KEY, CREDENTIAL_TYPE_KEY, TEST_CONTEXT_PRESET_KEY
|
|
15
|
+
import { REQUEST_CONTEXT_KEY, create_fuz_authorization_handler } from '../auth/request_context.js';
|
|
16
|
+
import { ACCOUNT_ID_KEY, CREDENTIAL_TYPE_KEY, TEST_CONTEXT_PRESET_KEY } from '../hono_context.js';
|
|
17
17
|
import { create_stub_db } from './stubs.js';
|
|
18
18
|
import { create_test_account, create_test_actor, create_test_role_grant } from './entities.js';
|
|
19
19
|
/**
|
|
@@ -22,7 +22,7 @@ import { create_test_account, create_test_actor, create_test_role_grant } from '
|
|
|
22
22
|
export const create_test_request_context = (role) => ({
|
|
23
23
|
account: create_test_account({ id: 'acc_1', username: 'testuser' }),
|
|
24
24
|
actor: create_test_actor({ id: 'act_1', account_id: 'acc_1', name: 'testuser' }),
|
|
25
|
-
role_grants: role ? [create_test_role_grant({ id: 'perm_1', actor_id: 'act_1', role })] : []
|
|
25
|
+
role_grants: role ? [create_test_role_grant({ id: 'perm_1', actor_id: 'act_1', role })] : []
|
|
26
26
|
});
|
|
27
27
|
/**
|
|
28
28
|
* Create a Hono test app from route specs with optional auth context.
|
|
@@ -63,7 +63,7 @@ export const create_auth_test_apps = (route_specs, roles) => {
|
|
|
63
63
|
public: create_test_app_from_specs(route_specs),
|
|
64
64
|
authed: create_test_app_from_specs(route_specs, create_test_request_context()),
|
|
65
65
|
keeper: create_test_app_from_specs(route_specs, create_test_request_context('keeper'), 'daemon_token'),
|
|
66
|
-
by_role
|
|
66
|
+
by_role
|
|
67
67
|
};
|
|
68
68
|
};
|
|
69
69
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap_success.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/bootstrap_success.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAsB7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bootstrap_success.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/bootstrap_success.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAsB7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAMhE,sDAAsD;AACtD,MAAM,WAAW,2BAA2B;IAC3C,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,0DAA0D;IAC1D,kBAAkB,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAChE,8EAA8E;IAC9E,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC;;;;;OAKG;IACH,SAAS,EAAE,oBAAoB,CAAC;IAChC,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,GAAI,SAAS,2BAA2B,KAAG,IAyIvF,CAAC"}
|
|
@@ -37,7 +37,7 @@ export const describe_bootstrap_success_tests = (options) => {
|
|
|
37
37
|
create_route_specs: options.create_route_specs,
|
|
38
38
|
rpc_endpoints: options.rpc_endpoints,
|
|
39
39
|
bootstrap: options.bootstrap,
|
|
40
|
-
bootstrap_token: token
|
|
40
|
+
bootstrap_token: token
|
|
41
41
|
});
|
|
42
42
|
try {
|
|
43
43
|
const response = await test_app.app.request(bootstrap_path, {
|
|
@@ -46,8 +46,8 @@ export const describe_bootstrap_success_tests = (options) => {
|
|
|
46
46
|
body: JSON.stringify({
|
|
47
47
|
token,
|
|
48
48
|
username: TEST_USERNAME,
|
|
49
|
-
password: TEST_PASSWORD
|
|
50
|
-
})
|
|
49
|
+
password: TEST_PASSWORD
|
|
50
|
+
})
|
|
51
51
|
});
|
|
52
52
|
// Response shape
|
|
53
53
|
assert.strictEqual(response.status, 200);
|
|
@@ -78,7 +78,7 @@ export const describe_bootstrap_success_tests = (options) => {
|
|
|
78
78
|
create_route_specs: options.create_route_specs,
|
|
79
79
|
rpc_endpoints: options.rpc_endpoints,
|
|
80
80
|
bootstrap: options.bootstrap,
|
|
81
|
-
bootstrap_token: token
|
|
81
|
+
bootstrap_token: token
|
|
82
82
|
});
|
|
83
83
|
try {
|
|
84
84
|
// First bootstrap succeeds
|
|
@@ -88,8 +88,8 @@ export const describe_bootstrap_success_tests = (options) => {
|
|
|
88
88
|
body: JSON.stringify({
|
|
89
89
|
token,
|
|
90
90
|
username: TEST_USERNAME,
|
|
91
|
-
password: TEST_PASSWORD
|
|
92
|
-
})
|
|
91
|
+
password: TEST_PASSWORD
|
|
92
|
+
})
|
|
93
93
|
});
|
|
94
94
|
assert.strictEqual(first.status, 200);
|
|
95
95
|
// Second attempt blocked by lock
|
|
@@ -99,8 +99,8 @@ export const describe_bootstrap_success_tests = (options) => {
|
|
|
99
99
|
body: JSON.stringify({
|
|
100
100
|
token,
|
|
101
101
|
username: 'another_user',
|
|
102
|
-
password: TEST_PASSWORD
|
|
103
|
-
})
|
|
102
|
+
password: TEST_PASSWORD
|
|
103
|
+
})
|
|
104
104
|
});
|
|
105
105
|
assert.strictEqual(second.status, 403);
|
|
106
106
|
const body = (await second.json());
|
|
@@ -116,7 +116,7 @@ export const describe_bootstrap_success_tests = (options) => {
|
|
|
116
116
|
create_route_specs: options.create_route_specs,
|
|
117
117
|
rpc_endpoints: options.rpc_endpoints,
|
|
118
118
|
bootstrap: options.bootstrap,
|
|
119
|
-
bootstrap_token: token
|
|
119
|
+
bootstrap_token: token
|
|
120
120
|
});
|
|
121
121
|
try {
|
|
122
122
|
const response = await test_app.app.request(bootstrap_path, {
|
|
@@ -125,8 +125,8 @@ export const describe_bootstrap_success_tests = (options) => {
|
|
|
125
125
|
body: JSON.stringify({
|
|
126
126
|
token: 'wrong-token-value-that-does-not-match',
|
|
127
127
|
username: TEST_USERNAME,
|
|
128
|
-
password: TEST_PASSWORD
|
|
129
|
-
})
|
|
128
|
+
password: TEST_PASSWORD
|
|
129
|
+
})
|
|
130
130
|
});
|
|
131
131
|
assert.strictEqual(response.status, 401);
|
|
132
132
|
const body = (await response.json());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection_closer_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/connection_closer_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAI7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"connection_closer_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/testing/connection_closer_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,eAkBrE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC7B,MAAM,aAAa,GAAG,SAAS,EAC/B,QAAQ,SAAS,GAAG,OAAO,GAAG,SAAS,EACvC,IAAI,MAAM,KACR,IAIF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account_lifecycle.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/account_lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"account_lifecycle.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/account_lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D;;;;GAIG;AACH,MAAM,MAAM,gCAAgC,GAAG,wBAAwB,CAAC;AAExE,eAAO,MAAM,sCAAsC,GAClD,SAAS,gCAAgC,KACvC,IA+TF,CAAC"}
|
|
@@ -18,7 +18,7 @@ import '../assert_dev_env.js';
|
|
|
18
18
|
* @module
|
|
19
19
|
*/
|
|
20
20
|
import { describe, assert } from 'vitest';
|
|
21
|
-
import { AccountDeleteOutput, AccountUndeleteOutput, AccountPurgeOutput, AdminAccountListOutput, AuditLogListOutput, ERROR_CANNOT_DELETE_KEEPER
|
|
21
|
+
import { AccountDeleteOutput, AccountUndeleteOutput, AccountPurgeOutput, AdminAccountListOutput, AuditLogListOutput, ERROR_CANNOT_DELETE_KEEPER } from '../../auth/admin_action_specs.js';
|
|
22
22
|
import { ERROR_ACCOUNT_NOT_FOUND, ERROR_AUTHENTICATION_REQUIRED } from '../../http/error_schemas.js';
|
|
23
23
|
import { test_if } from './capabilities.js';
|
|
24
24
|
import { cross_rpc_call, error_reason, expect_output } from './cell_cross_helpers.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action_manifest.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/action_manifest.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"action_manifest.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/action_manifest.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC/B,uCAAuC;;IAEvC,iGAAiG;;IAEjG,+BAA+B;;;;;;IAE/B,6BAA6B;;;;;;IAE7B,mFAAmF;;IAEnF,iFAAiF;;kBAEhF,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,kEAAkE;AAClE,eAAO,MAAM,cAAc;;QAhB1B,uCAAuC;;QAEvC,iGAAiG;;QAEjG,+BAA+B;;;;;;QAE/B,6BAA6B;;;;;;QAE7B,mFAAmF;;QAEnF,iFAAiF;;;kBAQhF,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAM5D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,MAAM;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAC/B,KAAG,mBAOF,CAAC;AAMH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GACjC,OAAO,aAAa,CAAC,IAAI,CAAC,yBAAyB,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC,CAAC,KACvF,cAED,CAAC"}
|
|
@@ -54,11 +54,11 @@ export const ActionManifestEntry = z.strictObject({
|
|
|
54
54
|
/** Required roles (any-of), sorted; `[]` when the action declares no role gate. */
|
|
55
55
|
roles: z.array(z.string()),
|
|
56
56
|
/** Permitted credential channels, sorted; `[]` when ungated (any credential). */
|
|
57
|
-
credential_types: z.array(z.string())
|
|
57
|
+
credential_types: z.array(z.string())
|
|
58
58
|
});
|
|
59
59
|
/** The full action manifest — every entry, sorted by `method`. */
|
|
60
60
|
export const ActionManifest = z.strictObject({
|
|
61
|
-
methods: z.array(ActionManifestEntry)
|
|
61
|
+
methods: z.array(ActionManifestEntry)
|
|
62
62
|
});
|
|
63
63
|
/** Sorted copy of a readonly string list (stable cross-impl ordering). */
|
|
64
64
|
const sorted_strings = (xs) => [...(xs ?? [])].sort();
|
|
@@ -73,7 +73,7 @@ export const action_manifest_entry = (spec) => ({
|
|
|
73
73
|
account: spec.auth.account,
|
|
74
74
|
actor: spec.auth.actor,
|
|
75
75
|
roles: sorted_strings(spec.auth.roles),
|
|
76
|
-
credential_types: sorted_strings(spec.auth.credential_types)
|
|
76
|
+
credential_types: sorted_strings(spec.auth.credential_types)
|
|
77
77
|
});
|
|
78
78
|
/** Deterministic byte-lexicographic method order — matches the Rust `str::cmp` the stub sorts by. */
|
|
79
79
|
const compare_method = (a, b) => a.method < b.method ? -1 : a.method > b.method ? 1 : 0;
|
|
@@ -85,5 +85,5 @@ const compare_method = (a, b) => a.method < b.method ? -1 : a.method > b.method
|
|
|
85
85
|
* `PROTOCOL_ACTION_SPECS` first) — see the module doc.
|
|
86
86
|
*/
|
|
87
87
|
export const build_action_manifest = (specs) => ({
|
|
88
|
-
methods: specs.map(action_manifest_entry).sort(compare_method)
|
|
88
|
+
methods: specs.map(action_manifest_entry).sort(compare_method)
|
|
89
89
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action_manifest_parity.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/action_manifest_parity.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"action_manifest_parity.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/action_manifest_parity.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAWhF,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvF;IACA,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACA,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,kBAAkB,CAAC;IACnE,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAML;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GACjC,GAAG,cAAc,EACjB,GAAG,cAAc,KACf,KAAK,CAAC,kBAAkB,CA+B1B,CAAC;AAEF,qEAAqE;AACrE,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACxC,OAAO,aAAa,CAAC,kBAAkB,CAAC,EACxC,SAAQ,wBAA6B,KACnC,MA8BF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACzC,GAAG,cAAc,EACjB,GAAG,cAAc,EACjB,SAAQ,wBAA6B,KACnC,IAUF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor_lookup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/actor_lookup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqC9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"actor_lookup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/actor_lookup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AASnE,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IAkDxF,CAAC"}
|
|
@@ -46,7 +46,7 @@ export const describe_actor_lookup_cross_tests = (options) => {
|
|
|
46
46
|
const res = await fixture.fresh_transport()(rpc_path, {
|
|
47
47
|
method: 'POST',
|
|
48
48
|
headers: { 'content-type': 'application/json' },
|
|
49
|
-
body: lookup_envelope([fixture.actor.id], 'anon-lookup')
|
|
49
|
+
body: lookup_envelope([fixture.actor.id], 'anon-lookup')
|
|
50
50
|
});
|
|
51
51
|
assert.strictEqual(res.status, 401, 'unauthenticated actor_lookup must be refused');
|
|
52
52
|
});
|
|
@@ -55,7 +55,7 @@ export const describe_actor_lookup_cross_tests = (options) => {
|
|
|
55
55
|
const res = await fixture.transport(rpc_path, {
|
|
56
56
|
method: 'POST',
|
|
57
57
|
headers: { ...fixture.create_session_headers(), 'content-type': 'application/json' },
|
|
58
|
-
body: lookup_envelope([fixture.actor.id], 'keeper-lookup')
|
|
58
|
+
body: lookup_envelope([fixture.actor.id], 'keeper-lookup')
|
|
59
59
|
});
|
|
60
60
|
assert.strictEqual(res.status, 200, 'authenticated actor_lookup must succeed');
|
|
61
61
|
const body = (await res.json());
|
|
@@ -75,7 +75,7 @@ export const describe_actor_lookup_cross_tests = (options) => {
|
|
|
75
75
|
const res = await fixture.transport(rpc_path, {
|
|
76
76
|
method: 'POST',
|
|
77
77
|
headers: { ...fixture.create_session_headers(), 'content-type': 'application/json' },
|
|
78
|
-
body: lookup_envelope([], 'empty-lookup')
|
|
78
|
+
body: lookup_envelope([], 'empty-lookup')
|
|
79
79
|
});
|
|
80
80
|
assert.strictEqual(res.status, 400, 'empty ids must fail input validation');
|
|
81
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor_search.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/actor_search.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA2C9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"actor_search.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/actor_search.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA2C9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,qFAAqF;AACrF,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AASnE,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IAyDxF,CAAC"}
|