permdock 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-CL-QCITA.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  14. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  35. package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
  45. package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
  46. package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
  52. package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
  53. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  54. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  55. package/dist/catalog-mRQQQhNK.js +1 -0
  56. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
  77. package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
  78. package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
  79. package/dist/collect-B5BL3klN.js +1 -0
  80. package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
  81. package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
  98. package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
  99. package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
  100. package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
  101. package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
  102. package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
  103. package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  127. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  128. package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
  130. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  131. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-B5kvbAoZ.js +58 -0
  150. package/dist/gen-DWCYcMQM.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
  164. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  169. package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
  170. package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
  171. package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
  172. package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
  173. package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
  174. package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
  175. package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +33 -33
  178. package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
  179. package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +72 -26
  212. package/dist/next/index.js +110 -6
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  223. package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
  224. package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/output-files-BHOIlrfD.js +1 -0
  232. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  233. package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
  234. package/dist/ownership-B4L59T9u.js +1054 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
  245. package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
  262. package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
  263. package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
  264. package/dist/powersync-Djf-zCpB.js +1 -0
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/pull-B65ndFNZ.js +1 -0
  282. package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
  283. package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
  284. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  285. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-CF7xXLSG.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
  306. package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
  310. package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
  311. package/dist/run-D-JE8QWb.js +1 -0
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  333. package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  334. package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
  335. package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
  344. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  351. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  357. package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
  368. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
  369. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  370. package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +224 -141
  394. package/dist/testing/index.js +299 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  407. package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
  408. package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
  409. package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
  410. package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
  411. package/dist/types-B_d_g7T3.d.ts +262 -0
  412. package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
  413. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  414. package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
  415. package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
  416. package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
  417. package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  418. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  419. package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
  420. package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
  421. package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-CYeXek0p.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
  441. package/dist/watch-DB42U1ib.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  452. package/package.json +7 -7
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +14 -22
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -1,2 +1,2 @@
1
- import { a as ChatCommandResult, c as createPermDock, d as SubjectFromChatOptions, f as isChatAuthor, i as ChatCommandContext, l as ChatAuthor, n as ChatActionResult, o as ChatPermDock, p as subjectFromChat, r as ChatCommand, s as ChatPermDockOptions, t as ChatAction, u as ChatPrincipal } from "../create-B2-CQqCI.js";
1
+ import { a as ChatCommandResult, c as createPermDock, d as SubjectFromChatOptions, f as isChatAuthor, i as ChatCommandContext, l as ChatAuthor, n as ChatActionResult, o as ChatPermDock, p as subjectFromChat, r as ChatCommand, s as ChatPermDockOptions, t as ChatAction, u as ChatPrincipal } from "../create-BVq1lNQE.js";
2
2
  export { type ChatAction, type ChatActionResult, type ChatAuthor, type ChatCommand, type ChatCommandContext, type ChatCommandResult, type ChatPermDock, type ChatPermDockOptions, type ChatPrincipal, type SubjectFromChatOptions, createPermDock, isChatAuthor, subjectFromChat };
@@ -1,11 +1,11 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { n as loadPrincipalByIdentity } from "../principal-source-pHneukrx.js";
4
- import { f as nowMillis } from "../time-DkWjdL98.js";
5
- import { l as withApp, t as getPermDock } from "../permdock-BfWEeMqk.js";
6
- import { c as isApprovalError } from "../types-DqzsnlSA.js";
7
- import { a as requestApproval, o as resolveApproval, s as resumeDecision } from "../helpers-DY3vXuGs.js";
8
- import { t as approvalPrompt } from "../approval-prompt-Dg5LeAcT.js";
2
+ import { n as freezeDeep } from "../freeze-jjan0lCv.js";
3
+ import { n as loadPrincipalByIdentity } from "../principal-source-C6N60GtM.js";
4
+ import { f as nowMillis } from "../time-nR1JesoH.js";
5
+ import { l as withApp, t as getPermDock } from "../permdock-L-_I_3zP.js";
6
+ import { c as isApprovalError } from "../types-CcUXciSj.js";
7
+ import { a as requestApproval, o as resolveApproval, s as resumeDecision } from "../helpers-DJicaG6f.js";
8
+ import { t as approvalPrompt } from "../approval-prompt-B8hQY69x.js";
9
9
  //#region src/chat/subject.ts
10
10
  function nonEmpty(value) {
11
11
  return typeof value === "string" && value !== "";
@@ -17,7 +17,10 @@ function isChatAuthor(value) {
17
17
  const workspace = Reflect.get(value, "workspace");
18
18
  return nonEmpty(provider) && nonEmpty(userId) && (workspace === void 0 || nonEmpty(workspace));
19
19
  }
20
- /** The principal linked to `author`, or `null` for an unlinked or malformed author. Never throws. */
20
+ /**
21
+ * The principal linked to `author`, or `null` for an unlinked or malformed
22
+ * author. Never throws.
23
+ */
21
24
  function principalFromChat(author, principals) {
22
25
  if (!isChatAuthor(author)) return Promise.resolve(null);
23
26
  return loadPrincipalByIdentity(principals, compact({
@@ -28,8 +31,8 @@ function principalFromChat(author, principals) {
28
31
  }));
29
32
  }
30
33
  /**
31
- * The subject a chat author acts as: the principal its identity link
32
- * names, or anonymous when there is no link. Never throws.
34
+ * The subject a chat author acts as: the principal its identity link names, or
35
+ * anonymous when there is no link. Never throws.
33
36
  */
34
37
  async function subjectFromChat(author, options) {
35
38
  return {
@@ -1,17 +1,20 @@
1
- import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-K0faOLFp.js";
2
- import { l as ChatAuthor, n as ChatActionResult, o as ChatPermDock } from "../create-B2-CQqCI.js";
3
- import { n as ChatTransport } from "../types-g7Oy6Zg4.js";
1
+ import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-PYagyQUj.js";
2
+ import { l as ChatAuthor, n as ChatActionResult, o as ChatPermDock } from "../create-BVq1lNQE.js";
3
+ import { n as ChatTransport } from "../types-yUuPR5Hy.js";
4
4
  import { ActionEvent, Author, CardElement } from "chat";
5
5
  //#region src/chat-sdk/author.d.ts
6
6
  type ChatSdkAuthorOptions = {
7
- /** The platform workspace the bot is installed in, matched against identity links. */
7
+ /**
8
+ * The platform workspace the bot is installed in, matched against identity
9
+ * links.
10
+ */
8
11
  readonly workspace?: string;
9
12
  };
10
13
  /**
11
14
  * The `ChatAuthor` of a Chat SDK message or action, named by its adapter
12
- * (`adapter.name`, such as `slack`). `null` for a bot, this bot, the
13
- * platform itself or an empty id. Reads only `userId`: the email and display
14
- * name never identify anyone.
15
+ * (`adapter.name`, such as `slack`). `null` for a bot, this bot, the platform
16
+ * itself or an empty id. Reads only `userId`: the email and display name never
17
+ * identify anyone.
15
18
  */
16
19
  export declare function chatSdkAuthor(user: Pick<Author, "userId" | "isBot" | "isMe" | "isSystem">, adapter: {
17
20
  readonly name: string;
@@ -23,17 +26,23 @@ export declare const APPROVE_ACTION = "permdock:approve";
23
26
  /** The `actionId` of the card's reject button; its `value` is the request id. */
24
27
  export declare const REJECT_ACTION = "permdock:reject";
25
28
  type ApprovalCardOptions = {
26
- /** The app's approval page: a base URL the request id is appended to, or a function of the prompt. Must be https. */
29
+ /**
30
+ * The app's approval page: a base URL the request id is appended to, or a
31
+ * function of the prompt. Must be https.
32
+ */
27
33
  readonly approvalUrl: ApprovalUrl;
28
- /** `false` leaves out the approve and reject buttons, so the page is the only place to decide. Defaults to `true`. */
34
+ /**
35
+ * `false` leaves out the approve and reject buttons, so the page is the only
36
+ * place to decide. Defaults to `true`.
37
+ */
29
38
  readonly buttons?: boolean;
30
39
  };
31
40
  /**
32
- * A Chat SDK card for an approval prompt: the detail, who asked, the
33
- * permission and the expiry, a link to the approval page, and approve and
34
- * reject buttons that carry the request id, never its token. A click is
35
- * applied by `approvalActions` as the verified clicking user. Throws a
36
- * `TypeError` for an approval page that is not https.
41
+ * A Chat SDK card for an approval prompt: the detail, who asked, the permission
42
+ * and the expiry, a link to the approval page, and approve and reject buttons
43
+ * that carry the request id, never its token. A click is applied by
44
+ * `approvalActions` as the verified clicking user. Throws a `TypeError` for an
45
+ * approval page that is not https.
37
46
  */
38
47
  export declare function approvalCard(prompt: ApprovalPrompt, options: ApprovalCardOptions): CardElement;
39
48
  //#endregion
@@ -46,31 +55,40 @@ type ApprovalActionsOptions = ChatSdkAuthorOptions & {
46
55
  readonly onResult?: (result: ChatActionResult, event: ActionEvent) => void | Promise<void>;
47
56
  };
48
57
  type ApprovalActions = {
49
- /** The action ids to register: `chat.onAction(actions.actionIds, actions.onAction)`. */
58
+ /**
59
+ * The action ids to register: `chat.onAction(actions.actionIds,
60
+ * actions.onAction)`.
61
+ */
50
62
  readonly actionIds: readonly [typeof APPROVE_ACTION, typeof REJECT_ACTION];
51
63
  readonly onAction: (event: ActionEvent) => Promise<void>;
52
64
  };
53
65
  /**
54
- * Applies the approve and reject buttons of `approvalCard`. The clicking
55
- * user, as the Chat SDK adapter verified them, is resolved through
56
- * `ChatPermDock.resolveAction`; the button value names the request by id.
57
- * A click from an unlinked user, the requester or a bot records nothing.
66
+ * Applies the approve and reject buttons of `approvalCard`. The clicking user,
67
+ * as the Chat SDK adapter verified them, is resolved through
68
+ * `ChatPermDock.resolveAction`; the button value names the request by id. A
69
+ * click from an unlinked user, the requester or a bot records nothing.
58
70
  */
59
71
  export declare function approvalActions(permdock: ChatPermDock, options?: ApprovalActionsOptions): ApprovalActions;
60
72
  //#endregion
61
73
  //#region src/chat-sdk/transport.d.ts
62
74
  /** The part of a Chat SDK `Chat` the transport calls; a `new Chat(...)` fits. */
63
75
  type ChatSdkClient = {
64
- openDM(user: string): Promise<{
65
- post(message: string | CardElement): Promise<{
76
+ openDM: (user: string) => Promise<{
77
+ post: (message: string | CardElement) => Promise<{
66
78
  readonly id: string;
67
79
  }>;
68
80
  }>;
69
81
  };
70
82
  type ChatSdkTransportOptions = {
71
- /** The adapter name recipients are on (`slack`, `teams`, …); a target for another provider is rejected. */
83
+ /**
84
+ * The adapter name recipients are on (`slack`, `teams`, …); a target for
85
+ * another provider is rejected.
86
+ */
72
87
  readonly provider: string;
73
- /** The workspace the bot is installed in; a target for another workspace is rejected. */
88
+ /**
89
+ * The workspace the bot is installed in; a target for another workspace is
90
+ * rejected.
91
+ */
74
92
  readonly workspace?: string;
75
93
  /** Keys this transport remembers to skip a repeat post. Defaults to 1000. */
76
94
  readonly remember?: number;
@@ -78,9 +96,9 @@ type ChatSdkTransportOptions = {
78
96
  /**
79
97
  * The chat channel of `permdock/delivery` over the Chat SDK: opens a direct
80
98
  * message with the target's platform user id and posts the text, or the
81
- * approval card when the message carries an approval prompt. The Chat SDK
82
- * takes no idempotency key, so the transport skips a key it already sent,
83
- * per instance and in memory only.
99
+ * approval card when the message carries an approval prompt. The Chat SDK takes
100
+ * no idempotency key, so the transport skips a key it already sent, per
101
+ * instance and in memory only.
84
102
  */
85
103
  export declare function chatSdkTransport(chat: ChatSdkClient, options: ChatSdkTransportOptions): ChatTransport;
86
104
  //#endregion
@@ -1,13 +1,13 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { n as approvalUrlFor } from "../approval-prompt-Dg5LeAcT.js";
3
- import { i as isDeliveryTarget } from "../target-Bw37TFNA.js";
2
+ import { n as approvalUrlFor } from "../approval-prompt-B8hQY69x.js";
3
+ import { i as isDeliveryTarget } from "../target-qdEAnnhU.js";
4
4
  import { Actions, Button, Card, CardText, Field, Fields, LinkButton } from "chat";
5
5
  //#region src/chat-sdk/author.ts
6
6
  /**
7
7
  * The `ChatAuthor` of a Chat SDK message or action, named by its adapter
8
- * (`adapter.name`, such as `slack`). `null` for a bot, this bot, the
9
- * platform itself or an empty id. Reads only `userId`: the email and display
10
- * name never identify anyone.
8
+ * (`adapter.name`, such as `slack`). `null` for a bot, this bot, the platform
9
+ * itself or an empty id. Reads only `userId`: the email and display name never
10
+ * identify anyone.
11
11
  */
12
12
  function chatSdkAuthor(user, adapter, options = {}) {
13
13
  const provider = typeof adapter === "string" ? adapter : adapter.name;
@@ -28,11 +28,11 @@ function oneLine(value) {
28
28
  return value.replaceAll(/\s+/gu, " ").trim();
29
29
  }
30
30
  /**
31
- * A Chat SDK card for an approval prompt: the detail, who asked, the
32
- * permission and the expiry, a link to the approval page, and approve and
33
- * reject buttons that carry the request id, never its token. A click is
34
- * applied by `approvalActions` as the verified clicking user. Throws a
35
- * `TypeError` for an approval page that is not https.
31
+ * A Chat SDK card for an approval prompt: the detail, who asked, the permission
32
+ * and the expiry, a link to the approval page, and approve and reject buttons
33
+ * that carry the request id, never its token. A click is applied by
34
+ * `approvalActions` as the verified clicking user. Throws a `TypeError` for an
35
+ * approval page that is not https.
36
36
  */
37
37
  function approvalCard(prompt, options) {
38
38
  const url = approvalUrlFor(prompt, options.approvalUrl);
@@ -101,10 +101,10 @@ async function reply(result, event) {
101
101
  await thread.postEphemeral(event.user, `The approval was not recorded: ${result.cause}.`, { fallbackToDM: false });
102
102
  }
103
103
  /**
104
- * Applies the approve and reject buttons of `approvalCard`. The clicking
105
- * user, as the Chat SDK adapter verified them, is resolved through
106
- * `ChatPermDock.resolveAction`; the button value names the request by id.
107
- * A click from an unlinked user, the requester or a bot records nothing.
104
+ * Applies the approve and reject buttons of `approvalCard`. The clicking user,
105
+ * as the Chat SDK adapter verified them, is resolved through
106
+ * `ChatPermDock.resolveAction`; the button value names the request by id. A
107
+ * click from an unlinked user, the requester or a bot records nothing.
108
108
  */
109
109
  function approvalActions(permdock, options = {}) {
110
110
  const onAction = async (event) => {
@@ -147,9 +147,9 @@ function chatSdkFailure(error) {
147
147
  /**
148
148
  * The chat channel of `permdock/delivery` over the Chat SDK: opens a direct
149
149
  * message with the target's platform user id and posts the text, or the
150
- * approval card when the message carries an approval prompt. The Chat SDK
151
- * takes no idempotency key, so the transport skips a key it already sent,
152
- * per instance and in memory only.
150
+ * approval card when the message carries an approval prompt. The Chat SDK takes
151
+ * no idempotency key, so the transport skips a key it already sent, per
152
+ * instance and in memory only.
153
153
  */
154
154
  function chatSdkTransport(chat, options) {
155
155
  const remember = options.remember ?? DEFAULT_REMEMBER;
@@ -3,7 +3,10 @@ import { n as isReadonlyArray } from "./compact-CAf557ZB.js";
3
3
  function partsOf(check) {
4
4
  return isReadonlyArray(check) ? [check[0], check[1]] : [check, void 0];
5
5
  }
6
- /** `true` when every check is granted, stopping at the first that is not; an empty list is `false`. */
6
+ /**
7
+ * `true` when every check is granted, stopping at the first that is not; an
8
+ * empty list is `false`.
9
+ */
7
10
  function canAllWith(can, checks, options) {
8
11
  if (checks.length === 0) return false;
9
12
  return checks.every((check) => {
@@ -1,6 +1,9 @@
1
- import { o as readPath } from "./paths-DXSHAMIa.js";
1
+ import { o as readPath } from "./paths-CUvURzHp.js";
2
2
  //#region src/core/claims-map.ts
3
- /** The value at `path`; a function that throws reads as absent, so a bad mapping fails closed. */
3
+ /**
4
+ * The value at `path`; a function that throws reads as absent, so a bad mapping
5
+ * fails closed.
6
+ */
4
7
  function readClaim(claims, path) {
5
8
  if (typeof path === "string") return readPath(claims, path);
6
9
  try {
@@ -1,11 +1,14 @@
1
1
  //#region src/core/claims-map.d.ts
2
- /** Where a value lives in verified claims: a dotted path (`app_metadata.roles`), or a function over the claims. */
2
+ /**
3
+ * Where a value lives in verified claims: a dotted path (`app_metadata.roles`),
4
+ * or a function over the claims.
5
+ */
3
6
  type ClaimPath = string | ((claims: Readonly<Record<string, unknown>>) => unknown);
4
7
  /**
5
- * How one provider's verified claims map to a principal. Every subject
6
- * provider takes it as `claims`; each field it leaves out keeps that
7
- * provider's default. Mapping only: core never verifies a token, and a claim
8
- * becomes a principal field only after the provider verified the token.
8
+ * How one provider's verified claims map to a principal. Every subject provider
9
+ * takes it as `claims`; each field it leaves out keeps that provider's default.
10
+ * Mapping only: core never verifies a token, and a claim becomes a principal
11
+ * field only after the provider verified the token.
9
12
  */
10
13
  type ClaimsMap = {
11
14
  readonly id?: ClaimPath;
@@ -1,6 +1,6 @@
1
- import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { a as PermDock } from "../permdock-Dco6dyCK.js";
3
- import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-UTnUVETj.js";
1
+ import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { a as PermDock } from "../permdock-B6Sf4T_S.js";
3
+ import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-BSNrVuxh.js";
4
4
  //#region src/claude-agent/create.d.ts
5
5
  /** Structural `McpServerProvenance` from `@anthropic-ai/claude-agent-sdk`. */
6
6
  type ClaudeMcpServer = {
@@ -8,9 +8,9 @@ type ClaudeMcpServer = {
8
8
  readonly source: string;
9
9
  };
10
10
  /**
11
- * What `subject`, `actor` and `tenant` receive: the `canUseTool` options or
12
- * the hook input. The subject comes from the app that started the query,
13
- * never from these fields.
11
+ * What `subject`, `actor` and `tenant` receive: the `canUseTool` options or the
12
+ * hook input. The subject comes from the app that started the query, never from
13
+ * these fields.
14
14
  */
15
15
  type ClaudeAgentContext = {
16
16
  readonly toolName: string;
@@ -1,6 +1,6 @@
1
1
  import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
- import { l as withApp } from "../permdock-BfWEeMqk.js";
3
- import { t as agentRuntime } from "../create-Cb86Z8Im.js";
2
+ import { l as withApp } from "../permdock-L-_I_3zP.js";
3
+ import { t as agentRuntime } from "../create-Cq4Uox0f.js";
4
4
  //#region src/claude-agent/create.ts
5
5
  const MCP_PREFIX = "mcp__";
6
6
  function asInput(input) {
@@ -31,7 +31,10 @@ function createPermDock(policy, given) {
31
31
  const options = withApp(policy, given);
32
32
  const sources = options.mcpSources ?? ["sdk"];
33
33
  const { agent, kernel } = agentRuntime(policy, options, "claude-agent");
34
- /** `null`: an unmapped tool under `unmapped: 'allow'`, which PermDock does not decide. */
34
+ /**
35
+ * `null`: an unmapped tool under `unmapped: 'allow'`, which PermDock does not
36
+ * decide.
37
+ */
35
38
  const decide = async (context, input) => {
36
39
  const untrusted = untrustedServer(context, sources);
37
40
  if (untrusted !== void 0) return {
@@ -1,7 +1,7 @@
1
- import { W as CustomRoleSource, lr as Subject, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { s as RemotePdpCache } from "../types-D3A19w4A.js";
4
- import { t as ClaimsMap } from "../claims-map-Ca-QX8C6.js";
1
+ import { W as CustomRoleSource, lr as Subject, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { s as RemotePdpCache } from "../types-B4uqKDnp.js";
4
+ import { t as ClaimsMap } from "../claims-map-D1Pb5oRq.js";
5
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
6
6
  //#region src/clerk/types.d.ts
7
7
  type ClerkPrincipal = Principal & {
@@ -37,7 +37,11 @@ type ClerkSubjectOptions = {
37
37
  readonly customRoles?: CustomRoleSource;
38
38
  readonly permissions?: Readonly<Record<string, Permission>>;
39
39
  readonly schema?: StandardSchemaV1;
40
- /** Where the session token carries platform roles (`claims.roles`): a path such as `publicMetadata.staff`, or a function. Organization roles come from the `o` claim. */
40
+ /**
41
+ * Where the session token carries platform roles (`claims.roles`): a path
42
+ * such as `publicMetadata.staff`, or a function. Organization roles come from
43
+ * the `o` claim.
44
+ */
41
45
  readonly claims?: Pick<ClaimsMap, "roles">;
42
46
  readonly features?: Readonly<Record<string, string>>;
43
47
  readonly declared?: readonly string[];
@@ -58,8 +62,8 @@ type ClerkSubjectResolverOptions = ClerkSubjectOptions & {
58
62
  //#region src/clerk/subject.d.ts
59
63
  export declare function subjectFromClerk(authObject: unknown, options?: ClerkSubjectOptions): Promise<Subject<ClerkPrincipal>>;
60
64
  /**
61
- * A resolver that keeps each user's `memberships: 'all'` list for
62
- * `cache.ttl` (at most 30 seconds), so a removed membership grants until then.
65
+ * A resolver that keeps each user's `memberships: 'all'` list for `cache.ttl`
66
+ * (at most 30 seconds), so a removed membership grants until then.
63
67
  */
64
68
  export declare function clerkSubjectResolver(options?: ClerkSubjectResolverOptions): (authObject: unknown) => Promise<Subject<ClerkPrincipal>>;
65
69
  //#endregion
@@ -1,9 +1,9 @@
1
1
  import { i as omitKeys, r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { r as validateRecord } from "../thenable-yD7SabqG.js";
2
+ import { n as freezeDeep } from "../freeze-jjan0lCv.js";
3
+ import { r as validateRecord } from "../thenable-BNSM1U2R.js";
4
4
  import { t as anonymousSubject } from "../subject-BGoM5o8B.js";
5
- import { t as readClaim } from "../claims-map-7oQ3ue4X.js";
6
- import { c as ttlMs, s as ttlCache } from "../shared-C8LjUdVU.js";
5
+ import { t as readClaim } from "../claims-map-CKkoAAYF.js";
6
+ import { c as ttlMs, s as ttlCache } from "../shared-l0oGGetg.js";
7
7
  //#region src/clerk/subject.ts
8
8
  function asRoles(value) {
9
9
  if (typeof value === "string") return value === "" ? [] : [value];
@@ -198,8 +198,8 @@ function subjectFromClerk(authObject, options = {}) {
198
198
  return fromClerk(authObject, options, extraMemberships);
199
199
  }
200
200
  /**
201
- * A resolver that keeps each user's `memberships: 'all'` list for
202
- * `cache.ttl` (at most 30 seconds), so a removed membership grants until then.
201
+ * A resolver that keeps each user's `memberships: 'all'` list for `cache.ttl`
202
+ * (at most 30 seconds), so a removed membership grants until then.
203
203
  */
204
204
  function clerkSubjectResolver(options = {}) {
205
205
  const { cache, ...rest } = options;
package/dist/cli/bin.js CHANGED
@@ -5,14 +5,14 @@ import { text } from "node:stream/consumers";
5
5
  module.enableCompileCache?.();
6
6
  const argv = process.argv.slice(2);
7
7
  if (argv.length === 1 && (argv[0] === "--version" || argv[0] === "-v")) {
8
- const { cliVersion } = await import("../version-DXkYUISx.js");
8
+ const { cliVersion } = await import("../version-DizhmD72.js");
9
9
  process.stdout.write(`${cliVersion()}\n`);
10
10
  } else {
11
11
  const [{ isCi }, { trapSignals }, { run }, { streamHasColors }] = await Promise.all([
12
12
  import("../env-DJZrPjRi.js"),
13
- import("../signals-D3NcTKUS.js"),
14
- import("../run-Bz7DXGEv.js"),
15
- import("../style-Ds1gNm77.js")
13
+ import("../signals-B1vHR3fN.js"),
14
+ import("../run-D-JE8QWb.js"),
15
+ import("../style-DblOtSga.js")
16
16
  ]);
17
17
  const signals = trapSignals();
18
18
  const result = await run(argv, {
@@ -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-CCiDRZBH.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-D1Eoi6NM.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-DC1Loeh3.js";
7
+ import { o as ResourceNameOf, r as PermissionKeyOf, s as ScopeNameOf, t as ActionNameOf } from "../type-helpers-BIPIDa6a.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-ITwYKvvH.js";
4
+ import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-BeHZ4x9Q.js";
5
+ import { t as run } from "../run-Bz26OTfO.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;