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,18 +1,21 @@
1
- import { Gt as Snapshot, Ln as Decision, Rt as Instant, Zn as Actor, ar as JsonWebKeyLike, j as PolicyVocabulary, lr as Subject } from "./policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "./permission-types-DhNEmoRG.js";
3
- import { a as PermDock, l as SnapshotOptions } from "./permdock-Dco6dyCK.js";
4
- import { m as ApprovalStore } from "./types-DC44-hqb.js";
5
- import { a as ProblemDetails, t as ApprovalHint } from "./errors-B_Qg9D3e.js";
6
- import { t as InstanceOptions } from "./instance-options-CU0YQCLH.js";
1
+ import { Un as Decision, Wt as Instant, X as Intent, Zt as Snapshot, dr as JsonWebKeyLike, hr as Subject, j as PolicyVocabulary, 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, u as SnapshotOptions } from "./permdock-CprAPN3w.js";
4
+ import { m as ApprovalStore } from "./types-DLvhVm1r.js";
5
+ import { a as ProblemDetails, t as ApprovalHint } from "./errors-BIM4MFsJ.js";
6
+ import { t as InstanceOptions } from "./instance-options-CoHn-0e8.js";
7
7
  import { t as RequestContext } from "./request-context-C2_1lchh.js";
8
- import { n as PermDockWrap } from "./wrap-B6R0cMRL.js";
9
- import { n as RevocationFeed } from "./revocations-R07lFBnX.js";
10
- import { r as PdpFactory } from "./types-D3A19w4A.js";
11
- import { i as evaluationsHandler } from "./evaluations-BCddEOfO.js";
8
+ import { n as PermDockWrap } from "./wrap-DxXB54Wu.js";
9
+ import { n as RevocationFeed } from "./revocations-BaUXHM1N.js";
10
+ import { r as PdpFactory } from "./types-DlelvQk4.js";
11
+ import { i as evaluationsHandler } from "./evaluations-DOWuBpWv.js";
12
12
  //#region src/server/connection.d.ts
13
13
  type ConnectionData<T> = T | (() => T | null | undefined | Promise<T | null | undefined>);
14
14
  type ConnectionOptions<T = unknown> = {
15
- /** The permission the stream or socket is opened for; re-checked after every revalidation. */
15
+ /**
16
+ * The permission the stream or socket is opened for; re-checked after every
17
+ * revalidation.
18
+ */
16
19
  readonly permission?: Permission;
17
20
  /** The row for `permission`, or a loader re-run on every revalidation. */
18
21
  readonly data?: ConnectionData<T>;
@@ -25,13 +28,13 @@ type Connection = {
25
28
  /** Aborts with a `PermDockRevokedError` when the connection must end. */
26
29
  readonly signal: AbortSignal;
27
30
  /**
28
- * Per-message decision. Data is validated against the resource schema
29
- * first unless `{ trusted: true }` marks it as a row the server loaded.
31
+ * Per-message decision. Data is validated against the resource schema first
32
+ * unless `{ trusted: true }` marks it as a row the server loaded.
30
33
  */
31
34
  readonly check: (permission: Permission, data?: unknown, options?: {
32
35
  readonly trusted?: boolean;
33
36
  }) => Decision;
34
- readonly filter: <T>(permission: Permission<string, T, "instance">, items: readonly T[]) => T[];
37
+ readonly filter: <T>(permission: Permission<string, NoInfer<T>, "instance">, items: readonly T[]) => T[];
35
38
  /**
36
39
  * Resolves once every revalidation queued so far has finished, so a message
37
40
  * checked after a revocation event is checked against the rebuilt instance.
@@ -43,14 +46,17 @@ type Connection = {
43
46
  //#endregion
44
47
  //#region src/core/adapter-context.d.ts
45
48
  /**
46
- * The active tenant an adapter resolved from its own framework context.
47
- * Present means "use this tenant", even when `tenant` is `undefined`.
49
+ * The active tenant an adapter resolved from its own framework context. Present
50
+ * means "use this tenant", even when `tenant` is `undefined`.
48
51
  */
49
52
  type TenantScope = {
50
53
  readonly tenant: string | undefined;
51
54
  };
52
55
  type TenantOption<TContext> = string | ((context: TContext) => string | undefined | Promise<string | undefined>);
53
- /** Resolves an adapter `tenant` option against its framework context; a throw is no tenant. */
56
+ /**
57
+ * Resolves an adapter `tenant` option against its framework context; a throw is
58
+ * no tenant.
59
+ */
54
60
  declare function tenantScope<TContext>(option: TenantOption<TContext> | undefined, context: TContext): Promise<TenantScope>;
55
61
  //#endregion
56
62
  //#region src/server/web-bot-auth.d.ts
@@ -75,13 +81,16 @@ type WebBotAuthOptions = {
75
81
  readonly now?: () => Instant;
76
82
  };
77
83
  /**
78
- * An adapter's `webBotAuth` option: `webBotAuthVerifier(options)`,
79
- * so an app without it does not bundle RFC 9421 verification.
84
+ * An adapter's `webBotAuth` option: `webBotAuthVerifier(options)`, so an app
85
+ * without it does not bundle RFC 9421 verification.
80
86
  */
81
87
  type WebBotAuthVerifier = {
82
88
  readonly name?: string;
83
- /** The verified signer as an actor, `undefined` for an unsigned request; throws `InvalidSignatureError` for a bad signature. */
84
- verify(request: Request): Promise<Actor | undefined>;
89
+ /**
90
+ * The verified signer as an actor, `undefined` for an unsigned request;
91
+ * throws `InvalidSignatureError` for a bad signature.
92
+ */
93
+ verify: (request: Request) => Promise<Actor | undefined>;
85
94
  };
86
95
  type DiscoverViaSignatureAgentOptions = {
87
96
  readonly allow: readonly string[];
@@ -104,7 +113,10 @@ declare function webBotAuthVerifier(options?: WebBotAuthOptions): WebBotAuthVeri
104
113
  //#endregion
105
114
  //#region src/server/server-types.d.ts
106
115
  type ServerPermDockOptions<TUser = unknown> = InstanceOptions & {
107
- /** The user, or a full `Subject` (core then skips `policy.subject`); `null` is anonymous. */
116
+ /**
117
+ * The user, or a full `Subject` (core then skips `policy.subject`); `null` is
118
+ * anonymous.
119
+ */
108
120
  readonly subject: (request: Request) => TUser | Subject | null | Promise<TUser | Subject | null>;
109
121
  readonly actor?: (request: Request) => unknown;
110
122
  /** `webBotAuthVerifier(options)`; a verified bot becomes the actor. */
@@ -123,23 +135,39 @@ type ServerPermDockOptions<TUser = unknown> = InstanceOptions & {
123
135
  readonly approval?: ApprovalHint;
124
136
  readonly operations?: OperationScopes;
125
137
  /**
126
- * Replaces the response of a refused guard. A status below 300, or a
127
- * throw, keeps the default response and reports through `on('error')`.
138
+ * Replaces the response of a refused guard. A status below 300, or a throw,
139
+ * keeps the default response and reports through `on('error')`.
128
140
  */
129
141
  readonly deniedResponse?: DeniedResponse;
130
142
  /**
131
- * Request values merged into `subject.context`, under `policy.context`.
132
- * Only values the server derived belong here, never client input. A throw
133
- * or a value that is not a JSON object adds nothing and reports through
143
+ * Request values merged into `subject.context`, under `policy.context`. Only
144
+ * values the server derived belong here, never client input. A throw or a
145
+ * value that is not a JSON object adds nothing and reports through
134
146
  * `on('error')`.
135
147
  */
136
148
  readonly context?: (request: Request) => RequestContext | undefined | Promise<RequestContext | undefined>;
137
- /** Wraps each instance the factory builds; build it with `wrapPermDock` to cover derived instances. */
149
+ /**
150
+ * Wraps each instance the factory builds; build it with `wrapPermDock` to
151
+ * cover derived instances.
152
+ */
138
153
  readonly wrap?: PermDockWrap;
139
- /** The `adapter` label on decision events, revocations and approvals. Defaults to `server`. */
154
+ /**
155
+ * `'read'` lets `claimsFirst(…, { versions })` judge the token from the
156
+ * shared version cache. Defaults to `'read'` for `GET`, `HEAD` and `OPTIONS`
157
+ * and `'write'` for every other method. `undefined` keeps the default; a
158
+ * throw or any other value is `'write'`.
159
+ */
160
+ readonly intent?: (request: Request) => Intent | undefined;
161
+ /**
162
+ * The `adapter` label on decision events, revocations and approvals. Defaults
163
+ * to `server`.
164
+ */
140
165
  readonly adapter?: string;
141
166
  };
142
- /** What `deniedResponse` receives: the refusal and the default Problem Details for it. */
167
+ /**
168
+ * What `deniedResponse` receives: the refusal and the default Problem Details
169
+ * for it.
170
+ */
143
171
  type DeniedResponseEvent = {
144
172
  readonly decision: Exclude<Decision, {
145
173
  readonly outcome: "granted";
@@ -147,10 +175,13 @@ type DeniedResponseEvent = {
147
175
  readonly problem: ProblemDetails;
148
176
  readonly request: Request | undefined;
149
177
  };
150
- /** Returns Problem Details with extra members, a `Response`, or nothing for the default. */
178
+ /**
179
+ * Returns Problem Details with extra members, a `Response`, or nothing for the
180
+ * default.
181
+ */
151
182
  type DeniedResponse = (event: DeniedResponseEvent) => ProblemDetails | Response | undefined | Promise<ProblemDetails | Response | undefined>;
152
183
  type OperationScopes = {
153
- oauthScopesForRequest(method: string, path: string): readonly string[] | undefined;
184
+ oauthScopesForRequest: (method: string, path: string) => readonly string[] | undefined;
154
185
  };
155
186
  type Guard<T = unknown, V extends PolicyVocabulary = PolicyVocabulary> = {
156
187
  readonly ok: true;
@@ -162,7 +193,10 @@ type Guard<T = unknown, V extends PolicyVocabulary = PolicyVocabulary> = {
162
193
  } | {
163
194
  readonly ok: false;
164
195
  readonly response: Response;
165
- /** The refusal behind `response`; absent for a missing row or a bad signature. */
196
+ /**
197
+ * The refusal behind `response`; absent for a missing row or a bad
198
+ * signature.
199
+ */
166
200
  readonly decision?: Exclude<Decision, {
167
201
  readonly outcome: "granted";
168
202
  }>;
@@ -179,15 +213,18 @@ type ScopeGuard<T = unknown, V extends PolicyVocabulary = PolicyVocabulary> = {
179
213
  } | {
180
214
  readonly ok: false;
181
215
  readonly response: Response;
182
- /** The refusal behind `response`; absent for a missing row or a bad signature. */
216
+ /**
217
+ * The refusal behind `response`; absent for a missing row or a bad
218
+ * signature.
219
+ */
183
220
  readonly decision?: Exclude<Decision, {
184
221
  readonly outcome: "granted";
185
222
  }>;
186
223
  };
187
224
  type Loader<T> = (request: Request) => T | null | undefined | Promise<T | null | undefined>;
188
225
  /**
189
- * `protect(permission, data?, options?)`, or `protect(null, data?,
190
- * { oauthScopes })` for a route that needs a signed-in principal and, from a
226
+ * `protect(permission, data?, options?)`, or `protect(null, data?, {
227
+ * oauthScopes })` for a route that needs a signed-in principal and, from a
191
228
  * delegated token, one of the OAuth scopes it declares, but no permission.
192
229
  */
193
230
  type Protect<V extends PolicyVocabulary = PolicyVocabulary, TArgs extends unknown[] = []> = {
@@ -204,9 +241,9 @@ type OpenApiHooks = {
204
241
  };
205
242
  type ProtectOptions = {
206
243
  /**
207
- * `true` when `data` returns a row the server loaded itself, to skip
208
- * schema validation. Anything else is validated against the resource
209
- * schema before the check.
244
+ * `true` when `data` returns a row the server loaded itself, to skip schema
245
+ * validation. Anything else is validated against the resource schema before
246
+ * the check.
210
247
  */
211
248
  readonly trusted?: boolean;
212
249
  /**
@@ -221,7 +258,10 @@ type ProtectOptions = {
221
258
  readonly explain?: boolean;
222
259
  };
223
260
  type SnapshotQuery = {
224
- /** The active tenant; defaults to the `tenant` option resolved from the request. */
261
+ /**
262
+ * The active tenant; defaults to the `tenant` option resolved from the
263
+ * request.
264
+ */
225
265
  readonly tenant?: string;
226
266
  readonly include?: SnapshotOptions["include"];
227
267
  readonly tenants?: "all";
@@ -234,23 +274,25 @@ type SnapshotQuery = {
234
274
  type ServerPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
235
275
  readonly getPermDock: (request: Request, scope?: TenantScope) => Promise<PermDock<V>>;
236
276
  /**
237
- * The JSON snapshot for a loader (React Router, TanStack Start, SvelteKit, Nuxt), built from the
238
- * request's cached subject. Send it with `snapshotHeaders(snapshot)`.
277
+ * The JSON snapshot for a loader (React Router, TanStack Start, SvelteKit,
278
+ * Nuxt), built from the request's cached subject. Send it with
279
+ * `snapshotHeaders(snapshot)`.
239
280
  */
240
281
  readonly getSnapshot: (request: Request, query?: SnapshotQuery) => Promise<Snapshot>;
241
282
  readonly protect: Protect<V, [scope?: TenantScope]>;
242
283
  /**
243
284
  * `protect` against an instance the adapter already holds, such as a gateway
244
- * connection's: the same OAuth scope check, loader, decision and approval resume.
245
- * A method, so a `ServerPermDock<V>` stays assignable to `ServerPermDock`.
285
+ * connection's: the same OAuth scope check, loader, decision and approval
286
+ * resume. A method, so a `ServerPermDock<V>` stays assignable to
287
+ * `ServerPermDock`.
246
288
  */
247
289
  protectOn<T = unknown>(instance: PermDock<V>, permission: Permission | null, data?: () => T | null | undefined | Promise<T | null | undefined>, protectOptions?: ProtectOptions, request?: Request): Promise<Guard<T, V> | ScopeGuard<T, V>>;
248
290
  /** A long-lived connection for a stream or socket opened by `request`. */
249
291
  readonly connection: <T = unknown>(request: Request, options?: ConnectionOptions<T>, scope?: TenantScope) => Promise<Connection>;
250
292
  /**
251
293
  * Lets `to`, a second `Request` an adapter built for the same incoming
252
- * request (to re-read a body a parser consumed), reuse the subject and
253
- * actor already resolved for `from`.
294
+ * request (to re-read a body a parser consumed), reuse the subject and actor
295
+ * already resolved for `from`.
254
296
  */
255
297
  readonly shareSubject: (from: Request, to: Request) => void;
256
298
  readonly problem: (decision: Decision, init?: {
@@ -69,7 +69,8 @@ function rotr(value, bits) {
69
69
  return value >>> bits | value << 32 - bits;
70
70
  }
71
71
  /**
72
- * SHA-256 of UTF-8 text. Pure JS so `decide` stays synchronous and WinterTC-safe.
72
+ * SHA-256 of UTF-8 text. Pure JS so `decide` stays synchronous and
73
+ * WinterTC-safe.
73
74
  */
74
75
  function sha256(message) {
75
76
  const bytes = new TextEncoder().encode(message);
@@ -142,8 +143,8 @@ function sha256(message) {
142
143
  return out;
143
144
  }
144
145
  /**
145
- * The one digest notation: `sha-256:` plus the unpadded base64url SHA-256
146
- * of `text`. An RFC 9651 sf-token, so it fits a structured header as is.
146
+ * The one digest notation: `sha-256:` plus the unpadded base64url SHA-256 of
147
+ * `text`. An RFC 9651 sf-token, so it fits a structured header as is.
147
148
  */
148
149
  function sha256Digest(text) {
149
150
  return `sha-256:${bytesToBase64Url(sha256(text))}`;
@@ -1,11 +1,15 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
- import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
3
- import { t as byCodePoint } from "./compare-pfyVnBjE.js";
4
- import { i as configError } from "./errors-DpP_U6Bf.js";
5
- import { a as quoteQualifiedTable, c as quoteSqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, t as SQL_IDENT } from "./sql-B96movIM.js";
6
- import "./sources-B-zYB4GS.js";
2
+ import { n as isForbiddenKey } from "./paths-CUvURzHp.js";
3
+ import { t as byCodePoint } from "./compare-DTfyUunF.js";
4
+ import { i as configError } from "./errors-Vpu6rKHl.js";
5
+ import { a as quoteQualifiedTable, c as quoteSqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, t as SQL_IDENT } from "./sql-0WjxIp9g.js";
6
+ import { t as byScope } from "./compile-EzEMB-7v.js";
7
+ import "./sources-CMAM-2A3.js";
7
8
  //#region src/cli/sql/columns.ts
8
- /** The Postgres type a JSON Schema property compares as; `undefined` for text or an unknown shape. */
9
+ /**
10
+ * The Postgres type a JSON Schema property compares as; `undefined` for text or
11
+ * an unknown shape.
12
+ */
9
13
  function columnTypeOf(property) {
10
14
  if (!isRecord(property)) return;
11
15
  const variants = [property["anyOf"], property["oneOf"]].find(Array.isArray);
@@ -67,14 +71,21 @@ function sqlType(name) {
67
71
  function tenantTypeOf(ctx) {
68
72
  return sqlType(ctx.tenantType ?? "uuid");
69
73
  }
70
- function teamTypeOf(ctx) {
71
- return sqlType(ctx.teamType ?? ctx.tenantType ?? "uuid");
72
- }
73
- /** Postgres type of scope `name`'s id: `scopeTypes`, then the tenant / team type by position. */
74
+ /**
75
+ * Postgres type of scope `name`'s id: `scopeTypes` by name or by its `tenant` /
76
+ * `team` alias, then the tenant type.
77
+ */
74
78
  function scopeTypeOf(ctx, name) {
75
- const declared = ctx.scopeTypes?.[name];
76
- if (declared !== void 0) return sqlType(declared);
77
- return name === ctx.scopes[1]?.name ? teamTypeOf(ctx) : tenantTypeOf(ctx);
79
+ const declared = byScope(ctx.scopeTypes, ctx.scopes, name);
80
+ return declared === void 0 ? tenantTypeOf(ctx) : sqlType(declared);
81
+ }
82
+ /**
83
+ * The tenant type `rls.scopeTypes` gives the first scope, else `uuid`: the type
84
+ * the tenant claim and the custom-role tenant arguments are cast to.
85
+ */
86
+ function firstScopeType(scopeTypes, scopes) {
87
+ const first = scopes[0]?.name;
88
+ return (first === void 0 ? void 0 : byScope(scopeTypes, scopes, first)) ?? scopeTypes?.["tenant"] ?? "uuid";
78
89
  }
79
90
  //#endregion
80
91
  //#region src/cli/sql/quote.ts
@@ -102,10 +113,10 @@ function declaredArray(values) {
102
113
  return values.length === 0 ? `'{}'::text[]` : `array[${values.map(quoteLiteral).join(", ")}]::text[]`;
103
114
  }
104
115
  /**
105
- * A text array as a Postgres literal (`'{admin,owner}'`). An element that
106
- * holds a delimiter, a brace, a quote, a backslash, whitespace, or that
107
- * reads as `NULL`, is double-quoted and escaped, so one element can never
108
- * split into several.
116
+ * A text array as a Postgres literal (`'{admin,owner}'`). An element that holds
117
+ * a delimiter, a brace, a quote, a backslash, whitespace, or that reads as
118
+ * `NULL`, is double-quoted and escaped, so one element can never split into
119
+ * several.
109
120
  */
110
121
  function textArrayLiteral(values) {
111
122
  return quoteLiteral(`{${values.map((value) => value === "" || /[\s,{}"\\]/u.test(value) || /^null$/iu.test(value) ? `"${value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")}"` : value).join(",")}}`);
@@ -118,21 +129,21 @@ function parseMembershipsFlag(raw) {
118
129
  const colon = raw.indexOf(":");
119
130
  const table = colon === -1 ? raw : raw.slice(0, colon);
120
131
  const cols = (colon === -1 ? "" : raw.slice(colon + 1)).split(",").map((item) => item.trim()).filter((item) => item !== "");
121
- return { tenant: {
132
+ return { scopes: { tenant: {
122
133
  table,
123
- tenant: cols[0] ?? "tenant_id",
134
+ columns: { tenant: cols[0] ?? "tenant_id" },
124
135
  user: cols[1] ?? "user_id",
125
136
  role: cols[2] ?? "role",
126
137
  ...cols[3] === void 0 ? {} : { expiresAt: cols[3] }
127
- } };
138
+ } } };
128
139
  }
129
140
  //#endregion
130
141
  //#region src/cli/sql/subject.ts
131
142
  /**
132
- * A role with `for` counts only on a membership of one of those kinds:
133
- * `case role when 'admin' then via = any(...) ... else true end`. A missing
134
- * kind (`viaExpr` null) holds none of them. A constant kind folds into the
135
- * roles it excludes, or no filter. `undefined` when nothing is filtered.
143
+ * A role with `for` counts only on a membership of one of those kinds: `case
144
+ * role when 'admin' then via = any(...) ... else true end`. A missing kind
145
+ * (`viaExpr` null) holds none of them. A constant kind folds into the roles it
146
+ * excludes, or no filter. `undefined` when nothing is filtered.
136
147
  */
137
148
  function kindFilterSql(ctx, roleExpr, viaExpr) {
138
149
  const kinds = Object.entries(ctx.ownership?.kinds ?? {}).toSorted(([a], [b]) => byCodePoint(a, b));
@@ -143,7 +154,10 @@ function kindFilterSql(ctx, roleExpr, viaExpr) {
143
154
  }
144
155
  return `case ${roleExpr} ${kinds.map(([role, allowed]) => `when ${quoteLiteral(role)} then coalesce(${viaExpr}, '') = any(array[${allowed.map(quoteLiteral).join(", ")}]::text[])`).join(" ")} else true end`;
145
156
  }
146
- /** The kind check for one known role; `undefined` when it has no `for` or a constant kind it allows. */
157
+ /**
158
+ * The kind check for one known role; `undefined` when it has no `for` or a
159
+ * constant kind it allows.
160
+ */
147
161
  function roleKindSql(ctx, role, viaExpr) {
148
162
  const allowed = ctx.ownership?.kinds[role];
149
163
  if (allowed === void 0) return;
@@ -161,7 +175,10 @@ function keyTenantSql(ctx, tenant) {
161
175
  const named = `nullif(${subjectClaimJsonSql(ctx, keys.claim)} ->> ${quoteLiteral(keys.tenant)}, '')`;
162
176
  return tenant === void 0 ? `${named} is null` : `(${named} is null or (${tenant})::text = ${named})`;
163
177
  }
164
- /** The active-tenant claim cast to the tenant column's type, so the comparison uses the column's index. */
178
+ /**
179
+ * The active-tenant claim cast to the tenant column's type, so the comparison
180
+ * uses the column's index.
181
+ */
165
182
  function tenantClaimSql(ctx) {
166
183
  return `${subjectClaimSql(ctx, ctx.tenantClaim)}::${tenantTypeOf(ctx)}`;
167
184
  }
@@ -170,7 +187,10 @@ function userIdHelperSql(ctx) {
170
187
  return qualified(ctx, USER_ID_HELPER);
171
188
  }
172
189
  const SESSION_LIVE_HELPER = "permdock_session_live";
173
- /** `{ subject: { session: { live: true } } }` in a policy; only Supabase has `auth.sessions`. */
190
+ /**
191
+ * `{ subject: { session: { live: true } } }` in a policy; only Supabase has
192
+ * `auth.sessions`.
193
+ */
174
194
  function liveSessionSql(ctx) {
175
195
  if (ctx.dialect !== "supabase") throw configError(`PermDock CLI: { subject: { session: { live: true } } } reads auth.sessions, which only the supabase dialect has (got ${ctx.dialect})`);
176
196
  return `(select ${qualified(ctx, SESSION_LIVE_HELPER)}())`;
@@ -245,7 +265,10 @@ function subjectClaimJsonSql(ctx, claim) {
245
265
  function viaAllowed(value, allowed) {
246
266
  return allowed.includes(value ?? "");
247
267
  }
248
- /** The membership kind of a row `m` of `table`: its column as text, or its constant (`null` without one). */
268
+ /**
269
+ * The membership kind of a row `m` of `table`: its column as text, or its
270
+ * constant (`null` without one).
271
+ */
249
272
  function memberVia(table) {
250
273
  const via = table.via;
251
274
  if (via === void 0) return { value: null };
@@ -267,7 +290,10 @@ const HELPERS = {
267
290
  has: "permdock_has",
268
291
  hasFor: "permdock_has_for"
269
292
  };
270
- /** Objects `--custom-roles` adds next to the helpers. Names are part of the SQL contract. */
293
+ /**
294
+ * Objects `--custom-roles` adds next to the helpers. Names are part of the SQL
295
+ * contract.
296
+ */
271
297
  const CUSTOM_ROLES = {
272
298
  permissions: "custom_role_permissions",
273
299
  includes: "custom_role_includes",
@@ -275,6 +301,7 @@ const CUSTOM_ROLES = {
275
301
  keys: "permdock_custom_keys",
276
302
  beyond: "permdock_custom_role_beyond",
277
303
  guard: "permdock_custom_role_guard",
304
+ syncGuard: "permdock_sync_custom_role_guard",
278
305
  beyondFor: "permdock_custom_role_beyond_for",
279
306
  guardFor: "permdock_custom_role_guard_for",
280
307
  shape: "permdock_custom_role_shape",
@@ -296,16 +323,22 @@ const CUSTOM_ROLES = {
296
323
  };
297
324
  /** The function `rls.roles` adds. The name is part of the SQL contract. */
298
325
  const GLOBAL_ROLES = { replace: "permdock_replace_global_roles" };
299
- /** `user` is the SQL for the user id: the dialect's (the default) or the `p_user` parameter of a `_for` helper. */
326
+ /**
327
+ * `user` is the SQL for the user id: the dialect's (the default) or the
328
+ * `p_user` parameter of a `_for` helper.
329
+ */
300
330
  function signedIn(ctx, user = subjectIdSql(ctx)) {
301
331
  return `coalesce(${user}::text, '') <> ''`;
302
332
  }
303
333
  function rootName(ctx) {
304
334
  return ctx.scopes[0]?.name ?? "tenant";
305
335
  }
306
- /** The stored allow as `permissions` hands it to `permdock_custom_keys`: `key`, or `key@level` with levels. */
336
+ /**
337
+ * The stored allow as `permissions` hands it to `permdock_custom_keys`: `key`,
338
+ * or `key@level` with levels.
339
+ */
307
340
  function allowEntry(ctx) {
308
341
  return ctx.customRoles?.levels === true ? "permission || coalesce('@' || c.level, '')" : "permission";
309
342
  }
310
343
  //#endregion
311
- export { quoteQualified as A, parseMembershipsFlag as C, qualified as D, helperSchema as E, scopeTypeOf as F, sqlType as I, tenantTypeOf as L, textArrayLiteral as M, arrayColumnsOf as N, quoteIdent as O, columnTypesOf as P, CLAIM as S, declaredArray as T, subjectClaimJsonSql as _, customRolesOn as a, tenantClaimSql as b, SESSION_LIVE_HELPER as c, keyTenantSql as d, kindFilterSql as f, sessionLiveHelperSql as g, roleKindSql as h, allowEntry as i, quoteTable as j, quoteLiteral as k, USER_ID_HELPER as l, memberVia as m, GLOBAL_ROLES as n, rootName as o, liveSessionSql as p, HELPERS as r, signedIn as s, CUSTOM_ROLES as t, globalKindFilterSql as u, subjectClaimSql as v, CLI as w, userIdHelperSql as x, subjectIdSql as y };
344
+ export { quoteQualified as A, parseMembershipsFlag as C, qualified as D, helperSchema as E, firstScopeType as F, scopeTypeOf as I, sqlType as L, textArrayLiteral as M, arrayColumnsOf as N, quoteIdent as O, columnTypesOf as P, tenantTypeOf as R, CLAIM as S, declaredArray as T, subjectClaimJsonSql as _, customRolesOn as a, tenantClaimSql as b, SESSION_LIVE_HELPER as c, keyTenantSql as d, kindFilterSql as f, sessionLiveHelperSql as g, roleKindSql as h, allowEntry as i, quoteTable as j, quoteLiteral as k, USER_ID_HELPER as l, memberVia as m, GLOBAL_ROLES as n, rootName as o, liveSessionSql as p, HELPERS as r, signedIn as s, CUSTOM_ROLES as t, globalKindFilterSql as u, subjectClaimSql as v, CLI as w, userIdHelperSql as x, subjectIdSql as y };
@@ -1,9 +1,12 @@
1
- import { a as durationOf, f as nowMillis } from "./time-DkWjdL98.js";
2
- import { t as decisionToken } from "./token-2qYDvXz2.js";
1
+ import { a as durationOf, f as nowMillis } from "./time-nR1JesoH.js";
2
+ import { t as decisionToken } from "./token-DC9EQiet.js";
3
3
  //#region src/pdp/shared.ts
4
4
  const MAX_CACHE_TTL = 30;
5
5
  const CACHE_MAX = 1e3;
6
- /** Milliseconds from `ttl` seconds, clamped to 30 s; a `ttl` that is not a whole number of seconds above 0 disables the cache. */
6
+ /**
7
+ * Milliseconds from `ttl` seconds, clamped to 30 s; a `ttl` that is not a whole
8
+ * number of seconds above 0 disables the cache.
9
+ */
7
10
  function ttlMs(cache) {
8
11
  const ttl = durationOf(cache?.ttl);
9
12
  return ttl === void 0 ? 0 : Math.min(ttl, MAX_CACHE_TTL) * 1e3;
@@ -48,9 +51,9 @@ function granted(provider, permission, subject, data) {
48
51
  };
49
52
  }
50
53
  /**
51
- * The request that would be sent, plus what a custom mapping may drop
52
- * (issuer, tenant, actor): a tenant switch or a changed row never reuses a
53
- * cached answer.
54
+ * The request that would be sent, plus what a custom mapping may drop (issuer,
55
+ * tenant, actor): a tenant switch or a changed row never reuses a cached
56
+ * answer.
54
57
  */
55
58
  function cacheKey(subject, permission, body) {
56
59
  return JSON.stringify([
@@ -6,8 +6,8 @@ const EXIT_CODES = {
6
6
  /** How long a signalled run may take to clean up before the process exits. */
7
7
  const GRACE_MS = 2e3;
8
8
  /**
9
- * Turns SIGINT and SIGTERM into an aborted signal and the 128 + n exit code.
10
- * A second signal, or a run still busy after the grace period, exits at once.
9
+ * Turns SIGINT and SIGTERM into an aborted signal and the 128 + n exit code. A
10
+ * second signal, or a run still busy after the grace period, exits at once.
11
11
  */
12
12
  function trapSignals() {
13
13
  const controller = new AbortController();
@@ -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 { J as DecisionSink, St as SupportSession, an as CredentialEvent, fn as MembershipEvent, in as AutomationEvent, kt as Credential, mt as TokenSigner, nn as AccessEvent, pn as SinkEvent } from "./policy-types-DGIO_gxq.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-C6Jg75xq.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;