permdock 0.7.0 → 0.8.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 (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-CL-QCITA.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  14. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  35. package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
  45. package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
  46. package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
  52. package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
  53. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  54. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  55. package/dist/catalog-mRQQQhNK.js +1 -0
  56. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
  77. package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
  78. package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
  79. package/dist/collect-B5BL3klN.js +1 -0
  80. package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
  81. package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
  98. package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
  99. package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
  100. package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
  101. package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
  102. package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
  103. package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  127. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  128. package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
  130. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  131. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-B5kvbAoZ.js +58 -0
  150. package/dist/gen-DWCYcMQM.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
  164. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  169. package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
  170. package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
  171. package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
  172. package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
  173. package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
  174. package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
  175. package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +33 -33
  178. package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
  179. package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +72 -26
  212. package/dist/next/index.js +110 -6
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  223. package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
  224. package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/output-files-BHOIlrfD.js +1 -0
  232. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  233. package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
  234. package/dist/ownership-B4L59T9u.js +1054 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
  245. package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
  262. package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
  263. package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
  264. package/dist/powersync-Djf-zCpB.js +1 -0
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/pull-B65ndFNZ.js +1 -0
  282. package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
  283. package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
  284. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  285. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-CF7xXLSG.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
  306. package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
  310. package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
  311. package/dist/run-D-JE8QWb.js +1 -0
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  333. package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  334. package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
  335. package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
  344. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  351. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  357. package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
  368. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
  369. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  370. package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +224 -141
  394. package/dist/testing/index.js +299 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  407. package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
  408. package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
  409. package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
  410. package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
  411. package/dist/types-B_d_g7T3.d.ts +262 -0
  412. package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
  413. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  414. package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
  415. package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
  416. package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
  417. package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  418. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  419. package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
  420. package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
  421. package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-CYeXek0p.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
  441. package/dist/watch-DB42U1ib.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  452. package/package.json +7 -7
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +14 -22
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -1,34 +1,40 @@
1
1
  import { a as sole, n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
4
- import { n as role, t as normalizeAssurance } from "./role-builder-C1VJzvcr.js";
5
- import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { n as isForbiddenKey } from "./paths-CUvURzHp.js";
4
+ import { n as role, t as normalizeAssurance } from "./role-builder-BK2-T6oD.js";
5
+ import { n as PermDockValidationError } from "./validation-error-CYg2kJEw.js";
6
6
  import { t as wireDenials } from "./wire-denial-C7PaVYEM.js";
7
- import { o as sameId } from "./expiry-D4_YKRKD.js";
8
- import { n as internalsOf } from "./internals-Dk8A8fX3.js";
9
- import { a as getResource, c as listPermissions, h as formerKeys, m as annotationsFor, n as findPermission } from "./permission-registry-DpPtSKNZ.js";
10
- import { n as isThenable, t as ignoreRejection } from "./thenable-yD7SabqG.js";
11
- import { i as readAppData } from "./app-data-MuyzVqX8.js";
12
- import { a as durationOf, d as isoNow, o as epochSeconds, r as assertDuration, s as instantAt, t as INVALID_NOW } from "./time-DkWjdL98.js";
7
+ import { o as sameId } from "./expiry-6XByK0dm.js";
8
+ import { n as internalsOf } from "./internals-B3IgHrvo.js";
9
+ import { a as getResource, c as listPermissions, h as formerKeys, m as annotationsFor, n as findPermission } from "./permission-registry-B8tYxPIt.js";
10
+ import { n as isThenable, t as ignoreRejection } from "./thenable-BNSM1U2R.js";
11
+ import { i as readAppData } from "./app-data-UNNm07jV.js";
12
+ import { a as durationOf, d as isoNow, o as epochSeconds, r as assertDuration, s as instantAt, t as INVALID_NOW } from "./time-nR1JesoH.js";
13
13
  import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
14
- import { c as rootMembershipId, f as scopeList, h as tenantOf, i as keepsPermission, o as normalizeMemberships, p as subjectForPermission, s as resolveScope } from "./scopes-BHsc-wp-.js";
15
- import { a as readOnlyActorRefuses, c as rowIdOf, i as delegatedPermissions, l as rowValues, n as coveredByDelegation, o as requiresStandIn, r as coversRequirements, s as isRowPair, u as evaluateCondition } from "./delegation-C5rOdTp5.js";
16
- import { a as authenticated, g as isRole, i as assurance, m as findRole, o as flattenGrantee, r as asGrantee } from "./grantee-BrRANrpT.js";
17
- import { a as grantCoversField, i as wireValidity, t as isActive } from "./validity-CZ7-y0Cj.js";
18
- import { o as resourceRoleCondition } from "./grantee-conditions-C6P1Tvol.js";
19
- import { c as nowSeconds, i as matchScopedMembership, l as partitionsOf, n as inTeam, p as scopeField, r as isMembershipExpired } from "./tenancy-CmeBQ6Nv.js";
20
- import { o as levelCondition, r as grantList, t as declaredRoleNames } from "./policy-DaJy4nK4.js";
14
+ import { c as rootMembershipId, f as scopeList, h as tenantOf, i as keepsPermission, o as normalizeMemberships, p as subjectForPermission, s as resolveScope } from "./scopes-0Up_UA2t.js";
15
+ import { a as readOnlyActorRefuses, c as rowIdOf, i as delegatedPermissions, l as rowValues, n as coveredByDelegation, o as requiresStandIn, r as coversRequirements, s as isRowPair, u as evaluateCondition } from "./delegation-CDB6_keF.js";
16
+ import { a as authenticated, g as isRole, i as assurance, m as findRole, o as flattenGrantee, r as asGrantee } from "./grantee-Dke-9rd1.js";
17
+ import { a as grantCoversField, i as wireValidity, t as isActive } from "./validity-Buc7w8E9.js";
18
+ import { o as resourceRoleCondition } from "./grantee-conditions-BrYPe-w0.js";
19
+ import { c as nowSeconds, i as matchScopedMembership, l as partitionsOf, n as inTeam, p as scopeField, r as isMembershipExpired } from "./tenancy-5d1zVBvK.js";
20
+ import { i as grantList, n as declaredRoleNames, s as levelCondition } from "./policy-CLQ8__GF.js";
21
21
  import { t as requiresApproval } from "./approval-required-TzNB9oQA.js";
22
- import { i as versionOf, r as tokenPayload, t as decisionToken } from "./token-2qYDvXz2.js";
23
- import { n as resolveRelated } from "./relation-walk-3OyDBF0S.js";
24
- import { t as eventInstant } from "./event-time-CsegxXxB.js";
22
+ import { i as versionOf, r as tokenPayload, t as decisionToken } from "./token-DC9EQiet.js";
23
+ import { n as resolveRelated } from "./relation-walk-DK_gkgL7.js";
24
+ import { t as eventInstant } from "./event-time-BGy48400.js";
25
25
  import { n as toWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
26
- import { n as matchGrantee, t as combineWhere } from "./grantee-match-0RtHWQDx.js";
26
+ import { n as matchGrantee, t as combineWhere } from "./grantee-match-7RZZvoT_.js";
27
27
  import { t as resourceIdOf } from "./resource-ref-CaS9yVPi.js";
28
28
  //#region src/core/approval-state.ts
29
- /** The denial detail when an `ApprovalPolicySource` threw or returned an invalid entry. */
29
+ /**
30
+ * The denial detail when an `ApprovalPolicySource` threw or returned an invalid
31
+ * entry.
32
+ */
30
33
  const APPROVAL_POLICY_UNAVAILABLE = "approval-policy-unavailable";
31
- /** The tenant a matched allow applies in: its membership's root scope, else the active tenant. */
34
+ /**
35
+ * The tenant a matched allow applies in: its membership's root scope, else the
36
+ * active tenant.
37
+ */
32
38
  function decisionTenant(subject, membership) {
33
39
  return (membership === void 0 ? void 0 : rootMembershipId(membership)) ?? subject.principal?.tenant;
34
40
  }
@@ -38,9 +44,9 @@ function isContact(principal) {
38
44
  return principal?.kind === "contact";
39
45
  }
40
46
  /**
41
- * A contact's memberships: only the `{ on }` ones count, each as
42
- * `via: 'contact'` and without seats, so a role whose `for` excludes
43
- * `contact` never applies and no `plan()` grantee matches.
47
+ * A contact's memberships: only the `{ on }` ones count, each as `via:
48
+ * 'contact'` and without seats, so a role whose `for` excludes `contact` never
49
+ * applies and no `plan()` grantee matches.
44
50
  */
45
51
  function contactMemberships(memberships) {
46
52
  const kept = [];
@@ -58,14 +64,17 @@ function optsIn(policy, grant) {
58
64
  if (grant.role === null) return false;
59
65
  return policy.roles.find(({ name }) => name === grant.role)?.for?.includes("contact") === true;
60
66
  }
61
- /** Whether `subject` may use the allow `grant`: false only for a contact and a write its role does not open to contacts. */
67
+ /**
68
+ * Whether `subject` may use the allow `grant`: false only for a contact and a
69
+ * write its role does not open to contacts.
70
+ */
62
71
  function contactMayUse(policy, subject, grant) {
63
72
  return grant.effect !== "allow" || !isContact(subject.principal) || annotationsFor(grant.permission).readOnlyHint || optsIn(policy, grant);
64
73
  }
65
74
  /**
66
- * The allows a contact may use for `permission`: all of them for a
67
- * read-only permission, otherwise only those from a role whose `for` lists
68
- * `contact`. Every other subject keeps every allow.
75
+ * The allows a contact may use for `permission`: all of them for a read-only
76
+ * permission, otherwise only those from a role whose `for` lists `contact`.
77
+ * Every other subject keeps every allow.
69
78
  */
70
79
  function contactAllows(policy, subject, permission, allows) {
71
80
  if (!isContact(subject.principal) || annotationsFor(permission).readOnlyHint) return allows;
@@ -190,7 +199,10 @@ function evaluateBreakGlass(spec, subject, now) {
190
199
  }] : []]
191
200
  };
192
201
  }
193
- /** Support memberships (`via: 'support'`) the subject holds that demand an actor. */
202
+ /**
203
+ * Support memberships (`via: 'support'`) the subject holds that demand an
204
+ * actor.
205
+ */
194
206
  function actorRequiredVias(supports) {
195
207
  return new Set(supports.filter((spec) => spec.actorRequired).map((spec) => spec.role));
196
208
  }
@@ -225,18 +237,18 @@ function activationDenied(reason, to) {
225
237
  });
226
238
  }
227
239
  /**
228
- * Requests a just-in-time role activation. It never writes: a granted
229
- * decision carries the elevated membership under `elevation` for the app to
230
- * write. `approval-required` comes back first when the role's `activation`
231
- * sets `approval`. Fail-closed: an unknown role, an ineligible subject, a
232
- * missing justification or stale authentication all deny.
240
+ * Requests a just-in-time role activation. It never writes: a granted decision
241
+ * carries the elevated membership under `elevation` for the app to write.
242
+ * `approval-required` comes back first when the role's `activation` sets
243
+ * `approval`. Fail-closed: an unknown role, an ineligible subject, a missing
244
+ * justification or stale authentication all deny.
233
245
  */
234
246
  /**
235
247
  * Requests a just-in-time activation of an eligible role for the subject of
236
248
  * `permdock`. It never writes: a granted decision carries the elevated
237
- * membership under `elevation` for the app to write, and
238
- * `approval-required` comes back first when the role's `activation` sets
239
- * `approval`. An instance built from a snapshot denies with `unsupported`.
249
+ * membership under `elevation` for the app to write, and `approval-required`
250
+ * comes back first when the role's `activation` sets `approval`. An instance
251
+ * built from a snapshot denies with `unsupported`.
240
252
  */
241
253
  function activate(permdock, input) {
242
254
  const internals = internalsOf(permdock);
@@ -526,7 +538,10 @@ function credentialRef(subject) {
526
538
  kind
527
539
  } : void 0;
528
540
  }
529
- /** `context.supportSession` counts only next to the `support` actor `subjectFromSupportSession` sets. */
541
+ /**
542
+ * `context.supportSession` counts only next to the `support` actor
543
+ * `subjectFromSupportSession` sets.
544
+ */
530
545
  function supportSessionRef(subject) {
531
546
  const value = subject.context["supportSession"];
532
547
  if (subject.actor?.kind !== "support" || value === null || typeof value !== "object" || !("id" in value) || typeof value.id !== "string" || value.id === "") return;
@@ -610,7 +625,10 @@ function finish(policy, subject, permission, data, decision, options, env, trust
610
625
  }
611
626
  //#endregion
612
627
  //#region src/core/evaluate/complete.ts
613
- /** Every exit of `evaluate`: names the permission, freezes, attaches the trace and emits. */
628
+ /**
629
+ * Every exit of `evaluate`: names the permission, freezes, attaches the trace
630
+ * and emits.
631
+ */
614
632
  function complete(call, raw, membership) {
615
633
  const { env, permission, tracer } = call;
616
634
  const decision = env.outcomeOnly !== true && raw.outcome === "denied" && raw.permission === void 0 ? {
@@ -640,7 +658,10 @@ function deniedWithAlternatives(state, denials) {
640
658
  }
641
659
  //#endregion
642
660
  //#region src/core/evaluate/allowed.ts
643
- /** The `granted` or `approval-required` decision for the chosen allow, with its token. */
661
+ /**
662
+ * The `granted` or `approval-required` decision for the chosen allow, with its
663
+ * token.
664
+ */
644
665
  function allowedDecision(state, allow, approval, quotaState) {
645
666
  const { policy, subject, permission, resource, env, current, next } = state;
646
667
  const resourceId = permission.kind === "collection" ? "*" : rowIdOf(current, resource?.id);
@@ -679,7 +700,10 @@ function allowedDecision(state, allow, approval, quotaState) {
679
700
  }
680
701
  //#endregion
681
702
  //#region src/core/custom-roles.ts
682
- /** The current key for a stored key, current or former; `undefined` when neither. */
703
+ /**
704
+ * The current key for a stored key, current or former; `undefined` when
705
+ * neither.
706
+ */
683
707
  function currentKey(policy, raw) {
684
708
  const leaf = findPermission(policy.permissions, raw);
685
709
  if (leaf === void 0) return;
@@ -711,8 +735,8 @@ function leveled(grant, level, condition) {
711
735
  }
712
736
  /**
713
737
  * The scope a custom role is held at: `scope` (a name or alias), the second
714
- * scope for the `team` input shape, else the first scope. `undefined` when
715
- * the policy does not declare it; such a role resolves to nothing.
738
+ * scope for the `team` input shape, else the first scope. `undefined` when the
739
+ * policy does not declare it; such a role resolves to nothing.
716
740
  */
717
741
  function customRoleScope(role, scopes) {
718
742
  if (role.scope === "global") return role.shared === true ? void 0 : "global";
@@ -723,11 +747,17 @@ function customRoleScope(role, scopes) {
723
747
  function customRoleId(role) {
724
748
  return role.scope === void 0 ? role.team : role.id;
725
749
  }
726
- /** A platform custom role: held through `principal.roles`, capped by the assignable global roles. */
750
+ /**
751
+ * A platform custom role: held through `principal.roles`, capped by the
752
+ * assignable global roles.
753
+ */
727
754
  function isGlobalCustomRole(role) {
728
755
  return role.scope === "global";
729
756
  }
730
- /** A shared custom role: defined once for every tenant, held on memberships of its scope in any tenant. */
757
+ /**
758
+ * A shared custom role: defined once for every tenant, held on memberships of
759
+ * its scope in any tenant.
760
+ */
731
761
  function isSharedCustomRole(role) {
732
762
  return role.shared === true;
733
763
  }
@@ -752,7 +782,8 @@ function isAssignableRole(policy, name) {
752
782
  * Every scope's ceiling, keyed by scope name (`global` for platform custom
753
783
  * roles): the code allows of declared `assignable` roles in that scope,
754
784
  * everything a custom role of the scope may ever reach. Hosted grants never
755
- * widen it. `assignable` narrows it to those role names (`CustomRoleSource.assignable`).
785
+ * widen it. `assignable` narrows it to those role names
786
+ * (`CustomRoleSource.assignable`).
756
787
  */
757
788
  function ceilings(policy, assignable) {
758
789
  const allowed = assignable === void 0 ? void 0 : new Set(assignable);
@@ -885,7 +916,7 @@ function resolveCustomRole(policy, role) {
885
916
  if (level !== void 0) {
886
917
  const leaf = findPermission(policy.permissions, key);
887
918
  const condition = typeof level === "string" && leaf?.kind === "instance" ? levelCondition(policy, leaf.resource, level) : void 0;
888
- if (condition === void 0) {
919
+ if (condition === void 0 || typeof level !== "string") {
889
920
  drop({
890
921
  permission: key,
891
922
  reason: "unknown-level",
@@ -894,7 +925,7 @@ function resolveCustomRole(policy, role) {
894
925
  denyKeys.add(key);
895
926
  continue;
896
927
  }
897
- narrowing = [String(level), condition];
928
+ narrowing = [level, condition];
898
929
  }
899
930
  if (!ceilingKeys.has(key)) {
900
931
  drop({
@@ -1010,7 +1041,10 @@ function unknownLevelsFor(policy, roles) {
1010
1041
  }
1011
1042
  return out;
1012
1043
  }
1013
- /** Every custom role's resolved grants, once per instance. Malformed roles resolve to nothing. */
1044
+ /**
1045
+ * Every custom role's resolved grants, once per instance. Malformed roles
1046
+ * resolve to nothing.
1047
+ */
1014
1048
  function customGrantsFor(policy, roles) {
1015
1049
  const declared = declaredRoleNames(policy);
1016
1050
  const out = [];
@@ -1032,7 +1066,10 @@ function tenantCustomRoles(policy, roles) {
1032
1066
  const declared = declaredRoleNames(policy);
1033
1067
  return effectiveCustomRoles(roles).filter((role) => !isGlobalCustomRole(role) && !declared.has(role.name));
1034
1068
  }
1035
- /** Whether a custom role held on memberships belongs to `tenant`: its own, or shared by every tenant. */
1069
+ /**
1070
+ * Whether a custom role held on memberships belongs to `tenant`: its own, or
1071
+ * shared by every tenant.
1072
+ */
1036
1073
  function customRoleOf(role, tenant) {
1037
1074
  return isSharedCustomRole(role) || sameId(role.tenant, tenant);
1038
1075
  }
@@ -1051,15 +1088,18 @@ function holdsCustomRole(membership, role, scopes) {
1051
1088
  function holdsGlobalCustomRole(roles, role) {
1052
1089
  return isGlobalCustomRole(role) && (roles ?? []).includes(role.name);
1053
1090
  }
1054
- /** A tenant's custom role inside that tenant, a shared role in any tenant, or a platform custom role anywhere. */
1091
+ /**
1092
+ * A tenant's custom role inside that tenant, a shared role in any tenant, or a
1093
+ * platform custom role anywhere.
1094
+ */
1055
1095
  function isCustomRoleName(name, roles, tenant) {
1056
1096
  return effectiveCustomRoles(roles).some((item) => item.name === name && (isGlobalCustomRole(item) || tenant !== void 0 && customRoleOf(item, tenant)));
1057
1097
  }
1058
1098
  /**
1059
- * The compact JWT form of custom roles for the `memberships[].grants` claim
1060
- * RLS reads in `jwt` mode: role name to entries, where `key` allows, `-key`
1061
- * denies and `@role` includes. Put a team custom role on its team membership.
1062
- * Pass `policy` to write keys stored under a former name as the current key.
1099
+ * The compact JWT form of custom roles for the `memberships[].grants` claim RLS
1100
+ * reads in `jwt` mode: role name to entries, where `key` allows, `-key` denies
1101
+ * and `@role` includes. Put a team custom role on its team membership. Pass
1102
+ * `policy` to write keys stored under a former name as the current key.
1063
1103
  */
1064
1104
  function customRoleClaim(roles, policy) {
1065
1105
  const keyOf = (raw) => policy === void 0 ? raw : currentKey(policy, raw) ?? raw;
@@ -1097,7 +1137,10 @@ function membershipsClaim(memberships, customRoles, scopes) {
1097
1137
  }
1098
1138
  //#endregion
1099
1139
  //#region src/core/source-name.ts
1100
- /** `{ name }` for a source that names itself, `{}` otherwise: what an auth event reports about it. */
1140
+ /**
1141
+ * `{ name }` for a source that names itself, `{}` otherwise: what an auth event
1142
+ * reports about it.
1143
+ */
1101
1144
  function sourceName(source) {
1102
1145
  return source?.name === void 0 ? {} : { name: source.name };
1103
1146
  }
@@ -1115,7 +1158,10 @@ function isSharedRole(value) {
1115
1158
  function onlyShared(roles) {
1116
1159
  return Array.isArray(roles) ? roles.filter(isSharedRole) : [];
1117
1160
  }
1118
- /** The `customRoles` option as a source: a factory is called with the resolved subject, and a throw reads none. */
1161
+ /**
1162
+ * The `customRoles` option as a source: a factory is called with the resolved
1163
+ * subject, and a throw reads none.
1164
+ */
1119
1165
  function roleSourceFor(option, subject, auth) {
1120
1166
  if (typeof option !== "function") return option;
1121
1167
  try {
@@ -1202,8 +1248,8 @@ function assignableNamesFor(source, tenants, auth) {
1202
1248
  return toMap(loaded);
1203
1249
  }
1204
1250
  /**
1205
- * The declared role names among `names`. A custom role of `tenant` is known
1206
- * but contributes no declared name: its grants are resolved separately
1251
+ * The declared role names among `names`. A custom role of `tenant` is known but
1252
+ * contributes no declared name: its grants are resolved separately
1207
1253
  * (`customGrantsFor`), bounded by the ceiling. A tenant's custom role is
1208
1254
  * unknown inside another tenant and for a membership without one.
1209
1255
  */
@@ -1261,7 +1307,10 @@ function validationMessage(permission, resource, issues) {
1261
1307
  }
1262
1308
  //#endregion
1263
1309
  //#region src/core/evaluate/call.ts
1264
- /** The rows after boundary validation; on `invalid`, the rows validated before the failure. */
1310
+ /**
1311
+ * The rows after boundary validation; on `invalid`, the rows validated before
1312
+ * the failure.
1313
+ */
1265
1314
  function validatedRows(call, data, rows) {
1266
1315
  const { permission, policy, options } = call;
1267
1316
  if (data === void 0 && !(permission.kind === "instance" && policy.validate === "always")) return rows;
@@ -1341,9 +1390,9 @@ function isUnconditionedAllow(grant, now) {
1341
1390
  return grant.where === void 0 && grant.check === void 0 && grant.closure === void 0 && grant.portable && grant.purpose === void 0 && grant.viaOnly === void 0 && grant.requires === void 0 && isActive(grant.validity, now);
1342
1391
  }
1343
1392
  /**
1344
- * The row condition a grant's `requires` adds: the row's instance of some
1345
- * scope is one where the subject holds `key` through a role grant without a
1346
- * row condition, minus the instances a deny of `key` reaches at that scope.
1393
+ * The row condition a grant's `requires` adds: the row's instance of some scope
1394
+ * is one where the subject holds `key` through a role grant without a row
1395
+ * condition, minus the instances a deny of `key` reaches at that scope.
1347
1396
  * `undefined` when the subject holds `key` globally that way, so every row
1348
1397
  * passes. The in-process mirror of the SQL `permdock_has_permission` and
1349
1398
  * `permitted_<scope>_ids_by_permission`.
@@ -1417,9 +1466,9 @@ function keyRequirement(policy, subject, key, resource, now, customRoles, custom
1417
1466
  //#endregion
1418
1467
  //#region src/core/evaluate/candidates.ts
1419
1468
  /**
1420
- * A collection write proposes `next`; an update pair may move `next` out of
1421
- * the scope `current` is in. An allow needs both in scope; a deny applies
1422
- * when either is, so a move into or out of its scope stays denied.
1469
+ * A collection write proposes `next`; an update pair may move `next` out of the
1470
+ * scope `current` is in. An allow needs both in scope; a deny applies when
1471
+ * either is, so a move into or out of its scope stays denied.
1423
1472
  */
1424
1473
  function matchWriteScope(match, instance, current, next, deny) {
1425
1474
  const first = match(instance ? current : next);
@@ -1429,7 +1478,10 @@ function matchWriteScope(match, instance, current, next, deny) {
1429
1478
  const moved = match(next);
1430
1479
  return moved.ok ? first : moved;
1431
1480
  }
1432
- /** The code grants and custom-role grants for the permission, break-glass grants aside. */
1481
+ /**
1482
+ * The code grants and custom-role grants for the permission, break-glass grants
1483
+ * aside.
1484
+ */
1433
1485
  function candidatesFor(call) {
1434
1486
  const { permission } = call;
1435
1487
  const candidates = (call.policy.index.grantsByKey.get(permission.key) ?? []).filter((grant) => grant.breakGlass === void 0).map((grant) => ({ grant }));
@@ -1487,7 +1539,8 @@ function holdsRole(state, item, custom) {
1487
1539
  }
1488
1540
  /**
1489
1541
  * Whether the subject holds every role the grantee names, at a scope the row
1490
- * (and a write's next row) is in. `held: false` when a denial or skip was recorded.
1542
+ * (and a write's next row) is in. `held: false` when a denial or skip was
1543
+ * recorded.
1491
1544
  */
1492
1545
  function roleScope(state, grant, custom) {
1493
1546
  const { subject, permission, tracer } = state;
@@ -1553,7 +1606,10 @@ function granteeOf(state, grant, custom) {
1553
1606
  reason
1554
1607
  });
1555
1608
  }
1556
- /** One candidate grant: records an allow, a denial or a skip, or returns the decision a deny ends with. */
1609
+ /**
1610
+ * One candidate grant: records an allow, a denial or a skip, or returns the
1611
+ * decision a deny ends with.
1612
+ */
1557
1613
  function evaluateCandidate(state, { grant, custom }, breakGlass) {
1558
1614
  const { policy, subject, permission, now, env, tracer } = state;
1559
1615
  const displayRole = grant.role;
@@ -1618,7 +1674,10 @@ function evaluateCandidate(state, { grant, custom }, breakGlass) {
1618
1674
  membership: scoped.membership
1619
1675
  });
1620
1676
  }
1621
- /** Adds the break-glass allow, or puts its denial first, once every candidate has run. */
1677
+ /**
1678
+ * Adds the break-glass allow, or puts its denial first, once every candidate
1679
+ * has run.
1680
+ */
1622
1681
  function mergeBreakGlass(state, breakGlass) {
1623
1682
  if (breakGlass.grant !== void 0) {
1624
1683
  state.tracer?.allows.push(matchedOf(breakGlass.grant, state.permission.key, true));
@@ -1641,8 +1700,8 @@ function noAllowDecision(state) {
1641
1700
  }
1642
1701
  /**
1643
1702
  * The allows a delegation leaves usable. A policy delegation is a ceiling for
1644
- * the actor: outside it, nothing is delegated; inside it, a token delegation
1645
- * on the call must still cover.
1703
+ * the actor: outside it, nothing is delegated; inside it, a token delegation on
1704
+ * the call must still cover.
1646
1705
  */
1647
1706
  function delegatedAllows(state) {
1648
1707
  const { policy, subject, permission, current } = state;
@@ -1681,7 +1740,10 @@ function approvalOf(state, candidate) {
1681
1740
  }
1682
1741
  //#endregion
1683
1742
  //#region src/core/evaluate/quota.ts
1684
- /** The quota verdict for one allow: free without a `limit`, unavailable without the `limits()` feature. */
1743
+ /**
1744
+ * The quota verdict for one allow: free without a `limit`, unavailable without
1745
+ * the `limits()` feature.
1746
+ */
1685
1747
  function quotaOf(state, grant, consume) {
1686
1748
  const { env, subject } = state;
1687
1749
  if (grant.limit === void 0) return { ok: true };
@@ -1729,9 +1791,9 @@ function quotaAllow(state, usable) {
1729
1791
  /**
1730
1792
  * One decision, in stages: the call (clock, rows, delegated permission), the
1731
1793
  * subject (held roles, actor), the candidate grants (a matching deny ends
1732
- * here), break-glass, freshness, delegation and contact, the approval and
1733
- * quota of each usable allow, and the decision. Every exit goes through
1734
- * `complete`, which freezes and emits.
1794
+ * here), break-glass, freshness, delegation and contact, the approval and quota
1795
+ * of each usable allow, and the decision. Every exit goes through `complete`,
1796
+ * which freezes and emits.
1735
1797
  */
1736
1798
  function evaluate(policy, given, permission, data, options, env) {
1737
1799
  const call = {
@@ -1,13 +1,13 @@
1
1
  import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
- import { t as PROBLEM_BASE } from "./validation-error-ZfUHbKvf.js";
2
+ import { t as PROBLEM_BASE } from "./validation-error-CYg2kJEw.js";
3
3
  import { t as wireDenials } from "./wire-denial-C7PaVYEM.js";
4
- import { c as listPermissions, g as formerScopes, h as formerKeys } from "./permission-registry-DpPtSKNZ.js";
5
- import { h as secondsAt } from "./time-DkWjdL98.js";
4
+ import { c as listPermissions, g as formerScopes, h as formerKeys } from "./permission-registry-B8tYxPIt.js";
5
+ import { h as secondsAt } from "./time-nR1JesoH.js";
6
6
  import { n as resourceRef } from "./resource-ref-CaS9yVPi.js";
7
- import { n as readBodyText } from "./body-text-QcXok_SI.js";
8
- import { c as problemResponse, d as validationProblem, n as batchTooLarge } from "./problem-CTviyH5L.js";
9
- import { i as readApprovalHeader, s as resumeDecision } from "./helpers-DY3vXuGs.js";
10
- import { t as bodyTooLarge } from "./body-CH5of8Ne.js";
7
+ import { n as readBodyText } from "./body-text-DQhcmqdY.js";
8
+ import { f as validationProblem, l as problemResponse, n as batchTooLarge } from "./problem-BVLHFK33.js";
9
+ import { i as readApprovalHeader, s as resumeDecision } from "./helpers-DJicaG6f.js";
10
+ import { t as bodyTooLarge } from "./body-CJQwYVa8.js";
11
11
  import { t as timeoutSignal } from "./timeout-D51niuQP.js";
12
12
  //#region src/core/decision.ts
13
13
  /** The denial for a check that failed or named no declared permission. */
@@ -19,16 +19,25 @@ const NO_GRANT = Object.freeze({
19
19
  })]),
20
20
  alternatives: Object.freeze([])
21
21
  });
22
+ /** The denial for a check whose row loader threw: it fails closed. */
23
+ const LOAD_FAILED = Object.freeze({
24
+ outcome: "denied",
25
+ denials: Object.freeze([Object.freeze({
26
+ role: null,
27
+ reason: "validation"
28
+ })]),
29
+ alternatives: Object.freeze([])
30
+ });
22
31
  //#endregion
23
32
  //#region src/server/evaluation-items.ts
24
33
  function firstWins(map, name, leaf) {
25
34
  if (!map.has(name)) map.set(name, leaf);
26
35
  }
27
36
  /**
28
- * Indexes `tree` once. The lookup tries `action` as a permission key or
29
- * scope, then `<resource.type>.<action>`, then the leaf with that resource
30
- * and action; current names win over former ones and earlier leaves over
31
- * later ones. Anything else is `undefined`, which the caller denies.
37
+ * Indexes `tree` once. The lookup tries `action` as a permission key or scope,
38
+ * then `<resource.type>.<action>`, then the leaf with that resource and action;
39
+ * current names win over former ones and earlier leaves over later ones.
40
+ * Anything else is `undefined`, which the caller denies.
32
41
  */
33
42
  function permissionLookup(tree) {
34
43
  const current = /* @__PURE__ */ new Map();
@@ -52,13 +61,19 @@ function permissionLookup(tree) {
52
61
  }
53
62
  /** AuthZEN's sentinel resource id for a collection: the type as a whole, no row. */
54
63
  const COLLECTION_ID = "*";
55
- /** A resource id as a row id: `undefined` for none, a non-scalar or the collection sentinel `*`. */
64
+ /**
65
+ * A resource id as a row id: `undefined` for none, a non-scalar or the
66
+ * collection sentinel `*`.
67
+ */
56
68
  function wireResourceId(id) {
57
69
  if (typeof id !== "string" && typeof id !== "number") return;
58
70
  const text = String(id);
59
71
  return text === COLLECTION_ID ? void 0 : text;
60
72
  }
61
- /** The row an item's resource describes: its `properties`, else `{ id }`, else none for `id: "*"`. */
73
+ /**
74
+ * The row an item's resource describes: its `properties`, else `{ id }`, else
75
+ * none for `id: "*"`.
76
+ */
62
77
  function itemResourceData(resource) {
63
78
  const properties = resource?.properties;
64
79
  if (properties !== null && typeof properties === "object") return properties;
@@ -67,7 +82,10 @@ function itemResourceData(resource) {
67
82
  }
68
83
  //#endregion
69
84
  //#region src/server/web-bot-auth.ts
70
- /** Milliseconds a key directory fetch may take before the signature counts as unverifiable. */
85
+ /**
86
+ * Milliseconds a key directory fetch may take before the signature counts as
87
+ * unverifiable.
88
+ */
71
89
  const DIRECTORY_TIMEOUT_MS = 5e3;
72
90
  const DEFAULT_MAX_AGE = 300;
73
91
  const FUTURE_SKEW = 60;
@@ -405,7 +423,10 @@ const EVALUATIONS_SEMANTICS = [
405
423
  "deny_on_first_deny",
406
424
  "permit_on_first_permit"
407
425
  ];
408
- /** The batch's `evaluations_semantic`: `execute_all` when absent, `undefined` for an unknown value. */
426
+ /**
427
+ * The batch's `evaluations_semantic`: `execute_all` when absent, `undefined`
428
+ * for an unknown value.
429
+ */
409
430
  function evaluationsSemantic(body) {
410
431
  const options = body["options"];
411
432
  const value = isRecord(options) ? options["evaluations_semantic"] : void 0;
@@ -454,9 +475,9 @@ function authzenMetadata(pdp, search = {}) {
454
475
  });
455
476
  }
456
477
  /**
457
- * `reason_admin` and `reason_user` for a decision that is not granted, from
458
- * the denial roles and reasons the context already carries. The user reason
459
- * names no role, grant or subject.
478
+ * `reason_admin` and `reason_user` for a decision that is not granted, from the
479
+ * denial roles and reasons the context already carries. The user reason names
480
+ * no role, grant or subject.
460
481
  */
461
482
  function evaluationReasons(decision, permission) {
462
483
  switch (decision.outcome) {
@@ -607,4 +628,4 @@ function evaluationsHandler(options) {
607
628
  };
608
629
  }
609
630
  //#endregion
610
- export { NO_GRANT as _, evaluationReasons as a, withRequestId as c, invalidSignatureProblem as d, invalidSignatureResponse as f, wireResourceId as g, permissionLookup as h, evaluateBatch as i, InvalidSignatureError as l, itemResourceData as m, applyApprovalResume as n, evaluationsHandler as o, webBotAuthVerifier as p, authzenMetadata as r, evaluationsSemantic as s, EVALUATIONS_SEMANTICS as t, discoverViaSignatureAgent as u };
631
+ export { LOAD_FAILED as _, evaluationReasons as a, withRequestId as c, invalidSignatureProblem as d, invalidSignatureResponse as f, wireResourceId as g, permissionLookup as h, evaluateBatch as i, InvalidSignatureError as l, itemResourceData as m, applyApprovalResume as n, evaluationsHandler as o, webBotAuthVerifier as p, authzenMetadata as r, evaluationsSemantic as s, EVALUATIONS_SEMANTICS as t, discoverViaSignatureAgent as u, NO_GRANT as v };
@@ -1,11 +1,14 @@
1
- import { T as Policy } from "./policy-types-B-F-qAZk.js";
2
- import { a as PermDock } from "./permdock-Dco6dyCK.js";
3
- import { m as ApprovalStore } from "./types-DC44-hqb.js";
1
+ import { T as Policy } from "./policy-types-CCiDRZBH.js";
2
+ import { a as PermDock } from "./permdock-B6Sf4T_S.js";
3
+ import { m as ApprovalStore } from "./types-B_tiYvk8.js";
4
4
  //#region src/server/evaluations.d.ts
5
5
  /** AuthZEN 1.0 section 7.1.2.1 `options.evaluations_semantic` values. */
6
6
  declare const EVALUATIONS_SEMANTICS: readonly ["execute_all", "deny_on_first_deny", "permit_on_first_permit"];
7
7
  type EvaluationsSemantic = (typeof EVALUATIONS_SEMANTICS)[number];
8
- /** The batch's `evaluations_semantic`: `execute_all` when absent, `undefined` for an unknown value. */
8
+ /**
9
+ * The batch's `evaluations_semantic`: `execute_all` when absent, `undefined`
10
+ * for an unknown value.
11
+ */
9
12
  declare function evaluationsSemantic(body: Readonly<Record<string, unknown>>): EvaluationsSemantic | undefined;
10
13
  /**
11
14
  * Evaluates `items` under `semantic`: all at once for `execute_all`, else in
@@ -22,7 +25,10 @@ declare function evaluationsHandler(options: {
22
25
  }) => Promise<PermDock>;
23
26
  readonly store?: ApprovalStore;
24
27
  readonly adapter?: string;
25
- /** The most evaluations one POST may carry; a larger batch is a 413 before any instance is resolved. */
28
+ /**
29
+ * The most evaluations one POST may carry; a larger batch is a 413 before any
30
+ * instance is resolved.
31
+ */
26
32
  readonly maxEvaluations?: number;
27
33
  }): {
28
34
  readonly POST: (request: Request) => Promise<Response>;
@@ -1,8 +1,8 @@
1
- import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { a as PermDock } from "../permdock-Dco6dyCK.js";
4
- import { u as ApprovalRequest } from "../types-DC44-hqb.js";
5
- import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-UTnUVETj.js";
1
+ import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as PermDock } from "../permdock-B6Sf4T_S.js";
4
+ import { u as ApprovalRequest } from "../types-B_tiYvk8.js";
5
+ import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-BSNrVuxh.js";
6
6
  //#region src/eve/create.d.ts
7
7
  /** Structural `SessionAuthContext` from `eve`. */
8
8
  type EvePrincipal = {
@@ -50,7 +50,10 @@ type EveApprovers = {
50
50
  readonly roles: readonly string[];
51
51
  } | ((responder: EvePrincipal, request: ApprovalRequest) => boolean);
52
52
  type EvePermDockOptions<TUser = unknown> = Omit<AgentAdapterOptions<EveContext, TUser>, "subject"> & {
53
- /** Defaults to `subjectFromEve`: the session initiator's id and `roles` attribute. */
53
+ /**
54
+ * Defaults to `subjectFromEve`: the session initiator's id and `roles`
55
+ * attribute.
56
+ */
54
57
  readonly subject?: (context: EveContext) => TUser | Promise<TUser>;
55
58
  readonly approvers?: EveApprovers;
56
59
  };
package/dist/eve/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { l as withApp } from "../permdock-BfWEeMqk.js";
3
- import { c as isApprovalError } from "../types-DqzsnlSA.js";
4
- import { o as resolveApproval } from "../helpers-DY3vXuGs.js";
5
- import { t as agentRuntime } from "../create-Cb86Z8Im.js";
2
+ import { l as withApp } from "../permdock-L-_I_3zP.js";
3
+ import { c as isApprovalError } from "../types-CcUXciSj.js";
4
+ import { o as resolveApproval } from "../helpers-DJicaG6f.js";
5
+ import { t as agentRuntime } from "../create-Cq4Uox0f.js";
6
6
  import { t as boundedMap } from "../lru-8q4WZjBV.js";
7
7
  //#region src/eve/create.ts
8
8
  const TOKENS_PER_PROCESS = 1e3;
@@ -1,10 +1,11 @@
1
- import { l as isRfc3339, u as isoAt } from "./time-DkWjdL98.js";
1
+ import { l as isRfc3339, u as isoAt } from "./time-nR1JesoH.js";
2
2
  //#region src/core/event-time.ts
3
3
  const MAX_TIME_VALUE = 864e13;
4
4
  /**
5
5
  * An event time as RFC 3339, or `undefined` when there is none or it is not a
6
- * time: NumericDate seconds are converted and an RFC 3339 string passes through.
7
- * Never throws, so a decision event never fails on a malformed expiry.
6
+ * time: NumericDate seconds are converted and an RFC 3339 string passes
7
+ * through. Never throws, so a decision event never fails on a malformed
8
+ * expiry.
8
9
  */
9
10
  function eventInstant(value) {
10
11
  if (typeof value === "string") return isRfc3339(value) ? value : void 0;
@@ -12,7 +13,10 @@ function eventInstant(value) {
12
13
  const millis = value * 1e3;
13
14
  return Math.abs(millis) <= MAX_TIME_VALUE ? isoAt(millis) : void 0;
14
15
  }
15
- /** `eventInstant` for a builder input, where a malformed time is the caller's error. */
16
+ /**
17
+ * `eventInstant` for a builder input, where a malformed time is the caller's
18
+ * error.
19
+ */
16
20
  function requireEventInstant(value, field) {
17
21
  if (value === void 0) return;
18
22
  const instant = eventInstant(value);