@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_grant_action_specs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_grant_action_specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cell_grant_action_specs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_grant_action_specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,yEAAyE;AACzE,eAAO,MAAM,0BAA0B,EAAG,sBAA+B,CAAC;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,mCAAmC,EAAG,+BAAwC,CAAC;AAE5F;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,EAAG,yBAAkC,CAAC;AAIhF,iDAAiD;AACjD,eAAO,MAAM,cAAc;;;EAA+B,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;4BAYlC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;kBASpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAIlD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;kBAO/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;kBAAuC,CAAC;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAI1E,eAAO,MAAM,oBAAoB;;;kBAG/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;kBAGhC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAI1E,eAAO,MAAM,kBAAkB;;;kBAG7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEpE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;kBAE9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAItE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWL,CAAC;AAEtC,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;CAWL,CAAC;AAEtC,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWH,CAAC;AAEtC,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAC"}
|
|
@@ -43,15 +43,15 @@ export const CellGrantLevel = z.enum(['viewer', 'editor']);
|
|
|
43
43
|
export const CellGrantPrincipalInput = z.discriminatedUnion('kind', [
|
|
44
44
|
z.strictObject({
|
|
45
45
|
kind: z.literal('actor'),
|
|
46
|
-
actor_id: Uuid
|
|
46
|
+
actor_id: Uuid
|
|
47
47
|
}),
|
|
48
48
|
z.strictObject({
|
|
49
49
|
kind: z.literal('role'),
|
|
50
50
|
role: z.string().min(1),
|
|
51
51
|
scope_id: Uuid.nullish().meta({
|
|
52
|
-
description: '`null` / omitted = any-scope grant (admits any matching-role role_grant).'
|
|
53
|
-
})
|
|
54
|
-
})
|
|
52
|
+
description: '`null` / omitted = any-scope grant (admits any matching-role role_grant).'
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
55
|
]);
|
|
56
56
|
/**
|
|
57
57
|
* Wire-format for a cell_grant row. Mirrors `CellJson`'s shape — ISO-string
|
|
@@ -66,7 +66,7 @@ export const GrantJson = z.strictObject({
|
|
|
66
66
|
role: z.string().nullable(),
|
|
67
67
|
scope_id: Uuid.nullable(),
|
|
68
68
|
granted_by: Uuid.nullable(),
|
|
69
|
-
created_at: z.string()
|
|
69
|
+
created_at: z.string()
|
|
70
70
|
});
|
|
71
71
|
// -- cell_grant_create ------------------------------------------------------
|
|
72
72
|
/**
|
|
@@ -78,15 +78,15 @@ export const CellGrantCreateInput = z.strictObject({
|
|
|
78
78
|
cell_id: Uuid.meta({ description: 'Cell to grant access on.' }),
|
|
79
79
|
level: CellGrantLevel.meta({ description: 'Grant level: `viewer` or `editor`.' }),
|
|
80
80
|
principal: CellGrantPrincipalInput.meta({
|
|
81
|
-
description: 'Subject of the grant. Discriminated by `kind`.'
|
|
81
|
+
description: 'Subject of the grant. Discriminated by `kind`.'
|
|
82
82
|
}),
|
|
83
|
-
acting: ActingActor
|
|
83
|
+
acting: ActingActor
|
|
84
84
|
});
|
|
85
85
|
export const CellGrantCreateOutput = z.strictObject({ grant: GrantJson });
|
|
86
86
|
// -- cell_grant_revoke ------------------------------------------------------
|
|
87
87
|
export const CellGrantRevokeInput = z.strictObject({
|
|
88
88
|
grant_id: Uuid.meta({ description: 'Grant to revoke.' }),
|
|
89
|
-
acting: ActingActor
|
|
89
|
+
acting: ActingActor
|
|
90
90
|
});
|
|
91
91
|
/**
|
|
92
92
|
* Output for `cell_grant_revoke`. `still_admitted` is `true` when the
|
|
@@ -96,15 +96,15 @@ export const CellGrantRevokeInput = z.strictObject({
|
|
|
96
96
|
*/
|
|
97
97
|
export const CellGrantRevokeOutput = z.strictObject({
|
|
98
98
|
ok: z.literal(true),
|
|
99
|
-
still_admitted: z.boolean()
|
|
99
|
+
still_admitted: z.boolean()
|
|
100
100
|
});
|
|
101
101
|
// -- cell_grant_list --------------------------------------------------------
|
|
102
102
|
export const CellGrantListInput = z.strictObject({
|
|
103
103
|
cell_id: Uuid.meta({ description: 'Cell whose grants to list.' }),
|
|
104
|
-
acting: ActingActor
|
|
104
|
+
acting: ActingActor
|
|
105
105
|
});
|
|
106
106
|
export const CellGrantListOutput = z.strictObject({
|
|
107
|
-
grants: z.array(GrantJson)
|
|
107
|
+
grants: z.array(GrantJson)
|
|
108
108
|
});
|
|
109
109
|
// -- Action specs -----------------------------------------------------------
|
|
110
110
|
export const cell_grant_create_action_spec = {
|
|
@@ -116,7 +116,7 @@ export const cell_grant_create_action_spec = {
|
|
|
116
116
|
input: CellGrantCreateInput,
|
|
117
117
|
output: CellGrantCreateOutput,
|
|
118
118
|
async: true,
|
|
119
|
-
description: 'Grant view or edit access on a cell. Manage-tier only (admin / owner) — editor-grant holders cannot manage grants. Idempotent on `(cell_id, principal)`. Owner-as-principal rejected. Actor-shaped principals carry a pre-resolved `actor_id` (callers pick via `actor_search`); no name resolver on this verb.'
|
|
119
|
+
description: 'Grant view or edit access on a cell. Manage-tier only (admin / owner) — editor-grant holders cannot manage grants. Idempotent on `(cell_id, principal)`. Owner-as-principal rejected. Actor-shaped principals carry a pre-resolved `actor_id` (callers pick via `actor_search`); no name resolver on this verb.'
|
|
120
120
|
};
|
|
121
121
|
export const cell_grant_revoke_action_spec = {
|
|
122
122
|
method: 'cell_grant_revoke',
|
|
@@ -127,7 +127,7 @@ export const cell_grant_revoke_action_spec = {
|
|
|
127
127
|
input: CellGrantRevokeInput,
|
|
128
128
|
output: CellGrantRevokeOutput,
|
|
129
129
|
async: true,
|
|
130
|
-
description: 'Revoke a grant. Manage-tier only (admin / owner), plus self for actor-shaped grants ("leave shared cell"). Returns `still_admitted` so the UI can tell the recipient whether other admit paths remain.'
|
|
130
|
+
description: 'Revoke a grant. Manage-tier only (admin / owner), plus self for actor-shaped grants ("leave shared cell"). Returns `still_admitted` so the UI can tell the recipient whether other admit paths remain.'
|
|
131
131
|
};
|
|
132
132
|
export const cell_grant_list_action_spec = {
|
|
133
133
|
method: 'cell_grant_list',
|
|
@@ -138,11 +138,11 @@ export const cell_grant_list_action_spec = {
|
|
|
138
138
|
input: CellGrantListInput,
|
|
139
139
|
output: CellGrantListOutput,
|
|
140
140
|
async: true,
|
|
141
|
-
description: "List grants on a cell. Manage-tier only (admin / owner); viewers and editors get IDOR-mask 404 (the share list is the manager's to curate)."
|
|
141
|
+
description: "List grants on a cell. Manage-tier only (admin / owner); viewers and editors get IDOR-mask 404 (the share list is the manager's to curate)."
|
|
142
142
|
};
|
|
143
143
|
/** All cell_grant action specs — composed into `all_cell_action_specs`. */
|
|
144
144
|
export const all_cell_grant_action_specs = [
|
|
145
145
|
cell_grant_create_action_spec,
|
|
146
146
|
cell_grant_revoke_action_spec,
|
|
147
|
-
cell_grant_list_action_spec
|
|
147
|
+
cell_grant_list_action_spec
|
|
148
148
|
];
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
*/
|
|
32
32
|
import { type RpcAction } from '../actions/action_rpc.js';
|
|
33
33
|
import type { RoleSchemaResult } from './role_schema.js';
|
|
34
|
-
import type {
|
|
34
|
+
import type { ActionFactoryDeps } from './deps.js';
|
|
35
35
|
import { type GrantJson } from './cell_grant_action_specs.js';
|
|
36
36
|
import { type CellGrantRow } from '../db/cell_grant_queries.js';
|
|
37
37
|
/**
|
|
@@ -41,7 +41,7 @@ import { type CellGrantRow } from '../db/cell_grant_queries.js';
|
|
|
41
41
|
* `cell_grant_create`. The other slots match `CellActionDeps` so
|
|
42
42
|
* audit-log emit goes through the same fire-and-forget plumbing.
|
|
43
43
|
*/
|
|
44
|
-
export type CellGrantActionDeps =
|
|
44
|
+
export type CellGrantActionDeps = ActionFactoryDeps & {
|
|
45
45
|
roles: RoleSchemaResult;
|
|
46
46
|
};
|
|
47
47
|
export declare const to_grant_json: (row: CellGrantRow) => GrantJson;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_grant_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_grant_actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cell_grant_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_grant_actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAaN,KAAK,SAAS,EACd,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAKN,KAAK,YAAY,EAEjB,MAAM,6BAA6B,CAAC;AAOrC;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACrD,KAAK,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,YAAY,KAAG,SAShD,CAAC;AAgDH,mDAAmD;AACnD,eAAO,MAAM,yBAAyB,GAAI,MAAM,mBAAmB,KAAG,KAAK,CAAC,SAAS,CAoIpF,CAAC"}
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
*/
|
|
32
32
|
import { rpc_action } from '../actions/action_rpc.js';
|
|
33
33
|
import { jsonrpc_errors } from '../http/jsonrpc_errors.js';
|
|
34
|
-
import { cell_grant_create_action_spec, cell_grant_revoke_action_spec, cell_grant_list_action_spec, ERROR_CELL_GRANT_NOT_FOUND, ERROR_CELL_GRANT_PRINCIPAL_IS_OWNER, ERROR_CELL_GRANT_UNKNOWN_ROLE
|
|
34
|
+
import { cell_grant_create_action_spec, cell_grant_revoke_action_spec, cell_grant_list_action_spec, ERROR_CELL_GRANT_NOT_FOUND, ERROR_CELL_GRANT_PRINCIPAL_IS_OWNER, ERROR_CELL_GRANT_UNKNOWN_ROLE } from './cell_grant_action_specs.js';
|
|
35
35
|
import { ERROR_CELL_NOT_FOUND } from './cell_action_specs.js';
|
|
36
36
|
import { can_view_cell, can_manage_cell } from './cell_authorize.js';
|
|
37
37
|
import { query_cell_get } from '../db/cell_queries.js';
|
|
38
|
-
import { query_cell_grant_create, query_cell_grant_get, query_cell_grant_delete, query_cell_grant_list_for_cell
|
|
38
|
+
import { query_cell_grant_create, query_cell_grant_get, query_cell_grant_delete, query_cell_grant_list_for_cell } from '../db/cell_grant_queries.js';
|
|
39
39
|
export const to_grant_json = (row) => ({
|
|
40
40
|
id: row.id,
|
|
41
41
|
cell_id: row.cell_id,
|
|
@@ -44,7 +44,7 @@ export const to_grant_json = (row) => ({
|
|
|
44
44
|
role: row.role,
|
|
45
45
|
scope_id: row.scope_id,
|
|
46
46
|
granted_by: row.granted_by,
|
|
47
|
-
created_at: typeof row.created_at === 'string' ? row.created_at : row.created_at.toISOString()
|
|
47
|
+
created_at: typeof row.created_at === 'string' ? row.created_at : row.created_at.toISOString()
|
|
48
48
|
});
|
|
49
49
|
/**
|
|
50
50
|
* Build the audit-metadata principal envelope from a `cell_grant` row.
|
|
@@ -65,7 +65,7 @@ const to_query_principal = (principal) => {
|
|
|
65
65
|
return {
|
|
66
66
|
kind: 'role',
|
|
67
67
|
role: principal.role,
|
|
68
|
-
scope_id: principal.scope_id ?? null
|
|
68
|
+
scope_id: principal.scope_id ?? null
|
|
69
69
|
};
|
|
70
70
|
};
|
|
71
71
|
/**
|
|
@@ -81,7 +81,7 @@ const assert_principal_is_not_owner = (cell, principal) => {
|
|
|
81
81
|
return;
|
|
82
82
|
if (cell.created_by === principal.actor_id) {
|
|
83
83
|
throw jsonrpc_errors.invalid_params('grant principal is the cell owner', {
|
|
84
|
-
reason: ERROR_CELL_GRANT_PRINCIPAL_IS_OWNER
|
|
84
|
+
reason: ERROR_CELL_GRANT_PRINCIPAL_IS_OWNER
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
};
|
|
@@ -110,7 +110,7 @@ export const create_cell_grant_actions = (deps) => {
|
|
|
110
110
|
// before insert so dead grant rows nothing can match are foreclosed.
|
|
111
111
|
if (principal.kind === 'role' && !roles.role_specs.has(principal.role)) {
|
|
112
112
|
throw jsonrpc_errors.invalid_params(`unknown role "${principal.role}"`, {
|
|
113
|
-
reason: ERROR_CELL_GRANT_UNKNOWN_ROLE
|
|
113
|
+
reason: ERROR_CELL_GRANT_UNKNOWN_ROLE
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
116
|
assert_principal_is_not_owner(cell, principal);
|
|
@@ -118,7 +118,7 @@ export const create_cell_grant_actions = (deps) => {
|
|
|
118
118
|
cell_id: cell.id,
|
|
119
119
|
level: input.level,
|
|
120
120
|
principal,
|
|
121
|
-
granted_by: auth.actor.id
|
|
121
|
+
granted_by: auth.actor.id
|
|
122
122
|
});
|
|
123
123
|
deps.audit.emit(ctx, {
|
|
124
124
|
event_type: 'cell_grant_create',
|
|
@@ -129,8 +129,8 @@ export const create_cell_grant_actions = (deps) => {
|
|
|
129
129
|
cell_id: row.cell_id,
|
|
130
130
|
grant_id: row.id,
|
|
131
131
|
level: row.level,
|
|
132
|
-
principal: principal_from_row(row)
|
|
133
|
-
}
|
|
132
|
+
principal: principal_from_row(row)
|
|
133
|
+
}
|
|
134
134
|
});
|
|
135
135
|
return { grant: to_grant_json(row) };
|
|
136
136
|
};
|
|
@@ -174,14 +174,14 @@ export const create_cell_grant_actions = (deps) => {
|
|
|
174
174
|
grant_id: deleted.id,
|
|
175
175
|
level: deleted.level,
|
|
176
176
|
principal: principal_from_row(deleted),
|
|
177
|
-
...(is_self_actor_grant ? { self: true } : {})
|
|
177
|
+
...(is_self_actor_grant ? { self: true } : {})
|
|
178
178
|
};
|
|
179
179
|
deps.audit.emit(ctx, {
|
|
180
180
|
event_type: 'cell_grant_revoke',
|
|
181
181
|
actor_id: auth.actor.id,
|
|
182
182
|
account_id: auth.account.id,
|
|
183
183
|
ip: ctx.client_ip,
|
|
184
|
-
metadata: audit_metadata
|
|
184
|
+
metadata: audit_metadata
|
|
185
185
|
});
|
|
186
186
|
return { ok: true, still_admitted };
|
|
187
187
|
};
|
|
@@ -203,6 +203,6 @@ export const create_cell_grant_actions = (deps) => {
|
|
|
203
203
|
return [
|
|
204
204
|
rpc_action(cell_grant_create_action_spec, create_handler),
|
|
205
205
|
rpc_action(cell_grant_revoke_action_spec, revoke_handler),
|
|
206
|
-
rpc_action(cell_grant_list_action_spec, list_handler)
|
|
206
|
+
rpc_action(cell_grant_list_action_spec, list_handler)
|
|
207
207
|
];
|
|
208
208
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_grant_audit_metadata.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_grant_audit_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cell_grant_audit_metadata.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_grant_audit_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B;;;;;mBAG1C,CAAC;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAE9F;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;iBAKvC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAExF;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;iBAMvC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -20,7 +20,7 @@ import { Uuid } from '@fuzdev/fuz_util/id.ts';
|
|
|
20
20
|
*/
|
|
21
21
|
export const CellGrantPrincipalAuditMetadata = z.union([
|
|
22
22
|
z.looseObject({ actor_id: Uuid }),
|
|
23
|
-
z.looseObject({ role: z.string(), scope_id: Uuid.nullable() })
|
|
23
|
+
z.looseObject({ role: z.string(), scope_id: Uuid.nullable() })
|
|
24
24
|
]);
|
|
25
25
|
/**
|
|
26
26
|
* Metadata envelope for `cell_grant_create`.
|
|
@@ -34,7 +34,7 @@ export const CellGrantCreateAuditMetadata = z.looseObject({
|
|
|
34
34
|
cell_id: Uuid,
|
|
35
35
|
grant_id: Uuid,
|
|
36
36
|
level: z.enum(['viewer', 'editor']),
|
|
37
|
-
principal: CellGrantPrincipalAuditMetadata
|
|
37
|
+
principal: CellGrantPrincipalAuditMetadata
|
|
38
38
|
});
|
|
39
39
|
/**
|
|
40
40
|
* Metadata envelope for `cell_grant_revoke`.
|
|
@@ -50,5 +50,5 @@ export const CellGrantRevokeAuditMetadata = z.looseObject({
|
|
|
50
50
|
grant_id: Uuid,
|
|
51
51
|
level: z.enum(['viewer', 'editor']),
|
|
52
52
|
principal: CellGrantPrincipalAuditMetadata,
|
|
53
|
-
self: z.literal(true).optional()
|
|
53
|
+
self: z.literal(true).optional()
|
|
54
54
|
});
|
|
@@ -15,8 +15,12 @@ export declare const ERROR_CELL_ITEM_LIST_REQUIRES_PARENT_OR_CHILD: "cell_item_l
|
|
|
15
15
|
/**
|
|
16
16
|
* Error reason — `(parent_id, position)` collision on `cell_item_insert`
|
|
17
17
|
* or `cell_item_move`. Surfaces when two clients computed the same
|
|
18
|
-
* fractional-indexing key (rare given helper-side jitter
|
|
19
|
-
* net for the residual race).
|
|
18
|
+
* fractional-indexing key (rare given helper-side jitter, which is on by
|
|
19
|
+
* default; the safety net for the residual race). A client that opts out
|
|
20
|
+
* with `{jitter: false}` gets bare deterministic mids, so two of them
|
|
21
|
+
* racing the same bracket collide every time and this stops being rare —
|
|
22
|
+
* that mode is for reproducible callers (seeders, fixtures), not concurrent
|
|
23
|
+
* ones. Client refreshes its bracket and retries.
|
|
20
24
|
*/
|
|
21
25
|
export declare const ERROR_CELL_ITEM_POSITION_TAKEN: "cell_item_position_taken";
|
|
22
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_item_action_specs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_item_action_specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cell_item_action_specs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_item_action_specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,8EAA8E;AAC9E,eAAO,MAAM,6CAA6C,EACzD,yCAAkD,CAAC;AAEpD;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,EAAG,0BAAmC,CAAC;AAIlF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,4DAKF,CAAC;AAC5B,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ;;;;;kBAKnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAIhD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;kBAO9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;;;;;kBAAqC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIxE;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;kBAK5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;kBAAqC,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAIpE,gEAAgE;AAChE,eAAO,MAAM,mBAAmB;;;;kBAI9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE,eAAO,MAAM,oBAAoB;;;kBAG/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAIxE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB;;;;;;kBAmB3B,CAAC;AACJ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,kBAAkB;;;;;;;kBAE7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAIpE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;CAWJ,CAAC;AAEtC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;CAWF,CAAC;AAEtC,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;CAWJ,CAAC;AAEtC,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYF,CAAC;AAEtC,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK7B,CAAC"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
import { Uuid } from '@fuzdev/fuz_util/id.ts';
|
|
14
|
-
import { FRACTIONAL_INDEX_LENGTH_MAX, FRACTIONAL_INDEX_REGEX
|
|
14
|
+
import { FRACTIONAL_INDEX_LENGTH_MAX, FRACTIONAL_INDEX_REGEX } from '@fuzdev/fuz_util/fractional_index.ts';
|
|
15
15
|
import { ActingActor } from '../http/auth_shape.js';
|
|
16
16
|
// -- Error reasons ----------------------------------------------------------
|
|
17
17
|
/** Error reason — `cell_item_list` got neither `parent_id` nor `child_id`. */
|
|
@@ -19,8 +19,12 @@ export const ERROR_CELL_ITEM_LIST_REQUIRES_PARENT_OR_CHILD = 'cell_item_list_req
|
|
|
19
19
|
/**
|
|
20
20
|
* Error reason — `(parent_id, position)` collision on `cell_item_insert`
|
|
21
21
|
* or `cell_item_move`. Surfaces when two clients computed the same
|
|
22
|
-
* fractional-indexing key (rare given helper-side jitter
|
|
23
|
-
* net for the residual race).
|
|
22
|
+
* fractional-indexing key (rare given helper-side jitter, which is on by
|
|
23
|
+
* default; the safety net for the residual race). A client that opts out
|
|
24
|
+
* with `{jitter: false}` gets bare deterministic mids, so two of them
|
|
25
|
+
* racing the same bracket collide every time and this stops being rare —
|
|
26
|
+
* that mode is for reproducible callers (seeders, fixtures), not concurrent
|
|
27
|
+
* ones. Client refreshes its bracket and retries.
|
|
24
28
|
*/
|
|
25
29
|
export const ERROR_CELL_ITEM_POSITION_TAKEN = 'cell_item_position_taken';
|
|
26
30
|
// -- Shared schemas ---------------------------------------------------------
|
|
@@ -52,7 +56,7 @@ export const ItemJson = z.strictObject({
|
|
|
52
56
|
parent_id: Uuid,
|
|
53
57
|
position: CellItemPosition,
|
|
54
58
|
child_id: Uuid,
|
|
55
|
-
created_at: z.string()
|
|
59
|
+
created_at: z.string()
|
|
56
60
|
});
|
|
57
61
|
// -- cell_item_insert -------------------------------------------------------
|
|
58
62
|
/**
|
|
@@ -65,9 +69,9 @@ export const CellItemInsertInput = z.strictObject({
|
|
|
65
69
|
parent_id: Uuid.meta({ description: 'Cell to insert into.' }),
|
|
66
70
|
child_id: Uuid.meta({ description: 'Cell to insert as a child.' }),
|
|
67
71
|
position: CellItemPosition.meta({
|
|
68
|
-
description: 'Fractional-indexing key. Client-computed via `fractional_index_between`.'
|
|
72
|
+
description: 'Fractional-indexing key. Client-computed via `fractional_index_between`.'
|
|
69
73
|
}),
|
|
70
|
-
acting: ActingActor
|
|
74
|
+
acting: ActingActor
|
|
71
75
|
});
|
|
72
76
|
export const CellItemInsertOutput = z.strictObject({ item: ItemJson });
|
|
73
77
|
// -- cell_item_move ---------------------------------------------------------
|
|
@@ -79,7 +83,7 @@ export const CellItemMoveInput = z.strictObject({
|
|
|
79
83
|
parent_id: Uuid.meta({ description: 'Parent cell.' }),
|
|
80
84
|
position: CellItemPosition.meta({ description: 'Current position of the row to move.' }),
|
|
81
85
|
new_position: CellItemPosition.meta({ description: 'New fractional-indexing key.' }),
|
|
82
|
-
acting: ActingActor
|
|
86
|
+
acting: ActingActor
|
|
83
87
|
});
|
|
84
88
|
export const CellItemMoveOutput = z.strictObject({ item: ItemJson });
|
|
85
89
|
// -- cell_item_delete -------------------------------------------------------
|
|
@@ -87,11 +91,11 @@ export const CellItemMoveOutput = z.strictObject({ item: ItemJson });
|
|
|
87
91
|
export const CellItemDeleteInput = z.strictObject({
|
|
88
92
|
parent_id: Uuid.meta({ description: 'Parent cell.' }),
|
|
89
93
|
position: CellItemPosition.meta({ description: 'Slot to delete.' }),
|
|
90
|
-
acting: ActingActor
|
|
94
|
+
acting: ActingActor
|
|
91
95
|
});
|
|
92
96
|
export const CellItemDeleteOutput = z.strictObject({
|
|
93
97
|
ok: z.literal(true),
|
|
94
|
-
deleted: z.boolean()
|
|
98
|
+
deleted: z.boolean()
|
|
95
99
|
});
|
|
96
100
|
// -- cell_item_list ---------------------------------------------------------
|
|
97
101
|
/**
|
|
@@ -108,24 +112,24 @@ export const CellItemDeleteOutput = z.strictObject({
|
|
|
108
112
|
export const CellItemListInput = z
|
|
109
113
|
.strictObject({
|
|
110
114
|
parent_id: Uuid.optional().meta({
|
|
111
|
-
description: 'List forward items whose parent is this cell.'
|
|
115
|
+
description: 'List forward items whose parent is this cell.'
|
|
112
116
|
}),
|
|
113
117
|
child_id: Uuid.optional().meta({
|
|
114
|
-
description: 'List reverse parents whose child is this cell.'
|
|
118
|
+
description: 'List reverse parents whose child is this cell.'
|
|
115
119
|
}),
|
|
116
120
|
position_after: CellItemPosition.optional().meta({
|
|
117
|
-
description: 'Cursor for forward pagination — return rows whose position > this.'
|
|
121
|
+
description: 'Cursor for forward pagination — return rows whose position > this.'
|
|
118
122
|
}),
|
|
119
123
|
limit: z.number().int().positive().max(500).optional().meta({
|
|
120
|
-
description: 'Page size cap (max 500). Omit for unbounded — explicit list calls escape the bundled `cell_get` cap.'
|
|
124
|
+
description: 'Page size cap (max 500). Omit for unbounded — explicit list calls escape the bundled `cell_get` cap.'
|
|
121
125
|
}),
|
|
122
|
-
acting: ActingActor
|
|
126
|
+
acting: ActingActor
|
|
123
127
|
})
|
|
124
128
|
.refine((v) => Boolean(v.parent_id) !== Boolean(v.child_id), {
|
|
125
|
-
message: ERROR_CELL_ITEM_LIST_REQUIRES_PARENT_OR_CHILD
|
|
129
|
+
message: ERROR_CELL_ITEM_LIST_REQUIRES_PARENT_OR_CHILD
|
|
126
130
|
});
|
|
127
131
|
export const CellItemListOutput = z.strictObject({
|
|
128
|
-
items: z.array(ItemJson)
|
|
132
|
+
items: z.array(ItemJson)
|
|
129
133
|
});
|
|
130
134
|
// -- Action specs -----------------------------------------------------------
|
|
131
135
|
export const cell_item_insert_action_spec = {
|
|
@@ -137,7 +141,7 @@ export const cell_item_insert_action_spec = {
|
|
|
137
141
|
input: CellItemInsertInput,
|
|
138
142
|
output: CellItemInsertOutput,
|
|
139
143
|
async: true,
|
|
140
|
-
description: 'Insert a cell as an ordered child at `position` under `parent`. Caller must be able to edit `parent` and view `child`. Returns `cell_item_position_taken` on `(parent_id, position)` unique violation; client refreshes bracket and retries.'
|
|
144
|
+
description: 'Insert a cell as an ordered child at `position` under `parent`. Caller must be able to edit `parent` and view `child`. Returns `cell_item_position_taken` on `(parent_id, position)` unique violation; client refreshes bracket and retries.'
|
|
141
145
|
};
|
|
142
146
|
export const cell_item_move_action_spec = {
|
|
143
147
|
method: 'cell_item_move',
|
|
@@ -148,7 +152,7 @@ export const cell_item_move_action_spec = {
|
|
|
148
152
|
input: CellItemMoveInput,
|
|
149
153
|
output: CellItemMoveOutput,
|
|
150
154
|
async: true,
|
|
151
|
-
description: 'Move an item within its parent to a new position. Caller must be able to edit `parent`. Returns `cell_item_position_taken` on the new-position unique violation.'
|
|
155
|
+
description: 'Move an item within its parent to a new position. Caller must be able to edit `parent`. Returns `cell_item_position_taken` on the new-position unique violation.'
|
|
152
156
|
};
|
|
153
157
|
export const cell_item_delete_action_spec = {
|
|
154
158
|
method: 'cell_item_delete',
|
|
@@ -159,7 +163,7 @@ export const cell_item_delete_action_spec = {
|
|
|
159
163
|
input: CellItemDeleteInput,
|
|
160
164
|
output: CellItemDeleteOutput,
|
|
161
165
|
async: true,
|
|
162
|
-
description: 'Delete the item at `(parent, position)`. Idempotent — `deleted: false` when no row matched. Caller must be able to edit `parent`.'
|
|
166
|
+
description: 'Delete the item at `(parent, position)`. Idempotent — `deleted: false` when no row matched. Caller must be able to edit `parent`.'
|
|
163
167
|
};
|
|
164
168
|
export const cell_item_list_action_spec = {
|
|
165
169
|
method: 'cell_item_list',
|
|
@@ -171,12 +175,12 @@ export const cell_item_list_action_spec = {
|
|
|
171
175
|
output: CellItemListOutput,
|
|
172
176
|
async: true,
|
|
173
177
|
rate_limit: 'ip',
|
|
174
|
-
description: 'List forward items (pass `parent_id`) or reverse parents (pass `child_id`). Forward listing filters children to those the caller may view (strict target-visibility). Reverse listing has 2-layer authz: gate on `can_view_cell(child)` first (404 otherwise), then filter rows by per-parent `can_view_cell`. Per-IP rate-limited — symmetric with `cell_get` to bound public-surface id-walking.'
|
|
178
|
+
description: 'List forward items (pass `parent_id`) or reverse parents (pass `child_id`). Forward listing filters children to those the caller may view (strict target-visibility). Reverse listing has 2-layer authz: gate on `can_view_cell(child)` first (404 otherwise), then filter rows by per-parent `can_view_cell`. Per-IP rate-limited — symmetric with `cell_get` to bound public-surface id-walking.'
|
|
175
179
|
};
|
|
176
180
|
/** All cell_item action specs — composed into `all_cell_action_specs`. */
|
|
177
181
|
export const all_cell_item_action_specs = [
|
|
178
182
|
cell_item_insert_action_spec,
|
|
179
183
|
cell_item_move_action_spec,
|
|
180
184
|
cell_item_delete_action_spec,
|
|
181
|
-
cell_item_list_action_spec
|
|
185
|
+
cell_item_list_action_spec
|
|
182
186
|
];
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
* @module
|
|
28
28
|
*/
|
|
29
29
|
import { type RpcAction } from '../actions/action_rpc.js';
|
|
30
|
-
import type {
|
|
30
|
+
import type { ActionFactoryDeps } from './deps.js';
|
|
31
31
|
import { type ItemJson } from './cell_item_action_specs.js';
|
|
32
32
|
import { type CellItemRow } from '../db/cell_item_queries.js';
|
|
33
|
-
export type CellItemActionDeps =
|
|
33
|
+
export type CellItemActionDeps = ActionFactoryDeps;
|
|
34
34
|
export declare const to_item_json: (row: CellItemRow) => ItemJson;
|
|
35
35
|
/** Create the four `cell_item_*` RPC actions. */
|
|
36
36
|
export declare const create_cell_item_actions: (deps: CellItemActionDeps) => Array<RpcAction>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_item_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_item_actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAIN,KAAK,SAAS,EACd,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell_item_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_item_actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAIN,KAAK,SAAS,EACd,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAeN,KAAK,QAAQ,EACb,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAMN,KAAK,WAAW,EAChB,MAAM,4BAA4B,CAAC;AAOpC,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEnD,eAAO,MAAM,YAAY,GAAI,KAAK,WAAW,KAAG,QAS9C,CAAC;AAOH,iDAAiD;AACjD,eAAO,MAAM,wBAAwB,GAAI,MAAM,kBAAkB,KAAG,KAAK,CAAC,SAAS,CA2KlF,CAAC"}
|
|
@@ -26,16 +26,16 @@
|
|
|
26
26
|
*
|
|
27
27
|
* @module
|
|
28
28
|
*/
|
|
29
|
-
import { rpc_action
|
|
29
|
+
import { rpc_action } from '../actions/action_rpc.js';
|
|
30
30
|
import { jsonrpc_errors } from '../http/jsonrpc_errors.js';
|
|
31
31
|
import { is_pg_unique_violation } from '../db/pg_error.js';
|
|
32
|
-
import { cell_item_insert_action_spec, cell_item_move_action_spec, cell_item_delete_action_spec, cell_item_list_action_spec, ERROR_CELL_ITEM_POSITION_TAKEN
|
|
32
|
+
import { cell_item_insert_action_spec, cell_item_move_action_spec, cell_item_delete_action_spec, cell_item_list_action_spec, ERROR_CELL_ITEM_POSITION_TAKEN } from './cell_item_action_specs.js';
|
|
33
33
|
import { ERROR_CELL_NOT_FOUND } from './cell_action_specs.js';
|
|
34
34
|
import { can_view_cell, can_edit_cell } from './cell_authorize.js';
|
|
35
35
|
import { filter_visible_target_ids } from './cell_relation_visibility.js';
|
|
36
36
|
import { query_cell_get } from '../db/cell_queries.js';
|
|
37
37
|
import { query_cell_grant_list_for_cell } from '../db/cell_grant_queries.js';
|
|
38
|
-
import { query_cell_item_insert, query_cell_item_move, query_cell_item_delete, query_cell_item_list_for_parent, query_cell_item_list_for_child
|
|
38
|
+
import { query_cell_item_insert, query_cell_item_move, query_cell_item_delete, query_cell_item_list_for_parent, query_cell_item_list_for_child } from '../db/cell_item_queries.js';
|
|
39
39
|
export const to_item_json = (row) => ({
|
|
40
40
|
parent_id: row.parent_id,
|
|
41
41
|
// `cell.position` is a DB-shape string; brand at the wire boundary so
|
|
@@ -44,10 +44,10 @@ export const to_item_json = (row) => ({
|
|
|
44
44
|
// on ingress).
|
|
45
45
|
position: row.position,
|
|
46
46
|
child_id: row.child_id,
|
|
47
|
-
created_at: typeof row.created_at === 'string' ? row.created_at : row.created_at.toISOString()
|
|
47
|
+
created_at: typeof row.created_at === 'string' ? row.created_at : row.created_at.toISOString()
|
|
48
48
|
});
|
|
49
49
|
const position_taken_error = () => jsonrpc_errors.invalid_params('cell_item position taken', {
|
|
50
|
-
reason: ERROR_CELL_ITEM_POSITION_TAKEN
|
|
50
|
+
reason: ERROR_CELL_ITEM_POSITION_TAKEN
|
|
51
51
|
});
|
|
52
52
|
/** Create the four `cell_item_*` RPC actions. */
|
|
53
53
|
export const create_cell_item_actions = (deps) => {
|
|
@@ -75,7 +75,7 @@ export const create_cell_item_actions = (deps) => {
|
|
|
75
75
|
row = await query_cell_item_insert(ctx, {
|
|
76
76
|
parent_id: input.parent_id,
|
|
77
77
|
position: input.position,
|
|
78
|
-
child_id: input.child_id
|
|
78
|
+
child_id: input.child_id
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
81
|
catch (err) {
|
|
@@ -91,8 +91,8 @@ export const create_cell_item_actions = (deps) => {
|
|
|
91
91
|
metadata: {
|
|
92
92
|
parent_id: row.parent_id,
|
|
93
93
|
position: row.position,
|
|
94
|
-
child_id: row.child_id
|
|
95
|
-
}
|
|
94
|
+
child_id: row.child_id
|
|
95
|
+
}
|
|
96
96
|
});
|
|
97
97
|
return { item: to_item_json(row) };
|
|
98
98
|
};
|
|
@@ -127,8 +127,8 @@ export const create_cell_item_actions = (deps) => {
|
|
|
127
127
|
metadata: {
|
|
128
128
|
parent_id: row.parent_id,
|
|
129
129
|
position_old: input.position,
|
|
130
|
-
position_new: row.position
|
|
131
|
-
}
|
|
130
|
+
position_new: row.position
|
|
131
|
+
}
|
|
132
132
|
});
|
|
133
133
|
return { item: to_item_json(row) };
|
|
134
134
|
};
|
|
@@ -152,8 +152,8 @@ export const create_cell_item_actions = (deps) => {
|
|
|
152
152
|
metadata: {
|
|
153
153
|
parent_id: deleted.parent_id,
|
|
154
154
|
position: deleted.position,
|
|
155
|
-
child_id: deleted.child_id
|
|
156
|
-
}
|
|
155
|
+
child_id: deleted.child_id
|
|
156
|
+
}
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
return { ok: true, deleted: deleted !== null };
|
|
@@ -173,7 +173,7 @@ export const create_cell_item_actions = (deps) => {
|
|
|
173
173
|
}
|
|
174
174
|
const rows = await query_cell_item_list_for_parent(ctx, parent.id, {
|
|
175
175
|
limit: input.limit,
|
|
176
|
-
position_after: input.position_after
|
|
176
|
+
position_after: input.position_after
|
|
177
177
|
});
|
|
178
178
|
const visible_children = await filter_visible_target_ids(ctx, auth, rows.map((r) => r.child_id));
|
|
179
179
|
return { items: rows.filter((r) => visible_children.has(r.child_id)).map(to_item_json) };
|
|
@@ -199,6 +199,6 @@ export const create_cell_item_actions = (deps) => {
|
|
|
199
199
|
rpc_action(cell_item_insert_action_spec, insert_handler),
|
|
200
200
|
rpc_action(cell_item_move_action_spec, move_handler),
|
|
201
201
|
rpc_action(cell_item_delete_action_spec, delete_handler),
|
|
202
|
-
rpc_action(cell_item_list_action_spec, list_handler)
|
|
202
|
+
rpc_action(cell_item_list_action_spec, list_handler)
|
|
203
203
|
];
|
|
204
204
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_item_audit_metadata.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_item_audit_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cell_item_audit_metadata.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_item_audit_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,gDAAgD;AAChD,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF,gDAAgD;AAChD,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -12,7 +12,7 @@ import { Uuid } from '@fuzdev/fuz_util/id.ts';
|
|
|
12
12
|
export const CellItemInsertAuditMetadata = z.looseObject({
|
|
13
13
|
parent_id: Uuid,
|
|
14
14
|
position: z.string(),
|
|
15
|
-
child_id: Uuid
|
|
15
|
+
child_id: Uuid
|
|
16
16
|
});
|
|
17
17
|
/**
|
|
18
18
|
* Metadata envelope for `cell_item_move`. Carries both old and new
|
|
@@ -22,11 +22,11 @@ export const CellItemInsertAuditMetadata = z.looseObject({
|
|
|
22
22
|
export const CellItemMoveAuditMetadata = z.looseObject({
|
|
23
23
|
parent_id: Uuid,
|
|
24
24
|
position_old: z.string(),
|
|
25
|
-
position_new: z.string()
|
|
25
|
+
position_new: z.string()
|
|
26
26
|
});
|
|
27
27
|
/** Metadata envelope for `cell_item_delete`. */
|
|
28
28
|
export const CellItemDeleteAuditMetadata = z.looseObject({
|
|
29
29
|
parent_id: Uuid,
|
|
30
30
|
position: z.string(),
|
|
31
|
-
child_id: Uuid
|
|
31
|
+
child_id: Uuid
|
|
32
32
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell_relation_visibility.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_relation_visibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell_relation_visibility.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_relation_visibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,GACrC,MAAM,SAAS,EACf,MAAM,cAAc,GAAG,IAAI,EAC3B,YAAY,aAAa,CAAC,IAAI,CAAC,KAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAwBnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cleanup.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cleanup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,4CAA4C;AAC5C,MAAM,WAAW,eAAgB,SAAQ,SAAS;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;OAMG;IACH,KAAK,EAAE,YAAY,CAAC;CACpB;AAED,oCAAoC;AACpC,MAAM,WAAW,iBAAiB;IACjC,8CAA8C;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iCAAiC,GAAU,MAAM,eAAe,KAAG,OAAO,CAAC,MAAM,CAuB7F,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,GAAU,MAAM,eAAe,KAAG,OAAO,CAAC,iBAAiB,CAIvF,CAAC"}
|
package/dist/auth/cleanup.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential_type_schema.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/credential_type_schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"credential_type_schema.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/credential_type_schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAgC,CAAC;AAExE,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,aAK7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAIpE,uCAAuC;AACvC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAErD,yEAAyE;AACzE,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAE3D,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,mDAI3B,CAAC;AAEX,kDAAkD;AAClD,eAAO,MAAM,qBAAqB;;;;EAAmC,CAAC;AACtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAa/E,CAAC;AAEH,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IAC1C;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC;;;OAGG;IACH,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,6BAA6B,GACzC,iBAAgB,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAM,KACrD,0BA2BF,CAAC"}
|
|
@@ -47,7 +47,7 @@ export const CREDENTIAL_TYPE_DAEMON_TOKEN = 'daemon_token';
|
|
|
47
47
|
export const BUILTIN_CREDENTIAL_TYPES = [
|
|
48
48
|
CREDENTIAL_TYPE_SESSION,
|
|
49
49
|
CREDENTIAL_TYPE_API_TOKEN,
|
|
50
|
-
CREDENTIAL_TYPE_DAEMON_TOKEN
|
|
50
|
+
CREDENTIAL_TYPE_DAEMON_TOKEN
|
|
51
51
|
];
|
|
52
52
|
/** Zod enum for builtin credential types only. */
|
|
53
53
|
export const BuiltinCredentialType = z.enum(BUILTIN_CREDENTIAL_TYPES);
|
|
@@ -63,16 +63,16 @@ export const BuiltinCredentialType = z.enum(BUILTIN_CREDENTIAL_TYPES);
|
|
|
63
63
|
export const builtin_credential_type_meta = new Map([
|
|
64
64
|
[
|
|
65
65
|
CREDENTIAL_TYPE_SESSION,
|
|
66
|
-
{ description: 'Cookie-based session credential, signed and validated server-side.' }
|
|
66
|
+
{ description: 'Cookie-based session credential, signed and validated server-side.' }
|
|
67
67
|
],
|
|
68
68
|
[
|
|
69
69
|
CREDENTIAL_TYPE_API_TOKEN,
|
|
70
|
-
{ description: 'HTTP Authorization: Bearer API token credential, hashed at rest.' }
|
|
70
|
+
{ description: 'HTTP Authorization: Bearer API token credential, hashed at rest.' }
|
|
71
71
|
],
|
|
72
72
|
[
|
|
73
73
|
CREDENTIAL_TYPE_DAEMON_TOKEN,
|
|
74
|
-
{ description: 'Filesystem-proof daemon-token credential, scoped to the keeper account.' }
|
|
75
|
-
]
|
|
74
|
+
{ description: 'Filesystem-proof daemon-token credential, scoped to the keeper account.' }
|
|
75
|
+
]
|
|
76
76
|
]);
|
|
77
77
|
/**
|
|
78
78
|
* Create a credential-type schema from the builtin set plus optional
|