@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
|
@@ -26,8 +26,8 @@ import '../assert_dev_env.js';
|
|
|
26
26
|
*/
|
|
27
27
|
import { assert, describe, test } from 'vitest';
|
|
28
28
|
import { DAEMON_TOKEN_HEADER } from '../../auth/daemon_token.js';
|
|
29
|
-
import { find_auth_route, rest_auth_route_suffixes
|
|
30
|
-
import { find_rpc_action, headers_to_record, rpc_call, resolve_rpc_endpoints_for_setup
|
|
29
|
+
import { find_auth_route, rest_auth_route_suffixes } from '../integration_helpers.js';
|
|
30
|
+
import { find_rpc_action, headers_to_record, rpc_call, resolve_rpc_endpoints_for_setup } from '../rpc_helpers.js';
|
|
31
31
|
import {} from './conformance_case.js';
|
|
32
32
|
import { xfail_until } from './xfail.js';
|
|
33
33
|
/**
|
|
@@ -60,7 +60,7 @@ const resolve_principal = async (fixture, as, principals) => {
|
|
|
60
60
|
return {
|
|
61
61
|
transport: fixture.fresh_transport({ origin: null }),
|
|
62
62
|
headers: fixture.create_daemon_token_headers(),
|
|
63
|
-
suppress_default_origin: true
|
|
63
|
+
suppress_default_origin: true
|
|
64
64
|
};
|
|
65
65
|
case 'invalid_daemon':
|
|
66
66
|
// A malformed `X-Daemon-Token` carried ALONGSIDE the keeper's session
|
|
@@ -76,9 +76,9 @@ const resolve_principal = async (fixture, as, principals) => {
|
|
|
76
76
|
return {
|
|
77
77
|
transport: fixture.fresh_transport({ origin: null }),
|
|
78
78
|
headers: fixture.create_session_headers({
|
|
79
|
-
[DAEMON_TOKEN_HEADER]: INVALID_DAEMON_TOKEN_VALUE
|
|
79
|
+
[DAEMON_TOKEN_HEADER]: INVALID_DAEMON_TOKEN_VALUE
|
|
80
80
|
}),
|
|
81
|
-
suppress_default_origin: true
|
|
81
|
+
suppress_default_origin: true
|
|
82
82
|
};
|
|
83
83
|
case 'daemon_browser':
|
|
84
84
|
// A VALID `X-Daemon-Token` carried in a browser context (default Origin
|
|
@@ -93,14 +93,14 @@ const resolve_principal = async (fixture, as, principals) => {
|
|
|
93
93
|
// guard), the 403 here proves the valid token was discarded, not honored.
|
|
94
94
|
return {
|
|
95
95
|
transport: fixture.transport,
|
|
96
|
-
headers: fixture.create_session_headers(fixture.create_daemon_token_headers())
|
|
96
|
+
headers: fixture.create_session_headers(fixture.create_daemon_token_headers())
|
|
97
97
|
};
|
|
98
98
|
case 'token':
|
|
99
99
|
// Bearer is discarded in a browser context — empty jar + no Origin.
|
|
100
100
|
return {
|
|
101
101
|
transport: fixture.fresh_transport({ origin: null }),
|
|
102
102
|
headers: fixture.create_bearer_headers(),
|
|
103
|
-
suppress_default_origin: true
|
|
103
|
+
suppress_default_origin: true
|
|
104
104
|
};
|
|
105
105
|
case 'bearer_browser':
|
|
106
106
|
// A VALID bearer api-token in a browser context (default Origin
|
|
@@ -114,7 +114,7 @@ const resolve_principal = async (fixture, as, principals) => {
|
|
|
114
114
|
// honored (a non-discarding leg would authenticate → 200).
|
|
115
115
|
return {
|
|
116
116
|
transport: fixture.fresh_transport(),
|
|
117
|
-
headers: fixture.create_bearer_headers()
|
|
117
|
+
headers: fixture.create_bearer_headers()
|
|
118
118
|
};
|
|
119
119
|
case 'anonymous':
|
|
120
120
|
// Fresh jar so the keeper cookie (cross-process) can't leak in.
|
|
@@ -189,7 +189,7 @@ const assert_absent_fields = (body, absent, label) => {
|
|
|
189
189
|
export const FINGERPRINT_HEADERS = [
|
|
190
190
|
'server',
|
|
191
191
|
'x-powered-by',
|
|
192
|
-
'www-authenticate'
|
|
192
|
+
'www-authenticate'
|
|
193
193
|
];
|
|
194
194
|
/**
|
|
195
195
|
* Assert a response carries none of the `FINGERPRINT_HEADERS`. Run on every
|
|
@@ -263,7 +263,7 @@ const run_rpc_case = async (c, transport, headers, suppress_default_origin, reso
|
|
|
263
263
|
params: c.request.params,
|
|
264
264
|
headers,
|
|
265
265
|
...(c.request.verb && { verb: c.request.verb }),
|
|
266
|
-
...(suppress_default_origin && { suppress_default_origin: true })
|
|
266
|
+
...(suppress_default_origin && { suppress_default_origin: true })
|
|
267
267
|
});
|
|
268
268
|
assert_response_headers(res.headers, c);
|
|
269
269
|
if (is_success_status(c.expect.status)) {
|
|
@@ -308,7 +308,7 @@ const run_rest_case = async (c, options, transport, headers) => {
|
|
|
308
308
|
method: verb,
|
|
309
309
|
headers: { 'Content-Type': 'application/json', ...headers },
|
|
310
310
|
...(verb !== 'GET' &&
|
|
311
|
-
c.request.params !== undefined && { body: JSON.stringify(c.request.params) })
|
|
311
|
+
c.request.params !== undefined && { body: JSON.stringify(c.request.params) })
|
|
312
312
|
};
|
|
313
313
|
const response = await transport(route.path, init);
|
|
314
314
|
assert_response_headers(headers_to_record(response.headers), c);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie_attributes.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cookie_attributes.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+C9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cookie_attributes.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cookie_attributes.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA+C9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,6DAA6D;AAC7D,MAAM,WAAW,gCAAgC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAoED,eAAO,MAAM,sCAAsC,GAClD,SAAS,gCAAgC,KACvC,IAmFF,CAAC"}
|
|
@@ -110,7 +110,7 @@ export const describe_cookie_attributes_cross_tests = (options) => {
|
|
|
110
110
|
const res = await fixture.fresh_transport()(login_path, {
|
|
111
111
|
method: 'POST',
|
|
112
112
|
headers: { 'content-type': 'application/json' },
|
|
113
|
-
body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD })
|
|
113
|
+
body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD })
|
|
114
114
|
});
|
|
115
115
|
assert.strictEqual(res.status, 200, 'valid credentials must log in');
|
|
116
116
|
const cookie = find_session_cookie(res, cookie_name);
|
|
@@ -126,7 +126,7 @@ export const describe_cookie_attributes_cross_tests = (options) => {
|
|
|
126
126
|
const res = await fixture.fresh_transport()(login_path, {
|
|
127
127
|
method: 'POST',
|
|
128
128
|
headers: { 'content-type': 'application/json' },
|
|
129
|
-
body: JSON.stringify({ username, password: `wrong-${DEFAULT_TEST_PASSWORD}` })
|
|
129
|
+
body: JSON.stringify({ username, password: `wrong-${DEFAULT_TEST_PASSWORD}` })
|
|
130
130
|
});
|
|
131
131
|
assert.strictEqual(res.status, 401, 'wrong password must be rejected');
|
|
132
132
|
assert.strictEqual(find_session_cookie(res, cookie_name), undefined, 'a failed login must not Set-Cookie a session — no credential is minted on denial');
|
|
@@ -140,13 +140,13 @@ export const describe_cookie_attributes_cross_tests = (options) => {
|
|
|
140
140
|
const login_res = await transport(login_path, {
|
|
141
141
|
method: 'POST',
|
|
142
142
|
headers: { 'content-type': 'application/json' },
|
|
143
|
-
body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD })
|
|
143
|
+
body: JSON.stringify({ username, password: DEFAULT_TEST_PASSWORD })
|
|
144
144
|
});
|
|
145
145
|
assert.strictEqual(login_res.status, 200, 'precondition: login must succeed');
|
|
146
146
|
const res = await transport(logout_path, {
|
|
147
147
|
method: 'POST',
|
|
148
148
|
headers: { 'content-type': 'application/json' },
|
|
149
|
-
body: JSON.stringify({})
|
|
149
|
+
body: JSON.stringify({})
|
|
150
150
|
});
|
|
151
151
|
assert.strictEqual(res.status, 200, 'logout must succeed for an authenticated session');
|
|
152
152
|
const cookie = find_session_cookie(res, cookie_name);
|
|
@@ -53,5 +53,5 @@ export interface CrossBackendGlobalSetupOptions {
|
|
|
53
53
|
* Build a vitest `globalSetup` default export. Returns the
|
|
54
54
|
* `(project) => teardown` function vitest 4 expects.
|
|
55
55
|
*/
|
|
56
|
-
export declare const create_cross_backend_global_setup: ({ configs, derive_name, provide_key
|
|
56
|
+
export declare const create_cross_backend_global_setup: ({ configs, derive_name, provide_key }: CrossBackendGlobalSetupOptions) => ((project: TestProject) => Promise<() => Promise<void>>);
|
|
57
57
|
//# sourceMappingURL=create_cross_backend_global_setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_cross_backend_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_cross_backend_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"create_cross_backend_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_cross_backend_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAYzD,MAAM,WAAW,8BAA8B;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC;IAChE;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,GAAI,uCAI/C,8BAA8B,KAAG,CAAC,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAqB1F,CAAC"}
|
|
@@ -12,7 +12,7 @@ const DEFAULT_PROJECT_NAME_PREFIX = /^cross_backend_(?:ts_)?/;
|
|
|
12
12
|
* Build a vitest `globalSetup` default export. Returns the
|
|
13
13
|
* `(project) => teardown` function vitest 4 expects.
|
|
14
14
|
*/
|
|
15
|
-
export const create_cross_backend_global_setup = ({ configs, derive_name = (project_name) => project_name.replace(DEFAULT_PROJECT_NAME_PREFIX, ''), provide_key = 'backend_handle'
|
|
15
|
+
export const create_cross_backend_global_setup = ({ configs, derive_name = (project_name) => project_name.replace(DEFAULT_PROJECT_NAME_PREFIX, ''), provide_key = 'backend_handle' }) => {
|
|
16
16
|
return async (project) => {
|
|
17
17
|
const name = derive_name(project.name);
|
|
18
18
|
const factory = configs[name];
|
|
@@ -60,5 +60,5 @@ export interface DualSpawnGlobalSetupOptions {
|
|
|
60
60
|
/**
|
|
61
61
|
* Build a vitest `globalSetup` default export that spawns both backends.
|
|
62
62
|
*/
|
|
63
|
-
export declare const create_dual_spawn_global_setup: ({ configs, provide_keys
|
|
63
|
+
export declare const create_dual_spawn_global_setup: ({ configs, provide_keys }: DualSpawnGlobalSetupOptions) => ((project: TestProject) => Promise<() => Promise<void>>);
|
|
64
64
|
//# sourceMappingURL=create_dual_spawn_global_setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_dual_spawn_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_dual_spawn_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"create_dual_spawn_global_setup.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/create_dual_spawn_global_setup.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,MAAM,WAAW,2BAA2B;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,aAAa,CAAA;KAAE,CAAC;IACvF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,GAAI,2BAG5C,2BAA2B,KAAG,CAAC,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAmBvF,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { serialize_bootstrapped_handle } from './setup.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Build a vitest `globalSetup` default export that spawns both backends.
|
|
6
6
|
*/
|
|
7
|
-
export const create_dual_spawn_global_setup = ({ configs, provide_keys = { a: 'parity_handle_a', b: 'parity_handle_b' }
|
|
7
|
+
export const create_dual_spawn_global_setup = ({ configs, provide_keys = { a: 'parity_handle_a', b: 'parity_handle_b' } }) => {
|
|
8
8
|
return async (project) => {
|
|
9
9
|
const a = await bootstrap_backend(configs.a());
|
|
10
10
|
// Tear `a` down if `b` fails to spawn — no orphaned child process.
|
|
@@ -152,7 +152,7 @@ export const describe_credential_header_robustness_cross_tests = (options) => {
|
|
|
152
152
|
// parser may close without a readable response — that's also "no smuggle".
|
|
153
153
|
const malformed = [
|
|
154
154
|
{ label: 'CRLF header-split', value: `${GARBAGE_TOKEN}\r\nX-Injected: 1` },
|
|
155
|
-
{ label: 'bare CR', value: `${GARBAGE_TOKEN}\rX-Injected: 1` }
|
|
155
|
+
{ label: 'bare CR', value: `${GARBAGE_TOKEN}\rX-Injected: 1` }
|
|
156
156
|
];
|
|
157
157
|
for (const { label, value } of malformed) {
|
|
158
158
|
const req = rpc_post(host, rpc_path, [`${DAEMON_TOKEN_HEADER}: ${value}`], purge_body('ctrl-char'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default_backend_configs.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_backend_configs.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"default_backend_configs.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_backend_configs.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAQhG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,mBA2BpC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,mBAsBtC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,iBAInC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAIrC,CAAC;AAeH,MAAM,WAAW,iCAAiC;IACjD,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,GAC1C,MAAM,iCAAiC,KACrC,aAoCF,CAAC;AAEF,MAAM,WAAW,mCAAmC;IACnD,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,GAC5C,MAAM,mCAAmC,KACvC,aA4CF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../assert_dev_env.js';
|
|
2
2
|
import { build_test_backend_paths } from './build_test_backend_paths.js';
|
|
3
|
-
import { default_test_bootstrap_token, default_test_cookie_keys, default_test_keeper_password, default_test_keeper_username
|
|
3
|
+
import { default_test_bootstrap_token, default_test_cookie_keys, default_test_keeper_password, default_test_keeper_username } from './default_secrets.js';
|
|
4
4
|
/**
|
|
5
5
|
* Env var both spine binaries read to enable their login rate limiters
|
|
6
6
|
* (`'true'` on / unset off). The cross-language contract for the login-security
|
|
@@ -44,7 +44,7 @@ export const ts_default_capabilities = Object.freeze({
|
|
|
44
44
|
// Off by default — the `cell_gated_create` test policy is a fuz_app test
|
|
45
45
|
// fixture, mounted only on the spine binaries (`ts_spine_*`), not generic
|
|
46
46
|
// consumers.
|
|
47
|
-
cell_gated_create: false
|
|
47
|
+
cell_gated_create: false
|
|
48
48
|
});
|
|
49
49
|
/**
|
|
50
50
|
* Capabilities for the Rust family. The non-gating wiring facts live in
|
|
@@ -72,7 +72,7 @@ export const rust_default_capabilities = Object.freeze({
|
|
|
72
72
|
peer_request: true,
|
|
73
73
|
// Off by default — the `testing_spine_stub` preset opts in (it mounts the
|
|
74
74
|
// `TestCellGatedCreateAuthorize` policy); a generic Rust consumer doesn't.
|
|
75
|
-
cell_gated_create: false
|
|
75
|
+
cell_gated_create: false
|
|
76
76
|
});
|
|
77
77
|
/**
|
|
78
78
|
* Shape notes for TS-family backends — wiring facts, not gating flags.
|
|
@@ -84,7 +84,7 @@ export const rust_default_capabilities = Object.freeze({
|
|
|
84
84
|
export const ts_default_shape_notes = Object.freeze({
|
|
85
85
|
bearer_auth: true,
|
|
86
86
|
trusted_proxy: false,
|
|
87
|
-
login_rate_limit: false
|
|
87
|
+
login_rate_limit: false
|
|
88
88
|
});
|
|
89
89
|
/**
|
|
90
90
|
* Shape notes for Rust-family backends — wiring facts, not gating flags. Adds
|
|
@@ -96,7 +96,7 @@ export const ts_default_shape_notes = Object.freeze({
|
|
|
96
96
|
export const rust_default_shape_notes = Object.freeze({
|
|
97
97
|
bearer_auth: true,
|
|
98
98
|
trusted_proxy: true,
|
|
99
|
-
login_rate_limit: true
|
|
99
|
+
login_rate_limit: true
|
|
100
100
|
});
|
|
101
101
|
/** Bootstrap block built from the default secrets + supplied paths. */
|
|
102
102
|
const build_default_bootstrap = (paths, overrides) => ({
|
|
@@ -105,7 +105,7 @@ const build_default_bootstrap = (paths, overrides) => ({
|
|
|
105
105
|
username: default_test_keeper_username,
|
|
106
106
|
password: default_test_keeper_password,
|
|
107
107
|
daemon_token_path: paths.daemon_token_path,
|
|
108
|
-
...overrides
|
|
108
|
+
...overrides
|
|
109
109
|
});
|
|
110
110
|
/**
|
|
111
111
|
* Shared builder for TS-family backends (Deno + Node). Owns the common
|
|
@@ -114,7 +114,7 @@ const build_default_bootstrap = (paths, overrides) => ({
|
|
|
114
114
|
* genuinely differs.
|
|
115
115
|
*/
|
|
116
116
|
export const make_default_ts_backend_config = (opts) => {
|
|
117
|
-
const { name, port, start_command, database_url = 'memory://', extra_env, capabilities = ts_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', cookie_name = 'fuz_session'
|
|
117
|
+
const { name, port, start_command, database_url = 'memory://', extra_env, capabilities = ts_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', cookie_name = 'fuz_session' } = opts;
|
|
118
118
|
return {
|
|
119
119
|
name,
|
|
120
120
|
start_command,
|
|
@@ -133,10 +133,10 @@ export const make_default_ts_backend_config = (opts) => {
|
|
|
133
133
|
SECRET_FUZ_COOKIE_KEYS: default_test_cookie_keys,
|
|
134
134
|
FUZ_ALLOWED_ORIGINS: 'http://localhost:*',
|
|
135
135
|
FUZ_BOOTSTRAP_TOKEN_PATH: paths.bootstrap_token_path,
|
|
136
|
-
...extra_env
|
|
136
|
+
...extra_env
|
|
137
137
|
},
|
|
138
138
|
bootstrap: build_default_bootstrap(paths, bootstrap_overrides),
|
|
139
|
-
capabilities
|
|
139
|
+
capabilities
|
|
140
140
|
};
|
|
141
141
|
};
|
|
142
142
|
/**
|
|
@@ -146,7 +146,7 @@ export const make_default_ts_backend_config = (opts) => {
|
|
|
146
146
|
* the 120s startup window for cargo's first-run build cost.
|
|
147
147
|
*/
|
|
148
148
|
export const make_default_rust_backend_config = (opts) => {
|
|
149
|
-
const { name, port, start_command, database_url, extra_env, capabilities = rust_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', rust_log = 'info', cookie_name = 'fuz_session'
|
|
149
|
+
const { name, port, start_command, database_url, extra_env, capabilities = rust_default_capabilities, paths = build_test_backend_paths(name), bootstrap_overrides, port_env_var = 'PORT', rust_log = 'info', cookie_name = 'fuz_session' } = opts;
|
|
150
150
|
return {
|
|
151
151
|
name,
|
|
152
152
|
start_command,
|
|
@@ -172,9 +172,9 @@ export const make_default_rust_backend_config = (opts) => {
|
|
|
172
172
|
// `fuz_db::run_migrations`. The `_testing_reset` RPC action
|
|
173
173
|
// (per-test reset) is orthogonal.
|
|
174
174
|
FUZ_TESTING_RESET_DB_ON_STARTUP: 'true',
|
|
175
|
-
...extra_env
|
|
175
|
+
...extra_env
|
|
176
176
|
},
|
|
177
177
|
bootstrap: build_default_bootstrap(paths, bootstrap_overrides),
|
|
178
|
-
capabilities
|
|
178
|
+
capabilities
|
|
179
179
|
};
|
|
180
180
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default_spine_surface.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_spine_surface.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"default_spine_surface.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/default_spine_surface.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAItD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAEtF,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI1F,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAe3E;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAAC,MAAM,CAAwC,CAAC;AAElG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,EAAE,gBAGxB,CAAC;AAEH,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACxC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB,GAC/B,KAAK,gBAAgB,EACrB,UAAU,wBAAwB,KAChC,KAAK,CAAC,eAAe,CAQvB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,KAAK,gBAAgB,KAAG,KAAK,CAAC,SAAS,CA+B/E,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,SAC+B,CAAC;AAE7F;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,QAAO,cAM1C,CAAC"}
|
|
@@ -14,7 +14,7 @@ import { create_test_app_surface_spec } from '../stubs.js';
|
|
|
14
14
|
// without dragging this module's eager in-process route handlers
|
|
15
15
|
// (→ `session_middleware` → `hono/cookie`). Import only the constants this
|
|
16
16
|
// module uses internally; callers that need a bare constant reach for the leaf.
|
|
17
|
-
import { SPINE_CELL_EDITOR_ROLE, SPINE_EXPECTED_SCHEMA_URL, SPINE_PARTICIPANT_ROLE, SPINE_RPC_PATH
|
|
17
|
+
import { SPINE_CELL_EDITOR_ROLE, SPINE_EXPECTED_SCHEMA_URL, SPINE_PARTICIPANT_ROLE, SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
18
18
|
/**
|
|
19
19
|
* Session config — cookie name matches the binary's issued session cookie
|
|
20
20
|
* (`fuz_session`) so cookie-attribute assertions + jar extraction line up.
|
|
@@ -33,7 +33,7 @@ export const spine_session_options = create_session_config('fuz_session');
|
|
|
33
33
|
*/
|
|
34
34
|
export const spine_roles = create_role_schema([
|
|
35
35
|
{ name: SPINE_CELL_EDITOR_ROLE, grant_paths: [] },
|
|
36
|
-
{ name: SPINE_PARTICIPANT_ROLE, grant_paths: [GRANT_PATH_ADMIN] }
|
|
36
|
+
{ name: SPINE_PARTICIPANT_ROLE, grant_paths: [GRANT_PATH_ADMIN] }
|
|
37
37
|
]);
|
|
38
38
|
/**
|
|
39
39
|
* Factory-form RPC endpoints over the per-test `ctx.deps`. `create_app_server`
|
|
@@ -53,8 +53,8 @@ export const spine_roles = create_role_schema([
|
|
|
53
53
|
export const spine_rpc_endpoints = (ctx, options) => [
|
|
54
54
|
{
|
|
55
55
|
path: SPINE_RPC_PATH,
|
|
56
|
-
actions: create_standard_rpc_actions({ ...ctx.deps, notification_sender: options?.notification_sender ?? null }, { roles: spine_roles })
|
|
57
|
-
}
|
|
56
|
+
actions: create_standard_rpc_actions({ ...ctx.deps, notification_sender: options?.notification_sender ?? null }, { roles: spine_roles })
|
|
57
|
+
}
|
|
58
58
|
];
|
|
59
59
|
/**
|
|
60
60
|
* Account REST + signup route specs under `/api/account` (bootstrap
|
|
@@ -81,7 +81,7 @@ export const create_spine_route_specs = (ctx) => [
|
|
|
81
81
|
ip_rate_limiter: ctx.ip_rate_limiter,
|
|
82
82
|
login_account_rate_limiter: ctx.login_account_rate_limiter,
|
|
83
83
|
login_fail_floor_ms: 0,
|
|
84
|
-
bootstrap_status: ctx.bootstrap_status
|
|
84
|
+
bootstrap_status: ctx.bootstrap_status
|
|
85
85
|
}),
|
|
86
86
|
...create_signup_route_specs(ctx.deps, {
|
|
87
87
|
session_options: spine_session_options,
|
|
@@ -92,12 +92,12 @@ export const create_spine_route_specs = (ctx) => [
|
|
|
92
92
|
// don't each pay the 250ms timing floor. Mirrors `login_fail_floor_ms: 0`
|
|
93
93
|
// above — the floor is a production timing-oracle defense, not
|
|
94
94
|
// behavior any cross test asserts.
|
|
95
|
-
signup_fail_floor_ms: 0
|
|
96
|
-
})
|
|
95
|
+
signup_fail_floor_ms: 0
|
|
96
|
+
})
|
|
97
97
|
]),
|
|
98
98
|
...(ctx.audit_sse
|
|
99
99
|
? prefix_route_specs('/api/admin', create_audit_log_route_specs({ stream: ctx.audit_sse }))
|
|
100
|
-
: [])
|
|
100
|
+
: [])
|
|
101
101
|
];
|
|
102
102
|
/**
|
|
103
103
|
* The spine's `/ready` route spec — the column-presence schema-drift deploy
|
|
@@ -123,5 +123,5 @@ export const create_spine_surface_spec = () => create_test_app_surface_spec({
|
|
|
123
123
|
session_options: spine_session_options,
|
|
124
124
|
create_route_specs: create_spine_route_specs,
|
|
125
125
|
rpc_endpoints: spine_rpc_endpoints,
|
|
126
|
-
bootstrap: { mode: 'surface_only' }
|
|
126
|
+
bootstrap: { mode: 'surface_only' }
|
|
127
127
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fact_serving.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/fact_serving.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAiD9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"fact_serving.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/fact_serving.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAiD9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,wBAAwB;IAC5E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,CAAC;CAC5C;AA8BD,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IAiOxF,CAAC"}
|
|
@@ -38,7 +38,7 @@ import '../assert_dev_env.js';
|
|
|
38
38
|
*/
|
|
39
39
|
import { describe, assert } from 'vitest';
|
|
40
40
|
import { z } from 'zod';
|
|
41
|
-
import { FactHashSchema } from '@fuzdev/fuz_util/
|
|
41
|
+
import { FactHashSchema } from '@fuzdev/fuz_util/hash_schemas.ts';
|
|
42
42
|
import { CellCreateOutput } from '../../auth/cell_action_specs.js';
|
|
43
43
|
import { test_if } from './capabilities.js';
|
|
44
44
|
import { cross_rpc_call, expect_output } from './cell_cross_helpers.js';
|
|
@@ -61,7 +61,7 @@ const fact_get = async (transport, path, headers) => {
|
|
|
61
61
|
return {
|
|
62
62
|
status: res.status,
|
|
63
63
|
content_type: res.headers.get('content-type'),
|
|
64
|
-
text: await res.text()
|
|
64
|
+
text: await res.text()
|
|
65
65
|
};
|
|
66
66
|
};
|
|
67
67
|
export const describe_fact_serving_cross_tests = (options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"full_spine_mount.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/full_spine_mount.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"full_spine_mount.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/full_spine_mount.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAKvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAS3E,2FAA2F;AAC3F,MAAM,WAAW,qBAAqB;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,4BAA4B,GACxC,MAAM,OAAO,EACb,SAAS,qBAAqB,KAC5B,KAAK,CAAC,SAAS,CAoCjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACpC,KAAK,gBAAgB,EACrB,SAAS,qBAAqB,KAC5B,KAAK,CAAC,eAAe,CAEvB,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { create_standard_rpc_actions } from '../../auth/standard_rpc_actions.js'
|
|
|
4
4
|
import { create_all_cell_actions } from '../../auth/all_cell_actions.js';
|
|
5
5
|
import { create_actor_lookup_actions } from '../../auth/actor_lookup_actions.js';
|
|
6
6
|
import { create_actor_search_actions } from '../../auth/actor_search_actions.js';
|
|
7
|
-
import { create_testing_action_manifest_action, create_testing_actions
|
|
7
|
+
import { create_testing_action_manifest_action, create_testing_actions } from './testing_reset_actions.js';
|
|
8
8
|
import { test_cell_gated_create_authorize } from './test_cell_gated_create_authorize.js';
|
|
9
9
|
import { spine_roles, spine_session_options } from './default_spine_surface.js';
|
|
10
10
|
import { SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
@@ -27,7 +27,7 @@ export const build_full_spine_rpc_actions = (deps, options) => {
|
|
|
27
27
|
...create_standard_rpc_actions({ ...deps, notification_sender: options.notification_sender ?? null }, { roles: spine_roles }),
|
|
28
28
|
...create_testing_actions(deps, {
|
|
29
29
|
session_options: spine_session_options,
|
|
30
|
-
daemon_token_state: options.daemon_token_state
|
|
30
|
+
daemon_token_state: options.daemon_token_state
|
|
31
31
|
}),
|
|
32
32
|
// Mount the directory-model `cell_gated_create` test policy (twin of the
|
|
33
33
|
// Rust stub's `TestCellGatedCreateAuthorize`) so the cross-backend
|
|
@@ -44,7 +44,7 @@ export const build_full_spine_rpc_actions = (deps, options) => {
|
|
|
44
44
|
// rather than `method_not_found`. It's a protocol action, so it's filtered
|
|
45
45
|
// out of the action manifest (`create_testing_action_manifest_action`) —
|
|
46
46
|
// the WS endpoint registers it via the `protocol_actions` spread.
|
|
47
|
-
peer_ping_action
|
|
47
|
+
peer_ping_action
|
|
48
48
|
];
|
|
49
49
|
// Append the `_testing_action_manifest` backdoor last — it closes over the
|
|
50
50
|
// complete `actions` list (plus its own spec) to dump the live method set
|
|
@@ -61,5 +61,5 @@ export const build_full_spine_rpc_actions = (deps, options) => {
|
|
|
61
61
|
* standard bundle only.
|
|
62
62
|
*/
|
|
63
63
|
export const full_spine_rpc_endpoints = (ctx, options) => [
|
|
64
|
-
{ path: SPINE_RPC_PATH, actions: build_full_spine_rpc_actions(ctx.deps, options) }
|
|
64
|
+
{ path: SPINE_RPC_PATH, actions: build_full_spine_rpc_actions(ctx.deps, options) }
|
|
65
65
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity_parity.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/identity_parity.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqG9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"identity_parity.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/identity_parity.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqG9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkB5C,uDAAuD;AACvD,MAAM,WAAW,8BAA8B;IAC9C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AA8JD,eAAO,MAAM,oCAAoC,GAChD,SAAS,8BAA8B,KACrC,IA6TF,CAAC"}
|
|
@@ -90,7 +90,7 @@ import '../assert_dev_env.js';
|
|
|
90
90
|
* @module
|
|
91
91
|
*/
|
|
92
92
|
import { describe, test, assert } from 'vitest';
|
|
93
|
-
import { ERROR_INVALID_CREDENTIALS, ERROR_INVALID_REQUEST_BODY, ERROR_NO_MATCHING_INVITE
|
|
93
|
+
import { ERROR_INVALID_CREDENTIALS, ERROR_INVALID_REQUEST_BODY, ERROR_NO_MATCHING_INVITE } from '../../http/error_schemas.js';
|
|
94
94
|
import { DEFAULT_TEST_PASSWORD } from '../test_credentials.js';
|
|
95
95
|
/**
|
|
96
96
|
* The flat-REST `{error}` reason each terminal login/signup status carries on
|
|
@@ -105,7 +105,7 @@ const REASON_BY_STATUS = {
|
|
|
105
105
|
200: undefined,
|
|
106
106
|
400: ERROR_INVALID_REQUEST_BODY,
|
|
107
107
|
401: ERROR_INVALID_CREDENTIALS,
|
|
108
|
-
403: ERROR_NO_MATCHING_INVITE
|
|
108
|
+
403: ERROR_NO_MATCHING_INVITE
|
|
109
109
|
};
|
|
110
110
|
/**
|
|
111
111
|
* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE. Its Unicode default lowercase
|
|
@@ -122,7 +122,7 @@ const TURKISH_DOTTED_I = 'İ';
|
|
|
122
122
|
const USERNAME_NON_ASCII_CASES = [
|
|
123
123
|
{ username: 'café_user', label: 'accented Latin mid-string', status: 400 },
|
|
124
124
|
{ username: 'Ωmega_user', label: 'leading Greek', status: 400 },
|
|
125
|
-
{ username: '日本_user', label: 'leading CJK', status: 400 }
|
|
125
|
+
{ username: '日本_user', label: 'leading CJK', status: 400 }
|
|
126
126
|
];
|
|
127
127
|
/**
|
|
128
128
|
* Status a signup with a **valid** username (but no matching invite, on a
|
|
@@ -149,9 +149,9 @@ const USERNAME_LENGTH_CASES = [
|
|
|
149
149
|
{
|
|
150
150
|
username: `a${'b'.repeat(38)}`,
|
|
151
151
|
label: '39 chars — at max',
|
|
152
|
-
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
152
|
+
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
153
153
|
},
|
|
154
|
-
{ username: `a${'b'.repeat(39)}`, label: '40 chars — above max', status: 400 }
|
|
154
|
+
{ username: `a${'b'.repeat(39)}`, label: '40 chars — above max', status: 400 }
|
|
155
155
|
];
|
|
156
156
|
/**
|
|
157
157
|
* Username format edge cases for the creation regex
|
|
@@ -175,9 +175,9 @@ const USERNAME_FORMAT_CASES = [
|
|
|
175
175
|
{
|
|
176
176
|
username: 'us_er',
|
|
177
177
|
label: 'underscore mid-string (valid)',
|
|
178
|
-
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
178
|
+
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
179
179
|
},
|
|
180
|
-
{ username: 'us-er', label: 'dash mid-string (valid)', status: VALID_USERNAME_NO_INVITE_STATUS }
|
|
180
|
+
{ username: 'us-er', label: 'dash mid-string (valid)', status: VALID_USERNAME_NO_INVITE_STATUS }
|
|
181
181
|
];
|
|
182
182
|
/**
|
|
183
183
|
* Signup email-format cases for the loose `Email` shape `local@domain.tld`
|
|
@@ -206,7 +206,11 @@ const SIGNUP_EMAIL_CASES = [
|
|
|
206
206
|
{ email: 'a\u0085b@c.d', label: 'NEL U+0085 (Unicode ws JS \\s omits)', status: 400 },
|
|
207
207
|
{ email: 'a\ufeffb@c.d', label: 'BOM/ZWNBSP U+FEFF', status: 400 },
|
|
208
208
|
// 255 bytes total (243-char local + "@example.com") — one over the 254-byte bound.
|
|
209
|
-
{
|
|
209
|
+
{
|
|
210
|
+
email: `${'a'.repeat(243)}@example.com`,
|
|
211
|
+
label: 'over the 254-byte bound (ASCII)',
|
|
212
|
+
status: 400
|
|
213
|
+
},
|
|
210
214
|
// Multibyte: the bound is UTF-8 BYTES, not code units. `\u00fc` (ü) is 2
|
|
211
215
|
// bytes / 1 code unit, so 121×ü + "@example.com" is 254 bytes (accepted) and
|
|
212
216
|
// 122×ü is 256 bytes (rejected) — both far under 254 code units, so a
|
|
@@ -215,29 +219,29 @@ const SIGNUP_EMAIL_CASES = [
|
|
|
215
219
|
{
|
|
216
220
|
email: `${'\u00fc'.repeat(121)}@example.com`,
|
|
217
221
|
label: 'multibyte at the 254-byte bound',
|
|
218
|
-
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
222
|
+
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
219
223
|
},
|
|
220
224
|
{
|
|
221
225
|
email: `${'\u00fc'.repeat(122)}@example.com`,
|
|
222
226
|
label: 'multibyte over the 254-byte bound',
|
|
223
|
-
status: 400
|
|
227
|
+
status: 400
|
|
224
228
|
},
|
|
225
229
|
{ email: 'user@example.com', label: 'well-formed', status: VALID_USERNAME_NO_INVITE_STATUS },
|
|
226
230
|
{
|
|
227
231
|
email: 'a@b.c',
|
|
228
232
|
label: 'single-char TLD (looser than z.email)',
|
|
229
|
-
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
233
|
+
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
230
234
|
},
|
|
231
235
|
{
|
|
232
236
|
email: 'a..b@c.d',
|
|
233
237
|
label: 'consecutive dots (looser than z.email)',
|
|
234
|
-
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
238
|
+
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
235
239
|
},
|
|
236
240
|
{
|
|
237
241
|
email: 'user+tag@example.co.uk',
|
|
238
242
|
label: 'plus-tag + multi-label',
|
|
239
|
-
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
240
|
-
}
|
|
243
|
+
status: VALID_USERNAME_NO_INVITE_STATUS
|
|
244
|
+
}
|
|
241
245
|
];
|
|
242
246
|
export const describe_identity_parity_cross_tests = (options) => {
|
|
243
247
|
const { setup_test } = options;
|
|
@@ -252,7 +256,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
252
256
|
const res = await fixture.fresh_transport()(path, {
|
|
253
257
|
method: 'POST',
|
|
254
258
|
headers: { 'content-type': 'application/json' },
|
|
255
|
-
body: JSON.stringify(body)
|
|
259
|
+
body: JSON.stringify(body)
|
|
256
260
|
});
|
|
257
261
|
const text = await res.text().catch(() => '');
|
|
258
262
|
let error;
|
|
@@ -335,7 +339,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
335
339
|
const fixture = await setup_test();
|
|
336
340
|
await fixture.create_account({
|
|
337
341
|
username: 'email_exact_user',
|
|
338
|
-
email: 'email-exact@example.com'
|
|
342
|
+
email: 'email-exact@example.com'
|
|
339
343
|
});
|
|
340
344
|
assert_attempt(await login(fixture, 'email-exact@example.com'), 200, 'exact-email login');
|
|
341
345
|
});
|
|
@@ -343,7 +347,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
343
347
|
const fixture = await setup_test();
|
|
344
348
|
await fixture.create_account({
|
|
345
349
|
username: 'email_mixed_user',
|
|
346
|
-
email: 'Email.Mixed@Example.COM'
|
|
350
|
+
email: 'Email.Mixed@Example.COM'
|
|
347
351
|
});
|
|
348
352
|
assert_attempt(await login(fixture, 'email.mixed@example.com'), 200, 'mixed-case-email login');
|
|
349
353
|
});
|
|
@@ -351,7 +355,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
351
355
|
const fixture = await setup_test();
|
|
352
356
|
await fixture.create_account({
|
|
353
357
|
username: 'email_upper_user',
|
|
354
|
-
email: 'email-upper@example.com'
|
|
358
|
+
email: 'email-upper@example.com'
|
|
355
359
|
});
|
|
356
360
|
assert_attempt(await login(fixture, 'EMAIL-UPPER@EXAMPLE.COM'), 200, 'uppercase-email login');
|
|
357
361
|
});
|
|
@@ -359,7 +363,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
359
363
|
const fixture = await setup_test();
|
|
360
364
|
await fixture.create_account({
|
|
361
365
|
username: 'email_dual_user',
|
|
362
|
-
email: 'email-dual@example.com'
|
|
366
|
+
email: 'email-dual@example.com'
|
|
363
367
|
});
|
|
364
368
|
assert_attempt(await login(fixture, 'email_dual_user'), 200, 'username login with email present');
|
|
365
369
|
});
|
|
@@ -367,7 +371,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
367
371
|
const fixture = await setup_test();
|
|
368
372
|
await fixture.create_account({
|
|
369
373
|
username: 'email_present_user',
|
|
370
|
-
email: 'email-present@example.com'
|
|
374
|
+
email: 'email-present@example.com'
|
|
371
375
|
});
|
|
372
376
|
assert_attempt(await login(fixture, 'email-absent@example.com'), 401, 'non-existent-email login');
|
|
373
377
|
});
|
|
@@ -402,7 +406,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
402
406
|
assert_attempt(await post_json(fixture, login_path, {
|
|
403
407
|
username: 'some_user',
|
|
404
408
|
password: DEFAULT_TEST_PASSWORD,
|
|
405
|
-
unexpected_field: 'x'
|
|
409
|
+
unexpected_field: 'x'
|
|
406
410
|
}), 400, 'unknown body key');
|
|
407
411
|
});
|
|
408
412
|
});
|
|
@@ -430,7 +434,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
430
434
|
assert_attempt(await post_json(fixture, signup_path, {
|
|
431
435
|
username: 'email_fmt_user',
|
|
432
436
|
password: DEFAULT_TEST_PASSWORD,
|
|
433
|
-
email
|
|
437
|
+
email
|
|
434
438
|
}), status, `email "${email}" (${label})`);
|
|
435
439
|
});
|
|
436
440
|
}
|
|
@@ -443,7 +447,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
443
447
|
assert_attempt(await post_json(fixture, signup_path, {
|
|
444
448
|
username: 'email_null_user',
|
|
445
449
|
password: DEFAULT_TEST_PASSWORD,
|
|
446
|
-
email: null
|
|
450
|
+
email: null
|
|
447
451
|
}), VALID_USERNAME_NO_INVITE_STATUS, 'null email');
|
|
448
452
|
});
|
|
449
453
|
});
|
|
@@ -458,7 +462,7 @@ export const describe_identity_parity_cross_tests = (options) => {
|
|
|
458
462
|
assert_attempt(await post_json(fixture, signup_path, {
|
|
459
463
|
username: 'strict_signup_user',
|
|
460
464
|
password: DEFAULT_TEST_PASSWORD,
|
|
461
|
-
unexpected_field: 'x'
|
|
465
|
+
unexpected_field: 'x'
|
|
462
466
|
}), 400, 'signup unknown body key');
|
|
463
467
|
});
|
|
464
468
|
});
|