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,6 +1,10 @@
1
- import { a as CatalogDocument, d as CatalogRole, f as CatalogScope, l as CatalogPermission, m as CatalogUsage, n as CatalogApproval, p as CatalogSupportAccess, r as CatalogBreakGlass, t as CatalogActivation, u as CatalogResource } from "../types-BXMYB7BY.js";
2
- import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-BbcY9r_4.js";
3
- import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMemberships, g as RlsTarget, h as RlsSuspension, i as PermDockConfig, l as RlsDialect, m as RlsSuspendedScope, n as CliIo, o as RlsActiveRow, p as RlsSuspendedMembership, r as CollectConfig, s as RlsApiKeys, t as CatalogConfig, u as RlsFunctionMapping } from "../types-BWZybqs9.js";
1
+ import { T as Policy } from "../policy-types-DGIO_gxq.js";
2
+ import { f as PermissionTree } from "../permission-types-CAY-GU7e.js";
3
+ import { o as OperationMap } from "../operations-Ci_rT6Uo.js";
4
+ import { a as CatalogDocument, d as CatalogRole, f as CatalogScope, l as CatalogPermission, m as CatalogUsage, n as CatalogApproval, p as CatalogSupportAccess, r as CatalogBreakGlass, t as CatalogActivation, u as CatalogResource } from "../types-ZzRGoViD.js";
5
+ import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-CryQheKq.js";
6
+ import { _ as RlsSuspension, a as GenKind, c as RlsActiveRow, d as RlsDialect, f as RlsFunctionMapping, g as RlsSuspendedScope, h as RlsSuspendedMembership, i as GenConfig, l as RlsApiKeys, m as RlsMemberships, n as CliIo, o as PermDockConfig, p as RlsMembershipTable, r as CollectConfig, t as CatalogConfig, u as RlsConfig, v as RlsTarget, y as RunResult } from "../types-CzOeVvcC.js";
7
+ import { o as ResourceNameOf, r as PermissionKeyOf, s as ScopeNameOf, t as ActionNameOf } from "../type-helpers-c7Xo_2Cu.js";
4
8
  //#region src/cli/catalog-path.d.ts
5
9
  /**
6
10
  * The absolute path `permdock collect` writes the catalog to: `collect.out`,
@@ -9,8 +13,79 @@ import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMember
9
13
  */
10
14
  export declare function catalogPath(config: PermDockConfig, cwd: string, out?: string): string;
11
15
  //#endregion
16
+ //#region src/cli/project/config-checks.d.ts
17
+ /**
18
+ * What `defineConfig` accepts: `policy`, `permissions` and `operations` take
19
+ * the imported value or its module path. A value types the keys below it; the
20
+ * CLI reads it from the module the config file imports it from.
21
+ */
22
+ type PermDockConfigInput = Omit<PermDockConfig, "policy" | "permissions" | "operations"> & {
23
+ readonly policy?: string | Policy;
24
+ readonly permissions?: string | PermissionTree;
25
+ readonly operations?: string | OperationMap;
26
+ };
27
+ type At<T, K extends PropertyKey> = T extends { readonly [P in K]?: infer V; } ? NonNullable<V> : never;
28
+ type KeysAt<T, K extends PropertyKey> = keyof At<T, K> & string;
29
+ /** `never` on every key of `T` outside `Allowed`, so a stray key fails. */
30
+ type Only<Keys extends string, Allowed> = { readonly [K in Exclude<Keys, Allowed>]?: never; };
31
+ /** The pattern itself when a `{name}` segment names no scope in `S`. */
32
+ type StrayPlaceholder<Pattern extends string, S> = Pattern extends `${string}{${infer Name}}${infer Rest}` ? Name extends S ? StrayPlaceholder<Rest, S> : Pattern : never;
33
+ type BadTopics<Topics extends string, S> = { readonly [K in Topics as StrayPlaceholder<K, S> extends never ? never : K]?: never; };
34
+ type KeepEntry<P> = PermissionKeyOf<P> | {
35
+ readonly key: string;
36
+ };
37
+ type BucketChecks<C, P> = { readonly [B in KeysAt<At<At<C, "rls">, "storage">, "buckets">]?: {
38
+ readonly scope?: ScopeNameOf<P>;
39
+ }; };
40
+ type SuspensionChecks<C, P> = {
41
+ readonly scopes?: Only<KeysAt<At<At<C, "rls">, "suspension">, "scopes">, ScopeNameOf<P>> & { readonly [S in ScopeNameOf<P>]?: {
42
+ readonly keep?: readonly KeepEntry<P>[];
43
+ }; };
44
+ readonly memberships?: {
45
+ readonly keep?: readonly KeepEntry<P>[];
46
+ };
47
+ };
48
+ type RlsChecks<C, P> = {
49
+ readonly tables?: Only<KeysAt<At<C, "rls">, "tables">, ResourceNameOf<P>>;
50
+ readonly scopeTypes?: Only<KeysAt<At<C, "rls">, "scopeTypes">, ScopeNameOf<P>>;
51
+ readonly actions?: Only<KeysAt<At<C, "rls">, "actions">, ActionNameOf<P>>;
52
+ readonly memberships?: {
53
+ readonly scopes?: Only<KeysAt<At<At<C, "rls">, "memberships">, "scopes">, ScopeNameOf<P>>;
54
+ };
55
+ readonly suspension?: SuspensionChecks<C, P>;
56
+ readonly customRoleWrites?: {
57
+ readonly requires?: "manageRoles" | readonly PermissionKeyOf<P>[];
58
+ };
59
+ readonly realtime?: {
60
+ readonly topics?: BadTopics<KeysAt<At<At<C, "rls">, "realtime">, "topics">, ScopeNameOf<P>>;
61
+ };
62
+ readonly storage?: {
63
+ readonly buckets?: BucketChecks<C, P>;
64
+ };
65
+ };
66
+ type PolicyOf<C> = C extends {
67
+ readonly policy: infer P;
68
+ } ? P extends Policy ? P : never : never;
69
+ /**
70
+ * The checks a policy value adds to its config: resource, scope, action and
71
+ * permission names in the keys that name them, and `{scope}` placeholders in
72
+ * Realtime topics. Without a policy value, nothing.
73
+ */
74
+ type ConfigChecks<C> = [PolicyOf<C>] extends [never] ? unknown : {
75
+ readonly rls?: RlsChecks<C, PolicyOf<C>>;
76
+ readonly powersync?: {
77
+ readonly resources?: readonly ResourceNameOf<PolicyOf<C>>[];
78
+ readonly action?: ActionNameOf<PolicyOf<C>>;
79
+ };
80
+ };
81
+ //#endregion
12
82
  //#region src/cli/project/config.d.ts
13
- export declare function defineConfig<T extends PermDockConfig>(config: T): T;
83
+ /**
84
+ * Types a `permdock.config.ts`. Pass the `policy` value rather than its path,
85
+ * and resource, scope, action and permission names in the config are checked
86
+ * against it.
87
+ */
88
+ export declare function defineConfig<const C extends PermDockConfigInput>(config: C & ConfigChecks<C>): C;
14
89
  //#endregion
15
90
  //#region src/cli/sql/markers.d.ts
16
91
  /** The first line of a hook migration `permdock supabase hook generate` wrote. */
@@ -41,8 +116,8 @@ export declare function parseGrantsMarker(sql: string): SupabaseGrantsMarker | u
41
116
  //#region src/cli/token-schemas.d.ts
42
117
  /**
43
118
  * `schemas/run-v1.json`: the claims of a `vnd.permdock.run+jwt`, as
44
- * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown
45
- * claims are allowed; `parseRunTicket` drops them.
119
+ * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown claims
120
+ * are allowed; `parseRunTicket` drops them.
46
121
  */
47
122
  export declare const RUN_TICKET_SCHEMA: Readonly<Record<string, unknown>>;
48
123
  /**
@@ -57,4 +132,4 @@ export declare function run(argv: readonly string[], options?: {
57
132
  readonly io?: CliIo;
58
133
  }): Promise<RunResult>;
59
134
  //#endregion
60
- export { type CatalogActivation, type CatalogApproval, type CatalogBreakGlass, type CatalogConfig, type CatalogDocument, type CatalogPermission, type CatalogResource, type CatalogRole, type CatalogScope, type CatalogSupportAccess, type CatalogUsage, type CollectConfig, PUSHED_POLICY_SCHEMA, type PermDockConfig, type PushedGrant, type PushedPolicy, type RlsActiveRow, type RlsApiKeys, type RlsConfig, type RlsDialect, type RlsFunctionMapping, type RlsMembershipTable, type RlsMemberships, type RlsSuspendedMembership, type RlsSuspendedScope, type RlsSuspension, type RlsTarget, type RunResult, type SupabaseGrantsMarker, type SupabaseHookMarker, parsePushedPolicy, pushedPolicy };
135
+ export { type CatalogActivation, type CatalogApproval, type CatalogBreakGlass, type CatalogConfig, type CatalogDocument, type CatalogPermission, type CatalogResource, type CatalogRole, type CatalogScope, type CatalogSupportAccess, type CatalogUsage, type CollectConfig, type ConfigChecks, type GenConfig, type GenKind, PUSHED_POLICY_SCHEMA, type PermDockConfig, type PermDockConfigInput, type PushedGrant, type PushedPolicy, type RlsActiveRow, type RlsApiKeys, type RlsConfig, type RlsDialect, type RlsFunctionMapping, type RlsMembershipTable, type RlsMemberships, type RlsSuspendedMembership, type RlsSuspendedScope, type RlsSuspension, type RlsTarget, type RunResult, type SupabaseGrantsMarker, type SupabaseHookMarker, parsePushedPolicy, pushedPolicy };
package/dist/cli/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { t as catalogPath } from "../catalog-path-CnI0XTFK.js";
2
- import { t as defineConfig } from "../config-CoQHDrDi.js";
3
- import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-CmYeSQqq.js";
4
- import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-C6joDI3o.js";
5
- import { t as run } from "../run-uLD2aWuO.js";
2
+ import { t as defineConfig } from "../config-BwPBfN0t.js";
3
+ import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-CDuOL2de.js";
4
+ import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-BeHZ4x9Q.js";
5
+ import { t as run } from "../run-PbRlXTfh.js";
6
6
  //#region src/cli/token-schemas.ts
7
7
  const ID = {
8
8
  type: "string",
@@ -20,8 +20,8 @@ const AUDIENCE = { anyOf: [ID, {
20
20
  }] };
21
21
  /**
22
22
  * `schemas/run-v1.json`: the claims of a `vnd.permdock.run+jwt`, as
23
- * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown
24
- * claims are allowed; `parseRunTicket` drops them.
23
+ * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown claims
24
+ * are allowed; `parseRunTicket` drops them.
25
25
  */
26
26
  const RUN_TICKET_SCHEMA = {
27
27
  $schema: "https://json-schema.org/draft/2020-12/schema",
@@ -1,11 +1,11 @@
1
1
  //#region src/core/clients.d.ts
2
2
  /**
3
3
  * Stable names for OAuth clients whose ids differ per environment or are
4
- * assigned at dynamic registration. A record maps each name to the client
5
- * id (or ids) it stands for; an unset id (an environment variable that is
6
- * not defined) names nothing. A function maps a verified client id to a
7
- * name, or `undefined`. Policy delegations name the client (`to: { kind,
8
- * client }`), never its id.
4
+ * assigned at dynamic registration. A record maps each name to the client id
5
+ * (or ids) it stands for; an unset id (an environment variable that is not
6
+ * defined) names nothing. A function maps a verified client id to a name, or
7
+ * `undefined`. Policy delegations name the client (`to: { kind, client }`),
8
+ * never its id.
9
9
  */
10
10
  type ClientNames = Readonly<Record<string, string | readonly string[] | undefined>> | ((clientId: string) => string | undefined);
11
11
  //#endregion
@@ -1,8 +1,8 @@
1
1
  //#region src/core/clients.ts
2
2
  /**
3
- * The name `clients` gives `clientId`, or `undefined`: unknown ids, an id
4
- * two names claim, a function that throws or returns anything but a
5
- * non-empty string. Never throws.
3
+ * The name `clients` gives `clientId`, or `undefined`: unknown ids, an id two
4
+ * names claim, a function that throws or returns anything but a non-empty
5
+ * string. Never throws.
6
6
  */
7
7
  function clientNameOf(clients, clientId) {
8
8
  if (clients === void 0 || clientId === "") return;
@@ -1,11 +1,11 @@
1
- import { $t as CredentialEvent, Qt as AutomationEvent, Rt as Instant, Xt as AccessEvent, en as DecisionEvent, in as DirectoryEvent, nn as DeliveryEvent, on as MembershipEvent, tn as DeliveryChannel, ut as TokenSigner } from "../policy-types-B-F-qAZk.js";
2
- import { m as ApprovalStore } from "../types-DC44-hqb.js";
3
- import { i as CatalogEventData, l as CloudEventType, r as CLOUD_EVENT_TYPES, s as CloudEvent } from "../sink-Cp_Eot9W.js";
4
- import { c as DeliveryTransport } from "../types-g7Oy6Zg4.js";
5
- import { a as CloudConnectionOptions, c as CloudOptions, i as CloudClient, l as CloudSignerOptions, n as CloudCatalog, o as CloudEndpointOptions, r as CloudCatalogPush, s as CloudEndpoints, t as CloudApproverOptions } from "../types-DBHftjgS.js";
6
- import { n as ApprovalWaiter } from "../waiter-DwEyouan.js";
7
- import { l as ReplayStore } from "../types-cTos-H7p.js";
8
- import { f as WebhookVerifier, r as WebhookFailureCause$1, s as WebhookJwks } from "../standard-webhooks-B_qRg0ws.js";
1
+ import { Wt as Instant, an as CredentialEvent, cn as DeliveryEvent, fn as MembershipEvent, in as AutomationEvent, mt as TokenSigner, nn as AccessEvent, on as DecisionEvent, sn as DeliveryChannel, un as DirectoryEvent } from "../policy-types-DGIO_gxq.js";
2
+ import { m as ApprovalStore } from "../types-DLvhVm1r.js";
3
+ import { i as CatalogEventData, l as CloudEventType, r as CLOUD_EVENT_TYPES, s as CloudEvent } from "../sink-B5zoUW_O.js";
4
+ import { c as DeliveryTransport } from "../types-CN0LsqbK.js";
5
+ import { a as CloudConnectionOptions, c as CloudOptions, i as CloudClient, l as CloudSignerOptions, n as CloudCatalog, o as CloudEndpointOptions, r as CloudCatalogPush, s as CloudEndpoints, t as CloudApproverOptions } from "../types-BB-zWDcR.js";
6
+ import { n as ApprovalWaiter } from "../waiter-CqUKX6CY.js";
7
+ import { l as ReplayStore } from "../types-DsHGPtkR.js";
8
+ import { f as WebhookVerifier, r as WebhookFailureCause$1, s as WebhookJwks } from "../standard-webhooks-DOYEuOLx.js";
9
9
  //#region src/cloud/base-url.d.ts
10
10
  /**
11
11
  * The one base URL of PermDock Cloud. The platform issuer is this URL; its
@@ -19,16 +19,16 @@ type CloudScope = "projects:read" | "policy:read" | "catalog:write" | "evidence:
19
19
  //#region src/cloud/request.d.ts
20
20
  /**
21
21
  * The environment URL and JWK Set URL `cloud()` uses when the environment is
22
- * configured: `environment`, else `PERMDOCK_CLOUD_ENV`. Throws when neither
23
- * is set; `resolveCloudEndpoints` then asks the Cloud which environment the
24
- * key belongs to.
22
+ * configured: `environment`, else `PERMDOCK_CLOUD_ENV`. Throws when neither is
23
+ * set; `resolveCloudEndpoints` then asks the Cloud which environment the key
24
+ * belongs to.
25
25
  */
26
26
  export declare function cloudEndpoints(options?: CloudEndpointOptions): CloudEndpoints;
27
27
  /**
28
- * The environment URL and JWK Set URL for a key: `cloudEndpoints(options)`
29
- * when the environment is configured, else the environment `GET
30
- * /v1/environment` names for `key` (`PERMDOCK_CLOUD_KEY`). Rejects when the
31
- * Cloud does not answer or answers another issuer.
28
+ * The environment URL and JWK Set URL for a key: `cloudEndpoints(options)` when
29
+ * the environment is configured, else the environment `GET /v1/environment`
30
+ * names for `key` (`PERMDOCK_CLOUD_KEY`). Rejects when the Cloud does not
31
+ * answer or answers another issuer.
32
32
  */
33
33
  export declare function resolveCloudEndpoints(options?: CloudConnectionOptions): Promise<CloudEndpoints>;
34
34
  //#endregion
@@ -39,9 +39,15 @@ export declare function cloud(options?: CloudOptions): CloudClient;
39
39
  type CloudOAuthOptions = {
40
40
  /** The client id the dashboard issued, or one from `/oauth/register`. */
41
41
  readonly clientId: string;
42
- /** Registered with the client; the Cloud redirects here with `code` and `state`. */
42
+ /**
43
+ * Registered with the client; the Cloud redirects here with `code` and
44
+ * `state`.
45
+ */
43
46
  readonly redirectUri: string;
44
- /** A confidential client's secret, sent as `client_secret_basic` (RFC 6749 section 2.3.1). Server-only. */
47
+ /**
48
+ * A confidential client's secret, sent as `client_secret_basic` (RFC 6749
49
+ * section 2.3.1). Server-only.
50
+ */
45
51
  readonly clientSecret?: string;
46
52
  /** The Cloud base URL and platform issuer; defaults to `CLOUD_BASE_URL`. */
47
53
  readonly url?: string;
@@ -51,7 +57,10 @@ type CloudOAuthOptions = {
51
57
  /** The clock `expires_at` is computed from; defaults to the system clock. */
52
58
  readonly now?: () => Instant;
53
59
  };
54
- /** A token response, with RFC 6749 field names; `expires_at` is seconds since the epoch. */
60
+ /**
61
+ * A token response, with RFC 6749 field names; `expires_at` is seconds since
62
+ * the epoch.
63
+ */
55
64
  type CloudCredential = {
56
65
  readonly access_token: string;
57
66
  readonly token_type?: string;
@@ -59,14 +68,20 @@ type CloudCredential = {
59
68
  readonly refresh_token?: string;
60
69
  readonly scope?: string;
61
70
  };
62
- /** A started authorization. Keep `state` and `codeVerifier` server-side until the callback. */
71
+ /**
72
+ * A started authorization. Keep `state` and `codeVerifier` server-side until
73
+ * the callback.
74
+ */
63
75
  type CloudAuthorization = {
64
76
  /** Where to send the browser. */
65
77
  readonly url: string;
66
78
  readonly state: string;
67
79
  readonly codeVerifier: string;
68
80
  };
69
- /** `GET /v1/projects` item. A project is one environment: `id` is the `{env}` of `/v1/environments/{env}`. */
81
+ /**
82
+ * `GET /v1/projects` item. A project is one environment: `id` is the `{env}` of
83
+ * `/v1/environments/{env}`.
84
+ */
70
85
  type CloudProject = {
71
86
  readonly id: string;
72
87
  readonly name: string;
@@ -93,8 +108,8 @@ type CloudOAuthClient = {
93
108
  }) => Promise<CloudAuthorization>;
94
109
  /**
95
110
  * Redeems the callback URL. Throws `state-mismatch` unless it echoes
96
- * `pending.state`, `issuer-mismatch` for an RFC 9207 `iss` of another
97
- * server, and `authorization-denied` for an `error` or a missing `code`.
111
+ * `pending.state`, `issuer-mismatch` for an RFC 9207 `iss` of another server,
112
+ * and `authorization-denied` for an `error` or a missing `code`.
98
113
  */
99
114
  readonly exchangeCode: (callback: string | URL, pending: Pick<CloudAuthorization, "state" | "codeVerifier">) => Promise<CloudCredential>;
100
115
  readonly refresh: (refreshToken: string) => Promise<CloudCredential>;
@@ -115,12 +130,18 @@ type CloudAuthErrorCode = "discovery-failed" | "state-mismatch" | "issuer-mismat
115
130
  type CloudAuthErrorDetails = {
116
131
  /** The HTTP status, when the Cloud answered. */
117
132
  readonly status?: number;
118
- /** The RFC 6749 or RFC 6750 `error` the Cloud sent (`invalid_grant`, `insufficient_scope`). */
133
+ /**
134
+ * The RFC 6749 or RFC 6750 `error` the Cloud sent (`invalid_grant`,
135
+ * `insufficient_scope`).
136
+ */
119
137
  readonly error?: string;
120
138
  /** The scope an `insufficient_scope` challenge names. */
121
139
  readonly scope?: string;
122
140
  };
123
- /** A failed `cloudOAuth` call. `code` tells a dead token (`invalid-token`) from a missing scope (`insufficient-scope`). */
141
+ /**
142
+ * A failed `cloudOAuth` call. `code` tells a dead token (`invalid-token`) from
143
+ * a missing scope (`insufficient-scope`).
144
+ */
124
145
  export declare class CloudAuthError extends Error {
125
146
  override readonly name: "CloudAuthError";
126
147
  readonly code: CloudAuthErrorCode;
@@ -129,17 +150,20 @@ export declare class CloudAuthError extends Error {
129
150
  readonly scope: string | undefined;
130
151
  constructor(code: CloudAuthErrorCode, message: string, details?: CloudAuthErrorDetails);
131
152
  }
132
- /** Matches by `name` and `code`, so an error from another copy of the module still maps. */
153
+ /**
154
+ * Matches by `name` and `code`, so an error from another copy of the module
155
+ * still maps.
156
+ */
133
157
  export declare function isCloudAuthError(value: unknown): value is CloudAuthError;
134
158
  //#endregion
135
159
  //#region src/cloud/delivery.d.ts
136
160
  /**
137
161
  * A `DeliveryTransport` for `channel` that hands each checked recipient to
138
- * PermDock Cloud, which sends it from its hosted email, chat or webhook
139
- * sender and reports back through `com.permdock.delivery.*` events. The
140
- * router has already decided the recipient: the Cloud receives the target
141
- * and the permission that let it through, never a decision to make.
142
- * `Idempotency-Key` is the delivery's idempotency key, so a retry repeats it.
162
+ * PermDock Cloud, which sends it from its hosted email, chat or webhook sender
163
+ * and reports back through `com.permdock.delivery.*` events. The router has
164
+ * already decided the recipient: the Cloud receives the target and the
165
+ * permission that let it through, never a decision to make. `Idempotency-Key`
166
+ * is the delivery's idempotency key, so a retry repeats it.
143
167
  */
144
168
  export declare function cloudDeliveryTransport<C extends DeliveryChannel>(channel: C, options?: CloudConnectionOptions): DeliveryTransport<C>;
145
169
  //#endregion
@@ -147,11 +171,11 @@ export declare function cloudDeliveryTransport<C extends DeliveryChannel>(channe
147
171
  /**
148
172
  * A `TokenSigner` backed by the environment's PermDock Cloud keys, typically
149
173
  * KMS-held, for run tickets (`vnd.permdock.run+jwt`) and every other signed
150
- * output an app issues. The Cloud signs only what the app sends: it sets
151
- * `iss` to the environment URL and adds no claim. Policy documents,
152
- * snapshots, evidence exports, Security Event Tokens and `at+jwt` access tokens are the Cloud's own
153
- * outputs, so their `typ` values are refused here. Verify what it signs with
154
- * `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`.
174
+ * output an app issues. The Cloud signs only what the app sends: it sets `iss`
175
+ * to the environment URL and adds no claim. Policy documents, snapshots,
176
+ * evidence exports, Security Event Tokens and `at+jwt` access tokens are the
177
+ * Cloud's own outputs, so their `typ` values are refused here. Verify what it
178
+ * signs with `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`.
155
179
  */
156
180
  export declare function cloudSigner(options?: CloudSignerOptions): TokenSigner;
157
181
  //#endregion
@@ -165,8 +189,8 @@ type Types = typeof CLOUD_EVENT_TYPES;
165
189
  type PermDockCloudEvent = Envelope<Types["decision"], DecisionEvent> | Envelope<Types["approvalRequested"] | Types["approvalResolved"] | Types["approvalExpired"] | Types["approvalCancelled"], DecisionEvent> | Envelope<Types["directoryCreated"] | Types["directoryReplaced"] | Types["directoryPatched"] | Types["directoryDeleted"], DirectoryEvent> | Envelope<Types["membershipAdded"] | Types["membershipRemoved"] | Types["membershipChanged"], MembershipEvent> | Envelope<Types["credentialCreated"] | Types["credentialUsed"] | Types["credentialRotated"] | Types["credentialRevoked"], CredentialEvent> | Envelope<Types["catalogPublished"] | Types["catalogDrifted"], CatalogEventData> | Envelope<Types["supportSessionStarted"] | Types["supportSessionEnded"], AccessEvent> | Envelope<Types["automationPublished"] | Types["automationChanged"] | Types["automationRevoked"] | Types["automationRun"], AutomationEvent> | Envelope<Types["deliverySent"] | Types["deliveryDelivered"] | Types["deliveryBounced"] | Types["deliveryComplained"] | Types["deliveryFailed"], DeliveryEvent>;
166
190
  type WebhookOptions = {
167
191
  /**
168
- * A verifier to reuse across deliveries, so the JWKS is fetched once;
169
- * built from `jwks`, `secret`, `replay`, `tolerance` and `now` when absent.
192
+ * A verifier to reuse across deliveries, so the JWKS is fetched once; built
193
+ * from `jwks`, `secret`, `replay`, `tolerance` and `now` when absent.
170
194
  */
171
195
  readonly verifier?: WebhookVerifier;
172
196
  /** `cloud().jwks`, a JWKS URL or an inline key set, for `v1a` signatures. */
@@ -180,7 +204,10 @@ type WebhookOptions = {
180
204
  readonly now?: () => Instant;
181
205
  readonly fetch?: typeof fetch;
182
206
  };
183
- /** The Standard Webhooks verifier's cause, or `invalid-events` for a signed body that is not a CloudEvents batch. */
207
+ /**
208
+ * The Standard Webhooks verifier's cause, or `invalid-events` for a signed body
209
+ * that is not a CloudEvents batch.
210
+ */
184
211
  type WebhookFailureCause = WebhookFailureCause$1 | "invalid-events";
185
212
  type VerifiedWebhook = {
186
213
  readonly ok: true;
@@ -199,8 +226,8 @@ type VerifiedWebhook = {
199
226
  */
200
227
  export declare function parseCloudEvent(value: unknown): PermDockCloudEvent | null;
201
228
  /**
202
- * Verifies a PermDock Cloud webhook delivery: Standard Webhooks headers over
203
- * an `application/cloudevents-batch+json` body (or one
229
+ * Verifies a PermDock Cloud webhook delivery: Standard Webhooks headers over an
230
+ * `application/cloudevents-batch+json` body (or one
204
231
  * `application/cloudevents+json` event). There is no unsigned mode, and it
205
232
  * never throws.
206
233
  */
@@ -208,13 +235,19 @@ export declare function verifyWebhook(request: Request, options: WebhookOptions)
208
235
  //#endregion
209
236
  //#region src/cloud/waiter.d.ts
210
237
  type CloudApprovalWaiterOptions = WebhookOptions & ({
211
- /** Read when a wait starts and every `interval` after; typically `cloud().approvals`. */
238
+ /**
239
+ * Read when a wait starts and every `interval` after; typically
240
+ * `cloud().approvals`.
241
+ */
212
242
  readonly store: ApprovalStore;
213
243
  /** Milliseconds between fallback reads of `store`. Defaults to 60000. */
214
244
  readonly interval?: number;
215
245
  readonly waiter?: undefined;
216
246
  } | {
217
- /** A durable runner's waiter (`workflowSdkWaiter()`); `wait` and `wake` go to it. */
247
+ /**
248
+ * A durable runner's waiter (`workflowSdkWaiter()`); `wait` and `wake`
249
+ * go to it.
250
+ */
218
251
  readonly waiter: ApprovalWaiter;
219
252
  readonly store?: undefined;
220
253
  readonly interval?: undefined;
@@ -223,22 +256,21 @@ type CloudApprovalWaiter = ApprovalWaiter & {
223
256
  /**
224
257
  * The endpoint for the environment's webhook connector. It verifies the
225
258
  * Standard Webhooks signature and wakes the wait of every
226
- * `com.permdock.approval.resolved`, `.expired` and `.cancelled` event in
227
- * the batch. It answers `204` once handled or replayed, and Problem
228
- * Details otherwise.
259
+ * `com.permdock.approval.resolved`, `.expired` and `.cancelled` event in the
260
+ * batch. It answers `204` once handled or replayed, and Problem Details
261
+ * otherwise.
229
262
  */
230
263
  readonly webhook: (request: Request) => Promise<Response>;
231
264
  };
232
265
  /** The approval token of each event that ends a wait, in delivery order. */
233
266
  export declare function approvalTokensOf(events: readonly PermDockCloudEvent[]): readonly string[];
234
267
  /**
235
- * An `ApprovalWaiter` that PermDock Cloud wakes. Mount `webhook` on the
236
- * route the environment's webhook connector posts to: when an approval is
237
- * resolved, expires or is cancelled, the parked run for its token wakes.
238
- * Waking never approves anything. The run decides again with the token, and
239
- * only the app's `decide` and its approval store can grant. Without
240
- * `waiter`, waits poll `store` as a fallback for a webhook another process
241
- * received.
268
+ * An `ApprovalWaiter` that PermDock Cloud wakes. Mount `webhook` on the route
269
+ * the environment's webhook connector posts to: when an approval is resolved,
270
+ * expires or is cancelled, the parked run for its token wakes. Waking never
271
+ * approves anything. The run decides again with the token, and only the app's
272
+ * `decide` and its approval store can grant. Without `waiter`, waits poll
273
+ * `store` as a fallback for a webhook another process received.
242
274
  */
243
275
  export declare function cloudApprovalWaiter(options: CloudApprovalWaiterOptions): CloudApprovalWaiter;
244
276
  //#endregion
@@ -1,21 +1,24 @@
1
1
  import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { o as statusProblem } from "../problem-details-cn5X30gZ.js";
4
- import { h as secondsAt } from "../time-DkWjdL98.js";
5
- import { r as CLOUD_EVENT_TYPES } from "../sink-BEZSlMS_.js";
6
- import { i as parseCloudEventBatch, r as parseCloudEvent$1 } from "../catalog-fingerprint-C144oW4M.js";
7
- import { n as readBodyText } from "../body-text-QcXok_SI.js";
8
- import { c as problemResponse } from "../problem-CTviyH5L.js";
2
+ import { n as freezeDeep } from "../freeze-jjan0lCv.js";
3
+ import { o as statusProblem } from "../problem-details-CLDgX1KV.js";
4
+ import { h as secondsAt } from "../time-nR1JesoH.js";
5
+ import { r as CLOUD_EVENT_TYPES } from "../sink-D9_vh372.js";
6
+ import { i as parseCloudEventBatch, r as parseCloudEvent$1 } from "../catalog-fingerprint-e6aCWosn.js";
7
+ import { n as readBodyText } from "../body-text-DQhcmqdY.js";
8
+ import { l as problemResponse } from "../problem-BVLHFK33.js";
9
9
  import { t as timeoutSignal } from "../timeout-D51niuQP.js";
10
- import { n as webhookVerifier } from "../standard-webhooks-DgFFD-Ga.js";
11
- import { c as stringField, n as discoverAuthorizationServer, r as parseToken } from "../device-BARQ8eYG.js";
12
- import { t as pollingApprovalWaiter } from "../waiter-BGUtGYoU.js";
13
- import { i as isDeliveryTarget } from "../target-Bw37TFNA.js";
10
+ import { n as webhookVerifier } from "../standard-webhooks-D67a3nzk.js";
11
+ import { c as stringField, n as discoverAuthorizationServer, r as parseToken } from "../device-BwbJNmb2.js";
12
+ import { t as pollingApprovalWaiter } from "../waiter-aBLM63_f.js";
13
+ import { i as isDeliveryTarget } from "../target-qdEAnnhU.js";
14
14
  import { t as CLOUD_BASE_URL } from "../base-url-BQbddZO5.js";
15
- import { a as isCompactJws, i as cloudEndpoints, n as cloud, o as resolveCloudEndpoints, r as cloudConnection, t as bearerChallenge } from "../challenge-nGWma08S.js";
16
- import { n as randomToken, t as pkce } from "../pkce-5h8NgMQJ.js";
15
+ import { a as isCompactJws, i as cloudEndpoints, n as cloud, o as resolveCloudEndpoints, r as cloudConnection, t as bearerChallenge } from "../challenge-DImNcR7B.js";
16
+ import { n as randomToken, t as pkce } from "../pkce-CnmmYqUZ.js";
17
17
  //#region src/cloud/oauth-error.ts
18
- /** A failed `cloudOAuth` call. `code` tells a dead token (`invalid-token`) from a missing scope (`insufficient-scope`). */
18
+ /**
19
+ * A failed `cloudOAuth` call. `code` tells a dead token (`invalid-token`) from
20
+ * a missing scope (`insufficient-scope`).
21
+ */
19
22
  var CloudAuthError = class extends Error {
20
23
  name = "CloudAuthError";
21
24
  code;
@@ -43,7 +46,10 @@ const CODES = /* @__PURE__ */ new Set([
43
46
  "unreachable",
44
47
  "unexpected-response"
45
48
  ]);
46
- /** Matches by `name` and `code`, so an error from another copy of the module still maps. */
49
+ /**
50
+ * Matches by `name` and `code`, so an error from another copy of the module
51
+ * still maps.
52
+ */
47
53
  function isCloudAuthError(value) {
48
54
  if (!(value instanceof Error) || value.name !== "CloudAuthError") return false;
49
55
  const code = Reflect.get(value, "code");
@@ -51,20 +57,29 @@ function isCloudAuthError(value) {
51
57
  }
52
58
  //#endregion
53
59
  //#region src/cloud/oauth.ts
54
- /** Milliseconds a Cloud OAuth or read request may take; a slower one fails with `unreachable`. */
60
+ /**
61
+ * Milliseconds a Cloud OAuth or read request may take; a slower one fails with
62
+ * `unreachable`.
63
+ */
55
64
  const OAUTH_TIMEOUT_MS = 1e4;
56
65
  const DEFAULT_SCOPES = ["projects:read", "policy:read"];
57
66
  function trimSlash(value) {
58
67
  return value.replace(/\/+$/u, "");
59
68
  }
60
- /** The form-urlencoding RFC 6749 section 2.3.1 applies to client_secret_basic credentials. */
69
+ /**
70
+ * The form-urlencoding RFC 6749 section 2.3.1 applies to client_secret_basic
71
+ * credentials.
72
+ */
61
73
  function formEncode(value) {
62
74
  return encodeURIComponent(value).replaceAll("%20", "+");
63
75
  }
64
76
  function isLoopback(hostname) {
65
77
  return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "[::1]";
66
78
  }
67
- /** An endpoint must be `https:`, except on a loopback issuer, which a local Cloud serves over plain HTTP. */
79
+ /**
80
+ * An endpoint must be `https:`, except on a loopback issuer, which a local
81
+ * Cloud serves over plain HTTP.
82
+ */
68
83
  function secureEndpoint(value, issuer) {
69
84
  try {
70
85
  const url = new URL(value);
@@ -289,11 +304,11 @@ async function fromResponse(response) {
289
304
  }
290
305
  /**
291
306
  * A `DeliveryTransport` for `channel` that hands each checked recipient to
292
- * PermDock Cloud, which sends it from its hosted email, chat or webhook
293
- * sender and reports back through `com.permdock.delivery.*` events. The
294
- * router has already decided the recipient: the Cloud receives the target
295
- * and the permission that let it through, never a decision to make.
296
- * `Idempotency-Key` is the delivery's idempotency key, so a retry repeats it.
307
+ * PermDock Cloud, which sends it from its hosted email, chat or webhook sender
308
+ * and reports back through `com.permdock.delivery.*` events. The router has
309
+ * already decided the recipient: the Cloud receives the target and the
310
+ * permission that let it through, never a decision to make. `Idempotency-Key`
311
+ * is the delivery's idempotency key, so a retry repeats it.
297
312
  */
298
313
  function cloudDeliveryTransport(channel, options = {}) {
299
314
  const connection = cloudConnection(options);
@@ -351,8 +366,8 @@ const REGISTERED = /* @__PURE__ */ new Set([
351
366
  "jti"
352
367
  ]);
353
368
  /**
354
- * The Cloud's own outputs and access tokens; a client key that could mint
355
- * them could forge them, or forge the approver behind `PermDock-Approver`.
369
+ * The Cloud's own outputs and access tokens; a client key that could mint them
370
+ * could forge them, or forge the approver behind `PermDock-Approver`.
356
371
  */
357
372
  const CLOUD_ISSUED = /* @__PURE__ */ new Set([
358
373
  "vnd.permdock.policy+jwt",
@@ -374,11 +389,11 @@ function headerTyp(token) {
374
389
  /**
375
390
  * A `TokenSigner` backed by the environment's PermDock Cloud keys, typically
376
391
  * KMS-held, for run tickets (`vnd.permdock.run+jwt`) and every other signed
377
- * output an app issues. The Cloud signs only what the app sends: it sets
378
- * `iss` to the environment URL and adds no claim. Policy documents,
379
- * snapshots, evidence exports, Security Event Tokens and `at+jwt` access tokens are the Cloud's own
380
- * outputs, so their `typ` values are refused here. Verify what it signs with
381
- * `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`.
392
+ * output an app issues. The Cloud signs only what the app sends: it sets `iss`
393
+ * to the environment URL and adds no claim. Policy documents, snapshots,
394
+ * evidence exports, Security Event Tokens and `at+jwt` access tokens are the
395
+ * Cloud's own outputs, so their `typ` values are refused here. Verify what it
396
+ * signs with `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`.
382
397
  */
383
398
  function cloudSigner(options = {}) {
384
399
  const connection = cloudConnection(options);
@@ -454,8 +469,8 @@ function eventsOf(body) {
454
469
  return parseCloudEventBatch(parsed);
455
470
  }
456
471
  /**
457
- * Verifies a PermDock Cloud webhook delivery: Standard Webhooks headers over
458
- * an `application/cloudevents-batch+json` body (or one
472
+ * Verifies a PermDock Cloud webhook delivery: Standard Webhooks headers over an
473
+ * `application/cloudevents-batch+json` body (or one
459
474
  * `application/cloudevents+json` event). There is no unsigned mode, and it
460
475
  * never throws.
461
476
  */
@@ -512,13 +527,12 @@ function refusal(cause) {
512
527
  }
513
528
  }
514
529
  /**
515
- * An `ApprovalWaiter` that PermDock Cloud wakes. Mount `webhook` on the
516
- * route the environment's webhook connector posts to: when an approval is
517
- * resolved, expires or is cancelled, the parked run for its token wakes.
518
- * Waking never approves anything. The run decides again with the token, and
519
- * only the app's `decide` and its approval store can grant. Without
520
- * `waiter`, waits poll `store` as a fallback for a webhook another process
521
- * received.
530
+ * An `ApprovalWaiter` that PermDock Cloud wakes. Mount `webhook` on the route
531
+ * the environment's webhook connector posts to: when an approval is resolved,
532
+ * expires or is cancelled, the parked run for its token wakes. Waking never
533
+ * approves anything. The run decides again with the token, and only the app's
534
+ * `decide` and its approval store can grant. Without `waiter`, waits poll
535
+ * `store` as a fallback for a webhook another process received.
522
536
  */
523
537
  function cloudApprovalWaiter(options) {
524
538
  const inner = options.waiter ?? pollingApprovalWaiter({
@@ -1,6 +1,6 @@
1
- import { n as secretInput } from "./credentials-BpuTwd7a.js";
1
+ import { n as secretInput } from "./credentials-CdDxp7jN.js";
2
2
  import { t as defineLeaf } from "./command-L8EstFNm.js";
3
- import { c as given, i as dryRunFlag } from "./flags-aaeRAdiD.js";
3
+ import { c as given, i as dryRunFlag } from "./flags-DXjoTVbS.js";
4
4
  //#region src/cli/commands/cloud.ts
5
5
  const sharedFlags = {
6
6
  url: {
@@ -41,7 +41,7 @@ const push = defineLeaf({
41
41
  },
42
42
  async run(ctx, { flags }) {
43
43
  const env = await withStdinSecret(ctx, "key", flags["key-stdin"], "PERMDOCK_CLOUD_KEY");
44
- return (await import("./push-tVdG8dUL.js")).runCloud({
44
+ return (await import("./push-Bn-lMEmI.js")).runCloud({
45
45
  cwd: ctx.cwd,
46
46
  config: ctx.config,
47
47
  url: given(flags.url),
@@ -70,8 +70,7 @@ const pull = defineLeaf({
70
70
  },
71
71
  async run(ctx, { flags }) {
72
72
  const env = await withStdinSecret(ctx, "token", flags["token-stdin"], "PERMDOCK_CLOUD_TOKEN");
73
- const { runCloudPull } = await import("./pull-Cty6Ovyu.js");
74
- return runCloudPull({
73
+ return (await import("./pull-C3EEGzSw.js")).runCloudPull({
75
74
  cwd: ctx.cwd,
76
75
  config: ctx.config,
77
76
  url: given(flags.url),