permdock 0.6.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 (507) hide show
  1. package/README.md +2 -3
  2. package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
  3. package/dist/a2a/index.d.ts +7 -7
  4. package/dist/a2a/index.js +9 -9
  5. package/dist/action-result-CL-QCITA.d.ts +19 -0
  6. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  7. package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-BLs67P1l.js} +5 -5
  8. package/dist/agent/index.d.ts +3 -3
  9. package/dist/agent/index.js +1 -1
  10. package/dist/ai-sdk/index.d.ts +31 -10
  11. package/dist/ai-sdk/index.js +22 -12
  12. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  13. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  15. package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  16. package/dist/approvals/index.d.ts +5 -5
  17. package/dist/approvals/index.js +7 -7
  18. package/dist/{approvals-p1PGoVjb.js → approvals-DnIBTuXE.js} +128 -78
  19. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  20. package/dist/{arazzo-41WuzHou.js → arazzo-3RhGfkAK.js} +2 -2
  21. package/dist/{arazzo-CaUVBn7D.js → arazzo-B5-ulWif.js} +6 -6
  22. package/dist/{args-IIolxxKA.js → args-0FrVs5EH.js} +125 -8
  23. package/dist/astro/index.d.ts +30 -12
  24. package/dist/astro/index.js +2 -2
  25. package/dist/{audience-DabClFLQ.js → audience-BAkBDMqn.js} +8 -8
  26. package/dist/{auth-DRLEizbL.js → auth--yPyZNgr.js} +21 -10
  27. package/dist/authzen/index.d.ts +171 -25
  28. package/dist/authzen/index.js +321 -149
  29. package/dist/{automation-BNM3TtDo.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  30. package/dist/{automation-DVjOckjV.js → automation-x3KEUusw.js} +22 -21
  31. package/dist/base-url-BQbddZO5.js +9 -0
  32. package/dist/better-auth/index.d.ts +2 -2
  33. package/dist/better-auth/index.js +13 -7
  34. package/dist/better-supabase/index.d.ts +392 -220
  35. package/dist/better-supabase/index.js +293 -152
  36. package/dist/{bind-DOyrv6zi.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  37. package/dist/{bind-CAvgUuKs.js → bind-D_sZSVA3.js} +22 -10
  38. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  39. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  40. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  41. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  42. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  43. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  44. package/dist/{build-instance-Bu_eDqYw.js → build-instance-CNWaYJyr.js} +3 -3
  45. package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
  46. package/dist/{capability-N1K9IpqS.js → capability-BqX94r07.js} +31 -25
  47. package/dist/{capability-Drg-1YhL.d.ts → capability-ChuiONQU.d.ts} +41 -29
  48. package/dist/{casbin-Dyu2gnUD.js → casbin-H0rKxBx2.js} +16 -8
  49. package/dist/{casbin-Cr7RLtA3.js → casbin-cbSbhT_k.js} +2 -2
  50. package/dist/{casl-64gpT-8x.js → casl-C4OINZHI.js} +2 -2
  51. package/dist/{casl-DjEDhTCP.js → casl-CHHoCldP.js} +19 -10
  52. package/dist/catalog/index.d.ts +104 -23
  53. package/dist/catalog/index.js +117 -8
  54. package/dist/{catalog-HD2gf5mY.js → catalog-BFpz2EmT.js} +57 -26
  55. package/dist/{catalog-DZVbrF-z.js → catalog-DCspHDc8.js} +3 -3
  56. package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-DjMKzJp9.js} +53 -16
  57. package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-e6aCWosn.js} +19 -15
  58. package/dist/catalog-mRQQQhNK.js +1 -0
  59. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  60. package/dist/{create-CQWIpUG-.js → challenge-DImNcR7B.js} +157 -39
  61. package/dist/chat/index.d.ts +1 -1
  62. package/dist/chat/index.js +13 -10
  63. package/dist/chat-sdk/index.d.ts +44 -26
  64. package/dist/chat-sdk/index.js +17 -17
  65. package/dist/checks-CGkP3Z7A.js +40 -0
  66. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  67. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  68. package/dist/claude-agent/index.d.ts +6 -6
  69. package/dist/claude-agent/index.js +6 -3
  70. package/dist/clerk/index.d.ts +11 -7
  71. package/dist/clerk/index.js +6 -6
  72. package/dist/cli/bin.js +4 -4
  73. package/dist/cli/index.d.ts +82 -7
  74. package/dist/cli/index.js +6 -6
  75. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  76. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  77. package/dist/cloud/index.d.ts +186 -38
  78. package/dist/cloud/index.js +293 -31
  79. package/dist/{cloud-ytQ3uviA.js → cloud-BFlGMaak.js} +5 -6
  80. package/dist/{codemod-5mpSpnUY.js → codemod-DLQ9Zpo4.js} +3 -4
  81. package/dist/{codemod-ua2hHy7w.js → codemod-DWSN2erG.js} +523 -201
  82. package/dist/collect-B5BL3klN.js +1 -0
  83. package/dist/{collect-mLTY4nwb.js → collect-B7ZFAJU3.js} +36 -64
  84. package/dist/{collect-Ci6akVwH.js → collect-Bzv3le0A.js} +6 -6
  85. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  86. package/dist/compile/index.d.ts +2 -2
  87. package/dist/compile/index.js +1 -1
  88. package/dist/{compile-1bsAezL0.d.ts → compile-BFzysW3o.d.ts} +36 -12
  89. package/dist/{compile-CMqMx_IN.js → compile-EzEMB-7v.js} +77 -33
  90. package/dist/{completion-BTFrHZhX.js → completion-saoYiRFO.js} +17 -8
  91. package/dist/config-BwPBfN0t.js +108 -0
  92. package/dist/{config-Bj2Ixq3d.js → config-DBeXXmBF.js} +2 -2
  93. package/dist/{config-report-DSpsLpCE.js → config-report-BipSWA6V.js} +9 -6
  94. package/dist/config-shape-ykV0Vm2n.js +134 -0
  95. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  96. package/dist/connector-schema-CYLQNMYq.js +434 -0
  97. package/dist/{context-B_u3_bDJ.js → context-BnIzxTNE.js} +4 -3
  98. package/dist/convex/index.d.ts +13 -7
  99. package/dist/convex/index.js +9 -6
  100. package/dist/core-H-mbhpZc.js +341 -0
  101. package/dist/core-hWIARPDz.d.ts +206 -0
  102. package/dist/{create-CBMmFie-.d.ts → create-BSNrVuxh.d.ts} +87 -34
  103. package/dist/{create-B30OMUOJ.d.ts → create-BVq1lNQE.d.ts} +49 -28
  104. package/dist/{create-D_NmPOdH.d.ts → create-CM1FciYG.d.ts} +37 -29
  105. package/dist/{create-CGm28gyI.js → create-Cq4Uox0f.js} +13 -9
  106. package/dist/{create-DCF2SvoT.js → create-_noSrY1T.js} +15 -21
  107. package/dist/{credential-BcoiejpY.js → credential-CyyyvCsL.js} +42 -39
  108. package/dist/{credentials-DPyHmYz5.js → credentials-CdDxp7jN.js} +6 -6
  109. package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-NB4wcyBf.js} +13 -2
  110. package/dist/{delegation-j6-rc37o.js → delegation-CDB6_keF.js} +31 -22
  111. package/dist/delivery/index.d.ts +5 -5
  112. package/dist/delivery/index.js +6 -5
  113. package/dist/{delivery-DCAgNyCn.js → delivery-BupfvJIV.js} +81 -20
  114. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  115. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  116. package/dist/{describe-BybMRY7A.js → describe-Bb4hGK5d.js} +6 -5
  117. package/dist/{describe-B5qgDvEW.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  118. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  119. package/dist/{diff-CmuSD3vc.js → diff-CN8IYhC_.js} +2 -2
  120. package/dist/{diff-3jbx6Rm4.js → diff-iZWV65nC.js} +23 -14
  121. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  122. package/dist/{doctor-BdZw53-k.js → doctor-CHD1M9R5.js} +485 -141
  123. package/dist/{doctor-3ZqNHX_G.js → doctor-D3wo-yuz.js} +4 -4
  124. package/dist/drizzle/index.d.ts +33 -19
  125. package/dist/drizzle/index.js +17 -9
  126. package/dist/elysia/index.d.ts +17 -11
  127. package/dist/elysia/index.js +5 -5
  128. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  129. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  130. package/dist/{errors-CWTY6uih.js → errors-Vpu6rKHl.js} +14 -10
  131. package/dist/{errors-DH5QEGXh.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  132. package/dist/{evaluate-CNClBvcj.js → evaluate-Dd8Ta0Ie.js} +185 -80
  133. package/dist/{evaluations-beAooV0n.js → evaluations-IBceAeKT.js} +41 -20
  134. package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-z8dQFDaN.d.ts} +12 -6
  135. package/dist/eve/index.d.ts +9 -6
  136. package/dist/eve/index.js +4 -4
  137. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  138. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  139. package/dist/express/index.d.ts +9 -6
  140. package/dist/express/index.js +9 -6
  141. package/dist/fastify/index.d.ts +16 -10
  142. package/dist/fastify/index.js +8 -5
  143. package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  144. package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-JL43jD3E.js} +14 -11
  145. package/dist/fields-D0vUI6dq.js +498 -0
  146. package/dist/{files-C5ZI27eV.js → files-B3AA05f1.js} +21 -5
  147. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  148. package/dist/{fixtures-B7XrLeY7.js → fixtures-A1_sp_tR.js} +15 -6
  149. package/dist/{flags-C3DktBDY.js → flags-DXjoTVbS.js} +2 -2
  150. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  151. package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-DCakWRsr.js} +26 -16
  152. package/dist/gen-B5kvbAoZ.js +58 -0
  153. package/dist/gen-DWCYcMQM.js +827 -0
  154. package/dist/generate-CRVV5V7l.js +165 -0
  155. package/dist/generate-CezbCaTI.js +275 -0
  156. package/dist/{grantee-hxrUsbpM.js → grantee-Dke-9rd1.js} +4 -4
  157. package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-BrYPe-w0.js} +12 -12
  158. package/dist/{grantee-match-DbENBHLB.js → grantee-match-7RZZvoT_.js} +12 -6
  159. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  160. package/dist/h3/index.d.ts +10 -7
  161. package/dist/h3/index.js +3 -3
  162. package/dist/headers-B9jQxjtW.d.ts +10 -0
  163. package/dist/{helpers-CBYVMjwh.js → helpers-DJicaG6f.js} +40 -28
  164. package/dist/hono/index.d.ts +16 -10
  165. package/dist/hono/index.js +5 -5
  166. package/dist/{hosted-BPk51-kX.d.ts → hosted-Cmtxogd0.d.ts} +44 -20
  167. package/dist/{hosted-B46-5LYE.js → hosted-D0IzESu_.js} +68 -25
  168. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  169. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  170. package/dist/{http-DXJ37RDA.js → http-DOL33cO0.js} +11 -8
  171. package/dist/{import-wyqXUyjm.js → import-CST57XLp.js} +64 -51
  172. package/dist/{import-CNV7I2Dw.js → import-_YqhhwvX.js} +6 -6
  173. package/dist/{index-B8YjkEZ4.d.ts → index-B8s204GL.d.ts} +64 -52
  174. package/dist/{index-Ch8LpNDp.d.ts → index-BT5-1VsX.d.ts} +64 -25
  175. package/dist/{index-DuWxc5dt.d.ts → index-BW_0MZOS.d.ts} +388 -149
  176. package/dist/index-BhxEUY9J.d.ts +233 -0
  177. package/dist/index-Bv5iXPqU.d.ts +210 -0
  178. package/dist/{index-C-6Letxg.d.ts → index-_9UiQIkt.d.ts} +164 -77
  179. package/dist/index.d.ts +22 -21
  180. package/dist/index.js +35 -33
  181. package/dist/{init-GG6Jh8HD.js → init-Dz_PsHdv.js} +5 -5
  182. package/dist/{init-DeMYsnYJ.js → init-cE3A8aXq.js} +10 -10
  183. package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  184. package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot--JWiTrvO.js} +81 -56
  185. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  186. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  187. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  188. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  189. package/dist/jwt/index.d.ts +125 -17
  190. package/dist/jwt/index.js +157 -16
  191. package/dist/{kernel-D0NVb1cK.js → kernel-C-fYydV2.js} +151 -16
  192. package/dist/kysely/index.d.ts +49 -33
  193. package/dist/kysely/index.js +9 -7
  194. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  195. package/dist/{load-DFS_ry0W.js → load-DjSU5KXO.js} +6 -6
  196. package/dist/load-Dm0pSYH3.js +1 -0
  197. package/dist/{login-Dfe5RlYk.js → login-D-8tMqzo.js} +4 -4
  198. package/dist/{login-imhuwvn3.js → login-DplQ0s84.js} +18 -15
  199. package/dist/{manifest-dvL2XEe1.js → manifest-Cgiq5oqc.js} +67 -37
  200. package/dist/{manifest-mx5ghSFM.d.ts → manifest-CzzWtnAb.d.ts} +144 -28
  201. package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-2r37XRhD.js} +80 -9
  202. package/dist/{manifest-C8IzW3Do.js → manifest-wg8WkkpD.js} +11 -7
  203. package/dist/{map-claims-D3oRmTk0.js → map-claims-BNWCJtmP.js} +27 -18
  204. package/dist/{map-error-Dr70oA_3.js → map-error-pasIGqMT.js} +7 -7
  205. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  206. package/dist/mcp/index.d.ts +154 -47
  207. package/dist/mcp/index.js +200 -41
  208. package/dist/{migrate-CIq4-E9F.js → migrate-B7oP_sQU.js} +102 -31
  209. package/dist/module-values-BJTBdo6y.js +107 -0
  210. package/dist/nest/index.d.ts +23 -13
  211. package/dist/nest/index.js +18 -11
  212. package/dist/next/client.d.ts +5 -2
  213. package/dist/next/client.js +1 -1
  214. package/dist/next/index.d.ts +72 -26
  215. package/dist/next/index.js +110 -6
  216. package/dist/next/plugin.d.ts +1 -1
  217. package/dist/next/plugin.js +4 -3
  218. package/dist/node/index.d.ts +5 -5
  219. package/dist/node/index.js +3 -3
  220. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  221. package/dist/openai/index.d.ts +13 -7
  222. package/dist/openai/index.js +3 -3
  223. package/dist/openapi/index.d.ts +61 -30
  224. package/dist/openapi/index.js +2 -2
  225. package/dist/{openapi-B7HZ0f-r.js → openapi-BOsx0xn9.js} +34 -24
  226. package/dist/{openapi-C4dDTVEd.js → openapi-CBZUhA3l.js} +4 -5
  227. package/dist/{openapi-DD1SV-5-.js → openapi-VeHHU2l9.js} +23 -14
  228. package/dist/{operation-findings-DgATDpvh.js → operation-findings-CXtFzlKJ.js} +3 -3
  229. package/dist/{operations-X0VM7F3m.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  230. package/dist/orpc/index.d.ts +68 -14
  231. package/dist/orpc/index.js +62 -13
  232. package/dist/otel/index.d.ts +7 -4
  233. package/dist/otel/index.js +8 -5
  234. package/dist/output-files-BHOIlrfD.js +1 -0
  235. package/dist/{output-files-DhRBBE4n.js → output-files-BIQ_9pIs.js} +29 -17
  236. package/dist/{output-1im__-08.js → output-tkju6U7R.js} +15 -7
  237. package/dist/ownership-B4L59T9u.js +1054 -0
  238. package/dist/parse-1_ZheTW5.js +151 -0
  239. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  240. package/dist/parse-local-manifest-DEiCF4ah.js +69 -0
  241. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  242. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  243. package/dist/pdp/index.d.ts +9 -6
  244. package/dist/pdp/index.js +23 -12
  245. package/dist/{peer-CRvC7Hg1.js → peer-C9LvBCcb.js} +1 -1
  246. package/dist/peer-Q0fuZ6hx.js +982 -0
  247. package/dist/{permdock-SV8ZINYT.d.ts → permdock-B6Sf4T_S.d.ts} +270 -117
  248. package/dist/{permdock-BrAscV28.js → permdock-L-_I_3zP.js} +226 -74
  249. package/dist/{permission-registry-Br4jSNVi.js → permission-registry-B8tYxPIt.js} +24 -11
  250. package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-CAY-GU7e.d.ts} +130 -104
  251. package/dist/{permissions-u_KHg-sN.d.ts → permissions-Bx6UI8n1.d.ts} +6 -2
  252. package/dist/{permissions-B-wCP5ZC.js → permissions-CVXmRILq.js} +3 -3
  253. package/dist/{permissions-BPxlwVhN.js → permissions-mDcTWoBs.js} +8 -5
  254. package/dist/pg-DQTqRrou.js +60 -0
  255. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  256. package/dist/pkce-CnmmYqUZ.js +21 -0
  257. package/dist/{policy-77FSAq_V.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  258. package/dist/{policy-DbM5YYtV.js → policy-CLQ8__GF.js} +49 -20
  259. package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  260. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  261. package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-CCiDRZBH.d.ts} +802 -334
  262. package/dist/postgres-store-DcyrPS-r.js +1028 -0
  263. package/dist/{postgrest-DAjUkF9w.js → postgrest-D4nuPXIQ.js} +88 -36
  264. package/dist/{postgrest-CEgRbefE.d.ts → postgrest-DicQyqm-.d.ts} +60 -30
  265. package/dist/powersync-DHNQX06W.js +1117 -0
  266. package/dist/{powersync-DISt6SUe.js → powersync-DXqGuq9A.js} +3 -3
  267. package/dist/powersync-Djf-zCpB.js +1 -0
  268. package/dist/preset/index.d.ts +38 -28
  269. package/dist/preset/index.js +1 -1
  270. package/dist/{preset-DZdU0tne.js → preset-BjLzeFpp.js} +58 -34
  271. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  272. package/dist/prisma/index.d.ts +69 -41
  273. package/dist/prisma/index.js +21 -17
  274. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  275. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  276. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  277. package/dist/prompt-BYc6drYW.js +938 -0
  278. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  279. package/dist/protected-action-DUYqb-Ma.js +80 -0
  280. package/dist/{protected-BlF0F6wL.js → protected-action-QEA8arRB.js} +48 -14
  281. package/dist/{provider-B1al-AZz.js → provider-C55OGXJ7.js} +5 -4
  282. package/dist/{provider-DILL9oPK.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  283. package/dist/{provider-store-DM6DNcta.js → provider-store-CaTv00tr.js} +13 -9
  284. package/dist/pull-B65ndFNZ.js +1 -0
  285. package/dist/{pull-jEwbf80J.js → pull-CwpGaQSi.js} +12 -11
  286. package/dist/{push-BD4f15co.js → push-DgssgzkK.js} +62 -16
  287. package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  288. package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-ITwYKvvH.js} +10 -7
  289. package/dist/react/index.d.ts +9 -8
  290. package/dist/react/index.js +7 -6
  291. package/dist/react/provider-client.d.ts +1 -1
  292. package/dist/react/provider-client.js +1 -1
  293. package/dist/react-native/index.d.ts +104 -51
  294. package/dist/react-native/index.js +394 -67
  295. package/dist/{refs-K6eWUJ0H.js → refs-C8BKxc_e.js} +17 -3
  296. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  297. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  298. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  299. package/dist/{replay-Bkm-Ne4l.d.ts → replay-DNftIb_R.d.ts} +1 -1
  300. package/dist/{request-context-C81Pip9n.js → request-context-C25ilqiJ.js} +8 -8
  301. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  302. package/dist/resend/index.d.ts +34 -28
  303. package/dist/resend/index.js +29 -29
  304. package/dist/resolve-names-CF7xXLSG.js +201 -0
  305. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  306. package/dist/{retire-CALjIQ7e.js → retire-B2xffQgY.js} +15 -6
  307. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  308. package/dist/{rls-DTvYd-lI.js → rls-CNEH2_BG.js} +743 -624
  309. package/dist/{rls-BAqP4q66.js → rls-Ca8Jz9b5.js} +41 -10
  310. package/dist/{role-builder-uWQZ4v84.js → role-builder-BK2-T6oD.js} +41 -20
  311. package/dist/rolldown-runtime-C3I60J0A.js +4 -0
  312. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  313. package/dist/{rpc-VSl5ylaQ.js → rpc-fNqAIqQk.js} +8 -5
  314. package/dist/{run-CUKuz0A8.js → run-Bz26OTfO.js} +26 -23
  315. package/dist/run-D-JE8QWb.js +1 -0
  316. package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-DbWI9f99.d.ts} +33 -13
  317. package/dist/{run-ticket-sxFI6LAk.js → run-ticket-Dv7aF7Dk.js} +29 -8
  318. package/dist/{runtime-D3VTAiCA.js → runtime-BGnrOkVH.js} +5 -2
  319. package/dist/{saas-BCXRuXca.js → saas-iWnUdwCt.js} +42 -29
  320. package/dist/{scan-qvOe0hS3.js → scan-DCj1KQfn.js} +1 -1
  321. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  322. package/dist/{schema-yLuBWWsh.js → schema-Dst9I9Gs.js} +9 -5
  323. package/dist/scim/index.d.ts +3 -2
  324. package/dist/scim/index.js +3 -1
  325. package/dist/scim-D8YupzX1.js +44 -0
  326. package/dist/{scim-ClHtpyV3.js → scim-jJBJ7g1Z.js} +35 -551
  327. package/dist/{scopes-CUPSjo9q.js → scopes-0Up_UA2t.js} +42 -24
  328. package/dist/server/index.d.ts +12 -12
  329. package/dist/server/index.js +13 -13
  330. package/dist/{server-C3WXAHZj.js → server-3cVlTLde.js} +31 -31
  331. package/dist/{server-types-CKQiCnON.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  332. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  333. package/dist/{shared-BAK8t4Uo.js → shared-Afctg7B0.js} +100 -61
  334. package/dist/{shared-DvvFzYXe.js → shared-l0oGGetg.js} +9 -6
  335. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  336. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  337. package/dist/{sink-4-eQIRWf.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  338. package/dist/{skills-B6lVdD_W.js → skills-Bjj7BNEQ.js} +16 -12
  339. package/dist/{skills-CTYwkl44.js → skills-OuoMR49L.js} +3 -3
  340. package/dist/{snapshot-B7DkYg6g.js → snapshot-CXlzi69u.js} +21 -18
  341. package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  342. package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  343. package/dist/solid/index.d.ts +55 -15
  344. package/dist/solid/index.js +46 -12
  345. package/dist/solid-start/index.d.ts +30 -12
  346. package/dist/solid-start/index.js +3 -3
  347. package/dist/sources-B1Os_YUu.d.ts +312 -0
  348. package/dist/{sources-vs5dGOsS.js → sources-CMAM-2A3.js} +156 -51
  349. package/dist/sources-qoIJQrJv.js +11 -0
  350. package/dist/{sql-B5T1IL83.js → sql-0WjxIp9g.js} +32 -7
  351. package/dist/sql-B80DFdpG.d.ts +10 -0
  352. package/dist/{src-Cu2m75uo.js → src-DZ0l9UAg.js} +305 -123
  353. package/dist/ssf/index.d.ts +4 -4
  354. package/dist/ssf/index.js +665 -224
  355. package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  356. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  357. package/dist/{store-BDutJkDL.js → store-RNFvaJJv.js} +43 -29
  358. package/dist/{store-options-u0ycEe8s.js → store-options-Dil3lraY.js} +105 -15
  359. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  360. package/dist/{stores-CGhM8BN_.js → stores-DxZWDXCs.js} +42 -5
  361. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  362. package/dist/{stream-CeCMJmBB.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  363. package/dist/{style-DiKWnAvn.js → style-DblOtSga.js} +1 -1
  364. package/dist/{style-Uao76wO7.js → style-Ds11Hmk4.js} +3 -1
  365. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  366. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  367. package/dist/supabase/index.d.ts +48 -37
  368. package/dist/supabase/index.js +6 -6
  369. package/dist/supabase/middleware.d.ts +19 -13
  370. package/dist/supabase/middleware.js +7 -7
  371. package/dist/{supabase-x5JtR2tc.js → supabase-BL1qJzzY.js} +82 -36
  372. package/dist/{supabase-By_frk3U.js → supabase-D39cuGPt.js} +3 -3
  373. package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-B-yXnzUl.js} +1206 -286
  374. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  375. package/dist/supautils-BU-pAEpf.js +808 -0
  376. package/dist/{support-session-C6xJQYut.js → support-session-BsmPCbz8.js} +22 -22
  377. package/dist/svelte/PermissionBoundary.svelte +2 -6
  378. package/dist/svelte/Protected.svelte +2 -8
  379. package/dist/svelte/index.d.ts +9 -8
  380. package/dist/svelte/index.js +10 -9
  381. package/dist/svelte/runtime.d.ts +4 -4
  382. package/dist/svelte/runtime.js +4 -4
  383. package/dist/svelte/source.d.ts +9 -8
  384. package/dist/svelte/source.js +6 -5
  385. package/dist/sveltekit/index.d.ts +30 -12
  386. package/dist/sveltekit/index.js +2 -2
  387. package/dist/{ownership-DqaJNJPn.js → tables-DeMNEy6V.js} +1025 -1085
  388. package/dist/tanstack-start/index.d.ts +22 -10
  389. package/dist/tanstack-start/index.js +2 -2
  390. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  391. package/dist/{tenancy-DN2QAx9z.js → tenancy-5d1zVBvK.js} +36 -21
  392. package/dist/terminal/index.d.ts +23 -14
  393. package/dist/terminal/index.js +17 -20
  394. package/dist/testing/core.d.ts +2 -0
  395. package/dist/testing/core.js +1 -0
  396. package/dist/testing/fixtures/index.d.ts +15 -0
  397. package/dist/testing/fixtures/index.js +831 -0
  398. package/dist/testing/index.d.ts +235 -285
  399. package/dist/testing/index.js +502 -927
  400. package/dist/testing/saas/index.d.ts +43 -27
  401. package/dist/testing/saas/index.js +2 -2
  402. package/dist/testing/saas/permissions.d.ts +1 -1
  403. package/dist/testing/saas/permissions.js +1 -1
  404. package/dist/text-diff-BtfSmdUo.js +444 -0
  405. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  406. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  407. package/dist/{token-BLZcjQgt.js → token-DC9EQiet.js} +15 -13
  408. package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-Qpjs_W6M.js} +5 -2
  409. package/dist/trpc/index.d.ts +11 -8
  410. package/dist/trpc/index.js +15 -9
  411. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  412. package/dist/{types-8RnwUAvE.d.ts → types-AMJ5qoU_.d.ts} +49 -30
  413. package/dist/{types-C_IiEs64.d.ts → types-B2mlGuhW.d.ts} +14 -11
  414. package/dist/{types-_WhUP7ud.d.ts → types-B4uqKDnp.d.ts} +25 -12
  415. package/dist/{types-CX7AvRqP.d.ts → types-BJk0BKRX.d.ts} +24 -14
  416. package/dist/types-B_d_g7T3.d.ts +262 -0
  417. package/dist/{types-BdtSDbBO.d.ts → types-B_tiYvk8.d.ts} +59 -32
  418. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  419. package/dist/{types-Dfv0aTER.d.ts → types-DC1Loeh3.d.ts} +449 -168
  420. package/dist/{types-lUlG3TVd.d.ts → types-DHKPcqzr.d.ts} +2 -2
  421. package/dist/{types-C791HFu9.d.ts → types-DjuMBNF9.d.ts} +68 -32
  422. package/dist/{types-C863OQiR.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  423. package/dist/{types-Druu9wLM.d.ts → types-ZzRGoViD.d.ts} +77 -24
  424. package/dist/{types-BzzaHxt3.d.ts → types-ah9NlU6j.d.ts} +137 -48
  425. package/dist/{types-CVZSNocA.d.ts → types-djVzLlIV.d.ts} +31 -14
  426. package/dist/{types-BtHtcKMr.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  427. package/dist/unplugin/index.d.ts +1 -1
  428. package/dist/unplugin/index.js +2 -2
  429. package/dist/usage-CYeXek0p.js +1 -0
  430. package/dist/{usage-SveTRTyr.js → usage-CxEzS4ey.js} +50 -26
  431. package/dist/{usage-CRVl9V3t.js → usage-ab0PdusX.js} +2 -2
  432. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  433. package/dist/{validation-error-DHUrAkku.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  434. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  435. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  436. package/dist/{verify-BaAKx7t6.js → verify-DZeqoWu5.js} +417 -489
  437. package/dist/version-DMQ0dnN5.js +48 -0
  438. package/dist/version-DizhmD72.js +1 -0
  439. package/dist/{views-DTIIO-oQ.js → views-CD8wuL4Z.js} +19 -6
  440. package/dist/vocabulary-DEJ5j4mR.d.ts +70 -0
  441. package/dist/vue/index.d.ts +71 -21
  442. package/dist/vue/index.js +50 -13
  443. package/dist/{waiter-B986w1oK.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  444. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  445. package/dist/{watch-vea54PRw.js → watch-Cx_WciLE.js} +8 -8
  446. package/dist/watch-DB42U1ib.js +1 -0
  447. package/dist/webmcp/index.d.ts +11 -11
  448. package/dist/webmcp/index.js +8 -5
  449. package/dist/{where-scope-C9vfEphl.js → where-scope-DlCdCM_8.js} +56 -30
  450. package/dist/{who-can-DWBAcaCQ.js → who-can-rI7dCR9Q.js} +23 -20
  451. package/dist/workflow/index.d.ts +3 -3
  452. package/dist/workflow/index.js +13 -13
  453. package/dist/workflow-sdk/index.d.ts +19 -13
  454. package/dist/workflow-sdk/index.js +6 -6
  455. package/dist/{wrap-gX61EtpB.js → wrap-B2wziJI_.js} +11 -5
  456. package/dist/{wrap-C5jC6sKI.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  457. package/package.json +25 -14
  458. package/schemas/catalog-v1.json +3 -0
  459. package/schemas/cli-result-v1.json +1 -0
  460. package/schemas/cloud-api-v1.json +152 -7
  461. package/schemas/connector-v1.json +8 -0
  462. package/schemas/supabase-claims-v1.json +5 -0
  463. package/schemas/supabase-manifest-v1.json +308 -75
  464. package/skills/permdock/SKILL.md +1 -0
  465. package/skills/permdock-agents/references/runtimes.md +3 -1
  466. package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
  467. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  468. package/skills/permdock-data/references/queries-and-rls.md +6 -2
  469. package/skills/permdock-tenancy/SKILL.md +1 -1
  470. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -1
  471. package/skills/permdock-wire/references/adapters.md +28 -22
  472. package/skills/permdock-wire/references/policy-options.md +1 -0
  473. package/dist/catalog-BoWglDPI.js +0 -1
  474. package/dist/collect-D7eQDffE.js +0 -1
  475. package/dist/config-bs_kZeYq.js +0 -162
  476. package/dist/denied-text-CiFQNuMV.d.ts +0 -19
  477. package/dist/fields-OYG_JR78.js +0 -203
  478. package/dist/generate-CNU1pIOo.js +0 -171
  479. package/dist/headers-BIjfMaoC.js +0 -8
  480. package/dist/headers-CIbDTUTK.d.ts +0 -7
  481. package/dist/index-Cp_ilKi1.d.ts +0 -91
  482. package/dist/index-CueFnxQc.d.ts +0 -110
  483. package/dist/load-BxEtwlBS.js +0 -1
  484. package/dist/output-files-B3IZJksC.js +0 -1
  485. package/dist/package-root-Dk_ETdkp.js +0 -31
  486. package/dist/parse-Cxq0WxrA.js +0 -53
  487. package/dist/parse-local-manifest-5ODwqu8b.d.ts +0 -10
  488. package/dist/parse-local-manifest-CVSs6J9I.js +0 -34
  489. package/dist/peer-C8swJ2GH.js +0 -50
  490. package/dist/policies-DP2nqRoF.js +0 -295
  491. package/dist/powersync-BkWWCS1K.js +0 -538
  492. package/dist/powersync-MMJ2mI2q.js +0 -1
  493. package/dist/problem-details-B45V5d2b.d.ts +0 -7
  494. package/dist/prompt-DfZLJLIn.js +0 -32
  495. package/dist/protected-RFGpakN9.d.ts +0 -38
  496. package/dist/pull-CvpINcMK.js +0 -1
  497. package/dist/run-DDwUaJDU.js +0 -1
  498. package/dist/sources-Xc4zkszI.d.ts +0 -190
  499. package/dist/stores-BUGNbJTt.d.ts +0 -30
  500. package/dist/supabase-hook-CCw5m35C.js +0 -1
  501. package/dist/supautils-B6HYL9eL.js +0 -91
  502. package/dist/text-diff-BQcUapOb.js +0 -15
  503. package/dist/types-B3_ooZgZ.d.ts +0 -172
  504. package/dist/usage-CZpSQP6L.js +0 -1
  505. package/dist/version-CEbQ5UeM.js +0 -18
  506. package/dist/version-DXkYUISx.js +0 -1
  507. package/dist/watch--ovlPOc0.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-uWQZ4v84.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-Br4jSNVi.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";
13
- import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
14
- import { a as normalizeMemberships, d as scopeList, f as subjectForPermission, i as keepsPermission, m as tenantOf, o as resolveScope, s as rootMembershipId } from "./scopes-CUPSjo9q.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-j6-rc37o.js";
16
- import { a as authenticated, g as isRole, i as assurance, m as findRole, o as flattenGrantee, r as asGrantee } from "./grantee-hxrUsbpM.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-CcXf8hMM.js";
19
- import { c as nowSeconds, i as matchScopedMembership, l as partitionsOf, n as inTeam, p as scopeField, r as isMembershipExpired } from "./tenancy-DN2QAx9z.js";
20
- import { a as levelCondition, r as grantList, t as declaredRoleNames } from "./policy-DbM5YYtV.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
+ 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-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-BLZcjQgt.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-DbENBHLB.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({
@@ -952,6 +983,35 @@ function validateCustomRole(policy, role, options = {}) {
952
983
  renamed: resolved.renamed
953
984
  });
954
985
  }
986
+ /**
987
+ * Checks one stored allow entry, `<permission>[@<level>]`, the way
988
+ * `permdock_custom_role_entry_problem` does in SQL. `scope` defaults to the
989
+ * first scope; its ceiling is the allows of that scope's assignable roles.
990
+ */
991
+ function parseCustomRoleEntry(policy, entry, options = {}) {
992
+ const at = entry.indexOf("@");
993
+ const raw = at === -1 ? entry : entry.slice(0, at);
994
+ const level = at === -1 ? void 0 : entry.slice(at + 1);
995
+ const checked = validateCustomRole(policy, {
996
+ name: "entry",
997
+ tenant: "entry",
998
+ ...options.scope === void 0 ? {} : { scope: options.scope },
999
+ grants: [{
1000
+ permission: raw,
1001
+ ...level === void 0 ? {} : { level }
1002
+ }]
1003
+ });
1004
+ const dropped = checked.dropped[0];
1005
+ if (dropped !== void 0) return {
1006
+ ok: false,
1007
+ cause: dropped.reason === "unknown-level" || dropped.reason === "outside-ceiling" ? dropped.reason : "unknown-permission"
1008
+ };
1009
+ return {
1010
+ ok: true,
1011
+ permission: checked.renamed[0]?.to ?? raw,
1012
+ ...level === void 0 ? {} : { level }
1013
+ };
1014
+ }
955
1015
  function wellFormed(role) {
956
1016
  if (role === null || typeof role !== "object" || typeof role.name !== "string") return false;
957
1017
  if (role.shared !== void 0) return role.shared === true && role.tenant === void 0 && role.team === void 0 && role.id === void 0 && (role.scope === void 0 || typeof role.scope === "string" && role.scope !== "global");
@@ -967,7 +1027,24 @@ function effectiveCustomRoles(roles) {
967
1027
  const shared = new Set(formed.filter(isSharedCustomRole).map((role) => role.name));
968
1028
  return shared.size === 0 ? formed : formed.filter((role) => isSharedCustomRole(role) || isGlobalCustomRole(role) || !shared.has(role.name));
969
1029
  }
970
- /** Every custom role's resolved grants, once per instance. Malformed roles resolve to nothing. */
1030
+ /** The grants of `roles` that name a level their resource does not declare. */
1031
+ function unknownLevelsFor(policy, roles) {
1032
+ const declared = declaredRoleNames(policy);
1033
+ const out = [];
1034
+ for (const role of effectiveCustomRoles(roles)) {
1035
+ if (declared.has(role.name)) continue;
1036
+ for (const entry of resolveCustomRole(policy, role).dropped) if ("permission" in entry && entry.reason === "unknown-level") out.push({
1037
+ role: role.name,
1038
+ permission: entry.permission,
1039
+ level: entry.level ?? ""
1040
+ });
1041
+ }
1042
+ return out;
1043
+ }
1044
+ /**
1045
+ * Every custom role's resolved grants, once per instance. Malformed roles
1046
+ * resolve to nothing.
1047
+ */
971
1048
  function customGrantsFor(policy, roles) {
972
1049
  const declared = declaredRoleNames(policy);
973
1050
  const out = [];
@@ -989,7 +1066,10 @@ function tenantCustomRoles(policy, roles) {
989
1066
  const declared = declaredRoleNames(policy);
990
1067
  return effectiveCustomRoles(roles).filter((role) => !isGlobalCustomRole(role) && !declared.has(role.name));
991
1068
  }
992
- /** 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
+ */
993
1073
  function customRoleOf(role, tenant) {
994
1074
  return isSharedCustomRole(role) || sameId(role.tenant, tenant);
995
1075
  }
@@ -1008,15 +1088,18 @@ function holdsCustomRole(membership, role, scopes) {
1008
1088
  function holdsGlobalCustomRole(roles, role) {
1009
1089
  return isGlobalCustomRole(role) && (roles ?? []).includes(role.name);
1010
1090
  }
1011
- /** 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
+ */
1012
1095
  function isCustomRoleName(name, roles, tenant) {
1013
1096
  return effectiveCustomRoles(roles).some((item) => item.name === name && (isGlobalCustomRole(item) || tenant !== void 0 && customRoleOf(item, tenant)));
1014
1097
  }
1015
1098
  /**
1016
- * The compact JWT form of custom roles for the `memberships[].grants` claim
1017
- * RLS reads in `jwt` mode: role name to entries, where `key` allows, `-key`
1018
- * denies and `@role` includes. Put a team custom role on its team membership.
1019
- * 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.
1020
1103
  */
1021
1104
  function customRoleClaim(roles, policy) {
1022
1105
  const keyOf = (raw) => policy === void 0 ? raw : currentKey(policy, raw) ?? raw;
@@ -1054,7 +1137,10 @@ function membershipsClaim(memberships, customRoles, scopes) {
1054
1137
  }
1055
1138
  //#endregion
1056
1139
  //#region src/core/source-name.ts
1057
- /** `{ 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
+ */
1058
1144
  function sourceName(source) {
1059
1145
  return source?.name === void 0 ? {} : { name: source.name };
1060
1146
  }
@@ -1072,7 +1158,10 @@ function isSharedRole(value) {
1072
1158
  function onlyShared(roles) {
1073
1159
  return Array.isArray(roles) ? roles.filter(isSharedRole) : [];
1074
1160
  }
1075
- /** 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
+ */
1076
1165
  function roleSourceFor(option, subject, auth) {
1077
1166
  if (typeof option !== "function") return option;
1078
1167
  try {
@@ -1159,8 +1248,8 @@ function assignableNamesFor(source, tenants, auth) {
1159
1248
  return toMap(loaded);
1160
1249
  }
1161
1250
  /**
1162
- * The declared role names among `names`. A custom role of `tenant` is known
1163
- * 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
1164
1253
  * (`customGrantsFor`), bounded by the ceiling. A tenant's custom role is
1165
1254
  * unknown inside another tenant and for a membership without one.
1166
1255
  */
@@ -1218,7 +1307,10 @@ function validationMessage(permission, resource, issues) {
1218
1307
  }
1219
1308
  //#endregion
1220
1309
  //#region src/core/evaluate/call.ts
1221
- /** 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
+ */
1222
1314
  function validatedRows(call, data, rows) {
1223
1315
  const { permission, policy, options } = call;
1224
1316
  if (data === void 0 && !(permission.kind === "instance" && policy.validate === "always")) return rows;
@@ -1298,9 +1390,9 @@ function isUnconditionedAllow(grant, now) {
1298
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);
1299
1391
  }
1300
1392
  /**
1301
- * The row condition a grant's `requires` adds: the row's instance of some
1302
- * scope is one where the subject holds `key` through a role grant without a
1303
- * 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.
1304
1396
  * `undefined` when the subject holds `key` globally that way, so every row
1305
1397
  * passes. The in-process mirror of the SQL `permdock_has_permission` and
1306
1398
  * `permitted_<scope>_ids_by_permission`.
@@ -1374,9 +1466,9 @@ function keyRequirement(policy, subject, key, resource, now, customRoles, custom
1374
1466
  //#endregion
1375
1467
  //#region src/core/evaluate/candidates.ts
1376
1468
  /**
1377
- * A collection write proposes `next`; an update pair may move `next` out of
1378
- * the scope `current` is in. An allow needs both in scope; a deny applies
1379
- * 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.
1380
1472
  */
1381
1473
  function matchWriteScope(match, instance, current, next, deny) {
1382
1474
  const first = match(instance ? current : next);
@@ -1386,7 +1478,10 @@ function matchWriteScope(match, instance, current, next, deny) {
1386
1478
  const moved = match(next);
1387
1479
  return moved.ok ? first : moved;
1388
1480
  }
1389
- /** 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
+ */
1390
1485
  function candidatesFor(call) {
1391
1486
  const { permission } = call;
1392
1487
  const candidates = (call.policy.index.grantsByKey.get(permission.key) ?? []).filter((grant) => grant.breakGlass === void 0).map((grant) => ({ grant }));
@@ -1444,7 +1539,8 @@ function holdsRole(state, item, custom) {
1444
1539
  }
1445
1540
  /**
1446
1541
  * Whether the subject holds every role the grantee names, at a scope the row
1447
- * (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.
1448
1544
  */
1449
1545
  function roleScope(state, grant, custom) {
1450
1546
  const { subject, permission, tracer } = state;
@@ -1510,7 +1606,10 @@ function granteeOf(state, grant, custom) {
1510
1606
  reason
1511
1607
  });
1512
1608
  }
1513
- /** 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
+ */
1514
1613
  function evaluateCandidate(state, { grant, custom }, breakGlass) {
1515
1614
  const { policy, subject, permission, now, env, tracer } = state;
1516
1615
  const displayRole = grant.role;
@@ -1575,7 +1674,10 @@ function evaluateCandidate(state, { grant, custom }, breakGlass) {
1575
1674
  membership: scoped.membership
1576
1675
  });
1577
1676
  }
1578
- /** 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
+ */
1579
1681
  function mergeBreakGlass(state, breakGlass) {
1580
1682
  if (breakGlass.grant !== void 0) {
1581
1683
  state.tracer?.allows.push(matchedOf(breakGlass.grant, state.permission.key, true));
@@ -1598,8 +1700,8 @@ function noAllowDecision(state) {
1598
1700
  }
1599
1701
  /**
1600
1702
  * The allows a delegation leaves usable. A policy delegation is a ceiling for
1601
- * the actor: outside it, nothing is delegated; inside it, a token delegation
1602
- * 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.
1603
1705
  */
1604
1706
  function delegatedAllows(state) {
1605
1707
  const { policy, subject, permission, current } = state;
@@ -1638,7 +1740,10 @@ function approvalOf(state, candidate) {
1638
1740
  }
1639
1741
  //#endregion
1640
1742
  //#region src/core/evaluate/quota.ts
1641
- /** 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
+ */
1642
1747
  function quotaOf(state, grant, consume) {
1643
1748
  const { env, subject } = state;
1644
1749
  if (grant.limit === void 0) return { ok: true };
@@ -1686,9 +1791,9 @@ function quotaAllow(state, usable) {
1686
1791
  /**
1687
1792
  * One decision, in stages: the call (clock, rows, delegated permission), the
1688
1793
  * subject (held roles, actor), the candidate grants (a matching deny ends
1689
- * here), break-glass, freshness, delegation and contact, the approval and
1690
- * quota of each usable allow, and the decision. Every exit goes through
1691
- * `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.
1692
1797
  */
1693
1798
  function evaluate(policy, given, permission, data, options, env) {
1694
1799
  const call = {
@@ -1782,4 +1887,4 @@ function evaluate(policy, given, permission, data, options, env) {
1782
1887
  return allowedDecision(state, chosen.allow, chosen.approval, chosen.quota);
1783
1888
  }
1784
1889
  //#endregion
1785
- export { contactMayUse as A, validateCustomRole as C, activate as D, finish as E, isContact as M, APPROVAL_POLICY_UNAVAILABLE as N, breakGlass as O, tenantCustomRoles as S, emptyListeners as T, isSharedCustomRole as _, expandRoleNames as a, resolveCustomRole as b, andWhere as c, customRoleClaim as d, customRoleId as f, holdsGlobalCustomRole as g, holdsCustomRole as h, customRolesFor as i, contactMemberships as j, supportAccess as k, ceilingGrants as l, customRoleScope as m, requirementCondition as n, roleSourceFor as o, customRoleOf as p, assignableNamesFor as r, sourceName as s, evaluate as t, customGrantsFor as u, leveled as v, emitSafe as w, roleAllowKeys as x, membershipsClaim as y };
1890
+ export { breakGlass as A, tenantCustomRoles as C, emptyListeners as D, emitSafe as E, APPROVAL_POLICY_UNAVAILABLE as F, contactMayUse as M, contactMemberships as N, finish as O, isContact as P, roleAllowKeys as S, validateCustomRole as T, isSharedCustomRole as _, expandRoleNames as a, parseCustomRoleEntry as b, andWhere as c, customRoleClaim as d, customRoleId as f, holdsGlobalCustomRole as g, holdsCustomRole as h, customRolesFor as i, supportAccess as j, activate as k, ceilingGrants as l, customRoleScope as m, requirementCondition as n, roleSourceFor as o, customRoleOf as p, assignableNamesFor as r, sourceName as s, evaluate as t, customGrantsFor as u, leveled as v, unknownLevelsFor as w, resolveCustomRole as x, membershipsClaim as y };
@@ -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-Br4jSNVi.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-CBYVMjwh.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;
@@ -420,7 +441,7 @@ function unknownSemanticProblem() {
420
441
  * order, stopping after the first deny or permit.
421
442
  */
422
443
  async function evaluateBatch(items, semantic, rowOf) {
423
- if (semantic === "execute_all") return Promise.all(items.map(rowOf));
444
+ if (semantic === "execute_all") return Promise.all(items.map((item) => rowOf(item)));
424
445
  const stopOn = semantic === "permit_on_first_permit";
425
446
  const rows = [];
426
447
  for (const item of items) {
@@ -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 { wireResourceId as _, evaluationReasons as a, unknownSemanticProblem as c, discoverViaSignatureAgent as d, invalidSignatureProblem as f, permissionLookup as g, itemResourceData as h, evaluateBatch as i, withRequestId as l, webBotAuthVerifier as m, applyApprovalResume as n, evaluationsHandler as o, invalidSignatureResponse as p, authzenMetadata as r, evaluationsSemantic as s, EVALUATIONS_SEMANTICS as t, InvalidSignatureError as u, NO_GRANT as v };
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 };