permdock 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-CL-QCITA.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  14. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  35. package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
  45. package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
  46. package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
  52. package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
  53. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  54. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  55. package/dist/catalog-mRQQQhNK.js +1 -0
  56. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
  77. package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
  78. package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
  79. package/dist/collect-B5BL3klN.js +1 -0
  80. package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
  81. package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
  98. package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
  99. package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
  100. package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
  101. package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
  102. package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
  103. package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  127. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  128. package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
  130. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  131. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-B5kvbAoZ.js +58 -0
  150. package/dist/gen-DWCYcMQM.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
  164. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  169. package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
  170. package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
  171. package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
  172. package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
  173. package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
  174. package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
  175. package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +33 -33
  178. package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
  179. package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +72 -26
  212. package/dist/next/index.js +110 -6
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  223. package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
  224. package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/output-files-BHOIlrfD.js +1 -0
  232. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  233. package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
  234. package/dist/ownership-B4L59T9u.js +1054 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
  245. package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
  262. package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
  263. package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
  264. package/dist/powersync-Djf-zCpB.js +1 -0
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/pull-B65ndFNZ.js +1 -0
  282. package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
  283. package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
  284. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  285. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-CF7xXLSG.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
  306. package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
  310. package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
  311. package/dist/run-D-JE8QWb.js +1 -0
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  333. package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  334. package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
  335. package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
  344. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  351. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  357. package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
  368. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
  369. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  370. package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +224 -141
  394. package/dist/testing/index.js +299 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  407. package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
  408. package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
  409. package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
  410. package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
  411. package/dist/types-B_d_g7T3.d.ts +262 -0
  412. package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
  413. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  414. package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
  415. package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
  416. package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
  417. package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  418. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  419. package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
  420. package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
  421. package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-CYeXek0p.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
  441. package/dist/watch-DB42U1ib.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  452. package/package.json +7 -7
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +14 -22
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -0,0 +1,48 @@
1
+ import { i as readJsonFile } from "./files-BSjrtIHw.js";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
+ //#region src/cli/project/package-root.ts
6
+ let cached;
7
+ /**
8
+ * The `permdock` package directory. The bundler may place this module in
9
+ * `dist/cli/` or in a shared chunk at `dist/`, so walk up instead of assuming a
10
+ * depth.
11
+ */
12
+ function packageRoot() {
13
+ cached ??= findPackageRoot(dirname(fileURLToPath(import.meta.url)));
14
+ return cached;
15
+ }
16
+ /**
17
+ * The nearest directory at or above `start` whose `package.json` is named
18
+ * `permdock`.
19
+ */
20
+ function findPackageRoot(start) {
21
+ let dir = start;
22
+ for (;;) {
23
+ const manifest = join(dir, "package.json");
24
+ if (existsSync(manifest)) {
25
+ const { name } = readJsonFile(manifest);
26
+ if (name === "permdock") return dir;
27
+ }
28
+ const parent = dirname(dir);
29
+ if (parent === dir) throw new Error("PermDock CLI: cannot find the permdock package root");
30
+ dir = parent;
31
+ }
32
+ }
33
+ //#endregion
34
+ //#region src/cli/core/version.ts
35
+ function cliVersion() {
36
+ return JSON.parse(readFileSync(join(packageRoot(), "package.json"), "utf8")).version;
37
+ }
38
+ function generatorBanner() {
39
+ return `permdock@${cliVersion()}`;
40
+ }
41
+ const CATALOG_SCHEMA = "https://permdock.com/schemas/catalog-v1.json";
42
+ const SUPABASE_MANIFEST_SCHEMA = "https://permdock.com/schemas/supabase-manifest-v1.json";
43
+ const USAGE_REPORT_SCHEMA = "https://permdock.com/schemas/usage-report-v1.json";
44
+ const DOCTOR_REPORT_SCHEMA = "https://permdock.com/schemas/doctor-report-v1.json";
45
+ const CONFIG_REPORT_SCHEMA = "https://permdock.com/schemas/config-report-v1.json";
46
+ const ARAZZO_REPORT_SCHEMA = "https://permdock.com/schemas/arazzo-report-v1.json";
47
+ //#endregion
48
+ export { SUPABASE_MANIFEST_SCHEMA as a, generatorBanner as c, DOCTOR_REPORT_SCHEMA as i, packageRoot as l, CATALOG_SCHEMA as n, USAGE_REPORT_SCHEMA as o, CONFIG_REPORT_SCHEMA as r, cliVersion as s, ARAZZO_REPORT_SCHEMA as t };
@@ -0,0 +1 @@
1
+ export { s as cliVersion } from "./version-DMQ0dnN5.js";
@@ -1,5 +1,5 @@
1
- import { r as requiredPlans } from "./problem-details-cn5X30gZ.js";
2
- import { t as describe } from "./describe-DZlnEtLy.js";
1
+ import { r as requiredPlans } from "./problem-details-CLDgX1KV.js";
2
+ import { n as describe } from "./describe-Bb4hGK5d.js";
3
3
  //#region src/client/views.ts
4
4
  function permissionSet(store, permissions, data) {
5
5
  const granted = [];
@@ -33,7 +33,11 @@ function tenantView(permdock) {
33
33
  };
34
34
  }
35
35
  function rolesView(permdock, options) {
36
- return { roles: (options.team === void 0 ? permdock : permdock.team(options.team)).heldRoles(options.tenant === void 0 ? void 0 : { tenant: options.tenant }) };
36
+ return { roles: permdock.heldRoles({
37
+ ...options.tenant === void 0 ? {} : { tenant: options.tenant },
38
+ ...options.scope === void 0 ? {} : { scope: options.scope },
39
+ ...options.id === void 0 ? {} : { id: options.id }
40
+ }) };
37
41
  }
38
42
  function subjectView(permdock) {
39
43
  const snapshot = permdock.snapshot();
@@ -45,11 +49,17 @@ function subjectView(permdock) {
45
49
  simulated: typeof snapshot === "object" && snapshot !== null && "simulated" in snapshot && snapshot.simulated === true
46
50
  };
47
51
  }
48
- /** The root's view of another tenant for a `Protected` with a `tenant` prop; `undefined` answers the active one. */
52
+ /**
53
+ * The root's view of another tenant for a `Protected` with a `tenant` prop;
54
+ * `undefined` answers the active one.
55
+ */
49
56
  function scopedTenant(root, tenant) {
50
57
  return tenant === void 0 ? void 0 : root.tenant(tenant);
51
58
  }
52
- /** An instance whose every read answers from `current()`, so a held reference follows the store. */
59
+ /**
60
+ * An instance whose every read answers from `current()`, so a held reference
61
+ * follows the store.
62
+ */
53
63
  function livePermDock(current) {
54
64
  return new Proxy({}, { get(_target, prop, _receiver) {
55
65
  return Reflect.get(current(), prop);
@@ -114,7 +124,10 @@ function describeWith(messages) {
114
124
  messages
115
125
  });
116
126
  }
117
- /** The `GateView` of a permission state; `describeDecision` localises the reason. */
127
+ /**
128
+ * The `GateView` of a permission state; `describeDecision` localises the
129
+ * reason.
130
+ */
118
131
  function gateView(state, describeDecision, mode = "disable") {
119
132
  const pending = state.status === "pending";
120
133
  const needsApproval = state.decision.outcome === "approval-required";
@@ -1,4 +1,4 @@
1
- import { j as WithX, k as AppDataSchema, n as ActionMeta } from "./permission-types-DhNEmoRG.js";
1
+ import { F as WithX, N as AppDataSchema, n as ActionMeta } from "./permission-types-CAY-GU7e.js";
2
2
  //#region src/core/vocabulary.d.ts
3
3
  declare const ROLE_KIND: "role";
4
4
  declare const PLAN_KIND: "plan";
@@ -6,8 +6,8 @@ declare const PLAN_KIND: "plan";
6
6
  type VocabularyOptions<X = never> = {
7
7
  /**
8
8
  * A Standard Schema for every leaf's `meta.x`, validated synchronously at
9
- * definition time. On a role tree it also checks the `meta.x` of custom
10
- * roles a `CustomRoleSource` returns; an invalid one is dropped, not the role.
9
+ * definition time. On a role tree it also checks the `meta.x` of custom roles
10
+ * a `CustomRoleSource` returns; an invalid one is dropped, not the role.
11
11
  */
12
12
  readonly x?: AppDataSchema<X>;
13
13
  };
@@ -25,7 +25,10 @@ type Role<K extends string = string> = {
25
25
  readonly on?: string;
26
26
  readonly assignable: boolean;
27
27
  readonly meta: RoleMeta;
28
- /** A shared custom role: the platform defines it for every tenant, and a tenant admin cannot edit it. */
28
+ /**
29
+ * A shared custom role: the platform defines it for every tenant, and a
30
+ * tenant admin cannot edit it.
31
+ */
29
32
  readonly shared?: true;
30
33
  readonly kind: typeof ROLE_KIND;
31
34
  };
@@ -1,23 +1,31 @@
1
- import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, dt as TokenVerifier, or as Membership } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { r as Role } from "../vocabulary-Bg3eeT2H.js";
4
- import { n as requiredPlans } from "../problem-details-Tcfmj3bV.js";
5
- import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-O0SwYIK8.js";
6
- import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
7
- import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
8
- import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle, u as ProviderOptionsBase } from "../types-CKV71kKh.js";
1
+ import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, dt as TokenVerifier, j as PolicyVocabulary, or as Membership } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { r as Role } from "../vocabulary-DEJ5j4mR.js";
4
+ import { d as UncheckedData, s as RowData } from "../permdock-B6Sf4T_S.js";
5
+ import { c as requiredPlans } from "../errors-zi_4T-rx.js";
6
+ import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-ByS9LgHK.js";
7
+ import { t as PermissionBoundaryState } from "../boundary-C9ck-3uK.js";
8
+ import { n as ProtectedAction, t as ActionResult } from "../action-result-CL-QCITA.js";
9
+ import { t as approvalHeaders } from "../headers-B9jQxjtW.js";
10
+ import { a as FilterResult, b as eventSourceRefresh, c as PermissionSet, d as ProtectedActionView, f as ProviderOptionsBase, h as TenantView, i as ClientStatus, l as PermissionState, m as SubjectView, n as ApprovalState, o as GateMode, p as RolesOptions, r as ClientPermDock, s as GateView, t as ApprovalHandle, v as EventSourceRefreshOptions, y as RefreshTrigger } from "../types-B_d_g7T3.js";
9
11
  import { ComputedRef, DefineComponent, MaybeRefOrGetter, Plugin, VNode } from "vue";
10
12
  //#region src/vue/types.d.ts
11
13
  type PermDockPluginOptions = ProviderOptionsBase & {
12
14
  /**
13
- * A ref or getter re-hydrates the store when it changes; a promise keeps
14
- * the store `pending` until it settles (await the same promise in an async
15
+ * A ref or getter re-hydrates the store when it changes; a promise keeps the
16
+ * store `pending` until it settles (await the same promise in an async
15
17
  * `setup` under `<Suspense>`).
16
18
  */
17
19
  readonly snapshot: MaybeRefOrGetter<Snapshot | string> | PromiseLike<Snapshot | string>;
18
- /** A ref or getter switches the active tenant (`refresh({ tenant })`) when it changes. */
20
+ /**
21
+ * A ref or getter switches the active tenant (`refresh({ tenant })`) when it
22
+ * changes.
23
+ */
19
24
  readonly tenant?: MaybeRefOrGetter<string | undefined>;
20
- /** Read on every request: a ref or getter carries a rotated token without rebuilding the store. */
25
+ /**
26
+ * Read on every request: a ref or getter carries a rotated token without
27
+ * rebuilding the store.
28
+ */
21
29
  readonly headers?: MaybeRefOrGetter<Readonly<Record<string, string>> | undefined>;
22
30
  /** Read on every verification; set it at install to verify signed snapshots. */
23
31
  readonly verifier?: MaybeRefOrGetter<TokenVerifier | undefined>;
@@ -25,7 +33,10 @@ type PermDockPluginOptions = ProviderOptionsBase & {
25
33
  readonly defaults?: PermDockDefaults;
26
34
  };
27
35
  type SlotOutput = VNode | VNode[] | string | null;
28
- /** Render functions for the `<Protected>` slots a component leaves out; they get the slot props. */
36
+ /**
37
+ * Render functions for the `<Protected>` slots a component leaves out; they get
38
+ * the slot props.
39
+ */
29
40
  type PermDockDefaults = {
30
41
  readonly pending?: () => SlotOutput;
31
42
  readonly denied?: (props: {
@@ -35,16 +46,40 @@ type PermDockDefaults = {
35
46
  readonly decision: ApprovalRequiredDecision;
36
47
  }) => SlotOutput;
37
48
  };
49
+ /**
50
+ * `useProtectedAction` in Vue: the fields of `ProtectedActionView` as computed
51
+ * refs.
52
+ */
53
+ type ProtectedActionRefs<T> = {
54
+ readonly gate: ComputedRef<GateView>;
55
+ readonly result: ComputedRef<ActionResult<T> | undefined>;
56
+ readonly pending: ComputedRef<boolean>;
57
+ readonly approval: ComputedRef<ApprovalHandle | undefined>;
58
+ readonly run: (input: unknown) => Promise<ActionResult<T>>;
59
+ readonly retry: () => Promise<ActionResult<T> | undefined>;
60
+ };
38
61
  //#endregion
39
62
  //#region src/vue/composables.d.ts
40
- export declare function usePermDock(): ClientPermDock;
41
- export declare function usePermission(permission: MaybeRefOrGetter<Permission>, data?: MaybeRefOrGetter<unknown>): {
63
+ export declare function usePermDock<V extends PolicyVocabulary = PolicyVocabulary>(): ClientPermDock<V>;
64
+ type PermissionRefs = {
42
65
  readonly allowed: ComputedRef<boolean>;
43
66
  readonly status: ComputedRef<PermissionState["status"]>;
44
67
  readonly decision: ComputedRef<Decision>;
45
68
  };
69
+ export declare function usePermission<D>(permission: MaybeRefOrGetter<Permission>, data?: MaybeRefOrGetter<UncheckedData<D>>): PermissionRefs;
70
+ export declare function usePermission<P extends Permission>(permission: MaybeRefOrGetter<P>, data?: MaybeRefOrGetter<RowData<P>>): PermissionRefs;
71
+ /**
72
+ * What a permission-gated control renders, as `useGate` in React: `hidden`,
73
+ * `disabled`, `needsApproval`, `upgrade` and a localised `reason`.
74
+ */
75
+ export declare function useGate<D>(permission: MaybeRefOrGetter<Permission>, data?: MaybeRefOrGetter<UncheckedData<D>>, options?: {
76
+ readonly mode?: GateMode;
77
+ }): ComputedRef<GateView>;
78
+ export declare function useGate<P extends Permission>(permission: MaybeRefOrGetter<P>, data?: MaybeRefOrGetter<RowData<P>>, options?: {
79
+ readonly mode?: GateMode;
80
+ }): ComputedRef<GateView>;
46
81
  export declare function usePermissions(permissions: MaybeRefOrGetter<readonly Permission[]>, data?: MaybeRefOrGetter<unknown>): ComputedRef<PermissionSet>;
47
- export declare function useFilter<T>(permission: Permission<string, T, "instance">, rows: MaybeRefOrGetter<readonly T[]>): ComputedRef<FilterResult<T>>;
82
+ export declare function useFilter<T>(permission: Permission<string, NoInfer<T>, "instance">, rows: MaybeRefOrGetter<readonly T[]>): ComputedRef<FilterResult<T>>;
48
83
  export declare function useTenant(): ComputedRef<TenantView>;
49
84
  export declare function useMemberships(): ComputedRef<readonly Membership[]>;
50
85
  export declare function useRoles(options?: MaybeRefOrGetter<RolesOptions>): ComputedRef<{
@@ -58,16 +93,30 @@ export declare function useSubject(): ComputedRef<SubjectView>;
58
93
  export declare function useApproval(decision: MaybeRefOrGetter<Decision>): ComputedRef<ApprovalHandle>;
59
94
  /** `describe` with the plugin's `messages`; a call's own `messages` win. */
60
95
  export declare function useDescribe(): (decision: Decision, options?: DescribeOptions) => DecisionDescription;
96
+ /**
97
+ * A `protectAction` server action wired to a control, as `useProtectedAction`
98
+ * in React: refs for `gate`, `result`, `pending` and `approval`, plus `run` and
99
+ * `retry`.
100
+ */
101
+ export declare function useProtectedAction<T, D>(action: ProtectedAction<T>, permission: MaybeRefOrGetter<Permission>, data?: MaybeRefOrGetter<UncheckedData<D>>, options?: {
102
+ readonly mode?: GateMode;
103
+ }): ProtectedActionRefs<T>;
104
+ export declare function useProtectedAction<T, P extends Permission>(action: ProtectedAction<T>, permission: MaybeRefOrGetter<P>, data?: MaybeRefOrGetter<RowData<P>>, options?: {
105
+ readonly mode?: GateMode;
106
+ }): ProtectedActionRefs<T>;
61
107
  //#endregion
62
108
  //#region src/vue/boundary.d.ts
63
109
  /**
64
- * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
65
- * by a descendant and renders the `denied` slot, or the `approval` slot for
66
- * an approval request (default `denied`). The slots receive the refused
67
- * permission and `retry()`. Any other error propagates.
110
+ * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown by a
111
+ * descendant and renders the `denied` slot, or the `approval` slot for an
112
+ * approval request (default `denied`). The slots receive the refused permission
113
+ * and `retry()`. Any other error propagates.
68
114
  */
69
115
  export declare const PermissionBoundary: DefineComponent;
70
- /** Inside a `PermissionBoundary`: what was refused and `retry()`, or `null` while the children render. */
116
+ /**
117
+ * Inside a `PermissionBoundary`: what was refused and `retry()`, or `null`
118
+ * while the children render.
119
+ */
71
120
  export declare function usePermissionBoundary(): PermissionBoundaryState | null;
72
121
  //#endregion
73
122
  //#region src/vue/plugin.d.ts
@@ -81,4 +130,4 @@ type ProtectedProps = {
81
130
  };
82
131
  export declare const Protected: DefineComponent<ProtectedProps>;
83
132
  //#endregion
84
- export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type RolesOptions, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans };
133
+ export { type ActionResult, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type EventSourceRefreshOptions, type FilterResult, type GateMode, type GateView, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedAction, type ProtectedActionRefs, type ProtectedActionView, type ProtectedProps, type RefreshTrigger, type RolesOptions, type SubjectView, type TenantView, approvalHeaders, describe, eventSourceRefresh, requiredPlans };
package/dist/vue/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
2
- import { t as describe } from "../describe-DZlnEtLy.js";
3
- import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
4
- import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
5
- import { i as isPromiseLike } from "../store-options-B_poyYvg.js";
6
- import { n as switchTenant, t as providerStore } from "../provider-store-IgqQipCO.js";
7
- import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-BB8E9dTP.js";
1
+ import { r as requiredPlans } from "../problem-details-CLDgX1KV.js";
2
+ import { n as describe } from "../describe-Bb4hGK5d.js";
3
+ import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BV3O1eud.js";
4
+ import { n as actionRunner, r as approvalHeaders, t as actionApproval } from "../protected-action-DUYqb-Ma.js";
5
+ import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, i as gateView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-CD8wuL4Z.js";
6
+ import { a as isPromiseLike, r as eventSourceRefresh } from "../store-options-Dil3lraY.js";
7
+ import { n as switchTenant, t as providerStore } from "../provider-store-CaTv00tr.js";
8
8
  import { computed, defineComponent, effectScope, getCurrentScope, inject, isRef, onErrorCaptured, onScopeDispose, provide, shallowRef, toValue, watch } from "vue";
9
9
  //#region src/vue/context.ts
10
10
  const permDockKey = Symbol("permdock");
@@ -44,6 +44,16 @@ function usePermission(permission, data) {
44
44
  decision: computed(() => state.value.decision)
45
45
  };
46
46
  }
47
+ function useGate(permission, data, options = {}) {
48
+ const store = useStore();
49
+ const permdock = useTick(store);
50
+ const describeDecision = useDescribe();
51
+ return computed(() => {
52
+ permdock.value;
53
+ const current = toValue(permission);
54
+ return gateView(store.permissionState(current, toValue(data)), (decision) => describeDecision(decision, { permission: current }), options.mode);
55
+ });
56
+ }
47
57
  function usePermissions(permissions, data) {
48
58
  const store = useStore();
49
59
  const permdock = useTick(store);
@@ -92,14 +102,38 @@ function useApproval(decision) {
92
102
  function useDescribe() {
93
103
  return describeWith(inject(permDockUiKey, {}).messages);
94
104
  }
105
+ function useProtectedAction(action, permission, data, options = {}) {
106
+ const store = useStore();
107
+ const permdock = useTick(store);
108
+ const gate = useGate(permission, data, options);
109
+ const state = shallowRef({
110
+ result: void 0,
111
+ pending: false
112
+ });
113
+ const runner = actionRunner(() => action, (next) => {
114
+ state.value = next;
115
+ });
116
+ const approval = computed(() => {
117
+ permdock.value;
118
+ return actionApproval(store, state.value.result);
119
+ });
120
+ return {
121
+ gate,
122
+ result: computed(() => state.value.result),
123
+ pending: computed(() => state.value.pending),
124
+ approval,
125
+ run: runner.run,
126
+ retry: runner.retry
127
+ };
128
+ }
95
129
  //#endregion
96
130
  //#region src/vue/boundary.ts
97
131
  const boundaryKey = Symbol("permdock-boundary");
98
132
  /**
99
- * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
100
- * by a descendant and renders the `denied` slot, or the `approval` slot for
101
- * an approval request (default `denied`). The slots receive the refused
102
- * permission and `retry()`. Any other error propagates.
133
+ * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown by a
134
+ * descendant and renders the `denied` slot, or the `approval` slot for an
135
+ * approval request (default `denied`). The slots receive the refused permission
136
+ * and `retry()`. Any other error propagates.
103
137
  */
104
138
  const PermissionBoundary = defineComponent({
105
139
  name: "PermissionBoundary",
@@ -127,7 +161,10 @@ const PermissionBoundary = defineComponent({
127
161
  };
128
162
  }
129
163
  });
130
- /** Inside a `PermissionBoundary`: what was refused and `retry()`, or `null` while the children render. */
164
+ /**
165
+ * Inside a `PermissionBoundary`: what was refused and `retry()`, or `null`
166
+ * while the children render.
167
+ */
131
168
  function usePermissionBoundary() {
132
169
  return inject(boundaryKey, null)?.value ?? null;
133
170
  }
@@ -209,4 +246,4 @@ const Protected = defineComponent({
209
246
  }
210
247
  });
211
248
  //#endregion
212
- export { PermissionBoundary, Protected, approvalHeaders, describe, permdockPlugin, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useRoles, useSubject, useTenant };
249
+ export { PermissionBoundary, Protected, approvalHeaders, describe, eventSourceRefresh, permdockPlugin, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useProtectedAction, useRoles, useSubject, useTenant };
@@ -1,25 +1,28 @@
1
- import { Rt as Instant } from "./policy-types-B-F-qAZk.js";
2
- import { m as ApprovalStore } from "./types-DC44-hqb.js";
1
+ import { Rt as Instant } from "./policy-types-CCiDRZBH.js";
2
+ import { m as ApprovalStore } from "./types-B_tiYvk8.js";
3
3
  //#region src/workflow/waiter.d.ts
4
4
  type ApprovalWaitOptions = {
5
- /** When the approval request expires; the wait ends then whatever the store says. */
5
+ /**
6
+ * When the approval request expires; the wait ends then whatever the store
7
+ * says.
8
+ */
6
9
  readonly expiresAt?: Instant;
7
10
  /** Aborting rejects the wait with the signal's reason. */
8
11
  readonly signal?: AbortSignal;
9
12
  };
10
13
  /**
11
- * Suspends a run until an approval request is decided. `wait` resolves once
12
- * the request is no longer pending, `wake` is called for its token, or it
13
- * expires; it never says how the request was decided, so the caller always
14
- * decides again with the token. A durable runner implements it with its own
15
- * suspension primitive.
14
+ * Suspends a run until an approval request is decided. `wait` resolves once the
15
+ * request is no longer pending, `wake` is called for its token, or it expires;
16
+ * it never says how the request was decided, so the caller always decides again
17
+ * with the token. A durable runner implements it with its own suspension
18
+ * primitive.
16
19
  */
17
20
  type ApprovalWaiter = {
18
21
  /** Names the implementation in errors and events. */
19
22
  readonly name?: string;
20
- wait(token: string, options?: ApprovalWaitOptions): Promise<void>;
23
+ wait: (token: string, options?: ApprovalWaitOptions) => Promise<void>;
21
24
  /** Called after an approver resolves the request for `token`. */
22
- wake(token: string): void | Promise<void>;
25
+ wake: (token: string) => void | Promise<void>;
23
26
  };
24
27
  type PollingApprovalWaiterOptions = {
25
28
  readonly store: ApprovalStore;
@@ -1,4 +1,4 @@
1
- import { f as nowMillis } from "./time-DkWjdL98.js";
1
+ import { f as nowMillis } from "./time-nR1JesoH.js";
2
2
  //#region src/workflow/waiter.ts
3
3
  const DEFAULT_INTERVAL = 5e3;
4
4
  /**
@@ -1,8 +1,8 @@
1
- import { i as dateAt } from "./time-DkWjdL98.js";
2
- import { a as describeError } from "./errors-DpP_U6Bf.js";
3
- import { t as defaultSrcPath } from "./files-D_JIzUrP.js";
4
- import { r as runCollect } from "./collect-BaWeMjwV.js";
5
- import { n as isConfigFile, r as loadConfig } from "./config-CoQHDrDi.js";
1
+ import { i as dateAt } from "./time-nR1JesoH.js";
2
+ import { a as describeError } from "./errors-Vpu6rKHl.js";
3
+ import { t as defaultSrcPath } from "./files-BSjrtIHw.js";
4
+ import { r as runCollect } from "./collect-B7ZFAJU3.js";
5
+ import { n as isConfigFile, r as loadConfig } from "./config-BwPBfN0t.js";
6
6
  import { watch } from "node:fs";
7
7
  import { basename, dirname, relative, resolve, sep } from "node:path";
8
8
  //#region src/cli/watch.ts
@@ -126,9 +126,9 @@ function createCollectScheduler(cwd, options, settings) {
126
126
  };
127
127
  }
128
128
  /**
129
- * `collect --watch`: one collect now, then one per change until Ctrl-C.
130
- * Under `--json` each collect is an NDJSON event on stdout; otherwise a
131
- * line on stderr.
129
+ * `collect --watch`: one collect now, then one per change until Ctrl-C. Under
130
+ * `--json` each collect is an NDJSON event on stdout; otherwise a line on
131
+ * stderr.
132
132
  */
133
133
  async function watchCollect(ctx, overrides) {
134
134
  const emit = (status, message) => {
@@ -0,0 +1 @@
1
+ export { i as watchCollect } from "./watch-Cx_WciLE.js";
@@ -1,15 +1,15 @@
1
- import { Gt as Snapshot, Ln as Decision } from "../policy-types-B-F-qAZk.js";
2
- import { f as PermissionTree, u as Permission } from "../permission-types-DhNEmoRG.js";
1
+ import { Gt as Snapshot, Ln as Decision } from "../policy-types-CCiDRZBH.js";
2
+ import { f as PermissionTree, u as Permission } from "../permission-types-CAY-GU7e.js";
3
3
  import { StandardSchemaV1 } from "@standard-schema/spec";
4
4
  //#region src/webmcp/types.d.ts
5
5
  type WebMcpClientStatus = "ready" | "pending" | "stale" | "server-only";
6
6
  type WebMcpPermDock = {
7
- can(permission: Permission, data?: unknown): boolean;
8
- decide(permission: Permission, data?: unknown): Decision;
9
- snapshot(): Snapshot | string | Promise<Snapshot | string>;
10
- tenant?(id: string): WebMcpPermDock;
11
- subscribe?(listener: () => void): () => void;
12
- status?(permission?: Permission, data?: unknown): WebMcpClientStatus;
7
+ can: (permission: Permission, data?: unknown) => boolean;
8
+ decide: (permission: Permission, data?: unknown) => Decision;
9
+ snapshot: () => Snapshot | string | Promise<Snapshot | string>;
10
+ tenant?: (id: string) => WebMcpPermDock;
11
+ subscribe?: (listener: () => void) => () => void;
12
+ status?: (permission?: Permission, data?: unknown) => WebMcpClientStatus;
13
13
  };
14
14
  type WebMcpToolContent = {
15
15
  readonly type: "text";
@@ -37,12 +37,12 @@ type WebMcpRegisteredTool = {
37
37
  readonly description?: string;
38
38
  readonly inputSchema?: Readonly<Record<string, unknown>>;
39
39
  readonly annotations?: WebMcpToolAnnotations;
40
- execute(input: unknown): Promise<WebMcpToolResult>;
40
+ execute: (input: unknown) => Promise<WebMcpToolResult>;
41
41
  };
42
42
  type ModelContext = {
43
- registerTool(tool: WebMcpRegisteredTool, options?: {
43
+ registerTool: (tool: WebMcpRegisteredTool, options?: {
44
44
  readonly signal?: AbortSignal;
45
- }): {
45
+ }) => {
46
46
  readonly unregister?: () => void;
47
47
  };
48
48
  };
@@ -1,9 +1,9 @@
1
1
  import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
- import { n as PermDockValidationError } from "../validation-error-ZfUHbKvf.js";
3
- import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-DpPtSKNZ.js";
4
- import { n as isThenable, t as ignoreRejection } from "../thenable-yD7SabqG.js";
2
+ import { n as PermDockValidationError } from "../validation-error-CYg2kJEw.js";
3
+ import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-B8tYxPIt.js";
4
+ import { n as isThenable, t as ignoreRejection } from "../thenable-BNSM1U2R.js";
5
5
  import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
6
- import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-reAhIzdl.js";
6
+ import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-Qpjs_W6M.js";
7
7
  //#region src/webmcp/register.ts
8
8
  const MISSING_CONTEXT = "permdock/webmcp: document.modelContext is absent; registerTools is a no-op.";
9
9
  const CURRENT = Symbol.for("permdock.current");
@@ -109,7 +109,10 @@ function approvalResult(decision, permission, data) {
109
109
  structuredContent: refusal.structured
110
110
  };
111
111
  }
112
- /** A collection permission names the resource type only, never an id from the input. */
112
+ /**
113
+ * A collection permission names the resource type only, never an id from the
114
+ * input.
115
+ */
113
116
  function refOf(permission, data) {
114
117
  return resourceRef(permission, permission.kind === "collection" ? void 0 : data);
115
118
  }
@@ -1,13 +1,13 @@
1
1
  import { a as sole, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { t as loadPrincipal } from "./principal-source-pHneukrx.js";
4
- import { g as secondsOf, m as rfc3339 } from "./time-DkWjdL98.js";
5
- import { d as scopeIdOf, f as scopeList, h as tenantOf, r as findScope, s as resolveScope, t as activeFor, u as scopeChain } from "./scopes-BHsc-wp-.js";
6
- import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-C5rOdTp5.js";
7
- import { r as readWireValidity, t as isActive } from "./validity-CZ7-y0Cj.js";
8
- import { o as resourceRoleCondition } from "./grantee-conditions-C6P1Tvol.js";
9
- import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-CmeBQ6Nv.js";
10
- import { i as bindConditionRefs, n as parseSnapshot } from "./snapshot-CbGmYiJx.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { t as loadPrincipal } from "./principal-source-C6N60GtM.js";
4
+ import { g as secondsOf, m as rfc3339 } from "./time-nR1JesoH.js";
5
+ import { d as scopeIdOf, f as scopeList, h as tenantOf, r as findScope, s as resolveScope, t as activeFor, u as scopeChain } from "./scopes-0Up_UA2t.js";
6
+ import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-CDB6_keF.js";
7
+ import { r as readWireValidity, t as isActive } from "./validity-Buc7w8E9.js";
8
+ import { o as resourceRoleCondition } from "./grantee-conditions-BrYPe-w0.js";
9
+ import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-5d1zVBvK.js";
10
+ import { a as bindConditionRefs, n as parseSnapshot } from "./snapshot-CXlzi69u.js";
11
11
  //#region src/core/snapshot-sign.ts
12
12
  /**
13
13
  * The claims `signSnapshot` signs for `snapshot`. `issuedAt` and `expiresAt`
@@ -24,7 +24,10 @@ function snapshotClaims(snapshot) {
24
24
  exp: secondsOf(expiresAt)
25
25
  });
26
26
  }
27
- /** Signs `snapshot` as a `vnd.permdock.snapshot+jwt` with the claims `snapshotClaims` answers. */
27
+ /**
28
+ * Signs `snapshot` as a `vnd.permdock.snapshot+jwt` with the claims
29
+ * `snapshotClaims` answers.
30
+ */
28
31
  function signSnapshot(snapshot, signer, options = {}) {
29
32
  const { iat, exp, ...payload } = snapshotClaims(snapshot);
30
33
  return signer.sign(payload, compact({
@@ -35,8 +38,8 @@ function signSnapshot(snapshot, signer, options = {}) {
35
38
  }));
36
39
  }
37
40
  /**
38
- * The `snapshot` claim of verified claims with `issuedAt` and `expiresAt`
39
- * taken from `iat` and `exp`; `undefined` when the claim is not an object.
41
+ * The `snapshot` claim of verified claims with `issuedAt` and `expiresAt` taken
42
+ * from `iat` and `exp`; `undefined` when the claim is not an object.
40
43
  */
41
44
  function snapshotClaim(claims) {
42
45
  const claim = claims["snapshot"];
@@ -79,8 +82,8 @@ function deniedFor(permission, reason) {
79
82
  const PEEK = Object.freeze({ call: "can" });
80
83
  /**
81
84
  * What `permission` on `row` decides for the principal `principalId` in the
82
- * caller's active tenant. Never throws, never consumes a limit, and grants
83
- * the caller nothing: the target is a separate instance with its own caches.
85
+ * caller's active tenant. Never throws, never consumes a limit, and grants the
86
+ * caller nothing: the target is a separate instance with its own caches.
84
87
  */
85
88
  async function decideForTarget(caller, principals, create, principalId, permission, row) {
86
89
  if (caller.principal === null) return deniedFor(permission, "anonymous");
@@ -108,9 +111,9 @@ function withinDelegation(permdock, permission, ceiling) {
108
111
  return (ceiling === void 0 || ceiling.includes(permission.key)) && !readOnlyActorRefuses(permdock.subject.actor, permission) && delegationMayCover(permission, permdock.subject.delegation, permdock.subject.actor !== void 0 && ceiling === void 0);
109
112
  }
110
113
  /**
111
- * Whether the subject's delegation, its delegated ceiling and a read-only
112
- * actor leave `permission` within reach, whatever the grants say. A hint,
113
- * never a decision.
114
+ * Whether the subject's delegation, its delegated ceiling and a read-only actor
115
+ * leave `permission` within reach, whatever the grants say. A hint, never a
116
+ * decision.
114
117
  */
115
118
  function delegationAllows(permdock, permission) {
116
119
  try {
@@ -198,7 +201,10 @@ function eq(field, value) {
198
201
  value
199
202
  };
200
203
  }
201
- /** One equality per partitioning scope key on the membership's chain, outermost first. */
204
+ /**
205
+ * One equality per partitioning scope key on the membership's chain, outermost
206
+ * first.
207
+ */
202
208
  function namedFilters(membership, scope) {
203
209
  if (findScope(scope.scopes, membership.scope ?? "") === void 0 || !inTeam(membership, scope.scopes, scope.team) || !activeFor(membership, scope.scopes, scope.tenant) || membership.scope === void 0) return null;
204
210
  const filters = [];