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
@@ -30,20 +30,20 @@ const SECTIONS = [
30
30
  docs: "init",
31
31
  effects: ["files"],
32
32
  config: false,
33
- load: async () => (await import("./init-5TXNji88.js")).init
33
+ load: async () => (await import("./init-txYTuW9u.js")).init
34
34
  }),
35
35
  group("preset", "Decode a preset code, or print its permdock.com/create link", "preset", [leaf("decode", "Print what a preset code holds", {
36
36
  examples: ["permdock preset decode p1AQIDBAc"],
37
37
  docs: "preset",
38
38
  effects: [],
39
39
  config: false,
40
- load: async () => (await import("./init-5TXNji88.js")).presetDecode
40
+ load: async () => (await import("./init-txYTuW9u.js")).presetDecode
41
41
  }), leaf("url", "Print the permdock.com/create link that opens a code", {
42
42
  examples: ["permdock preset url p1AQIDBAc"],
43
43
  docs: "preset",
44
44
  effects: [],
45
45
  config: false,
46
- load: async () => (await import("./init-5TXNji88.js")).presetUrl
46
+ load: async () => (await import("./init-txYTuW9u.js")).presetUrl
47
47
  })]),
48
48
  group("skills", "Install, update or list the PermDock Agent Skills", "skills", [
49
49
  leaf("install", "Copy the Agent Skills into the agent folders", {
@@ -55,21 +55,21 @@ const SECTIONS = [
55
55
  docs: "skills",
56
56
  effects: ["files"],
57
57
  config: false,
58
- load: async () => (await import("./skills-g_3BS9NC.js")).install
58
+ load: async () => (await import("./skills-C9uKfSF5.js")).install
59
59
  }),
60
60
  leaf("update", "Replace installed skills with this version's", {
61
61
  examples: ["permdock skills update"],
62
62
  docs: "skills",
63
63
  effects: ["files"],
64
64
  config: false,
65
- load: async () => (await import("./skills-g_3BS9NC.js")).update
65
+ load: async () => (await import("./skills-C9uKfSF5.js")).update
66
66
  }),
67
67
  leaf("list", "List the skills and where each is installed", {
68
68
  examples: ["permdock skills list"],
69
69
  docs: "skills",
70
70
  effects: [],
71
71
  config: false,
72
- load: async () => (await import("./skills-g_3BS9NC.js")).list
72
+ load: async () => (await import("./skills-C9uKfSF5.js")).list
73
73
  })
74
74
  ]),
75
75
  leaf("doctor", "Check a PermDock installation and print a fix for each finding", {
@@ -82,7 +82,7 @@ const SECTIONS = [
82
82
  effects: ["files"],
83
83
  config: true,
84
84
  findings: true,
85
- load: async () => (await import("./doctor-BoK_y0KO.js")).doctor
85
+ load: async () => (await import("./doctor-LPMYjSqO.js")).doctor
86
86
  }),
87
87
  leaf("completion", "Print the shell completion script for bash, zsh or fish", {
88
88
  examples: ["permdock completion zsh > ~/.zfunc/_permdock", "eval \"$(permdock completion bash)\""],
@@ -90,7 +90,7 @@ const SECTIONS = [
90
90
  effects: [],
91
91
  config: false,
92
92
  shellOutput: true,
93
- load: async () => (await import("./completion-BNdVf7X2.js")).completion
93
+ load: async () => (await import("./completion-_bc0OUQ-.js")).completion
94
94
  })
95
95
  ]
96
96
  },
@@ -106,14 +106,25 @@ const SECTIONS = [
106
106
  docs: "collect",
107
107
  effects: ["files"],
108
108
  config: true,
109
- load: async () => (await import("./collect-DNm3oKOk.js")).collect
109
+ load: async () => (await import("./collect-B80GYEot.js")).collect
110
110
  }),
111
111
  leaf("catalog", "Export the catalog as catalog JSON, JSON Schema or Markdown", {
112
112
  examples: ["permdock catalog --out permissions.catalog.json", "permdock catalog --kind markdown"],
113
113
  docs: "catalog",
114
114
  effects: ["files"],
115
115
  config: true,
116
- load: async () => (await import("./catalog-BaMQfQ6Y.js")).catalog
116
+ load: async () => (await import("./catalog-amPDr0JQ.js")).catalog
117
+ }),
118
+ leaf("gen", "Write typed constants, schemas, factories, hooks and messages from the policy", {
119
+ examples: [
120
+ "permdock gen",
121
+ "permdock gen --kind zod --kind factories",
122
+ "permdock gen --check"
123
+ ],
124
+ docs: "gen",
125
+ effects: ["files"],
126
+ config: true,
127
+ load: async () => (await import("./gen-BFfzZSLH.js")).gen
117
128
  }),
118
129
  leaf("usage", "Report unused, ungranted and role-less permissions and conditions on undeclared fields", {
119
130
  examples: ["permdock usage", "permdock usage --fail-on warning"],
@@ -121,14 +132,14 @@ const SECTIONS = [
121
132
  effects: [],
122
133
  config: true,
123
134
  findings: true,
124
- load: async () => (await import("./usage-CDaLXCfL.js")).usage
135
+ load: async () => (await import("./usage-CBzgwfIs.js")).usage
125
136
  }),
126
137
  leaf("diff", "Compare two policies or catalogs; exit 1 on a breaking change", {
127
138
  examples: ["permdock diff main.catalog.json permissions.catalog.json", "permdock diff ./old-policy.ts ./src/policy.ts --impact"],
128
139
  docs: "diff",
129
140
  effects: [],
130
141
  config: true,
131
- load: async () => (await import("./diff-Btr1c1Ow.js")).diff
142
+ load: async () => (await import("./diff-BwR1JdP2.js")).diff
132
143
  }),
133
144
  leaf("config", "Check permdock.config.ts for unknown keys, or print the effective config", {
134
145
  examples: ["permdock config", "permdock config --print"],
@@ -136,7 +147,7 @@ const SECTIONS = [
136
147
  effects: [],
137
148
  config: true,
138
149
  findings: true,
139
- load: async () => (await import("./config-DGZzMV1B.js")).config
150
+ load: async () => (await import("./config-D5XrLWpk.js")).config
140
151
  })
141
152
  ]
142
153
  },
@@ -153,14 +164,14 @@ const SECTIONS = [
153
164
  "network"
154
165
  ],
155
166
  config: true,
156
- load: async () => (await import("./rls-Ck_PocSp.js")).generate
167
+ load: async () => (await import("./rls-Ba9wN0SP.js")).generate
157
168
  }),
158
169
  leaf("import", "Turn existing RLS policies into a generated definition", {
159
170
  examples: ["permdock rls import --sql schema.sql --out src/permissions.generated.ts", "permdock rls import --db-url-stdin --out src/permissions.generated.ts"],
160
171
  docs: "rls",
161
172
  effects: ["files", "database:read"],
162
173
  config: true,
163
- load: async () => (await import("./rls-Ck_PocSp.js")).importPolicies
174
+ load: async () => (await import("./rls-Ba9wN0SP.js")).importPolicies
164
175
  }),
165
176
  leaf("verify", "Run the fixtures against the policies, or compare a live database", {
166
177
  examples: [
@@ -172,21 +183,21 @@ const SECTIONS = [
172
183
  effects: ["files", "database:read"],
173
184
  config: true,
174
185
  findings: true,
175
- load: async () => (await import("./rls-Ck_PocSp.js")).verify
186
+ load: async () => (await import("./rls-Ba9wN0SP.js")).verify
176
187
  }),
177
188
  leaf("migrate", "Rewrite hand-written policies onto the generated helpers", {
178
189
  examples: ["permdock rls migrate --sql supabase/migrations --dry-run", "permdock rls migrate --sql supabase/migrations"],
179
190
  docs: "rls",
180
191
  effects: ["rewrite", "files"],
181
192
  config: true,
182
- load: async () => (await import("./rls-Ck_PocSp.js")).migrate
193
+ load: async () => (await import("./rls-Ba9wN0SP.js")).migrate
183
194
  }),
184
195
  leaf("explain", "Show the tables, membership sources and triggers the SQL binds to", {
185
196
  examples: ["permdock rls explain", "permdock rls explain --db-url-stdin --json"],
186
197
  docs: "rls",
187
198
  effects: ["database:read"],
188
199
  config: true,
189
- load: async () => (await import("./rls-Ck_PocSp.js")).explain
200
+ load: async () => (await import("./rls-Ba9wN0SP.js")).explain
190
201
  })
191
202
  ]),
192
203
  group("supabase", "Generate the Supabase Custom Access Token Hook, or inspect its manifest", "supabase", [group("hook", "The Custom Access Token Hook", "supabase", [leaf("generate", "Compile the membership sources into the hook migration", {
@@ -194,26 +205,26 @@ const SECTIONS = [
194
205
  docs: "supabase",
195
206
  effects: ["files", "database:read"],
196
207
  config: true,
197
- load: async () => (await import("./supabase-Bqp7iIY2.js")).hookGenerate
208
+ load: async () => (await import("./supabase-SBs3MYUE.js")).hookGenerate
198
209
  })]), leaf("inspect", "Print or write the hook and helper manifest", {
199
210
  examples: ["permdock supabase inspect", "permdock supabase inspect --out"],
200
211
  docs: "supabase",
201
212
  effects: ["files"],
202
213
  config: true,
203
- load: async () => (await import("./supabase-Bqp7iIY2.js")).inspect
214
+ load: async () => (await import("./supabase-SBs3MYUE.js")).inspect
204
215
  })]),
205
216
  group("powersync", "Generate PowerSync Sync Streams from the policy, or verify them", "powersync", [leaf("generate", "Compile the read grants into sync-config.yaml", {
206
217
  examples: ["permdock powersync generate", "permdock powersync generate --check"],
207
218
  docs: "powersync",
208
219
  effects: ["files"],
209
220
  config: true,
210
- load: async () => (await import("./powersync-13odBwiM.js")).generate
221
+ load: async () => (await import("./powersync-Bg8u-JcR.js")).generate
211
222
  }), leaf("verify", "Fail on stale streams or a stream that syncs a denied row", {
212
223
  examples: ["permdock powersync verify", "permdock powersync verify --db-url-stdin"],
213
224
  docs: "powersync",
214
225
  effects: ["database:read"],
215
226
  config: true,
216
- load: async () => (await import("./powersync-13odBwiM.js")).verify
227
+ load: async () => (await import("./powersync-Bg8u-JcR.js")).verify
217
228
  })]),
218
229
  group("scim", "Generate the Postgres tables postgresDirectoryStore keeps a SCIM directory in", "scim", [leaf("generate", "Write the tenant-keyed users, groups and members tables", {
219
230
  examples: [
@@ -224,7 +235,7 @@ const SECTIONS = [
224
235
  docs: "scim",
225
236
  effects: ["files"],
226
237
  config: true,
227
- load: async () => (await import("./scim-C7JYhySg.js")).generate
238
+ load: async () => (await import("./scim-D8YupzX1.js")).generate
228
239
  })])
229
240
  ]
230
241
  },
@@ -236,13 +247,13 @@ const SECTIONS = [
236
247
  docs: "openapi",
237
248
  effects: ["files"],
238
249
  config: true,
239
- load: async () => (await import("./openapi-DMocl1bh.js")).emit
250
+ load: async () => (await import("./openapi-BIpw3Mb7.js")).emit
240
251
  }), leaf("import", "Turn an OpenAPI document into a generated definition", {
241
252
  examples: ["permdock openapi import --doc openapi.yaml --out src/permissions.generated.ts"],
242
253
  docs: "openapi",
243
254
  effects: ["files", "network"],
244
255
  config: false,
245
- load: async () => (await import("./openapi-DMocl1bh.js")).importDocument
256
+ load: async () => (await import("./openapi-BIpw3Mb7.js")).importDocument
246
257
  })]),
247
258
  group("arazzo", "Check Arazzo workflows against the permissions", "arazzo", [leaf("check", "Resolve every Arazzo step to x-permdock-permissions", {
248
259
  examples: ["permdock arazzo check --doc arazzo.json --openapi openapi.json"],
@@ -250,7 +261,7 @@ const SECTIONS = [
250
261
  effects: [],
251
262
  config: true,
252
263
  findings: true,
253
- load: async () => (await import("./arazzo-ClrF3PVb.js")).check
264
+ load: async () => (await import("./arazzo-BpS7LnV0.js")).check
254
265
  })]),
255
266
  leaf("scan", "List authorization checks written without PermDock, to adopt it in an existing app", {
256
267
  examples: ["permdock scan", "permdock scan --src app,lib --pattern isBeta"],
@@ -258,21 +269,21 @@ const SECTIONS = [
258
269
  effects: [],
259
270
  config: true,
260
271
  findings: true,
261
- load: async () => (await import("./scan-DSljDE1Y.js")).scan
272
+ load: async () => (await import("./scan-CRTj6fke.js")).scan
262
273
  }),
263
274
  group("casl", "Import CASL rules into a generated module", "casl", [leaf("import", "Turn CASL rules per role into a permissions and policy module", {
264
275
  examples: ["permdock casl import --rules rules.json --out src/permissions.generated.ts"],
265
276
  docs: "casl",
266
277
  effects: ["files"],
267
278
  config: false,
268
- load: async () => (await import("./casl-CmJlgziS.js")).caslImport
279
+ load: async () => (await import("./casl-C4OINZHI.js")).caslImport
269
280
  })]),
270
281
  group("casbin", "Import a Casbin model and policy into a generated module", "casbin", [leaf("import", "Turn a Casbin RBAC model and policy into a permissions and policy module", {
271
282
  examples: ["permdock casbin import --model model.conf --policy policy.csv --out src/permissions.generated.ts"],
272
283
  docs: "casbin",
273
284
  effects: ["files"],
274
285
  config: false,
275
- load: async () => (await import("./casbin-BHijLuHY.js")).casbinImport
286
+ load: async () => (await import("./casbin-B7_yS-oo.js")).casbinImport
276
287
  })])
277
288
  ]
278
289
  },
@@ -284,34 +295,34 @@ const SECTIONS = [
284
295
  docs: "login",
285
296
  effects: ["network", "files"],
286
297
  config: false,
287
- load: async () => (await import("./login-ClSJh5t5.js")).login
298
+ load: async () => (await import("./login-CfImTJGb.js")).login
288
299
  }),
289
300
  leaf("logout", "Revoke and delete the stored PermDock Cloud login", {
290
301
  examples: ["permdock logout"],
291
302
  docs: "login",
292
303
  effects: ["network", "files"],
293
304
  config: false,
294
- load: async () => (await import("./login-ClSJh5t5.js")).logout
305
+ load: async () => (await import("./login-CfImTJGb.js")).logout
295
306
  }),
296
307
  leaf("whoami", "Print the PermDock Cloud identity the CLI acts as", {
297
308
  examples: ["permdock whoami", "permdock whoami --json"],
298
309
  docs: "login",
299
310
  effects: [],
300
311
  config: false,
301
- load: async () => (await import("./login-ClSJh5t5.js")).whoami
312
+ load: async () => (await import("./login-CfImTJGb.js")).whoami
302
313
  }),
303
314
  group("cloud", "Publish to or pull from a PermDock Cloud project", "cloud", [leaf("push", "Publish the catalog, policy and manifest to a Cloud project", {
304
315
  examples: ["permdock cloud push --dry-run", "permdock cloud push --project prj_123"],
305
316
  docs: "cloud",
306
317
  effects: ["network", "cloud:write"],
307
318
  config: true,
308
- load: async () => (await import("./cloud-CO8pYtwr.js")).push
319
+ load: async () => (await import("./cloud-3kWfjnYy.js")).push
309
320
  }), leaf("pull", "Write a Cloud project's published catalog and manifest", {
310
321
  examples: ["permdock cloud pull --project prj_123"],
311
322
  docs: "cloud",
312
323
  effects: ["network", "files"],
313
324
  config: true,
314
- load: async () => (await import("./cloud-CO8pYtwr.js")).pull
325
+ load: async () => (await import("./cloud-3kWfjnYy.js")).pull
315
326
  })])
316
327
  ]
317
328
  },
@@ -322,7 +333,7 @@ const SECTIONS = [
322
333
  docs: "codemod",
323
334
  effects: ["rewrite"],
324
335
  config: false,
325
- load: async () => (await import("./codemod-i4N2BhDc.js")).codemod
336
+ load: async () => (await import("./codemod-D9Aiii1r.js")).codemod
326
337
  })]
327
338
  }
328
339
  ];
@@ -334,7 +345,7 @@ const COMPLETE_LEAF = leaf("__complete", "Print completion candidates for a part
334
345
  config: false,
335
346
  shellOutput: true,
336
347
  hidden: true,
337
- load: async () => (await import("./completion-BNdVf7X2.js")).complete
348
+ load: async () => (await import("./completion-_bc0OUQ-.js")).complete
338
349
  });
339
350
  const ROOT = group("permdock", "Collect, export, diff and check the permissions a PermDock policy declares", "", [...SECTIONS.flatMap((section) => section.entries), COMPLETE_LEAF]);
340
351
  /** Each leaf with its path from the root, in manifest order. */
@@ -345,8 +356,8 @@ function leaves(entry = ROOT, path = []) {
345
356
  }] : leaves(child, [...path, child.name]));
346
357
  }
347
358
  /**
348
- * Walks positional tokens down the tree until a leaf. Flags may sit
349
- * anywhere; only bare words name a child.
359
+ * Walks positional tokens down the tree until a leaf. Flags may sit anywhere;
360
+ * only bare words name a child.
350
361
  */
351
362
  function resolve(argv) {
352
363
  let node = ROOT;
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * What `permdock supabase inspect --json` prints and `--out` writes to
4
4
  * `permdock.manifest.json`: the contract between the generated hook and SQL
5
- * helpers and a package that writes policies or claims next to them.
6
- * `version` is the major of this shape; a field is only
7
- * ever added within it. `schemas/supabase-manifest-v1.json` is its JSON Schema.
5
+ * helpers and a package that writes policies or claims next to them. `version`
6
+ * is the major of this shape; a field is only ever added within it.
7
+ * `schemas/supabase-manifest-v1.json` is its JSON Schema.
8
8
  */
9
9
  type SupabaseHookManifest = {
10
10
  readonly $schema: "https://permdock.com/schemas/supabase-manifest-v1.json";
@@ -41,14 +41,18 @@ type SupabaseHookManifest = {
41
41
  /**
42
42
  * With `authzVersion`, the function that bumps the listed users' `authz_ver`,
43
43
  * for a membership source outside the hook. It is `security definer` and no
44
- * client role may execute it: call it from a trigger owned by the table's owner.
44
+ * client role may execute it: call it from a trigger owned by the table's
45
+ * owner.
45
46
  */
46
47
  readonly authzVersionBump?: {
47
48
  readonly schema: string;
48
49
  readonly function: "permdock_bump_authz_version_for";
49
50
  readonly args: "p_users uuid[]";
50
51
  };
51
- /** The Management API fields that make a hosted project call the hook; `permdock supabase inspect` adds them. */
52
+ /**
53
+ * The Management API fields that make a hosted project call the hook;
54
+ * `permdock supabase inspect` adds them.
55
+ */
52
56
  readonly managementApi?: {
53
57
  readonly hook_custom_access_token_enabled: true;
54
58
  readonly hook_custom_access_token_uri: string;
@@ -73,6 +77,51 @@ type SupabaseHookManifest = {
73
77
  * SDK that lacks one cannot serve this policy.
74
78
  */
75
79
  readonly requires?: SupabaseManifestRequires;
80
+ /**
81
+ * The SQL names the generated RLS exposes, as `resolveNames` gives them.
82
+ * Absent from a manifest written before 0.8.
83
+ */
84
+ readonly names?: SupabaseManifestNames;
85
+ };
86
+ /** The SQL helpers named after one scope, unqualified. */
87
+ type SupabaseManifestScopeNames = {
88
+ readonly permittedIds: string;
89
+ readonly permittedIdsFor: string;
90
+ readonly memberIds: string;
91
+ readonly memberIdsFor: string;
92
+ /**
93
+ * Only on the team scope (`team` or `teams`), for better-supabase's
94
+ * `teamIdsOf`.
95
+ */
96
+ readonly memberIdsOf?: string;
97
+ readonly permittedUsers: string;
98
+ };
99
+ /** The SQL objects named after one resource, unqualified. */
100
+ type SupabaseManifestResourceNames = {
101
+ /** The table `rls.tables` maps, as written there. */
102
+ readonly table?: string;
103
+ /** Graph resources only: `permitted_<resource>_ids` and its restriction check. */
104
+ readonly permittedIds?: string;
105
+ readonly restricted?: string;
106
+ /** With `rls.rowHelpers` naming the resource. */
107
+ readonly rows?: string;
108
+ readonly row?: string;
109
+ /** With `rls.fields` and a mapped table. */
110
+ readonly visible?: string;
111
+ readonly visibleFields?: string;
112
+ readonly mask?: string;
113
+ };
114
+ type SupabaseManifestNames = {
115
+ readonly schema: string;
116
+ readonly gucPrefix: string;
117
+ readonly claims: {
118
+ readonly tenant: string;
119
+ readonly role: string;
120
+ };
121
+ /** The scope better-supabase reads as its teams, when one is declared. */
122
+ readonly teamScope?: string;
123
+ readonly scopes: Readonly<Record<string, SupabaseManifestScopeNames>>;
124
+ readonly resources: Readonly<Record<string, SupabaseManifestResourceNames>>;
76
125
  };
77
126
  type SupabaseManifestRequires = {
78
127
  /** The capability-matrix release tag, `capability-matrix-v1.<minor>.<patch>`. */
@@ -94,33 +143,54 @@ type SupabaseManifestColumn = {
94
143
  type SupabaseManifestValue = SupabaseManifestColumn | {
95
144
  readonly value: string | readonly string[];
96
145
  };
97
- /** A column that references another table: the value (role key or user id) is `column` of `table`, matched on `id`. */
146
+ /**
147
+ * A column that references another table: the value (role key or user id) is
148
+ * `column` of `table`, matched on `id`.
149
+ */
98
150
  type SupabaseManifestThrough = {
99
151
  readonly table: string;
100
152
  readonly id: string;
101
153
  readonly column: string;
102
154
  };
103
- /** A role column (with `through` when it references a roles table), or the fixed roles every row holds. */
155
+ /**
156
+ * A role column (with `through` when it references a roles table), or the fixed
157
+ * roles every row holds.
158
+ */
104
159
  type SupabaseManifestRole = SupabaseManifestValue | (SupabaseManifestColumn & {
105
160
  readonly through: SupabaseManifestThrough;
106
161
  }) | (SupabaseManifestColumn & {
107
- /** Each column value to the role key it stands for, or `null` for no role; an unlisted value is no role. */
162
+ /**
163
+ * Each column value to the role key it stands for, or `null` for no role;
164
+ * an unlisted value is no role.
165
+ */
108
166
  readonly map: Readonly<Record<string, string | null>>;
109
167
  });
110
168
  /** One `tableMembershipSource` or `junctionMembershipSource` source. */
111
169
  type SupabaseManifestMembership = {
112
170
  /** `schema.table`, `public` when the source names no schema. */
113
171
  readonly table: string;
114
- /** The user id column, with `through` when it references the table that holds the user id. */
172
+ /**
173
+ * The user id column, with `through` when it references the table that holds
174
+ * the user id.
175
+ */
115
176
  readonly user: SupabaseManifestColumn | (SupabaseManifestColumn & {
116
177
  readonly through: SupabaseManifestThrough;
117
178
  });
118
- /** A column for `tableMembershipSource`, the fixed scope for `junctionMembershipSource`. */
179
+ /**
180
+ * A column for `tableMembershipSource`, the fixed scope for
181
+ * `junctionMembershipSource`.
182
+ */
119
183
  readonly scope: SupabaseManifestValue;
120
184
  readonly id: SupabaseManifestColumn;
121
- /** A role column, the fixed roles every row holds, or several role columns whose keys the row holds together. */
185
+ /**
186
+ * A role column, the fixed roles every row holds, or several role columns
187
+ * whose keys the row holds together.
188
+ */
122
189
  readonly role: SupabaseManifestRole | readonly SupabaseManifestRole[];
123
- /** A `jsonb` column of ancestor ids keyed by scope, or one column per ancestor scope. */
190
+ /**
191
+ * A `jsonb` column of ancestor ids keyed by scope, or one column per ancestor
192
+ * scope.
193
+ */
124
194
  readonly within?: SupabaseManifestColumn | {
125
195
  readonly columns: Readonly<Record<string, string>>;
126
196
  };
@@ -135,10 +205,16 @@ type SupabaseManifestHelper = {
135
205
  /** The argument list, `p_grant text`, or `''` for none. */
136
206
  readonly args: string;
137
207
  readonly returns: string;
138
- /** The roles granted `execute`; a field view `anon` reads adds `anon` to the `authenticated` ones. */
208
+ /**
209
+ * The roles granted `execute`; a field view `anon` reads adds `anon` to the
210
+ * `authenticated` ones.
211
+ */
139
212
  readonly execute: readonly string[];
140
213
  };
141
- /** A table whose row says whether a user or a scope instance is active (`rls.suspension`); a missing row counts as suspended. */
214
+ /**
215
+ * A table whose row says whether a user or a scope instance is active
216
+ * (`rls.suspension`); a missing row counts as suspended.
217
+ */
142
218
  type SupabaseManifestActiveRow = {
143
219
  /** `schema.table`. */
144
220
  readonly table: string;
@@ -149,12 +225,18 @@ type SupabaseManifestActiveRow = {
149
225
  /** A status column; only a row whose value is in `active` is active. */
150
226
  readonly status?: string;
151
227
  readonly active?: readonly string[];
152
- /** A scope only: the permission keys members of a suspended instance still hold. */
228
+ /**
229
+ * A scope only: the permission keys members of a suspended instance still
230
+ * hold.
231
+ */
153
232
  readonly keep?: readonly string[];
154
233
  };
155
234
  type SupabaseManifestRls = {
156
235
  readonly schema: string;
157
- /** Where the helpers read roles and memberships: the claims (`jwt`) or the tables (`database`). */
236
+ /**
237
+ * Where the helpers read roles and memberships: the claims (`jwt`) or the
238
+ * tables (`database`).
239
+ */
158
240
  readonly mode: "jwt" | "database";
159
241
  readonly tenantClaim: string;
160
242
  /** The declared scopes, root first, with the Postgres type of their ids. */
@@ -164,13 +246,14 @@ type SupabaseManifestRls = {
164
246
  readonly within?: string;
165
247
  }[];
166
248
  /**
167
- * Every function `rls generate` writes for policies and trusted SQL to
168
- * call: `permdock_has`, `permitted_<scope>_ids`, `member_<scope>_ids` and
169
- * `permdock_user_id`, the caller's user id; in `database` mode `permdock_has_for`, `permitted_<scope>_ids_for` and
249
+ * Every function `rls generate` writes for policies and trusted SQL to call:
250
+ * `permdock_has`, `permitted_<scope>_ids`, `member_<scope>_ids` and
251
+ * `permdock_user_id`, the caller's user id; in `database` mode
252
+ * `permdock_has_for`, `permitted_<scope>_ids_for` and
170
253
  * `member_<scope>_ids_for`; and when a role declares `assigns`,
171
254
  * `permdock_can_assign`, `permdock_can_assign_any` and, with custom roles,
172
- * `permdock_can_assign_custom_role`, each with its `_for` form where one
173
- * is written. A helper whose `execute` is empty is for trusted SQL only.
255
+ * `permdock_can_assign_custom_role`, each with its `_for` form where one is
256
+ * written. A helper whose `execute` is empty is for trusted SQL only.
174
257
  */
175
258
  readonly helpers: readonly SupabaseManifestHelper[];
176
259
  /**
@@ -179,7 +262,10 @@ type SupabaseManifestRls = {
179
262
  * `memberships`.
180
263
  */
181
264
  readonly memberships: readonly SupabaseManifestMembership[];
182
- /** Whether custom roles live in the helpers' tables (`rls.customRoles` in `database` mode). */
265
+ /**
266
+ * Whether custom roles live in the helpers' tables (`rls.customRoles` in
267
+ * `database` mode).
268
+ */
183
269
  readonly customRoles?: boolean;
184
270
  /** The global-roles table the hook and the `database` mode helpers read. */
185
271
  readonly roles?: {
@@ -187,7 +273,10 @@ type SupabaseManifestRls = {
187
273
  readonly user: SupabaseManifestColumn;
188
274
  readonly role: SupabaseManifestRole | readonly SupabaseManifestRole[];
189
275
  };
190
- /** `rls.suspension`: a suspended user, or a suspended scope instance, holds nothing but its scope's `keep`. */
276
+ /**
277
+ * `rls.suspension`: a suspended user, or a suspended scope instance, holds
278
+ * nothing but its scope's `keep`.
279
+ */
191
280
  readonly suspension?: {
192
281
  readonly users?: SupabaseManifestActiveRow;
193
282
  readonly scopes?: Readonly<Record<string, SupabaseManifestActiveRow>>;
@@ -196,14 +285,17 @@ type SupabaseManifestRls = {
196
285
  };
197
286
  };
198
287
  /**
199
- * `rls.assignments`: the tables whose client writes the assignment
200
- * triggers check against `permdock_can_assign_any`, so SQL writing rows
201
- * there needs no role-ceiling check of its own.
288
+ * `rls.assignments`: the tables whose client writes the assignment triggers
289
+ * check against `permdock_can_assign_any`, so SQL writing rows there needs no
290
+ * role-ceiling check of its own.
202
291
  */
203
292
  readonly assignments?: {
204
293
  readonly tables: readonly string[];
205
294
  };
206
- /** `rls.tokenScopes`: the helpers narrow a delegated token by its `scope` claim through `permdock_token_scope_allows`. */
295
+ /**
296
+ * `rls.tokenScopes`: the helpers narrow a delegated token by its `scope`
297
+ * claim through `permdock_token_scope_allows`.
298
+ */
207
299
  readonly tokenScopes?: boolean;
208
300
  readonly apiKeys?: {
209
301
  readonly claim: string;
@@ -219,16 +311,19 @@ type SupabaseManifestRls = {
219
311
  * `authzVersion` or hook `memberships`.
220
312
  */
221
313
  type SupabaseDatabaseManifest = Omit<SupabaseHookManifest, "authzVersion" | "authzVersionBump" | "budget" | "claims" | "hook" | "managementApi" | "memberships">;
222
- /** What `parseSupabaseManifest` returns: a manifest with or without the token hook. */
314
+ /**
315
+ * What `parseSupabaseManifest` returns: a manifest with or without the token
316
+ * hook.
317
+ */
223
318
  type SupabaseManifest = SupabaseDatabaseManifest | SupabaseHookManifest;
224
319
  /** Whether the manifest describes a token hook. */
225
320
  declare function hasTokenHook(manifest: SupabaseManifest): manifest is SupabaseHookManifest;
226
321
  /**
227
322
  * Reads a `permdock.manifest.json` document (parsed, or the JSON text) and
228
323
  * validates it against `schemas/supabase-manifest-v1.json`. Returns a
229
- * deep-frozen copy built from own keys; throws `PermDockValidationError`
230
- * with every issue, so a manifest of another major is refused.
324
+ * deep-frozen copy built from own keys; throws `PermDockValidationError` with
325
+ * every issue, so a manifest of another major is refused.
231
326
  */
232
327
  declare function parseSupabaseManifest(json: unknown): SupabaseManifest;
233
328
  //#endregion
234
- export { SupabaseManifestActiveRow as a, SupabaseManifestMembership as c, SupabaseManifestRole as d, SupabaseManifestThrough as f, parseSupabaseManifest as h, SupabaseManifest as i, SupabaseManifestRequires as l, hasTokenHook as m, SupabaseHookClaim as n, SupabaseManifestColumn as o, SupabaseManifestValue as p, SupabaseHookManifest as r, SupabaseManifestHelper as s, SupabaseDatabaseManifest as t, SupabaseManifestRls as u };
329
+ export { hasTokenHook as _, SupabaseManifestActiveRow as a, SupabaseManifestMembership as c, SupabaseManifestResourceNames as d, SupabaseManifestRls as f, SupabaseManifestValue as g, SupabaseManifestThrough as h, SupabaseManifest as i, SupabaseManifestNames as l, SupabaseManifestScopeNames as m, SupabaseHookClaim as n, SupabaseManifestColumn as o, SupabaseManifestRole as p, SupabaseHookManifest as r, SupabaseManifestHelper as s, SupabaseDatabaseManifest as t, SupabaseManifestRequires as u, parseSupabaseManifest as v };
@@ -1,6 +1,9 @@
1
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
1
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
2
2
  //#region src/supabase/manifest-schema.ts
3
- /** `schemas/supabase-manifest-v1.json`, which `parseSupabaseManifest` checks against; a test keeps the two equal. */
3
+ /**
4
+ * `schemas/supabase-manifest-v1.json`, which `parseSupabaseManifest` checks
5
+ * against; a test keeps the two equal.
6
+ */
4
7
  const supabaseManifestSchema = freezeDeep({
5
8
  $schema: "https://json-schema.org/draft/2020-12/schema",
6
9
  $id: "https://permdock.com/schemas/supabase-manifest-v1.json",
@@ -274,6 +277,44 @@ const supabaseManifestSchema = freezeDeep({
274
277
  grants: { const: "v1" }
275
278
  }
276
279
  },
280
+ names: {
281
+ description: "The SQL names the generated RLS exposes to application SQL, unqualified, in `schema`: per scope and per resource, as `resolveNames` gives them. Absent from a manifest written before 0.8.",
282
+ type: "object",
283
+ required: [
284
+ "schema",
285
+ "gucPrefix",
286
+ "claims",
287
+ "scopes",
288
+ "resources"
289
+ ],
290
+ properties: {
291
+ schema: { type: "string" },
292
+ gucPrefix: { type: "string" },
293
+ claims: {
294
+ type: "object",
295
+ required: ["tenant", "role"],
296
+ properties: {
297
+ tenant: { type: "string" },
298
+ role: { type: "string" }
299
+ }
300
+ },
301
+ teamScope: { type: "string" },
302
+ scopes: {
303
+ type: "object",
304
+ additionalProperties: {
305
+ type: "object",
306
+ additionalProperties: { type: "string" }
307
+ }
308
+ },
309
+ resources: {
310
+ type: "object",
311
+ additionalProperties: {
312
+ type: "object",
313
+ additionalProperties: { type: "string" }
314
+ }
315
+ }
316
+ }
317
+ },
277
318
  requires: {
278
319
  description: "The supabase/sdk capability-matrix feature ids the hook, the helpers and subjectFromSupabase depend on, as of the matrix release tag.",
279
320
  type: "object",
@@ -363,7 +404,7 @@ const supabaseManifestSchema = freezeDeep({
363
404
  },
364
405
  helperName: {
365
406
  type: "string",
366
- pattern: "^(permdock_has(_for)?|permitted_[a-z][a-z0-9_]*_(ids|permission_keys)(_for)?|permitted_[a-z][a-z0-9_]*_users|member_[a-z][a-z0-9_]*_ids(_for)?|permdock_can_assign(_any|_custom_role)?(_for)?|permdock_api_key_allows|permdock_token_scope_allows|permdock_actor_may_write|permdock_is_approver|permdock_user_id)$"
407
+ pattern: "^(permdock_has(_for)?|permitted_[a-z][a-z0-9_]*_(ids|permission_keys)(_for)?|permitted_[a-z][a-z0-9_]*_users|member_[a-z][a-z0-9_]*_ids(_for|_of)?|permdock_can_assign(_any|_custom_role)?(_for)?|permdock_api_key_allows|permdock_token_scope_allows|permdock_actor_may_write|permdock_is_approver|permdock_user_id)$"
367
408
  },
368
409
  column: {
369
410
  type: "object",