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,20 +1,23 @@
1
- import { q as DecisionSink } from "../policy-types-B-F-qAZk.js";
2
- import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-K0faOLFp.js";
3
- import { d as EmailTransport, o as DeliveryResult, u as EmailMessage } from "../types-g7Oy6Zg4.js";
4
- import { l as ReplayStore } from "../types-cTos-H7p.js";
1
+ import { J as DecisionSink } from "../policy-types-DGIO_gxq.js";
2
+ import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-3BqWczTt.js";
3
+ import { d as EmailTransport, o as DeliveryResult, u as EmailMessage } from "../types-CN0LsqbK.js";
4
+ import { l as ReplayStore } from "../types-DsHGPtkR.js";
5
5
  //#region src/resend/approval-email.d.ts
6
6
  type ApprovalEmailOptions = {
7
- /** The app's approval page: a base the request id is appended to, or a function of the prompt. Must be https. */
7
+ /**
8
+ * The app's approval page: a base the request id is appended to, or a
9
+ * function of the prompt. Must be https.
10
+ */
8
11
  readonly approvalUrl: ApprovalUrl;
9
12
  /** The product name in the footer line. */
10
13
  readonly product?: string;
11
14
  };
12
15
  /**
13
- * The default approval prompt email: an `approval`-category message whose
14
- * one link opens the app's approval page for the request. It carries no
15
- * approve or reject link; the signed-in approver decides on that page.
16
- * Throws a `TypeError` for an approval page that is not https. Replace it
17
- * with a React Email template by building the same `EmailMessage`.
16
+ * The default approval prompt email: an `approval`-category message whose one
17
+ * link opens the app's approval page for the request. It carries no approve or
18
+ * reject link; the signed-in approver decides on that page. Throws a
19
+ * `TypeError` for an approval page that is not https. Replace it with a React
20
+ * Email template by building the same `EmailMessage`.
18
21
  */
19
22
  export declare function approvalEmail(prompt: ApprovalPrompt, options: ApprovalEmailOptions): EmailMessage;
20
23
  //#endregion
@@ -48,16 +51,16 @@ type ResendResult<T> = {
48
51
  /** The part of a `Resend` client the transport calls; a `new Resend(key)` fits. */
49
52
  type ResendClient = {
50
53
  readonly emails: {
51
- send(payload: ResendEmailPayload, options?: {
54
+ send: (payload: ResendEmailPayload, options?: {
52
55
  readonly idempotencyKey?: string;
53
- }): Promise<ResendResult<{
56
+ }) => Promise<ResendResult<{
54
57
  readonly id: string;
55
58
  }>>;
56
59
  };
57
60
  readonly batch?: {
58
- send(payloads: ResendEmailPayload[], options?: {
61
+ send: (payloads: ResendEmailPayload[], options?: {
59
62
  readonly idempotencyKey?: string;
60
- }): Promise<ResendResult<{
63
+ }) => Promise<ResendResult<{
61
64
  readonly data: readonly {
62
65
  readonly id: string;
63
66
  }[];
@@ -69,22 +72,25 @@ type ResendTransportOptions = {
69
72
  readonly from?: string;
70
73
  /** The `replyTo` of an email whose message sets none. */
71
74
  readonly replyTo?: string;
72
- /** Tags added to every email; names and values are ASCII letters, digits, `_` and `-`. */
75
+ /**
76
+ * Tags added to every email; names and values are ASCII letters, digits, `_`
77
+ * and `-`.
78
+ */
73
79
  readonly tags?: Readonly<Record<string, string>>;
74
80
  };
75
81
  /**
76
- * The failure a Resend error name means. Rate limits, quotas and server
77
- * errors are retryable with the same idempotency key; a key, sender or
78
- * validation error is final. An unknown name is retryable only for a 5xx or
79
- * a missing status.
82
+ * The failure a Resend error name means. Rate limits, quotas and server errors
83
+ * are retryable with the same idempotency key; a key, sender or validation
84
+ * error is final. An unknown name is retryable only for a 5xx or a missing
85
+ * status.
80
86
  */
81
87
  export declare function resendFailure(error: ResendError): DeliveryResult;
82
88
  /**
83
89
  * Sends the email channel of `permdock/delivery` through Resend. The
84
90
  * idempotency key is Resend's `idempotencyKey`. The delivery id, key and
85
- * category travel as tags, so `resendWebhook` can join provider events to
86
- * the delivery. Two or more recipients go out through `batch.send`, up to
87
- * 100 per call. Throws a `TypeError` for a tag outside Resend's charset.
91
+ * category travel as tags, so `resendWebhook` can join provider events to the
92
+ * delivery. Two or more recipients go out through `batch.send`, up to 100 per
93
+ * call. Throws a `TypeError` for a tag outside Resend's charset.
88
94
  */
89
95
  export declare function resendTransport(resend: ResendClient, options?: ResendTransportOptions): EmailTransport;
90
96
  //#endregion
@@ -92,7 +98,7 @@ export declare function resendTransport(resend: ResendClient, options?: ResendTr
92
98
  /** The part of a `Resend` client the webhook calls; a `new Resend(key)` fits. */
93
99
  type ResendWebhookClient = {
94
100
  readonly webhooks: {
95
- verify(input: {
101
+ verify: (input: {
96
102
  readonly payload: string;
97
103
  readonly headers: {
98
104
  readonly id: string;
@@ -100,7 +106,7 @@ type ResendWebhookClient = {
100
106
  readonly signature: string;
101
107
  };
102
108
  readonly webhookSecret: string;
103
- }): unknown;
109
+ }) => unknown;
104
110
  };
105
111
  };
106
112
  type ResendWebhookOptions = {
@@ -116,10 +122,10 @@ type ResendWebhookOptions = {
116
122
  /**
117
123
  * A fetch handler for Resend webhooks. It verifies the Standard Webhooks
118
124
  * signature through `resend.webhooks.verify` (the `svix-*` and `webhook-*`
119
- * header names both work), claims the message id, and writes one delivery
120
- * event for `email.delivered`, `email.bounced`, `email.complained`,
121
- * `email.failed` and `email.suppressed`. A bad signature is a `401`; a sink
122
- * failure releases the claim and answers `503`, so Resend retries.
125
+ * header names both work), claims the message id, and writes one delivery event
126
+ * for `email.delivered`, `email.bounced`, `email.complained`, `email.failed`
127
+ * and `email.suppressed`. A bad signature is a `401`; a sink failure releases
128
+ * the claim and answers `503`, so Resend retries.
123
129
  */
124
130
  export declare function resendWebhook(options: ResendWebhookOptions): (request: Request) => Promise<Response>;
125
131
  //#endregion
@@ -1,14 +1,14 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { a as ownRecord } from "../paths-DXSHAMIa.js";
3
- import { o as statusProblem } from "../problem-details-cn5X30gZ.js";
4
- import { l as isRfc3339, p as nowSeconds } from "../time-DkWjdL98.js";
5
- import { n as sha256, t as bytesToBase64Url } from "../sha256-D9ihqmvd.js";
6
- import { t as deliveryEvent } from "../delivery-event-xX4obB8F.js";
7
- import { n as readBodyText } from "../body-text-QcXok_SI.js";
8
- import { a as methodNotAllowed, c as problemResponse } from "../problem-CTviyH5L.js";
9
- import { t as bodyTooLarge } from "../body-CH5of8Ne.js";
10
- import { n as approvalUrlFor } from "../approval-prompt-Dg5LeAcT.js";
11
- import { i as isDeliveryTarget } from "../target-Bw37TFNA.js";
2
+ import { a as ownRecord } from "../paths-CUvURzHp.js";
3
+ import { o as statusProblem } from "../problem-details-CLDgX1KV.js";
4
+ import { l as isRfc3339, p as nowSeconds } from "../time-nR1JesoH.js";
5
+ import { n as sha256, t as bytesToBase64Url } from "../sha256-C-4WXKIu.js";
6
+ import { t as deliveryEvent } from "../delivery-event-JioK5YbS.js";
7
+ import { n as readBodyText } from "../body-text-DQhcmqdY.js";
8
+ import { l as problemResponse, o as methodNotAllowed } from "../problem-BVLHFK33.js";
9
+ import { t as bodyTooLarge } from "../body-CJQwYVa8.js";
10
+ import { n as approvalUrlFor } from "../approval-prompt-B8hQY69x.js";
11
+ import { i as isDeliveryTarget } from "../target-qdEAnnhU.js";
12
12
  //#region src/resend/approval-email.ts
13
13
  const HTML_ESCAPES = {
14
14
  "&": "&amp;",
@@ -29,11 +29,11 @@ function requesterLine(prompt) {
29
29
  return actor === void 0 ? `Requested by ${principal}` : `Requested by ${principal} through ${actor.kind} ${actor.id}`;
30
30
  }
31
31
  /**
32
- * The default approval prompt email: an `approval`-category message whose
33
- * one link opens the app's approval page for the request. It carries no
34
- * approve or reject link; the signed-in approver decides on that page.
35
- * Throws a `TypeError` for an approval page that is not https. Replace it
36
- * with a React Email template by building the same `EmailMessage`.
32
+ * The default approval prompt email: an `approval`-category message whose one
33
+ * link opens the app's approval page for the request. It carries no approve or
34
+ * reject link; the signed-in approver decides on that page. Throws a
35
+ * `TypeError` for an approval page that is not https. Replace it with a React
36
+ * Email template by building the same `EmailMessage`.
37
37
  */
38
38
  function approvalEmail(prompt, options) {
39
39
  const url = approvalUrlFor(prompt, options.approvalUrl);
@@ -95,10 +95,10 @@ const FINAL = {
95
95
  validation_error: "rejected"
96
96
  };
97
97
  /**
98
- * The failure a Resend error name means. Rate limits, quotas and server
99
- * errors are retryable with the same idempotency key; a key, sender or
100
- * validation error is final. An unknown name is retryable only for a 5xx or
101
- * a missing status.
98
+ * The failure a Resend error name means. Rate limits, quotas and server errors
99
+ * are retryable with the same idempotency key; a key, sender or validation
100
+ * error is final. An unknown name is retryable only for a 5xx or a missing
101
+ * status.
102
102
  */
103
103
  function resendFailure(error) {
104
104
  const name = error.name;
@@ -183,9 +183,9 @@ async function sendBatch(resend, items, payloadOf) {
183
183
  /**
184
184
  * Sends the email channel of `permdock/delivery` through Resend. The
185
185
  * idempotency key is Resend's `idempotencyKey`. The delivery id, key and
186
- * category travel as tags, so `resendWebhook` can join provider events to
187
- * the delivery. Two or more recipients go out through `batch.send`, up to
188
- * 100 per call. Throws a `TypeError` for a tag outside Resend's charset.
186
+ * category travel as tags, so `resendWebhook` can join provider events to the
187
+ * delivery. Two or more recipients go out through `batch.send`, up to 100 per
188
+ * call. Throws a `TypeError` for a tag outside Resend's charset.
189
189
  */
190
190
  function resendTransport(resend, options = {}) {
191
191
  const tags = checkTags(options.tags ?? {});
@@ -285,9 +285,9 @@ function outcomeOf(type, data) {
285
285
  }
286
286
  }
287
287
  /**
288
- * The delivery event a verified Resend payload stands for, or `null` for
289
- * one that is not about a PermDock delivery: opens and clicks (tracking,
290
- * not delivery), sends, contact and domain events, and mail without the
288
+ * The delivery event a verified Resend payload stands for, or `null` for one
289
+ * that is not about a PermDock delivery: opens and clicks (tracking, not
290
+ * delivery), sends, contact and domain events, and mail without the
291
291
  * `permdock_delivery` and `permdock_key` tags.
292
292
  */
293
293
  function eventOf(payload, source) {
@@ -333,10 +333,10 @@ async function claim(replay, key) {
333
333
  /**
334
334
  * A fetch handler for Resend webhooks. It verifies the Standard Webhooks
335
335
  * signature through `resend.webhooks.verify` (the `svix-*` and `webhook-*`
336
- * header names both work), claims the message id, and writes one delivery
337
- * event for `email.delivered`, `email.bounced`, `email.complained`,
338
- * `email.failed` and `email.suppressed`. A bad signature is a `401`; a sink
339
- * failure releases the claim and answers `503`, so Resend retries.
336
+ * header names both work), claims the message id, and writes one delivery event
337
+ * for `email.delivered`, `email.bounced`, `email.complained`, `email.failed`
338
+ * and `email.suppressed`. A bad signature is a `401`; a sink failure releases
339
+ * the claim and answers `503`, so Resend retries.
340
340
  */
341
341
  function resendWebhook(options) {
342
342
  const source = options.source ?? "permdock";
@@ -0,0 +1,201 @@
1
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
2
+ import { c as listPermissions } from "./permission-registry-B8tYxPIt.js";
3
+ import { f as scopeList } from "./scopes-0Up_UA2t.js";
4
+ import { i as configError } from "./errors-Vpu6rKHl.js";
5
+ import "./budget-BELja5A9.js";
6
+ import "./sources-CMAM-2A3.js";
7
+ import { A as quoteQualified, D as qualified, I as scopeTypeOf, O as quoteIdent } from "./shared-Afctg7B0.js";
8
+ import { F as globalRoleRows, Q as graphSqlName, Z as graphHelper, _ as PERMISSION_HELPERS, at as memberForHelper, c as holderSources, ct as memberIdsHelper, dt as permittedForHelper, ft as permittedIdsHelper, ht as scopeTable, lt as memberOfHelper, nt as inheritedRowsHelper, o as graphPlan, pt as restrictedHelper, r as tableNames, rt as isTeamScope, tt as hasPermittedUsers, v as checkName, x as permittedByPermissionHelper } from "./tables-BqrxBCir.js";
9
+ import { t as FIELD_VIEWS } from "./fields-D0vUI6dq.js";
10
+ //#region src/cli/rls/permission-holders.ts
11
+ /**
12
+ * `permitted_<scope>_users(p_permission, p_id)`. Names are part of the SQL
13
+ * contract.
14
+ */
15
+ function permittedUsersHelper(scope) {
16
+ return checkName(`permitted_${scope}_users`);
17
+ }
18
+ /**
19
+ * The users with a membership row on the instance `p_id`, or `undefined` when
20
+ * the scope's memberships are not all in tables.
21
+ */
22
+ function candidatesSql(ctx, scope, user) {
23
+ const mapped = scopeTable(ctx, scope);
24
+ if (mapped !== void 0) return {
25
+ sql: ` select m.${quoteIdent(mapped.table.user)}::${user}
26
+ from ${quoteQualified(mapped.table.table)} m
27
+ where m.${quoteIdent(mapped.column)} = p_id`,
28
+ keys: []
29
+ };
30
+ const sources = holderSources(ctx, scope);
31
+ if (sources === void 0 || sources === "not-tables") return;
32
+ return {
33
+ sql: sources.map((source, index) => ` select h.user_id::${user}
34
+ from (
35
+ ${source.holders.rows(scope, { id: `v_key_${String(index)}` }).replaceAll(/^/gmu, " ")}
36
+ ) h`).join("\n union\n"),
37
+ keys: sources.map((source, index) => `v_key_${String(index)} ${source.holders.idType}`)
38
+ };
39
+ }
40
+ /**
41
+ * `language sql`, or PL/pgSQL when a source's id column needs `p_id` in a
42
+ * `%type` variable.
43
+ */
44
+ function functionBody(keys, query) {
45
+ if (keys.length === 0) return `language sql
46
+ stable
47
+ security definer
48
+ set search_path = ''
49
+ as $$
50
+ ${query}
51
+ $$;`;
52
+ return `language plpgsql
53
+ stable
54
+ security definer
55
+ set search_path = ''
56
+ as $$
57
+ declare
58
+ ${keys.map((key) => ` ${key} := p_id;`).join("\n")}
59
+ begin
60
+ return query
61
+ ${query.replaceAll(/^/gmu, " ")};
62
+ end
63
+ $$;`;
64
+ }
65
+ /**
66
+ * One `permitted_<scope>_users(p_permission, p_id)` per scope in `database`
67
+ * mode: the users who hold a permission key on one instance, read from the
68
+ * scope's membership rows and the global-roles table and kept when
69
+ * `permitted_<scope>_ids_by_permission_for` lists the instance or
70
+ * `permdock_has_permission_for` answers, so denies, custom roles, expiry and
71
+ * suspension apply as for the user. It names other users, so no client role may
72
+ * execute it, and a backend role needs its own grant.
73
+ */
74
+ function permissionHoldersSql(ctx) {
75
+ if (ctx.authorize !== "database") return "";
76
+ const user = ctx.dialect === "supabase" ? "uuid" : "text";
77
+ const global = globalRoleRows(ctx);
78
+ const hasFor = qualified(ctx, PERMISSION_HELPERS.hasFor);
79
+ return `${ctx.scopes.map(({ name }) => {
80
+ const candidates = hasPermittedUsers(ctx, name) ? candidatesSql(ctx, name, user) : void 0;
81
+ if (candidates === void 0) return `-- ${name}: no memberships table or table source, so permitted_${name}_users is not written`;
82
+ const fn = qualified(ctx, permittedUsersHelper(name));
83
+ const ids = qualified(ctx, checkName(`${permittedByPermissionHelper(name)}_for`));
84
+ const type = scopeTypeOf(ctx, name);
85
+ return `-- the users who hold a permission on one ${name}: its members and the global-role holders for whom the _for helpers answer; no client role may execute it
86
+ create or replace function ${fn}(p_permission text, p_id ${type})
87
+ returns setof ${user}
88
+ ${functionBody(candidates.keys, ` select c.user_id
89
+ from (
90
+ ${candidates.sql}
91
+ union
92
+ select ${global.userSql}::${user}
93
+ from ${global.from}
94
+ ) c(user_id)
95
+ where c.user_id is not null
96
+ and (
97
+ p_id in (select ${ids}(c.user_id, p_permission))
98
+ or ${hasFor}(c.user_id, p_permission)
99
+ )
100
+ order by 1`)}
101
+ revoke execute on function ${fn}(text, ${type}) from public, anon, authenticated;`;
102
+ }).join("\n\n")}\n`;
103
+ }
104
+ //#endregion
105
+ //#region src/cli/sql/resolve-names.ts
106
+ /** Postgres truncates a longer identifier, so two helpers could share one name. */
107
+ const MAX_IDENTIFIER_BYTES = 63;
108
+ const IDENTIFIER = /^[a-z_][a-z0-9_]*$/u;
109
+ function scopeNames(name) {
110
+ return {
111
+ permittedIds: permittedIdsHelper(name),
112
+ permittedIdsFor: permittedForHelper(name),
113
+ memberIds: memberIdsHelper(name),
114
+ memberIdsFor: memberForHelper(name),
115
+ ...isTeamScope(name) ? { memberIdsOf: memberOfHelper(name) } : {},
116
+ permittedUsers: permittedUsersHelper(name)
117
+ };
118
+ }
119
+ function rowHelperSet(setting, resources) {
120
+ if (setting === void 0) return /* @__PURE__ */ new Set();
121
+ return new Set(setting === true ? resources : setting);
122
+ }
123
+ function baseName(table) {
124
+ return table.startsWith("public.") ? table.slice(7) : table.replaceAll(".", "_");
125
+ }
126
+ function resourceNames(resource, input) {
127
+ const sql = graphSqlName(resource);
128
+ const { table } = input;
129
+ return {
130
+ ...table === void 0 ? {} : { table },
131
+ ...input.graph && sql !== void 0 ? {
132
+ permittedIds: graphHelper(resource),
133
+ restricted: restrictedHelper(resource)
134
+ } : {},
135
+ ...input.rows && sql !== void 0 ? {
136
+ rows: inheritedRowsHelper(resource),
137
+ row: `permitted_${sql}_row`
138
+ } : {},
139
+ ...input.fields && table !== void 0 ? {
140
+ visible: `${table}${FIELD_VIEWS.view}`,
141
+ visibleFields: `${baseName(table)}${FIELD_VIEWS.companion}`,
142
+ mask: `${baseName(table)}${FIELD_VIEWS.mask}`
143
+ } : {}
144
+ };
145
+ }
146
+ /**
147
+ * Rejects a helper that is not a lowercase SQL identifier or is longer than
148
+ * Postgres keeps, and two sources that resolve to the same helper.
149
+ */
150
+ function checkNames(names) {
151
+ const owners = /* @__PURE__ */ new Map();
152
+ const claim = (name, owner) => {
153
+ if (!IDENTIFIER.test(name)) throw configError(`PermDock CLI: ${owner} names the SQL helper '${name}', which is not a lowercase SQL identifier`);
154
+ if (new TextEncoder().encode(name).length > MAX_IDENTIFIER_BYTES) throw configError(`PermDock CLI: ${owner} names the SQL helper '${name}', longer than the ${String(MAX_IDENTIFIER_BYTES)} bytes Postgres keeps; shorten the name`);
155
+ const other = owners.get(name);
156
+ if (other !== void 0 && other !== owner) throw configError(`PermDock CLI: ${other} and ${owner} both name the SQL helper '${name}'; rename one of them`);
157
+ owners.set(name, owner);
158
+ };
159
+ for (const [scope, helpers] of Object.entries(names.scopes)) for (const name of Object.values(helpers)) claim(name, `scope '${scope}'`);
160
+ for (const [resource, helpers] of Object.entries(names.resources)) {
161
+ const { table: _table, visible: _visible, ...functions } = helpers;
162
+ for (const name of Object.values(functions)) claim(name, `resource '${resource}'`);
163
+ }
164
+ }
165
+ /**
166
+ * The SQL names `policy` and `config` give the generated RLS, frozen. Throws
167
+ * `config_invalid` for a helper name Postgres cannot hold or two sources
168
+ * sharing one.
169
+ */
170
+ function resolveNames(policy, config, options = {}) {
171
+ const rls = config.rls;
172
+ const scopes = scopeList(policy.scopes);
173
+ const resources = [.../* @__PURE__ */ new Set([...listPermissions(policy.vocabulary.permissions).map((leaf) => leaf.resource), ...policy.resources.keys()])];
174
+ const graph = graphPlan(policy);
175
+ const tables = tableNames(rls?.tables) ?? {};
176
+ const rows = rowHelperSet(rls?.rowHelpers, resources);
177
+ const team = scopes.find((scope) => isTeamScope(scope.name));
178
+ const names = {
179
+ schema: options.schema ?? rls?.schema ?? rls?.rbac?.schema ?? "permdock",
180
+ gucPrefix: options.gucPrefix ?? rls?.gucPrefix ?? "app",
181
+ claims: {
182
+ tenant: options.tenantClaim ?? rls?.tenantClaim ?? "tenant_id",
183
+ role: rls?.roleClaim ?? "user_role"
184
+ },
185
+ ...team === void 0 ? {} : { teamScope: team.name },
186
+ scopes: Object.fromEntries(scopes.map((scope) => [scope.name, scopeNames(scope.name)])),
187
+ resources: Object.fromEntries(resources.flatMap((resource) => {
188
+ const entry = resourceNames(resource, {
189
+ table: tables[resource],
190
+ graph: graph.has(resource),
191
+ rows: rows.has(resource),
192
+ fields: rls?.fields !== void 0
193
+ });
194
+ return Object.keys(entry).length === 0 ? [] : [[resource, entry]];
195
+ }))
196
+ };
197
+ checkNames(names);
198
+ return freezeDeep(names);
199
+ }
200
+ //#endregion
201
+ export { permissionHoldersSql as n, permittedUsersHelper as r, resolveNames as t };
@@ -1,4 +1,4 @@
1
- import { t as assertSafeKey } from "./paths-DXSHAMIa.js";
1
+ import { t as assertSafeKey } from "./paths-CUvURzHp.js";
2
2
  //#region src/core/resource-relations.ts
3
3
  /** The edge's group resources with their relation and id column. */
4
4
  function groupEntries(spec) {
@@ -35,8 +35,8 @@ function isComputedRelation(relation) {
35
35
  return relation !== void 0 && !("field" in relation) && !("edge" in relation) && !("principal" in relation);
36
36
  }
37
37
  /**
38
- * The relations whose holders hold `name` on `node`: `name` itself when it
39
- * has a source, then everything it includes, transitively, each once.
38
+ * The relations whose holders hold `name` on `node`: `name` itself when it has
39
+ * a source, then everything it includes, transitively, each once.
40
40
  * `definePermissions` rejects cycles and unknown names, so this terminates.
41
41
  */
42
42
  function expandRelation(node, name) {
@@ -53,12 +53,18 @@ function expandRelation(node, name) {
53
53
  visit(name);
54
54
  return out;
55
55
  }
56
- /** Whether `node` names itself as its parent (nested folders, sub-teams, reporting lines). */
56
+ /**
57
+ * Whether `node` names itself as its parent (nested folders, sub-teams,
58
+ * reporting lines).
59
+ */
57
60
  function isSelfParented(node) {
58
61
  return node?.parent !== void 0 && node.parent.resource === node.name;
59
62
  }
60
63
  const RESOURCE_NAME = /^[A-Za-z][A-Za-z0-9_-]*$/u;
61
- /** Level names ride claims and grant keys (`key@level`), so they stay SQL- and claim-safe. */
64
+ /**
65
+ * Level names ride claims and grant keys (`key@level`), so they stay SQL- and
66
+ * claim-safe.
67
+ */
62
68
  const LEVEL_NAME = /^[a-z][a-z0-9_]*$/u;
63
69
  const EDGE_TABLE = /^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)?$/u;
64
70
  function restrictedStopsOf(name, option, parent, links) {
@@ -143,7 +149,7 @@ function normaliseMatch(label, match) {
143
149
  for (const column of columns) {
144
150
  assertSafeKey(column, "edge match column");
145
151
  const value = match[column];
146
- if (typeof value !== "string" && typeof value !== "boolean" && !(typeof value === "number" && Number.isFinite(value))) throw new Error(`PermDock: ${label} match '${column}' must be a string, a finite number or a boolean`);
152
+ if (typeof value !== "string" && typeof value !== "boolean" && !(typeof value === "number" && Number.isFinite(value))) throw new TypeError(`PermDock: ${label} match '${column}' must be a string, a finite number or a boolean`);
147
153
  out[column] = value;
148
154
  }
149
155
  return out;
@@ -183,7 +189,10 @@ function normaliseGroups(label, groups) {
183
189
  ...groups.direct === void 0 ? {} : { direct: groups.direct }
184
190
  };
185
191
  }
186
- /** An included relation must exist on the same resource, be tenancy-free and never include itself back. */
192
+ /**
193
+ * An included relation must exist on the same resource, be tenancy-free and
194
+ * never include itself back.
195
+ */
187
196
  function assertIncludes(node) {
188
197
  const state = /* @__PURE__ */ new Map();
189
198
  const visit = (name, path) => {
@@ -210,8 +219,8 @@ function assertGroupTarget(registry, node, relationName, spec, target, targetRel
210
219
  /**
211
220
  * Links and group targets name declared resources and relations. Groups may
212
221
  * nest within one resource (teams in teams) through the same relation, which
213
- * then includes nothing, so SQL can walk it with one bounded recursive query;
214
- * a group cycle across resources is rejected.
222
+ * then includes nothing, so SQL can walk it with one bounded recursive query; a
223
+ * group cycle across resources is rejected.
215
224
  */
216
225
  function assertGraphTargets(registry) {
217
226
  const edges = /* @__PURE__ */ new Map();
@@ -1,6 +1,6 @@
1
- import { r as escapeSqlIdent } from "./sql-B96movIM.js";
2
- import { a as RETIRE_MARKER } from "./markers-C6joDI3o.js";
3
- import { r as tableKey } from "./deciding-columns-DRo2QM6E.js";
1
+ import { r as escapeSqlIdent } from "./sql-0WjxIp9g.js";
2
+ import { a as RETIRE_MARKER } from "./markers-BeHZ4x9Q.js";
3
+ import { r as tableKey } from "./deciding-columns-NB4wcyBf.js";
4
4
  //#region src/cli/rls/retire.ts
5
5
  const IDENT = String.raw`(?:"[^"]+"|[A-Za-z_][\w$]*)`;
6
6
  const NAME = String.raw`(${IDENT}(?:\s*\.\s*${IDENT})?)`;
@@ -139,7 +139,10 @@ function replay(statements) {
139
139
  }
140
140
  return schema;
141
141
  }
142
- /** Functions that write `table`, the configured `refresh` ones, and every function that calls one. */
142
+ /**
143
+ * Functions that write `table`, the configured `refresh` ones, and every
144
+ * function that calls one.
145
+ */
143
146
  function refreshFunctions(schema, table, configured) {
144
147
  const writes = writesPattern(table);
145
148
  const found = new Set(configured.map(key));
@@ -155,7 +158,10 @@ function refreshFunctions(schema, table, configured) {
155
158
  }
156
159
  return found;
157
160
  }
158
- /** Calls of a legacy helper outside its own definition, grants and drops (PD056). */
161
+ /**
162
+ * Calls of a legacy helper outside its own definition, grants and drops
163
+ * (PD056).
164
+ */
159
165
  function legacyHelperCalls(statements, name) {
160
166
  const own = new RegExp(String.raw`^\s*(?:create\s+(?:or\s+replace\s+)?function|drop\s+function|revoke|grant|alter\s+function|comment\s+on\s+function)\b[^(]*?(?:^|[\s."])${name}"?\s*\(`, "iu");
161
167
  const call = new RegExp(String.raw`(?<![\w$])(?:(?:"[^"]+"|\w+)\s*\.\s*)?"?${name}"?\s*\(`, "giu");
@@ -224,7 +230,10 @@ function retirePlan(statements, config) {
224
230
  function escapeQualifiedName(name) {
225
231
  return name.split(".").map((part) => escapeSqlIdent(part)).join(".");
226
232
  }
227
- /** The retire migration: each present table without readers, its refresh triggers and functions, and the uncalled helpers. */
233
+ /**
234
+ * The retire migration: each present table without readers, its refresh
235
+ * triggers and functions, and the uncalled helpers.
236
+ */
228
237
  function retireSql(plan) {
229
238
  const tables = plan.tables.filter((table) => table.present && table.readers.length === 0);
230
239
  if (tables.length === 0) return;
@@ -3,7 +3,10 @@ type RevocationEvent = {
3
3
  readonly principal: string;
4
4
  readonly session?: string;
5
5
  readonly tenant?: string;
6
- /** `session-revoked` ends a connection; `changed` makes it re-resolve its subject. */
6
+ /**
7
+ * `session-revoked` ends a connection; `changed` makes it re-resolve its
8
+ * subject.
9
+ */
7
10
  readonly kind: "session-revoked" | "changed";
8
11
  };
9
12
  type RevocationListener = (event: RevocationEvent) => void;
@@ -14,8 +17,8 @@ type RevocationListener = (event: RevocationEvent) => void;
14
17
  type RevocationFeed = {
15
18
  /** Names the implementation in errors and events. */
16
19
  readonly name?: string;
17
- subscribe(listener: RevocationListener): () => void;
18
- revoke(event: RevocationEvent): void | Promise<void>;
20
+ subscribe: (listener: RevocationListener) => () => void;
21
+ revoke: (event: RevocationEvent) => void | Promise<void>;
19
22
  };
20
23
  /** In-process feed; a multi-replica app bridges `revoke` to its own pub/sub. */
21
24
  declare function memoryRevocationFeed(): RevocationFeed;
@@ -1,13 +1,16 @@
1
- import { c as missingInput } from "./errors-DpP_U6Bf.js";
1
+ import { c as missingInput } from "./errors-Vpu6rKHl.js";
2
2
  import { t as defineLeaf } from "./command-L8EstFNm.js";
3
- import { c as given, d as policyFlag, f as validatorFlag, i as dryRunFlag, l as outFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-aaeRAdiD.js";
3
+ import { c as given, d as policyFlag, f as validatorFlag, i as dryRunFlag, l as outFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-DXjoTVbS.js";
4
4
  //#region src/cli/commands/rls.ts
5
5
  const membershipsFlag = { memberships: {
6
6
  type: "string",
7
7
  description: "Membership table as <table>:tenant,user,role",
8
8
  valueHint: "table"
9
9
  } };
10
- /** The flags that shape the generated SQL; verify --introspect and migrate take them too. */
10
+ /**
11
+ * The flags that shape the generated SQL; verify --introspect and migrate take
12
+ * them too.
13
+ */
11
14
  const shapeFlags = {
12
15
  target: {
13
16
  type: "enum",
@@ -141,7 +144,10 @@ const SHAPE_DEFAULTS = {
141
144
  schemas: void 0,
142
145
  "db-url-stdin": false
143
146
  };
144
- /** Every RlsRunInput field at its "not given" value, with the shape flags applied. */
147
+ /**
148
+ * Every RlsRunInput field at its "not given" value, with the shape flags
149
+ * applied.
150
+ */
145
151
  async function rlsInput(ctx, verb, shape, options) {
146
152
  return {
147
153
  cwd: ctx.cwd,
@@ -186,7 +192,7 @@ async function rlsInput(ctx, verb, shape, options) {
186
192
  };
187
193
  }
188
194
  async function runRls(input) {
189
- return (await import("./rls-CxBZb4rZ.js")).runRls(input);
195
+ return (await import("./rls-Cx0dtsB7.js")).runRls(input);
190
196
  }
191
197
  const generate = defineLeaf({
192
198
  flags: {
@@ -209,7 +215,8 @@ const generate = defineLeaf({
209
215
  valueHint: "parts",
210
216
  list: true,
211
217
  async complete() {
212
- return (await import("./output-files-DPAY7-GX.js")).SPLIT_PARTS;
218
+ const { SPLIT_PARTS } = await import("./output-files-BHOIlrfD.js");
219
+ return SPLIT_PARTS;
213
220
  }
214
221
  },
215
222
  "grants-out": {