@fuzdev/fuz_app 0.54.0 → 0.56.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 (348) hide show
  1. package/dist/actions/CLAUDE.md +214 -103
  2. package/dist/actions/action_bridge.d.ts +8 -5
  3. package/dist/actions/action_bridge.d.ts.map +1 -1
  4. package/dist/actions/action_bridge.js +1 -11
  5. package/dist/actions/action_codegen.d.ts +32 -0
  6. package/dist/actions/action_codegen.d.ts.map +1 -1
  7. package/dist/actions/action_codegen.js +35 -15
  8. package/dist/actions/action_registry.d.ts.map +1 -1
  9. package/dist/actions/action_registry.js +5 -2
  10. package/dist/actions/action_rpc.d.ts +141 -22
  11. package/dist/actions/action_rpc.d.ts.map +1 -1
  12. package/dist/actions/action_rpc.js +106 -187
  13. package/dist/actions/action_spec.d.ts +55 -16
  14. package/dist/actions/action_spec.d.ts.map +1 -1
  15. package/dist/actions/action_spec.js +16 -11
  16. package/dist/actions/action_types.d.ts +28 -60
  17. package/dist/actions/action_types.d.ts.map +1 -1
  18. package/dist/actions/action_types.js +13 -5
  19. package/dist/actions/broadcast_api.d.ts +2 -2
  20. package/dist/actions/broadcast_api.js +2 -2
  21. package/dist/actions/compile_action_registry.d.ts +50 -0
  22. package/dist/actions/compile_action_registry.d.ts.map +1 -0
  23. package/dist/actions/compile_action_registry.js +69 -0
  24. package/dist/actions/heartbeat.d.ts +8 -4
  25. package/dist/actions/heartbeat.d.ts.map +1 -1
  26. package/dist/actions/heartbeat.js +5 -4
  27. package/dist/actions/perform_action.d.ts +145 -0
  28. package/dist/actions/perform_action.d.ts.map +1 -0
  29. package/dist/actions/perform_action.js +258 -0
  30. package/dist/actions/register_action_ws.d.ts +46 -40
  31. package/dist/actions/register_action_ws.d.ts.map +1 -1
  32. package/dist/actions/register_action_ws.js +101 -159
  33. package/dist/actions/register_ws_endpoint.d.ts +15 -10
  34. package/dist/actions/register_ws_endpoint.d.ts.map +1 -1
  35. package/dist/actions/register_ws_endpoint.js +54 -7
  36. package/dist/actions/transports.d.ts.map +1 -1
  37. package/dist/actions/transports.js +0 -4
  38. package/dist/actions/transports_ws_auth_guard.d.ts +1 -1
  39. package/dist/actions/transports_ws_auth_guard.js +1 -1
  40. package/dist/actions/transports_ws_backend.d.ts +1 -1
  41. package/dist/actions/transports_ws_backend.js +1 -1
  42. package/dist/auth/CLAUDE.md +794 -410
  43. package/dist/auth/account_action_specs.d.ts +28 -7
  44. package/dist/auth/account_action_specs.d.ts.map +1 -1
  45. package/dist/auth/account_action_specs.js +7 -7
  46. package/dist/auth/account_actions.d.ts +7 -13
  47. package/dist/auth/account_actions.d.ts.map +1 -1
  48. package/dist/auth/account_actions.js +26 -35
  49. package/dist/auth/account_queries.d.ts +52 -16
  50. package/dist/auth/account_queries.d.ts.map +1 -1
  51. package/dist/auth/account_queries.js +87 -38
  52. package/dist/auth/account_routes.d.ts +9 -11
  53. package/dist/auth/account_routes.d.ts.map +1 -1
  54. package/dist/auth/account_routes.js +118 -46
  55. package/dist/auth/account_schema.d.ts +46 -35
  56. package/dist/auth/account_schema.d.ts.map +1 -1
  57. package/dist/auth/account_schema.js +21 -28
  58. package/dist/auth/admin_action_specs.d.ts +100 -32
  59. package/dist/auth/admin_action_specs.d.ts.map +1 -1
  60. package/dist/auth/admin_action_specs.js +64 -33
  61. package/dist/auth/admin_actions.d.ts +13 -19
  62. package/dist/auth/admin_actions.d.ts.map +1 -1
  63. package/dist/auth/admin_actions.js +37 -41
  64. package/dist/auth/audit_emitter.d.ts +160 -0
  65. package/dist/auth/audit_emitter.d.ts.map +1 -0
  66. package/dist/auth/audit_emitter.js +83 -0
  67. package/dist/auth/audit_log_queries.d.ts +17 -48
  68. package/dist/auth/audit_log_queries.d.ts.map +1 -1
  69. package/dist/auth/audit_log_queries.js +20 -56
  70. package/dist/auth/audit_log_routes.d.ts +1 -1
  71. package/dist/auth/audit_log_routes.d.ts.map +1 -1
  72. package/dist/auth/audit_log_routes.js +7 -3
  73. package/dist/auth/audit_log_schema.d.ts +92 -32
  74. package/dist/auth/audit_log_schema.d.ts.map +1 -1
  75. package/dist/auth/audit_log_schema.js +75 -46
  76. package/dist/auth/auth_guard_resolver.d.ts +44 -0
  77. package/dist/auth/auth_guard_resolver.d.ts.map +1 -0
  78. package/dist/auth/auth_guard_resolver.js +56 -0
  79. package/dist/auth/bearer_auth.d.ts +9 -7
  80. package/dist/auth/bearer_auth.d.ts.map +1 -1
  81. package/dist/auth/bearer_auth.js +13 -21
  82. package/dist/auth/bootstrap_account.d.ts +7 -7
  83. package/dist/auth/bootstrap_account.d.ts.map +1 -1
  84. package/dist/auth/bootstrap_account.js +7 -7
  85. package/dist/auth/bootstrap_routes.d.ts.map +1 -1
  86. package/dist/auth/bootstrap_routes.js +11 -10
  87. package/dist/auth/cleanup.d.ts +20 -26
  88. package/dist/auth/cleanup.d.ts.map +1 -1
  89. package/dist/auth/cleanup.js +33 -42
  90. package/dist/auth/credential_type_schema.d.ts +115 -0
  91. package/dist/auth/credential_type_schema.d.ts.map +1 -0
  92. package/dist/auth/credential_type_schema.js +127 -0
  93. package/dist/auth/daemon_token_middleware.d.ts +23 -11
  94. package/dist/auth/daemon_token_middleware.d.ts.map +1 -1
  95. package/dist/auth/daemon_token_middleware.js +28 -22
  96. package/dist/auth/ddl.d.ts +2 -2
  97. package/dist/auth/ddl.d.ts.map +1 -1
  98. package/dist/auth/ddl.js +6 -6
  99. package/dist/auth/deps.d.ts +7 -18
  100. package/dist/auth/deps.d.ts.map +1 -1
  101. package/dist/auth/grant_path_schema.d.ts +117 -0
  102. package/dist/auth/grant_path_schema.d.ts.map +1 -0
  103. package/dist/auth/grant_path_schema.js +137 -0
  104. package/dist/auth/invite_queries.d.ts +12 -1
  105. package/dist/auth/invite_queries.d.ts.map +1 -1
  106. package/dist/auth/invite_queries.js +12 -1
  107. package/dist/auth/invite_schema.d.ts +1 -1
  108. package/dist/auth/invite_schema.d.ts.map +1 -1
  109. package/dist/auth/invite_schema.js +1 -1
  110. package/dist/auth/middleware.d.ts.map +1 -1
  111. package/dist/auth/middleware.js +9 -4
  112. package/dist/auth/migrations.d.ts +37 -14
  113. package/dist/auth/migrations.d.ts.map +1 -1
  114. package/dist/auth/migrations.js +79 -32
  115. package/dist/auth/request_context.d.ts +331 -61
  116. package/dist/auth/request_context.d.ts.map +1 -1
  117. package/dist/auth/request_context.js +378 -95
  118. package/dist/auth/{permit_offer_action_specs.d.ts → role_grant_offer_action_specs.d.ts} +163 -94
  119. package/dist/auth/role_grant_offer_action_specs.d.ts.map +1 -0
  120. package/dist/auth/role_grant_offer_action_specs.js +262 -0
  121. package/dist/auth/role_grant_offer_actions.d.ts +104 -0
  122. package/dist/auth/role_grant_offer_actions.d.ts.map +1 -0
  123. package/dist/auth/role_grant_offer_actions.js +473 -0
  124. package/dist/auth/{permit_offer_notifications.d.ts → role_grant_offer_notifications.d.ts} +90 -70
  125. package/dist/auth/role_grant_offer_notifications.d.ts.map +1 -0
  126. package/dist/auth/role_grant_offer_notifications.js +182 -0
  127. package/dist/auth/role_grant_offer_queries.d.ts +242 -0
  128. package/dist/auth/role_grant_offer_queries.d.ts.map +1 -0
  129. package/dist/auth/role_grant_offer_queries.js +533 -0
  130. package/dist/auth/role_grant_offer_schema.d.ts +150 -0
  131. package/dist/auth/role_grant_offer_schema.d.ts.map +1 -0
  132. package/dist/auth/{permit_offer_schema.js → role_grant_offer_schema.js} +60 -36
  133. package/dist/auth/role_grant_queries.d.ts +231 -0
  134. package/dist/auth/role_grant_queries.d.ts.map +1 -0
  135. package/dist/auth/role_grant_queries.js +320 -0
  136. package/dist/auth/role_schema.d.ts +150 -40
  137. package/dist/auth/role_schema.d.ts.map +1 -1
  138. package/dist/auth/role_schema.js +144 -45
  139. package/dist/auth/scope_kind_schema.d.ts +96 -0
  140. package/dist/auth/scope_kind_schema.d.ts.map +1 -0
  141. package/dist/auth/scope_kind_schema.js +94 -0
  142. package/dist/auth/self_service_role_action_specs.d.ts +6 -1
  143. package/dist/auth/self_service_role_action_specs.d.ts.map +1 -1
  144. package/dist/auth/self_service_role_action_specs.js +3 -1
  145. package/dist/auth/self_service_role_actions.d.ts +34 -27
  146. package/dist/auth/self_service_role_actions.d.ts.map +1 -1
  147. package/dist/auth/self_service_role_actions.js +68 -48
  148. package/dist/auth/session_cookie.d.ts +43 -6
  149. package/dist/auth/session_cookie.d.ts.map +1 -1
  150. package/dist/auth/session_cookie.js +31 -5
  151. package/dist/auth/session_middleware.d.ts +37 -3
  152. package/dist/auth/session_middleware.d.ts.map +1 -1
  153. package/dist/auth/session_middleware.js +33 -7
  154. package/dist/auth/signup_routes.d.ts.map +1 -1
  155. package/dist/auth/signup_routes.js +48 -19
  156. package/dist/auth/standard_action_specs.d.ts +2 -2
  157. package/dist/auth/standard_action_specs.js +4 -4
  158. package/dist/auth/standard_rpc_actions.d.ts +23 -19
  159. package/dist/auth/standard_rpc_actions.d.ts.map +1 -1
  160. package/dist/auth/standard_rpc_actions.js +12 -12
  161. package/dist/db/migrate.d.ts +12 -8
  162. package/dist/db/migrate.d.ts.map +1 -1
  163. package/dist/db/migrate.js +10 -7
  164. package/dist/dev/setup.d.ts +2 -2
  165. package/dist/dev/setup.d.ts.map +1 -1
  166. package/dist/dev/setup.js +9 -7
  167. package/dist/env/load.d.ts +1 -1
  168. package/dist/env/load.js +1 -1
  169. package/dist/hono_context.d.ts +64 -5
  170. package/dist/hono_context.d.ts.map +1 -1
  171. package/dist/hono_context.js +38 -2
  172. package/dist/http/CLAUDE.md +264 -87
  173. package/dist/http/auth_shape.d.ts +191 -0
  174. package/dist/http/auth_shape.d.ts.map +1 -0
  175. package/dist/http/auth_shape.js +237 -0
  176. package/dist/http/common_routes.js +3 -3
  177. package/dist/http/db_routes.d.ts +4 -0
  178. package/dist/http/db_routes.d.ts.map +1 -1
  179. package/dist/http/db_routes.js +44 -7
  180. package/dist/http/error_schemas.d.ts +132 -19
  181. package/dist/http/error_schemas.d.ts.map +1 -1
  182. package/dist/http/error_schemas.js +132 -40
  183. package/dist/http/jsonrpc_errors.d.ts +27 -2
  184. package/dist/http/jsonrpc_errors.d.ts.map +1 -1
  185. package/dist/http/jsonrpc_errors.js +26 -2
  186. package/dist/http/pending_effects.d.ts +71 -18
  187. package/dist/http/pending_effects.d.ts.map +1 -1
  188. package/dist/http/pending_effects.js +87 -18
  189. package/dist/http/proxy.d.ts +52 -5
  190. package/dist/http/proxy.d.ts.map +1 -1
  191. package/dist/http/proxy.js +92 -14
  192. package/dist/http/route_spec.d.ts +113 -41
  193. package/dist/http/route_spec.d.ts.map +1 -1
  194. package/dist/http/route_spec.js +130 -52
  195. package/dist/http/schema_helpers.d.ts +3 -2
  196. package/dist/http/schema_helpers.d.ts.map +1 -1
  197. package/dist/http/schema_helpers.js +9 -2
  198. package/dist/http/surface.d.ts +2 -1
  199. package/dist/http/surface.d.ts.map +1 -1
  200. package/dist/http/surface.js +1 -2
  201. package/dist/http/surface_query.d.ts +39 -35
  202. package/dist/http/surface_query.d.ts.map +1 -1
  203. package/dist/http/surface_query.js +79 -36
  204. package/dist/primitive_schemas.d.ts +39 -0
  205. package/dist/primitive_schemas.d.ts.map +1 -0
  206. package/dist/primitive_schemas.js +40 -0
  207. package/dist/realtime/sse_auth_guard.d.ts +5 -5
  208. package/dist/realtime/sse_auth_guard.js +9 -9
  209. package/dist/runtime/mock.d.ts +1 -1
  210. package/dist/runtime/mock.js +1 -1
  211. package/dist/server/app_backend.d.ts +14 -11
  212. package/dist/server/app_backend.d.ts.map +1 -1
  213. package/dist/server/app_backend.js +12 -8
  214. package/dist/server/app_server.d.ts +7 -7
  215. package/dist/server/app_server.d.ts.map +1 -1
  216. package/dist/server/app_server.js +36 -31
  217. package/dist/server/validate_nginx.d.ts +1 -1
  218. package/dist/server/validate_nginx.js +1 -1
  219. package/dist/testing/CLAUDE.md +73 -55
  220. package/dist/testing/admin_integration.d.ts +5 -6
  221. package/dist/testing/admin_integration.d.ts.map +1 -1
  222. package/dist/testing/admin_integration.js +100 -96
  223. package/dist/testing/adversarial_headers.js +1 -1
  224. package/dist/testing/app_server.d.ts +11 -14
  225. package/dist/testing/app_server.d.ts.map +1 -1
  226. package/dist/testing/app_server.js +18 -17
  227. package/dist/testing/assertions.d.ts.map +1 -1
  228. package/dist/testing/assertions.js +2 -1
  229. package/dist/testing/attack_surface.d.ts.map +1 -1
  230. package/dist/testing/attack_surface.js +15 -9
  231. package/dist/testing/audit_completeness.d.ts +2 -2
  232. package/dist/testing/audit_completeness.d.ts.map +1 -1
  233. package/dist/testing/audit_completeness.js +53 -39
  234. package/dist/testing/auth_apps.d.ts +5 -4
  235. package/dist/testing/auth_apps.d.ts.map +1 -1
  236. package/dist/testing/auth_apps.js +28 -22
  237. package/dist/testing/data_exposure.d.ts.map +1 -1
  238. package/dist/testing/data_exposure.js +5 -5
  239. package/dist/testing/db.d.ts +1 -1
  240. package/dist/testing/db.d.ts.map +1 -1
  241. package/dist/testing/db.js +4 -4
  242. package/dist/testing/db_entities.d.ts +22 -0
  243. package/dist/testing/db_entities.d.ts.map +1 -0
  244. package/dist/testing/db_entities.js +28 -0
  245. package/dist/testing/entities.d.ts +10 -8
  246. package/dist/testing/entities.d.ts.map +1 -1
  247. package/dist/testing/entities.js +22 -18
  248. package/dist/testing/integration.d.ts.map +1 -1
  249. package/dist/testing/integration.js +13 -14
  250. package/dist/testing/integration_helpers.d.ts +8 -6
  251. package/dist/testing/integration_helpers.d.ts.map +1 -1
  252. package/dist/testing/integration_helpers.js +29 -23
  253. package/dist/testing/middleware.d.ts +15 -11
  254. package/dist/testing/middleware.d.ts.map +1 -1
  255. package/dist/testing/middleware.js +75 -32
  256. package/dist/testing/rpc_attack_surface.d.ts.map +1 -1
  257. package/dist/testing/rpc_attack_surface.js +40 -24
  258. package/dist/testing/rpc_helpers.d.ts.map +1 -1
  259. package/dist/testing/rpc_helpers.js +3 -1
  260. package/dist/testing/rpc_round_trip.d.ts +1 -1
  261. package/dist/testing/rpc_round_trip.d.ts.map +1 -1
  262. package/dist/testing/rpc_round_trip.js +14 -13
  263. package/dist/testing/sse_round_trip.d.ts +3 -4
  264. package/dist/testing/sse_round_trip.d.ts.map +1 -1
  265. package/dist/testing/sse_round_trip.js +7 -11
  266. package/dist/testing/standard.d.ts +1 -1
  267. package/dist/testing/stubs.d.ts +25 -0
  268. package/dist/testing/stubs.d.ts.map +1 -1
  269. package/dist/testing/stubs.js +43 -2
  270. package/dist/testing/surface_invariants.d.ts +2 -2
  271. package/dist/testing/ws_round_trip.d.ts +12 -13
  272. package/dist/testing/ws_round_trip.d.ts.map +1 -1
  273. package/dist/testing/ws_round_trip.js +24 -12
  274. package/dist/ui/AdminAccounts.svelte +23 -20
  275. package/dist/ui/AdminOverview.svelte +15 -13
  276. package/dist/ui/AdminOverview.svelte.d.ts.map +1 -1
  277. package/dist/ui/{AdminPermitHistory.svelte → AdminRoleGrantHistory.svelte} +12 -12
  278. package/dist/ui/AdminRoleGrantHistory.svelte.d.ts +4 -0
  279. package/dist/ui/AdminRoleGrantHistory.svelte.d.ts.map +1 -0
  280. package/dist/ui/BootstrapForm.svelte +1 -1
  281. package/dist/ui/CLAUDE.md +65 -59
  282. package/dist/ui/{PermitOfferForm.svelte → RoleGrantOfferForm.svelte} +37 -22
  283. package/dist/ui/RoleGrantOfferForm.svelte.d.ts +20 -0
  284. package/dist/ui/RoleGrantOfferForm.svelte.d.ts.map +1 -0
  285. package/dist/ui/{PermitOfferHistory.svelte → RoleGrantOfferHistory.svelte} +12 -12
  286. package/dist/ui/{PermitOfferHistory.svelte.d.ts → RoleGrantOfferHistory.svelte.d.ts} +4 -4
  287. package/dist/ui/RoleGrantOfferHistory.svelte.d.ts.map +1 -0
  288. package/dist/ui/{PermitOfferInbox.svelte → RoleGrantOfferInbox.svelte} +14 -14
  289. package/dist/ui/{PermitOfferInbox.svelte.d.ts → RoleGrantOfferInbox.svelte.d.ts} +4 -4
  290. package/dist/ui/RoleGrantOfferInbox.svelte.d.ts.map +1 -0
  291. package/dist/ui/SignupForm.svelte +1 -1
  292. package/dist/ui/SurfaceExplorer.svelte +35 -15
  293. package/dist/ui/SurfaceExplorer.svelte.d.ts.map +1 -1
  294. package/dist/ui/account_sessions_state.svelte.d.ts +2 -3
  295. package/dist/ui/account_sessions_state.svelte.d.ts.map +1 -1
  296. package/dist/ui/account_sessions_state.svelte.js +2 -3
  297. package/dist/ui/admin_accounts_state.svelte.d.ts +25 -18
  298. package/dist/ui/admin_accounts_state.svelte.d.ts.map +1 -1
  299. package/dist/ui/admin_accounts_state.svelte.js +28 -17
  300. package/dist/ui/admin_rpc_adapters.d.ts +20 -20
  301. package/dist/ui/admin_rpc_adapters.d.ts.map +1 -1
  302. package/dist/ui/admin_rpc_adapters.js +17 -17
  303. package/dist/ui/admin_sessions_state.svelte.d.ts +2 -2
  304. package/dist/ui/admin_sessions_state.svelte.js +2 -2
  305. package/dist/ui/audit_log_state.svelte.d.ts +7 -7
  306. package/dist/ui/audit_log_state.svelte.d.ts.map +1 -1
  307. package/dist/ui/audit_log_state.svelte.js +6 -6
  308. package/dist/ui/auth_state.svelte.d.ts +3 -3
  309. package/dist/ui/auth_state.svelte.d.ts.map +1 -1
  310. package/dist/ui/auth_state.svelte.js +6 -6
  311. package/dist/ui/format_scope.d.ts +2 -2
  312. package/dist/ui/format_scope.js +2 -2
  313. package/dist/ui/{permit_offers_state.svelte.d.ts → role_grant_offers_state.svelte.d.ts} +39 -31
  314. package/dist/ui/role_grant_offers_state.svelte.d.ts.map +1 -0
  315. package/dist/ui/{permit_offers_state.svelte.js → role_grant_offers_state.svelte.js} +25 -19
  316. package/dist/ui/ui_format.js +2 -2
  317. package/package.json +3 -3
  318. package/dist/auth/permit_offer_action_specs.d.ts.map +0 -1
  319. package/dist/auth/permit_offer_action_specs.js +0 -227
  320. package/dist/auth/permit_offer_actions.d.ts +0 -110
  321. package/dist/auth/permit_offer_actions.d.ts.map +0 -1
  322. package/dist/auth/permit_offer_actions.js +0 -452
  323. package/dist/auth/permit_offer_notifications.d.ts.map +0 -1
  324. package/dist/auth/permit_offer_notifications.js +0 -182
  325. package/dist/auth/permit_offer_queries.d.ts +0 -183
  326. package/dist/auth/permit_offer_queries.d.ts.map +0 -1
  327. package/dist/auth/permit_offer_queries.js +0 -408
  328. package/dist/auth/permit_offer_schema.d.ts +0 -103
  329. package/dist/auth/permit_offer_schema.d.ts.map +0 -1
  330. package/dist/auth/permit_queries.d.ts +0 -210
  331. package/dist/auth/permit_queries.d.ts.map +0 -1
  332. package/dist/auth/permit_queries.js +0 -294
  333. package/dist/auth/require_keeper.d.ts +0 -20
  334. package/dist/auth/require_keeper.d.ts.map +0 -1
  335. package/dist/auth/require_keeper.js +0 -35
  336. package/dist/auth/route_guards.d.ts +0 -21
  337. package/dist/auth/route_guards.d.ts.map +0 -1
  338. package/dist/auth/route_guards.js +0 -32
  339. package/dist/auth/session_lifecycle.d.ts +0 -37
  340. package/dist/auth/session_lifecycle.d.ts.map +0 -1
  341. package/dist/auth/session_lifecycle.js +0 -29
  342. package/dist/ui/AdminPermitHistory.svelte.d.ts +0 -4
  343. package/dist/ui/AdminPermitHistory.svelte.d.ts.map +0 -1
  344. package/dist/ui/PermitOfferForm.svelte.d.ts +0 -14
  345. package/dist/ui/PermitOfferForm.svelte.d.ts.map +0 -1
  346. package/dist/ui/PermitOfferHistory.svelte.d.ts.map +0 -1
  347. package/dist/ui/PermitOfferInbox.svelte.d.ts.map +0 -1
  348. package/dist/ui/permit_offers_state.svelte.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Reactive state for the audit log viewer.
3
3
  *
4
- * Two fetch primitives (`fetch` for events, `fetch_permit_history` for the
4
+ * Two fetch primitives (`fetch` for events, `fetch_role_grant_history` for the
5
5
  * grant/revoke shortcut) flow through an injected RPC adapter; the SSE
6
6
  * stream continues to use `EventSource` directly — streams aren't an RPC
7
7
  * concern.
@@ -19,7 +19,7 @@ export const audit_log_rpc_context = create_context(() => () => null);
19
19
  export class AuditLogState extends Loadable {
20
20
  #get_rpc;
21
21
  events = $state.raw([]);
22
- permit_history_events = $state.raw([]);
22
+ role_grant_history_events = $state.raw([]);
23
23
  count = $derived(this.events.length);
24
24
  /** Whether the SSE stream is currently connected. */
25
25
  connected = $state.raw(false);
@@ -34,7 +34,7 @@ export class AuditLogState extends Loadable {
34
34
  this.#get_rpc = options?.get_rpc ?? (() => null);
35
35
  this.#stream_url = options?.stream_url ?? '/api/admin/audit/stream';
36
36
  }
37
- /** True when an RPC adapter is wired. `fetch`/`fetch_permit_history` no-op without it. */
37
+ /** True when an RPC adapter is wired. `fetch`/`fetch_role_grant_history` no-op without it. */
38
38
  get has_rpc() {
39
39
  return this.#get_rpc() !== null;
40
40
  }
@@ -50,15 +50,15 @@ export class AuditLogState extends Loadable {
50
50
  this.#update_last_seq(this.events);
51
51
  });
52
52
  }
53
- async fetch_permit_history(limit, offset) {
53
+ async fetch_role_grant_history(limit, offset) {
54
54
  const rpc = this.#get_rpc();
55
55
  if (!rpc) {
56
56
  this.error = 'rpc adapter not wired';
57
57
  return;
58
58
  }
59
59
  await this.run(async () => {
60
- const { events } = await rpc.permit_history({ limit, offset });
61
- this.permit_history_events = events;
60
+ const { events } = await rpc.role_grant_history({ limit, offset });
61
+ this.role_grant_history_events = events;
62
62
  });
63
63
  }
64
64
  /**
@@ -31,7 +31,7 @@
31
31
  *
32
32
  * @module
33
33
  */
34
- import { type ActorSummaryJson, type PermitSummaryJson, type SessionAccount } from '../auth/account_schema.js';
34
+ import { type ActorSummaryJson, type RoleGrantSummaryJson, type SessionAccount } from '../auth/account_schema.js';
35
35
  /**
36
36
  * Svelte context for `AuthState`.
37
37
  * Use `auth_state_context.set(state)` in the provider and `auth_state_context.get()` to access.
@@ -47,8 +47,8 @@ export declare class AuthState {
47
47
  verify_error: string | null;
48
48
  account: SessionAccount | null;
49
49
  actor: ActorSummaryJson | null;
50
- permits: Array<PermitSummaryJson>;
51
- readonly active_permits: Array<PermitSummaryJson>;
50
+ role_grants: Array<RoleGrantSummaryJson>;
51
+ readonly active_role_grants: Array<RoleGrantSummaryJson>;
52
52
  readonly roles: Array<string>;
53
53
  /** True when bootstrap is available (no accounts exist yet). */
54
54
  needs_bootstrap: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"auth_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/auth_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAA8B,CAAC;AAE9D,qBAAa,SAAS;IACrB,SAAS,UAAqB;IAC9B,QAAQ,UAAqB;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAoB;IAC/C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAoB;IAClD,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAoB;IAClD,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAkB;IACnD,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAE/C;IACF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAoD;IAEjF,gEAAgE;IAChE,eAAe,UAAqB;IAEpC;;;;;;;;OAQG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BpC;;;;;;;OAOG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwCjE;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCpF;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4ClF;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
1
+ {"version":3,"file":"auth_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/auth_state.svelte.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAA8B,CAAC;AAE9D,qBAAa,SAAS;IACrB,SAAS,UAAqB;IAC9B,QAAQ,UAAqB;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAoB;IAC/C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAoB;IAClD,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAoB;IAClD,WAAW,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAkB;IAC1D,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAEtD;IACF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAwD;IAErF,gEAAgE;IAChE,eAAe,UAAqB;IAEpC;;;;;;;;OAQG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BpC;;;;;;;OAOG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwCjE;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCpF;;;;;;;OAOG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4ClF;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
@@ -33,7 +33,7 @@
33
33
  */
34
34
  import { create_context } from '@fuzdev/fuz_ui/context_helpers.js';
35
35
  import { ui_fetch } from './ui_fetch.js';
36
- import { is_permit_active, } from '../auth/account_schema.js';
36
+ import { is_role_grant_active, } from '../auth/account_schema.js';
37
37
  /**
38
38
  * Svelte context for `AuthState`.
39
39
  * Use `auth_state_context.set(state)` in the provider and `auth_state_context.get()` to access.
@@ -45,9 +45,9 @@ export class AuthState {
45
45
  verify_error = $state.raw(null);
46
46
  account = $state.raw(null);
47
47
  actor = $state.raw(null);
48
- permits = $state.raw([]);
49
- active_permits = $derived(this.permits.filter((p) => is_permit_active(p)));
50
- roles = $derived(this.active_permits.map((p) => p.role));
48
+ role_grants = $state.raw([]);
49
+ active_role_grants = $derived(this.role_grants.filter((p) => is_role_grant_active(p)));
50
+ roles = $derived(this.active_role_grants.map((p) => p.role));
51
51
  /** True when bootstrap is available (no accounts exist yet). */
52
52
  needs_bootstrap = $state.raw(false);
53
53
  /**
@@ -68,7 +68,7 @@ export class AuthState {
68
68
  this.verified = true;
69
69
  this.account = data.account ?? null;
70
70
  this.actor = data.actor ?? null;
71
- this.permits = data.permits ?? [];
71
+ this.role_grants = data.role_grants ?? [];
72
72
  this.needs_bootstrap = false;
73
73
  }
74
74
  else {
@@ -248,6 +248,6 @@ export class AuthState {
248
248
  this.verified = false;
249
249
  this.account = null;
250
250
  this.actor = null;
251
- this.permits = [];
251
+ this.role_grants = [];
252
252
  }
253
253
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Shared `format_scope` callback contract for permit-display components.
2
+ * Shared `format_scope` callback contract for role-grant-display components.
3
3
  *
4
- * Permits and offers carry a `scope_id` that names a consumer-owned resource
4
+ * Role grants and offers carry a `scope_id` that names a consumer-owned resource
5
5
  * (e.g. a classroom uuid). The default render is the raw uuid. Consumers wire
6
6
  * a `FormatScope` via context to render a human label without per-page
7
7
  * lookup or forking the components.
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Shared `format_scope` callback contract for permit-display components.
2
+ * Shared `format_scope` callback contract for role-grant-display components.
3
3
  *
4
- * Permits and offers carry a `scope_id` that names a consumer-owned resource
4
+ * Role grants and offers carry a `scope_id` that names a consumer-owned resource
5
5
  * (e.g. a classroom uuid). The default render is the raw uuid. Consumers wire
6
6
  * a `FormatScope` via context to render a human label without per-page
7
7
  * lookup or forking the components.
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Reactive state for the consentful-permits offer flow.
2
+ * Reactive state for the consentful-role-grants offer flow.
3
3
  *
4
4
  * Maintains one offer cache keyed by id, seeded by the RPC list/history
5
- * actions and kept live by the six permit-offer WebSocket notifications.
5
+ * actions and kept live by the six role-grant-offer WebSocket notifications.
6
6
  * `incoming` (recipient-side pending) and `outgoing` (grantor-side pending)
7
7
  * are derived views; `history` is the full cache ordered newest-first for
8
8
  * the grantor/admin history view.
@@ -16,44 +16,45 @@
16
16
  * @module
17
17
  */
18
18
  import { Loadable } from './loadable.svelte.js';
19
- import type { PermitOfferJson } from '../auth/permit_offer_schema.js';
19
+ import type { RoleGrantOfferJson } from '../auth/role_grant_offer_schema.js';
20
20
  /**
21
- * Svelte context for `PermitOffersState`.
22
- * Use `permit_offers_state_context.set(state)` in the provider and
23
- * `permit_offers_state_context.get()` to access.
21
+ * Svelte context for `RoleGrantOffersState`.
22
+ * Use `role_grant_offers_state_context.set(state)` in the provider and
23
+ * `role_grant_offers_state_context.get()` to access.
24
24
  */
25
- export declare const permit_offers_state_context: {
26
- get: (error_message?: string) => PermitOffersState;
27
- get_maybe: () => PermitOffersState | undefined;
28
- set: (value: PermitOffersState) => PermitOffersState;
25
+ export declare const role_grant_offers_state_context: {
26
+ get: (error_message?: string) => RoleGrantOffersState;
27
+ get_maybe: () => RoleGrantOffersState | undefined;
28
+ set: (value: RoleGrantOffersState) => RoleGrantOffersState;
29
29
  };
30
30
  /**
31
- * Narrow RPC surface consumed by `PermitOffersState`. Consumers adapt their
31
+ * Narrow RPC surface consumed by `RoleGrantOffersState`. Consumers adapt their
32
32
  * typed client (e.g. a `create_rpc_client` Proxy) to this shape — the state
33
33
  * class stays decoupled from the client's `Result` return type so tests can
34
34
  * inject plain-function stubs.
35
35
  */
36
- export interface PermitOffersRpc {
36
+ export interface RoleGrantOffersRpc {
37
37
  list: () => Promise<{
38
- offers: Array<PermitOfferJson>;
38
+ offers: Array<RoleGrantOfferJson>;
39
39
  }>;
40
40
  history: (options?: {
41
41
  limit?: number;
42
42
  offset?: number;
43
43
  }) => Promise<{
44
- offers: Array<PermitOfferJson>;
44
+ offers: Array<RoleGrantOfferJson>;
45
45
  }>;
46
46
  create: (params: {
47
47
  to_account_id: string;
48
+ to_actor_id?: string | null;
48
49
  role: string;
49
50
  scope_id?: string | null;
50
51
  message?: string | null;
51
52
  }) => Promise<{
52
- offer: PermitOfferJson;
53
+ offer: RoleGrantOfferJson;
53
54
  }>;
54
55
  accept: (offer_id: string) => Promise<{
55
- permit_id: string;
56
- offer: PermitOfferJson;
56
+ role_grant_id: string;
57
+ offer: RoleGrantOfferJson;
57
58
  superseded_offer_ids: Array<string>;
58
59
  }>;
59
60
  decline: (offer_id: string, reason?: string | null) => Promise<{
@@ -64,14 +65,14 @@ export interface PermitOffersRpc {
64
65
  }>;
65
66
  }
66
67
  /** Narrow WS notification envelope — method + params, matching `JsonrpcNotification`. */
67
- export interface PermitOfferNotification {
68
+ export interface RoleGrantOfferNotification {
68
69
  method: string;
69
70
  params: unknown;
70
71
  }
71
72
  /** Subscription primitive — consumer wires their WS receiver; returns a disposer. */
72
- export type PermitOfferSubscribe = (handler: (notification: PermitOfferNotification) => void) => () => void;
73
- export interface PermitOffersStateOptions {
74
- rpc: PermitOffersRpc;
73
+ export type RoleGrantOfferSubscribe = (handler: (notification: RoleGrantOfferNotification) => void) => () => void;
74
+ export interface RoleGrantOffersStateOptions {
75
+ rpc: RoleGrantOffersRpc;
75
76
  /** Reactive accessor for the current account id; returns `null` when logged out. */
76
77
  account_id: () => string | null;
77
78
  /**
@@ -80,16 +81,16 @@ export interface PermitOffersStateOptions {
80
81
  */
81
82
  actor_id: () => string | null;
82
83
  }
83
- export declare class PermitOffersState extends Loadable {
84
+ export declare class RoleGrantOffersState extends Loadable {
84
85
  #private;
85
86
  /** Pending offers for the current account, soonest-expiring first. */
86
- readonly incoming: Array<PermitOfferJson>;
87
+ readonly incoming: Array<RoleGrantOfferJson>;
87
88
  /** Pending offers from the current actor, newest-created first. */
88
- readonly outgoing: Array<PermitOfferJson>;
89
+ readonly outgoing: Array<RoleGrantOfferJson>;
89
90
  /** Every offer known to this state, newest-created first. Feeds the history view. */
90
- readonly history: Array<PermitOfferJson>;
91
+ readonly history: Array<RoleGrantOfferJson>;
91
92
  readonly incoming_count: number;
92
- constructor(options: PermitOffersStateOptions);
93
+ constructor(options: RoleGrantOffersStateOptions);
93
94
  /** Seed the cache with the recipient-side pending inbox. */
94
95
  fetch(): Promise<void>;
95
96
  /** Seed both-directions history (includes terminal rows). */
@@ -97,13 +98,20 @@ export declare class PermitOffersState extends Loadable {
97
98
  limit?: number;
98
99
  offset?: number;
99
100
  }): Promise<void>;
100
- /** Issue a new offer; merges the returned offer into the cache on success. */
101
+ /**
102
+ * Issue a new offer; merges the returned offer into the cache on success.
103
+ *
104
+ * `to_actor_id` (optional) narrows the offer to a specific actor on
105
+ * `to_account_id`; omit / null for the account-grain default (any actor
106
+ * on the recipient account may accept).
107
+ */
101
108
  create(params: {
102
109
  to_account_id: string;
110
+ to_actor_id?: string | null;
103
111
  role: string;
104
112
  scope_id?: string | null;
105
113
  message?: string | null;
106
- }): Promise<PermitOfferJson | undefined>;
114
+ }): Promise<RoleGrantOfferJson | undefined>;
107
115
  /** Accept an offer; stamps it terminal in the cache and drops any siblings the server superseded. */
108
116
  accept(offer_id: string): Promise<void>;
109
117
  decline(offer_id: string, reason?: string | null): Promise<void>;
@@ -112,7 +120,7 @@ export declare class PermitOffersState extends Loadable {
112
120
  * Wire a notification subscription. The handler dispatches each matching
113
121
  * notification into `apply_notification`; the returned disposer unwires.
114
122
  */
115
- subscribe(subscribe_fn: PermitOfferSubscribe): () => void;
123
+ subscribe(subscribe_fn: RoleGrantOfferSubscribe): () => void;
116
124
  /**
117
125
  * Reduce a single WS notification into the cache. Exposed so consumers
118
126
  * wiring their WS receiver directly (without `subscribe`) and tests can
@@ -120,8 +128,8 @@ export declare class PermitOffersState extends Loadable {
120
128
  *
121
129
  * @mutates `this`
122
130
  */
123
- apply_notification(notification: PermitOfferNotification): void;
131
+ apply_notification(notification: RoleGrantOfferNotification): void;
124
132
  /** Clear the cache and reset loading/error state. */
125
133
  reset(): void;
126
134
  }
127
- //# sourceMappingURL=permit_offers_state.svelte.d.ts.map
135
+ //# sourceMappingURL=role_grant_offers_state.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role_grant_offers_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/ui/role_grant_offers_state.svelte.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Reactive state for the consentful-permits offer flow.
2
+ * Reactive state for the consentful-role-grants offer flow.
3
3
  *
4
4
  * Maintains one offer cache keyed by id, seeded by the RPC list/history
5
- * actions and kept live by the six permit-offer WebSocket notifications.
5
+ * actions and kept live by the six role-grant-offer WebSocket notifications.
6
6
  * `incoming` (recipient-side pending) and `outgoing` (grantor-side pending)
7
7
  * are derived views; `history` is the full cache ordered newest-first for
8
8
  * the grantor/admin history view.
@@ -17,18 +17,18 @@
17
17
  */
18
18
  import { create_context } from '@fuzdev/fuz_ui/context_helpers.js';
19
19
  import { Loadable } from './loadable.svelte.js';
20
- import { PERMIT_OFFER_ACCEPTED_NOTIFICATION_METHOD, PERMIT_OFFER_DECLINED_NOTIFICATION_METHOD, PERMIT_OFFER_RECEIVED_NOTIFICATION_METHOD, PERMIT_OFFER_RETRACTED_NOTIFICATION_METHOD, PERMIT_OFFER_SUPERSEDE_NOTIFICATION_METHOD, PERMIT_REVOKE_NOTIFICATION_METHOD, } from '../auth/permit_offer_notifications.js';
20
+ import { ROLE_GRANT_OFFER_ACCEPTED_NOTIFICATION_METHOD, ROLE_GRANT_OFFER_DECLINED_NOTIFICATION_METHOD, ROLE_GRANT_OFFER_RECEIVED_NOTIFICATION_METHOD, ROLE_GRANT_OFFER_RETRACTED_NOTIFICATION_METHOD, ROLE_GRANT_OFFER_SUPERSEDE_NOTIFICATION_METHOD, ROLE_GRANT_REVOKE_NOTIFICATION_METHOD, } from '../auth/role_grant_offer_notifications.js';
21
21
  /**
22
- * Svelte context for `PermitOffersState`.
23
- * Use `permit_offers_state_context.set(state)` in the provider and
24
- * `permit_offers_state_context.get()` to access.
22
+ * Svelte context for `RoleGrantOffersState`.
23
+ * Use `role_grant_offers_state_context.set(state)` in the provider and
24
+ * `role_grant_offers_state_context.get()` to access.
25
25
  */
26
- export const permit_offers_state_context = create_context();
26
+ export const role_grant_offers_state_context = create_context();
27
27
  const is_terminal = (o) => o.accepted_at !== null ||
28
28
  o.declined_at !== null ||
29
29
  o.retracted_at !== null ||
30
30
  o.superseded_at !== null;
31
- export class PermitOffersState extends Loadable {
31
+ export class RoleGrantOffersState extends Loadable {
32
32
  #rpc;
33
33
  #get_account_id;
34
34
  #get_actor_id;
@@ -98,7 +98,13 @@ export class PermitOffersState extends Loadable {
98
98
  this.#merge_offers(offers);
99
99
  });
100
100
  }
101
- /** Issue a new offer; merges the returned offer into the cache on success. */
101
+ /**
102
+ * Issue a new offer; merges the returned offer into the cache on success.
103
+ *
104
+ * `to_actor_id` (optional) narrows the offer to a specific actor on
105
+ * `to_account_id`; omit / null for the account-grain default (any actor
106
+ * on the recipient account may accept).
107
+ */
102
108
  async create(params) {
103
109
  return this.run(async () => {
104
110
  const { offer } = await this.#rpc.create(params);
@@ -149,23 +155,23 @@ export class PermitOffersState extends Loadable {
149
155
  */
150
156
  apply_notification(notification) {
151
157
  switch (notification.method) {
152
- case PERMIT_OFFER_RECEIVED_NOTIFICATION_METHOD:
153
- case PERMIT_OFFER_RETRACTED_NOTIFICATION_METHOD:
154
- case PERMIT_OFFER_ACCEPTED_NOTIFICATION_METHOD:
155
- case PERMIT_OFFER_DECLINED_NOTIFICATION_METHOD:
156
- case PERMIT_OFFER_SUPERSEDE_NOTIFICATION_METHOD: {
158
+ case ROLE_GRANT_OFFER_RECEIVED_NOTIFICATION_METHOD:
159
+ case ROLE_GRANT_OFFER_RETRACTED_NOTIFICATION_METHOD:
160
+ case ROLE_GRANT_OFFER_ACCEPTED_NOTIFICATION_METHOD:
161
+ case ROLE_GRANT_OFFER_DECLINED_NOTIFICATION_METHOD:
162
+ case ROLE_GRANT_OFFER_SUPERSEDE_NOTIFICATION_METHOD: {
157
163
  const params = notification.params;
158
164
  if (!params || typeof params !== 'object' || !('offer' in params))
159
165
  return;
160
166
  const offer = params.offer;
161
- if (!is_permit_offer_like(offer))
167
+ if (!is_role_grant_offer_like(offer))
162
168
  return;
163
169
  this.#merge_offers([offer]);
164
170
  return;
165
171
  }
166
- case PERMIT_REVOKE_NOTIFICATION_METHOD:
167
- // permit_revoke is a permit-lifecycle event — the offer cache
168
- // is unaffected. Consumers handle it in an auth/permits state.
172
+ case ROLE_GRANT_REVOKE_NOTIFICATION_METHOD:
173
+ // role_grant_revoke is a role-grant-lifecycle event — the offer cache
174
+ // is unaffected. Consumers handle it in an auth/role_grants state.
169
175
  return;
170
176
  default:
171
177
  // unrelated notifications — ignore silently.
@@ -192,7 +198,7 @@ export class PermitOffersState extends Loadable {
192
198
  this.#offers = next;
193
199
  }
194
200
  }
195
- const is_permit_offer_like = (value) => !!value &&
201
+ const is_role_grant_offer_like = (value) => !!value &&
196
202
  typeof value === 'object' &&
197
203
  typeof value.id === 'string' &&
198
204
  typeof value.to_account_id === 'string' &&
@@ -159,9 +159,9 @@ export const format_audit_metadata = (event_type, metadata) => {
159
159
  return metadata.token_id ? `token: ${truncate_middle(metadata.token_id, 12)}` : '';
160
160
  case 'token_revoke_all':
161
161
  return metadata.count != null ? `${metadata.count} tokens` : '';
162
- case 'permit_grant':
162
+ case 'role_grant_create':
163
163
  return metadata.role ? `role: ${metadata.role}` : '';
164
- case 'permit_revoke':
164
+ case 'role_grant_revoke':
165
165
  return metadata.role ? `role: ${metadata.role}` : '';
166
166
  case 'invite_create':
167
167
  return [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_app",
3
- "version": "0.54.0",
3
+ "version": "0.56.0",
4
4
  "description": "fullstack app library",
5
5
  "glyph": "🗝",
6
6
  "logo": "logo.svg",
@@ -22,7 +22,7 @@
22
22
  "node": ">=24.14"
23
23
  },
24
24
  "peerDependencies": {
25
- "@electric-sql/pglite": ">=0.3",
25
+ "@electric-sql/pglite": ">=0.4",
26
26
  "@fuzdev/blake3_wasm": ">=0.1.0",
27
27
  "@fuzdev/fuz_util": ">=0.53.4",
28
28
  "@node-rs/argon2": ">=2",
@@ -41,7 +41,7 @@
41
41
  }
42
42
  },
43
43
  "devDependencies": {
44
- "@electric-sql/pglite": "^0.3.16",
44
+ "@electric-sql/pglite": "^0.4.5",
45
45
  "@fuzdev/blake3_wasm": "^0.1.0",
46
46
  "@fuzdev/fuz_code": "^0.45.1",
47
47
  "@fuzdev/fuz_css": "^0.59.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"permit_offer_action_specs.d.ts","sourceRoot":"../src/lib/","sources":["../../src/lib/auth/permit_offer_action_specs.ts"],"names":[],"mappings":"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"}