@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.
Files changed (612) hide show
  1. package/dist/actions/CLAUDE.md +2 -2
  2. package/dist/actions/action_bridge.d.ts.map +1 -1
  3. package/dist/actions/action_bridge.js +2 -2
  4. package/dist/actions/action_codegen.d.ts.map +1 -1
  5. package/dist/actions/action_codegen.js +3 -3
  6. package/dist/actions/action_dispatcher.d.ts.map +1 -1
  7. package/dist/actions/action_dispatcher.js +3 -3
  8. package/dist/actions/action_event.d.ts.map +1 -1
  9. package/dist/actions/action_event.js +11 -11
  10. package/dist/actions/action_event_data.d.ts.map +1 -1
  11. package/dist/actions/action_event_data.js +2 -2
  12. package/dist/actions/action_event_helpers.d.ts.map +1 -1
  13. package/dist/actions/action_event_helpers.js +2 -2
  14. package/dist/actions/action_event_types.d.ts.map +1 -1
  15. package/dist/actions/action_event_types.js +4 -4
  16. package/dist/actions/action_rpc.d.ts.map +1 -1
  17. package/dist/actions/action_rpc.js +14 -13
  18. package/dist/actions/action_spec.d.ts.map +1 -1
  19. package/dist/actions/action_spec.js +6 -6
  20. package/dist/actions/action_types.d.ts.map +1 -1
  21. package/dist/actions/broadcast_api.d.ts.map +1 -1
  22. package/dist/actions/broadcast_api.js +1 -1
  23. package/dist/actions/cancel.d.ts.map +1 -1
  24. package/dist/actions/cancel.js +3 -3
  25. package/dist/actions/compile_action_registry.d.ts.map +1 -1
  26. package/dist/actions/frontend_rpc_client.d.ts.map +1 -1
  27. package/dist/actions/frontend_rpc_client.js +3 -3
  28. package/dist/actions/heartbeat.d.ts.map +1 -1
  29. package/dist/actions/heartbeat.js +2 -2
  30. package/dist/actions/peer_ping.d.ts.map +1 -1
  31. package/dist/actions/peer_ping.js +6 -6
  32. package/dist/actions/peer_request.d.ts.map +1 -1
  33. package/dist/actions/perform_action.d.ts +8 -0
  34. package/dist/actions/perform_action.d.ts.map +1 -1
  35. package/dist/actions/perform_action.js +41 -23
  36. package/dist/actions/protocol.d.ts.map +1 -1
  37. package/dist/actions/protocol.js +1 -1
  38. package/dist/actions/register_action_ws.d.ts.map +1 -1
  39. package/dist/actions/register_action_ws.js +39 -12
  40. package/dist/actions/register_ws_endpoint.d.ts.map +1 -1
  41. package/dist/actions/register_ws_endpoint.js +3 -3
  42. package/dist/actions/request_tracker.svelte.d.ts.map +1 -1
  43. package/dist/actions/request_tracker.svelte.js +2 -2
  44. package/dist/actions/rpc_client.d.ts.map +1 -1
  45. package/dist/actions/rpc_client.js +7 -7
  46. package/dist/actions/socket.svelte.d.ts.map +1 -1
  47. package/dist/actions/socket.svelte.js +4 -3
  48. package/dist/actions/transports.d.ts.map +1 -1
  49. package/dist/actions/transports_http.d.ts.map +1 -1
  50. package/dist/actions/transports_http.js +7 -7
  51. package/dist/actions/transports_ws.d.ts.map +1 -1
  52. package/dist/actions/transports_ws.js +3 -3
  53. package/dist/actions/transports_ws_auth_guard.d.ts +4 -4
  54. package/dist/actions/transports_ws_auth_guard.d.ts.map +1 -1
  55. package/dist/actions/transports_ws_auth_guard.js +5 -5
  56. package/dist/actions/transports_ws_backend.d.ts.map +1 -1
  57. package/dist/actions/transports_ws_backend.js +2 -2
  58. package/dist/actions/ws_endpoint_spec.d.ts +2 -2
  59. package/dist/actions/ws_endpoint_spec.d.ts.map +1 -1
  60. package/dist/auth/CLAUDE.md +11 -7
  61. package/dist/auth/account_action_specs.d.ts +32 -9
  62. package/dist/auth/account_action_specs.d.ts.map +1 -1
  63. package/dist/auth/account_action_specs.js +35 -23
  64. package/dist/auth/account_actions.d.ts +3 -3
  65. package/dist/auth/account_actions.d.ts.map +1 -1
  66. package/dist/auth/account_actions.js +25 -12
  67. package/dist/auth/account_queries.d.ts.map +1 -1
  68. package/dist/auth/account_queries.js +6 -6
  69. package/dist/auth/account_route_schema.d.ts.map +1 -1
  70. package/dist/auth/account_route_schema.js +19 -19
  71. package/dist/auth/account_routes.d.ts +2 -2
  72. package/dist/auth/account_routes.d.ts.map +1 -1
  73. package/dist/auth/account_routes.js +27 -27
  74. package/dist/auth/account_schema.d.ts +26 -2
  75. package/dist/auth/account_schema.d.ts.map +1 -1
  76. package/dist/auth/account_schema.js +28 -10
  77. package/dist/auth/actor_lookup_action_specs.d.ts.map +1 -1
  78. package/dist/auth/actor_lookup_action_specs.js +5 -5
  79. package/dist/auth/actor_lookup_actions.d.ts +4 -2
  80. package/dist/auth/actor_lookup_actions.d.ts.map +1 -1
  81. package/dist/auth/actor_lookup_actions.js +3 -3
  82. package/dist/auth/actor_lookup_queries.d.ts.map +1 -1
  83. package/dist/auth/actor_search_action_specs.d.ts.map +1 -1
  84. package/dist/auth/actor_search_action_specs.js +6 -6
  85. package/dist/auth/actor_search_actions.d.ts +4 -2
  86. package/dist/auth/actor_search_actions.d.ts.map +1 -1
  87. package/dist/auth/actor_search_actions.js +5 -5
  88. package/dist/auth/actor_search_queries.d.ts.map +1 -1
  89. package/dist/auth/admin_action_specs.d.ts +2 -2
  90. package/dist/auth/admin_action_specs.d.ts.map +1 -1
  91. package/dist/auth/admin_action_specs.js +55 -55
  92. package/dist/auth/admin_actions.d.ts +5 -5
  93. package/dist/auth/admin_actions.d.ts.map +1 -1
  94. package/dist/auth/admin_actions.js +45 -44
  95. package/dist/auth/all_action_spec_registries.d.ts.map +1 -1
  96. package/dist/auth/all_action_spec_registries.js +1 -1
  97. package/dist/auth/all_cell_actions.d.ts.map +1 -1
  98. package/dist/auth/all_cell_actions.js +1 -1
  99. package/dist/auth/api_token.d.ts.map +1 -1
  100. package/dist/auth/api_token_queries.d.ts +9 -3
  101. package/dist/auth/api_token_queries.d.ts.map +1 -1
  102. package/dist/auth/api_token_queries.js +29 -8
  103. package/dist/auth/app_settings_queries.d.ts.map +1 -1
  104. package/dist/auth/app_settings_schema.d.ts.map +1 -1
  105. package/dist/auth/app_settings_schema.js +3 -3
  106. package/dist/auth/audit_emitter.d.ts +28 -20
  107. package/dist/auth/audit_emitter.d.ts.map +1 -1
  108. package/dist/auth/audit_emitter.js +37 -19
  109. package/dist/auth/audit_log_ddl.js +1 -1
  110. package/dist/auth/audit_log_queries.d.ts.map +1 -1
  111. package/dist/auth/audit_log_queries.js +2 -2
  112. package/dist/auth/audit_log_route_schema.d.ts.map +1 -1
  113. package/dist/auth/audit_log_route_schema.js +1 -1
  114. package/dist/auth/audit_log_routes.d.ts.map +1 -1
  115. package/dist/auth/audit_log_routes.js +12 -4
  116. package/dist/auth/audit_log_schema.d.ts +2 -2
  117. package/dist/auth/audit_log_schema.d.ts.map +1 -1
  118. package/dist/auth/audit_log_schema.js +69 -68
  119. package/dist/auth/auth_ddl.js +3 -3
  120. package/dist/auth/auth_guard_resolver.d.ts.map +1 -1
  121. package/dist/auth/bearer_auth.d.ts.map +1 -1
  122. package/dist/auth/bearer_auth.js +6 -1
  123. package/dist/auth/bootstrap_account.d.ts.map +1 -1
  124. package/dist/auth/bootstrap_account.js +5 -5
  125. package/dist/auth/bootstrap_route_schema.d.ts.map +1 -1
  126. package/dist/auth/bootstrap_route_schema.js +6 -6
  127. package/dist/auth/bootstrap_routes.d.ts.map +1 -1
  128. package/dist/auth/bootstrap_routes.js +7 -7
  129. package/dist/auth/cell_action_specs.d.ts +1 -1
  130. package/dist/auth/cell_action_specs.d.ts.map +1 -1
  131. package/dist/auth/cell_action_specs.js +47 -47
  132. package/dist/auth/cell_actions.d.ts +2 -2
  133. package/dist/auth/cell_actions.d.ts.map +1 -1
  134. package/dist/auth/cell_actions.js +37 -37
  135. package/dist/auth/cell_audit_action_specs.d.ts.map +1 -1
  136. package/dist/auth/cell_audit_action_specs.js +4 -4
  137. package/dist/auth/cell_audit_actions.d.ts.map +1 -1
  138. package/dist/auth/cell_audit_actions.js +3 -3
  139. package/dist/auth/cell_audit_events.d.ts.map +1 -1
  140. package/dist/auth/cell_audit_events.js +5 -5
  141. package/dist/auth/cell_audit_metadata.d.ts.map +1 -1
  142. package/dist/auth/cell_audit_metadata.js +3 -3
  143. package/dist/auth/cell_authorize.d.ts.map +1 -1
  144. package/dist/auth/cell_data_schema.d.ts.map +1 -1
  145. package/dist/auth/cell_data_schema.js +1 -1
  146. package/dist/auth/cell_field_action_specs.d.ts.map +1 -1
  147. package/dist/auth/cell_field_action_specs.js +16 -16
  148. package/dist/auth/cell_field_actions.d.ts +2 -2
  149. package/dist/auth/cell_field_actions.d.ts.map +1 -1
  150. package/dist/auth/cell_field_actions.js +11 -11
  151. package/dist/auth/cell_field_audit_metadata.d.ts.map +1 -1
  152. package/dist/auth/cell_field_audit_metadata.js +2 -2
  153. package/dist/auth/cell_grant_action_specs.d.ts.map +1 -1
  154. package/dist/auth/cell_grant_action_specs.js +15 -15
  155. package/dist/auth/cell_grant_actions.d.ts +2 -2
  156. package/dist/auth/cell_grant_actions.d.ts.map +1 -1
  157. package/dist/auth/cell_grant_actions.js +12 -12
  158. package/dist/auth/cell_grant_audit_metadata.d.ts.map +1 -1
  159. package/dist/auth/cell_grant_audit_metadata.js +3 -3
  160. package/dist/auth/cell_item_action_specs.d.ts +6 -2
  161. package/dist/auth/cell_item_action_specs.d.ts.map +1 -1
  162. package/dist/auth/cell_item_action_specs.js +25 -21
  163. package/dist/auth/cell_item_actions.d.ts +2 -2
  164. package/dist/auth/cell_item_actions.d.ts.map +1 -1
  165. package/dist/auth/cell_item_actions.js +14 -14
  166. package/dist/auth/cell_item_audit_metadata.d.ts.map +1 -1
  167. package/dist/auth/cell_item_audit_metadata.js +3 -3
  168. package/dist/auth/cell_relation_visibility.d.ts.map +1 -1
  169. package/dist/auth/cleanup.d.ts.map +1 -1
  170. package/dist/auth/cleanup.js +2 -2
  171. package/dist/auth/credential_type_schema.d.ts.map +1 -1
  172. package/dist/auth/credential_type_schema.js +5 -5
  173. package/dist/auth/daemon_token.d.ts.map +1 -1
  174. package/dist/auth/daemon_token_middleware.d.ts.map +1 -1
  175. package/dist/auth/daemon_token_middleware.js +7 -3
  176. package/dist/auth/deps.d.ts +20 -5
  177. package/dist/auth/deps.d.ts.map +1 -1
  178. package/dist/auth/grant_path_schema.d.ts.map +1 -1
  179. package/dist/auth/grant_path_schema.js +8 -8
  180. package/dist/auth/invite_queries.d.ts.map +1 -1
  181. package/dist/auth/invite_schema.d.ts.map +1 -1
  182. package/dist/auth/invite_schema.js +2 -2
  183. package/dist/auth/keyring.d.ts.map +1 -1
  184. package/dist/auth/keyring.js +1 -1
  185. package/dist/auth/middleware.d.ts.map +1 -1
  186. package/dist/auth/middleware.js +7 -7
  187. package/dist/auth/migrations.d.ts.map +1 -1
  188. package/dist/auth/migrations.js +54 -19
  189. package/dist/auth/password.d.ts.map +1 -1
  190. package/dist/auth/password_argon2.d.ts.map +1 -1
  191. package/dist/auth/password_argon2.js +2 -2
  192. package/dist/auth/request_context.d.ts +18 -0
  193. package/dist/auth/request_context.d.ts.map +1 -1
  194. package/dist/auth/request_context.js +33 -7
  195. package/dist/auth/role_grant_offer_action_specs.d.ts +12 -0
  196. package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
  197. package/dist/auth/role_grant_offer_action_specs.js +47 -36
  198. package/dist/auth/role_grant_offer_actions.d.ts +7 -4
  199. package/dist/auth/role_grant_offer_actions.d.ts.map +1 -1
  200. package/dist/auth/role_grant_offer_actions.js +43 -43
  201. package/dist/auth/role_grant_offer_notifications.d.ts.map +1 -1
  202. package/dist/auth/role_grant_offer_notifications.js +13 -13
  203. package/dist/auth/role_grant_offer_queries.d.ts +1 -1
  204. package/dist/auth/role_grant_offer_queries.d.ts.map +1 -1
  205. package/dist/auth/role_grant_offer_queries.js +11 -11
  206. package/dist/auth/role_grant_offer_schema.d.ts.map +1 -1
  207. package/dist/auth/role_grant_offer_schema.js +7 -7
  208. package/dist/auth/role_grant_queries.d.ts.map +1 -1
  209. package/dist/auth/role_grant_queries.js +3 -3
  210. package/dist/auth/role_schema.d.ts.map +1 -1
  211. package/dist/auth/role_schema.js +7 -7
  212. package/dist/auth/scope_kind_schema.d.ts.map +1 -1
  213. package/dist/auth/self_service_role_action_specs.d.ts +7 -0
  214. package/dist/auth/self_service_role_action_specs.d.ts.map +1 -1
  215. package/dist/auth/self_service_role_action_specs.js +12 -6
  216. package/dist/auth/self_service_role_actions.d.ts +3 -3
  217. package/dist/auth/self_service_role_actions.d.ts.map +1 -1
  218. package/dist/auth/self_service_role_actions.js +9 -9
  219. package/dist/auth/session_cookie.d.ts.map +1 -1
  220. package/dist/auth/session_cookie.js +3 -3
  221. package/dist/auth/session_middleware.d.ts.map +1 -1
  222. package/dist/auth/session_middleware.js +4 -4
  223. package/dist/auth/session_queries.d.ts +14 -4
  224. package/dist/auth/session_queries.d.ts.map +1 -1
  225. package/dist/auth/session_queries.js +13 -3
  226. package/dist/auth/signup_route_schema.d.ts.map +1 -1
  227. package/dist/auth/signup_route_schema.js +6 -6
  228. package/dist/auth/signup_routes.d.ts.map +1 -1
  229. package/dist/auth/signup_routes.js +11 -11
  230. package/dist/auth/standard_action_specs.d.ts.map +1 -1
  231. package/dist/auth/standard_action_specs.js +1 -1
  232. package/dist/auth/standard_rpc_actions.d.ts +4 -4
  233. package/dist/auth/standard_rpc_actions.d.ts.map +1 -1
  234. package/dist/auth/standard_rpc_actions.js +3 -3
  235. package/dist/auth/token_scope.d.ts +155 -0
  236. package/dist/auth/token_scope.d.ts.map +1 -0
  237. package/dist/auth/token_scope.js +190 -0
  238. package/dist/cli/args.d.ts.map +1 -1
  239. package/dist/cli/config.d.ts.map +1 -1
  240. package/dist/cli/daemon.d.ts.map +1 -1
  241. package/dist/cli/daemon.js +3 -3
  242. package/dist/cli/help.d.ts.map +1 -1
  243. package/dist/cli/help.js +1 -1
  244. package/dist/cli/logger.d.ts.map +1 -1
  245. package/dist/cli/logger.js +1 -1
  246. package/dist/cli/util.d.ts.map +1 -1
  247. package/dist/cli/util.js +1 -1
  248. package/dist/db/CLAUDE.md +1 -1
  249. package/dist/db/cell_audit_queries.d.ts.map +1 -1
  250. package/dist/db/cell_audit_queries.js +1 -1
  251. package/dist/db/cell_ddl.d.ts.map +1 -1
  252. package/dist/db/cell_ddl.js +7 -7
  253. package/dist/db/cell_field_queries.d.ts.map +1 -1
  254. package/dist/db/cell_grant_queries.d.ts.map +1 -1
  255. package/dist/db/cell_grant_queries.js +1 -1
  256. package/dist/db/cell_history_ddl.d.ts.map +1 -1
  257. package/dist/db/cell_history_ddl.js +4 -4
  258. package/dist/db/cell_item_queries.d.ts.map +1 -1
  259. package/dist/db/cell_queries.d.ts +1 -1
  260. package/dist/db/cell_queries.d.ts.map +1 -1
  261. package/dist/db/cell_queries.js +3 -3
  262. package/dist/db/create_db.d.ts.map +1 -1
  263. package/dist/db/create_db.js +1 -1
  264. package/dist/db/db.d.ts.map +1 -1
  265. package/dist/db/db_pg.d.ts.map +1 -1
  266. package/dist/db/db_pg.js +1 -1
  267. package/dist/db/db_pglite.d.ts.map +1 -1
  268. package/dist/db/db_pglite.js +1 -1
  269. package/dist/db/fact_ddl.d.ts.map +1 -1
  270. package/dist/db/fact_ddl.js +3 -3
  271. package/dist/db/fact_disk_storage.d.ts +1 -1
  272. package/dist/db/fact_disk_storage.d.ts.map +1 -1
  273. package/dist/db/fact_disk_storage.js +6 -6
  274. package/dist/db/fact_queries.d.ts +1 -1
  275. package/dist/db/fact_queries.d.ts.map +1 -1
  276. package/dist/db/fact_queries.js +2 -2
  277. package/dist/db/fact_store.d.ts +1 -1
  278. package/dist/db/fact_store.d.ts.map +1 -1
  279. package/dist/db/fact_store.js +9 -9
  280. package/dist/db/fact_store_errors.d.ts.map +1 -1
  281. package/dist/db/file_fact_url.d.ts +1 -1
  282. package/dist/db/file_fact_url.d.ts.map +1 -1
  283. package/dist/db/file_fact_url.js +1 -1
  284. package/dist/db/migrate.d.ts.map +1 -1
  285. package/dist/db/pg_error.d.ts.map +1 -1
  286. package/dist/db/query_deps.d.ts.map +1 -1
  287. package/dist/db/schema_ready.d.ts.map +1 -1
  288. package/dist/db/schema_ready.js +2 -2
  289. package/dist/db/status.d.ts.map +1 -1
  290. package/dist/db/status.js +6 -6
  291. package/dist/dev/setup.d.ts.map +1 -1
  292. package/dist/dev/setup.js +6 -6
  293. package/dist/env/dotenv.d.ts.map +1 -1
  294. package/dist/env/load.d.ts.map +1 -1
  295. package/dist/env/resolve.d.ts.map +1 -1
  296. package/dist/hono_context.d.ts +23 -0
  297. package/dist/hono_context.d.ts.map +1 -1
  298. package/dist/hono_context.js +16 -2
  299. package/dist/http/auth_shape.d.ts.map +1 -1
  300. package/dist/http/auth_shape.js +6 -6
  301. package/dist/http/client_ip.d.ts.map +1 -1
  302. package/dist/http/common_routes.d.ts.map +1 -1
  303. package/dist/http/common_routes.js +8 -8
  304. package/dist/http/db_routes.d.ts.map +1 -1
  305. package/dist/http/db_routes.js +27 -23
  306. package/dist/http/error_schemas.d.ts +13 -1
  307. package/dist/http/error_schemas.d.ts.map +1 -1
  308. package/dist/http/error_schemas.js +25 -13
  309. package/dist/http/jsonrpc.d.ts.map +1 -1
  310. package/dist/http/jsonrpc.js +9 -9
  311. package/dist/http/jsonrpc_errors.d.ts.map +1 -1
  312. package/dist/http/jsonrpc_errors.js +21 -21
  313. package/dist/http/jsonrpc_helpers.d.ts.map +1 -1
  314. package/dist/http/jsonrpc_helpers.js +7 -7
  315. package/dist/http/middleware_spec.d.ts.map +1 -1
  316. package/dist/http/origin.d.ts.map +1 -1
  317. package/dist/http/pending_effects.d.ts.map +1 -1
  318. package/dist/http/proxy.d.ts.map +1 -1
  319. package/dist/http/proxy.js +1 -1
  320. package/dist/http/route_spec.d.ts.map +1 -1
  321. package/dist/http/route_spec.js +6 -6
  322. package/dist/http/schema_helpers.d.ts.map +1 -1
  323. package/dist/http/schema_helpers.js +1 -1
  324. package/dist/http/surface.d.ts.map +1 -1
  325. package/dist/http/surface.js +11 -11
  326. package/dist/http/surface_query.d.ts.map +1 -1
  327. package/dist/http/surface_query.js +1 -1
  328. package/dist/primitive_schemas.d.ts.map +1 -1
  329. package/dist/primitive_schemas.js +1 -1
  330. package/dist/rate_limiter.d.ts.map +1 -1
  331. package/dist/rate_limiter.js +4 -4
  332. package/dist/realtime/sse.d.ts.map +1 -1
  333. package/dist/realtime/sse.js +2 -2
  334. package/dist/realtime/sse_auth_guard.d.ts +4 -4
  335. package/dist/realtime/sse_auth_guard.d.ts.map +1 -1
  336. package/dist/realtime/sse_auth_guard.js +8 -8
  337. package/dist/realtime/subscriber_registry.d.ts.map +1 -1
  338. package/dist/runtime/deno.d.ts.map +1 -1
  339. package/dist/runtime/deno.js +7 -7
  340. package/dist/runtime/deps.d.ts.map +1 -1
  341. package/dist/runtime/fs.d.ts.map +1 -1
  342. package/dist/runtime/mock.d.ts.map +1 -1
  343. package/dist/runtime/mock.js +3 -3
  344. package/dist/runtime/node.d.ts.map +1 -1
  345. package/dist/runtime/node.js +7 -7
  346. package/dist/schema_meta.d.ts.map +1 -1
  347. package/dist/server/app_backend.d.ts +3 -3
  348. package/dist/server/app_backend.d.ts.map +1 -1
  349. package/dist/server/app_backend.js +3 -3
  350. package/dist/server/app_server.d.ts +6 -6
  351. package/dist/server/app_server.d.ts.map +1 -1
  352. package/dist/server/app_server.js +32 -32
  353. package/dist/server/app_server_context.d.ts.map +1 -1
  354. package/dist/server/env.d.ts.map +1 -1
  355. package/dist/server/env.js +9 -9
  356. package/dist/server/file_fact_fetcher.d.ts.map +1 -1
  357. package/dist/server/file_fact_fetcher.js +1 -1
  358. package/dist/server/serve_fact_route.d.ts.map +1 -1
  359. package/dist/server/serve_fact_route.js +23 -13
  360. package/dist/server/startup.d.ts.map +1 -1
  361. package/dist/server/static.d.ts.map +1 -1
  362. package/dist/server/x_accel.d.ts +2 -4
  363. package/dist/server/x_accel.d.ts.map +1 -1
  364. package/dist/server/x_accel.js +3 -5
  365. package/dist/testing/CLAUDE.md +2 -2
  366. package/dist/testing/admin_integration.d.ts.map +1 -1
  367. package/dist/testing/admin_integration.js +64 -64
  368. package/dist/testing/adversarial_404.d.ts.map +1 -1
  369. package/dist/testing/adversarial_404.js +1 -1
  370. package/dist/testing/adversarial_headers.d.ts.map +1 -1
  371. package/dist/testing/adversarial_headers.js +15 -15
  372. package/dist/testing/adversarial_input.d.ts.map +1 -1
  373. package/dist/testing/adversarial_input.js +22 -22
  374. package/dist/testing/app_server.d.ts.map +1 -1
  375. package/dist/testing/app_server.js +34 -33
  376. package/dist/testing/assertions.d.ts.map +1 -1
  377. package/dist/testing/attack_surface.d.ts.map +1 -1
  378. package/dist/testing/attack_surface.js +12 -12
  379. package/dist/testing/audit_completeness.d.ts.map +1 -1
  380. package/dist/testing/audit_completeness.js +42 -42
  381. package/dist/testing/audit_drift_guard.d.ts +3 -1
  382. package/dist/testing/audit_drift_guard.d.ts.map +1 -1
  383. package/dist/testing/audit_drift_guard.js +12 -6
  384. package/dist/testing/auth_apps.d.ts.map +1 -1
  385. package/dist/testing/auth_apps.js +4 -4
  386. package/dist/testing/bootstrap_success.d.ts.map +1 -1
  387. package/dist/testing/bootstrap_success.js +11 -11
  388. package/dist/testing/connection_closer_helpers.d.ts.map +1 -1
  389. package/dist/testing/connection_closer_helpers.js +1 -1
  390. package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
  391. package/dist/testing/cross_backend/account_lifecycle.js +1 -1
  392. package/dist/testing/cross_backend/action_manifest.d.ts.map +1 -1
  393. package/dist/testing/cross_backend/action_manifest.js +4 -4
  394. package/dist/testing/cross_backend/action_manifest_parity.d.ts.map +1 -1
  395. package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -1
  396. package/dist/testing/cross_backend/actor_lookup.js +3 -3
  397. package/dist/testing/cross_backend/actor_search.d.ts.map +1 -1
  398. package/dist/testing/cross_backend/actor_search.js +5 -5
  399. package/dist/testing/cross_backend/app_settings.d.ts.map +1 -1
  400. package/dist/testing/cross_backend/app_settings.js +6 -6
  401. package/dist/testing/cross_backend/backend_config.d.ts.map +1 -1
  402. package/dist/testing/cross_backend/bench/bench_report.d.ts.map +1 -1
  403. package/dist/testing/cross_backend/bench/bench_report.js +5 -5
  404. package/dist/testing/cross_backend/bench/run_cross_impl_bench.d.ts.map +1 -1
  405. package/dist/testing/cross_backend/bench/run_cross_impl_bench.js +2 -2
  406. package/dist/testing/cross_backend/bench/scenario.d.ts.map +1 -1
  407. package/dist/testing/cross_backend/bench/scenario.js +1 -1
  408. package/dist/testing/cross_backend/body_size.d.ts.map +1 -1
  409. package/dist/testing/cross_backend/body_size.js +1 -1
  410. package/dist/testing/cross_backend/bootstrap_backend.d.ts.map +1 -1
  411. package/dist/testing/cross_backend/bootstrap_backend.js +2 -2
  412. package/dist/testing/cross_backend/build_test_backend_paths.js +1 -1
  413. package/dist/testing/cross_backend/capabilities.js +2 -2
  414. package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +1 -1
  415. package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -1
  416. package/dist/testing/cross_backend/cell_crud.js +5 -2
  417. package/dist/testing/cross_backend/cell_gated_create.d.ts.map +1 -1
  418. package/dist/testing/cross_backend/cell_gated_create.js +8 -7
  419. package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -1
  420. package/dist/testing/cross_backend/cell_grant_role.js +2 -2
  421. package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -1
  422. package/dist/testing/cross_backend/cell_relations.js +13 -13
  423. package/dist/testing/cross_backend/conformance_case.d.ts +23 -0
  424. package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -1
  425. package/dist/testing/cross_backend/conformance_case.js +32 -11
  426. package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
  427. package/dist/testing/cross_backend/conformance_table.js +68 -15
  428. package/dist/testing/cross_backend/cookie_attributes.d.ts.map +1 -1
  429. package/dist/testing/cross_backend/cookie_attributes.js +4 -4
  430. package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts +1 -1
  431. package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts.map +1 -1
  432. package/dist/testing/cross_backend/create_cross_backend_global_setup.js +1 -1
  433. package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts +1 -1
  434. package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts.map +1 -1
  435. package/dist/testing/cross_backend/create_dual_spawn_global_setup.js +1 -1
  436. package/dist/testing/cross_backend/credential_header_robustness.js +1 -1
  437. package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
  438. package/dist/testing/cross_backend/default_backend_configs.js +12 -12
  439. package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
  440. package/dist/testing/cross_backend/default_spine_surface.js +9 -9
  441. package/dist/testing/cross_backend/expected_schema.json +1 -0
  442. package/dist/testing/cross_backend/fact_serving.d.ts.map +1 -1
  443. package/dist/testing/cross_backend/fact_serving.js +2 -2
  444. package/dist/testing/cross_backend/full_spine_mount.d.ts.map +1 -1
  445. package/dist/testing/cross_backend/full_spine_mount.js +4 -4
  446. package/dist/testing/cross_backend/identity_parity.d.ts.map +1 -1
  447. package/dist/testing/cross_backend/identity_parity.js +28 -24
  448. package/dist/testing/cross_backend/in_process_setup.d.ts.map +1 -1
  449. package/dist/testing/cross_backend/in_process_setup.js +9 -9
  450. package/dist/testing/cross_backend/login_security.d.ts.map +1 -1
  451. package/dist/testing/cross_backend/login_security.js +2 -2
  452. package/dist/testing/cross_backend/make_cross_backend_project.d.ts +1 -1
  453. package/dist/testing/cross_backend/make_cross_backend_project.d.ts.map +1 -1
  454. package/dist/testing/cross_backend/make_cross_backend_project.js +3 -3
  455. package/dist/testing/cross_backend/method_coverage.d.ts.map +1 -1
  456. package/dist/testing/cross_backend/origin.d.ts.map +1 -1
  457. package/dist/testing/cross_backend/origin.js +4 -4
  458. package/dist/testing/cross_backend/peer_ping_ws.d.ts.map +1 -1
  459. package/dist/testing/cross_backend/peer_ping_ws.js +6 -6
  460. package/dist/testing/cross_backend/ready.d.ts.map +1 -1
  461. package/dist/testing/cross_backend/role_grant_offer_enumeration.d.ts.map +1 -1
  462. package/dist/testing/cross_backend/role_grant_offer_enumeration.js +1 -1
  463. package/dist/testing/cross_backend/role_grant_offer_notification_ws.d.ts.map +1 -1
  464. package/dist/testing/cross_backend/role_grant_offer_notification_ws.js +1 -1
  465. package/dist/testing/cross_backend/role_grant_participation.d.ts.map +1 -1
  466. package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts.map +1 -1
  467. package/dist/testing/cross_backend/rust_spine_stub_backend_config.js +5 -5
  468. package/dist/testing/cross_backend/setup.d.ts.map +1 -1
  469. package/dist/testing/cross_backend/setup.js +41 -37
  470. package/dist/testing/cross_backend/spawn_backend.d.ts.map +1 -1
  471. package/dist/testing/cross_backend/spawn_backend.js +1 -1
  472. package/dist/testing/cross_backend/sse_round_trip.d.ts.map +1 -1
  473. package/dist/testing/cross_backend/sse_round_trip.js +10 -7
  474. package/dist/testing/cross_backend/standard.d.ts.map +1 -1
  475. package/dist/testing/cross_backend/standard.js +5 -5
  476. package/dist/testing/cross_backend/testing_backdoor.d.ts.map +1 -1
  477. package/dist/testing/cross_backend/testing_backdoor.js +7 -7
  478. package/dist/testing/cross_backend/testing_reset_actions.d.ts.map +1 -1
  479. package/dist/testing/cross_backend/testing_reset_actions.js +24 -23
  480. package/dist/testing/cross_backend/testing_server_bun.d.ts.map +1 -1
  481. package/dist/testing/cross_backend/testing_server_bun.js +3 -3
  482. package/dist/testing/cross_backend/testing_server_core.d.ts.map +1 -1
  483. package/dist/testing/cross_backend/testing_server_core.js +1 -1
  484. package/dist/testing/cross_backend/testing_server_deno.d.ts.map +1 -1
  485. package/dist/testing/cross_backend/testing_server_deno.js +1 -1
  486. package/dist/testing/cross_backend/testing_server_node.d.ts.map +1 -1
  487. package/dist/testing/cross_backend/testing_server_node.js +3 -3
  488. package/dist/testing/cross_backend/ts_spine_backend_config.d.ts.map +1 -1
  489. package/dist/testing/cross_backend/ts_spine_backend_config.js +13 -13
  490. package/dist/testing/cross_backend/ws_round_trip.d.ts.map +1 -1
  491. package/dist/testing/cross_backend/ws_round_trip.js +2 -2
  492. package/dist/testing/data_exposure.d.ts.map +1 -1
  493. package/dist/testing/data_exposure.js +8 -8
  494. package/dist/testing/db.d.ts.map +1 -1
  495. package/dist/testing/db.js +3 -3
  496. package/dist/testing/db_entities.d.ts.map +1 -1
  497. package/dist/testing/db_entities.js +1 -1
  498. package/dist/testing/entities.d.ts.map +1 -1
  499. package/dist/testing/entities.js +5 -5
  500. package/dist/testing/error_coverage.d.ts.map +1 -1
  501. package/dist/testing/integration.d.ts.map +1 -1
  502. package/dist/testing/integration.js +109 -109
  503. package/dist/testing/integration_helpers.d.ts.map +1 -1
  504. package/dist/testing/integration_helpers.js +3 -3
  505. package/dist/testing/middleware.d.ts.map +1 -1
  506. package/dist/testing/middleware.js +11 -11
  507. package/dist/testing/mock_fs.js +1 -1
  508. package/dist/testing/rate_limiting.d.ts.map +1 -1
  509. package/dist/testing/rate_limiting.js +23 -23
  510. package/dist/testing/role_grant_helpers.d.ts.map +1 -1
  511. package/dist/testing/role_grant_helpers.js +3 -3
  512. package/dist/testing/round_trip.d.ts.map +1 -1
  513. package/dist/testing/round_trip.js +6 -6
  514. package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
  515. package/dist/testing/rpc_attack_surface.js +12 -12
  516. package/dist/testing/rpc_helpers.d.ts.map +1 -1
  517. package/dist/testing/rpc_helpers.js +11 -11
  518. package/dist/testing/rpc_round_trip.d.ts.map +1 -1
  519. package/dist/testing/rpc_round_trip.js +3 -3
  520. package/dist/testing/schema_generators.d.ts.map +1 -1
  521. package/dist/testing/schema_generators.js +3 -3
  522. package/dist/testing/schema_introspect.d.ts.map +1 -1
  523. package/dist/testing/schema_introspect.js +12 -12
  524. package/dist/testing/schema_parity.d.ts.map +1 -1
  525. package/dist/testing/schema_parity.js +7 -7
  526. package/dist/testing/schema_ready_fixture.d.ts.map +1 -1
  527. package/dist/testing/sse_round_trip.d.ts.map +1 -1
  528. package/dist/testing/sse_round_trip.js +8 -8
  529. package/dist/testing/standard.d.ts.map +1 -1
  530. package/dist/testing/standard.js +8 -8
  531. package/dist/testing/stubs.d.ts +6 -6
  532. package/dist/testing/stubs.d.ts.map +1 -1
  533. package/dist/testing/stubs.js +26 -23
  534. package/dist/testing/surface_invariants.d.ts.map +1 -1
  535. package/dist/testing/surface_invariants.js +5 -5
  536. package/dist/testing/testing_rate_limiter.d.ts.map +1 -1
  537. package/dist/testing/transports/bootstrap.d.ts.map +1 -1
  538. package/dist/testing/transports/bootstrap.js +4 -4
  539. package/dist/testing/transports/fetch_transport.d.ts.map +1 -1
  540. package/dist/testing/transports/sse_frame_reader.d.ts.map +1 -1
  541. package/dist/testing/transports/sse_transport.js +1 -1
  542. package/dist/testing/transports/ws_client.d.ts.map +1 -1
  543. package/dist/testing/transports/ws_client.js +1 -1
  544. package/dist/testing/transports/ws_transport.js +4 -4
  545. package/dist/testing/ws_round_trip.d.ts.map +1 -1
  546. package/dist/testing/ws_round_trip.js +21 -21
  547. package/dist/ui/AccountSessions.svelte +11 -11
  548. package/dist/ui/AdminAccounts.svelte +10 -10
  549. package/dist/ui/AdminAuditLog.svelte +14 -14
  550. package/dist/ui/AdminInvites.svelte +13 -13
  551. package/dist/ui/AdminOverview.svelte +22 -22
  552. package/dist/ui/AdminRoleGrantHistory.svelte +11 -11
  553. package/dist/ui/AdminSessions.svelte +12 -12
  554. package/dist/ui/AdminSettings.svelte +1 -1
  555. package/dist/ui/AdminSurface.svelte +3 -3
  556. package/dist/ui/AppShell.svelte +8 -8
  557. package/dist/ui/AppShell.svelte.d.ts.map +1 -1
  558. package/dist/ui/BootstrapForm.svelte +9 -9
  559. package/dist/ui/CLAUDE.md +1 -1
  560. package/dist/ui/ColumnLayout.svelte +2 -2
  561. package/dist/ui/ColumnLayout.svelte.d.ts.map +1 -1
  562. package/dist/ui/ConfirmButton.svelte +8 -8
  563. package/dist/ui/ConfirmButton.svelte.d.ts.map +1 -1
  564. package/dist/ui/Datatable.svelte +6 -6
  565. package/dist/ui/Datatable.svelte.d.ts.map +1 -1
  566. package/dist/ui/LoginForm.svelte +6 -6
  567. package/dist/ui/LogoutButton.svelte +2 -2
  568. package/dist/ui/LogoutButton.svelte.d.ts.map +1 -1
  569. package/dist/ui/MenuLink.svelte +5 -5
  570. package/dist/ui/MenuLink.svelte.d.ts.map +1 -1
  571. package/dist/ui/OpenSignupToggle.svelte +2 -2
  572. package/dist/ui/PopoverButton.svelte +10 -10
  573. package/dist/ui/PopoverButton.svelte.d.ts.map +1 -1
  574. package/dist/ui/RoleGrantOfferForm.svelte +8 -11
  575. package/dist/ui/RoleGrantOfferForm.svelte.d.ts.map +1 -1
  576. package/dist/ui/RoleGrantOfferHistory.svelte +11 -11
  577. package/dist/ui/RoleGrantOfferHistory.svelte.d.ts.map +1 -1
  578. package/dist/ui/RoleGrantOfferInbox.svelte +6 -6
  579. package/dist/ui/RoleGrantOfferInbox.svelte.d.ts.map +1 -1
  580. package/dist/ui/SignupForm.svelte +9 -9
  581. package/dist/ui/SurfaceExplorer.svelte +11 -11
  582. package/dist/ui/SurfaceExplorer.svelte.d.ts.map +1 -1
  583. package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -1
  584. package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
  585. package/dist/ui/admin_accounts_state.svelte.js +2 -2
  586. package/dist/ui/admin_invites_state.svelte.d.ts.map +1 -1
  587. package/dist/ui/admin_rpc_adapters.d.ts.map +1 -1
  588. package/dist/ui/admin_rpc_adapters.js +5 -5
  589. package/dist/ui/admin_sessions_state.svelte.d.ts.map +1 -1
  590. package/dist/ui/app_settings_state.svelte.d.ts.map +1 -1
  591. package/dist/ui/async_slot.svelte.d.ts.map +1 -1
  592. package/dist/ui/audit_log_state.svelte.d.ts.map +1 -1
  593. package/dist/ui/audit_log_state.svelte.js +1 -1
  594. package/dist/ui/auth_state.svelte.js +4 -4
  595. package/dist/ui/form_state.svelte.d.ts.map +1 -1
  596. package/dist/ui/format_scope.d.ts.map +1 -1
  597. package/dist/ui/keyed_async_slot.svelte.d.ts.map +1 -1
  598. package/dist/ui/popover.svelte.d.ts.map +1 -1
  599. package/dist/ui/popover.svelte.js +1 -1
  600. package/dist/ui/position_helpers.js +1 -1
  601. package/dist/ui/role_grant_offers_state.svelte.d.ts.map +1 -1
  602. package/dist/ui/role_grant_offers_state.svelte.js +1 -1
  603. package/dist/ui/table_state.svelte.d.ts.map +1 -1
  604. package/dist/ui/ui_fetch.d.ts.map +1 -1
  605. package/dist/ui/ui_format.js +2 -2
  606. package/package.json +13 -12
  607. package/dist/server/fact_write.d.ts +0 -32
  608. package/dist/server/fact_write.d.ts.map +0 -1
  609. package/dist/server/fact_write.js +0 -56
  610. package/dist/server/validate_nginx.d.ts +0 -34
  611. package/dist/server/validate_nginx.d.ts.map +0 -1
  612. package/dist/server/validate_nginx.js +0 -169
@@ -1 +1 @@
1
- {"version":3,"file":"compile_action_registry.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/compile_action_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAI/C,oDAAoD;AACpD,MAAM,WAAW,2BAA2B;IAC3C;;;;;OAKG;IACH,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GACnC,SAAS,aAAa,CAAC,MAAM,CAAC,EAC9B,WAAW,MAAM,KACf,2BAwCF,CAAC"}
1
+ {"version":3,"file":"compile_action_registry.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/compile_action_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,oDAAoD;AACpD,MAAM,WAAW,2BAA2B;IAC3C;;;;;OAKG;IACH,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GACnC,SAAS,aAAa,CAAC,MAAM,CAAC,EAC9B,WAAW,MAAM,KACf,2BAwCF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"frontend_rpc_client.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/frontend_rpc_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAGN,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEtD,gDAAgD;AAChD,MAAM,WAAW,8BAA8B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAC3E;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACtC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACpE;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;CACxE;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB,CAAC,IAAI;IACtC;;;;OAIG;IACH,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;OAKG;IACH,UAAU,EAAE,IAAI,CAAC;IACjB,0GAA0G;IAC1G,IAAI,EAAE,gBAAgB,CAAC;IACvB,sHAAsH;IACtH,WAAW,EAAE,sBAAsB,CAAC;CACpC;AAED,sFAAsF;AACtF,eAAO,MAAM,0BAA0B,GAAI,IAAI,SAAS,MAAM,EAC7D,SAAS,8BAA8B,CAAC,IAAI,CAAC,KAC3C,iBAAiB,CAAC,IAAI,CAsBxB,CAAC"}
1
+ {"version":3,"file":"frontend_rpc_client.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/frontend_rpc_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAGN,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,gDAAgD;AAChD,MAAM,WAAW,8BAA8B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAC3E;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACtC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACpE;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;CACxE;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB,CAAC,IAAI;IACtC;;;;OAIG;IACH,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IACvB;;;;;OAKG;IACH,UAAU,EAAE,IAAI,CAAC;IACjB,0GAA0G;IAC1G,IAAI,EAAE,gBAAgB,CAAC;IACvB,sHAAsH;IACtH,WAAW,EAAE,sBAAsB,CAAC;CACpC;AAED,sFAAsF;AACtF,eAAO,MAAM,0BAA0B,GAAI,IAAI,SAAS,MAAM,EAC7D,SAAS,8BAA8B,CAAC,IAAI,CAAC,KAC3C,iBAAiB,CAAC,IAAI,CAsBxB,CAAC"}
@@ -49,14 +49,14 @@ import { ActionRegistry } from './action_registry.js';
49
49
  import { ActionDispatcher } from './action_dispatcher.js';
50
50
  import { Transports } from './transports.js';
51
51
  import { FrontendHttpTransport } from './transports_http.js';
52
- import { create_rpc_client, create_throwing_api, } from './rpc_client.js';
52
+ import { create_rpc_client, create_throwing_api } from './rpc_client.js';
53
53
  /** Build a frontend-only typed RPC client. See module doc for the bundle's design. */
54
54
  export const create_frontend_rpc_client = (options) => {
55
55
  const registry = new ActionRegistry([...options.specs]);
56
56
  const environment = {
57
57
  executor: 'frontend',
58
58
  lookup_action_spec: (method) => registry.spec_by_method.get(method),
59
- lookup_action_handler: options.lookup_action_handler ?? (() => undefined),
59
+ lookup_action_handler: options.lookup_action_handler ?? (() => undefined)
60
60
  };
61
61
  const transports = new Transports();
62
62
  if (options.transports) {
@@ -71,7 +71,7 @@ export const create_frontend_rpc_client = (options) => {
71
71
  peer,
72
72
  environment,
73
73
  on_action_event: options.on_action_event,
74
- transport_for_method: options.transport_for_method,
74
+ transport_for_method: options.transport_for_method
75
75
  });
76
76
  const api = create_throwing_api(api_result);
77
77
  return { api, api_result, peer, environment };
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAUG,CAAC;AAEtC,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,QAAO,MAAM,CAAC,MAAM,EAAE,KAAK,CAAS,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAG9B,CAAC"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAUG,CAAC;AAEtC,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,QAAO,MAAM,CAAC,MAAM,EAAE,KAAK,CAAS,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAG9B,CAAC"}
@@ -33,7 +33,7 @@ export const heartbeat_action_spec = {
33
33
  input: z.strictObject({}).default({}),
34
34
  output: z.strictObject({}),
35
35
  async: true,
36
- description: 'Shared activity ping — keeps the socket alive and exercises the dispatch path.',
36
+ description: 'Shared activity ping — keeps the socket alive and exercises the dispatch path.'
37
37
  };
38
38
  /** Handler — nullary echo. Stateless, suitable for high-frequency pings. */
39
39
  export const heartbeat_handler = () => ({});
@@ -47,5 +47,5 @@ export const heartbeat_handler = () => ({});
47
47
  */
48
48
  export const heartbeat_action = {
49
49
  spec: heartbeat_action_spec,
50
- handler: heartbeat_handler,
50
+ handler: heartbeat_handler
51
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"peer_ping.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/peer_ping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,KAAK,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG9D,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAIvC,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,iDAAiD;AACjD,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,iHAAiH;AACjH,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,sEAAsE;AACtE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,qFAAqF;AACrF,eAAO,MAAM,+BAA+B,6BAA6B,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;mBAQf,CAAC;AACd,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB;;kBAE5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,YAAY;;;kBAGvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;CAYG,CAAC;AA+BtC;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC7B,OAAO,eAAe,EACtB,KAAK,aAAa,KAChB,OAAO,CAAC,YAAY,CAqCtB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,OAAO,KAAG,YAGrD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAG9B,CAAC"}
1
+ {"version":3,"file":"peer_ping.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/peer_ping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGhE,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAIvC,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,iDAAiD;AACjD,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,iHAAiH;AACjH,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,sEAAsE;AACtE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,0EAA0E;AAC1E,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AACxE,qFAAqF;AACrF,eAAO,MAAM,+BAA+B,6BAA6B,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;mBAQf,CAAC;AACd,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB;;kBAE5B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,YAAY;;;kBAGvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;CAYG,CAAC;AA+BtC;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC7B,OAAO,eAAe,EACtB,KAAK,aAAa,KAChB,OAAO,CAAC,YAAY,CAqCtB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,OAAO,KAAG,YAGrD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAG9B,CAAC"}
@@ -68,7 +68,7 @@ export const REASON_PEER_PING_NONCE_MISMATCH = 'peer_ping_nonce_mismatch';
68
68
  export const PingActionInput = z
69
69
  .strictObject({
70
70
  nonce: z.number().int().optional(),
71
- timeout_ms: z.number().int().positive().optional(),
71
+ timeout_ms: z.number().int().positive().optional()
72
72
  })
73
73
  // `.default({})` so omitting `params` entirely (undefined) is accepted — both
74
74
  // fields are optional, so an empty invocation is valid (server-issued nonce,
@@ -76,7 +76,7 @@ export const PingActionInput = z
76
76
  .default({});
77
77
  /** Params of the server→client `peer/ping` request frame. Twin of the Rust `PingRequest`. */
78
78
  export const PingRequestParams = z.strictObject({
79
- nonce: z.number().int(),
79
+ nonce: z.number().int()
80
80
  });
81
81
  /**
82
82
  * The client's reply shape — also the action's output (the handler returns the
@@ -84,7 +84,7 @@ export const PingRequestParams = z.strictObject({
84
84
  */
85
85
  export const PingResponse = z.strictObject({
86
86
  nonce: z.number().int(),
87
- protocol_version: z.number().int(),
87
+ protocol_version: z.number().int()
88
88
  });
89
89
  /**
90
90
  * `ActionSpec` for the shared `peer/ping`. `initiator: 'both'` (the
@@ -102,7 +102,7 @@ export const peer_ping_action_spec = {
102
102
  output: PingResponse,
103
103
  async: true,
104
104
  description: 'Liveness round-trip — the handler pings the originating client back over its socket, ' +
105
- 'validates the echo, and returns it. Refused as no-transport over HTTP RPC.',
105
+ 'validates the echo, and returns it. Refused as no-transport over HTTP RPC.'
106
106
  };
107
107
  /** Monotonic fallback nonce when the caller omits one — mirrors the Rust `next_nonce`. */
108
108
  let next_ping_nonce = 0;
@@ -111,7 +111,7 @@ const peer_request_error_to_jsonrpc = (error) => {
111
111
  switch (error.kind) {
112
112
  case 'timeout':
113
113
  return new ThrownJsonrpcError(JSONRPC_ERROR_CODES.timeout, 'peer request timed out', {
114
- reason: REASON_PEER_TIMEOUT,
114
+ reason: REASON_PEER_TIMEOUT
115
115
  });
116
116
  case 'connection_gone':
117
117
  return new ThrownJsonrpcError(JSONRPC_ERROR_CODES.service_unavailable, 'peer connection gone', { reason: REASON_PEER_CONNECTION_GONE });
@@ -185,5 +185,5 @@ export const peer_ping_responder = (params) => {
185
185
  */
186
186
  export const peer_ping_action = {
187
187
  spec: peer_ping_action_spec,
188
- handler: peer_ping_handler,
188
+ handler: peer_ping_handler
189
189
  };
@@ -1 +1 @@
1
- {"version":3,"file":"peer_request.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/peer_request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,KAAK,EACX,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,MAAM,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAC,IAAI,EAAE,SAAS,CAAA;CAAC,GACjB;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAC,GACzB;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAC,GAC5B;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAC,CAAC;AAErD,uGAAuG;AACvG,MAAM,MAAM,kBAAkB,GAC3B;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAC,GAChC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAC,CAAC;AAExC,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IAClC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,OAAO,CAAC,EAAE,kBAAkB,KACxB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAUjC,yCAAyC;AACzC,MAAM,WAAW,0BAA0B;IAC1C,8FAA8F;IAC9F,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;;gBAUnB,OAAO,CAAC,EAAE,0BAA0B;IAMhD;;;;;;;;;OASG;IACH,QAAQ,CACP,aAAa,EAAE,IAAI,EACnB,UAAU,CAAC,EAAE,MAAM,GACjB;QAAC,EAAE,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAC,GAAG,IAAI;IAkBtE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,oBAAoB,GAAG,OAAO;IAWvF;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAUpF;;;;;OAKG;IACH,KAAK,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI;IAUhC;;;OAGG;IACH,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,GAAG,MAAM;CAMlC;AAKD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GACzC,KAAK,MAAM,EACX,eAAe,IAAI,EACnB,IAAI,gBAAgB,GAAG,IAAI,KACzB,IAQF,CAAC"}
1
+ {"version":3,"file":"peer_request.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/peer_request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,EACX,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAS,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,0CAA0C,MAAM,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACzB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEvD,uGAAuG;AACvG,MAAM,MAAM,kBAAkB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE7E,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IAClC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,OAAO,CAAC,EAAE,kBAAkB,KACxB,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAUjC,yCAAyC;AACzC,MAAM,WAAW,0BAA0B;IAC1C,8FAA8F;IAC9F,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,qFAAqF;IACrF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;;gBAUnB,OAAO,CAAC,EAAE,0BAA0B;IAMhD;;;;;;;;;OASG;IACH,QAAQ,CACP,aAAa,EAAE,IAAI,EACnB,UAAU,CAAC,EAAE,MAAM,GACjB;QAAE,EAAE,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAAE,GAAG,IAAI;IAkBxE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,oBAAoB,GAAG,OAAO;IAWvF;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAUpF;;;;;OAKG;IACH,KAAK,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI;IAUhC;;;OAGG;IACH,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,GAAG,MAAM;CAMlC;AAKD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,6BAA6B,GACzC,KAAK,MAAM,EACX,eAAe,IAAI,EACnB,IAAI,gBAAgB,GAAG,IAAI,KACzB,IAQF,CAAC"}
@@ -46,6 +46,7 @@ import { type JsonrpcRequestId, type JsonrpcErrorObject } from '../http/jsonrpc.
46
46
  import type { RateLimiter } from '../rate_limiter.js';
47
47
  import type { RpcAction } from './action_rpc.js';
48
48
  import type { RequestClient } from './peer_request.js';
49
+ import { type TokenScope } from '../auth/token_scope.js';
49
50
  /**
50
51
  * Per-call inputs to `perform_action`. Each transport assembles this from
51
52
  * its wire envelope + connection identity.
@@ -61,6 +62,13 @@ export interface PerformActionInput {
61
62
  account_id: string | null;
62
63
  /** Credential type the request arrived on, or `null` for anonymous. */
63
64
  credential_type: CredentialType | null;
65
+ /**
66
+ * The credential's authority narrowing — `null` only for the anonymous
67
+ * caller, who holds no credential to narrow. Every resolved credential
68
+ * carries one, so this mirrors the `null` shape `credential_type` already
69
+ * has rather than introducing a permissive absent case.
70
+ */
71
+ token_scope: TokenScope | null;
64
72
  /** Resolved client IP (`'unknown'` if upstream couldn't resolve). */
65
73
  client_ip: string;
66
74
  /** Per-request abort signal. HTTP: `c.req.raw.signal`. WS: `AbortSignal.any([socket, request])`. */
@@ -1 +1 @@
1
- {"version":3,"file":"perform_action.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/perform_action.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAGN,KAAK,cAAc,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,aAAa,CAAC;AAGpC,OAAO,EAEN,KAAK,gBAAgB,EAErB,KAAK,kBAAkB,EACvB,MAAM,oBAAoB,CAAC;AAa5B,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAA+B,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,kEAAkE;IAClE,MAAM,EAAE,SAAS,CAAC;IAClB,mGAAmG;IACnG,UAAU,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,UAAU,EAAE,gBAAgB,CAAC;IAC7B,yDAAyD;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uEAAuE;IACvE,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,MAAM,EAAE,WAAW,CAAC;IACpB,sFAAsF;IACtF,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,uDAAuD;IACvD,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE;QAAC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAA;KAAC,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IACjC,gGAAgG;IAChG,EAAE,EAAE,EAAE,CAAC;IACP;;;OAGG;IACH,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC;;;OAGG;IACH,mBAAmB,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,sBAAsB,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,uEAAuE;IACvE,2BAA2B,EAAE,WAAW,GAAG,IAAI,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAC5B;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAC7B;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAC1B,OAAO,kBAAkB,EACzB,MAAM,iBAAiB,KACrB,OAAO,CAAC,mBAAmB,CAsK7B,CAAC;AAoFF;;;GAGG;AACH,eAAO,MAAM,iCAAiC,GAC7C,IAAI,gBAAgB,EACpB,QAAQ,mBAAmB,KACzB;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,gBAAgB,CAAA;CAAC,GAAG,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,GAAG;IAAC,KAAK,EAAE,kBAAkB,CAAA;CAAC,CAK5F,CAAC"}
1
+ {"version":3,"file":"perform_action.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/perform_action.ts"],"names":[],"mappings":"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"}
@@ -38,14 +38,15 @@
38
38
  * @module
39
39
  */
40
40
  import { DEV } from 'esm-env';
41
- import { apply_authorization_phase, has_any_scoped_role, } from '../auth/request_context.js';
41
+ import { apply_authorization_phase, has_any_scoped_role } from '../auth/request_context.js';
42
42
  import {} from '../hono_context.js';
43
43
  import { is_void_schema } from '../http/schema_helpers.js';
44
44
  import { dispatch_with_post_commit_rollback } from '../http/pending_effects.js';
45
- import { JSONRPC_VERSION, } from '../http/jsonrpc.js';
46
- import { jsonrpc_error_messages, jsonrpc_error_code_to_http_status, http_status_to_jsonrpc_error_code, JSONRPC_ERROR_CODES, dev_only, } from '../http/jsonrpc_errors.js';
47
- import { ERROR_AUTHENTICATION_REQUIRED, ERROR_INSUFFICIENT_PERMISSIONS, ERROR_CREDENTIAL_TYPE_REQUIRED, } from '../http/error_schemas.js';
45
+ import { JSONRPC_VERSION } from '../http/jsonrpc.js';
46
+ import { jsonrpc_error_messages, jsonrpc_error_code_to_http_status, http_status_to_jsonrpc_error_code, JSONRPC_ERROR_CODES, dev_only } from '../http/jsonrpc_errors.js';
47
+ import { ERROR_AUTHENTICATION_REQUIRED, ERROR_INSUFFICIENT_PERMISSIONS, ERROR_CREDENTIAL_TYPE_REQUIRED, ERROR_TOKEN_SCOPE_REQUIRED } from '../http/error_schemas.js';
48
48
  import { is_public_auth } from '../http/auth_shape.js';
49
+ import { token_scope_admits_method } from '../auth/token_scope.js';
49
50
  /**
50
51
  * The shared dispatch core. Pure data — no Hono context, no socket. Each
51
52
  * transport calls into this with pre-parsed inputs and binds the result
@@ -57,8 +58,8 @@ import { is_public_auth } from '../http/auth_shape.js';
57
58
  * still fires when the harness omits `account_id`.
58
59
  */
59
60
  export const perform_action = async (input, deps) => {
60
- const { action, raw_params, request_id: id, account_id, credential_type, client_ip, signal, notify, connection_id, request_client, preset, } = input;
61
- const { db, pending_effects, post_commit_effects, log, action_ip_rate_limiter, action_account_rate_limiter, } = deps;
61
+ const { action, raw_params, request_id: id, account_id, credential_type, token_scope, client_ip, signal, notify, connection_id, request_client, preset } = input;
62
+ const { db, pending_effects, post_commit_effects, log, action_ip_rate_limiter, action_account_rate_limiter } = deps;
62
63
  const { spec, handler } = action;
63
64
  const action_auth = spec.auth;
64
65
  // step 1: pre-validation auth — 401 short-circuit before input validation.
@@ -94,7 +95,7 @@ export const perform_action = async (input, deps) => {
94
95
  return {
95
96
  kind: 'error',
96
97
  status: result.status,
97
- error: { code, message: reason, data: { reason, ...rest } },
98
+ error: { code, message: reason, data: { reason, ...rest } }
98
99
  };
99
100
  }
100
101
  // `request_context: null` covers public actions and the
@@ -102,7 +103,7 @@ export const perform_action = async (input, deps) => {
102
103
  request_context = result.request_context;
103
104
  }
104
105
  // step 4: post-authorization auth — credential gate first, role gate second.
105
- const post = check_action_auth_post_authorization(action_auth, request_context, credential_type);
106
+ const post = check_action_auth_post_authorization(action_auth, request_context, credential_type, action.spec.method, token_scope);
106
107
  if (post)
107
108
  return error_result(post);
108
109
  // step 5: rate limit — throttle-requests semantics (record on every
@@ -147,7 +148,7 @@ export const perform_action = async (input, deps) => {
147
148
  credential_type,
148
149
  log,
149
150
  notify,
150
- signal,
151
+ signal
151
152
  };
152
153
  const output = await handler(validated_input, action_context);
153
154
  // DEV-only output validation — logs on mismatch, never throws.
@@ -191,14 +192,14 @@ export const perform_action = async (input, deps) => {
191
192
  const error_result = (error) => ({
192
193
  kind: 'error',
193
194
  error,
194
- status: jsonrpc_error_code_to_http_status(error.code),
195
+ status: jsonrpc_error_code_to_http_status(error.code)
195
196
  });
196
197
  const rate_limited_result = (retry_after) => {
197
198
  const error = jsonrpc_error_messages.rate_limited('rate limited', { retry_after });
198
199
  return {
199
200
  kind: 'error',
200
201
  error,
201
- status: jsonrpc_error_code_to_http_status(JSONRPC_ERROR_CODES.rate_limited),
202
+ status: jsonrpc_error_code_to_http_status(JSONRPC_ERROR_CODES.rate_limited)
202
203
  };
203
204
  };
204
205
  /**
@@ -219,7 +220,7 @@ const check_action_auth_pre_validation = (auth, account_id) => {
219
220
  // just status. The reason is generic — it leaks nothing about
220
221
  // whether a credential was present or what the route demanded.
221
222
  return jsonrpc_error_messages.unauthenticated('unauthenticated', {
222
- reason: ERROR_AUTHENTICATION_REQUIRED,
223
+ reason: ERROR_AUTHENTICATION_REQUIRED
223
224
  });
224
225
  }
225
226
  }
@@ -230,30 +231,47 @@ const check_action_auth_pre_validation = (auth, account_id) => {
230
231
  * resolved the actor + role_grants. Enforces `auth.credential_types` and
231
232
  * `auth.roles`.
232
233
  *
233
- * Credential gate fires first: if the spec restricts credential types
234
- * and the request didn't arrive on one of them, emit
235
- * `ERROR_CREDENTIAL_TYPE_REQUIRED` 403 with `required_credential_types`
236
- * echoing the spec's allowlist (symmetric with the role gate's
237
- * `required_roles`).
234
+ * ## Gate order: credential → scope → role
238
235
  *
239
- * Role gate fires second: if the spec declares any roles and the actor
240
- * doesn't hold one globally, emit `ERROR_INSUFFICIENT_PERMISSIONS` 403
241
- * with `required_roles` (the multi-role disjunction).
236
+ * **Credential first** because it is the coarser fact ("this channel may never
237
+ * call me" outranks "this token may not"), because it preserves every existing
238
+ * wire assertion — a session-only spec called over bearer keeps returning
239
+ * `ERROR_CREDENTIAL_TYPE_REQUIRED` — and because it leaks less: telling a
240
+ * bearer caller "your token lacks `rpc:X`" on an endpoint no bearer may ever
241
+ * reach confirms the endpoint to a channel that should not learn it.
242
+ *
243
+ * **Scope second**, before the role gate, because scope is a fact about the
244
+ * credential decided without a DB read, while the role gate reads the resolved
245
+ * actor's grants. Coarse → fine, and an under-scoped token learns nothing about
246
+ * the deployment's role structure. `token_scope` is `null` only for the
247
+ * anonymous caller, who has no credential to narrow.
248
+ *
249
+ * **Role gate third**: if the spec declares any roles and the actor doesn't hold
250
+ * one globally, emit `ERROR_INSUFFICIENT_PERMISSIONS` 403 with `required_roles`
251
+ * (the multi-role disjunction).
242
252
  */
243
- const check_action_auth_post_authorization = (auth, request_context, credential_type) => {
253
+ const check_action_auth_post_authorization = (auth, request_context, credential_type, method, token_scope) => {
244
254
  if (auth.credential_types?.length) {
245
255
  if (!credential_type || !auth.credential_types.includes(credential_type)) {
246
256
  return jsonrpc_error_messages.forbidden('forbidden', {
247
257
  reason: ERROR_CREDENTIAL_TYPE_REQUIRED,
248
- required_credential_types: auth.credential_types,
258
+ required_credential_types: auth.credential_types
249
259
  });
250
260
  }
251
261
  }
262
+ // Token-scope gate — second of three. See the doc comment for why the order
263
+ // is credential → scope → role.
264
+ if (token_scope && !token_scope_admits_method(token_scope, method)) {
265
+ return jsonrpc_error_messages.forbidden('forbidden', {
266
+ reason: ERROR_TOKEN_SCOPE_REQUIRED,
267
+ required_scope: `rpc:${method}`
268
+ });
269
+ }
252
270
  if (auth.roles?.length) {
253
271
  if (!has_any_scoped_role(request_context, auth.roles, null)) {
254
272
  return jsonrpc_error_messages.forbidden(`requires role: ${auth.roles.join(' or ')}`, {
255
273
  reason: ERROR_INSUFFICIENT_PERMISSIONS,
256
- required_roles: auth.roles,
274
+ required_roles: auth.roles
257
275
  });
258
276
  }
259
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAK9C;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAIlD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,eAAe,CAEhE,CAAC"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAIlD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,eAAe,CAEhE,CAAC"}
@@ -33,7 +33,7 @@ import { peer_ping_action } from './peer_ping.js';
33
33
  export const protocol_actions = [
34
34
  heartbeat_action,
35
35
  cancel_action,
36
- peer_ping_action,
36
+ peer_ping_action
37
37
  ];
38
38
  /**
39
39
  * Canonical protocol specs for `ActionRegistry` construction on the
@@ -1 +1 @@
1
- {"version":3,"file":"register_action_ws.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/register_action_ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC/B,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAS,KAAK,MAAM,IAAI,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAUjD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAkBpD,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,aAAa,CAAC;AACpC,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAI9C,OAAO,EAAC,yBAAyB,EAAE,KAAK,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAI9F,YAAY,EAAC,MAAM,EAAC,CAAC;AAErB,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC,qFAAqF;IACrF,EAAE,EAAE,SAAS,CAAC;IACd,4EAA4E;IAC5E,aAAa,EAAE,IAAI,CAAC;IACpB,oDAAoD;IACpD,QAAQ,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,wFAAwF;IACxF,MAAM,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC,+CAA+C;IAC/C,EAAE,EAAE,SAAS,CAAC;IACd,2CAA2C;IAC3C,aAAa,EAAE,IAAI,CAAC;IACpB,kGAAkG;IAClG,QAAQ,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACtC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wCAAwC;AACxC,MAAM,WAAW,uBAAuB;IACvC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,GAAG,EAAE,IAAI,CAAC;IACV,iEAAiE;IACjE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;;;;;;OAOG;IACH,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B;;;;;;;;;OASG;IACH,EAAE,EAAE,EAAE,CAAC;IACP;;;;OAIG;IACH,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAC7C,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5C;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACjD;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACtC,yEAAyE;IACzE,SAAS,EAAE,yBAAyB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,uBAAuB,KAAG,sBA6XrE,CAAC"}
1
+ {"version":3,"file":"register_action_ws.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/register_action_ws.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAU,KAAK,MAAM,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAWnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmBtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,yBAAyB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIhG,YAAY,EAAE,MAAM,EAAE,CAAC;AAEvB,0EAA0E;AAC1E,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC,qFAAqF;IACrF,EAAE,EAAE,SAAS,CAAC;IACd,4EAA4E;IAC5E,aAAa,EAAE,IAAI,CAAC;IACpB,oDAAoD;IACpD,QAAQ,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,wFAAwF;IACxF,MAAM,EAAE,WAAW,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC,+CAA+C;IAC/C,EAAE,EAAE,SAAS,CAAC;IACd,2CAA2C;IAC3C,aAAa,EAAE,IAAI,CAAC;IACpB,kGAAkG;IAClG,QAAQ,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACtC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wCAAwC;AACxC,MAAM,WAAW,uBAAuB;IACvC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,GAAG,EAAE,IAAI,CAAC;IACV,iEAAiE;IACjE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;;;;;;OAOG;IACH,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B;;;;;;;;;OASG;IACH,EAAE,EAAE,EAAE,CAAC;IACP;;;;OAIG;IACH,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAC7C,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5C;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACjD;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACtC,yEAAyE;IACzE,SAAS,EAAE,yBAAyB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,uBAAuB,KAAG,sBAuZrE,CAAC"}
@@ -28,13 +28,13 @@
28
28
  */
29
29
  import { wait } from '@fuzdev/fuz_util/async.ts';
30
30
  import { Logger } from '@fuzdev/fuz_util/log.ts';
31
- import { get_request_context, require_request_context, } from '../auth/request_context.js';
31
+ import { get_request_context, require_request_context, token_scope_surface_denial } from '../auth/request_context.js';
32
32
  import { hash_session_token } from '../auth/session_queries.js';
33
33
  import { get_client_ip } from '../http/client_ip.js';
34
34
  import { flush_pending_effects, flush_post_commit_effects } from '../http/pending_effects.js';
35
35
  import { jsonrpc_error_messages } from '../http/jsonrpc_errors.js';
36
- import { create_jsonrpc_error_response, create_jsonrpc_notification, to_jsonrpc_message_id, to_jsonrpc_params, is_jsonrpc_request, is_jsonrpc_response, is_jsonrpc_error_response, } from '../http/jsonrpc_helpers.js';
37
- import { CREDENTIAL_TYPE_KEY, AUTH_API_TOKEN_ID_KEY, TEST_CONTEXT_PRESET_KEY, } from '../hono_context.js';
36
+ import { create_jsonrpc_error_response, create_jsonrpc_notification, to_jsonrpc_message_id, to_jsonrpc_params, is_jsonrpc_request, is_jsonrpc_response, is_jsonrpc_error_response } from '../http/jsonrpc_helpers.js';
37
+ import { CREDENTIAL_TYPE_KEY, TOKEN_SCOPE_KEY, AUTH_API_TOKEN_ID_KEY, TEST_CONTEXT_PRESET_KEY } from '../hono_context.js';
38
38
  import {} from './action_types.js';
39
39
  import { compile_action_registry } from './compile_action_registry.js';
40
40
  import { cancel_action_spec, CancelNotificationParams } from './cancel.js';
@@ -69,7 +69,7 @@ export const DEFAULT_SERVER_HEARTBEAT_TIMEOUT = 60_000;
69
69
  * in the transport's internal maps via `add_connection` / `remove_connection`
70
70
  */
71
71
  export const register_action_ws = (options) => {
72
- const { path, app, upgradeWebSocket, actions, db, transport = new BackendWebsocketTransport(), heartbeat = true, artificial_delay = 0, log = new Logger('[ws]'), on_socket_open, on_socket_close, action_ip_rate_limiter = null, action_account_rate_limiter = null, } = options;
72
+ const { path, app, upgradeWebSocket, actions, db, transport = new BackendWebsocketTransport(), heartbeat = true, artificial_delay = 0, log = new Logger('[ws]'), on_socket_open, on_socket_close, action_ip_rate_limiter = null, action_account_rate_limiter = null } = options;
73
73
  // Build the dispatcher's per-method lookup. Only request_response
74
74
  // specs with a handler reach `action_map` — perform_action is the
75
75
  // only site that calls handlers, and it requires an `RpcAction`.
@@ -84,7 +84,25 @@ export const register_action_ws = (options) => {
84
84
  // itself — a dead-because-blocked socket is close enough to
85
85
  // dead-because-unresponsive that closing is arguably correct.
86
86
  const heartbeat_tick_interval = Math.max(100, Math.floor(heartbeat_timeout / 2));
87
- app.get(path, upgradeWebSocket((c) => {
87
+ app.get(path,
88
+ // Token-scope surface gate — a narrowed token cannot hold a socket.
89
+ //
90
+ // Mounted as pre-upgrade middleware rather than inside the
91
+ // `upgradeWebSocket` callback, which must return `WSEvents` and so has no
92
+ // way to produce a denial response.
93
+ //
94
+ // Rule 3, doing real work rather than being conservative for its own
95
+ // sake: server-initiated pushes (broadcasts, role-grant-offer
96
+ // notifications, peer requests) reach whatever the account's connection
97
+ // reaches, and there is no per-recipient filter to narrow them by. So a
98
+ // scoped token that could upgrade would observe far more than it was
99
+ // granted.
100
+ async (c, next) => {
101
+ const denied = token_scope_surface_denial(c, 'ws_upgrade');
102
+ if (denied)
103
+ return denied;
104
+ return next();
105
+ }, upgradeWebSocket((c) => {
88
106
  // Upgrade-time identity capture. `require_auth` middleware has
89
107
  // already rejected unauthenticated upgrades, so request_context is
90
108
  // non-null here. Per-message dispatch reads `account_id` +
@@ -103,6 +121,11 @@ export const register_action_ws = (options) => {
103
121
  const account_id = upgrade_context.account.id;
104
122
  const client_ip = get_client_ip(c);
105
123
  const credential_type = c.get(CREDENTIAL_TYPE_KEY);
124
+ // Captured at upgrade and consulted per message. Rule 3 rejects a
125
+ // narrowed token at the boundary below, so in practice this is always
126
+ // `full` on a live socket — but the per-message gate runs regardless,
127
+ // so the invariant is enforced rather than assumed.
128
+ const token_scope = c.get(TOKEN_SCOPE_KEY) ?? null;
106
129
  // Session-based connections have a token hash for targeted revocation.
107
130
  // Bearer/daemon connections pass null — still reachable via
108
131
  // `close_sockets_for_account` / `close_sockets_for_token`.
@@ -190,7 +213,7 @@ export const register_action_ws = (options) => {
190
213
  connection_id,
191
214
  identity,
192
215
  notify: notify_socket(ws),
193
- signal: socket_abort_controller.signal,
216
+ signal: socket_abort_controller.signal
194
217
  });
195
218
  }
196
219
  catch (error) {
@@ -317,7 +340,7 @@ export const register_action_ws = (options) => {
317
340
  : (request_method, request_params, request_options) => transport.request_connection(conn_id, request_method, request_params, request_options);
318
341
  const signal = AbortSignal.any([
319
342
  socket_abort_controller.signal,
320
- request_controller.signal,
343
+ request_controller.signal
321
344
  ]);
322
345
  try {
323
346
  const result = await perform_action({
@@ -326,19 +349,20 @@ export const register_action_ws = (options) => {
326
349
  request_id: id,
327
350
  account_id,
328
351
  credential_type,
352
+ token_scope,
329
353
  client_ip,
330
354
  signal,
331
355
  notify,
332
356
  connection_id: captured_connection_id,
333
357
  request_client,
334
- preset: upgrade_preset,
358
+ preset: upgrade_preset
335
359
  }, {
336
360
  db,
337
361
  pending_effects,
338
362
  post_commit_effects,
339
363
  log,
340
364
  action_ip_rate_limiter,
341
- action_account_rate_limiter,
365
+ action_account_rate_limiter
342
366
  });
343
367
  ws.send(JSON.stringify(perform_action_result_to_envelope(id, result)));
344
368
  }
@@ -356,7 +380,7 @@ export const register_action_ws = (options) => {
356
380
  await on_socket_close({
357
381
  ws,
358
382
  connection_id: captured_connection_id,
359
- identity,
383
+ identity
360
384
  });
361
385
  }
362
386
  catch (error) {
@@ -364,8 +388,11 @@ export const register_action_ws = (options) => {
364
388
  }
365
389
  }
366
390
  transport.remove_connection(ws);
367
- log.debug('ws closed', captured_connection_id, { code: event.code, reason: event.reason });
368
- },
391
+ log.debug('ws closed', captured_connection_id, {
392
+ code: event.code,
393
+ reason: event.reason
394
+ });
395
+ }
369
396
  };
370
397
  }));
371
398
  return { transport };
@@ -1 +1 @@
1
- {"version":3,"file":"register_ws_endpoint.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/register_ws_endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,0CAA0C;AAC1C,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE;;;;OAIG;IACH,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC;AAgDD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAChC,SAAS,yBAAyB,KAChC,sBAmBF,CAAC"}
1
+ {"version":3,"file":"register_ws_endpoint.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/register_ws_endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAYH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAEN,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,MAAM,yBAAyB,CAAC;AAEjC,0CAA0C;AAC1C,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE;;;;OAIG;IACH,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CACzC;AAgDD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,GAChC,SAAS,yBAAyB,KAChC,sBAmBF,CAAC"}
@@ -21,14 +21,14 @@
21
21
  * @module
22
22
  */
23
23
  import { Logger } from '@fuzdev/fuz_util/log.ts';
24
- import { apply_authorization_phase, REQUEST_CONTEXT_KEY, require_auth, require_role, } from '../auth/request_context.js';
24
+ import { apply_authorization_phase, REQUEST_CONTEXT_KEY, require_auth, require_role } from '../auth/request_context.js';
25
25
  import { verify_request_source } from '../http/origin.js';
26
26
  import { ACCOUNT_ID_KEY, TEST_CONTEXT_PRESET_KEY } from '../hono_context.js';
27
- import { register_action_ws, } from './register_action_ws.js';
27
+ import { register_action_ws } from './register_action_ws.js';
28
28
  /** Synthesized auth shape for WS upgrade: account + actor both required. */
29
29
  const WS_UPGRADE_AUTH = {
30
30
  account: 'required',
31
- actor: 'required',
31
+ actor: 'required'
32
32
  };
33
33
  /**
34
34
  * Upgrade-time authorization middleware. Resolves the acting actor for
@@ -1 +1 @@
1
- {"version":3,"file":"request_tracker.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/request_tracker.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAEN,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,MAAM,oBAAoB,CAAC;AAG5B,2DAA2D;AAC3D,KAAK,QAAQ,GAAG,MAAM,GAAG;IAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAC,CAAC;AAMxD,qBAAa,kBAAkB;IAC9B,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAiB;IACpC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAgB;gBAGlD,EAAE,EAAE,gBAAgB,EACpB,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAC1C,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS;CAQpC;AAED;;;GAGG;AACH,qBAAa,cAAc;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAmB;IAC7F,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAExB,kBAAkB,SAAU;IAIxC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,EAAE,gBAAgB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;IA6BrE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAkB7E;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,GAAG,IAAI;IAuB/E;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAiBlC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI;IAe1C;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAiB1C"}
1
+ {"version":3,"file":"request_tracker.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/request_tracker.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAmB,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAEN,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,MAAM,oBAAoB,CAAC;AAG5B,2DAA2D;AAC3D,KAAK,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAM1D,qBAAa,kBAAkB;IAC9B,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAiB;IACpC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAgB;gBAGlD,EAAE,EAAE,gBAAgB,EACpB,QAAQ,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAC1C,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS;CAQpC;AAED;;;GAGG;AACH,qBAAa,cAAc;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAmB;IAC7F,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;gBAExB,kBAAkB,SAAU;IAIxC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,EAAE,gBAAgB,GAAG,QAAQ,CAAC,sBAAsB,CAAC;IA6BrE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAkB7E;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,GAAG,IAAI;IAuB/E;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI;IAiBlC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI;IAe1C;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAiB1C"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import { create_deferred } from '@fuzdev/fuz_util/async.ts';
9
9
  import { SvelteMap } from 'svelte/reactivity';
10
- import { JSONRPC_INTERNAL_ERROR, } from '../http/jsonrpc.js';
10
+ import { JSONRPC_INTERNAL_ERROR } from '../http/jsonrpc.js';
11
11
  import { ThrownJsonrpcError, JSONRPC_ERROR_CODES } from '../http/jsonrpc_errors.js';
12
12
  const get_datetime_now = () => new Date().toISOString();
13
13
  // TODO what if this uses a tracker id param that's an opaque UUID but can be used for action association?
@@ -58,7 +58,7 @@ export class RequestTracker {
58
58
  this.reject_request(id, {
59
59
  jsonrpc: '2.0',
60
60
  id,
61
- error: { code: JSONRPC_INTERNAL_ERROR, message: `request timed out: ${id}` },
61
+ error: { code: JSONRPC_INTERNAL_ERROR, message: `request timed out: ${id}` }
62
62
  });
63
63
  }, this.request_timeout_ms);
64
64
  // Store the request tracker using the new class
@@ -1 +1 @@
1
- {"version":3,"file":"rpc_client.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/rpc_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAQvD,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAsB,KAAK,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAMxE,OAAO,KAAK,EAAC,gBAAgB,EAAE,2BAA2B,EAAC,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;AAM/E,uCAAuC;AACvC,MAAM,WAAW,sBAAsB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACnE,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,sBAAsB,CAAC;IACpC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACpE;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,iBAAiB,GAAI,IAAI,SAAS,MAAM,EACpD,SAAS,sBAAsB,CAAC,IAAI,CAAC,KACnC,IA4BF,CAAC;AAuDF;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;CAAG;AA6G5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,WAAW,CAAC,IAAI,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAClC,GAAG,IAAI,EAAE,MAAM,KAAK,KAChB,OAAO,CAAC,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,MAAM,CAAA;KAAC,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAC,CAAC,GACrE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GACnC,IAAI,CAAC,CAAC,CAAC;CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,MAAM,EAAE,YAAY,IAAI,KAAG,WAAW,CAAC,IAAI,CA8B3F,CAAC"}
1
+ {"version":3,"file":"rpc_client.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/rpc_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAM1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAC;AAM/E,uCAAuC;AACvC,MAAM,WAAW,sBAAsB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IACnE,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,sBAAsB,CAAC;IACpC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;IACpE;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,iBAAiB,GAAI,IAAI,SAAS,MAAM,EACpD,SAAS,sBAAsB,CAAC,IAAI,CAAC,KACnC,IA4BF,CAAC;AAuDF;;;;;GAKG;AACH,MAAM,WAAW,oBAAqB,SAAQ,2BAA2B;CAAG;AA6G5E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,WAAW,CAAC,IAAI,IAAI;KAC9B,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAClC,GAAG,IAAI,EAAE,MAAM,KAAK,KAChB,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,EAAE,MAAM,MAAM,CAAA;KAAE,EAAE;QAAE,KAAK,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC,GACzE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,GACnC,IAAI,CAAC,CAAC,CAAC;CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,mBAAmB,GAAI,IAAI,SAAS,MAAM,EAAE,YAAY,IAAI,KAAG,WAAW,CAAC,IAAI,CA8B3F,CAAC"}
@@ -11,7 +11,7 @@
11
11
  * @module
12
12
  */
13
13
  import { create_action_event } from './action_event.js';
14
- import { is_send_request, is_notification_send, extract_action_result, } from './action_event_helpers.js';
14
+ import { is_send_request, is_notification_send, extract_action_result } from './action_event_helpers.js';
15
15
  import { jsonrpc_error_messages } from '../http/jsonrpc_errors.js';
16
16
  /**
17
17
  * Creates a Proxy-based API from action specs.
@@ -52,7 +52,7 @@ export const create_rpc_client = (options) => {
52
52
  },
53
53
  has(_target, method) {
54
54
  return environment.lookup_action_spec(method) !== undefined;
55
- },
55
+ }
56
56
  });
57
57
  };
58
58
  const create_action_method = (peer, environment, spec, on_action_event, transport_for_method) => {
@@ -95,7 +95,7 @@ const create_async_local_call_method = (environment, spec, on_action_event) => {
95
95
  if (options?.signal?.aborted) {
96
96
  return {
97
97
  ok: false,
98
- error: jsonrpc_error_messages.internal_error(`${spec.method} aborted before execution`),
98
+ error: jsonrpc_error_messages.internal_error(`${spec.method} aborted before execution`)
99
99
  };
100
100
  }
101
101
  const event = create_action_event(environment, spec, input);
@@ -122,7 +122,7 @@ const create_request_response_method = (peer, environment, spec, on_action_event
122
122
  const response = await peer.send(event.data.request, {
123
123
  transport_name: options?.transport_name ?? transport_for_method?.(spec.method),
124
124
  signal: options?.signal,
125
- queue: options?.queue,
125
+ queue: options?.queue
126
126
  });
127
127
  event.transition('receive_response');
128
128
  // TODO @api shouldn't this happen in the peer like the other method calls?
@@ -144,7 +144,7 @@ const create_remote_notification_method = (peer, environment, spec, on_action_ev
144
144
  const send_result = await peer.send(event.data.notification, {
145
145
  transport_name: options?.transport_name ?? transport_for_method?.(spec.method),
146
146
  signal: options?.signal,
147
- queue: options?.queue,
147
+ queue: options?.queue
148
148
  });
149
149
  // Check if notification failed to send
150
150
  if (send_result !== null) {
@@ -211,7 +211,7 @@ export const create_throwing_api = (api_result) => {
211
211
  const e = r.error;
212
212
  throw Object.assign(new Error(e.message), {
213
213
  code: e.code,
214
- data: e.data,
214
+ data: e.data
215
215
  });
216
216
  }
217
217
  return result;
@@ -227,6 +227,6 @@ export const create_throwing_api = (api_result) => {
227
227
  return () => {
228
228
  throw new Error(`rpc method not found: ${prop}`);
229
229
  };
230
- },
230
+ }
231
231
  });
232
232
  };
@@ -1 +1 @@
1
- {"version":3,"file":"socket.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/socket.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/actions/socket.svelte.ts"],"names":[],"mappings":"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"}