permdock 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-BcudBQOF.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-Ch07MdxN.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-BpS7LnV0.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-DTjR8xet.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-C6Jg75xq.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
  35. package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-BWXqwQYU.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
  45. package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
  46. package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-CGlSwU6j.js} +20 -19
  52. package/dist/catalog-D3oS2GH3.js +1 -0
  53. package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
  54. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  55. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  56. package/dist/catalog-operations-DeHTrJSV.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-3kWfjnYy.js} +4 -5
  77. package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
  78. package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
  79. package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
  80. package/dist/collect-D-eroIfV.js +1 -0
  81. package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BEklRUYo.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
  98. package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
  99. package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
  100. package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
  101. package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
  102. package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
  103. package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-DHldhVUv.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
  127. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  128. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
  130. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
  131. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-BIbBAtPZ.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-BFfzZSLH.js +58 -0
  150. package/dist/gen-BtfFWGbz.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  164. package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
  169. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  170. package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
  171. package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
  172. package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
  173. package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
  174. package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
  175. package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +34 -34
  178. package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
  179. package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-qv4cr9w8.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-CfImTJGb.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-C-nv08_n.js} +16 -9
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +79 -26
  212. package/dist/next/index.js +121 -10
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
  223. package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
  224. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/{output-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
  232. package/dist/output-files-BHOIlrfD.js +1 -0
  233. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  234. package/dist/ownership-DA5YdYTm.js +1059 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-CCmbhnxP.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
  245. package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-CYcHj_w7.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-BycVKnXv.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CU3An8uP.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-DGIO_gxq.d.ts} +782 -357
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
  262. package/dist/powersync-B701tvhE.js +1 -0
  263. package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
  264. package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-D8x73IGm.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DfLeek9O.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
  282. package/dist/pull-C3EEGzSw.js +1 -0
  283. package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
  284. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
  285. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-Bs9Df2fQ.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-ConCSj1y.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
  306. package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-vHIwyXCp.js} +8 -5
  310. package/dist/run-Ck22anC2.js +1 -0
  311. package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-DK4V-3Is.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CyRN0-Cd.d.ts} +88 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
  333. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  334. package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
  335. package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  344. package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-C_pi2Rnh.js} +292 -101
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  351. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-DZJvxFIZ.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
  357. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-DnMMg5Fn.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
  368. package/dist/supabase-hook-C0FyEACZ.js +1 -0
  369. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
  370. package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-BqrxBCir.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +225 -141
  394. package/dist/testing/index.js +352 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-c7Xo_2Cu.d.ts +50 -0
  407. package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
  408. package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
  409. package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
  410. package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
  411. package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
  412. package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
  413. package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
  414. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  415. package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
  416. package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
  417. package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
  418. package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
  419. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  420. package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
  421. package/dist/types-tQB2CEnY.d.ts +262 -0
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-0hjZPIRX.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-uvp-kyfO.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DlUcTDBz.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-CqUKX6CY.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
  441. package/dist/watch-ClLuO2TL.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-BoDJm0Nc.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DxXB54Wu.d.ts} +8 -5
  452. package/package.json +8 -8
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +16 -23
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -1,8 +1,11 @@
1
1
  import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
- import { i as readAppData } from "./app-data-MuyzVqX8.js";
3
- import { a as quoteQualifiedTable, c as quoteSqlTable, d as sqlTextArray, i as qualifySqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, u as sqlRows } from "./sql-B96movIM.js";
2
+ import { i as readAppData } from "./app-data-UNNm07jV.js";
3
+ import { a as quoteQualifiedTable, c as quoteSqlTable, d as sqlTextArray, i as qualifySqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, u as sqlRows } from "./sql-0WjxIp9g.js";
4
4
  //#region src/supabase/keep.ts
5
- /** The permission keys of a suspended scope's `keep`, references read by `key`, sorted and unique. */
5
+ /**
6
+ * The permission keys of a suspended scope's `keep`, references read by `key`,
7
+ * sorted and unique.
8
+ */
6
9
  function keptKeys(row) {
7
10
  const keep = row?.keep;
8
11
  if (keep === void 0) return [];
@@ -30,8 +33,8 @@ function activeRow(row, id) {
30
33
  return `exists (select 1 from ${quoteQualifiedTable(row.table)} s where ${parts.join(" and ")})`;
31
34
  }
32
35
  /**
33
- * The suspendable instances on the row's chain whose scope keeps
34
- * permissions: each one's active check and its kept keys.
36
+ * The suspendable instances on the row's chain whose scope keeps permissions:
37
+ * each one's active check and its kept keys.
35
38
  */
36
39
  function keeping(shape) {
37
40
  const scopes = Object.entries(shape.suspension?.scopes ?? {}).flatMap(([name, row]) => {
@@ -55,9 +58,8 @@ function keepsDisabled(shape) {
55
58
  return shape.disabledAt !== void 0 && keptKeys(shape.suspension?.memberships).length > 0;
56
59
  }
57
60
  /**
58
- * The keys a row on a suspended chain still grants, as a sorted `jsonb`
59
- * array: the keys every suspended instance on it keeps. `null` when nothing
60
- * is kept.
61
+ * The keys a row on a suspended chain still grants, as a sorted `jsonb` array:
62
+ * the keys every suspended instance on it keeps. `null` when nothing is kept.
61
63
  */
62
64
  function keptSql(shape) {
63
65
  const list = keeping(shape);
@@ -167,10 +169,10 @@ function isRoleList(role) {
167
169
  }
168
170
  /**
169
171
  * Resolves the role sources of `table` (`schema.table`, or `public`). An
170
- * unqualified `through` table is in `table`'s schema. `label` names the
171
- * option in the error for an `on` that is not exactly one column; `prefix`
172
- * starts every error. A row with several sources holds the union of their
173
- * non-null keys.
172
+ * unqualified `through` table is in `table`'s schema. `label` names the option
173
+ * in the error for an `on` that is not exactly one column; `prefix` starts
174
+ * every error. A row with several sources holds the union of their non-null
175
+ * keys.
174
176
  */
175
177
  function roleColumn(role, table, alias, options) {
176
178
  if (!isRoleList(role)) return singleRole(role, table, alias, options);
@@ -253,7 +255,10 @@ function singleRole(role, table, alias, options) {
253
255
  nullable: false
254
256
  };
255
257
  }
256
- /** The manifest entry of one role source: the column, and the roles table it references. */
258
+ /**
259
+ * The manifest entry of one role source: the column, and the roles table it
260
+ * references.
261
+ */
257
262
  function sourceManifest(column, through, map) {
258
263
  if (map !== void 0) return {
259
264
  column,
@@ -272,7 +277,10 @@ function sourceManifest(column, through, map) {
272
277
  function columnManifest(role) {
273
278
  return sourceManifest(role.column, role.through);
274
279
  }
275
- /** The manifest entry of a role column, or one entry per source of a row with several. */
280
+ /**
281
+ * The manifest entry of a role column, or one entry per source of a row with
282
+ * several.
283
+ */
276
284
  function roleManifest(role) {
277
285
  if (!role.lateral) return sourceManifest(role.column, role.through, role.map);
278
286
  return role.columns.map((column) => sourceManifest(column, role.throughs.find((through) => through.ref === column)));
@@ -284,7 +292,10 @@ const literal = quoteSqlLiteral;
284
292
  function isFixed(roles) {
285
293
  return Array.isArray(roles);
286
294
  }
287
- /** A role column of the membership table, aliased `m`; a `through` column joins its roles table as `mk`. */
295
+ /**
296
+ * A role column of the membership table, aliased `m`; a `through` column joins
297
+ * its roles table as `mk`.
298
+ */
288
299
  function memberRole(role, table, label, guard) {
289
300
  return roleColumn(role, qualifySqlTable(table), "m", {
290
301
  label,
@@ -292,7 +303,10 @@ function memberRole(role, table, label, guard) {
292
303
  ...guard === void 0 ? {} : { guard }
293
304
  });
294
305
  }
295
- /** The user of the membership table, aliased `m`; a `through` user joins its table as `mu`. */
306
+ /**
307
+ * The user of the membership table, aliased `m`; a `through` user joins its
308
+ * table as `mu`.
309
+ */
296
310
  function memberUser(user, table, label) {
297
311
  const column = roleColumn(user, qualifySqlTable(table), "m", {
298
312
  label,
@@ -384,9 +398,10 @@ function sourceOf(sql, query) {
384
398
  }
385
399
  /**
386
400
  * `ctx.postgres` (from `withPostgresClient`) or `ctx.postgresAdmin` as a
387
- * `SqlQuery` for `tableMembershipSource`, `junctionMembershipSource` and `supabaseApprovalStore`.
388
- * `ctx.postgres` runs as the caller under RLS, so the membership tables must
389
- * be readable by `authenticated`; `ctx.postgresAdmin` bypasses RLS.
401
+ * `SqlQuery` for `tableMembershipSource`, `junctionMembershipSource` and
402
+ * `supabaseApprovalStore`. `ctx.postgres` runs as the caller under RLS, so the
403
+ * membership tables must be readable by `authenticated`; `ctx.postgresAdmin`
404
+ * bypasses RLS.
390
405
  */
391
406
  function optionalColumn(name, cast) {
392
407
  return name === void 0 ? `null::${cast}` : `${col(name)}::${cast}`;
@@ -396,9 +411,9 @@ function supabasePostgresQuery(postgres) {
396
411
  }
397
412
  /**
398
413
  * Memberships from one table holding every scope: a row per user, scope,
399
- * instance and role (`user_id, scope, scope_id, role`), with optional
400
- * `within`, `via`, expiry, owner and seat columns. Rows of the same instance
401
- * merge into one membership.
414
+ * instance and role (`user_id, scope, scope_id, role`), with optional `within`,
415
+ * `via`, expiry, owner and seat columns. Rows of the same instance merge into
416
+ * one membership.
402
417
  */
403
418
  function tableMembershipSource(options) {
404
419
  return tableSource(options, void 0);
@@ -604,12 +619,15 @@ function junctionSource(options, guard) {
604
619
  }
605
620
  const AUTHZ_VERSION_TABLE = "permdock_authz_version";
606
621
  /**
607
- * The default schema of everything PermDock generates: helpers, seeds, the
608
- * RBAC scaffold, the hook and the version table. Keep it out of the Data
609
- * API's exposed schemas, so the `security definer` functions are not RPCs.
622
+ * The default schema of everything PermDock generates: helpers, seeds, the RBAC
623
+ * scaffold, the hook and the version table. Keep it out of the Data API's
624
+ * exposed schemas, so the `security definer` functions are not RPCs.
610
625
  */
611
626
  const PERMDOCK_SCHEMA = "permdock";
612
- /** Where `supabase.hook.api` puts the PostgREST wrappers, and the prefix of their names. */
627
+ /**
628
+ * Where `supabase.hook.api` puts the PostgREST wrappers, and the prefix of
629
+ * their names.
630
+ */
613
631
  const HOOK_API_SCHEMA = "public";
614
632
  const HOOK_API_PREFIX = "permdock_";
615
633
  /** The wrapper function names of `supabase.hook.api` for `prefix`. */
@@ -622,7 +640,8 @@ function hookApiNames(prefix = HOOK_API_PREFIX) {
622
640
  }
623
641
  /**
624
642
  * Reads the authorization version `permdock supabase hook generate` keeps in
625
- * `<schema>.permdock_authz_version`: pass it to `claimsFirst(sources, { version })`.
643
+ * `<schema>.permdock_authz_version`: pass it to `claimsFirst(sources, { version
644
+ * })`.
626
645
  */
627
646
  function authzVersion(options) {
628
647
  const table = quoteQualifiedTable(`${options.schema ?? "permdock"}.${AUTHZ_VERSION_TABLE}`);
@@ -1,7 +1,7 @@
1
- import { et as MembershipSource } from "./policy-types-B-F-qAZk.js";
2
- import { b as SupabaseSuspension, n as RoleMap, r as RoleThrough } from "./types-BfVmNJO5.js";
3
- import { t as SqlQuery } from "./sql-CDEPCA0g.js";
4
- import { c as SupabaseManifestMembership } from "./manifest-BVhExYhw.js";
1
+ import { nt as MembershipSource } from "./policy-types-DGIO_gxq.js";
2
+ import { n as RoleMap, r as RoleThrough, x as SupabaseSuspension } from "./types-BMVDHvI0.js";
3
+ import { t as SqlQuery } from "./sql-B80DFdpG.js";
4
+ import { c as SupabaseManifestMembership } from "./manifest-CzzWtnAb.js";
5
5
  //#region src/supabase/roles.d.ts
6
6
  /** A roles table a role column references, by `schema.table`. */
7
7
  type RoleKeys = {
@@ -13,7 +13,10 @@ type RoleKeys = {
13
13
  /** The referencing table's column. */
14
14
  readonly ref: string;
15
15
  };
16
- /** One role source of a membership row: a key column, or a reference to a roles table. */
16
+ /**
17
+ * One role source of a membership row: a key column, or a reference to a roles
18
+ * table.
19
+ */
17
20
  type RoleSource = string | RoleThrough | RoleMap;
18
21
  /** A role source, or several the row holds at once. */
19
22
  type RoleSpec = RoleSource | readonly RoleSource[];
@@ -27,7 +30,10 @@ type RoleGuard = {
27
30
  readonly table: string;
28
31
  /** The tenant column of the roles table. */
29
32
  readonly tenant: string;
30
- /** A tenant row with this column true is the application's own copy of a declared role. */
33
+ /**
34
+ * A tenant row with this column true is the application's own copy of a
35
+ * declared role.
36
+ */
31
37
  readonly skip?: string | undefined;
32
38
  readonly declared: readonly string[];
33
39
  };
@@ -35,13 +41,22 @@ type RoleGuard = {
35
41
  //#region src/supabase/sources.d.ts
36
42
  type Common = {
37
43
  readonly table: string;
38
- /** Runs the lookups; without it the source only describes SQL (for `permdock supabase hook generate`). */
44
+ /**
45
+ * Runs the lookups; without it the source only describes SQL (for `permdock
46
+ * supabase hook generate`).
47
+ */
39
48
  readonly query?: SqlQuery;
40
- /** Drop suspended users and memberships under suspended instances, like `rls.suspension`. */
49
+ /**
50
+ * Drop suspended users and memberships under suspended instances, like
51
+ * `rls.suspension`.
52
+ */
41
53
  readonly suspension?: SupabaseSuspension;
42
54
  };
43
55
  type MembershipTableOptions = Common & {
44
- /** Column names; `user`, `scope`, `id` and `role` default to `user_id`, `scope`, `scope_id`, `role`. */
56
+ /**
57
+ * Column names; `user`, `scope`, `id` and `role` default to `user_id`,
58
+ * `scope`, `scope_id`, `role`.
59
+ */
45
60
  readonly columns?: {
46
61
  /** The user id column, or a reference to a table that holds the user id. */
47
62
  readonly user?: string | RoleThrough;
@@ -50,8 +65,8 @@ type MembershipTableOptions = Common & {
50
65
  /** A `jsonb` column of ancestor ids keyed by scope name. */
51
66
  readonly within?: string;
52
67
  /**
53
- * The role key column, a reference to a roles table that holds the key,
54
- * or several of them: the row holds every non-null key.
68
+ * The role key column, a reference to a roles table that holds the key, or
69
+ * several of them: the row holds every non-null key.
55
70
  */
56
71
  readonly role?: RoleSpec;
57
72
  readonly via?: string;
@@ -63,7 +78,10 @@ type MembershipTableOptions = Common & {
63
78
  readonly reason?: string;
64
79
  /** A subgroup column filling `member.group`. */
65
80
  readonly group?: string;
66
- /** A text column; the value `idp` marks the row as owned by the identity provider. */
81
+ /**
82
+ * A text column; the value `idp` marks the row as owned by the identity
83
+ * provider.
84
+ */
67
85
  readonly managedBy?: string;
68
86
  /** A `text[]` column of seats. */
69
87
  readonly seats?: string;
@@ -74,16 +92,19 @@ type MembershipTableOptions = Common & {
74
92
  type MembershipJunctionOptions = Common & {
75
93
  /** The declared scope every row is a membership of. */
76
94
  readonly scope: string;
77
- /** The user id column (default `user_id`), or a reference to a table that holds the user id. */
95
+ /**
96
+ * The user id column (default `user_id`), or a reference to a table that
97
+ * holds the user id.
98
+ */
78
99
  readonly user?: string | RoleThrough;
79
100
  /** The column holding the scope instance id. Default `<scope>_id`. */
80
101
  readonly id?: string;
81
102
  /** Ancestor id columns keyed by scope name. */
82
103
  readonly within?: Readonly<Record<string, string>>;
83
104
  /**
84
- * A role column, a reference to a roles table that holds the key, fixed
85
- * roles every row holds (a contact table with no role column), or
86
- * `{ sources }`: several role columns whose non-null keys the row holds.
105
+ * A role column, a reference to a roles table that holds the key, fixed roles
106
+ * every row holds (a contact table with no role column), or `{ sources }`:
107
+ * several role columns whose non-null keys the row holds.
87
108
  */
88
109
  readonly roles: string | RoleThrough | RoleMap | readonly string[] | {
89
110
  readonly sources: readonly RoleSource[];
@@ -100,7 +121,10 @@ type MembershipJunctionOptions = Common & {
100
121
  readonly group?: string | {
101
122
  readonly column: string;
102
123
  };
103
- /** `idp` when the identity provider owns every row, or a text column holding `idp` per row. */
124
+ /**
125
+ * `idp` when the identity provider owns every row, or a text column holding
126
+ * `idp` per row.
127
+ */
104
128
  readonly managedBy?: "idp" | {
105
129
  readonly column: string;
106
130
  };
@@ -109,51 +133,81 @@ type MembershipJunctionOptions = Common & {
109
133
  /** A `jsonb` column of app data (`Membership.x`); never written into claims. */
110
134
  readonly x?: string;
111
135
  };
112
- /** What `permdock supabase hook generate` compiles; the same SQL the source runs. */
136
+ /**
137
+ * What `permdock supabase hook generate` compiles; the same SQL the source
138
+ * runs.
139
+ */
113
140
  type MembershipSql = {
114
141
  readonly table: string;
115
- /** The table's user column: the user id, or with `userThrough` the reference to the row holding it. */
142
+ /**
143
+ * The table's user column: the user id, or with `userThrough` the reference
144
+ * to the row holding it.
145
+ */
116
146
  readonly user: string;
117
- /** The table that holds the user id when `user` references it; a change of that id bumps the old and the new user. */
147
+ /**
148
+ * The table that holds the user id when `user` references it; a change of
149
+ * that id bumps the old and the new user.
150
+ */
118
151
  readonly userThrough?: RoleKeys;
119
- /** `<table>.<user>%type`: the PL/pgSQL type of the user id column, for a variable `select` compares with. */
152
+ /**
153
+ * `<table>.<user>%type`: the PL/pgSQL type of the user id column, for a
154
+ * variable `select` compares with.
155
+ */
120
156
  readonly userType: string;
121
157
  /**
122
- * The `select` of claim rows for one user, with every filter applied.
123
- * `user` must have the column's type (a `userType` variable, or an untyped
124
- * `$1` Postgres infers): the column is compared uncast so its index applies.
125
- * `keep` adds the `keep` column; it defaults to `keeps`, and a `union`
126
- * with a source that keeps passes `true`.
158
+ * The `select` of claim rows for one user, with every filter applied. `user`
159
+ * must have the column's type (a `userType` variable, or an untyped `$1`
160
+ * Postgres infers): the column is compared uncast so its index applies.
161
+ * `keep` adds the `keep` column; it defaults to `keeps`, and a `union` with a
162
+ * source that keeps passes `true`.
127
163
  */
128
- select(user: string, keep?: boolean): string;
164
+ select: (user: string, keep?: boolean) => string;
129
165
  /** The `select` of member rows for one scope instance (`$1` scope, `$2` id). */
130
- list(keep?: boolean): string;
131
- /** A suspended scope on the source keeps permissions: rows of its suspended instances stay, with a `keep` column. */
166
+ list: (keep?: boolean) => string;
167
+ /**
168
+ * A suspended scope on the source keeps permissions: rows of its suspended
169
+ * instances stay, with a `keep` column.
170
+ */
132
171
  readonly keeps: boolean;
133
- /** A text column holding `idp` for rows the identity provider owns; `''` when every row is owned. */
172
+ /**
173
+ * A text column holding `idp` for rows the identity provider owns; `''` when
174
+ * every row is owned.
175
+ */
134
176
  readonly managed?: string;
135
177
  /** Other tables the `select` reads (suspension tables). */
136
178
  readonly reads: readonly string[];
137
- /** The roles table the role column references; a key change bumps every holder's authorization version. */
179
+ /**
180
+ * The roles table the role column references; a key change bumps every
181
+ * holder's authorization version.
182
+ */
138
183
  readonly through?: RoleKeys;
139
184
  /** Every roles table the role columns reference, `through` first. */
140
185
  readonly throughs: readonly RoleKeys[];
141
- /** Every column that decides who holds which membership: user, scope, id, `within`, role, `via` and expiry. */
186
+ /**
187
+ * Every column that decides who holds which membership: user, scope, id,
188
+ * `within`, role, `via` and expiry.
189
+ */
142
190
  readonly columns: readonly string[];
143
- /** For a single-scope source: its scope and the scopes whose ids each row carries. */
191
+ /**
192
+ * For a single-scope source: its scope and the scopes whose ids each row
193
+ * carries.
194
+ */
144
195
  readonly scope?: string;
145
196
  readonly holds?: readonly string[];
146
197
  /** The source's entry in the hook manifest's `memberships`. */
147
198
  readonly manifest: SupabaseManifestMembership;
148
199
  /** What the ownership triggers count; absent on a source that is not a table. */
149
200
  readonly holders?: MembershipHolders;
150
- /** The rows as plain columns, for Sync Streams and `powerSyncSource`; a source without it does not sync. */
201
+ /**
202
+ * The rows as plain columns, for Sync Streams and `powerSyncSource`; a source
203
+ * without it does not sync.
204
+ */
151
205
  readonly stream?: MembershipStream;
152
206
  };
153
207
  /**
154
- * One membership source as columns a Sync Streams query can filter on.
155
- * Tables are `schema.table`; a `through` table is qualified in the source's
156
- * schema when it names none.
208
+ * One membership source as columns a Sync Streams query can filter on. Tables
209
+ * are `schema.table`; a `through` table is qualified in the source's schema
210
+ * when it names none.
157
211
  */
158
212
  type MembershipStream = {
159
213
  readonly table: string;
@@ -166,7 +220,10 @@ type MembershipStream = {
166
220
  readonly value: string;
167
221
  };
168
222
  readonly id: string;
169
- /** The role sources (the row holds every non-null key), or the fixed roles every row holds. */
223
+ /**
224
+ * The role sources (the row holds every non-null key), or the fixed roles
225
+ * every row holds.
226
+ */
170
227
  readonly roles: RoleSpec | {
171
228
  readonly value: readonly string[];
172
229
  };
@@ -178,9 +235,15 @@ type MembershipStream = {
178
235
  };
179
236
  readonly expiresAt?: string;
180
237
  readonly disabledAt?: string;
181
- /** A row may hold no role key: such a row is no membership, and a reader drops it. */
238
+ /**
239
+ * A row may hold no role key: such a row is no membership, and a reader drops
240
+ * it.
241
+ */
182
242
  readonly nullableRoles: boolean;
183
- /** The guard the source reads its roles table with: a tenant row named like a declared role is no role. */
243
+ /**
244
+ * The guard the source reads its roles table with: a tenant row named like a
245
+ * declared role is no role.
246
+ */
184
247
  readonly guard?: RoleGuard;
185
248
  };
186
249
  /**
@@ -189,23 +252,32 @@ type MembershipStream = {
189
252
  * suspended holder still holds the role.
190
253
  */
191
254
  type MembershipHolders = {
192
- /** `<table>.<id column>%type`: the type of a variable `rows` compares the id column with. */
255
+ /**
256
+ * `<table>.<id column>%type`: the type of a variable `rows` compares the id
257
+ * column with.
258
+ */
193
259
  readonly idType: string;
194
- /** The instance id of scope `scope` the PL/pgSQL record `row` holds, as text; null on a row of another scope. */
195
- id(scope: string, row: string): string;
196
260
  /**
197
- * `select id, user_id, role, via, live` over the rows of scope `scope`
198
- * in `from` (default the table): one row per held role key, `live` false
199
- * once expired. `id` is an expression of `idType` the id column must equal.
261
+ * The instance id of scope `scope` the PL/pgSQL record `row` holds, as text;
262
+ * null on a row of another scope.
263
+ */
264
+ id: (scope: string, row: string) => string;
265
+ /**
266
+ * `select id, user_id, role, via, live` over the rows of scope `scope` in
267
+ * `from` (default the table): one row per held role key, `live` false once
268
+ * expired. `id` is an expression of `idType` the id column must equal.
200
269
  */
201
- rows(scope: string, options?: {
270
+ rows: (scope: string, options?: {
202
271
  readonly id?: string;
203
272
  readonly from?: string;
204
- }): string;
273
+ }) => string;
205
274
  };
206
275
  type SqlMembershipSource = MembershipSource & {
207
276
  readonly sql: MembershipSql;
208
- /** The same source with the role keys of tenant rows of `guard.table` named like a declared role read as null. */
277
+ /**
278
+ * The same source with the role keys of tenant rows of `guard.table` named
279
+ * like a declared role read as null.
280
+ */
209
281
  readonly guarded?: (guard: RoleGuard) => SqlMembershipSource;
210
282
  };
211
283
  /** The part of `@supabase/server`'s `PostgresApi` a `SqlQuery` needs. */
@@ -215,9 +287,9 @@ type SupabasePostgres = {
215
287
  declare function supabasePostgresQuery(postgres: SupabasePostgres): SqlQuery;
216
288
  /**
217
289
  * Memberships from one table holding every scope: a row per user, scope,
218
- * instance and role (`user_id, scope, scope_id, role`), with optional
219
- * `within`, `via`, expiry, owner and seat columns. Rows of the same instance
220
- * merge into one membership.
290
+ * instance and role (`user_id, scope, scope_id, role`), with optional `within`,
291
+ * `via`, expiry, owner and seat columns. Rows of the same instance merge into
292
+ * one membership.
221
293
  */
222
294
  declare function tableMembershipSource(options: MembershipTableOptions): SqlMembershipSource;
223
295
  /**
@@ -229,7 +301,8 @@ declare function junctionMembershipSource(options: MembershipJunctionOptions): S
229
301
  declare const AUTHZ_VERSION_TABLE = "permdock_authz_version";
230
302
  /**
231
303
  * Reads the authorization version `permdock supabase hook generate` keeps in
232
- * `<schema>.permdock_authz_version`: pass it to `claimsFirst(sources, { version })`.
304
+ * `<schema>.permdock_authz_version`: pass it to `claimsFirst(sources, { version
305
+ * })`.
233
306
  */
234
307
  declare function authzVersion(options: {
235
308
  readonly query: SqlQuery;
@@ -1,9 +1,15 @@
1
1
  //#region src/core/sql.ts
2
- /** The rows of a `SqlQuery` result, whichever of its two shapes the driver resolved. */
2
+ /**
3
+ * The rows of a `SqlQuery` result, whichever of its two shapes the driver
4
+ * resolved.
5
+ */
3
6
  function sqlRows(result) {
4
7
  return Array.isArray(result) ? result : result.rows;
5
8
  }
6
- /** A bare Postgres identifier PermDock emits unquoted-safe: letters, digits and `_`, not starting with a digit. */
9
+ /**
10
+ * A bare Postgres identifier PermDock emits unquoted-safe: letters, digits and
11
+ * `_`, not starting with a digit.
12
+ */
7
13
  const SQL_IDENT = /^[A-Za-z_][A-Za-z0-9_]*$/u;
8
14
  /** A validated, double-quoted identifier; anything outside `SQL_IDENT` throws. */
9
15
  function quoteSqlIdent(name, prefix = "PermDock") {
@@ -17,21 +23,33 @@ function quoteSqlTable(name, prefix = "PermDock") {
17
23
  function quoteSqlLiteral(value) {
18
24
  return `'${value.replaceAll("'", "''")}'`;
19
25
  }
20
- /** A double-quoted identifier read back from a database, embedded quotes doubled rather than refused. */
26
+ /**
27
+ * A double-quoted identifier read back from a database, embedded quotes doubled
28
+ * rather than refused.
29
+ */
21
30
  function escapeSqlIdent(name) {
22
31
  return `"${name.replaceAll("\"", "\"\"")}"`;
23
32
  }
24
33
  const PLAIN_IDENT = /^[a-z_][a-z0-9_]*$/u;
25
- /** An identifier left bare when it is already lower snake case, otherwise quoted by `escapeSqlIdent`. */
34
+ /**
35
+ * An identifier left bare when it is already lower snake case, otherwise quoted
36
+ * by `escapeSqlIdent`.
37
+ */
26
38
  function sqlIdent(name) {
27
39
  return PLAIN_IDENT.test(name) ? name : escapeSqlIdent(name);
28
40
  }
29
- /** The plain-identifier check behind `quoteSqlIdent`, returning the name unquoted. */
41
+ /**
42
+ * The plain-identifier check behind `quoteSqlIdent`, returning the name
43
+ * unquoted.
44
+ */
30
45
  function assertSqlIdent(name, prefix = "PermDock") {
31
46
  if (!SQL_IDENT.test(name)) throw new TypeError(`${prefix}: unsafe SQL identifier '${name}'`);
32
47
  return name;
33
48
  }
34
- /** `name` with `public.` added when it names no schema; generated functions run with `search_path = ''`. */
49
+ /**
50
+ * `name` with `public.` added when it names no schema; generated functions run
51
+ * with `search_path = ''`.
52
+ */
35
53
  function qualifySqlTable(name) {
36
54
  return name.includes(".") ? name : `public.${name}`;
37
55
  }
@@ -43,7 +61,10 @@ function quoteQualifiedTable(name, prefix = "PermDock") {
43
61
  function sqlTextArray(values) {
44
62
  return values.length === 0 ? `'{}'::text[]` : `array[${values.map(quoteSqlLiteral).join(", ")}]::text[]`;
45
63
  }
46
- /** The SQL command a default verb runs: `read`, `list` and `get` select, `create` inserts, `update` and `delete` keep their name. */
64
+ /**
65
+ * The SQL command a default verb runs: `read`, `list` and `get` select,
66
+ * `create` inserts, `update` and `delete` keep their name.
67
+ */
47
68
  function defaultSqlCommand(action) {
48
69
  switch (action) {
49
70
  case "read":
@@ -1,7 +1,7 @@
1
1
  //#region src/core/sql.d.ts
2
2
  /**
3
- * Runs one parameterised statement: `pg`'s `client.query` (which resolves
4
- * `{ rows }`) and `postgres`'s `sql.unsafe` (which resolves the rows) both fit.
3
+ * Runs one parameterised statement: `pg`'s `client.query` (which resolves `{
4
+ * rows }`) and `postgres`'s `sql.unsafe` (which resolves the rows) both fit.
5
5
  */
6
6
  type SqlQuery = (text: string, values: readonly unknown[]) => Promise<readonly Record<string, unknown>[] | {
7
7
  readonly rows: readonly Record<string, unknown>[];