@fuzdev/fuz_app 0.104.0 → 0.106.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/CLAUDE.md +2 -2
- package/dist/actions/action_bridge.d.ts.map +1 -1
- package/dist/actions/action_bridge.js +2 -2
- package/dist/actions/action_codegen.d.ts.map +1 -1
- package/dist/actions/action_codegen.js +3 -3
- package/dist/actions/action_dispatcher.d.ts.map +1 -1
- package/dist/actions/action_dispatcher.js +3 -3
- package/dist/actions/action_event.d.ts.map +1 -1
- package/dist/actions/action_event.js +11 -11
- package/dist/actions/action_event_data.d.ts.map +1 -1
- package/dist/actions/action_event_data.js +2 -2
- package/dist/actions/action_event_helpers.d.ts.map +1 -1
- package/dist/actions/action_event_helpers.js +2 -2
- package/dist/actions/action_event_types.d.ts.map +1 -1
- package/dist/actions/action_event_types.js +4 -4
- package/dist/actions/action_rpc.d.ts.map +1 -1
- package/dist/actions/action_rpc.js +14 -13
- package/dist/actions/action_spec.d.ts.map +1 -1
- package/dist/actions/action_spec.js +6 -6
- package/dist/actions/action_types.d.ts.map +1 -1
- package/dist/actions/broadcast_api.d.ts.map +1 -1
- package/dist/actions/broadcast_api.js +1 -1
- package/dist/actions/cancel.d.ts.map +1 -1
- package/dist/actions/cancel.js +3 -3
- package/dist/actions/compile_action_registry.d.ts.map +1 -1
- package/dist/actions/frontend_rpc_client.d.ts.map +1 -1
- package/dist/actions/frontend_rpc_client.js +3 -3
- package/dist/actions/heartbeat.d.ts.map +1 -1
- package/dist/actions/heartbeat.js +2 -2
- package/dist/actions/peer_ping.d.ts.map +1 -1
- package/dist/actions/peer_ping.js +6 -6
- package/dist/actions/peer_request.d.ts.map +1 -1
- package/dist/actions/perform_action.d.ts +8 -0
- package/dist/actions/perform_action.d.ts.map +1 -1
- package/dist/actions/perform_action.js +41 -23
- package/dist/actions/protocol.d.ts.map +1 -1
- package/dist/actions/protocol.js +1 -1
- package/dist/actions/register_action_ws.d.ts.map +1 -1
- package/dist/actions/register_action_ws.js +39 -12
- package/dist/actions/register_ws_endpoint.d.ts.map +1 -1
- package/dist/actions/register_ws_endpoint.js +3 -3
- package/dist/actions/request_tracker.svelte.d.ts.map +1 -1
- package/dist/actions/request_tracker.svelte.js +2 -2
- package/dist/actions/rpc_client.d.ts.map +1 -1
- package/dist/actions/rpc_client.js +7 -7
- package/dist/actions/socket.svelte.d.ts.map +1 -1
- package/dist/actions/socket.svelte.js +4 -3
- package/dist/actions/transports.d.ts.map +1 -1
- package/dist/actions/transports_http.d.ts.map +1 -1
- package/dist/actions/transports_http.js +7 -7
- package/dist/actions/transports_ws.d.ts.map +1 -1
- package/dist/actions/transports_ws.js +3 -3
- package/dist/actions/transports_ws_auth_guard.d.ts +4 -4
- package/dist/actions/transports_ws_auth_guard.d.ts.map +1 -1
- package/dist/actions/transports_ws_auth_guard.js +5 -5
- package/dist/actions/transports_ws_backend.d.ts.map +1 -1
- package/dist/actions/transports_ws_backend.js +2 -2
- package/dist/actions/ws_endpoint_spec.d.ts +2 -2
- package/dist/actions/ws_endpoint_spec.d.ts.map +1 -1
- package/dist/auth/CLAUDE.md +11 -7
- package/dist/auth/account_action_specs.d.ts +32 -9
- package/dist/auth/account_action_specs.d.ts.map +1 -1
- package/dist/auth/account_action_specs.js +35 -23
- package/dist/auth/account_actions.d.ts +3 -3
- package/dist/auth/account_actions.d.ts.map +1 -1
- package/dist/auth/account_actions.js +25 -12
- package/dist/auth/account_queries.d.ts.map +1 -1
- package/dist/auth/account_queries.js +6 -6
- package/dist/auth/account_route_schema.d.ts.map +1 -1
- package/dist/auth/account_route_schema.js +19 -19
- package/dist/auth/account_routes.d.ts +2 -2
- package/dist/auth/account_routes.d.ts.map +1 -1
- package/dist/auth/account_routes.js +27 -27
- package/dist/auth/account_schema.d.ts +26 -2
- package/dist/auth/account_schema.d.ts.map +1 -1
- package/dist/auth/account_schema.js +28 -10
- package/dist/auth/actor_lookup_action_specs.d.ts.map +1 -1
- package/dist/auth/actor_lookup_action_specs.js +5 -5
- package/dist/auth/actor_lookup_actions.d.ts +4 -2
- package/dist/auth/actor_lookup_actions.d.ts.map +1 -1
- package/dist/auth/actor_lookup_actions.js +3 -3
- package/dist/auth/actor_lookup_queries.d.ts.map +1 -1
- package/dist/auth/actor_search_action_specs.d.ts.map +1 -1
- package/dist/auth/actor_search_action_specs.js +6 -6
- package/dist/auth/actor_search_actions.d.ts +4 -2
- package/dist/auth/actor_search_actions.d.ts.map +1 -1
- package/dist/auth/actor_search_actions.js +5 -5
- package/dist/auth/actor_search_queries.d.ts.map +1 -1
- package/dist/auth/admin_action_specs.d.ts +2 -2
- package/dist/auth/admin_action_specs.d.ts.map +1 -1
- package/dist/auth/admin_action_specs.js +55 -55
- package/dist/auth/admin_actions.d.ts +5 -5
- package/dist/auth/admin_actions.d.ts.map +1 -1
- package/dist/auth/admin_actions.js +45 -44
- package/dist/auth/all_action_spec_registries.d.ts.map +1 -1
- package/dist/auth/all_action_spec_registries.js +1 -1
- package/dist/auth/all_cell_actions.d.ts.map +1 -1
- package/dist/auth/all_cell_actions.js +1 -1
- package/dist/auth/api_token.d.ts.map +1 -1
- package/dist/auth/api_token_queries.d.ts +9 -3
- package/dist/auth/api_token_queries.d.ts.map +1 -1
- package/dist/auth/api_token_queries.js +29 -8
- package/dist/auth/app_settings_queries.d.ts.map +1 -1
- package/dist/auth/app_settings_schema.d.ts.map +1 -1
- package/dist/auth/app_settings_schema.js +3 -3
- package/dist/auth/audit_emitter.d.ts +28 -20
- package/dist/auth/audit_emitter.d.ts.map +1 -1
- package/dist/auth/audit_emitter.js +37 -19
- package/dist/auth/audit_log_ddl.js +1 -1
- package/dist/auth/audit_log_queries.d.ts.map +1 -1
- package/dist/auth/audit_log_queries.js +2 -2
- package/dist/auth/audit_log_route_schema.d.ts.map +1 -1
- package/dist/auth/audit_log_route_schema.js +1 -1
- package/dist/auth/audit_log_routes.d.ts.map +1 -1
- package/dist/auth/audit_log_routes.js +12 -4
- package/dist/auth/audit_log_schema.d.ts +2 -2
- package/dist/auth/audit_log_schema.d.ts.map +1 -1
- package/dist/auth/audit_log_schema.js +69 -68
- package/dist/auth/auth_ddl.js +3 -3
- package/dist/auth/auth_guard_resolver.d.ts.map +1 -1
- package/dist/auth/bearer_auth.d.ts.map +1 -1
- package/dist/auth/bearer_auth.js +6 -1
- package/dist/auth/bootstrap_account.d.ts.map +1 -1
- package/dist/auth/bootstrap_account.js +5 -5
- package/dist/auth/bootstrap_route_schema.d.ts.map +1 -1
- package/dist/auth/bootstrap_route_schema.js +6 -6
- package/dist/auth/bootstrap_routes.d.ts.map +1 -1
- package/dist/auth/bootstrap_routes.js +7 -7
- package/dist/auth/cell_action_specs.d.ts +1 -1
- package/dist/auth/cell_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_action_specs.js +47 -47
- package/dist/auth/cell_actions.d.ts +2 -2
- package/dist/auth/cell_actions.d.ts.map +1 -1
- package/dist/auth/cell_actions.js +37 -37
- package/dist/auth/cell_audit_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_audit_action_specs.js +4 -4
- package/dist/auth/cell_audit_actions.d.ts.map +1 -1
- package/dist/auth/cell_audit_actions.js +3 -3
- package/dist/auth/cell_audit_events.d.ts.map +1 -1
- package/dist/auth/cell_audit_events.js +5 -5
- package/dist/auth/cell_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_audit_metadata.js +3 -3
- package/dist/auth/cell_authorize.d.ts.map +1 -1
- package/dist/auth/cell_data_schema.d.ts.map +1 -1
- package/dist/auth/cell_data_schema.js +1 -1
- package/dist/auth/cell_field_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_field_action_specs.js +16 -16
- package/dist/auth/cell_field_actions.d.ts +2 -2
- package/dist/auth/cell_field_actions.d.ts.map +1 -1
- package/dist/auth/cell_field_actions.js +11 -11
- package/dist/auth/cell_field_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_field_audit_metadata.js +2 -2
- package/dist/auth/cell_grant_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_grant_action_specs.js +15 -15
- package/dist/auth/cell_grant_actions.d.ts +2 -2
- package/dist/auth/cell_grant_actions.d.ts.map +1 -1
- package/dist/auth/cell_grant_actions.js +12 -12
- package/dist/auth/cell_grant_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_grant_audit_metadata.js +3 -3
- package/dist/auth/cell_item_action_specs.d.ts +6 -2
- package/dist/auth/cell_item_action_specs.d.ts.map +1 -1
- package/dist/auth/cell_item_action_specs.js +25 -21
- package/dist/auth/cell_item_actions.d.ts +2 -2
- package/dist/auth/cell_item_actions.d.ts.map +1 -1
- package/dist/auth/cell_item_actions.js +14 -14
- package/dist/auth/cell_item_audit_metadata.d.ts.map +1 -1
- package/dist/auth/cell_item_audit_metadata.js +3 -3
- package/dist/auth/cell_relation_visibility.d.ts.map +1 -1
- package/dist/auth/cleanup.d.ts.map +1 -1
- package/dist/auth/cleanup.js +2 -2
- package/dist/auth/credential_type_schema.d.ts.map +1 -1
- package/dist/auth/credential_type_schema.js +5 -5
- package/dist/auth/daemon_token.d.ts.map +1 -1
- package/dist/auth/daemon_token_middleware.d.ts.map +1 -1
- package/dist/auth/daemon_token_middleware.js +7 -3
- package/dist/auth/deps.d.ts +20 -5
- package/dist/auth/deps.d.ts.map +1 -1
- package/dist/auth/grant_path_schema.d.ts.map +1 -1
- package/dist/auth/grant_path_schema.js +8 -8
- package/dist/auth/invite_queries.d.ts.map +1 -1
- package/dist/auth/invite_schema.d.ts.map +1 -1
- package/dist/auth/invite_schema.js +2 -2
- package/dist/auth/keyring.d.ts.map +1 -1
- package/dist/auth/keyring.js +1 -1
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +7 -7
- package/dist/auth/migrations.d.ts.map +1 -1
- package/dist/auth/migrations.js +54 -19
- package/dist/auth/password.d.ts.map +1 -1
- package/dist/auth/password_argon2.d.ts.map +1 -1
- package/dist/auth/password_argon2.js +2 -2
- package/dist/auth/request_context.d.ts +18 -0
- package/dist/auth/request_context.d.ts.map +1 -1
- package/dist/auth/request_context.js +33 -7
- package/dist/auth/role_grant_offer_action_specs.d.ts +12 -0
- package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_action_specs.js +47 -36
- package/dist/auth/role_grant_offer_actions.d.ts +7 -4
- package/dist/auth/role_grant_offer_actions.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_actions.js +43 -43
- package/dist/auth/role_grant_offer_notifications.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_notifications.js +13 -13
- package/dist/auth/role_grant_offer_queries.d.ts +1 -1
- package/dist/auth/role_grant_offer_queries.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_queries.js +11 -11
- package/dist/auth/role_grant_offer_schema.d.ts.map +1 -1
- package/dist/auth/role_grant_offer_schema.js +7 -7
- package/dist/auth/role_grant_queries.d.ts.map +1 -1
- package/dist/auth/role_grant_queries.js +3 -3
- package/dist/auth/role_schema.d.ts.map +1 -1
- package/dist/auth/role_schema.js +7 -7
- package/dist/auth/scope_kind_schema.d.ts.map +1 -1
- package/dist/auth/self_service_role_action_specs.d.ts +7 -0
- package/dist/auth/self_service_role_action_specs.d.ts.map +1 -1
- package/dist/auth/self_service_role_action_specs.js +12 -6
- package/dist/auth/self_service_role_actions.d.ts +3 -3
- package/dist/auth/self_service_role_actions.d.ts.map +1 -1
- package/dist/auth/self_service_role_actions.js +9 -9
- package/dist/auth/session_cookie.d.ts.map +1 -1
- package/dist/auth/session_cookie.js +3 -3
- package/dist/auth/session_middleware.d.ts.map +1 -1
- package/dist/auth/session_middleware.js +4 -4
- package/dist/auth/session_queries.d.ts +14 -4
- package/dist/auth/session_queries.d.ts.map +1 -1
- package/dist/auth/session_queries.js +13 -3
- package/dist/auth/signup_route_schema.d.ts.map +1 -1
- package/dist/auth/signup_route_schema.js +6 -6
- package/dist/auth/signup_routes.d.ts.map +1 -1
- package/dist/auth/signup_routes.js +11 -11
- package/dist/auth/standard_action_specs.d.ts.map +1 -1
- package/dist/auth/standard_action_specs.js +1 -1
- package/dist/auth/standard_rpc_actions.d.ts +4 -4
- package/dist/auth/standard_rpc_actions.d.ts.map +1 -1
- package/dist/auth/standard_rpc_actions.js +3 -3
- package/dist/auth/token_scope.d.ts +155 -0
- package/dist/auth/token_scope.d.ts.map +1 -0
- package/dist/auth/token_scope.js +190 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +3 -3
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +1 -1
- package/dist/cli/logger.d.ts.map +1 -1
- package/dist/cli/logger.js +1 -1
- package/dist/cli/util.d.ts.map +1 -1
- package/dist/cli/util.js +1 -1
- package/dist/db/CLAUDE.md +1 -1
- package/dist/db/cell_audit_queries.d.ts.map +1 -1
- package/dist/db/cell_audit_queries.js +1 -1
- package/dist/db/cell_ddl.d.ts.map +1 -1
- package/dist/db/cell_ddl.js +7 -7
- package/dist/db/cell_field_queries.d.ts.map +1 -1
- package/dist/db/cell_grant_queries.d.ts.map +1 -1
- package/dist/db/cell_grant_queries.js +1 -1
- package/dist/db/cell_history_ddl.d.ts.map +1 -1
- package/dist/db/cell_history_ddl.js +4 -4
- package/dist/db/cell_item_queries.d.ts.map +1 -1
- package/dist/db/cell_queries.d.ts +1 -1
- package/dist/db/cell_queries.d.ts.map +1 -1
- package/dist/db/cell_queries.js +3 -3
- package/dist/db/create_db.d.ts.map +1 -1
- package/dist/db/create_db.js +1 -1
- package/dist/db/db.d.ts.map +1 -1
- package/dist/db/db_pg.d.ts.map +1 -1
- package/dist/db/db_pg.js +1 -1
- package/dist/db/db_pglite.d.ts.map +1 -1
- package/dist/db/db_pglite.js +1 -1
- package/dist/db/fact_ddl.d.ts.map +1 -1
- package/dist/db/fact_ddl.js +3 -3
- package/dist/db/fact_disk_storage.d.ts +1 -1
- package/dist/db/fact_disk_storage.d.ts.map +1 -1
- package/dist/db/fact_disk_storage.js +6 -6
- package/dist/db/fact_queries.d.ts +1 -1
- package/dist/db/fact_queries.d.ts.map +1 -1
- package/dist/db/fact_queries.js +2 -2
- package/dist/db/fact_store.d.ts +1 -1
- package/dist/db/fact_store.d.ts.map +1 -1
- package/dist/db/fact_store.js +9 -9
- package/dist/db/fact_store_errors.d.ts.map +1 -1
- package/dist/db/file_fact_url.d.ts +1 -1
- package/dist/db/file_fact_url.d.ts.map +1 -1
- package/dist/db/file_fact_url.js +1 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/pg_error.d.ts.map +1 -1
- package/dist/db/query_deps.d.ts.map +1 -1
- package/dist/db/schema_ready.d.ts.map +1 -1
- package/dist/db/schema_ready.js +2 -2
- package/dist/db/status.d.ts.map +1 -1
- package/dist/db/status.js +6 -6
- package/dist/dev/setup.d.ts.map +1 -1
- package/dist/dev/setup.js +6 -6
- package/dist/env/dotenv.d.ts.map +1 -1
- package/dist/env/load.d.ts.map +1 -1
- package/dist/env/resolve.d.ts.map +1 -1
- package/dist/hono_context.d.ts +23 -0
- package/dist/hono_context.d.ts.map +1 -1
- package/dist/hono_context.js +16 -2
- package/dist/http/auth_shape.d.ts.map +1 -1
- package/dist/http/auth_shape.js +6 -6
- package/dist/http/client_ip.d.ts.map +1 -1
- package/dist/http/common_routes.d.ts.map +1 -1
- package/dist/http/common_routes.js +8 -8
- package/dist/http/db_routes.d.ts.map +1 -1
- package/dist/http/db_routes.js +27 -23
- package/dist/http/error_schemas.d.ts +13 -1
- package/dist/http/error_schemas.d.ts.map +1 -1
- package/dist/http/error_schemas.js +25 -13
- package/dist/http/jsonrpc.d.ts.map +1 -1
- package/dist/http/jsonrpc.js +9 -9
- package/dist/http/jsonrpc_errors.d.ts.map +1 -1
- package/dist/http/jsonrpc_errors.js +21 -21
- package/dist/http/jsonrpc_helpers.d.ts.map +1 -1
- package/dist/http/jsonrpc_helpers.js +7 -7
- package/dist/http/middleware_spec.d.ts.map +1 -1
- package/dist/http/origin.d.ts.map +1 -1
- package/dist/http/pending_effects.d.ts.map +1 -1
- package/dist/http/proxy.d.ts.map +1 -1
- package/dist/http/proxy.js +1 -1
- package/dist/http/route_spec.d.ts.map +1 -1
- package/dist/http/route_spec.js +6 -6
- package/dist/http/schema_helpers.d.ts.map +1 -1
- package/dist/http/schema_helpers.js +1 -1
- package/dist/http/surface.d.ts.map +1 -1
- package/dist/http/surface.js +11 -11
- package/dist/http/surface_query.d.ts.map +1 -1
- package/dist/http/surface_query.js +1 -1
- package/dist/primitive_schemas.d.ts.map +1 -1
- package/dist/primitive_schemas.js +1 -1
- package/dist/rate_limiter.d.ts.map +1 -1
- package/dist/rate_limiter.js +4 -4
- package/dist/realtime/sse.d.ts.map +1 -1
- package/dist/realtime/sse.js +2 -2
- package/dist/realtime/sse_auth_guard.d.ts +4 -4
- package/dist/realtime/sse_auth_guard.d.ts.map +1 -1
- package/dist/realtime/sse_auth_guard.js +8 -8
- package/dist/realtime/subscriber_registry.d.ts.map +1 -1
- package/dist/runtime/deno.d.ts.map +1 -1
- package/dist/runtime/deno.js +7 -7
- package/dist/runtime/deps.d.ts.map +1 -1
- package/dist/runtime/fs.d.ts.map +1 -1
- package/dist/runtime/mock.d.ts.map +1 -1
- package/dist/runtime/mock.js +3 -3
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +7 -7
- package/dist/schema_meta.d.ts.map +1 -1
- package/dist/server/app_backend.d.ts +3 -3
- package/dist/server/app_backend.d.ts.map +1 -1
- package/dist/server/app_backend.js +3 -3
- package/dist/server/app_server.d.ts +6 -6
- package/dist/server/app_server.d.ts.map +1 -1
- package/dist/server/app_server.js +32 -32
- package/dist/server/app_server_context.d.ts.map +1 -1
- package/dist/server/env.d.ts.map +1 -1
- package/dist/server/env.js +9 -9
- package/dist/server/file_fact_fetcher.d.ts.map +1 -1
- package/dist/server/file_fact_fetcher.js +1 -1
- package/dist/server/serve_fact_route.d.ts.map +1 -1
- package/dist/server/serve_fact_route.js +23 -13
- package/dist/server/startup.d.ts.map +1 -1
- package/dist/server/static.d.ts.map +1 -1
- package/dist/server/x_accel.d.ts +2 -4
- package/dist/server/x_accel.d.ts.map +1 -1
- package/dist/server/x_accel.js +3 -5
- package/dist/testing/CLAUDE.md +2 -2
- package/dist/testing/admin_integration.d.ts.map +1 -1
- package/dist/testing/admin_integration.js +64 -64
- package/dist/testing/adversarial_404.d.ts.map +1 -1
- package/dist/testing/adversarial_404.js +1 -1
- package/dist/testing/adversarial_headers.d.ts.map +1 -1
- package/dist/testing/adversarial_headers.js +15 -15
- package/dist/testing/adversarial_input.d.ts.map +1 -1
- package/dist/testing/adversarial_input.js +22 -22
- package/dist/testing/app_server.d.ts.map +1 -1
- package/dist/testing/app_server.js +34 -33
- package/dist/testing/assertions.d.ts.map +1 -1
- package/dist/testing/attack_surface.d.ts.map +1 -1
- package/dist/testing/attack_surface.js +12 -12
- package/dist/testing/audit_completeness.d.ts.map +1 -1
- package/dist/testing/audit_completeness.js +42 -42
- package/dist/testing/audit_drift_guard.d.ts +3 -1
- package/dist/testing/audit_drift_guard.d.ts.map +1 -1
- package/dist/testing/audit_drift_guard.js +12 -6
- package/dist/testing/auth_apps.d.ts.map +1 -1
- package/dist/testing/auth_apps.js +4 -4
- package/dist/testing/bootstrap_success.d.ts.map +1 -1
- package/dist/testing/bootstrap_success.js +11 -11
- package/dist/testing/connection_closer_helpers.d.ts.map +1 -1
- package/dist/testing/connection_closer_helpers.js +1 -1
- package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
- package/dist/testing/cross_backend/account_lifecycle.js +1 -1
- package/dist/testing/cross_backend/action_manifest.d.ts.map +1 -1
- package/dist/testing/cross_backend/action_manifest.js +4 -4
- package/dist/testing/cross_backend/action_manifest_parity.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_lookup.js +3 -3
- package/dist/testing/cross_backend/actor_search.d.ts.map +1 -1
- package/dist/testing/cross_backend/actor_search.js +5 -5
- package/dist/testing/cross_backend/app_settings.d.ts.map +1 -1
- package/dist/testing/cross_backend/app_settings.js +6 -6
- package/dist/testing/cross_backend/backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/bench_report.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/bench_report.js +5 -5
- package/dist/testing/cross_backend/bench/run_cross_impl_bench.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/run_cross_impl_bench.js +2 -2
- package/dist/testing/cross_backend/bench/scenario.d.ts.map +1 -1
- package/dist/testing/cross_backend/bench/scenario.js +1 -1
- package/dist/testing/cross_backend/body_size.d.ts.map +1 -1
- package/dist/testing/cross_backend/body_size.js +1 -1
- package/dist/testing/cross_backend/bootstrap_backend.d.ts.map +1 -1
- package/dist/testing/cross_backend/bootstrap_backend.js +2 -2
- package/dist/testing/cross_backend/build_test_backend_paths.js +1 -1
- package/dist/testing/cross_backend/capabilities.js +2 -2
- package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_crud.js +5 -2
- package/dist/testing/cross_backend/cell_gated_create.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_gated_create.js +8 -7
- package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_grant_role.js +2 -2
- package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -1
- package/dist/testing/cross_backend/cell_relations.js +13 -13
- package/dist/testing/cross_backend/conformance_case.d.ts +23 -0
- package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_case.js +32 -11
- package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
- package/dist/testing/cross_backend/conformance_table.js +68 -15
- package/dist/testing/cross_backend/cookie_attributes.d.ts.map +1 -1
- package/dist/testing/cross_backend/cookie_attributes.js +4 -4
- package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts +1 -1
- package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/create_cross_backend_global_setup.js +1 -1
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts +1 -1
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/create_dual_spawn_global_setup.js +1 -1
- package/dist/testing/cross_backend/credential_header_robustness.js +1 -1
- package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_backend_configs.js +12 -12
- package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
- package/dist/testing/cross_backend/default_spine_surface.js +9 -9
- package/dist/testing/cross_backend/expected_schema.json +1 -0
- package/dist/testing/cross_backend/fact_serving.d.ts.map +1 -1
- package/dist/testing/cross_backend/fact_serving.js +2 -2
- package/dist/testing/cross_backend/full_spine_mount.d.ts.map +1 -1
- package/dist/testing/cross_backend/full_spine_mount.js +4 -4
- package/dist/testing/cross_backend/identity_parity.d.ts.map +1 -1
- package/dist/testing/cross_backend/identity_parity.js +28 -24
- package/dist/testing/cross_backend/in_process_setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/in_process_setup.js +9 -9
- package/dist/testing/cross_backend/login_security.d.ts.map +1 -1
- package/dist/testing/cross_backend/login_security.js +2 -2
- package/dist/testing/cross_backend/make_cross_backend_project.d.ts +1 -1
- package/dist/testing/cross_backend/make_cross_backend_project.d.ts.map +1 -1
- package/dist/testing/cross_backend/make_cross_backend_project.js +3 -3
- package/dist/testing/cross_backend/method_coverage.d.ts.map +1 -1
- package/dist/testing/cross_backend/origin.d.ts.map +1 -1
- package/dist/testing/cross_backend/origin.js +4 -4
- package/dist/testing/cross_backend/peer_ping_ws.d.ts.map +1 -1
- package/dist/testing/cross_backend/peer_ping_ws.js +6 -6
- package/dist/testing/cross_backend/ready.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_enumeration.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_enumeration.js +1 -1
- package/dist/testing/cross_backend/role_grant_offer_notification_ws.d.ts.map +1 -1
- package/dist/testing/cross_backend/role_grant_offer_notification_ws.js +1 -1
- package/dist/testing/cross_backend/role_grant_participation.d.ts.map +1 -1
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/rust_spine_stub_backend_config.js +5 -5
- package/dist/testing/cross_backend/setup.d.ts.map +1 -1
- package/dist/testing/cross_backend/setup.js +41 -37
- package/dist/testing/cross_backend/spawn_backend.d.ts.map +1 -1
- package/dist/testing/cross_backend/spawn_backend.js +1 -1
- package/dist/testing/cross_backend/sse_round_trip.d.ts.map +1 -1
- package/dist/testing/cross_backend/sse_round_trip.js +10 -7
- package/dist/testing/cross_backend/standard.d.ts.map +1 -1
- package/dist/testing/cross_backend/standard.js +5 -5
- package/dist/testing/cross_backend/testing_backdoor.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_backdoor.js +7 -7
- package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_reset_actions.js +24 -23
- package/dist/testing/cross_backend/testing_server_bun.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_bun.js +3 -3
- package/dist/testing/cross_backend/testing_server_core.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_core.js +1 -1
- package/dist/testing/cross_backend/testing_server_deno.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_deno.js +1 -1
- package/dist/testing/cross_backend/testing_server_node.d.ts.map +1 -1
- package/dist/testing/cross_backend/testing_server_node.js +3 -3
- package/dist/testing/cross_backend/ts_spine_backend_config.d.ts.map +1 -1
- package/dist/testing/cross_backend/ts_spine_backend_config.js +13 -13
- package/dist/testing/cross_backend/ws_round_trip.d.ts.map +1 -1
- package/dist/testing/cross_backend/ws_round_trip.js +2 -2
- package/dist/testing/data_exposure.d.ts.map +1 -1
- package/dist/testing/data_exposure.js +8 -8
- package/dist/testing/db.d.ts.map +1 -1
- package/dist/testing/db.js +3 -3
- package/dist/testing/db_entities.d.ts.map +1 -1
- package/dist/testing/db_entities.js +1 -1
- package/dist/testing/entities.d.ts.map +1 -1
- package/dist/testing/entities.js +5 -5
- package/dist/testing/error_coverage.d.ts.map +1 -1
- package/dist/testing/integration.d.ts.map +1 -1
- package/dist/testing/integration.js +109 -109
- package/dist/testing/integration_helpers.d.ts.map +1 -1
- package/dist/testing/integration_helpers.js +3 -3
- package/dist/testing/middleware.d.ts.map +1 -1
- package/dist/testing/middleware.js +11 -11
- package/dist/testing/mock_fs.js +1 -1
- package/dist/testing/rate_limiting.d.ts.map +1 -1
- package/dist/testing/rate_limiting.js +23 -23
- package/dist/testing/role_grant_helpers.d.ts.map +1 -1
- package/dist/testing/role_grant_helpers.js +3 -3
- package/dist/testing/round_trip.d.ts.map +1 -1
- package/dist/testing/round_trip.js +6 -6
- package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
- package/dist/testing/rpc_attack_surface.js +12 -12
- package/dist/testing/rpc_helpers.d.ts.map +1 -1
- package/dist/testing/rpc_helpers.js +11 -11
- package/dist/testing/rpc_round_trip.d.ts.map +1 -1
- package/dist/testing/rpc_round_trip.js +3 -3
- package/dist/testing/schema_generators.d.ts.map +1 -1
- package/dist/testing/schema_generators.js +3 -3
- package/dist/testing/schema_introspect.d.ts.map +1 -1
- package/dist/testing/schema_introspect.js +12 -12
- package/dist/testing/schema_parity.d.ts.map +1 -1
- package/dist/testing/schema_parity.js +7 -7
- package/dist/testing/schema_ready_fixture.d.ts.map +1 -1
- package/dist/testing/sse_round_trip.d.ts.map +1 -1
- package/dist/testing/sse_round_trip.js +8 -8
- package/dist/testing/standard.d.ts.map +1 -1
- package/dist/testing/standard.js +8 -8
- package/dist/testing/stubs.d.ts +6 -6
- package/dist/testing/stubs.d.ts.map +1 -1
- package/dist/testing/stubs.js +26 -23
- package/dist/testing/surface_invariants.d.ts.map +1 -1
- package/dist/testing/surface_invariants.js +5 -5
- package/dist/testing/testing_rate_limiter.d.ts.map +1 -1
- package/dist/testing/transports/bootstrap.d.ts.map +1 -1
- package/dist/testing/transports/bootstrap.js +4 -4
- package/dist/testing/transports/fetch_transport.d.ts.map +1 -1
- package/dist/testing/transports/sse_frame_reader.d.ts.map +1 -1
- package/dist/testing/transports/sse_transport.js +1 -1
- package/dist/testing/transports/ws_client.d.ts.map +1 -1
- package/dist/testing/transports/ws_client.js +1 -1
- package/dist/testing/transports/ws_transport.js +4 -4
- package/dist/testing/ws_round_trip.d.ts.map +1 -1
- package/dist/testing/ws_round_trip.js +21 -21
- package/dist/ui/AccountSessions.svelte +11 -11
- package/dist/ui/AdminAccounts.svelte +10 -10
- package/dist/ui/AdminAuditLog.svelte +14 -14
- package/dist/ui/AdminInvites.svelte +13 -13
- package/dist/ui/AdminOverview.svelte +22 -22
- package/dist/ui/AdminRoleGrantHistory.svelte +11 -11
- package/dist/ui/AdminSessions.svelte +12 -12
- package/dist/ui/AdminSettings.svelte +1 -1
- package/dist/ui/AdminSurface.svelte +3 -3
- package/dist/ui/AppShell.svelte +8 -8
- package/dist/ui/AppShell.svelte.d.ts.map +1 -1
- package/dist/ui/BootstrapForm.svelte +9 -9
- package/dist/ui/CLAUDE.md +1 -1
- package/dist/ui/ColumnLayout.svelte +2 -2
- package/dist/ui/ColumnLayout.svelte.d.ts.map +1 -1
- package/dist/ui/ConfirmButton.svelte +8 -8
- package/dist/ui/ConfirmButton.svelte.d.ts.map +1 -1
- package/dist/ui/Datatable.svelte +6 -6
- package/dist/ui/Datatable.svelte.d.ts.map +1 -1
- package/dist/ui/LoginForm.svelte +6 -6
- package/dist/ui/LogoutButton.svelte +2 -2
- package/dist/ui/LogoutButton.svelte.d.ts.map +1 -1
- package/dist/ui/MenuLink.svelte +5 -5
- package/dist/ui/MenuLink.svelte.d.ts.map +1 -1
- package/dist/ui/OpenSignupToggle.svelte +2 -2
- package/dist/ui/PopoverButton.svelte +10 -10
- package/dist/ui/PopoverButton.svelte.d.ts.map +1 -1
- package/dist/ui/RoleGrantOfferForm.svelte +8 -11
- package/dist/ui/RoleGrantOfferForm.svelte.d.ts.map +1 -1
- package/dist/ui/RoleGrantOfferHistory.svelte +11 -11
- package/dist/ui/RoleGrantOfferHistory.svelte.d.ts.map +1 -1
- package/dist/ui/RoleGrantOfferInbox.svelte +6 -6
- package/dist/ui/RoleGrantOfferInbox.svelte.d.ts.map +1 -1
- package/dist/ui/SignupForm.svelte +9 -9
- package/dist/ui/SurfaceExplorer.svelte +11 -11
- package/dist/ui/SurfaceExplorer.svelte.d.ts.map +1 -1
- package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_accounts_state.svelte.js +2 -2
- package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -1
- package/dist/ui/admin_rpc_adapters.d.ts.map +1 -1
- package/dist/ui/admin_rpc_adapters.js +5 -5
- package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -1
- package/dist/ui/app_settings_state.svelte.d.ts.map +1 -1
- package/dist/ui/async_slot.svelte.d.ts.map +1 -1
- package/dist/ui/audit_log_state.svelte.d.ts.map +1 -1
- package/dist/ui/audit_log_state.svelte.js +1 -1
- package/dist/ui/auth_state.svelte.js +4 -4
- package/dist/ui/form_state.svelte.d.ts.map +1 -1
- package/dist/ui/format_scope.d.ts.map +1 -1
- package/dist/ui/keyed_async_slot.svelte.d.ts.map +1 -1
- package/dist/ui/popover.svelte.d.ts.map +1 -1
- package/dist/ui/popover.svelte.js +1 -1
- package/dist/ui/position_helpers.js +1 -1
- package/dist/ui/role_grant_offers_state.svelte.d.ts.map +1 -1
- package/dist/ui/role_grant_offers_state.svelte.js +1 -1
- package/dist/ui/table_state.svelte.d.ts.map +1 -1
- package/dist/ui/ui_fetch.d.ts.map +1 -1
- package/dist/ui/ui_format.js +2 -2
- package/package.json +13 -12
- package/dist/server/fact_write.d.ts +0 -32
- package/dist/server/fact_write.d.ts.map +0 -1
- package/dist/server/fact_write.js +0 -56
- package/dist/server/validate_nginx.d.ts +0 -34
- package/dist/server/validate_nginx.d.ts.map +0 -1
- package/dist/server/validate_nginx.js +0 -169
|
@@ -34,7 +34,7 @@ import '../assert_dev_env.js';
|
|
|
34
34
|
* @module
|
|
35
35
|
*/
|
|
36
36
|
import { describe, test, assert } from 'vitest';
|
|
37
|
-
import { actor_search_action_spec, ERROR_ACTOR_SEARCH_SCOPE_REQUIRED
|
|
37
|
+
import { actor_search_action_spec, ERROR_ACTOR_SEARCH_SCOPE_REQUIRED } from '../../auth/actor_search_action_specs.js';
|
|
38
38
|
import { SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
39
39
|
/** Nil UUID — an unheld scope id (no actor holds a role_grant on it). */
|
|
40
40
|
const NIL_UUID = '00000000-0000-0000-0000-000000000000';
|
|
@@ -49,7 +49,7 @@ export const describe_actor_search_cross_tests = (options) => {
|
|
|
49
49
|
const res = await fixture.fresh_transport()(rpc_path, {
|
|
50
50
|
method: 'POST',
|
|
51
51
|
headers: { 'content-type': 'application/json' },
|
|
52
|
-
body: search_envelope({ query: 'a' }, 'anon-search')
|
|
52
|
+
body: search_envelope({ query: 'a' }, 'anon-search')
|
|
53
53
|
});
|
|
54
54
|
assert.strictEqual(res.status, 401, 'unauthenticated actor_search must be refused');
|
|
55
55
|
});
|
|
@@ -59,7 +59,7 @@ export const describe_actor_search_cross_tests = (options) => {
|
|
|
59
59
|
const res = await fixture.fresh_transport()(rpc_path, {
|
|
60
60
|
method: 'POST',
|
|
61
61
|
headers: { ...account.create_session_headers(), 'content-type': 'application/json' },
|
|
62
|
-
body: search_envelope({ query: 'a' }, 'nonadmin-noscope')
|
|
62
|
+
body: search_envelope({ query: 'a' }, 'nonadmin-noscope')
|
|
63
63
|
});
|
|
64
64
|
assert.strictEqual(res.status, 400, 'non-admin unbounded search must be rejected');
|
|
65
65
|
const body = (await res.json());
|
|
@@ -71,7 +71,7 @@ export const describe_actor_search_cross_tests = (options) => {
|
|
|
71
71
|
const res = await fixture.fresh_transport()(rpc_path, {
|
|
72
72
|
method: 'POST',
|
|
73
73
|
headers: { ...account.create_session_headers(), 'content-type': 'application/json' },
|
|
74
|
-
body: search_envelope({ query: 'a', scope_ids: [NIL_UUID] }, 'nonadmin-scope')
|
|
74
|
+
body: search_envelope({ query: 'a', scope_ids: [NIL_UUID] }, 'nonadmin-scope')
|
|
75
75
|
});
|
|
76
76
|
assert.strictEqual(res.status, 200, 'non-admin with a scope filter is allowed');
|
|
77
77
|
const body = (await res.json());
|
|
@@ -82,7 +82,7 @@ export const describe_actor_search_cross_tests = (options) => {
|
|
|
82
82
|
const res = await fixture.transport(rpc_path, {
|
|
83
83
|
method: 'POST',
|
|
84
84
|
headers: { ...fixture.create_session_headers(), 'content-type': 'application/json' },
|
|
85
|
-
body: search_envelope({ query: 'a' }, 'admin-noscope')
|
|
85
|
+
body: search_envelope({ query: 'a' }, 'admin-noscope')
|
|
86
86
|
});
|
|
87
87
|
assert.strictEqual(res.status, 200, 'admin unbounded search is allowed');
|
|
88
88
|
const body = (await res.json());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app_settings.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/app_settings.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAsC9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"app_settings.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/app_settings.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAsC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,qFAAqF;AACrF,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAiBnE,eAAO,MAAM,iCAAiC,GAAI,SAAS,2BAA2B,KAAG,IA8DxF,CAAC"}
|
|
@@ -43,7 +43,7 @@ const update_envelope = (open_signup, id) => JSON.stringify({
|
|
|
43
43
|
jsonrpc: '2.0',
|
|
44
44
|
method: app_settings_update_action_spec.method,
|
|
45
45
|
params: { open_signup },
|
|
46
|
-
id
|
|
46
|
+
id
|
|
47
47
|
});
|
|
48
48
|
export const describe_app_settings_cross_tests = (options) => {
|
|
49
49
|
const { setup_test } = options;
|
|
@@ -54,13 +54,13 @@ export const describe_app_settings_cross_tests = (options) => {
|
|
|
54
54
|
const enable = await fixture.transport(rpc_path, {
|
|
55
55
|
method: 'POST',
|
|
56
56
|
headers: { ...fixture.create_session_headers(), 'content-type': 'application/json' },
|
|
57
|
-
body: update_envelope(true, 'enable-open-signup')
|
|
57
|
+
body: update_envelope(true, 'enable-open-signup')
|
|
58
58
|
});
|
|
59
59
|
assert.strictEqual(enable.status, 200, 'admin app_settings_update must succeed');
|
|
60
60
|
const res = await fixture.fresh_transport()(SIGNUP_PATH, {
|
|
61
61
|
method: 'POST',
|
|
62
62
|
headers: { 'content-type': 'application/json' },
|
|
63
|
-
body: JSON.stringify({ username: 'open_signup_user', password: SIGNUP_PASSWORD })
|
|
63
|
+
body: JSON.stringify({ username: 'open_signup_user', password: SIGNUP_PASSWORD })
|
|
64
64
|
});
|
|
65
65
|
assert.strictEqual(res.status, 200, 'open signup must admit an anonymous account');
|
|
66
66
|
const body = (await res.json());
|
|
@@ -73,19 +73,19 @@ export const describe_app_settings_cross_tests = (options) => {
|
|
|
73
73
|
const enable = await fixture.transport(rpc_path, {
|
|
74
74
|
method: 'POST',
|
|
75
75
|
headers: { ...fixture.create_session_headers(), 'content-type': 'application/json' },
|
|
76
|
-
body: update_envelope(true, 'enable-before-disable')
|
|
76
|
+
body: update_envelope(true, 'enable-before-disable')
|
|
77
77
|
});
|
|
78
78
|
assert.strictEqual(enable.status, 200, 'admin app_settings_update (enable) must succeed');
|
|
79
79
|
const disable = await fixture.transport(rpc_path, {
|
|
80
80
|
method: 'POST',
|
|
81
81
|
headers: { ...fixture.create_session_headers(), 'content-type': 'application/json' },
|
|
82
|
-
body: update_envelope(false, 'disable-open-signup')
|
|
82
|
+
body: update_envelope(false, 'disable-open-signup')
|
|
83
83
|
});
|
|
84
84
|
assert.strictEqual(disable.status, 200, 'admin app_settings_update (disable) must succeed');
|
|
85
85
|
const res = await fixture.fresh_transport()(SIGNUP_PATH, {
|
|
86
86
|
method: 'POST',
|
|
87
87
|
headers: { 'content-type': 'application/json' },
|
|
88
|
-
body: JSON.stringify({ username: 'closed_signup_user', password: SIGNUP_PASSWORD })
|
|
88
|
+
body: JSON.stringify({ username: 'closed_signup_user', password: SIGNUP_PASSWORD })
|
|
89
89
|
});
|
|
90
90
|
assert.strictEqual(res.status, 403, 'closed signup must refuse a no-invite anonymous account');
|
|
91
91
|
const body = (await res.json());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend_config.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/backend_config.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"backend_config.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/backend_config.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB;IACtC,qFAAqF;IACrF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC7B,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;CAC3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bench_report.d.ts","sourceRoot":"../src/lib/","sources":["../../../../src/lib/testing/cross_backend/bench/bench_report.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bench_report.d.ts","sourceRoot":"../src/lib/","sources":["../../../../src/lib/testing/cross_backend/bench/bench_report.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;;;;;GAMG;AAEH,sFAAsF;AACtF,eAAO,MAAM,0BAA0B,GAAI,QAAQ,oBAAoB,KAAG,MAM3D,CAAC;AAEhB,iFAAiF;AACjF,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB;IACvC,wFAAwF;IACxF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC9B,QAAQ,oBAAoB,EAC5B,UAAU,uBAAuB,KAC/B,KAAK,CAAC,wBAAwB,CAoBhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACxC,SAAS,aAAa,CAAC,wBAAwB,CAAC,KAC9C,MAGU,CAAC;AAEd;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,oBAAoB,KAAG,MA4BpE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../../assert_dev_env.js';
|
|
2
2
|
import { benchmark_format_markdown } from '@fuzdev/fuz_util/benchmark_format.ts';
|
|
3
|
-
import { benchmark_stats_compare
|
|
3
|
+
import { benchmark_stats_compare } from '@fuzdev/fuz_util/benchmark_stats.ts';
|
|
4
4
|
/**
|
|
5
5
|
* Reporting adapters over a `CrossImplBenchResult` — all built on fuz_util's
|
|
6
6
|
* formatters + Welch comparison. Markdown for human eyeballs, a per-scenario
|
|
@@ -36,7 +36,7 @@ export const compare_cross_impl = (result, options) => {
|
|
|
36
36
|
scenario,
|
|
37
37
|
reference,
|
|
38
38
|
backend: e.backend,
|
|
39
|
-
comparison: benchmark_stats_compare(ref_entry.result.stats, e.result.stats)
|
|
39
|
+
comparison: benchmark_stats_compare(ref_entry.result.stats, e.result.stats)
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -77,7 +77,7 @@ export const format_cross_impl_json = (result) => JSON.stringify({
|
|
|
77
77
|
std_dev_ns: e.result.stats.std_dev_ns,
|
|
78
78
|
ops_per_second: e.result.stats.ops_per_second,
|
|
79
79
|
outlier_ratio: e.result.stats.outlier_ratio,
|
|
80
|
-
sample_size: e.result.stats.sample_size
|
|
81
|
-
}
|
|
82
|
-
}))
|
|
80
|
+
sample_size: e.result.stats.sample_size
|
|
81
|
+
}
|
|
82
|
+
}))
|
|
83
83
|
}, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_cross_impl_bench.d.ts","sourceRoot":"../src/lib/","sources":["../../../../src/lib/testing/cross_backend/bench/run_cross_impl_bench.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"run_cross_impl_bench.d.ts","sourceRoot":"../src/lib/","sources":["../../../../src/lib/testing/cross_backend/bench/run_cross_impl_bench.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAE5F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,eAAe,CAAC;AAEzE;;;;;;;;;;;;GAYG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CACjC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACpC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,uDAAuD;IACvD,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAC3D,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACjD,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAC3C;AAeD,eAAO,MAAM,oBAAoB,GAChC,SAAS,wBAAwB,KAC/B,OAAO,CAAC,oBAAoB,CAwB9B,CAAC"}
|
|
@@ -10,7 +10,7 @@ const DEFAULT_BENCH_CONFIG = {
|
|
|
10
10
|
warmup_iterations: 20,
|
|
11
11
|
min_iterations: 100,
|
|
12
12
|
duration_ms: 3000,
|
|
13
|
-
cooldown_ms: 100
|
|
13
|
+
cooldown_ms: 100
|
|
14
14
|
};
|
|
15
15
|
export const run_cross_impl_bench = async (options) => {
|
|
16
16
|
const config = { ...DEFAULT_BENCH_CONFIG, ...options.config };
|
|
@@ -19,7 +19,7 @@ export const run_cross_impl_bench = async (options) => {
|
|
|
19
19
|
const ctx = {
|
|
20
20
|
transport: handle.keeper_transport,
|
|
21
21
|
rpc_path: handle.config.rpc_path,
|
|
22
|
-
capabilities: handle.config.capabilities
|
|
22
|
+
capabilities: handle.config.capabilities
|
|
23
23
|
};
|
|
24
24
|
for (const scenario of options.scenarios) {
|
|
25
25
|
if (scenario.requires && !scenario.requires(handle.config.capabilities))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.d.ts","sourceRoot":"../src/lib/","sources":["../../../../src/lib/testing/cross_backend/bench/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scenario.d.ts","sourceRoot":"../src/lib/","sources":["../../../../src/lib/testing/cross_backend/bench/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,mBAAmB,KAAK,OAAO,CAAC;IACnE,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAcD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,aAAa,CAIhE,CAAC"}
|
|
@@ -24,5 +24,5 @@ const rpc_scenario = (method, params) => async (ctx) => {
|
|
|
24
24
|
export const default_bench_scenarios = [
|
|
25
25
|
{ name: 'account_verify', run: rpc_scenario('account_verify') },
|
|
26
26
|
{ name: 'account_session_list', run: rpc_scenario('account_session_list') },
|
|
27
|
-
{ name: 'audit_log_list', run: rpc_scenario('audit_log_list', { limit: 20 }) }
|
|
27
|
+
{ name: 'audit_log_list', run: rpc_scenario('audit_log_list', { limit: 20 }) }
|
|
28
28
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body_size.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/body_size.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA6D9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"body_size.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/body_size.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA6D9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC;AAmDhE,eAAO,MAAM,8BAA8B,GAAI,SAAS,wBAAwB,KAAG,IA0ClF,CAAC"}
|
|
@@ -104,7 +104,7 @@ export const describe_body_size_cross_tests = (options) => {
|
|
|
104
104
|
const post = (fixture, body) => fetch_retrying_once(fixture.transport, rpc_path, {
|
|
105
105
|
method: 'POST',
|
|
106
106
|
headers: { ...fixture.create_session_headers(), 'content-type': 'application/json' },
|
|
107
|
-
body
|
|
107
|
+
body
|
|
108
108
|
});
|
|
109
109
|
describe('body-size limit parity', () => {
|
|
110
110
|
test('over-limit POST (cap + 1) → 413 payload_too_large (refused before dispatch)', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap_backend.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/bootstrap_backend.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"bootstrap_backend.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/bootstrap_backend.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAC7B,QAAQ,aAAa,KACnB,OAAO,CAAC,yBAAyB,CAwBnC,CAAC"}
|
|
@@ -28,11 +28,11 @@ export const bootstrap_backend = async (config) => {
|
|
|
28
28
|
keeper_daemon_transport: create_fetch_transport({
|
|
29
29
|
base_url: config.base_url,
|
|
30
30
|
initial_cookies: keeper.cookies,
|
|
31
|
-
origin: null
|
|
31
|
+
origin: null
|
|
32
32
|
}),
|
|
33
33
|
keeper_account: keeper.account,
|
|
34
34
|
keeper_actor: keeper.actor,
|
|
35
|
-
keeper_cookies: keeper.cookies
|
|
35
|
+
keeper_cookies: keeper.cookies
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
catch (err) {
|
|
@@ -28,6 +28,6 @@ export const build_test_backend_paths = (prefix) => {
|
|
|
28
28
|
bootstrap_token_path: join(root, 'bootstrap_token'),
|
|
29
29
|
// `init_daemon_token` (Rust) and the TS server's daemon-token
|
|
30
30
|
// writer both land the token at `{root}/run/daemon_token`.
|
|
31
|
-
daemon_token_path: join(root, 'run', 'daemon_token')
|
|
31
|
+
daemon_token_path: join(root, 'run', 'daemon_token')
|
|
32
32
|
};
|
|
33
33
|
};
|
|
@@ -58,7 +58,7 @@ export const in_process_capabilities = Object.freeze({
|
|
|
58
58
|
peer_request: false,
|
|
59
59
|
// Cross-process-only: the test `CellCreateAuthorize` policy is mounted on the
|
|
60
60
|
// spine binaries' full mount + the Rust stub, not the in-process default app.
|
|
61
|
-
cell_gated_create: false
|
|
61
|
+
cell_gated_create: false
|
|
62
62
|
});
|
|
63
63
|
/**
|
|
64
64
|
* Shape notes for the in-process Hono transport — every wiring fact present
|
|
@@ -68,7 +68,7 @@ export const in_process_capabilities = Object.freeze({
|
|
|
68
68
|
export const in_process_shape_notes = Object.freeze({
|
|
69
69
|
bearer_auth: true,
|
|
70
70
|
trusted_proxy: true,
|
|
71
|
-
login_rate_limit: true
|
|
71
|
+
login_rate_limit: true
|
|
72
72
|
});
|
|
73
73
|
/**
|
|
74
74
|
* Conditional `test()` wrapper — registers a vitest case only when
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_cross_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_cross_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAmB9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell_cross_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_cross_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAmB9B,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9F;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAC1B,WAAW,cAAc,EACzB,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,QAAQ,OAAO,EACf,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC7B,OAAO,CAAC,SAAS,CAMnB,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,YAAY,GAAI,GAAG,SAAS,KAAG,OAG/B,CAAC;AAEd;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAG,CAUrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_crud.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_crud.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA2D9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell_crud.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_crud.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA2D9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,eAAO,MAAM,8BAA8B,GAAI,SAAS,wBAAwB,KAAG,IAsclF,CAAC"}
|
|
@@ -45,7 +45,7 @@ import '../assert_dev_env.js';
|
|
|
45
45
|
* @module
|
|
46
46
|
*/
|
|
47
47
|
import { describe, assert } from 'vitest';
|
|
48
|
-
import { CellCreateOutput, CellDeleteOutput, CellGetOutput, CellListOutput, CellUpdateOutput
|
|
48
|
+
import { CellCreateOutput, CellDeleteOutput, CellGetOutput, CellListOutput, CellUpdateOutput } from '../../auth/cell_action_specs.js';
|
|
49
49
|
import { test_if } from './capabilities.js';
|
|
50
50
|
import { cross_rpc_call, error_reason, expect_output } from './cell_cross_helpers.js';
|
|
51
51
|
import { SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
@@ -102,7 +102,10 @@ export const describe_cell_crud_cross_tests = (options) => {
|
|
|
102
102
|
const ref_b = `blake3:${'b'.repeat(64)}`;
|
|
103
103
|
const ref_c = `blake3:${'c'.repeat(64)}`;
|
|
104
104
|
const sorted = [ref_a, ref_b, ref_c];
|
|
105
|
-
const created = expect_output(await cross_rpc_call(t, rpc_path, 'cell_create', {
|
|
105
|
+
const created = expect_output(await cross_rpc_call(t, rpc_path, 'cell_create', {
|
|
106
|
+
kind: 'note',
|
|
107
|
+
data: { cover: ref_c, nested: { attachments: [ref_b, ref_a, ref_b] } }
|
|
108
|
+
}, owner_headers), CellCreateOutput);
|
|
106
109
|
assert.deepStrictEqual(created.cell.refs, sorted, 'create did not return sorted refs');
|
|
107
110
|
// Read it back — the stored column round-trips sorted too.
|
|
108
111
|
const got = expect_output(await cross_rpc_call(t, rpc_path, 'cell_get', { id: created.cell.id }, owner_headers), CellGetOutput);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_gated_create.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_gated_create.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAiD9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell_gated_create.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_gated_create.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAiD9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAkB3D,eAAO,MAAM,sCAAsC,GAAI,SAAS,wBAAwB,KAAG,IAwP1F,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,kCAAkC,GAAI,SAAS,wBAAwB,KAAG,IAwHtF,CAAC"}
|
|
@@ -56,8 +56,8 @@ const SPACE_POLICY = {
|
|
|
56
56
|
policy: {
|
|
57
57
|
post: { min_role: PARTICIPATION_ROLE, moderation_required: true },
|
|
58
58
|
react: { min_role: PARTICIPATION_ROLE, moderation_required: false },
|
|
59
|
-
comment: { min_role: PARTICIPATION_ROLE, moderation_required: false }
|
|
60
|
-
}
|
|
59
|
+
comment: { min_role: PARTICIPATION_ROLE, moderation_required: false }
|
|
60
|
+
}
|
|
61
61
|
};
|
|
62
62
|
export const describe_cell_gated_create_cross_tests = (options) => {
|
|
63
63
|
const { setup_test, capabilities } = options;
|
|
@@ -86,7 +86,7 @@ export const describe_cell_gated_create_cross_tests = (options) => {
|
|
|
86
86
|
// A participant may post; the contribution carries the directory edges.
|
|
87
87
|
const participant = await fixture.create_account({
|
|
88
88
|
username: 'post_participant',
|
|
89
|
-
roles: [PARTICIPATION_ROLE]
|
|
89
|
+
roles: [PARTICIPATION_ROLE]
|
|
90
90
|
});
|
|
91
91
|
const post = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_create', { kind: 'post', data: {}, parent_id: space.cell.id }, participant.create_session_headers()), CellCreateOutput);
|
|
92
92
|
assert.strictEqual(post.cell.parent_id, space.cell.id, 'parent edge set');
|
|
@@ -97,7 +97,7 @@ export const describe_cell_gated_create_cross_tests = (options) => {
|
|
|
97
97
|
const space = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_create', { kind: SPACE_CELL_KIND, data: SPACE_POLICY, visibility: 'public' }, fixture.create_session_headers()), CellCreateOutput);
|
|
98
98
|
const participant = await fixture.create_account({
|
|
99
99
|
username: 'mod_participant',
|
|
100
|
-
roles: [PARTICIPATION_ROLE]
|
|
100
|
+
roles: [PARTICIPATION_ROLE]
|
|
101
101
|
});
|
|
102
102
|
// `post` requires moderation → born pending + forced private.
|
|
103
103
|
const post = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_create', { kind: 'post', data: {}, parent_id: space.cell.id, visibility: 'public' }, participant.create_session_headers()), CellCreateOutput);
|
|
@@ -122,7 +122,7 @@ export const describe_cell_gated_create_cross_tests = (options) => {
|
|
|
122
122
|
const space = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_create', { kind: SPACE_CELL_KIND, data: SPACE_POLICY, visibility: 'public' }, fixture.create_session_headers()), CellCreateOutput);
|
|
123
123
|
const participant = await fixture.create_account({
|
|
124
124
|
username: 'deep_participant',
|
|
125
|
-
roles: [PARTICIPATION_ROLE]
|
|
125
|
+
roles: [PARTICIPATION_ROLE]
|
|
126
126
|
});
|
|
127
127
|
// A post lives directly under the space — the shallow case
|
|
128
128
|
// (`root_id === parent_id`), so the handler reuses the parent row as
|
|
@@ -177,7 +177,7 @@ export const describe_cell_moderate_cross_tests = (options) => {
|
|
|
177
177
|
const space = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_create', { kind: SPACE_CELL_KIND, data: SPACE_POLICY, visibility: 'public' }, fixture.create_session_headers()), CellCreateOutput);
|
|
178
178
|
const author = await fixture.create_account({
|
|
179
179
|
username: 'moderate_author',
|
|
180
|
-
roles: [PARTICIPATION_ROLE]
|
|
180
|
+
roles: [PARTICIPATION_ROLE]
|
|
181
181
|
});
|
|
182
182
|
const post = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_create', { kind: 'post', data: {}, parent_id: space.cell.id }, author.create_session_headers()), CellCreateOutput);
|
|
183
183
|
return { fixture, author, post };
|
|
@@ -186,7 +186,8 @@ export const describe_cell_moderate_cross_tests = (options) => {
|
|
|
186
186
|
test_if(capabilities.cell_gated_create, 'a root manager (admin) approves a pending post → approved + public', async () => {
|
|
187
187
|
const { fixture, post } = await setup_pending_post();
|
|
188
188
|
assert.strictEqual(post.cell.moderation, 'pending', 'the post is born pending');
|
|
189
|
-
const moderated = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_moderate', { cell_id: post.cell.id, moderation: 'approved' }, fixture.create_session_headers()
|
|
189
|
+
const moderated = expect_output(await cross_rpc_call(fixture.transport, rpc_path, 'cell_moderate', { cell_id: post.cell.id, moderation: 'approved' }, fixture.create_session_headers() // keeper = admin = root manager
|
|
190
|
+
), CellModerateOutput);
|
|
190
191
|
assert.strictEqual(moderated.cell.moderation, 'approved', 'approval sets the marker');
|
|
191
192
|
assert.strictEqual(moderated.cell.visibility, 'public', 'approval publishes the post');
|
|
192
193
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_grant_role.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_grant_role.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA8C9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell_grant_role.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_grant_role.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AA8C9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAG3D,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,gBAAyB,CAAC;AAEvD,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAK5D,eAAO,MAAM,oCAAoC,GAAI,SAAS,wBAAwB,KAAG,IAuIxF,CAAC"}
|
|
@@ -35,7 +35,7 @@ import '../assert_dev_env.js';
|
|
|
35
35
|
*/
|
|
36
36
|
import { describe, assert } from 'vitest';
|
|
37
37
|
import { CellCreateOutput, CellGetOutput, CellUpdateOutput } from '../../auth/cell_action_specs.js';
|
|
38
|
-
import { CellGrantCreateOutput, ERROR_CELL_GRANT_UNKNOWN_ROLE
|
|
38
|
+
import { CellGrantCreateOutput, ERROR_CELL_GRANT_UNKNOWN_ROLE } from '../../auth/cell_grant_action_specs.js';
|
|
39
39
|
import { test_if } from './capabilities.js';
|
|
40
40
|
import { cross_rpc_call, error_reason, expect_output } from './cell_cross_helpers.js';
|
|
41
41
|
import { SPINE_CELL_EDITOR_ROLE, SPINE_RPC_PATH } from './spine_surface_constants.js';
|
|
@@ -80,7 +80,7 @@ export const describe_cell_grant_role_cross_tests = (options) => {
|
|
|
80
80
|
const denied = await cross_rpc_call(t, rpc_path, 'cell_grant_create', {
|
|
81
81
|
cell_id: created.cell.id,
|
|
82
82
|
level: 'viewer',
|
|
83
|
-
principal: { kind: 'role', role: UNREGISTERED_ROLE }
|
|
83
|
+
principal: { kind: 'role', role: UNREGISTERED_ROLE }
|
|
84
84
|
}, owner_h);
|
|
85
85
|
assert.ok(!denied.ok, 'granting an unregistered role must fail');
|
|
86
86
|
assert.strictEqual(error_reason(denied), ERROR_CELL_GRANT_UNKNOWN_ROLE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_relations.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_relations.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqF9B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell_relations.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/cell_relations.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAqF9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAsF3D,eAAO,MAAM,mCAAmC,GAAI,SAAS,wBAAwB,KAAG,IA2wBvF,CAAC"}
|
|
@@ -53,11 +53,11 @@ import '../assert_dev_env.js';
|
|
|
53
53
|
*/
|
|
54
54
|
import { describe, assert } from 'vitest';
|
|
55
55
|
import { fractional_index_between } from '@fuzdev/fuz_util/fractional_index.ts';
|
|
56
|
-
import { CellCreateOutput, CellUpdateOutput, CellCloneOutput, CellGetOutput
|
|
56
|
+
import { CellCreateOutput, CellUpdateOutput, CellCloneOutput, CellGetOutput } from '../../auth/cell_action_specs.js';
|
|
57
57
|
import { AuditLogListOutput } from '../../auth/admin_action_specs.js';
|
|
58
|
-
import { CellGrantCreateOutput, CellGrantListOutput, CellGrantRevokeOutput
|
|
59
|
-
import { CellFieldDeleteOutput, CellFieldListOutput, CellFieldSetOutput
|
|
60
|
-
import { CellItemDeleteOutput, CellItemInsertOutput, CellItemListOutput, CellItemMoveOutput
|
|
58
|
+
import { CellGrantCreateOutput, CellGrantListOutput, CellGrantRevokeOutput } from '../../auth/cell_grant_action_specs.js';
|
|
59
|
+
import { CellFieldDeleteOutput, CellFieldListOutput, CellFieldSetOutput } from '../../auth/cell_field_action_specs.js';
|
|
60
|
+
import { CellItemDeleteOutput, CellItemInsertOutput, CellItemListOutput, CellItemMoveOutput } from '../../auth/cell_item_action_specs.js';
|
|
61
61
|
import { CellAuditListOutput } from '../../auth/cell_audit_action_specs.js';
|
|
62
62
|
import { test_if } from './capabilities.js';
|
|
63
63
|
import { cross_rpc_call, error_reason, expect_output } from './cell_cross_helpers.js';
|
|
@@ -109,7 +109,7 @@ export const describe_cell_relations_cross_tests = (options) => {
|
|
|
109
109
|
const grant = expect_output(await cross_rpc_call(t, rpc_path, 'cell_grant_create', {
|
|
110
110
|
cell_id: cell.id,
|
|
111
111
|
level: 'editor',
|
|
112
|
-
principal: { kind: 'actor', actor_id: editor.actor.id }
|
|
112
|
+
principal: { kind: 'actor', actor_id: editor.actor.id }
|
|
113
113
|
}, owner_h), CellGrantCreateOutput).grant;
|
|
114
114
|
assert.strictEqual(grant.level, 'editor');
|
|
115
115
|
assert.strictEqual(grant.actor_id, editor.actor.id);
|
|
@@ -142,7 +142,7 @@ export const describe_cell_relations_cross_tests = (options) => {
|
|
|
142
142
|
expect_output(await cross_rpc_call(t, rpc_path, 'cell_grant_create', {
|
|
143
143
|
cell_id: cell.id,
|
|
144
144
|
level: 'editor',
|
|
145
|
-
principal: { kind: 'actor', actor_id: editor.actor.id }
|
|
145
|
+
principal: { kind: 'actor', actor_id: editor.actor.id }
|
|
146
146
|
}, owner_h), CellGrantCreateOutput);
|
|
147
147
|
// Content edits pass (editor tier); a visibility write is manage-tier.
|
|
148
148
|
expect_output(await cross_rpc_call(t, rpc_path, 'cell_update', { cell_id: cell.id, data: { label: 'ok' } }, editor_h), CellUpdateOutput);
|
|
@@ -255,7 +255,7 @@ export const describe_cell_relations_cross_tests = (options) => {
|
|
|
255
255
|
expect_output(await cross_rpc_call(t, rpc_path, 'cell_grant_create', {
|
|
256
256
|
cell_id: cell.id,
|
|
257
257
|
level: 'viewer',
|
|
258
|
-
principal: { kind: 'actor', actor_id: viewer.actor.id }
|
|
258
|
+
principal: { kind: 'actor', actor_id: viewer.actor.id }
|
|
259
259
|
}, owner_h), CellGrantCreateOutput);
|
|
260
260
|
const can_read = await cross_rpc_call(t, rpc_path, 'cell_get', { id: cell.id }, viewer_h);
|
|
261
261
|
assert.ok(can_read.ok, 'viewer-grant holder could not read the cell');
|
|
@@ -275,12 +275,12 @@ export const describe_cell_relations_cross_tests = (options) => {
|
|
|
275
275
|
const parent = await create_cell(t, rpc_path, owner_h, {
|
|
276
276
|
kind: 'collection',
|
|
277
277
|
data: {},
|
|
278
|
-
visibility: 'public'
|
|
278
|
+
visibility: 'public'
|
|
279
279
|
});
|
|
280
280
|
const pub_child = await create_cell(t, rpc_path, owner_h, {
|
|
281
281
|
kind: 'note',
|
|
282
282
|
data: {},
|
|
283
|
-
visibility: 'public'
|
|
283
|
+
visibility: 'public'
|
|
284
284
|
});
|
|
285
285
|
const priv_child = await create_cell(t, rpc_path, owner_h, { kind: 'note', data: {} });
|
|
286
286
|
await wire_children(t, rpc_path, owner_h, parent, pub_child, priv_child);
|
|
@@ -329,12 +329,12 @@ export const describe_cell_relations_cross_tests = (options) => {
|
|
|
329
329
|
const parent = await create_cell(t, rpc_path, owner_h, {
|
|
330
330
|
kind: 'collection',
|
|
331
331
|
data: {},
|
|
332
|
-
visibility: 'public'
|
|
332
|
+
visibility: 'public'
|
|
333
333
|
});
|
|
334
334
|
const pub_child = await create_cell(t, rpc_path, owner_h, {
|
|
335
335
|
kind: 'note',
|
|
336
336
|
data: {},
|
|
337
|
-
visibility: 'public'
|
|
337
|
+
visibility: 'public'
|
|
338
338
|
});
|
|
339
339
|
const priv_child = await create_cell(t, rpc_path, owner_h, { kind: 'note', data: {} });
|
|
340
340
|
await wire_children(t, rpc_path, owner_h, parent, pub_child, priv_child);
|
|
@@ -368,12 +368,12 @@ export const describe_cell_relations_cross_tests = (options) => {
|
|
|
368
368
|
const parent = await create_cell(t, rpc_path, owner_h, {
|
|
369
369
|
kind: 'collection',
|
|
370
370
|
data: {},
|
|
371
|
-
visibility: 'public'
|
|
371
|
+
visibility: 'public'
|
|
372
372
|
});
|
|
373
373
|
const pub_child = await create_cell(t, rpc_path, owner_h, {
|
|
374
374
|
kind: 'note',
|
|
375
375
|
data: {},
|
|
376
|
-
visibility: 'public'
|
|
376
|
+
visibility: 'public'
|
|
377
377
|
});
|
|
378
378
|
const priv_child = await create_cell(t, rpc_path, owner_h, { kind: 'note', data: {} });
|
|
379
379
|
await wire_children(t, rpc_path, owner_h, parent, pub_child, priv_child);
|
|
@@ -66,6 +66,15 @@ import { z } from 'zod';
|
|
|
66
66
|
* be replayed from a browser — wire-indistinguishable from sending no
|
|
67
67
|
* credential (the `token` principal is the honored counterpart: it suppresses
|
|
68
68
|
* `Origin`, so the same token authenticates).
|
|
69
|
+
* - `scoped_token` — the keeper authenticated via a bearer api-token minted
|
|
70
|
+
* with a **narrowed** `TokenScope` (`{kind: 'methods', methods:
|
|
71
|
+
* [SCOPED_TOKEN_ADMITTED_METHOD]}`), non-browser context. Minted through the
|
|
72
|
+
* production `account_token_create` path over the keeper's session, not
|
|
73
|
+
* seeded — `_testing_reset` deliberately seeds a `full` token, and a harness
|
|
74
|
+
* that narrowed the seed would silently re-scope every other bearer case.
|
|
75
|
+
* The scope gate sits between the credential gate and the role gate, so this
|
|
76
|
+
* principal is what distinguishes `token_scope_required` from the
|
|
77
|
+
* credential-type and role denials on either side of it.
|
|
69
78
|
* - `anonymous` — no credential, fresh cookie jar.
|
|
70
79
|
* - `fresh_non_admin` — a freshly minted account with no roles, session
|
|
71
80
|
* credential (via the production invite → signup → login flow).
|
|
@@ -87,6 +96,7 @@ export declare const ConformancePrincipal: z.ZodEnum<{
|
|
|
87
96
|
invalid_daemon: "invalid_daemon";
|
|
88
97
|
daemon_browser: "daemon_browser";
|
|
89
98
|
bearer_browser: "bearer_browser";
|
|
99
|
+
scoped_token: "scoped_token";
|
|
90
100
|
anonymous: "anonymous";
|
|
91
101
|
fresh_non_admin: "fresh_non_admin";
|
|
92
102
|
role_holder: "role_holder";
|
|
@@ -94,6 +104,17 @@ export declare const ConformancePrincipal: z.ZodEnum<{
|
|
|
94
104
|
expired_session: "expired_session";
|
|
95
105
|
}>;
|
|
96
106
|
export type ConformancePrincipal = z.infer<typeof ConformancePrincipal>;
|
|
107
|
+
/**
|
|
108
|
+
* The single RPC method the `scoped_token` principal's narrowed token admits.
|
|
109
|
+
*
|
|
110
|
+
* Part of the principal's contract, so the runner (which mints the token) and
|
|
111
|
+
* the cases (which assert the denials) agree on one value. `account_verify` is
|
|
112
|
+
* the minimal `credential_types: any` read on the spine: it clears the
|
|
113
|
+
* credential gate a bearer must pass first, and holds no role gate that could
|
|
114
|
+
* shadow the scope denial — so a case naming any *other* method isolates the
|
|
115
|
+
* scope gate and nothing else.
|
|
116
|
+
*/
|
|
117
|
+
export declare const SCOPED_TOKEN_ADMITTED_METHOD = "account_verify";
|
|
97
118
|
/** The request a conformance case issues. */
|
|
98
119
|
export declare const ConformanceCaseRequest: z.ZodObject<{
|
|
99
120
|
method: z.ZodString;
|
|
@@ -105,6 +126,7 @@ export declare const ConformanceCaseRequest: z.ZodObject<{
|
|
|
105
126
|
invalid_daemon: "invalid_daemon";
|
|
106
127
|
daemon_browser: "daemon_browser";
|
|
107
128
|
bearer_browser: "bearer_browser";
|
|
129
|
+
scoped_token: "scoped_token";
|
|
108
130
|
anonymous: "anonymous";
|
|
109
131
|
fresh_non_admin: "fresh_non_admin";
|
|
110
132
|
role_holder: "role_holder";
|
|
@@ -161,6 +183,7 @@ export declare const ConformanceCase: z.ZodObject<{
|
|
|
161
183
|
invalid_daemon: "invalid_daemon";
|
|
162
184
|
daemon_browser: "daemon_browser";
|
|
163
185
|
bearer_browser: "bearer_browser";
|
|
186
|
+
scoped_token: "scoped_token";
|
|
164
187
|
anonymous: "anonymous";
|
|
165
188
|
fresh_non_admin: "fresh_non_admin";
|
|
166
189
|
role_holder: "role_holder";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conformance_case.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/conformance_case.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"conformance_case.d.ts","sourceRoot":"../src/lib/","sources":["../../../src/lib/testing/cross_backend/conformance_case.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;EAa/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,mBAAmB,CAAC;AAE7D,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;kBAgBjC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE5E,8DAA8D;AAC9D,eAAO,MAAM,0BAA0B;;;;;;;kBA+DrC,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;kBAK/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAS1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|