permdock 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-CL-QCITA.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  14. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  35. package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
  45. package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
  46. package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
  52. package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
  53. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  54. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  55. package/dist/catalog-mRQQQhNK.js +1 -0
  56. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
  77. package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
  78. package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
  79. package/dist/collect-B5BL3klN.js +1 -0
  80. package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
  81. package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
  98. package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
  99. package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
  100. package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
  101. package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
  102. package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
  103. package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  127. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  128. package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
  130. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  131. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-B5kvbAoZ.js +58 -0
  150. package/dist/gen-DWCYcMQM.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
  164. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  169. package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
  170. package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
  171. package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
  172. package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
  173. package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
  174. package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
  175. package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +33 -33
  178. package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
  179. package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +72 -26
  212. package/dist/next/index.js +110 -6
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  223. package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
  224. package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/output-files-BHOIlrfD.js +1 -0
  232. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  233. package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
  234. package/dist/ownership-B4L59T9u.js +1054 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
  245. package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
  262. package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
  263. package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
  264. package/dist/powersync-Djf-zCpB.js +1 -0
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/pull-B65ndFNZ.js +1 -0
  282. package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
  283. package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
  284. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  285. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-CF7xXLSG.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
  306. package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
  310. package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
  311. package/dist/run-D-JE8QWb.js +1 -0
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  333. package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  334. package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
  335. package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
  344. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  351. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  357. package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
  368. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
  369. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  370. package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +224 -141
  394. package/dist/testing/index.js +299 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  407. package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
  408. package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
  409. package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
  410. package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
  411. package/dist/types-B_d_g7T3.d.ts +262 -0
  412. package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
  413. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  414. package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
  415. package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
  416. package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
  417. package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  418. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  419. package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
  420. package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
  421. package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-CYeXek0p.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
  441. package/dist/watch-DB42U1ib.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  452. package/package.json +7 -7
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +14 -22
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -1,7 +1,7 @@
1
- import { $t as CredentialEvent, Ct as Credential, Qt as AutomationEvent, Xt as AccessEvent, gt as SupportSession, on as MembershipEvent, q as DecisionSink, sn as SinkEvent, ut as TokenSigner } from "./policy-types-B-F-qAZk.js";
2
- import { O as AppData } from "./permission-types-DhNEmoRG.js";
3
- import { u as OperationRisk } from "./operations-BNLes61x.js";
4
- import { t as Automation } from "./automation-DOtAFWdy.js";
1
+ import { $t as CredentialEvent, Ct as Credential, Qt as AutomationEvent, Xt as AccessEvent, gt as SupportSession, on as MembershipEvent, q as DecisionSink, sn as SinkEvent, ut as TokenSigner } from "./policy-types-CCiDRZBH.js";
2
+ import { M as AppData } from "./permission-types-CAY-GU7e.js";
3
+ import { u as OperationRisk } from "./operations-Ci_rT6Uo.js";
4
+ import { t as Automation } from "./automation-DqEoWHBc.js";
5
5
  //#region src/core/sink.d.ts
6
6
  /**
7
7
  * The closed list of CloudEvents `type` values, `com.permdock.<family>` or
@@ -40,7 +40,10 @@ declare const CLOUD_EVENT_TYPES: {
40
40
  readonly deliveryFailed: "com.permdock.delivery.failed";
41
41
  };
42
42
  type CloudEventType = (typeof CLOUD_EVENT_TYPES)[keyof typeof CLOUD_EVENT_TYPES];
43
- /** Types named for a later release; a receiver refuses them until then. None are reserved now. */
43
+ /**
44
+ * Types named for a later release; a receiver refuses them until then. None are
45
+ * reserved now.
46
+ */
44
47
  declare const RESERVED_CLOUD_EVENT_TYPES: readonly CloudEventType[];
45
48
  /** The CloudEvents JSON format media type for one event (structured mode). */
46
49
  declare const CLOUDEVENTS_CONTENT_TYPE = "application/cloudevents+json";
@@ -51,27 +54,42 @@ declare const CLOUDEVENTS_BATCH_CONTENT_TYPE = "application/cloudevents-batch+js
51
54
  * which the Cloud then suspends; the `operation-*` codes only report.
52
55
  */
53
56
  type CatalogFindingCode = "permission-removed" | "not-hostable" | "grantee-removed" | "approval-tightened" | "operation-risk-raised" | "operation-approval-removed";
54
- /** One drift finding: the permission key and, when one broke, the hosted grant id. */
57
+ /**
58
+ * One drift finding: the permission key and, when one broke, the hosted grant
59
+ * id.
60
+ */
55
61
  type CatalogFinding = {
56
62
  readonly code: CatalogFindingCode;
57
63
  readonly permission: string;
58
64
  readonly grant?: string;
59
65
  /** The operation name, on the `operation-*` codes. */
60
66
  readonly operation?: string;
61
- /** `meta.risk` before the publish, on `operation-risk-raised`; an unset risk is `low`. */
67
+ /**
68
+ * `meta.risk` before the publish, on `operation-risk-raised`; an unset risk
69
+ * is `low`.
70
+ */
62
71
  readonly previous?: OperationRisk;
63
72
  /** `meta.risk` after the publish, on `operation-risk-raised`. */
64
73
  readonly risk?: OperationRisk;
65
74
  };
66
- /** `data` of a `com.permdock.catalog.*` event: a `permdock cloud push` or a drift against live hosted grants. */
75
+ /**
76
+ * `data` of a `com.permdock.catalog.*` event: a `permdock cloud push` or a
77
+ * drift against live hosted grants.
78
+ */
67
79
  type CatalogEventData = {
68
80
  readonly kind: "publish" | "drift";
69
- /** The catalog fingerprint after the publish, or the one drift was measured against. */
81
+ /**
82
+ * The catalog fingerprint after the publish, or the one drift was measured
83
+ * against.
84
+ */
70
85
  readonly fingerprint: string;
71
86
  readonly previous?: string;
72
87
  readonly findings?: readonly CatalogFinding[];
73
88
  };
74
- /** A CloudEvents 1.0 event in the JSON format, with the distributed-tracing extension. */
89
+ /**
90
+ * A CloudEvents 1.0 event in the JSON format, with the distributed-tracing
91
+ * extension.
92
+ */
75
93
  type CloudEvent = {
76
94
  readonly specversion: "1.0";
77
95
  readonly type: CloudEventType;
@@ -82,9 +100,15 @@ type CloudEvent = {
82
100
  /** An RFC 3339 instant: the sink event's `at`. */
83
101
  readonly time: string;
84
102
  readonly datacontenttype: "application/json";
85
- /** The published JSON Schema of `data`, `https://permdock.com/schemas/<family>-event-v1.json`. */
103
+ /**
104
+ * The published JSON Schema of `data`,
105
+ * `https://permdock.com/schemas/<family>-event-v1.json`.
106
+ */
86
107
  readonly dataschema: string;
87
- /** W3C Trace Context `traceparent`, the CloudEvents distributed-tracing extension. */
108
+ /**
109
+ * W3C Trace Context `traceparent`, the CloudEvents distributed-tracing
110
+ * extension.
111
+ */
88
112
  readonly traceparent?: string;
89
113
  readonly tracestate?: string;
90
114
  readonly data: SinkEvent | CatalogEventData;
@@ -141,9 +165,9 @@ declare function automationEvent(input: {
141
165
  readonly x?: AppData;
142
166
  }): AutomationEvent;
143
167
  /**
144
- * The `access` event of a `SupportSession`: `started` when it begins,
145
- * `ended` when it lapses, `revoked` when it is ended early. `principal` is
146
- * the staff member, as for a support membership.
168
+ * The `access` event of a `SupportSession`: `started` when it begins, `ended`
169
+ * when it lapses, `revoked` when it is ended early. `principal` is the staff
170
+ * member, as for a support membership.
147
171
  */
148
172
  declare function supportSessionEvent(input: {
149
173
  readonly operation: AccessEvent["operation"];
@@ -155,8 +179,8 @@ declare function supportSessionEvent(input: {
155
179
  readonly x?: AppData;
156
180
  }): AccessEvent;
157
181
  /**
158
- * A `credential` sink event for `credential`. `sample` belongs on `used`
159
- * events only and must be in `(0, 1]`.
182
+ * A `credential` sink event for `credential`. `sample` belongs on `used` events
183
+ * only and must be in `(0, 1]`.
160
184
  */
161
185
  declare function credentialEvent(input: {
162
186
  readonly operation: CredentialEvent["operation"];
@@ -215,9 +239,9 @@ declare function accessEvent(input: {
215
239
  */
216
240
  declare function toCloudEvent(event: SinkEvent, options: CloudEventOptions): CloudEvent;
217
241
  /**
218
- * Signs sink events as an offline evidence export: a compact JWS with
219
- * `typ: vnd.permdock.evidence+jwt` whose `events` claim holds CloudEvents.
220
- * Live deliveries use Standard Webhooks instead.
242
+ * Signs sink events as an offline evidence export: a compact JWS with `typ:
243
+ * vnd.permdock.evidence+jwt` whose `events` claim holds CloudEvents. Live
244
+ * deliveries use Standard Webhooks instead.
221
245
  */
222
246
  declare function signDecisionBatch(events: readonly SinkEvent[], signer: TokenSigner, options: SignDecisionBatchOptions): Promise<string>;
223
247
  declare function memoryDecisionSink(options?: MemoryDecisionSinkOptions): MemoryDecisionSink;
@@ -1,7 +1,8 @@
1
- import { t as byCodePoint } from "./compare-pfyVnBjE.js";
2
- import { i as readJsonFile } from "./files-D_JIzUrP.js";
3
- import { t as packageRoot } from "./package-root-Dk_ETdkp.js";
4
- import { t as didYouMean } from "./args-CC3OwyHW.js";
1
+ import { t as byCodePoint } from "./compare-DTfyUunF.js";
2
+ import { i as readJsonFile } from "./files-BSjrtIHw.js";
3
+ import { l as packageRoot } from "./version-DMQ0dnN5.js";
4
+ import { t as didYouMean } from "./args-0FrVs5EH.js";
5
+ import { a as nonEmptyOr } from "./output-tkju6U7R.js";
5
6
  import { cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, writeFileSync } from "node:fs";
6
7
  import { basename, dirname, join, relative, resolve } from "node:path";
7
8
  import { pathToFileURL } from "node:url";
@@ -24,7 +25,10 @@ const AGENT_FOLDERS = {
24
25
  };
25
26
  /** The `--for` names `skills install` knows, with the folder each writes. */
26
27
  const SKILL_AGENTS = AGENT_FOLDERS;
27
- /** Agents whose config folder (`.claude`, `.cursor`, `.agents`) the project already has. */
28
+ /**
29
+ * Agents whose config folder (`.claude`, `.cursor`, `.agents`) the project
30
+ * already has.
31
+ */
28
32
  function detectedAgents(cwd) {
29
33
  return Object.entries(AGENT_FOLDERS).filter(([, folder]) => existsSync(join(cwd, dirname(folder)))).map(([agent]) => agent);
30
34
  }
@@ -80,13 +84,13 @@ function runSkillsInstall(input) {
80
84
  const links = linked.length === 0 ? "" : `; linked ${linked.join(", ")}`;
81
85
  return {
82
86
  code: 0,
83
- output: `installed ${copied.join(", ") || "no skills"}${links} (permdock@${version})`
87
+ output: `installed ${nonEmptyOr(copied.join(", "), "no skills")}${links} (permdock@${version})`
84
88
  };
85
89
  }
86
90
  /**
87
91
  * Compares the installed skills with the ones this version ships and writes
88
- * nothing: exit 1 lists every file that is missing or differs. Without
89
- * agents it checks the agent folders the project has, else every folder.
92
+ * nothing: exit 1 lists every file that is missing or differs. Without agents
93
+ * it checks the agent folders the project has, else every folder.
90
94
  */
91
95
  function runSkillsCheck(input) {
92
96
  const source = resolveSkillsRoot(input.cwd, input.bundled ?? join(packageRoot(), "skills"));
@@ -1,7 +1,7 @@
1
1
  import { t as defineLeaf } from "./command-L8EstFNm.js";
2
- import { t as checkFlag } from "./flags-aaeRAdiD.js";
3
- import { r as pick, t as CANCELLED } from "./prompt-DwtVemER.js";
4
- import { n as detectedAgents, r as runSkills, t as SKILL_AGENTS } from "./skills-Dcjw9_1C.js";
2
+ import { t as checkFlag } from "./flags-DXjoTVbS.js";
3
+ import { r as pick, t as CANCELLED } from "./prompt-BYc6drYW.js";
4
+ import { n as detectedAgents, r as runSkills, t as SKILL_AGENTS } from "./skills-Bjj7BNEQ.js";
5
5
  //#region src/cli/commands/skills.ts
6
6
  const forFlag = { for: {
7
7
  type: "string",
@@ -1,12 +1,12 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
4
- import { a as resolveConditionRef, l as isConditionRef } from "./refs-CNJBiTFo.js";
5
- import { l as isRfc3339, m as rfc3339, p as nowSeconds } from "./time-DkWjdL98.js";
6
- import { f as scopeList } from "./scopes-BHsc-wp-.js";
7
- import { _ as listPlans, v as listRoles } from "./grantee-BrRANrpT.js";
8
- import { i as wireValidity } from "./validity-CZ7-y0Cj.js";
9
- import { m as tenantsOf } from "./tenancy-CmeBQ6Nv.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { n as isForbiddenKey } from "./paths-CUvURzHp.js";
4
+ import { a as resolveConditionRef, l as isConditionRef } from "./refs-C8BKxc_e.js";
5
+ import { l as isRfc3339, m as rfc3339, p as nowSeconds } from "./time-nR1JesoH.js";
6
+ import { f as scopeList } from "./scopes-0Up_UA2t.js";
7
+ import { _ as listPlans, v as listRoles } from "./grantee-Dke-9rd1.js";
8
+ import { i as wireValidity } from "./validity-Buc7w8E9.js";
9
+ import { m as tenantsOf } from "./tenancy-5d1zVBvK.js";
10
10
  import { n as toWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
11
11
  //#region src/conditions/bind.ts
12
12
  function isPrimitive(value) {
@@ -36,10 +36,10 @@ function bindArg(arg, subject, only) {
36
36
  }
37
37
  /**
38
38
  * Replaces every `principal.*` / `context.*` ref with the subject's value, and
39
- * a `liveSession` node with a constant, so a `where()` result compiles the
40
- * same without the subject. A ref the subject
41
- * does not hold binds to `null` (or `[]` in a list), which never matches, as
42
- * in `evaluateCondition`. With `only`, refs it rejects stay refs.
39
+ * a `liveSession` node with a constant, so a `where()` result compiles the same
40
+ * without the subject. A ref the subject does not hold binds to `null` (or `[]`
41
+ * in a list), which never matches, as in `evaluateCondition`. With `only`, refs
42
+ * it rejects stay refs.
43
43
  */
44
44
  function bindConditionRefs(condition, subject, only) {
45
45
  switch (condition.op) {
@@ -141,7 +141,10 @@ const CARRIED = /* @__PURE__ */ new Set([
141
141
  "tenant",
142
142
  "memberships"
143
143
  ]);
144
- /** Principal refs the snapshot principal does not carry (`claims`, `teamIds`, …) are bound to the subject's values. */
144
+ /**
145
+ * Principal refs the snapshot principal does not carry (`claims`, `teamIds`, …)
146
+ * are bound to the subject's values.
147
+ */
145
148
  function isClaimRef(ref) {
146
149
  const [root, head] = ref.split(".", 2);
147
150
  return root === "principal" && !CARRIED.has(String(head));
@@ -229,10 +232,10 @@ function buildSnapshot(input) {
229
232
  }));
230
233
  }
231
234
  /**
232
- * The token delegation as the client sees it. An actor with no token
233
- * delegation gets an empty `scopes` list so the client ceiling agrees with
234
- * `no-delegation`, unless a policy delegation applies (`delegated`), which
235
- * then is the ceiling.
235
+ * The token delegation as the client sees it. An actor with no token delegation
236
+ * gets an empty `scopes` list so the client ceiling agrees with
237
+ * `no-delegation`, unless a policy delegation applies (`delegated`), which then
238
+ * is the ceiling.
236
239
  */
237
240
  function snapshotDelegation(subject, delegated) {
238
241
  const delegation = subject.delegation;
@@ -266,4 +269,4 @@ function parseSnapshot(json) {
266
269
  return freezeDeep(value);
267
270
  }
268
271
  //#endregion
269
- export { bindConditionRefs as i, parseSnapshot as n, snapshotGrant as r, buildSnapshot as t };
272
+ export { bindConditionRefs as a, snapshotGrant as i, parseSnapshot as n, plainPermission as r, buildSnapshot as t };
@@ -1,7 +1,10 @@
1
- import { Gt as Snapshot, Rt as Instant } from "./policy-types-B-F-qAZk.js";
1
+ import { Gt as Snapshot, Rt as Instant } from "./policy-types-CCiDRZBH.js";
2
2
  //#region src/core/snapshot-cache.d.ts
3
3
  type CacheLifeForOptions = {
4
- /** Lower bound in seconds. Next.js includes a private entry in per-link prefetches from 30. */
4
+ /**
5
+ * Lower bound in seconds. Next.js includes a private entry in per-link
6
+ * prefetches from 30.
7
+ */
5
8
  readonly min?: number;
6
9
  /** Upper bound in seconds. Next.js keeps a per-session App Shell entry from 300. */
7
10
  readonly max?: number;
@@ -9,9 +12,10 @@ type CacheLifeForOptions = {
9
12
  readonly now?: Instant;
10
13
  };
11
14
  /**
12
- * `{ stale }` in seconds: `max` when the value never expires, otherwise the seconds left, clamped
13
- * to `[min, max]`. A value with less than `min` seconds left gets its real remainder, so Next.js
14
- * leaves it out of prefetches and an HTTP cache does not serve it past `expiresAt`.
15
+ * `{ stale }` in seconds: `max` when the value never expires, otherwise the
16
+ * seconds left, clamped to `[min, max]`. A value with less than `min` seconds
17
+ * left gets its real remainder, so Next.js leaves it out of prefetches and an
18
+ * HTTP cache does not serve it past `expiresAt`.
15
19
  */
16
20
  declare function cacheLifeFor(value: {
17
21
  /** RFC 3339, or a NumericDate. */
@@ -22,13 +26,17 @@ declare function cacheLifeFor(value: {
22
26
  readonly stale: number;
23
27
  };
24
28
  /**
25
- * The `cacheTag` for one subject's cached snapshots: `permdock:<sub>`, or `permdock:anon`
26
- * without a subject. Tag the private cache with it and pass it to `updateTag` or
27
- * `revalidateTag` on every write that changes the subject's snapshot.
29
+ * The `cacheTag` for one subject's cached snapshots: `permdock:<sub>`, or
30
+ * `permdock:anon` without a subject. Tag the private cache with it and pass it
31
+ * to `updateTag` or `revalidateTag` on every write that changes the subject's
32
+ * snapshot.
28
33
  */
29
34
  declare function snapshotTag(sub?: string | null): string;
30
35
  type SnapshotHeadersOptions = CacheLifeForOptions & {
31
- /** Sent in `Cache-Tag` after `snapshotTag(sub)`, such as the app's own organisation tag. */
36
+ /**
37
+ * Sent in `Cache-Tag` after `snapshotTag(sub)`, such as the app's own
38
+ * organisation tag.
39
+ */
32
40
  readonly tags?: readonly string[];
33
41
  };
34
42
  type SnapshotHeaders = {
@@ -38,9 +46,10 @@ type SnapshotHeaders = {
38
46
  readonly "Cache-Tag": string;
39
47
  };
40
48
  /**
41
- * Response headers for a loader or route that returns `snapshot`: `Cache-Control: private` with
42
- * `max-age` from `cacheLifeFor`, `Vary: Authorization, Cookie`, an `ETag` over everything but
43
- * `issuedAt`, and `Cache-Tag` with `snapshotTag(sub)` and `tags`.
49
+ * Response headers for a loader or route that returns `snapshot`:
50
+ * `Cache-Control: private` with `max-age` from `cacheLifeFor`, `Vary:
51
+ * Authorization, Cookie`, an `ETag` over everything but `issuedAt`, and
52
+ * `Cache-Tag` with `snapshotTag(sub)` and `tags`.
44
53
  */
45
54
  declare function snapshotHeaders(snapshot: Snapshot, options?: SnapshotHeadersOptions): SnapshotHeaders;
46
55
  //#endregion
@@ -1,14 +1,15 @@
1
- import { g as secondsOf, p as nowSeconds } from "./time-DkWjdL98.js";
2
- import { n as payloadDigest } from "./token-2qYDvXz2.js";
1
+ import { g as secondsOf, p as nowSeconds } from "./time-nR1JesoH.js";
2
+ import { n as payloadDigest } from "./token-DC9EQiet.js";
3
3
  //#region src/core/snapshot-cache.ts
4
4
  /** Seconds since the epoch of a NumericDate or an RFC 3339 instant. */
5
5
  function epochSeconds(value) {
6
6
  return typeof value === "number" ? value : secondsOf(value);
7
7
  }
8
8
  /**
9
- * `{ stale }` in seconds: `max` when the value never expires, otherwise the seconds left, clamped
10
- * to `[min, max]`. A value with less than `min` seconds left gets its real remainder, so Next.js
11
- * leaves it out of prefetches and an HTTP cache does not serve it past `expiresAt`.
9
+ * `{ stale }` in seconds: `max` when the value never expires, otherwise the
10
+ * seconds left, clamped to `[min, max]`. A value with less than `min` seconds
11
+ * left gets its real remainder, so Next.js leaves it out of prefetches and an
12
+ * HTTP cache does not serve it past `expiresAt`.
12
13
  */
13
14
  function cacheLifeFor(value, options = {}) {
14
15
  const min = options.min ?? 30;
@@ -23,17 +24,19 @@ function cacheLifeFor(value, options = {}) {
23
24
  return { stale: Math.min(max, remaining) };
24
25
  }
25
26
  /**
26
- * The `cacheTag` for one subject's cached snapshots: `permdock:<sub>`, or `permdock:anon`
27
- * without a subject. Tag the private cache with it and pass it to `updateTag` or
28
- * `revalidateTag` on every write that changes the subject's snapshot.
27
+ * The `cacheTag` for one subject's cached snapshots: `permdock:<sub>`, or
28
+ * `permdock:anon` without a subject. Tag the private cache with it and pass it
29
+ * to `updateTag` or `revalidateTag` on every write that changes the subject's
30
+ * snapshot.
29
31
  */
30
32
  function snapshotTag(sub) {
31
33
  return `permdock:${sub === void 0 || sub === null || sub === "" ? "anon" : sub}`;
32
34
  }
33
35
  /**
34
- * Response headers for a loader or route that returns `snapshot`: `Cache-Control: private` with
35
- * `max-age` from `cacheLifeFor`, `Vary: Authorization, Cookie`, an `ETag` over everything but
36
- * `issuedAt`, and `Cache-Tag` with `snapshotTag(sub)` and `tags`.
36
+ * Response headers for a loader or route that returns `snapshot`:
37
+ * `Cache-Control: private` with `max-age` from `cacheLifeFor`, `Vary:
38
+ * Authorization, Cookie`, an `ETag` over everything but `issuedAt`, and
39
+ * `Cache-Tag` with `snapshotTag(sub)` and `tags`.
37
40
  */
38
41
  function snapshotHeaders(snapshot, options = {}) {
39
42
  const content = {};
@@ -1,11 +1,13 @@
1
- import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, Un as GrantedDecision, 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, Un as GrantedDecision, 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 { Accessor, Accessor as Accessor$1, JSX } from "solid-js";
10
12
  //#region src/solid/types.d.ts
11
13
  /** Structural `JSX.Element`: text, a DOM node or a list of children. */
@@ -21,7 +23,10 @@ type PermDockProviderProps = ProviderOptionsBase & {
21
23
  readonly snapshot: Snapshot | string | Accessor$1<Snapshot | string | undefined> | PromiseLike<Snapshot | string>;
22
24
  /** A change switches the active tenant (`refresh({ tenant })`). */
23
25
  readonly tenant?: string;
24
- /** Read on every request, with `verifier`, so a rotated token applies without a new store. */
26
+ /**
27
+ * Read on every request, with `verifier`, so a rotated token applies without
28
+ * a new store.
29
+ */
25
30
  readonly headers?: Readonly<Record<string, string>>;
26
31
  readonly verifier?: TokenVerifier;
27
32
  /** What every `<Protected>` below renders for a slot it leaves out. */
@@ -51,12 +56,35 @@ type ProtectedProps = {
51
56
  readonly approval?: SolidChild | ((decision: ApprovalRequiredDecision) => SolidChild);
52
57
  readonly children: SolidChild | ((decision: GrantedDecision) => SolidChild);
53
58
  };
59
+ /**
60
+ * `useProtectedAction` in Solid: the fields of `ProtectedActionView` as
61
+ * accessors.
62
+ */
63
+ type ProtectedActionAccessors<T> = {
64
+ readonly gate: Accessor$1<GateView>;
65
+ readonly result: Accessor$1<ActionResult<T> | undefined>;
66
+ readonly pending: Accessor$1<boolean>;
67
+ readonly approval: Accessor$1<ApprovalHandle | undefined>;
68
+ readonly run: (input: unknown) => Promise<ActionResult<T>>;
69
+ readonly retry: () => Promise<ActionResult<T> | undefined>;
70
+ };
54
71
  //#endregion
55
72
  //#region src/solid/hooks.d.ts
56
- export declare function usePermDock(): ClientPermDock;
57
- export declare function usePermission(permission: Permission | Accessor<Permission>, data?: Accessor<unknown>): Accessor<PermissionState>;
73
+ export declare function usePermDock<V extends PolicyVocabulary = PolicyVocabulary>(): ClientPermDock<V>;
74
+ export declare function usePermission<D>(permission: Permission | Accessor<Permission>, data?: Accessor<UncheckedData<D>>): Accessor<PermissionState>;
75
+ export declare function usePermission<P extends Permission>(permission: P | Accessor<P>, data?: Accessor<RowData<P>>): Accessor<PermissionState>;
76
+ /**
77
+ * What a permission-gated control renders, as `useGate` in React: `hidden`,
78
+ * `disabled`, `needsApproval`, `upgrade` and a localised `reason`.
79
+ */
80
+ export declare function useGate<D>(permission: Permission | Accessor<Permission>, data?: Accessor<UncheckedData<D>>, options?: {
81
+ readonly mode?: GateMode;
82
+ }): Accessor<GateView>;
83
+ export declare function useGate<P extends Permission>(permission: P | Accessor<P>, data?: Accessor<RowData<P>>, options?: {
84
+ readonly mode?: GateMode;
85
+ }): Accessor<GateView>;
58
86
  export declare function usePermissions(permissions: Accessor<readonly Permission[]>, data?: Accessor<unknown>): Accessor<PermissionSet>;
59
- export declare function useFilter<T>(permission: Permission<string, T, "instance">, rows: Accessor<readonly T[]>): Accessor<FilterResult<T>>;
87
+ export declare function useFilter<T>(permission: Permission<string, NoInfer<T>, "instance">, rows: Accessor<readonly T[]>): Accessor<FilterResult<T>>;
60
88
  export declare function useTenant(): Accessor<TenantView>;
61
89
  export declare function useMemberships(): Accessor<readonly Membership[]>;
62
90
  export declare function useRoles(options?: Accessor<RolesOptions>): Accessor<{
@@ -72,13 +100,24 @@ export declare function useSubject(): Accessor<SubjectView>;
72
100
  export declare function useApproval(decision: Accessor<Decision>): Accessor<ApprovalHandle>;
73
101
  /** `describe` with the provider's `messages`; a call's own `messages` win. */
74
102
  export declare function useDescribe(): (decision: Decision, options?: DescribeOptions) => DecisionDescription;
103
+ /**
104
+ * A `protectAction` server action wired to a control, as `useProtectedAction`
105
+ * in React: accessors for `gate`, `result`, `pending` and `approval`, plus
106
+ * `run` and `retry`.
107
+ */
108
+ export declare function useProtectedAction<T, D>(action: ProtectedAction<T>, permission: Permission | Accessor<Permission>, data?: Accessor<UncheckedData<D>>, options?: {
109
+ readonly mode?: GateMode;
110
+ }): ProtectedActionAccessors<T>;
111
+ export declare function useProtectedAction<T, P extends Permission>(action: ProtectedAction<T>, permission: P | Accessor<P>, data?: Accessor<RowData<P>>, options?: {
112
+ readonly mode?: GateMode;
113
+ }): ProtectedActionAccessors<T>;
75
114
  //#endregion
76
115
  //#region src/solid/boundary.d.ts
77
116
  /**
78
117
  * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
79
- * below it and renders `denied`, or `approval` for an approval request
80
- * (default `denied`), with the refused permission and `retry()`. Any other
81
- * error goes to the next `ErrorBoundary` up.
118
+ * below it and renders `denied`, or `approval` for an approval request (default
119
+ * `denied`), with the refused permission and `retry()`. Any other error goes to
120
+ * the next `ErrorBoundary` up.
82
121
  */
83
122
  export declare function PermissionBoundary(props: PermissionBoundaryProps): JSX.Element;
84
123
  /** Inside a `PermissionBoundary` fallback: what was refused and `retry()`. */
@@ -90,4 +129,4 @@ export declare function Protected(props: ProtectedProps): JSX.Element;
90
129
  //#region src/solid/provider.d.ts
91
130
  export declare function PermDockProvider(props: PermDockProviderProps): JSX.Element;
92
131
  //#endregion
93
- export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockDefaults, type PermDockProviderProps, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type RolesOptions, type SolidChild, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans };
132
+ export { type ActionResult, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type EventSourceRefreshOptions, type FilterResult, type GateMode, type GateView, type PermDockDefaults, type PermDockProviderProps, type PermissionBoundaryProps, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedAction, type ProtectedActionAccessors, type ProtectedActionView, type ProtectedProps, type RefreshTrigger, type RolesOptions, type SolidChild, type SubjectView, type TenantView, approvalHeaders, describe, eventSourceRefresh, requiredPlans };
@@ -1,11 +1,11 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
3
- import { t as describe } from "../describe-DZlnEtLy.js";
4
- import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
5
- import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
6
- import { i as isPromiseLike } from "../store-options-B_poyYvg.js";
7
- import { n as switchTenant, t as providerStore } from "../provider-store-IgqQipCO.js";
8
- 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";
2
+ import { r as requiredPlans } from "../problem-details-CLDgX1KV.js";
3
+ import { n as describe } from "../describe-Bb4hGK5d.js";
4
+ import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BV3O1eud.js";
5
+ import { n as actionRunner, r as approvalHeaders, t as actionApproval } from "../protected-action-DUYqb-Ma.js";
6
+ 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";
7
+ import { a as isPromiseLike, r as eventSourceRefresh } from "../store-options-Dil3lraY.js";
8
+ import { n as switchTenant, t as providerStore } from "../provider-store-CaTv00tr.js";
9
9
  import { ErrorBoundary, createComponent, createComputed, createContext, createMemo, createSignal, getOwner, on, onCleanup, useContext } from "solid-js";
10
10
  //#region src/solid/context.ts
11
11
  const PermDockContext = createContext(void 0);
@@ -42,6 +42,16 @@ function usePermission(permission, data) {
42
42
  return store.permissionState(current, data?.());
43
43
  });
44
44
  }
45
+ function useGate(permission, data, options = {}) {
46
+ const store = useStore();
47
+ const version = useVersion(store);
48
+ const describeDecision = useDescribe();
49
+ return createMemo(() => {
50
+ version();
51
+ const current = typeof permission === "function" ? permission() : permission;
52
+ return gateView(store.permissionState(current, data?.()), (decision) => describeDecision(decision, { permission: current }), options.mode);
53
+ });
54
+ }
45
55
  function usePermissions(permissions, data) {
46
56
  const store = useStore();
47
57
  const version = useVersion(store);
@@ -91,14 +101,37 @@ function useDescribe() {
91
101
  const ui = useContext(PermDockUiContext);
92
102
  return (decision, options) => describeWith(ui.messages)(decision, options);
93
103
  }
104
+ function useProtectedAction(action, permission, data, options = {}) {
105
+ const store = useStore();
106
+ const version = useVersion(store);
107
+ const gate = useGate(permission, data, options);
108
+ const [state, setState] = createSignal({
109
+ result: void 0,
110
+ pending: false
111
+ });
112
+ const runner = actionRunner(() => action, (next) => {
113
+ setState(next);
114
+ });
115
+ return {
116
+ gate,
117
+ result: () => state().result,
118
+ pending: () => state().pending,
119
+ approval: createMemo(() => {
120
+ version();
121
+ return actionApproval(store, state().result);
122
+ }),
123
+ run: runner.run,
124
+ retry: runner.retry
125
+ };
126
+ }
94
127
  //#endregion
95
128
  //#region src/solid/boundary.ts
96
129
  const BoundaryContext = createContext(null);
97
130
  /**
98
131
  * Catches `PermDockDeniedError` and `PermDockApprovalRequiredError` thrown
99
- * below it and renders `denied`, or `approval` for an approval request
100
- * (default `denied`), with the refused permission and `retry()`. Any other
101
- * error goes to the next `ErrorBoundary` up.
132
+ * below it and renders `denied`, or `approval` for an approval request (default
133
+ * `denied`), with the refused permission and `retry()`. Any other error goes to
134
+ * the next `ErrorBoundary` up.
102
135
  */
103
136
  function PermissionBoundary(props) {
104
137
  return createComponent(ErrorBoundary, {
@@ -164,7 +197,8 @@ function PermDockProvider(props) {
164
197
  maxAge: props.maxAge,
165
198
  onSnapshot: props.onSnapshot,
166
199
  onClear: props.onClear,
167
- approvalInterval: props.approvalInterval
200
+ approvalInterval: props.approvalInterval,
201
+ refreshOn: props.refreshOn
168
202
  }), () => ({
169
203
  headers: props.headers,
170
204
  fetch: props.fetch,
@@ -215,4 +249,4 @@ function uiProvider(ui, props) {
215
249
  });
216
250
  }
217
251
  //#endregion
218
- export { PermDockProvider, PermissionBoundary, Protected, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useRoles, useSubject, useTenant };
252
+ export { PermDockProvider, PermissionBoundary, Protected, approvalHeaders, describe, eventSourceRefresh, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useProtectedAction, useRoles, useSubject, useTenant };
@@ -1,9 +1,9 @@
1
- import { Gt as Snapshot, T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { a as OperationInput, t as Operation } from "../operations-BNLes61x.js";
4
- import { a as PermDock } from "../permdock-Dco6dyCK.js";
5
- import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
6
- import { a as ProtectTarget, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-CuhyYwC1.js";
1
+ import { Gt as Snapshot, T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as OperationInput, t as Operation } from "../operations-Ci_rT6Uo.js";
4
+ import { a as PermDock } from "../permdock-B6Sf4T_S.js";
5
+ import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CIlpSA2G.js";
6
+ import { a as ProtectTarget, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-C1DCvpqV.js";
7
7
  import { APIEvent, FetchEvent } from "@solidjs/start/server";
8
8
  //#region src/solid-start/create.d.ts
9
9
  /** The h3 event under every SolidStart request; `subject` and `scope` read it. */
@@ -16,7 +16,10 @@ type SolidStartPermDockLocals<TData = unknown, V extends PolicyVocabulary = Poli
16
16
  readonly permdock: PermDock<V>;
17
17
  readonly permdockData: TData;
18
18
  };
19
- /** The event a wrapped API route receives: its own `APIEvent` with typed `locals`. */
19
+ /**
20
+ * The event a wrapped API route receives: its own `APIEvent` with typed
21
+ * `locals`.
22
+ */
20
23
  type SolidStartPermDockEvent<TEvent extends FetchEvent = APIEvent, TData = unknown, V extends PolicyVocabulary = PolicyVocabulary> = TEvent & {
21
24
  readonly locals: SolidStartPermDockLocals<TData, V>;
22
25
  };
@@ -32,18 +35,33 @@ type SolidStartPermDockHandlers = {
32
35
  readonly POST: (event: FetchEvent) => Promise<Response>;
33
36
  };
34
37
  type SolidStartPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
35
- /** Sets `event.context.permdock` on the h3 event; a bad Web Bot Auth signature is a `401`. */
38
+ /**
39
+ * Sets `event.context.permdock` on the h3 event; a bad Web Bot Auth
40
+ * signature is a `401`.
41
+ */
36
42
  readonly middleware: () => SolidStartMiddleware;
37
- /** `export const DELETE = protect(permissions.post.delete, loadPost)(handler)`. */
43
+ /**
44
+ * `export const DELETE = protect(permissions.post.delete,
45
+ * loadPost)(handler)`.
46
+ */
38
47
  readonly protect: SolidStartProtect<V>;
39
- /** Types `event.locals.permdock` for an API route and answers a thrown PermDock error with Problem Details. */
48
+ /**
49
+ * Types `event.locals.permdock` for an API route and answers a thrown
50
+ * PermDock error with Problem Details.
51
+ */
40
52
  readonly withPermDock: SolidStartGuarded<unknown, V>;
41
- /** The instance for an API route, or a server function through `getRequestEvent()`. */
53
+ /**
54
+ * The instance for an API route, or a server function through
55
+ * `getRequestEvent()`.
56
+ */
42
57
  readonly getPermDock: (event: FetchEvent) => Promise<PermDock<V>>;
43
58
  /** The snapshot a route `query` returns for `permdock/solid`. */
44
59
  readonly getSnapshot: (event: FetchEvent, query?: SnapshotQuery) => Promise<Snapshot>;
45
60
  readonly connection: (event: FetchEvent, connectionOptions?: ConnectionOptions) => Promise<Connection>;
46
- /** `export const { GET, POST } = permdockHandler()` in `src/routes/api/permdock.ts`. */
61
+ /**
62
+ * `export const { GET, POST } = permdockHandler()` in
63
+ * `src/routes/api/permdock.ts`.
64
+ */
47
65
  readonly permdockHandler: () => SolidStartPermDockHandlers;
48
66
  readonly openapi: OpenApiHooks;
49
67
  };
@@ -1,6 +1,6 @@
1
- import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-DReoiVBw.js";
2
- import { i as decorate } from "../bind-D1nO6fiC.js";
3
- import { n as guardedRoute, t as fetchAdapter } from "../fetch-adapter-De-u6vhJ.js";
1
+ import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-IBceAeKT.js";
2
+ import { i as decorate } from "../bind-D_sZSVA3.js";
3
+ import { n as guardedRoute, t as fetchAdapter } from "../fetch-adapter-JL43jD3E.js";
4
4
  //#region src/solid-start/create.ts
5
5
  /**
6
6
  * `event.locals`. Its type, `App.RequestEventLocals`, is declared by