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
@@ -9,19 +9,31 @@ function isRfc3339(value) {
9
9
  function rfc3339(seconds) {
10
10
  return (/* @__PURE__ */ new Date(seconds * 1e3)).toISOString();
11
11
  }
12
- /** Milliseconds since the epoch as RFC 3339 in UTC, milliseconds kept; throws a `RangeError` for a value outside the `Date` range. */
12
+ /**
13
+ * Milliseconds since the epoch as RFC 3339 in UTC, milliseconds kept; throws a
14
+ * `RangeError` for a value outside the `Date` range.
15
+ */
13
16
  function isoAt(millis) {
14
17
  return new Date(millis).toISOString();
15
18
  }
16
- /** RFC 3339 in UTC of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
19
+ /**
20
+ * RFC 3339 in UTC of `now`, or of the clock when absent; throws a `RangeError`
21
+ * for a `now` that is not an `Instant`.
22
+ */
17
23
  function isoNow(now) {
18
24
  return dateAt(now).toISOString();
19
25
  }
20
- /** Whole seconds since the epoch of an RFC 3339 instant; `undefined` for anything else. */
26
+ /**
27
+ * Whole seconds since the epoch of an RFC 3339 instant; `undefined` for
28
+ * anything else.
29
+ */
21
30
  function secondsOf(value) {
22
31
  return isRfc3339(value) ? Math.floor(Date.parse(value) / 1e3) : void 0;
23
32
  }
24
- /** Whole seconds since the epoch of an RFC 3339 string or an `Instant`; `undefined` for anything else, Unix seconds included. */
33
+ /**
34
+ * Whole seconds since the epoch of an RFC 3339 string or an `Instant`;
35
+ * `undefined` for anything else, Unix seconds included.
36
+ */
25
37
  function instantOf(value) {
26
38
  if (typeof value === "string") return secondsOf(value);
27
39
  if (typeof value === "object" && value !== null && "epochMilliseconds" in value && typeof value.epochMilliseconds === "number" && Number.isFinite(value.epochMilliseconds)) return Math.floor(value.epochMilliseconds / 1e3);
@@ -30,7 +42,10 @@ function instantOf(value) {
30
42
  function durationOf(value) {
31
43
  return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : void 0;
32
44
  }
33
- /** Throws at definition time unless `value` is a whole number of seconds above zero. */
45
+ /**
46
+ * Throws at definition time unless `value` is a whole number of seconds above
47
+ * zero.
48
+ */
34
49
  function assertDuration(value, label) {
35
50
  if (durationOf(value) === void 0) throw new Error(`PermDock: ${label} must be a whole number of seconds above 0, got ${JSON.stringify(value) ?? String(value)}`);
36
51
  }
@@ -43,13 +58,19 @@ const INVALID_NOW = Object.freeze({
43
58
  field: "now",
44
59
  message: "now must be an Instant ({ epochMilliseconds }), such as a Temporal.Instant"
45
60
  });
46
- /** The `Date` of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
61
+ /**
62
+ * The `Date` of `now`, or of the clock when absent; throws a `RangeError` for a
63
+ * `now` that is not an `Instant`.
64
+ */
47
65
  function dateAt(now) {
48
66
  const millis = nowMillis(now);
49
67
  if (!Number.isFinite(millis)) throw new RangeError(`PermDock: ${INVALID_NOW.message}`);
50
68
  return new Date(millis);
51
69
  }
52
- /** Whole seconds since the epoch of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
70
+ /**
71
+ * Whole seconds since the epoch of `now`, or of the clock when absent; throws a
72
+ * `RangeError` for a `now` that is not an `Instant`.
73
+ */
53
74
  function secondsAt(now) {
54
75
  return Math.floor(dateAt(now).getTime() / 1e3);
55
76
  }
@@ -61,7 +82,10 @@ function instantAt(seconds) {
61
82
  function epochSeconds(now) {
62
83
  return nowMillis(now) / 1e3;
63
84
  }
64
- /** Milliseconds since the epoch of `now`, or of the clock when absent; `NaN` for a `now` that is not an `Instant`. */
85
+ /**
86
+ * Milliseconds since the epoch of `now`, or of the clock when absent; `NaN` for
87
+ * a `now` that is not an `Instant`.
88
+ */
65
89
  function nowMillis(now) {
66
90
  if (now === void 0) return Date.now();
67
91
  const millis = typeof now === "object" && now !== null ? now.epochMilliseconds : void 0;
@@ -1,9 +1,9 @@
1
- import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
2
- import { r as sha256Digest } from "./sha256-D9ihqmvd.js";
1
+ import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
2
+ import { r as sha256Digest } from "./sha256-C-4WXKIu.js";
3
3
  //#region src/core/token.ts
4
4
  /**
5
- * Only stable identity goes into the token, so refreshing a session (new
6
- * roles, assurance or claims) does not orphan an outstanding approval.
5
+ * Only stable identity goes into the token, so refreshing a session (new roles,
6
+ * assurance or claims) does not orphan an outstanding approval.
7
7
  */
8
8
  function principalIdentity(principal) {
9
9
  if (principal === null) return null;
@@ -13,7 +13,10 @@ function principalIdentity(principal) {
13
13
  issuer: principal.issuer ?? null
14
14
  };
15
15
  }
16
- /** A row's `version` field as token input; `null` when it is missing or not a scalar. */
16
+ /**
17
+ * A row's `version` field as token input; `null` when it is missing or not a
18
+ * scalar.
19
+ */
17
20
  function versionOf(row, field) {
18
21
  if (row === null || typeof row !== "object" || !Object.hasOwn(row, field)) return null;
19
22
  const value = row[field];
@@ -25,20 +28,19 @@ function payloadDigest(data) {
25
28
  return sha256Digest(canonicalJson(data));
26
29
  }
27
30
  /**
28
- * The payload a decision token binds: the call's `args` when the caller
29
- * passes them (an agent or MCP tool call, row or not), otherwise the data of
30
- * a call without a row id. `undefined` binds nothing beyond the row id.
31
+ * The payload a decision token binds: the call's `args` when the caller passes
32
+ * them (an agent or MCP tool call, row or not), otherwise the data of a call
33
+ * without a row id. `undefined` binds nothing beyond the row id.
31
34
  */
32
35
  function tokenPayload(resourceId, data, args) {
33
36
  if (args !== void 0) return payloadDigest(args);
34
37
  return resourceId === "*" && data !== void 0 ? payloadDigest(data) : void 0;
35
38
  }
36
39
  /**
37
- * `version` is set only for an approval that goes stale on a resource
38
- * change; without it the payload, and so every other token, is unchanged.
39
- * `payload` is set when `resourceId` is `*` (a collection action or a row
40
- * without an id), so an approval covers the arguments it was given and no
41
- * others.
40
+ * `version` is set only for an approval that goes stale on a resource change;
41
+ * without it the payload, and so every other token, is unchanged. `payload` is
42
+ * set when `resourceId` is `*` (a collection action or a row without an id), so
43
+ * an approval covers the arguments it was given and no others.
42
44
  */
43
45
  function decisionToken(input) {
44
46
  const payload = canonicalJson({
@@ -1,5 +1,5 @@
1
1
  import { t as wireDenials } from "./wire-denial-C7PaVYEM.js";
2
- import { t as describe } from "./describe-BybMRY7A.js";
2
+ import { n as describe } from "./describe-Bb4hGK5d.js";
3
3
  //#region src/core/tool-refusal.ts
4
4
  function deniedToolRefusal(decision, permission, resource) {
5
5
  const alternatives = decision.alternatives.map((leaf) => leaf.key);
@@ -26,7 +26,10 @@ function approvalToolRefusal(decision, permission, resource) {
26
26
  }
27
27
  };
28
28
  }
29
- /** An MCP `CallToolResult` with `isError` set, as MCP and WebMCP clients read it. */
29
+ /**
30
+ * An MCP `CallToolResult` with `isError` set, as MCP and WebMCP clients read
31
+ * it.
32
+ */
30
33
  function toolErrorResult(refusal) {
31
34
  return {
32
35
  isError: true,
@@ -1,10 +1,10 @@
1
- import { T as Policy, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
4
- import { n as RevocationFeed } from "../revocations-R07lFBnX.js";
5
- import { D as ConnectionOptions, T as Connection, i as OpenApiHooks } from "../server-types-CKQiCnON.js";
6
- import { t as ServerAdapterOptions } from "../bind-DOyrv6zi.js";
7
- import { t as StreamProtectOptions } from "../stream-CeCMJmBB.js";
1
+ import { T as Policy, 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 { n as RevocationFeed } from "../revocations-BaUXHM1N.js";
5
+ import { D as ConnectionOptions, T as Connection, i as OpenApiHooks } from "../server-types-CIlpSA2G.js";
6
+ import { t as ServerAdapterOptions } from "../bind-Cp2hBHzP.js";
7
+ import { t as StreamProtectOptions } from "../stream-ltuLdtTG.js";
8
8
  import { AnyTRPCMiddlewareFunction } from "@trpc/server";
9
9
  //#region src/trpc/create.d.ts
10
10
  type TrpcMiddlewareOpts<TCtx = object, TInput = unknown> = {
@@ -34,7 +34,10 @@ type TrpcOpenApiHooks = {
34
34
  readonly securitySchemes: OpenApiHooks["securitySchemes"];
35
35
  };
36
36
  type TrpcPermDock<TCtx = object> = {
37
- /** The `PermDock` for one procedure call, for code the middleware does not run before. */
37
+ /**
38
+ * The `PermDock` for one procedure call, for code the middleware does not run
39
+ * before.
40
+ */
38
41
  readonly getPermDock: (opts: TrpcMiddlewareOpts<TCtx>) => Promise<PermDock>;
39
42
  readonly middleware: () => TrpcMiddleware;
40
43
  readonly protect: (permission: Permission | null, data?: (opts: TrpcMiddlewareOpts<TCtx>) => unknown, protectOptions?: StreamProtectOptions) => TrpcMiddleware;
@@ -1,12 +1,15 @@
1
- import { o as problemMessage } from "../http-BBoKefeS.js";
2
- import { t as problemFromError } from "../map-error-Dr70oA_3.js";
3
- import { n as attached } from "../bind-CAvgUuKs.js";
4
- import { i as isAsyncIterable, o as reloadAfter } from "../stream-CvdUS9V1.js";
5
- import { i as rpcCode, n as guardStream, r as problemBody, t as bindRpcKernel } from "../rpc-VSl5ylaQ.js";
1
+ import { o as problemMessage } from "../http-DKLXrFGk.js";
2
+ import { t as problemFromError } from "../map-error-pasIGqMT.js";
3
+ import { n as attached } from "../bind-D_sZSVA3.js";
4
+ import { i as isAsyncIterable, o as reloadAfter } from "../stream-CDvF0sJm.js";
5
+ import { i as rpcCode, n as guardStream, r as problemBody, t as bindRpcKernel } from "../rpc-fNqAIqQk.js";
6
6
  import { TRPCError, isTrackedEnvelope } from "@trpc/server";
7
7
  //#region src/trpc/create.ts
8
8
  const PROBLEM = Symbol.for("permdock.problem");
9
- /** A `TRPCError` for a revoked subscription; the Problem Details body rides on `cause`. */
9
+ /**
10
+ * A `TRPCError` for a revoked subscription; the Problem Details body rides on
11
+ * `cause`.
12
+ */
10
13
  function trpcErrorFrom(error) {
11
14
  const problem = error.toProblemDetails();
12
15
  const cause = { ...problem };
@@ -34,8 +37,8 @@ async function throwTrpcError(response) {
34
37
  });
35
38
  }
36
39
  /**
37
- * A PermDock error thrown further down (an `assert` in a resolver) arrives as
38
- * a failed middleware result; it becomes the same TRPCError `protect` throws.
40
+ * A PermDock error thrown further down (an `assert` in a resolver) arrives as a
41
+ * failed middleware result; it becomes the same TRPCError `protect` throws.
39
42
  */
40
43
  function mapDownstream(result) {
41
44
  if (result === null || typeof result !== "object" || result.ok !== false) return Promise.resolve(result);
@@ -70,7 +73,10 @@ function createPermDock(policy, options) {
70
73
  attach(nextCtx, request);
71
74
  return mapDownstream(await opts.next({ ctx: nextCtx }));
72
75
  });
73
- /** Wraps a subscription's iterable so revocation ends it and unreadable items drop. */
76
+ /**
77
+ * Wraps a subscription's iterable so revocation ends it and unreadable items
78
+ * drop.
79
+ */
74
80
  const guardSubscription = async (result, opts, permission, data, protectOptions) => {
75
81
  if (result === null || typeof result !== "object" || result.ok !== true || !isAsyncIterable(result.data)) return result;
76
82
  return {
@@ -0,0 +1,50 @@
1
+ import { j as PolicyVocabulary, mn as ScopeNames } from "./policy-types-CCiDRZBH.js";
2
+ import { k as POLICY_SCOPES, u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { n as PlanTree } from "./vocabulary-DEJ5j4mR.js";
4
+ import { o as OperationMap } from "./operations-Ci_rT6Uo.js";
5
+ //#region src/core/type-helpers.d.ts
6
+ /** Recursion guard: a tree nests resources at most this many levels deep. */
7
+ type Depth = [never, 0, 1, 2, 3, 4, 5, 6, 7];
8
+ /** The literal string keys of `T`, without an index signature. */
9
+ type KnownKeys<T> = keyof { readonly [K in keyof T as string extends K ? never : K extends string ? K : never]: 0; };
10
+ type LeavesOf<T, D extends number> = [D] extends [never] ? never : T extends Permission ? T : { readonly [K in KnownKeys<T>]-?: LeavesOf<T[K], Depth[D]>; }[KnownKeys<T>];
11
+ /** The union of the permission leaves of a `definePermissions` tree. */
12
+ type PermissionOf<T> = [KnownKeys<T>] extends [never] ? Permission : LeavesOf<T, 8>;
13
+ type TreeOf<P> = P extends {
14
+ readonly vocabulary: {
15
+ readonly permissions: infer T;
16
+ };
17
+ } ? T : P;
18
+ /** The resource names of a policy or a permission tree, else `string`. */
19
+ type ResourceNameOf<P> = PermissionOf<TreeOf<P>>["resource"];
20
+ /** The action names of a policy or a permission tree, else `string`. */
21
+ type ActionNameOf<P> = PermissionOf<TreeOf<P>>["action"];
22
+ /** The permission keys of a policy or a permission tree, else `string`. */
23
+ type PermissionKeyOf<P> = PermissionOf<TreeOf<P>>["key"];
24
+ /**
25
+ * The scope names a policy's `definePolicy({ scopes })` declares, plus the
26
+ * `tenant` / `team` aliases; `string` for a policy that declares none.
27
+ */
28
+ type ScopeNameOf<P> = P extends {
29
+ readonly [POLICY_SCOPES]?: infer S;
30
+ } ? ScopeNames<Exclude<S, undefined>> : string;
31
+ /**
32
+ * The plan names a policy declares: the keys of its `definePlans` vocabulary,
33
+ * else `string`.
34
+ */
35
+ type PlanNameOf<P> = P extends {
36
+ readonly vocabulary: infer V;
37
+ } ? V extends {
38
+ readonly plans: infer T extends PlanTree;
39
+ } ? T[keyof T]["key"] : string : string;
40
+ /** The operation names of a `defineOperations` map, else `string`. */
41
+ type OperationNameOf<O> = O extends OperationMap<infer D> ? keyof D & string : string;
42
+ /**
43
+ * The vocabulary a policy was defined with, for an instance type such as
44
+ * `usePermDock<VocabularyOf<typeof policy>>()`; `PolicyVocabulary` otherwise.
45
+ */
46
+ type VocabularyOf<P> = P extends {
47
+ readonly vocabulary: infer V extends PolicyVocabulary;
48
+ } ? V : PolicyVocabulary;
49
+ //#endregion
50
+ export { PlanNameOf as a, VocabularyOf as c, PermissionOf as i, OperationNameOf as n, ResourceNameOf as o, PermissionKeyOf as r, ScopeNameOf as s, ActionNameOf as t };
@@ -1,15 +1,18 @@
1
- import { ar as Subject, dt as TokenVerifier, ot as SnapshotSource, q as DecisionSink, ut as TokenSigner } from "./policy-types-n0uRTsW8.js";
2
- import { o as PolicySource } from "./hosted-BPk51-kX.js";
3
- import { m as ApprovalStore, u as ApprovalRequest } from "./types-BdtSDbBO.js";
4
- import { a as CatalogDocument } from "./types-Druu9wLM.js";
5
- import { a as CatalogFinding } from "./sink-4-eQIRWf.js";
1
+ import { dt as TokenVerifier, lr as Subject, ot as SnapshotSource, q as DecisionSink, ut as TokenSigner } from "./policy-types-CCiDRZBH.js";
2
+ import { s as PolicySource } from "./hosted-Cmtxogd0.js";
3
+ import { m as ApprovalStore, u as ApprovalRequest } from "./types-B_tiYvk8.js";
4
+ import { a as CatalogDocument } from "./types-ZzRGoViD.js";
5
+ import { a as CatalogFinding } from "./sink-Dvi7YZG_.js";
6
6
  //#region src/cloud/types.d.ts
7
7
  type CloudEndpointOptions = {
8
8
  readonly url?: string;
9
9
  readonly environment?: string;
10
10
  };
11
11
  type CloudEndpoints = {
12
- /** The environment URL, `<url>/v1/environments/<env>`: `iss` and `aud` of the policy document. */
12
+ /**
13
+ * The environment URL, `<url>/v1/environments/<env>`: `iss` and `aud` of the
14
+ * policy document.
15
+ */
13
16
  readonly issuer: string;
14
17
  /** The environment's JWK Set URL, for `joseTokenVerifier({ jwks })`. */
15
18
  readonly jwks: string;
@@ -24,50 +27,60 @@ type CloudConnectionOptions = CloudEndpointOptions & {
24
27
  type CloudApproverOptions = {
25
28
  /**
26
29
  * Signs the token with a key the environment trusts as an issuer, such as
27
- * `joseTokenSigner` over your own key. Never `cloudSigner`: a client key
28
- * that could mint approver tokens could forge any approver.
30
+ * `joseTokenSigner` over your own key. Never `cloudSigner`: a client key that
31
+ * could mint approver tokens could forge any approver.
29
32
  */
30
33
  readonly signer: TokenSigner;
31
- /** `aud` of the token; defaults to `<issuer>/approvals`, the environment URL plus `/approvals`. */
34
+ /**
35
+ * `aud` of the token; defaults to `<issuer>/approvals`, the environment URL
36
+ * plus `/approvals`.
37
+ */
32
38
  readonly audience?: string | readonly string[];
33
39
  /**
34
40
  * The `holder(permission)` approvers of `request` that `approver` holds,
35
41
  * typically `approverPermissions(request, permdockFor(approver))`. Signed
36
- * into the token as `permissions`; without it the verdict's own
37
- * `permissions` are signed. A throw signs none.
42
+ * into the token as `permissions`; without it the verdict's own `permissions`
43
+ * are signed. A throw signs none.
38
44
  */
39
45
  readonly permissions?: (request: ApprovalRequest, approver: Subject) => readonly string[] | Promise<readonly string[]>;
40
46
  /**
41
47
  * The relation approvers of `request` that `approver` holds, typically
42
- * `approverRelations(request, approver, { relations, permissions })`.
43
- * Signed into the token as `relations`; without it the verdict's own
44
- * `relations` are signed. A throw signs none.
48
+ * `approverRelations(request, approver, { relations, permissions })`. Signed
49
+ * into the token as `relations`; without it the verdict's own `relations` are
50
+ * signed. A throw signs none.
45
51
  */
46
52
  readonly relations?: (request: ApprovalRequest, approver: Subject) => readonly string[] | Promise<readonly string[]>;
47
53
  };
48
54
  type CloudOptions = CloudConnectionOptions & {
49
55
  /**
50
- * Proves the approver on `approvals.resolve`. Without it, every resolve but
51
- * a `system` rejection throws `approver-unauthenticated` and sends nothing.
56
+ * Proves the approver on `approvals.resolve`. Without it, every resolve but a
57
+ * `system` rejection throws `approver-unauthenticated` and sends nothing.
52
58
  */
53
59
  readonly approver?: CloudApproverOptions;
54
60
  readonly flushAt?: number;
55
- /** Most events the sink holds while the Cloud is unreachable (default 10 000); the oldest are dropped first. */
61
+ /**
62
+ * Most events the sink holds while the Cloud is unreachable (default 10 000);
63
+ * the oldest are dropped first.
64
+ */
56
65
  readonly capacity?: number;
57
66
  readonly waitUntil?: (task: Promise<void>) => void;
58
- /** The CloudEvents `source` of every event the sink sends, an absolute URI; defaults to the environment URL. */
67
+ /**
68
+ * The CloudEvents `source` of every event the sink sends, an absolute URI;
69
+ * defaults to the environment URL.
70
+ */
59
71
  readonly source?: string;
60
72
  /**
61
- * Verifies the environment's signed policy document, typically
62
- * `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`. Without one,
63
- * `policies.current()` stays `null`: an unverifiable document is never applied.
73
+ * Verifies the environment's signed policy document, typically `({ jwks }) =>
74
+ * joseTokenVerifier({ jwks })`. A function is called once, with the resolved
75
+ * endpoints, on the first refresh. Without one, `policies.current()` stays
76
+ * `null`: an unverifiable document is never applied.
64
77
  */
65
- readonly verifier?: TokenVerifier;
78
+ readonly verifier?: TokenVerifier | ((endpoints: CloudEndpoints) => TokenVerifier);
66
79
  };
67
80
  /**
68
81
  * What `POST /catalog` answers: `201` with the new version and the drift
69
- * findings against the previous one, or `200` with `unchanged: true` when
70
- * the fingerprint is already published.
82
+ * findings against the previous one, or `200` with `unchanged: true` when the
83
+ * fingerprint is already published.
71
84
  */
72
85
  type CloudCatalogPush = {
73
86
  readonly version: number;
@@ -80,13 +93,19 @@ type CloudCatalogPush = {
80
93
  };
81
94
  type CloudCatalog = {
82
95
  /**
83
- * Posts the catalog, its `operations` included, to the environment.
84
- * Throws when the Cloud refuses it or answers another shape. The Cloud
85
- * shows and diffs it; it never decides with it.
96
+ * Posts the catalog, its `operations` included, to the environment. Throws
97
+ * when the Cloud refuses it or answers another shape. The Cloud shows and
98
+ * diffs it; it never decides with it.
86
99
  */
87
- push(catalog: CatalogDocument): Promise<CloudCatalogPush>;
100
+ push: (catalog: CatalogDocument) => Promise<CloudCatalogPush>;
88
101
  };
89
- type CloudClient = CloudEndpoints & {
102
+ type CloudClient = Partial<CloudEndpoints> & {
103
+ /**
104
+ * The environment URL and JWK Set URL. `issuer` and `jwks` are set only when
105
+ * the environment is configured; otherwise the first call asks `GET
106
+ * /v1/environment` which environment the key belongs to.
107
+ */
108
+ endpoints: () => Promise<CloudEndpoints>;
90
109
  readonly approvals: ApprovalStore;
91
110
  readonly sink: DecisionSink;
92
111
  /**
@@ -95,7 +114,7 @@ type CloudClient = CloudEndpoints & {
95
114
  * signed. Sent as `PermDock-Subject`; the Cloud never takes a subject from
96
115
  * anything else.
97
116
  */
98
- snapshotsFor(token: string): SnapshotSource;
117
+ snapshotsFor: (token: string) => SnapshotSource;
99
118
  readonly policies: PolicySource;
100
119
  readonly catalog: CloudCatalog;
101
120
  };
@@ -1,11 +1,11 @@
1
- import { fn as Approver } from "./policy-types-n0uRTsW8.js";
1
+ import { gn as Approver } from "./policy-types-CCiDRZBH.js";
2
2
  //#region src/approvals/access-reviews/types.d.ts
3
3
  type AccessReviewStatus = "open" | "closed";
4
4
  type AccessReviewItemStatus = "pending" | "kept" | "revoked";
5
5
  /**
6
- * Access review v1: who holds `permissions` in one tenant, and who may
7
- * confirm or revoke each holding. PermDock records the reviewer's decision
8
- * and never changes the role or membership itself.
6
+ * Access review v1: who holds `permissions` in one tenant, and who may confirm
7
+ * or revoke each holding. PermDock records the reviewer's decision and never
8
+ * changes the role or membership itself.
9
9
  */
10
10
  type AccessReview = {
11
11
  readonly v: 1;
@@ -20,7 +20,10 @@ type AccessReview = {
20
20
  /** `false` when the population can omit a holder, such as a global role. */
21
21
  readonly complete: boolean;
22
22
  };
23
- /** One holding in a review. `via` names the roles the population attributed it to. */
23
+ /**
24
+ * One holding in a review. `via` names the roles the population attributed it
25
+ * to.
26
+ */
24
27
  type AccessReviewItem = {
25
28
  readonly v: 1;
26
29
  readonly id: string;
@@ -54,12 +57,12 @@ type AccessReviewDecision = {
54
57
  type AccessReviewStore = {
55
58
  /** Names the implementation in errors and events. */
56
59
  readonly name?: string;
57
- create(review: AccessReview, items: readonly AccessReviewItem[]): Promise<void> | void;
58
- get(id: string): Promise<AccessReview | null> | AccessReview | null;
59
- items(query: AccessReviewItemQuery): Promise<AccessReviewItemPage> | AccessReviewItemPage;
60
- decide(reviewId: string, itemId: string, decision: AccessReviewDecision): Promise<AccessReviewItem> | AccessReviewItem;
61
- markApplied(reviewId: string, itemId: string, at: string): Promise<AccessReviewItem> | AccessReviewItem;
62
- close(id: string): Promise<AccessReview> | AccessReview;
60
+ create: (review: AccessReview, items: readonly AccessReviewItem[]) => Promise<void> | void;
61
+ get: (id: string) => Promise<AccessReview | null> | AccessReview | null;
62
+ items: (query: AccessReviewItemQuery) => Promise<AccessReviewItemPage> | AccessReviewItemPage;
63
+ decide: (reviewId: string, itemId: string, decision: AccessReviewDecision) => Promise<AccessReviewItem> | AccessReviewItem;
64
+ markApplied: (reviewId: string, itemId: string, at: string) => Promise<AccessReviewItem> | AccessReviewItem;
65
+ close: (id: string) => Promise<AccessReview> | AccessReview;
63
66
  };
64
67
  //#endregion
65
68
  export { AccessReviewItemQuery as a, AccessReviewStore as c, AccessReviewItemPage as i, AccessReviewDecision as n, AccessReviewItemStatus as o, AccessReviewItem as r, AccessReviewStatus as s, AccessReview as t };
@@ -1,6 +1,6 @@
1
- import { Nn as Decision, Rn as ExplainedDecision, T as Policy, ar as Subject, j as PolicyVocabulary, nr as Membership, rr as Principal } from "./policy-types-n0uRTsW8.js";
2
- import { E as PermissionTree, w as Permission } from "./vocabulary-CN8H_9UF.js";
3
- import { c as WhereResult, i as PermDockOptions, n as DeriveOptions, o as SimulateOptions, r as PermDock, t as DecideOptions } from "./permdock-SV8ZINYT.js";
1
+ import { Hn as ExplainedDecision, Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, or as Membership, sr as Principal } from "./policy-types-CCiDRZBH.js";
2
+ import { f as PermissionTree, u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { C as PermissionCheck, a as PermDock, f as WhereResult, l as SimulateOptions, n as DecideOptions, o as PermDockOptions, r as DeriveOptions } from "./permdock-B6Sf4T_S.js";
4
4
  //#region src/pdp/types.d.ts
5
5
  type RemotePdpAuth = {
6
6
  readonly bearer: string | (() => string | Promise<string>);
@@ -40,9 +40,9 @@ type RemotePdpOptions = {
40
40
  readonly fetch?: typeof fetch;
41
41
  };
42
42
  /**
43
- * One tuple callback per delegated permission. The callback receives the
44
- * row for a check and `undefined` for a listing; returning `null` denies
45
- * with `pdp-denied`, throwing denies with `pdp-invalid-response`.
43
+ * One tuple callback per delegated permission. The callback receives the row
44
+ * for a check and `undefined` for a listing; returning `null` denies with
45
+ * `pdp-denied`, throwing denies with `pdp-invalid-response`.
46
46
  */
47
47
  type RelationMap<T> = readonly (readonly [Permission, (subject: Subject, data: unknown) => T | null])[];
48
48
  type OpenFgaTuple = {
@@ -86,25 +86,38 @@ type SpiceDbOptions = {
86
86
  readonly cache?: RemotePdpCache;
87
87
  readonly fetch?: typeof fetch;
88
88
  };
89
- type PdpPermDock<V extends PolicyVocabulary = PolicyVocabulary> = Omit<PermDock<V>, "can" | "decide" | "decideEach" | "assert" | "explain" | "filter" | "where" | "simulate" | "tenant" | "team" | "derive"> & {
89
+ type PdpPermDock<V extends PolicyVocabulary = PolicyVocabulary> = Omit<PermDock<V>, "can" | "decide" | "canAll" | "decideAll" | "decideEach" | "decideIds" | "assert" | "explain" | "filter" | "where" | "simulate" | "tenant" | "team" | "derive"> & {
90
90
  /** `permdock.derive` with the same providers: the result asks the PDP too. */
91
91
  readonly derive: (options: DeriveOptions) => Promise<PdpPermDock<V>>;
92
92
  /**
93
- * For a delegated permission whose provider lists ids, an `in` over them
94
- * (AND the local condition when local grants exist); otherwise the local
95
- * `where`, or an always-false `partial` result.
93
+ * For a delegated permission whose provider lists ids, an `in` over them (AND
94
+ * the local condition when local grants exist); otherwise the local `where`,
95
+ * or an always-false `partial` result.
96
96
  */
97
97
  readonly where: (permission: Permission) => Promise<WhereResult>;
98
98
  readonly can: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<boolean>;
99
99
  readonly decide: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<Decision>;
100
+ /**
101
+ * `can` for every check, asking the PDP for each in parallel; `false` for an
102
+ * empty list.
103
+ */
104
+ readonly canAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => Promise<boolean>;
105
+ /**
106
+ * `decide` for every check, in check order, asking the PDP for each in
107
+ * parallel.
108
+ */
109
+ readonly decideAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => Promise<readonly Decision[]>;
100
110
  /** `decide` for each row, in row order, asking the PDP per row. */
101
111
  readonly decideEach: (permission: Permission, rows: readonly unknown[], options?: DecideOptions) => Promise<readonly Decision[]>;
102
112
  readonly assert: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<Extract<Decision, {
103
113
  readonly outcome: "granted";
104
114
  }>>;
105
- /** `decide` with a trace of the local grants; a decision the remote PDP made carries an empty trace. */
115
+ /**
116
+ * `decide` with a trace of the local grants; a decision the remote PDP made
117
+ * carries an empty trace.
118
+ */
106
119
  readonly explain: (permission: Permission, data?: unknown, options?: Omit<DecideOptions, "explain">) => Promise<ExplainedDecision>;
107
- readonly filter: <T>(permission: Permission<string, T, "instance">, rows: readonly T[], options?: DecideOptions) => Promise<T[]>;
120
+ readonly filter: <T>(permission: Permission<string, NoInfer<T>, "instance">, rows: readonly T[], options?: DecideOptions) => Promise<T[]>;
108
121
  readonly simulate: {
109
122
  (checks: readonly (readonly [Permission, unknown?])[], options?: SimulateOptions): Promise<readonly Decision[]>;
110
123
  (preview: {
@@ -1,7 +1,8 @@
1
- import { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, zn as GrantedDecision } from "./policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "./vocabulary-CN8H_9UF.js";
3
- import { n as DescribeMessages } from "./describe-B5qgDvEW.js";
4
- import { h as ClientStoreOptions } from "./types-B3_ooZgZ.js";
1
+ import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, Un as GrantedDecision, dt as TokenVerifier } from "./policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { s as RowData } from "./permdock-B6Sf4T_S.js";
4
+ import { n as DescribeMessages } from "./describe-ByS9LgHK.js";
5
+ import { _ as ClientStoreOptions } from "./types-B_d_g7T3.js";
5
6
  import { ReactNode } from "react";
6
7
  //#region src/react/types.d.ts
7
8
  type PermDockProviderProps = ({
@@ -9,21 +10,24 @@ type PermDockProviderProps = ({
9
10
  readonly snapshotPromise?: never;
10
11
  } | {
11
12
  /**
12
- * An unawaited snapshot from a Server Component. Hooks never suspend on it: until it
13
- * resolves they deny with `status: 'pending'`, then re-render. A rejection fails closed
14
- * (`server-only`). Set `suspend` to suspend readers through `use()` instead.
13
+ * An unawaited snapshot from a Server Component. Hooks never suspend on
14
+ * it: until it resolves they deny with `status: 'pending'`, then
15
+ * re-render. A rejection fails closed (`server-only`). Set `suspend` to
16
+ * suspend readers through `use()` instead.
15
17
  */
16
18
  readonly snapshotPromise: PromiseLike<Snapshot | string>;
17
19
  readonly snapshot?: never;
18
20
  }) & {
19
21
  /**
20
- * With `snapshotPromise`: `true` suspends every hook to the nearest Suspense boundary until it
21
- * resolves, and a rejection reaches the nearest error boundary. Defaults to `false`.
22
+ * With `snapshotPromise`: `true` suspends every hook to the nearest Suspense
23
+ * boundary until it resolves, and a rejection reaches the nearest error
24
+ * boundary. Defaults to `false`.
22
25
  */
23
26
  readonly suspend?: boolean;
24
27
  /**
25
- * The AuthZEN evaluations endpoint for checks the snapshot cannot answer. `false` never
26
- * fetches: those checks answer `denied` with reason `server-only`.
28
+ * The AuthZEN evaluations endpoint for checks the snapshot cannot answer.
29
+ * `false` never fetches: those checks answer `denied` with reason
30
+ * `server-only`.
27
31
  */
28
32
  readonly endpoint?: string | false;
29
33
  /** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
@@ -44,6 +48,11 @@ type PermDockProviderProps = ({
44
48
  readonly onClear?: () => void;
45
49
  /** Milliseconds between approval status polls. Defaults to 2000. */
46
50
  readonly approvalInterval?: number;
51
+ /**
52
+ * Triggers that refresh the snapshot, such as `eventSourceRefresh(url)`; read
53
+ * when the store is built.
54
+ */
55
+ readonly refreshOn?: ClientStoreOptions["refreshOn"];
47
56
  readonly children: ReactNode;
48
57
  };
49
58
  /** Provider-wide content for the `<Protected>` slots a component leaves out. */
@@ -52,9 +61,10 @@ type PermDockDefaults = {
52
61
  readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
53
62
  readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
54
63
  };
55
- type ProtectedProps = {
56
- readonly permission: Permission;
57
- readonly data?: unknown;
64
+ type ProtectedProps<P extends Permission = Permission> = {
65
+ readonly permission: P;
66
+ /** Any part of the permission's row; see `RowData`. */
67
+ readonly data?: RowData<P>;
58
68
  readonly tenant?: string;
59
69
  readonly pending?: ReactNode;
60
70
  readonly denied?: ReactNode | ((decision: Decision) => ReactNode);