@fuzdev/fuz_app 0.103.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.
Files changed (606) 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 +13 -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.map +1 -1
  34. package/dist/actions/perform_action.js +13 -13
  35. package/dist/actions/protocol.d.ts.map +1 -1
  36. package/dist/actions/protocol.js +1 -1
  37. package/dist/actions/register_action_ws.d.ts.map +1 -1
  38. package/dist/actions/register_action_ws.js +14 -11
  39. package/dist/actions/register_ws_endpoint.d.ts.map +1 -1
  40. package/dist/actions/register_ws_endpoint.js +3 -3
  41. package/dist/actions/request_tracker.svelte.d.ts.map +1 -1
  42. package/dist/actions/request_tracker.svelte.js +2 -2
  43. package/dist/actions/rpc_client.d.ts.map +1 -1
  44. package/dist/actions/rpc_client.js +7 -7
  45. package/dist/actions/socket.svelte.d.ts.map +1 -1
  46. package/dist/actions/socket.svelte.js +4 -3
  47. package/dist/actions/transports.d.ts.map +1 -1
  48. package/dist/actions/transports_http.d.ts.map +1 -1
  49. package/dist/actions/transports_http.js +7 -7
  50. package/dist/actions/transports_ws.d.ts.map +1 -1
  51. package/dist/actions/transports_ws.js +3 -3
  52. package/dist/actions/transports_ws_auth_guard.d.ts +4 -4
  53. package/dist/actions/transports_ws_auth_guard.d.ts.map +1 -1
  54. package/dist/actions/transports_ws_auth_guard.js +5 -5
  55. package/dist/actions/transports_ws_backend.d.ts.map +1 -1
  56. package/dist/actions/transports_ws_backend.js +2 -2
  57. package/dist/actions/ws_endpoint_spec.d.ts +2 -2
  58. package/dist/actions/ws_endpoint_spec.d.ts.map +1 -1
  59. package/dist/auth/CLAUDE.md +40 -18
  60. package/dist/auth/account_action_specs.d.ts +4 -4
  61. package/dist/auth/account_action_specs.d.ts.map +1 -1
  62. package/dist/auth/account_action_specs.js +18 -19
  63. package/dist/auth/account_actions.d.ts +3 -3
  64. package/dist/auth/account_actions.d.ts.map +1 -1
  65. package/dist/auth/account_actions.js +10 -10
  66. package/dist/auth/account_queries.d.ts.map +1 -1
  67. package/dist/auth/account_queries.js +6 -6
  68. package/dist/auth/account_route_schema.d.ts.map +1 -1
  69. package/dist/auth/account_route_schema.js +19 -19
  70. package/dist/auth/account_routes.d.ts +2 -2
  71. package/dist/auth/account_routes.d.ts.map +1 -1
  72. package/dist/auth/account_routes.js +27 -27
  73. package/dist/auth/account_schema.d.ts +13 -2
  74. package/dist/auth/account_schema.d.ts.map +1 -1
  75. package/dist/auth/account_schema.js +22 -11
  76. package/dist/auth/actor_lookup_action_specs.d.ts.map +1 -1
  77. package/dist/auth/actor_lookup_action_specs.js +5 -5
  78. package/dist/auth/actor_lookup_actions.d.ts +4 -2
  79. package/dist/auth/actor_lookup_actions.d.ts.map +1 -1
  80. package/dist/auth/actor_lookup_actions.js +3 -3
  81. package/dist/auth/actor_lookup_queries.d.ts.map +1 -1
  82. package/dist/auth/actor_search_action_specs.d.ts.map +1 -1
  83. package/dist/auth/actor_search_action_specs.js +6 -6
  84. package/dist/auth/actor_search_actions.d.ts +4 -2
  85. package/dist/auth/actor_search_actions.d.ts.map +1 -1
  86. package/dist/auth/actor_search_actions.js +5 -5
  87. package/dist/auth/actor_search_queries.d.ts.map +1 -1
  88. package/dist/auth/admin_action_specs.d.ts +2 -2
  89. package/dist/auth/admin_action_specs.d.ts.map +1 -1
  90. package/dist/auth/admin_action_specs.js +55 -55
  91. package/dist/auth/admin_actions.d.ts +5 -5
  92. package/dist/auth/admin_actions.d.ts.map +1 -1
  93. package/dist/auth/admin_actions.js +45 -44
  94. package/dist/auth/all_action_spec_registries.d.ts.map +1 -1
  95. package/dist/auth/all_action_spec_registries.js +1 -1
  96. package/dist/auth/all_cell_actions.d.ts.map +1 -1
  97. package/dist/auth/all_cell_actions.js +1 -1
  98. package/dist/auth/api_token.d.ts.map +1 -1
  99. package/dist/auth/api_token_queries.d.ts +7 -2
  100. package/dist/auth/api_token_queries.d.ts.map +1 -1
  101. package/dist/auth/api_token_queries.js +8 -3
  102. package/dist/auth/app_settings_queries.d.ts.map +1 -1
  103. package/dist/auth/app_settings_schema.d.ts.map +1 -1
  104. package/dist/auth/app_settings_schema.js +3 -3
  105. package/dist/auth/audit_emitter.d.ts +28 -20
  106. package/dist/auth/audit_emitter.d.ts.map +1 -1
  107. package/dist/auth/audit_emitter.js +37 -19
  108. package/dist/auth/audit_log_ddl.js +1 -1
  109. package/dist/auth/audit_log_queries.d.ts.map +1 -1
  110. package/dist/auth/audit_log_queries.js +2 -2
  111. package/dist/auth/audit_log_route_schema.d.ts.map +1 -1
  112. package/dist/auth/audit_log_route_schema.js +1 -1
  113. package/dist/auth/audit_log_routes.d.ts.map +1 -1
  114. package/dist/auth/audit_log_routes.js +3 -3
  115. package/dist/auth/audit_log_schema.d.ts +2 -2
  116. package/dist/auth/audit_log_schema.d.ts.map +1 -1
  117. package/dist/auth/audit_log_schema.js +69 -68
  118. package/dist/auth/auth_ddl.js +3 -3
  119. package/dist/auth/auth_guard_resolver.d.ts.map +1 -1
  120. package/dist/auth/bearer_auth.d.ts.map +1 -1
  121. package/dist/auth/bootstrap_account.d.ts.map +1 -1
  122. package/dist/auth/bootstrap_account.js +5 -5
  123. package/dist/auth/bootstrap_route_schema.d.ts.map +1 -1
  124. package/dist/auth/bootstrap_route_schema.js +6 -6
  125. package/dist/auth/bootstrap_routes.d.ts.map +1 -1
  126. package/dist/auth/bootstrap_routes.js +7 -7
  127. package/dist/auth/cell_action_specs.d.ts +227 -2
  128. package/dist/auth/cell_action_specs.d.ts.map +1 -1
  129. package/dist/auth/cell_action_specs.js +117 -39
  130. package/dist/auth/cell_actions.d.ts +34 -11
  131. package/dist/auth/cell_actions.d.ts.map +1 -1
  132. package/dist/auth/cell_actions.js +155 -41
  133. package/dist/auth/cell_audit_action_specs.d.ts.map +1 -1
  134. package/dist/auth/cell_audit_action_specs.js +4 -4
  135. package/dist/auth/cell_audit_actions.d.ts.map +1 -1
  136. package/dist/auth/cell_audit_actions.js +3 -3
  137. package/dist/auth/cell_audit_events.d.ts +1 -1
  138. package/dist/auth/cell_audit_events.d.ts.map +1 -1
  139. package/dist/auth/cell_audit_events.js +7 -6
  140. package/dist/auth/cell_audit_metadata.d.ts +15 -0
  141. package/dist/auth/cell_audit_metadata.d.ts.map +1 -1
  142. package/dist/auth/cell_audit_metadata.js +13 -2
  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 +2 -2
  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 +22 -20
  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.map +1 -1
  193. package/dist/auth/request_context.js +7 -7
  194. package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -1
  195. package/dist/auth/role_grant_offer_action_specs.js +35 -35
  196. package/dist/auth/role_grant_offer_actions.d.ts +7 -4
  197. package/dist/auth/role_grant_offer_actions.d.ts.map +1 -1
  198. package/dist/auth/role_grant_offer_actions.js +43 -43
  199. package/dist/auth/role_grant_offer_notifications.d.ts.map +1 -1
  200. package/dist/auth/role_grant_offer_notifications.js +13 -13
  201. package/dist/auth/role_grant_offer_queries.d.ts +1 -1
  202. package/dist/auth/role_grant_offer_queries.d.ts.map +1 -1
  203. package/dist/auth/role_grant_offer_queries.js +11 -11
  204. package/dist/auth/role_grant_offer_schema.d.ts.map +1 -1
  205. package/dist/auth/role_grant_offer_schema.js +7 -7
  206. package/dist/auth/role_grant_queries.d.ts.map +1 -1
  207. package/dist/auth/role_grant_queries.js +3 -3
  208. package/dist/auth/role_schema.d.ts.map +1 -1
  209. package/dist/auth/role_schema.js +7 -7
  210. package/dist/auth/scope_kind_schema.d.ts.map +1 -1
  211. package/dist/auth/self_service_role_action_specs.d.ts.map +1 -1
  212. package/dist/auth/self_service_role_action_specs.js +5 -5
  213. package/dist/auth/self_service_role_actions.d.ts +3 -3
  214. package/dist/auth/self_service_role_actions.d.ts.map +1 -1
  215. package/dist/auth/self_service_role_actions.js +9 -9
  216. package/dist/auth/session_cookie.d.ts.map +1 -1
  217. package/dist/auth/session_cookie.js +3 -3
  218. package/dist/auth/session_middleware.d.ts.map +1 -1
  219. package/dist/auth/session_middleware.js +4 -4
  220. package/dist/auth/session_queries.d.ts +14 -4
  221. package/dist/auth/session_queries.d.ts.map +1 -1
  222. package/dist/auth/session_queries.js +13 -3
  223. package/dist/auth/signup_route_schema.d.ts.map +1 -1
  224. package/dist/auth/signup_route_schema.js +6 -6
  225. package/dist/auth/signup_routes.d.ts.map +1 -1
  226. package/dist/auth/signup_routes.js +11 -11
  227. package/dist/auth/standard_action_specs.d.ts.map +1 -1
  228. package/dist/auth/standard_action_specs.js +1 -1
  229. package/dist/auth/standard_rpc_actions.d.ts +4 -4
  230. package/dist/auth/standard_rpc_actions.d.ts.map +1 -1
  231. package/dist/auth/standard_rpc_actions.js +3 -3
  232. package/dist/cli/args.d.ts.map +1 -1
  233. package/dist/cli/config.d.ts.map +1 -1
  234. package/dist/cli/daemon.d.ts.map +1 -1
  235. package/dist/cli/daemon.js +3 -3
  236. package/dist/cli/help.d.ts.map +1 -1
  237. package/dist/cli/help.js +1 -1
  238. package/dist/cli/logger.d.ts.map +1 -1
  239. package/dist/cli/logger.js +1 -1
  240. package/dist/cli/util.d.ts.map +1 -1
  241. package/dist/cli/util.js +1 -1
  242. package/dist/db/CLAUDE.md +16 -6
  243. package/dist/db/cell_audit_queries.d.ts.map +1 -1
  244. package/dist/db/cell_audit_queries.js +1 -1
  245. package/dist/db/cell_ddl.d.ts +14 -1
  246. package/dist/db/cell_ddl.d.ts.map +1 -1
  247. package/dist/db/cell_ddl.js +26 -6
  248. package/dist/db/cell_field_queries.d.ts.map +1 -1
  249. package/dist/db/cell_grant_queries.d.ts.map +1 -1
  250. package/dist/db/cell_grant_queries.js +1 -1
  251. package/dist/db/cell_history_ddl.d.ts.map +1 -1
  252. package/dist/db/cell_history_ddl.js +4 -4
  253. package/dist/db/cell_item_queries.d.ts.map +1 -1
  254. package/dist/db/cell_queries.d.ts +46 -1
  255. package/dist/db/cell_queries.d.ts.map +1 -1
  256. package/dist/db/cell_queries.js +42 -5
  257. package/dist/db/create_db.d.ts.map +1 -1
  258. package/dist/db/create_db.js +1 -1
  259. package/dist/db/db.d.ts.map +1 -1
  260. package/dist/db/db_pg.d.ts.map +1 -1
  261. package/dist/db/db_pg.js +1 -1
  262. package/dist/db/db_pglite.d.ts.map +1 -1
  263. package/dist/db/db_pglite.js +1 -1
  264. package/dist/db/fact_ddl.d.ts.map +1 -1
  265. package/dist/db/fact_ddl.js +3 -3
  266. package/dist/db/fact_disk_storage.d.ts +1 -1
  267. package/dist/db/fact_disk_storage.d.ts.map +1 -1
  268. package/dist/db/fact_disk_storage.js +6 -6
  269. package/dist/db/fact_queries.d.ts +1 -1
  270. package/dist/db/fact_queries.d.ts.map +1 -1
  271. package/dist/db/fact_queries.js +2 -2
  272. package/dist/db/fact_store.d.ts +1 -1
  273. package/dist/db/fact_store.d.ts.map +1 -1
  274. package/dist/db/fact_store.js +9 -9
  275. package/dist/db/fact_store_errors.d.ts.map +1 -1
  276. package/dist/db/file_fact_url.d.ts +1 -1
  277. package/dist/db/file_fact_url.d.ts.map +1 -1
  278. package/dist/db/file_fact_url.js +1 -1
  279. package/dist/db/migrate.d.ts.map +1 -1
  280. package/dist/db/pg_error.d.ts.map +1 -1
  281. package/dist/db/query_deps.d.ts.map +1 -1
  282. package/dist/db/schema_ready.d.ts.map +1 -1
  283. package/dist/db/schema_ready.js +2 -2
  284. package/dist/db/status.d.ts.map +1 -1
  285. package/dist/db/status.js +6 -6
  286. package/dist/dev/setup.d.ts.map +1 -1
  287. package/dist/dev/setup.js +6 -6
  288. package/dist/env/dotenv.d.ts.map +1 -1
  289. package/dist/env/load.d.ts.map +1 -1
  290. package/dist/env/resolve.d.ts.map +1 -1
  291. package/dist/hono_context.d.ts.map +1 -1
  292. package/dist/hono_context.js +2 -2
  293. package/dist/http/auth_shape.d.ts.map +1 -1
  294. package/dist/http/auth_shape.js +6 -6
  295. package/dist/http/client_ip.d.ts.map +1 -1
  296. package/dist/http/common_routes.d.ts.map +1 -1
  297. package/dist/http/common_routes.js +8 -8
  298. package/dist/http/db_routes.d.ts.map +1 -1
  299. package/dist/http/db_routes.js +27 -23
  300. package/dist/http/error_schemas.d.ts +1 -1
  301. package/dist/http/error_schemas.d.ts.map +1 -1
  302. package/dist/http/error_schemas.js +13 -13
  303. package/dist/http/jsonrpc.d.ts.map +1 -1
  304. package/dist/http/jsonrpc.js +9 -9
  305. package/dist/http/jsonrpc_errors.d.ts.map +1 -1
  306. package/dist/http/jsonrpc_errors.js +21 -21
  307. package/dist/http/jsonrpc_helpers.d.ts.map +1 -1
  308. package/dist/http/jsonrpc_helpers.js +7 -7
  309. package/dist/http/middleware_spec.d.ts.map +1 -1
  310. package/dist/http/origin.d.ts.map +1 -1
  311. package/dist/http/pending_effects.d.ts.map +1 -1
  312. package/dist/http/proxy.d.ts.map +1 -1
  313. package/dist/http/proxy.js +1 -1
  314. package/dist/http/route_spec.d.ts.map +1 -1
  315. package/dist/http/route_spec.js +6 -6
  316. package/dist/http/schema_helpers.d.ts.map +1 -1
  317. package/dist/http/schema_helpers.js +1 -1
  318. package/dist/http/surface.d.ts.map +1 -1
  319. package/dist/http/surface.js +11 -11
  320. package/dist/http/surface_query.d.ts.map +1 -1
  321. package/dist/http/surface_query.js +1 -1
  322. package/dist/primitive_schemas.d.ts.map +1 -1
  323. package/dist/primitive_schemas.js +1 -1
  324. package/dist/rate_limiter.d.ts.map +1 -1
  325. package/dist/rate_limiter.js +4 -4
  326. package/dist/realtime/sse.d.ts.map +1 -1
  327. package/dist/realtime/sse.js +2 -2
  328. package/dist/realtime/sse_auth_guard.d.ts +4 -4
  329. package/dist/realtime/sse_auth_guard.d.ts.map +1 -1
  330. package/dist/realtime/sse_auth_guard.js +8 -8
  331. package/dist/realtime/subscriber_registry.d.ts.map +1 -1
  332. package/dist/runtime/deno.d.ts.map +1 -1
  333. package/dist/runtime/deno.js +7 -7
  334. package/dist/runtime/deps.d.ts.map +1 -1
  335. package/dist/runtime/fs.d.ts.map +1 -1
  336. package/dist/runtime/mock.d.ts.map +1 -1
  337. package/dist/runtime/mock.js +3 -3
  338. package/dist/runtime/node.d.ts.map +1 -1
  339. package/dist/runtime/node.js +7 -7
  340. package/dist/schema_meta.d.ts.map +1 -1
  341. package/dist/server/app_backend.d.ts +3 -3
  342. package/dist/server/app_backend.d.ts.map +1 -1
  343. package/dist/server/app_backend.js +3 -3
  344. package/dist/server/app_server.d.ts +6 -6
  345. package/dist/server/app_server.d.ts.map +1 -1
  346. package/dist/server/app_server.js +32 -32
  347. package/dist/server/app_server_context.d.ts.map +1 -1
  348. package/dist/server/env.d.ts.map +1 -1
  349. package/dist/server/env.js +9 -9
  350. package/dist/server/fact_write.d.ts +1 -1
  351. package/dist/server/fact_write.d.ts.map +1 -1
  352. package/dist/server/fact_write.js +2 -1
  353. package/dist/server/file_fact_fetcher.d.ts.map +1 -1
  354. package/dist/server/file_fact_fetcher.js +1 -1
  355. package/dist/server/serve_fact_route.d.ts.map +1 -1
  356. package/dist/server/serve_fact_route.js +15 -13
  357. package/dist/server/startup.d.ts.map +1 -1
  358. package/dist/server/static.d.ts.map +1 -1
  359. package/dist/server/validate_nginx.js +1 -1
  360. package/dist/server/x_accel.d.ts.map +1 -1
  361. package/dist/server/x_accel.js +1 -1
  362. package/dist/testing/CLAUDE.md +27 -18
  363. package/dist/testing/admin_integration.d.ts.map +1 -1
  364. package/dist/testing/admin_integration.js +62 -62
  365. package/dist/testing/adversarial_404.d.ts.map +1 -1
  366. package/dist/testing/adversarial_404.js +1 -1
  367. package/dist/testing/adversarial_headers.d.ts.map +1 -1
  368. package/dist/testing/adversarial_headers.js +15 -15
  369. package/dist/testing/adversarial_input.d.ts.map +1 -1
  370. package/dist/testing/adversarial_input.js +22 -22
  371. package/dist/testing/app_server.d.ts.map +1 -1
  372. package/dist/testing/app_server.js +32 -32
  373. package/dist/testing/assertions.d.ts.map +1 -1
  374. package/dist/testing/attack_surface.d.ts.map +1 -1
  375. package/dist/testing/attack_surface.js +12 -12
  376. package/dist/testing/audit_completeness.d.ts.map +1 -1
  377. package/dist/testing/audit_completeness.js +41 -41
  378. package/dist/testing/audit_drift_guard.d.ts +3 -1
  379. package/dist/testing/audit_drift_guard.d.ts.map +1 -1
  380. package/dist/testing/audit_drift_guard.js +12 -6
  381. package/dist/testing/auth_apps.d.ts.map +1 -1
  382. package/dist/testing/auth_apps.js +4 -4
  383. package/dist/testing/bootstrap_success.d.ts.map +1 -1
  384. package/dist/testing/bootstrap_success.js +11 -11
  385. package/dist/testing/connection_closer_helpers.d.ts.map +1 -1
  386. package/dist/testing/connection_closer_helpers.js +1 -1
  387. package/dist/testing/cross_backend/account_lifecycle.d.ts.map +1 -1
  388. package/dist/testing/cross_backend/account_lifecycle.js +1 -1
  389. package/dist/testing/cross_backend/action_manifest.d.ts.map +1 -1
  390. package/dist/testing/cross_backend/action_manifest.js +4 -4
  391. package/dist/testing/cross_backend/action_manifest_parity.d.ts.map +1 -1
  392. package/dist/testing/cross_backend/actor_lookup.d.ts.map +1 -1
  393. package/dist/testing/cross_backend/actor_lookup.js +3 -3
  394. package/dist/testing/cross_backend/actor_search.d.ts.map +1 -1
  395. package/dist/testing/cross_backend/actor_search.js +5 -5
  396. package/dist/testing/cross_backend/app_settings.d.ts.map +1 -1
  397. package/dist/testing/cross_backend/app_settings.js +6 -6
  398. package/dist/testing/cross_backend/backend_config.d.ts.map +1 -1
  399. package/dist/testing/cross_backend/bench/bench_report.d.ts.map +1 -1
  400. package/dist/testing/cross_backend/bench/bench_report.js +5 -5
  401. package/dist/testing/cross_backend/bench/run_cross_impl_bench.d.ts.map +1 -1
  402. package/dist/testing/cross_backend/bench/run_cross_impl_bench.js +2 -2
  403. package/dist/testing/cross_backend/bench/scenario.d.ts.map +1 -1
  404. package/dist/testing/cross_backend/bench/scenario.js +1 -1
  405. package/dist/testing/cross_backend/body_size.d.ts.map +1 -1
  406. package/dist/testing/cross_backend/body_size.js +1 -1
  407. package/dist/testing/cross_backend/bootstrap_backend.d.ts.map +1 -1
  408. package/dist/testing/cross_backend/bootstrap_backend.js +2 -2
  409. package/dist/testing/cross_backend/build_test_backend_paths.js +1 -1
  410. package/dist/testing/cross_backend/capabilities.js +2 -2
  411. package/dist/testing/cross_backend/cell_cross_helpers.d.ts.map +1 -1
  412. package/dist/testing/cross_backend/cell_crud.d.ts.map +1 -1
  413. package/dist/testing/cross_backend/cell_crud.js +5 -2
  414. package/dist/testing/cross_backend/cell_gated_create.d.ts +24 -0
  415. package/dist/testing/cross_backend/cell_gated_create.d.ts.map +1 -1
  416. package/dist/testing/cross_backend/cell_gated_create.js +178 -35
  417. package/dist/testing/cross_backend/cell_grant_role.d.ts.map +1 -1
  418. package/dist/testing/cross_backend/cell_grant_role.js +2 -2
  419. package/dist/testing/cross_backend/cell_relations.d.ts.map +1 -1
  420. package/dist/testing/cross_backend/cell_relations.js +13 -13
  421. package/dist/testing/cross_backend/conformance_case.d.ts.map +1 -1
  422. package/dist/testing/cross_backend/conformance_case.js +11 -11
  423. package/dist/testing/cross_backend/conformance_table.d.ts.map +1 -1
  424. package/dist/testing/cross_backend/conformance_table.js +11 -11
  425. package/dist/testing/cross_backend/cookie_attributes.d.ts.map +1 -1
  426. package/dist/testing/cross_backend/cookie_attributes.js +4 -4
  427. package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts +1 -1
  428. package/dist/testing/cross_backend/create_cross_backend_global_setup.d.ts.map +1 -1
  429. package/dist/testing/cross_backend/create_cross_backend_global_setup.js +1 -1
  430. package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts +1 -1
  431. package/dist/testing/cross_backend/create_dual_spawn_global_setup.d.ts.map +1 -1
  432. package/dist/testing/cross_backend/create_dual_spawn_global_setup.js +1 -1
  433. package/dist/testing/cross_backend/credential_header_robustness.js +1 -1
  434. package/dist/testing/cross_backend/default_backend_configs.d.ts.map +1 -1
  435. package/dist/testing/cross_backend/default_backend_configs.js +12 -12
  436. package/dist/testing/cross_backend/default_spine_surface.d.ts.map +1 -1
  437. package/dist/testing/cross_backend/default_spine_surface.js +9 -9
  438. package/dist/testing/cross_backend/expected_schema.json +3 -0
  439. package/dist/testing/cross_backend/fact_serving.d.ts.map +1 -1
  440. package/dist/testing/cross_backend/fact_serving.js +2 -2
  441. package/dist/testing/cross_backend/full_spine_mount.d.ts.map +1 -1
  442. package/dist/testing/cross_backend/full_spine_mount.js +11 -8
  443. package/dist/testing/cross_backend/identity_parity.d.ts.map +1 -1
  444. package/dist/testing/cross_backend/identity_parity.js +28 -24
  445. package/dist/testing/cross_backend/in_process_setup.d.ts.map +1 -1
  446. package/dist/testing/cross_backend/in_process_setup.js +9 -9
  447. package/dist/testing/cross_backend/login_security.d.ts.map +1 -1
  448. package/dist/testing/cross_backend/login_security.js +2 -2
  449. package/dist/testing/cross_backend/make_cross_backend_project.d.ts +1 -1
  450. package/dist/testing/cross_backend/make_cross_backend_project.d.ts.map +1 -1
  451. package/dist/testing/cross_backend/make_cross_backend_project.js +3 -3
  452. package/dist/testing/cross_backend/method_coverage.d.ts.map +1 -1
  453. package/dist/testing/cross_backend/origin.d.ts.map +1 -1
  454. package/dist/testing/cross_backend/origin.js +4 -4
  455. package/dist/testing/cross_backend/peer_ping_ws.d.ts.map +1 -1
  456. package/dist/testing/cross_backend/peer_ping_ws.js +6 -6
  457. package/dist/testing/cross_backend/ready.d.ts.map +1 -1
  458. package/dist/testing/cross_backend/role_grant_offer_enumeration.d.ts.map +1 -1
  459. package/dist/testing/cross_backend/role_grant_offer_enumeration.js +1 -1
  460. package/dist/testing/cross_backend/role_grant_offer_notification_ws.d.ts.map +1 -1
  461. package/dist/testing/cross_backend/role_grant_offer_notification_ws.js +1 -1
  462. package/dist/testing/cross_backend/role_grant_participation.d.ts.map +1 -1
  463. package/dist/testing/cross_backend/rust_spine_stub_backend_config.d.ts.map +1 -1
  464. package/dist/testing/cross_backend/rust_spine_stub_backend_config.js +5 -5
  465. package/dist/testing/cross_backend/setup.d.ts.map +1 -1
  466. package/dist/testing/cross_backend/setup.js +36 -36
  467. package/dist/testing/cross_backend/spawn_backend.d.ts.map +1 -1
  468. package/dist/testing/cross_backend/spawn_backend.js +1 -1
  469. package/dist/testing/cross_backend/sse_round_trip.d.ts.map +1 -1
  470. package/dist/testing/cross_backend/sse_round_trip.js +10 -7
  471. package/dist/testing/cross_backend/standard.d.ts.map +1 -1
  472. package/dist/testing/cross_backend/standard.js +5 -5
  473. package/dist/testing/cross_backend/test_cell_gated_create_authorize.d.ts +12 -7
  474. package/dist/testing/cross_backend/test_cell_gated_create_authorize.d.ts.map +1 -1
  475. package/dist/testing/cross_backend/test_cell_gated_create_authorize.js +54 -15
  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 +106 -106
  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
@@ -29,7 +29,7 @@ export const FieldJson = z.strictObject({
29
29
  source_id: Uuid,
30
30
  name: z.string(),
31
31
  target_id: Uuid,
32
- created_at: z.string(),
32
+ created_at: z.string()
33
33
  });
34
34
  // -- cell_field_set ---------------------------------------------------------
35
35
  /**
@@ -39,10 +39,10 @@ export const FieldJson = z.strictObject({
39
39
  export const CellFieldSetInput = z.strictObject({
40
40
  source_id: Uuid.meta({ description: 'Cell whose field to set.' }),
41
41
  name: CellFieldName.meta({
42
- description: 'Field name. snake_case identifier; max 64 chars.',
42
+ description: 'Field name. snake_case identifier; max 64 chars.'
43
43
  }),
44
44
  target_id: Uuid.meta({ description: 'Cell the field points at.' }),
45
- acting: ActingActor,
45
+ acting: ActingActor
46
46
  });
47
47
  export const CellFieldSetOutput = z.strictObject({ field: FieldJson });
48
48
  // -- cell_field_delete ------------------------------------------------------
@@ -53,11 +53,11 @@ export const CellFieldSetOutput = z.strictObject({ field: FieldJson });
53
53
  export const CellFieldDeleteInput = z.strictObject({
54
54
  source_id: Uuid.meta({ description: 'Cell whose field to delete.' }),
55
55
  name: CellFieldName.meta({ description: 'Field name to delete.' }),
56
- acting: ActingActor,
56
+ acting: ActingActor
57
57
  });
58
58
  export const CellFieldDeleteOutput = z.strictObject({
59
59
  ok: z.literal(true),
60
- deleted: z.boolean(),
60
+ deleted: z.boolean()
61
61
  });
62
62
  // -- cell_field_list --------------------------------------------------------
63
63
  /**
@@ -74,24 +74,24 @@ export const CellFieldDeleteOutput = z.strictObject({
74
74
  export const CellFieldListInput = z
75
75
  .strictObject({
76
76
  source_id: Uuid.optional().meta({
77
- description: 'List forward fields whose source is this cell.',
77
+ description: 'List forward fields whose source is this cell.'
78
78
  }),
79
79
  target_id: Uuid.optional().meta({
80
- description: 'List reverse upfields whose target is this cell.',
80
+ description: 'List reverse upfields whose target is this cell.'
81
81
  }),
82
82
  name_after: CellFieldName.optional().meta({
83
- description: 'Cursor for forward pagination — return rows whose name > this lex. Forward only.',
83
+ description: 'Cursor for forward pagination — return rows whose name > this lex. Forward only.'
84
84
  }),
85
85
  limit: z.number().int().positive().max(500).optional().meta({
86
- description: 'Page size cap (max 500). Forward only. Omit for unbounded — explicit list calls escape the bundled `cell_get` cap.',
86
+ description: 'Page size cap (max 500). Forward only. Omit for unbounded — explicit list calls escape the bundled `cell_get` cap.'
87
87
  }),
88
- acting: ActingActor,
88
+ acting: ActingActor
89
89
  })
90
90
  .refine((v) => Boolean(v.source_id) !== Boolean(v.target_id), {
91
- message: ERROR_CELL_FIELD_LIST_REQUIRES_SOURCE_OR_TARGET,
91
+ message: ERROR_CELL_FIELD_LIST_REQUIRES_SOURCE_OR_TARGET
92
92
  });
93
93
  export const CellFieldListOutput = z.strictObject({
94
- fields: z.array(FieldJson),
94
+ fields: z.array(FieldJson)
95
95
  });
96
96
  // -- Action specs -----------------------------------------------------------
97
97
  export const cell_field_set_action_spec = {
@@ -103,7 +103,7 @@ export const cell_field_set_action_spec = {
103
103
  input: CellFieldSetInput,
104
104
  output: CellFieldSetOutput,
105
105
  async: true,
106
- description: 'Set a named relation `(source.name) → target`. UPSERT on `(source_id, name)`: re-pointing replaces in place. Caller must be able to edit `source` and view `target`; both gate via `can_edit_cell` / `can_view_cell`.',
106
+ description: 'Set a named relation `(source.name) → target`. UPSERT on `(source_id, name)`: re-pointing replaces in place. Caller must be able to edit `source` and view `target`; both gate via `can_edit_cell` / `can_view_cell`.'
107
107
  };
108
108
  export const cell_field_delete_action_spec = {
109
109
  method: 'cell_field_delete',
@@ -114,7 +114,7 @@ export const cell_field_delete_action_spec = {
114
114
  input: CellFieldDeleteInput,
115
115
  output: CellFieldDeleteOutput,
116
116
  async: true,
117
- description: 'Delete a named relation. Idempotent — `deleted: false` when no row matched. Caller must be able to edit `source`.',
117
+ description: 'Delete a named relation. Idempotent — `deleted: false` when no row matched. Caller must be able to edit `source`.'
118
118
  };
119
119
  export const cell_field_list_action_spec = {
120
120
  method: 'cell_field_list',
@@ -126,11 +126,11 @@ export const cell_field_list_action_spec = {
126
126
  output: CellFieldListOutput,
127
127
  async: true,
128
128
  rate_limit: 'ip',
129
- description: 'List forward fields (pass `source_id`) or reverse upfields (pass `target_id`). Forward listing filters targets to those the caller may view (strict target-visibility). Reverse listing has 2-layer authz: gate on `can_view_cell(target)` first (404 otherwise), then filter rows by per-source `can_view_cell`. Per-IP rate-limited — symmetric with `cell_get` to bound public-surface id-walking.',
129
+ description: 'List forward fields (pass `source_id`) or reverse upfields (pass `target_id`). Forward listing filters targets to those the caller may view (strict target-visibility). Reverse listing has 2-layer authz: gate on `can_view_cell(target)` first (404 otherwise), then filter rows by per-source `can_view_cell`. Per-IP rate-limited — symmetric with `cell_get` to bound public-surface id-walking.'
130
130
  };
131
131
  /** All cell_field action specs — composed into `all_cell_action_specs`. */
132
132
  export const all_cell_field_action_specs = [
133
133
  cell_field_set_action_spec,
134
134
  cell_field_delete_action_spec,
135
- cell_field_list_action_spec,
135
+ cell_field_list_action_spec
136
136
  ];
@@ -24,10 +24,10 @@
24
24
  * @module
25
25
  */
26
26
  import { type RpcAction } from '../actions/action_rpc.js';
27
- import type { RouteFactoryDeps } from './deps.js';
27
+ import type { ActionFactoryDeps } from './deps.js';
28
28
  import { type FieldJson } from './cell_field_action_specs.js';
29
29
  import { type CellFieldRow } from '../db/cell_field_queries.js';
30
- export type CellFieldActionDeps = Pick<RouteFactoryDeps, 'log' | 'audit'>;
30
+ export type CellFieldActionDeps = ActionFactoryDeps;
31
31
  export declare const to_field_json: (row: CellFieldRow) => FieldJson;
32
32
  /** Create the three `cell_field_*` RPC actions. */
33
33
  export declare const create_cell_field_actions: (deps: CellFieldActionDeps) => Array<RpcAction>;
@@ -1 +1 @@
1
- {"version":3,"file":"cell_field_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_field_actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAIN,KAAK,SAAS,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAEhD,OAAO,EAUN,KAAK,SAAS,EACd,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAKN,KAAK,YAAY,EACjB,MAAM,6BAA6B,CAAC;AAMrC,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,OAAO,CAAC,CAAC;AAE1E,eAAO,MAAM,aAAa,GAAI,KAAK,YAAY,KAAG,SAKhD,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,yBAAyB,GAAI,MAAM,mBAAmB,KAAG,KAAK,CAAC,SAAS,CAmIpF,CAAC"}
1
+ {"version":3,"file":"cell_field_actions.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_field_actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAIN,KAAK,SAAS,EACd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAUN,KAAK,SAAS,EACd,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAKN,KAAK,YAAY,EACjB,MAAM,6BAA6B,CAAC;AAMrC,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAEpD,eAAO,MAAM,aAAa,GAAI,KAAK,YAAY,KAAG,SAKhD,CAAC;AAEH,mDAAmD;AACnD,eAAO,MAAM,yBAAyB,GAAI,MAAM,mBAAmB,KAAG,KAAK,CAAC,SAAS,CAmIpF,CAAC"}
@@ -23,20 +23,20 @@
23
23
  *
24
24
  * @module
25
25
  */
26
- import { rpc_action, } from '../actions/action_rpc.js';
26
+ import { rpc_action } from '../actions/action_rpc.js';
27
27
  import { jsonrpc_errors } from '../http/jsonrpc_errors.js';
28
- import { cell_field_set_action_spec, cell_field_delete_action_spec, cell_field_list_action_spec, } from './cell_field_action_specs.js';
28
+ import { cell_field_set_action_spec, cell_field_delete_action_spec, cell_field_list_action_spec } from './cell_field_action_specs.js';
29
29
  import { ERROR_CELL_NOT_FOUND } from './cell_action_specs.js';
30
30
  import { can_view_cell, can_edit_cell } from './cell_authorize.js';
31
31
  import { filter_visible_target_ids } from './cell_relation_visibility.js';
32
32
  import { query_cell_get } from '../db/cell_queries.js';
33
33
  import { query_cell_grant_list_for_cell } from '../db/cell_grant_queries.js';
34
- import { query_cell_field_set, query_cell_field_delete, query_cell_field_list_for_source, query_cell_field_list_for_target, } from '../db/cell_field_queries.js';
34
+ import { query_cell_field_set, query_cell_field_delete, query_cell_field_list_for_source, query_cell_field_list_for_target } from '../db/cell_field_queries.js';
35
35
  export const to_field_json = (row) => ({
36
36
  source_id: row.source_id,
37
37
  name: row.name,
38
38
  target_id: row.target_id,
39
- created_at: typeof row.created_at === 'string' ? row.created_at : row.created_at.toISOString(),
39
+ created_at: typeof row.created_at === 'string' ? row.created_at : row.created_at.toISOString()
40
40
  });
41
41
  /** Create the three `cell_field_*` RPC actions. */
42
42
  export const create_cell_field_actions = (deps) => {
@@ -65,7 +65,7 @@ export const create_cell_field_actions = (deps) => {
65
65
  const row = await query_cell_field_set(ctx, {
66
66
  source_id: input.source_id,
67
67
  name: input.name,
68
- target_id: input.target_id,
68
+ target_id: input.target_id
69
69
  });
70
70
  deps.audit.emit(ctx, {
71
71
  event_type: 'cell_field_set',
@@ -75,8 +75,8 @@ export const create_cell_field_actions = (deps) => {
75
75
  metadata: {
76
76
  source_id: row.source_id,
77
77
  name: row.name,
78
- target_id: row.target_id,
79
- },
78
+ target_id: row.target_id
79
+ }
80
80
  });
81
81
  return { field: to_field_json(row) };
82
82
  };
@@ -100,8 +100,8 @@ export const create_cell_field_actions = (deps) => {
100
100
  metadata: {
101
101
  source_id: deleted.source_id,
102
102
  name: deleted.name,
103
- target_id: deleted.target_id,
104
- },
103
+ target_id: deleted.target_id
104
+ }
105
105
  });
106
106
  }
107
107
  return { ok: true, deleted: deleted !== null };
@@ -121,7 +121,7 @@ export const create_cell_field_actions = (deps) => {
121
121
  }
122
122
  const rows = await query_cell_field_list_for_source(ctx, source.id, {
123
123
  limit: input.limit,
124
- name_after: input.name_after,
124
+ name_after: input.name_after
125
125
  });
126
126
  const visible_targets = await filter_visible_target_ids(ctx, auth, rows.map((r) => r.target_id));
127
127
  return { fields: rows.filter((r) => visible_targets.has(r.target_id)).map(to_field_json) };
@@ -148,6 +148,6 @@ export const create_cell_field_actions = (deps) => {
148
148
  return [
149
149
  rpc_action(cell_field_set_action_spec, set_handler),
150
150
  rpc_action(cell_field_delete_action_spec, delete_handler),
151
- rpc_action(cell_field_list_action_spec, list_handler),
151
+ rpc_action(cell_field_list_action_spec, list_handler)
152
152
  ];
153
153
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cell_field_audit_metadata.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_field_audit_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF,iDAAiD;AACjD,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"cell_field_audit_metadata.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/cell_field_audit_metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF,iDAAiD;AACjD,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -18,11 +18,11 @@ import { Uuid } from '@fuzdev/fuz_util/id.ts';
18
18
  export const CellFieldSetAuditMetadata = z.looseObject({
19
19
  source_id: Uuid,
20
20
  name: z.string(),
21
- target_id: Uuid,
21
+ target_id: Uuid
22
22
  });
23
23
  /** Metadata envelope for `cell_field_delete`. */
24
24
  export const CellFieldDeleteAuditMetadata = z.looseObject({
25
25
  source_id: Uuid,
26
26
  name: z.string(),
27
- target_id: Uuid,
27
+ target_id: Uuid
28
28
  });
@@ -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,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAQtB,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;;;;;;;;;;;;;;kBAAqC,CAAC;AACxE,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"}
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 { RouteFactoryDeps } from './deps.js';
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 = Pick<RouteFactoryDeps, 'log' | 'audit'> & {
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,EAAsC,KAAK,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAE7F,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAEhD,OAAO,EAaN,KAAK,SAAS,EACd,MAAM,8BAA8B,CAAC;AAItC,OAAO,EAKN,KAAK,YAAY,EAEjB,MAAM,6BAA6B,CAAC;AAOrC;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG;IAC3E,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"}
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, } from './cell_grant_action_specs.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 } 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, } from '../db/cell_grant_queries.js';
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,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB;;;;;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"}
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; the safety
19
- * net for the residual race). Client refreshes its bracket and retries.
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,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAYtB,8EAA8E;AAC9E,eAAO,MAAM,6CAA6C,EACzD,yCAAkD,CAAC;AAEpD;;;;;GAKG;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;;;;;;;kBAAmC,CAAC;AACrE,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;;;;;;;kBAAmC,CAAC;AACnE,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"}
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, } from '@fuzdev/fuz_util/fractional_index.ts';
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; the safety
23
- * net for the residual race). Client refreshes its bracket and retries.
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
  ];