permdock 0.7.0 → 0.9.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-BcudBQOF.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-Ch07MdxN.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-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  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-BpS7LnV0.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.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-DTjR8xet.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-C6Jg75xq.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-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
  35. package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
  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-BWXqwQYU.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
  45. package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
  46. package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
  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-CGlSwU6j.js} +20 -19
  52. package/dist/catalog-D3oS2GH3.js +1 -0
  53. package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
  54. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  55. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  56. package/dist/catalog-operations-DeHTrJSV.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-3kWfjnYy.js} +4 -5
  77. package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
  78. package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
  79. package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
  80. package/dist/collect-D-eroIfV.js +1 -0
  81. package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
  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-BEklRUYo.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.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-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
  98. package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
  99. package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
  100. package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
  101. package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
  102. package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
  103. package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
  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-DHldhVUv.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.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-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
  127. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  128. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
  130. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
  131. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  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-BIbBAtPZ.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.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-BFfzZSLH.js +58 -0
  150. package/dist/gen-BtfFWGbz.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-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  164. package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -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-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
  169. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  170. package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
  171. package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
  172. package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
  173. package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
  174. package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
  175. package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +34 -34
  178. package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
  179. package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
  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-qv4cr9w8.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-CfImTJGb.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.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-C-nv08_n.js} +16 -9
  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 +79 -26
  212. package/dist/next/index.js +121 -10
  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-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
  223. package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
  224. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  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-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
  232. package/dist/output-files-BHOIlrfD.js +1 -0
  233. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  234. package/dist/ownership-DA5YdYTm.js +1059 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-CCmbhnxP.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-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
  245. package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
  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-CYcHj_w7.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-BycVKnXv.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-CU3An8uP.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-DGIO_gxq.d.ts} +782 -357
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
  262. package/dist/powersync-B701tvhE.js +1 -0
  263. package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
  264. package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
  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-D8x73IGm.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-DfLeek9O.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
  282. package/dist/pull-C3EEGzSw.js +1 -0
  283. package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
  284. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
  285. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
  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-Bs9Df2fQ.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.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-ConCSj1y.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-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
  306. package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
  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-vHIwyXCp.js} +8 -5
  310. package/dist/run-Ck22anC2.js +1 -0
  311. package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.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-DK4V-3Is.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.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-CyRN0-Cd.d.ts} +88 -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-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
  333. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  334. package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
  335. package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.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-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  344. package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
  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-C_pi2Rnh.js} +292 -101
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  351. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
  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-DZJvxFIZ.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
  357. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  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-DnMMg5Fn.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
  368. package/dist/supabase-hook-C0FyEACZ.js +1 -0
  369. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
  370. package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
  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-BqrxBCir.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 +225 -141
  394. package/dist/testing/index.js +352 -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-c7Xo_2Cu.d.ts +50 -0
  407. package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
  408. package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
  409. package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
  410. package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
  411. package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
  412. package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
  413. package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
  414. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  415. package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
  416. package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
  417. package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
  418. package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
  419. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  420. package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
  421. package/dist/types-tQB2CEnY.d.ts +262 -0
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-0hjZPIRX.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.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-uvp-kyfO.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-DlUcTDBz.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-CqUKX6CY.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
  441. package/dist/watch-ClLuO2TL.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-BoDJm0Nc.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-DxXB54Wu.d.ts} +8 -5
  452. package/package.json +8 -8
  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 +16 -23
  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,8 @@
1
- import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, Un as GrantedDecision, dt as TokenVerifier } from "./policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "./permission-types-DhNEmoRG.js";
3
- import { n as DescribeMessages } from "./describe-O0SwYIK8.js";
4
- import { h as ClientStoreOptions } from "./types-CKV71kKh.js";
1
+ import { Hn as ApprovalRequiredDecision, Un as Decision, Yn as GrantedDecision, Zt as Snapshot, ht as TokenVerifier } from "./policy-types-DGIO_gxq.js";
2
+ import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { s as RowData } from "./permdock-CprAPN3w.js";
4
+ import { n as DescribeMessages } from "./describe-BbFPBSms.js";
5
+ import { _ as ClientStoreOptions } from "./types-tQB2CEnY.js";
5
6
  import { ReactNode } from "react";
6
7
  //#region src/react/types.d.ts
7
8
  type PermDockProviderProps = ({
@@ -9,21 +10,24 @@ type PermDockProviderProps = ({
9
10
  readonly snapshotPromise?: never;
10
11
  } | {
11
12
  /**
12
- * An unawaited snapshot from a Server Component. Hooks never suspend on it: until it
13
- * resolves they deny with `status: 'pending'`, then re-render. A rejection fails closed
14
- * (`server-only`). Set `suspend` to suspend readers through `use()` instead.
13
+ * An unawaited snapshot from a Server Component. Hooks never suspend on
14
+ * it: until it resolves they deny with `status: 'pending'`, then
15
+ * re-render. A rejection fails closed (`server-only`). Set `suspend` to
16
+ * suspend readers through `use()` instead.
15
17
  */
16
18
  readonly snapshotPromise: PromiseLike<Snapshot | string>;
17
19
  readonly snapshot?: never;
18
20
  }) & {
19
21
  /**
20
- * With `snapshotPromise`: `true` suspends every hook to the nearest Suspense boundary until it
21
- * resolves, and a rejection reaches the nearest error boundary. Defaults to `false`.
22
+ * With `snapshotPromise`: `true` suspends every hook to the nearest Suspense
23
+ * boundary until it resolves, and a rejection reaches the nearest error
24
+ * boundary. Defaults to `false`.
22
25
  */
23
26
  readonly suspend?: boolean;
24
27
  /**
25
- * The AuthZEN evaluations endpoint for checks the snapshot cannot answer. `false` never
26
- * fetches: those checks answer `denied` with reason `server-only`.
28
+ * The AuthZEN evaluations endpoint for checks the snapshot cannot answer.
29
+ * `false` never fetches: those checks answer `denied` with reason
30
+ * `server-only`.
27
31
  */
28
32
  readonly endpoint?: string | false;
29
33
  /** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
@@ -44,6 +48,11 @@ type PermDockProviderProps = ({
44
48
  readonly onClear?: () => void;
45
49
  /** Milliseconds between approval status polls. Defaults to 2000. */
46
50
  readonly approvalInterval?: number;
51
+ /**
52
+ * Triggers that refresh the snapshot, such as `eventSourceRefresh(url)`; read
53
+ * when the store is built.
54
+ */
55
+ readonly refreshOn?: ClientStoreOptions["refreshOn"];
47
56
  readonly children: ReactNode;
48
57
  };
49
58
  /** Provider-wide content for the `<Protected>` slots a component leaves out. */
@@ -52,9 +61,10 @@ type PermDockDefaults = {
52
61
  readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
53
62
  readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
54
63
  };
55
- type ProtectedProps = {
56
- readonly permission: Permission;
57
- readonly data?: unknown;
64
+ type ProtectedProps<P extends Permission = Permission> = {
65
+ readonly permission: P;
66
+ /** Any part of the permission's row; see `RowData`. */
67
+ readonly data?: RowData<P>;
58
68
  readonly tenant?: string;
59
69
  readonly pending?: ReactNode;
60
70
  readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
@@ -0,0 +1,262 @@
1
+ import { Un as Decision, Zt as Snapshot, ht as TokenVerifier, j as PolicyVocabulary, lr as Delegation, pr as Principal, rr as Actor } from "./policy-types-DGIO_gxq.js";
2
+ import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { a as PermDock } from "./permdock-CprAPN3w.js";
4
+ import { n as DescribeMessages, t as DecisionDescription } from "./describe-BbFPBSms.js";
5
+ import { t as ActionResult } from "./action-result-BcudBQOF.js";
6
+ //#region src/client/refresh-on.d.ts
7
+ /**
8
+ * Calls `refresh` when the snapshot may be out of date (a membership event, a
9
+ * window focus, a realtime message) and returns the unsubscribe. A refresh
10
+ * re-fetches the signed snapshot; it never grants by itself.
11
+ */
12
+ type RefreshTrigger = (refresh: () => void) => () => void;
13
+ type EventSourceRefreshOptions = {
14
+ /**
15
+ * CloudEvent `type` values that refresh; a trailing `*` matches a prefix.
16
+ * Defaults to `com.permdock.membership.*` and `com.permdock.catalog.*`.
17
+ */
18
+ readonly types?: readonly string[];
19
+ readonly withCredentials?: boolean;
20
+ };
21
+ /**
22
+ * A `refreshOn` trigger over Server-Sent Events: each `message` whose data is a
23
+ * structured CloudEvent with a matching `type` refreshes the snapshot. Without
24
+ * a global `EventSource` it never fires.
25
+ */
26
+ declare function eventSourceRefresh(url: string, options?: EventSourceRefreshOptions): RefreshTrigger;
27
+ //#endregion
28
+ //#region src/client/request.d.ts
29
+ type StoreHeaders = Readonly<Record<string, string>>;
30
+ //#endregion
31
+ //#region src/client/store.d.ts
32
+ type ClientStoreOptions = {
33
+ readonly snapshot: Snapshot | string;
34
+ readonly endpoint?: string;
35
+ readonly snapshotUrl?: string;
36
+ readonly approvals?: string;
37
+ readonly tenant?: string;
38
+ readonly fetch?: typeof fetch;
39
+ /**
40
+ * Request headers, or a getter read on every request so a rotated token needs
41
+ * no new store.
42
+ */
43
+ readonly headers?: StoreHeaders | (() => StoreHeaders | undefined);
44
+ readonly maxAge?: number;
45
+ readonly verifier?: TokenVerifier;
46
+ /**
47
+ * `raw` is the compact JWS the snapshot was verified from, so a signed
48
+ * snapshot can be persisted signed.
49
+ */
50
+ readonly onSnapshot?: (snapshot: Snapshot, tenant: string | undefined, raw: string | undefined) => void;
51
+ readonly onClear?: () => void;
52
+ /**
53
+ * Called once per key the snapshot cannot answer when there is no `endpoint`
54
+ * to ask.
55
+ */
56
+ readonly onServerOnly?: (permission: Permission) => void;
57
+ /**
58
+ * `true` while rendering on the server: endpoint checks answer `pending`
59
+ * without a request. Defaults to `typeof window === 'undefined'`.
60
+ */
61
+ readonly server?: boolean;
62
+ /** Milliseconds between approval status polls. Defaults to 2000. */
63
+ readonly approvalInterval?: number;
64
+ /** Start `pending`: the snapshot arrives later through `track()`. */
65
+ readonly awaiting?: boolean;
66
+ /**
67
+ * The first snapshot that hydrates with a principal is a persisted copy:
68
+ * `stale` until a refresh or a `replace()` lands.
69
+ */
70
+ readonly stale?: boolean;
71
+ /**
72
+ * Reuse decisions for the same row object until the next microtask. Only for
73
+ * renderers that do not track the fields a check reads (React): Vue, Svelte
74
+ * and Solid would stop re-running when a reactive row changes in place.
75
+ */
76
+ readonly passCache?: boolean;
77
+ /**
78
+ * Triggers that refresh the snapshot, started while something subscribes and
79
+ * never during a server render. Calls within 250 ms fold into one refresh.
80
+ */
81
+ readonly refreshOn?: readonly RefreshTrigger[];
82
+ };
83
+ type ClientStore = {
84
+ get: () => ClientPermDock;
85
+ subscribe: (listener: () => void) => () => void;
86
+ permissionState: (permission: Permission, data?: unknown) => PermissionState;
87
+ requestApproval: (decision: Decision, note?: string) => Promise<void>;
88
+ /** Hydrate from a pushed snapshot; a compact JWS goes through the verifier. */
89
+ replace: (value: unknown) => void;
90
+ /**
91
+ * Stay `pending` until `value` settles, then hydrate; a rejection fails
92
+ * closed.
93
+ */
94
+ follow: (value: PromiseLike<Snapshot | string>) => void;
95
+ /**
96
+ * `follow()` once per `value`, without suspending. A thenable React already
97
+ * settled (`status: 'fulfilled'`) hydrates at once.
98
+ */
99
+ track: (value: PromiseLike<Snapshot | string>) => void;
100
+ /**
101
+ * The approval state for a decision. While something subscribes, an
102
+ * `approval-required` decision is polled at `<approvals>/<token>`.
103
+ */
104
+ approvalState: (decision: Decision) => ApprovalState;
105
+ /**
106
+ * Hydrate from a resolved `snapshotPromise` during render. Idempotent per
107
+ * `source`; subscribers are notified in a microtask, never synchronously
108
+ * inside render.
109
+ */
110
+ adopt: (value: Snapshot | string, source: object) => void;
111
+ snapshot: () => Snapshot;
112
+ /** The tenant the store currently answers for. */
113
+ tenant: () => string | undefined;
114
+ /**
115
+ * Stops polls, drops in-flight results and persistence; the store keeps
116
+ * answering from its last snapshot.
117
+ */
118
+ dispose: () => void;
119
+ };
120
+ //#endregion
121
+ //#region src/client/protected-action.d.ts
122
+ type ProtectedActionState<T> = {
123
+ /** The last call's answer; `undefined` before the first call. */
124
+ readonly result: ActionResult<T> | undefined;
125
+ /** A call is in flight. */
126
+ readonly pending: boolean;
127
+ };
128
+ //#endregion
129
+ //#region src/client/types.d.ts
130
+ type ClientStatus = "ready" | "pending" | "stale" | "server-only";
131
+ type PermissionState = {
132
+ readonly allowed: boolean;
133
+ readonly status: ClientStatus;
134
+ readonly decision: Decision;
135
+ };
136
+ type PermissionSet = {
137
+ readonly granted: readonly Permission[];
138
+ get: (permission: Permission) => PermissionState | undefined;
139
+ };
140
+ type ClientPermDock<V extends PolicyVocabulary = PolicyVocabulary> = PermDock<V> & {
141
+ status: (permission?: Permission, data?: unknown) => ClientStatus;
142
+ invalidate: (ref: Permission | {
143
+ readonly [key: string]: unknown;
144
+ }) => void;
145
+ refresh: (options?: {
146
+ readonly tenant?: string;
147
+ }) => Promise<void>;
148
+ clear: () => void;
149
+ subscribe: (listener: () => void) => () => void;
150
+ };
151
+ type ApprovalState = "not-needed" | "required" | "pending" | "approved" | "rejected" | "expired";
152
+ type ApprovalHandle = {
153
+ readonly state: ApprovalState;
154
+ readonly token: string | undefined;
155
+ readonly request: (note?: string) => Promise<void>;
156
+ };
157
+ /**
158
+ * A protected server action wired to a control: the gate for its button, the
159
+ * last answer, and the approval its `approval-required` problem carries. The
160
+ * client decides nothing; the action answers.
161
+ */
162
+ type ProtectedActionView<T> = ProtectedActionState<T> & {
163
+ readonly gate: GateView;
164
+ /** On an `approval-required` problem, the handle for its token. */
165
+ readonly approval: ApprovalHandle | undefined;
166
+ };
167
+ type ProtectedActionHandle<T> = ProtectedActionView<T> & {
168
+ readonly run: (input: unknown) => Promise<ActionResult<T>>;
169
+ /** Resends the last input with the approval token; `undefined` without one. */
170
+ readonly retry: () => Promise<ActionResult<T> | undefined>;
171
+ };
172
+ type SubjectView = {
173
+ readonly principal: Principal | null;
174
+ readonly actor: Actor | undefined;
175
+ readonly delegation: Delegation | undefined;
176
+ readonly expiresAt: number | undefined;
177
+ readonly simulated: boolean;
178
+ };
179
+ type TenantView = {
180
+ readonly tenant: string | null;
181
+ readonly tenants: readonly string[];
182
+ readonly switchTo: (id: string) => Promise<void>;
183
+ readonly status: ClientStatus;
184
+ };
185
+ type FilterResult<T> = readonly T[] & {
186
+ readonly partial: boolean;
187
+ };
188
+ /**
189
+ * Which held roles `useRoles` lists: those of a tenant (the active one by
190
+ * default), or only those on the memberships of one `scope`, and of one
191
+ * instance `id` of it.
192
+ */
193
+ type RolesOptions = {
194
+ readonly tenant?: string;
195
+ readonly scope?: string;
196
+ readonly id?: string;
197
+ };
198
+ /**
199
+ * The provider options Vue, Svelte and Solid share; each adds its own reactive
200
+ * `snapshot`, `tenant`, `headers`, `verifier` and `defaults`.
201
+ */
202
+ type ProviderOptionsBase = {
203
+ /**
204
+ * The AuthZEN evaluations endpoint for checks the snapshot cannot answer.
205
+ * `false` never calls one: such a check is denied with reason `server-only`.
206
+ */
207
+ readonly endpoint?: string | false;
208
+ /** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
209
+ readonly snapshotUrl?: string;
210
+ readonly approvals?: string;
211
+ /** Read on every request, so a new `fetch` applies without a new store. */
212
+ readonly fetch?: typeof fetch;
213
+ readonly maxAge?: number;
214
+ /** Localised text for the describe helper. */
215
+ readonly messages?: DescribeMessages;
216
+ /** Called with each snapshot the store accepts. */
217
+ readonly onSnapshot?: NonNullable<ClientStoreOptions["onSnapshot"]>;
218
+ /** Called when the store drops its snapshot. */
219
+ readonly onClear?: () => void;
220
+ /** Milliseconds between approval status polls. Defaults to 2000. */
221
+ readonly approvalInterval?: number;
222
+ /**
223
+ * Triggers that refresh the snapshot, such as `eventSourceRefresh(url)`; read
224
+ * once.
225
+ */
226
+ readonly refreshOn?: readonly RefreshTrigger[];
227
+ };
228
+ /**
229
+ * How a control shows a permission it cannot use: hidden, or disabled with a
230
+ * reason.
231
+ */
232
+ type GateMode = "hide" | "disable";
233
+ /**
234
+ * Everything a permission-gated control renders from, in one value: a button, a
235
+ * menu item or a link reads these fields and decides nothing itself. The client
236
+ * is a hint; the server checks again.
237
+ */
238
+ type GateView = {
239
+ /** The decision granted the action. */
240
+ readonly allowed: boolean;
241
+ /** The snapshot is loading; render the control disabled, not hidden. */
242
+ readonly pending: boolean;
243
+ /** `mode: "hide"` and the action is not available: render nothing. */
244
+ readonly hidden: boolean;
245
+ /**
246
+ * The control cannot run the action now (denied, pending or awaiting
247
+ * approval).
248
+ */
249
+ readonly disabled: boolean;
250
+ /** The decision needs a person's approval first; offer to request it. */
251
+ readonly needsApproval: boolean;
252
+ /**
253
+ * The plans that would grant the action, for an upgrade prompt; empty
254
+ * otherwise.
255
+ */
256
+ readonly upgrade: readonly string[];
257
+ /** Title and detail for a tooltip or an accessible description. */
258
+ readonly reason: DecisionDescription;
259
+ readonly decision: Decision;
260
+ };
261
+ //#endregion
262
+ export { ClientStoreOptions as _, FilterResult as a, eventSourceRefresh as b, PermissionSet as c, ProtectedActionView as d, ProviderOptionsBase as f, ClientStore as g, TenantView as h, ClientStatus as i, PermissionState as l, SubjectView as m, ApprovalState as n, GateMode as o, RolesOptions as p, ClientPermDock as r, GateView as s, ApprovalHandle as t, ProtectedActionHandle as u, EventSourceRefreshOptions as v, RefreshTrigger as y };
@@ -1,4 +1,4 @@
1
- import { a as PermDockPluginOptions } from "../types-BWZybqs9.js";
1
+ import { s as PermDockPluginOptions } from "../types-CzOeVvcC.js";
2
2
  import { createUnplugin } from "unplugin";
3
3
  //#region src/unplugin/index.d.ts
4
4
  type CreateUnplugin = typeof createUnplugin<PermDockPluginOptions | undefined>;
@@ -1,5 +1,5 @@
1
- import { n as createCollectScheduler, r as report } from "../watch-C-4VmFlL.js";
2
- import { r as peerHint } from "../peer-12Q5I_RH.js";
1
+ import { n as createCollectScheduler, r as report } from "../watch-BFDKqmUa.js";
2
+ import { r as peerHint } from "../peer-Q0fuZ6hx.js";
3
3
  import { createRequire } from "node:module";
4
4
  //#region src/unplugin/index.ts
5
5
  function loadCreateUnplugin() {
@@ -0,0 +1 @@
1
+ export { t as runUsage } from "./usage-B9EtHWLa.js";
@@ -1,13 +1,13 @@
1
- import { a as getResource } from "./permission-registry-DpPtSKNZ.js";
2
- import { u as usageResult } from "./errors-DpP_U6Bf.js";
3
- import { a as rel, r as listSourceFiles } from "./files-D_JIzUrP.js";
4
- import { o as USAGE_REPORT_SCHEMA } from "./version-CEbQ5UeM.js";
5
- import { c as jsonSchemaOf } from "./catalog-doc-CV9s6B1S.js";
6
- import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DxroEzH1.js";
7
- import { r as runCollect } from "./collect-BaWeMjwV.js";
1
+ import { a as getResource } from "./permission-registry-B8tYxPIt.js";
2
+ import { u as usageResult } from "./errors-Vpu6rKHl.js";
3
+ import { a as rel, r as listSourceFiles } from "./files-BSjrtIHw.js";
4
+ import { o as USAGE_REPORT_SCHEMA } from "./version-DMQ0dnN5.js";
5
+ import { c as jsonSchemaOf } from "./catalog-doc-DjMKzJp9.js";
6
+ import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DjSU5KXO.js";
7
+ import { r as runCollect } from "./collect-WCl8cJQV.js";
8
8
  import { t as beforeFirst } from "./text-BMFRfBqc.js";
9
- import { t as DOCS_BASE } from "./manifest-Dv6q4i5s.js";
10
- import { r as findingOf } from "./output-DgSDLrta.js";
9
+ import { t as DOCS_BASE } from "./manifest-B2QPh19C.js";
10
+ import { r as findingOf } from "./output-DV5dwOTs.js";
11
11
  import { existsSync, readFileSync, realpathSync } from "node:fs";
12
12
  import { dirname, resolve } from "node:path";
13
13
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -15,7 +15,10 @@ import { createJiti } from "jiti";
15
15
  import { Visitor, parseSync } from "oxc-parser";
16
16
  import { isBuiltin } from "node:module";
17
17
  //#region src/cli/doctor/source.ts
18
- /** Entries a client file must not import; `tests/cli/doctor-entries.test.ts` keeps it in step with `exports`. */
18
+ /**
19
+ * Entries a client file must not import; `tests/cli/doctor-entries.test.ts`
20
+ * keeps it in step with `exports`.
21
+ */
19
22
  const SERVER_SPECIFIERS = [
20
23
  "permdock/a2a",
21
24
  "permdock/agent",
@@ -112,7 +115,10 @@ function withoutComments(source) {
112
115
  function isClientSource(source, clientEntries) {
113
116
  return clientEntries.has(source.file) || source.text.includes("'use client'") || source.text.includes("\"use client\"") || source.file.includes(".client.");
114
117
  }
115
- /** Specifiers a module loads at runtime: value imports, re-exports and literal dynamic imports. */
118
+ /**
119
+ * Specifiers a module loads at runtime: value imports, re-exports and literal
120
+ * dynamic imports.
121
+ */
116
122
  function runtimeSpecifiers(source) {
117
123
  const { module } = parseSync(source.file, source.text);
118
124
  const out = /* @__PURE__ */ new Set();
@@ -132,10 +138,10 @@ function realFile(path) {
132
138
  }
133
139
  }
134
140
  /**
135
- * A resolver for imports of `file`, the way the bundler resolves them:
136
- * relative paths with or without an extension, the `paths` of the nearest
137
- * `tsconfig.json`, and package names through `node_modules` and each
138
- * package's `exports`. An unresolvable specifier gives `undefined`.
141
+ * A resolver for imports of `file`, the way the bundler resolves them: relative
142
+ * paths with or without an extension, the `paths` of the nearest
143
+ * `tsconfig.json`, and package names through `node_modules` and each package's
144
+ * `exports`. An unresolvable specifier gives `undefined`.
139
145
  */
140
146
  function resolverFor(file) {
141
147
  const jiti = createJiti(file, { tsconfigPaths: dirname(file) });
@@ -222,7 +228,7 @@ function pd010(sources) {
222
228
  }
223
229
  function pd011(sources) {
224
230
  const findings = [];
225
- for (const source of sources) if (/tenant['"]?\s*:\s*['"]hd['"]/u.test(source.text) || /accounts\.google\.com/u.test(source.text) && /tenant/.test(source.text)) findings.push({
231
+ for (const source of sources) if (/tenant['"]?\s*:\s*['"]hd['"]/u.test(source.text) || /accounts\.google\.com/u.test(source.text) && source.text.includes("tenant")) findings.push({
226
232
  code: "PD011",
227
233
  severity: "warning",
228
234
  message: `${source.file} reads tenant from an optional issuer claim`,
@@ -355,7 +361,10 @@ function pd015(sources) {
355
361
  return findings;
356
362
  }
357
363
  const SUPABASE_SUBJECT_CALL = /\bsubjectFromSupabase(?:Session)?\s*\(/gu;
358
- /** Top-level arguments of the call whose `(` ends at `open`, or undefined when unbalanced. */
364
+ /**
365
+ * Top-level arguments of the call whose `(` ends at `open`, or undefined when
366
+ * unbalanced.
367
+ */
359
368
  function callArguments(text, open) {
360
369
  const args = [];
361
370
  let depth = 0;
@@ -382,7 +391,10 @@ function callArguments(text, open) {
382
391
  }
383
392
  }
384
393
  }
385
- /** The claim a `subjectFromSupabase` call reads the tenant from, or undefined when the options are not a literal. */
394
+ /**
395
+ * The claim a `subjectFromSupabase` call reads the tenant from, or undefined
396
+ * when the options are not a literal.
397
+ */
386
398
  function readTenantClaim(options, fallback) {
387
399
  if (options === void 0) return fallback;
388
400
  if (!options.startsWith("{")) return;
@@ -409,9 +421,9 @@ function pd038(sources, tenantClaim, fallback) {
409
421
  return findings;
410
422
  }
411
423
  /**
412
- * PD057: `rls.anonymousSignIns` is `'deny'`, so RLS refuses `signInAnonymously()` users, but a
413
- * `subjectFromSupabase(Session)` call maps them as signed-in users. Options that are not a
414
- * literal object are not read.
424
+ * PD057: `rls.anonymousSignIns` is `'deny'`, so RLS refuses
425
+ * `signInAnonymously()` users, but a `subjectFromSupabase(Session)` call maps
426
+ * them as signed-in users. Options that are not a literal object are not read.
415
427
  */
416
428
  function pd057(sources) {
417
429
  const findings = [];
@@ -433,7 +445,10 @@ function pd057(sources) {
433
445
  return findings;
434
446
  }
435
447
  const EXCHANGE_CALL = /\bexchangeCapability\s*\(/gu;
436
- /** PD041: `exchangeCapability` signing link tokens with the project's shared JWT secret. */
448
+ /**
449
+ * PD041: `exchangeCapability` signing link tokens with the project's shared JWT
450
+ * secret.
451
+ */
437
452
  function pd041(sources) {
438
453
  const findings = [];
439
454
  for (const source of sources) for (const match of source.text.matchAll(EXCHANGE_CALL)) {
@@ -453,7 +468,10 @@ function pd041(sources) {
453
468
  const PROTECT_CALL = /\bprotect\s*\(/gu;
454
469
  const ID_ROUTE = /['"`](\/[^'"`\s]*(?::[A-Za-z_$][\w$]*|\{[A-Za-z_$][\w$]*\})[^'"`\s]*)['"`]/gu;
455
470
  const DYNAMIC_SEGMENT = /(?:^|[\\/])(\[[^\]/\\]+\])(?=[\\/])/u;
456
- /** The id-bearing route a `protect` call at `index` sits in: the file's dynamic segment, or a route literal earlier in the same statement. */
471
+ /**
472
+ * The id-bearing route a `protect` call at `index` sits in: the file's dynamic
473
+ * segment, or a route literal earlier in the same statement.
474
+ */
457
475
  function idRouteOf(source, index) {
458
476
  const segment = DYNAMIC_SEGMENT.exec(source.file);
459
477
  if (segment !== null) return segment[1];
@@ -461,7 +479,10 @@ function idRouteOf(source, index) {
461
479
  const start = Math.max(window.lastIndexOf(";"), window.lastIndexOf("\n\n"));
462
480
  return [...window.slice(start + 1).matchAll(ID_ROUTE)].at(-1)?.[1];
463
481
  }
464
- /** PD036: a `protect(permission)` with no row loader on a route whose path names an object id (BOLA, OWASP API1). */
482
+ /**
483
+ * PD036: a `protect(permission)` with no row loader on a route whose path names
484
+ * an object id (BOLA, OWASP API1).
485
+ */
465
486
  function pd036(sources) {
466
487
  const findings = [];
467
488
  for (const source of sources) {
@@ -709,8 +730,11 @@ function ignored(key, patterns) {
709
730
  });
710
731
  }
711
732
  function formatUsage(report) {
712
- const lines = ["permdock usage", ""];
713
- lines.push(` defined but unused (${String(report.unused.length)})`);
733
+ const lines = [
734
+ "permdock usage",
735
+ "",
736
+ ` defined but unused (${String(report.unused.length)})`
737
+ ];
714
738
  for (const finding of report.unused) lines.push(` ${finding.key.padEnd(28)} ${finding.detail}`);
715
739
  lines.push("");
716
740
  lines.push(` used but ungranted (${String(report.ungranted.length)})`);
@@ -1,5 +1,5 @@
1
1
  import { t as defineLeaf } from "./command-L8EstFNm.js";
2
- import { a as failOnFlag } from "./flags-aaeRAdiD.js";
2
+ import { a as failOnFlag } from "./flags-DXjoTVbS.js";
3
3
  //#region src/cli/commands/usage.ts
4
4
  const usage = defineLeaf({
5
5
  flags: {
@@ -16,7 +16,7 @@ const usage = defineLeaf({
16
16
  }
17
17
  },
18
18
  async run(ctx, { flags }) {
19
- return (await import("./usage-y-kBNdqs.js")).runUsage({
19
+ return (await import("./usage-0hjZPIRX.js")).runUsage({
20
20
  cwd: ctx.cwd,
21
21
  config: ctx.config,
22
22
  ignore: flags.ignore,
@@ -1,6 +1,9 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
2
  //#region src/core/validation-error.ts
3
- /** The base of every Problem Details `type` URI; defined here so a validation error does not pull in the Problem Details builders. */
3
+ /**
4
+ * The base of every Problem Details `type` URI; defined here so a validation
5
+ * error does not pull in the Problem Details builders.
6
+ */
4
7
  const PROBLEM_BASE = "https://permdock.com/problems";
5
8
  var PermDockValidationError = class extends Error {
6
9
  name = "PermDockValidationError";
@@ -1,7 +1,10 @@
1
- import { a as ProblemDetails } from "./errors-B_Qg9D3e.js";
1
+ import { a as ProblemDetails } from "./errors-BIM4MFsJ.js";
2
2
  import { StandardSchemaV1 } from "@standard-schema/spec";
3
3
  //#region src/core/validation-error.d.ts
4
- /** The base of every Problem Details `type` URI; defined here so a validation error does not pull in the Problem Details builders. */
4
+ /**
5
+ * The base of every Problem Details `type` URI; defined here so a validation
6
+ * error does not pull in the Problem Details builders.
7
+ */
5
8
  declare const PROBLEM_BASE = "https://permdock.com/problems";
6
9
  declare class PermDockValidationError extends Error {
7
10
  override readonly name: "PermDockValidationError";
@@ -1,6 +1,6 @@
1
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
2
- import { i as ownKeys, n as isForbiddenKey, r as ownGet } from "./paths-DXSHAMIa.js";
3
- import { c as instantOf, g as secondsOf, m as rfc3339 } from "./time-DkWjdL98.js";
1
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
2
+ import { i as ownKeys, n as isForbiddenKey, r as ownGet } from "./paths-CUvURzHp.js";
3
+ import { c as instantOf, g as secondsOf, m as rfc3339 } from "./time-nR1JesoH.js";
4
4
  //#region src/core/fields.ts
5
5
  function sanitizeFields(fields) {
6
6
  if (fields === void 0) return;
@@ -26,9 +26,9 @@ function sanitizeContext(value) {
26
26
  //#endregion
27
27
  //#region src/core/validity.ts
28
28
  /**
29
- * The normalised validity of a grant, or `undefined` when neither bound is
30
- * set. Fail-closed at definition time: a bound that does not parse, or a
31
- * window that ends before it starts, throws so a typo never widens a grant.
29
+ * The normalised validity of a grant, or `undefined` when neither bound is set.
30
+ * Fail-closed at definition time: a bound that does not parse, or a window that
31
+ * ends before it starts, throws so a typo never widens a grant.
32
32
  */
33
33
  function normalizeValidity(options, permissionKey) {
34
34
  const from = options.validFrom === void 0 ? void 0 : instantOf(options.validFrom);
@@ -42,7 +42,10 @@ function normalizeValidity(options, permissionKey) {
42
42
  ...until === void 0 ? {} : { until }
43
43
  });
44
44
  }
45
- /** Whether a grant with this validity applies at `now` (Unix seconds); no validity always applies. */
45
+ /**
46
+ * Whether a grant with this validity applies at `now` (Unix seconds); no
47
+ * validity always applies.
48
+ */
46
49
  function isActive(validity, now) {
47
50
  if (validity === void 0) return true;
48
51
  if (validity.from !== void 0 && now < validity.from) return false;
@@ -56,9 +59,9 @@ function wireValidity(validity) {
56
59
  });
57
60
  }
58
61
  /**
59
- * The validity of a wire grant. A malformed window fails closed for the
60
- * grant's effect: an allow never applies (`{ from: +∞ }`), a deny always
61
- * does (no window), so a corrupt bound can never lift a deny.
62
+ * The validity of a wire grant. A malformed window fails closed for the grant's
63
+ * effect: an allow never applies (`{ from: +∞ }`), a deny always does (no
64
+ * window), so a corrupt bound can never lift a deny.
62
65
  */
63
66
  function readWireValidity(value, effect = "allow") {
64
67
  if (value === void 0) return;
@@ -1,6 +1,6 @@
1
1
  import { n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
2
- import { n as isForbiddenKey, s as splitPath } from "./paths-DXSHAMIa.js";
3
- import { p as nowSeconds } from "./time-DkWjdL98.js";
2
+ import { n as isForbiddenKey, s as splitPath } from "./paths-CUvURzHp.js";
3
+ import { p as nowSeconds } from "./time-nR1JesoH.js";
4
4
  import { t as loadJose } from "./load-jose-DZ4dnjri.js";
5
5
  //#region src/jwt/header.ts
6
6
  function compactParts(token) {
@@ -145,7 +145,10 @@ function secretBytes(secret) {
145
145
  if (typeof secret === "string") return new TextEncoder().encode(secret);
146
146
  return secret;
147
147
  }
148
- /** The verifier options of a subject config: `audience: false` means none is checked. */
148
+ /**
149
+ * The verifier options of a subject config: `audience: false` means none is
150
+ * checked.
151
+ */
149
152
  function verifierOptions(options) {
150
153
  const { audience, ...rest } = options;
151
154
  return audience === false || audience === void 0 ? rest : {
@@ -348,7 +351,10 @@ function configuredKeys(listed) {
348
351
  function isObject(value) {
349
352
  return value !== null && typeof value === "object" && !Array.isArray(value);
350
353
  }
351
- /** Whether `key` may decrypt a token with this header: encryption use, matching `alg` and `kid`, and private material. */
354
+ /**
355
+ * Whether `key` may decrypt a token with this header: encryption use, matching
356
+ * `alg` and `kid`, and private material.
357
+ */
352
358
  function mayDecrypt(key, header) {
353
359
  if (!isObject(key)) return false;
354
360
  if (key["use"] !== void 0 && key["use"] !== "enc") return false;