permdock 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/README.md +2 -3
  2. package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
  3. package/dist/a2a/index.d.ts +7 -7
  4. package/dist/a2a/index.js +9 -9
  5. package/dist/action-result-CL-QCITA.d.ts +19 -0
  6. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  7. package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-BLs67P1l.js} +5 -5
  8. package/dist/agent/index.d.ts +3 -3
  9. package/dist/agent/index.js +1 -1
  10. package/dist/ai-sdk/index.d.ts +31 -10
  11. package/dist/ai-sdk/index.js +22 -12
  12. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  13. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  15. package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  16. package/dist/approvals/index.d.ts +5 -5
  17. package/dist/approvals/index.js +7 -7
  18. package/dist/{approvals-p1PGoVjb.js → approvals-DnIBTuXE.js} +128 -78
  19. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  20. package/dist/{arazzo-41WuzHou.js → arazzo-3RhGfkAK.js} +2 -2
  21. package/dist/{arazzo-CaUVBn7D.js → arazzo-B5-ulWif.js} +6 -6
  22. package/dist/{args-IIolxxKA.js → args-0FrVs5EH.js} +125 -8
  23. package/dist/astro/index.d.ts +30 -12
  24. package/dist/astro/index.js +2 -2
  25. package/dist/{audience-DabClFLQ.js → audience-BAkBDMqn.js} +8 -8
  26. package/dist/{auth-DRLEizbL.js → auth--yPyZNgr.js} +21 -10
  27. package/dist/authzen/index.d.ts +171 -25
  28. package/dist/authzen/index.js +321 -149
  29. package/dist/{automation-BNM3TtDo.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  30. package/dist/{automation-DVjOckjV.js → automation-x3KEUusw.js} +22 -21
  31. package/dist/base-url-BQbddZO5.js +9 -0
  32. package/dist/better-auth/index.d.ts +2 -2
  33. package/dist/better-auth/index.js +13 -7
  34. package/dist/better-supabase/index.d.ts +392 -220
  35. package/dist/better-supabase/index.js +293 -152
  36. package/dist/{bind-DOyrv6zi.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  37. package/dist/{bind-CAvgUuKs.js → bind-D_sZSVA3.js} +22 -10
  38. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  39. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  40. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  41. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  42. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  43. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  44. package/dist/{build-instance-Bu_eDqYw.js → build-instance-CNWaYJyr.js} +3 -3
  45. package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
  46. package/dist/{capability-N1K9IpqS.js → capability-BqX94r07.js} +31 -25
  47. package/dist/{capability-Drg-1YhL.d.ts → capability-ChuiONQU.d.ts} +41 -29
  48. package/dist/{casbin-Dyu2gnUD.js → casbin-H0rKxBx2.js} +16 -8
  49. package/dist/{casbin-Cr7RLtA3.js → casbin-cbSbhT_k.js} +2 -2
  50. package/dist/{casl-64gpT-8x.js → casl-C4OINZHI.js} +2 -2
  51. package/dist/{casl-DjEDhTCP.js → casl-CHHoCldP.js} +19 -10
  52. package/dist/catalog/index.d.ts +104 -23
  53. package/dist/catalog/index.js +117 -8
  54. package/dist/{catalog-HD2gf5mY.js → catalog-BFpz2EmT.js} +57 -26
  55. package/dist/{catalog-DZVbrF-z.js → catalog-DCspHDc8.js} +3 -3
  56. package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-DjMKzJp9.js} +53 -16
  57. package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-e6aCWosn.js} +19 -15
  58. package/dist/catalog-mRQQQhNK.js +1 -0
  59. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  60. package/dist/{create-CQWIpUG-.js → challenge-DImNcR7B.js} +157 -39
  61. package/dist/chat/index.d.ts +1 -1
  62. package/dist/chat/index.js +13 -10
  63. package/dist/chat-sdk/index.d.ts +44 -26
  64. package/dist/chat-sdk/index.js +17 -17
  65. package/dist/checks-CGkP3Z7A.js +40 -0
  66. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  67. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  68. package/dist/claude-agent/index.d.ts +6 -6
  69. package/dist/claude-agent/index.js +6 -3
  70. package/dist/clerk/index.d.ts +11 -7
  71. package/dist/clerk/index.js +6 -6
  72. package/dist/cli/bin.js +4 -4
  73. package/dist/cli/index.d.ts +82 -7
  74. package/dist/cli/index.js +6 -6
  75. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  76. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  77. package/dist/cloud/index.d.ts +186 -38
  78. package/dist/cloud/index.js +293 -31
  79. package/dist/{cloud-ytQ3uviA.js → cloud-BFlGMaak.js} +5 -6
  80. package/dist/{codemod-5mpSpnUY.js → codemod-DLQ9Zpo4.js} +3 -4
  81. package/dist/{codemod-ua2hHy7w.js → codemod-DWSN2erG.js} +523 -201
  82. package/dist/collect-B5BL3klN.js +1 -0
  83. package/dist/{collect-mLTY4nwb.js → collect-B7ZFAJU3.js} +36 -64
  84. package/dist/{collect-Ci6akVwH.js → collect-Bzv3le0A.js} +6 -6
  85. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  86. package/dist/compile/index.d.ts +2 -2
  87. package/dist/compile/index.js +1 -1
  88. package/dist/{compile-1bsAezL0.d.ts → compile-BFzysW3o.d.ts} +36 -12
  89. package/dist/{compile-CMqMx_IN.js → compile-EzEMB-7v.js} +77 -33
  90. package/dist/{completion-BTFrHZhX.js → completion-saoYiRFO.js} +17 -8
  91. package/dist/config-BwPBfN0t.js +108 -0
  92. package/dist/{config-Bj2Ixq3d.js → config-DBeXXmBF.js} +2 -2
  93. package/dist/{config-report-DSpsLpCE.js → config-report-BipSWA6V.js} +9 -6
  94. package/dist/config-shape-ykV0Vm2n.js +134 -0
  95. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  96. package/dist/connector-schema-CYLQNMYq.js +434 -0
  97. package/dist/{context-B_u3_bDJ.js → context-BnIzxTNE.js} +4 -3
  98. package/dist/convex/index.d.ts +13 -7
  99. package/dist/convex/index.js +9 -6
  100. package/dist/core-H-mbhpZc.js +341 -0
  101. package/dist/core-hWIARPDz.d.ts +206 -0
  102. package/dist/{create-CBMmFie-.d.ts → create-BSNrVuxh.d.ts} +87 -34
  103. package/dist/{create-B30OMUOJ.d.ts → create-BVq1lNQE.d.ts} +49 -28
  104. package/dist/{create-D_NmPOdH.d.ts → create-CM1FciYG.d.ts} +37 -29
  105. package/dist/{create-CGm28gyI.js → create-Cq4Uox0f.js} +13 -9
  106. package/dist/{create-DCF2SvoT.js → create-_noSrY1T.js} +15 -21
  107. package/dist/{credential-BcoiejpY.js → credential-CyyyvCsL.js} +42 -39
  108. package/dist/{credentials-DPyHmYz5.js → credentials-CdDxp7jN.js} +6 -6
  109. package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-NB4wcyBf.js} +13 -2
  110. package/dist/{delegation-j6-rc37o.js → delegation-CDB6_keF.js} +31 -22
  111. package/dist/delivery/index.d.ts +5 -5
  112. package/dist/delivery/index.js +6 -5
  113. package/dist/{delivery-DCAgNyCn.js → delivery-BupfvJIV.js} +81 -20
  114. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  115. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  116. package/dist/{describe-BybMRY7A.js → describe-Bb4hGK5d.js} +6 -5
  117. package/dist/{describe-B5qgDvEW.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  118. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  119. package/dist/{diff-CmuSD3vc.js → diff-CN8IYhC_.js} +2 -2
  120. package/dist/{diff-3jbx6Rm4.js → diff-iZWV65nC.js} +23 -14
  121. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  122. package/dist/{doctor-BdZw53-k.js → doctor-CHD1M9R5.js} +485 -141
  123. package/dist/{doctor-3ZqNHX_G.js → doctor-D3wo-yuz.js} +4 -4
  124. package/dist/drizzle/index.d.ts +33 -19
  125. package/dist/drizzle/index.js +17 -9
  126. package/dist/elysia/index.d.ts +17 -11
  127. package/dist/elysia/index.js +5 -5
  128. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  129. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  130. package/dist/{errors-CWTY6uih.js → errors-Vpu6rKHl.js} +14 -10
  131. package/dist/{errors-DH5QEGXh.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  132. package/dist/{evaluate-CNClBvcj.js → evaluate-Dd8Ta0Ie.js} +185 -80
  133. package/dist/{evaluations-beAooV0n.js → evaluations-IBceAeKT.js} +41 -20
  134. package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-z8dQFDaN.d.ts} +12 -6
  135. package/dist/eve/index.d.ts +9 -6
  136. package/dist/eve/index.js +4 -4
  137. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  138. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  139. package/dist/express/index.d.ts +9 -6
  140. package/dist/express/index.js +9 -6
  141. package/dist/fastify/index.d.ts +16 -10
  142. package/dist/fastify/index.js +8 -5
  143. package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  144. package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-JL43jD3E.js} +14 -11
  145. package/dist/fields-D0vUI6dq.js +498 -0
  146. package/dist/{files-C5ZI27eV.js → files-B3AA05f1.js} +21 -5
  147. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  148. package/dist/{fixtures-B7XrLeY7.js → fixtures-A1_sp_tR.js} +15 -6
  149. package/dist/{flags-C3DktBDY.js → flags-DXjoTVbS.js} +2 -2
  150. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  151. package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-DCakWRsr.js} +26 -16
  152. package/dist/gen-B5kvbAoZ.js +58 -0
  153. package/dist/gen-DWCYcMQM.js +827 -0
  154. package/dist/generate-CRVV5V7l.js +165 -0
  155. package/dist/generate-CezbCaTI.js +275 -0
  156. package/dist/{grantee-hxrUsbpM.js → grantee-Dke-9rd1.js} +4 -4
  157. package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-BrYPe-w0.js} +12 -12
  158. package/dist/{grantee-match-DbENBHLB.js → grantee-match-7RZZvoT_.js} +12 -6
  159. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  160. package/dist/h3/index.d.ts +10 -7
  161. package/dist/h3/index.js +3 -3
  162. package/dist/headers-B9jQxjtW.d.ts +10 -0
  163. package/dist/{helpers-CBYVMjwh.js → helpers-DJicaG6f.js} +40 -28
  164. package/dist/hono/index.d.ts +16 -10
  165. package/dist/hono/index.js +5 -5
  166. package/dist/{hosted-BPk51-kX.d.ts → hosted-Cmtxogd0.d.ts} +44 -20
  167. package/dist/{hosted-B46-5LYE.js → hosted-D0IzESu_.js} +68 -25
  168. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  169. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  170. package/dist/{http-DXJ37RDA.js → http-DOL33cO0.js} +11 -8
  171. package/dist/{import-wyqXUyjm.js → import-CST57XLp.js} +64 -51
  172. package/dist/{import-CNV7I2Dw.js → import-_YqhhwvX.js} +6 -6
  173. package/dist/{index-B8YjkEZ4.d.ts → index-B8s204GL.d.ts} +64 -52
  174. package/dist/{index-Ch8LpNDp.d.ts → index-BT5-1VsX.d.ts} +64 -25
  175. package/dist/{index-DuWxc5dt.d.ts → index-BW_0MZOS.d.ts} +388 -149
  176. package/dist/index-BhxEUY9J.d.ts +233 -0
  177. package/dist/index-Bv5iXPqU.d.ts +210 -0
  178. package/dist/{index-C-6Letxg.d.ts → index-_9UiQIkt.d.ts} +164 -77
  179. package/dist/index.d.ts +22 -21
  180. package/dist/index.js +35 -33
  181. package/dist/{init-GG6Jh8HD.js → init-Dz_PsHdv.js} +5 -5
  182. package/dist/{init-DeMYsnYJ.js → init-cE3A8aXq.js} +10 -10
  183. package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  184. package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot--JWiTrvO.js} +81 -56
  185. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  186. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  187. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  188. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  189. package/dist/jwt/index.d.ts +125 -17
  190. package/dist/jwt/index.js +157 -16
  191. package/dist/{kernel-D0NVb1cK.js → kernel-C-fYydV2.js} +151 -16
  192. package/dist/kysely/index.d.ts +49 -33
  193. package/dist/kysely/index.js +9 -7
  194. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  195. package/dist/{load-DFS_ry0W.js → load-DjSU5KXO.js} +6 -6
  196. package/dist/load-Dm0pSYH3.js +1 -0
  197. package/dist/{login-Dfe5RlYk.js → login-D-8tMqzo.js} +4 -4
  198. package/dist/{login-imhuwvn3.js → login-DplQ0s84.js} +18 -15
  199. package/dist/{manifest-dvL2XEe1.js → manifest-Cgiq5oqc.js} +67 -37
  200. package/dist/{manifest-mx5ghSFM.d.ts → manifest-CzzWtnAb.d.ts} +144 -28
  201. package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-2r37XRhD.js} +80 -9
  202. package/dist/{manifest-C8IzW3Do.js → manifest-wg8WkkpD.js} +11 -7
  203. package/dist/{map-claims-D3oRmTk0.js → map-claims-BNWCJtmP.js} +27 -18
  204. package/dist/{map-error-Dr70oA_3.js → map-error-pasIGqMT.js} +7 -7
  205. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  206. package/dist/mcp/index.d.ts +154 -47
  207. package/dist/mcp/index.js +200 -41
  208. package/dist/{migrate-CIq4-E9F.js → migrate-B7oP_sQU.js} +102 -31
  209. package/dist/module-values-BJTBdo6y.js +107 -0
  210. package/dist/nest/index.d.ts +23 -13
  211. package/dist/nest/index.js +18 -11
  212. package/dist/next/client.d.ts +5 -2
  213. package/dist/next/client.js +1 -1
  214. package/dist/next/index.d.ts +72 -26
  215. package/dist/next/index.js +110 -6
  216. package/dist/next/plugin.d.ts +1 -1
  217. package/dist/next/plugin.js +4 -3
  218. package/dist/node/index.d.ts +5 -5
  219. package/dist/node/index.js +3 -3
  220. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  221. package/dist/openai/index.d.ts +13 -7
  222. package/dist/openai/index.js +3 -3
  223. package/dist/openapi/index.d.ts +61 -30
  224. package/dist/openapi/index.js +2 -2
  225. package/dist/{openapi-B7HZ0f-r.js → openapi-BOsx0xn9.js} +34 -24
  226. package/dist/{openapi-C4dDTVEd.js → openapi-CBZUhA3l.js} +4 -5
  227. package/dist/{openapi-DD1SV-5-.js → openapi-VeHHU2l9.js} +23 -14
  228. package/dist/{operation-findings-DgATDpvh.js → operation-findings-CXtFzlKJ.js} +3 -3
  229. package/dist/{operations-X0VM7F3m.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  230. package/dist/orpc/index.d.ts +68 -14
  231. package/dist/orpc/index.js +62 -13
  232. package/dist/otel/index.d.ts +7 -4
  233. package/dist/otel/index.js +8 -5
  234. package/dist/output-files-BHOIlrfD.js +1 -0
  235. package/dist/{output-files-DhRBBE4n.js → output-files-BIQ_9pIs.js} +29 -17
  236. package/dist/{output-1im__-08.js → output-tkju6U7R.js} +15 -7
  237. package/dist/ownership-B4L59T9u.js +1054 -0
  238. package/dist/parse-1_ZheTW5.js +151 -0
  239. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  240. package/dist/parse-local-manifest-DEiCF4ah.js +69 -0
  241. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  242. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  243. package/dist/pdp/index.d.ts +9 -6
  244. package/dist/pdp/index.js +23 -12
  245. package/dist/{peer-CRvC7Hg1.js → peer-C9LvBCcb.js} +1 -1
  246. package/dist/peer-Q0fuZ6hx.js +982 -0
  247. package/dist/{permdock-SV8ZINYT.d.ts → permdock-B6Sf4T_S.d.ts} +270 -117
  248. package/dist/{permdock-BrAscV28.js → permdock-L-_I_3zP.js} +226 -74
  249. package/dist/{permission-registry-Br4jSNVi.js → permission-registry-B8tYxPIt.js} +24 -11
  250. package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-CAY-GU7e.d.ts} +130 -104
  251. package/dist/{permissions-u_KHg-sN.d.ts → permissions-Bx6UI8n1.d.ts} +6 -2
  252. package/dist/{permissions-B-wCP5ZC.js → permissions-CVXmRILq.js} +3 -3
  253. package/dist/{permissions-BPxlwVhN.js → permissions-mDcTWoBs.js} +8 -5
  254. package/dist/pg-DQTqRrou.js +60 -0
  255. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  256. package/dist/pkce-CnmmYqUZ.js +21 -0
  257. package/dist/{policy-77FSAq_V.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  258. package/dist/{policy-DbM5YYtV.js → policy-CLQ8__GF.js} +49 -20
  259. package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  260. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  261. package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-CCiDRZBH.d.ts} +802 -334
  262. package/dist/postgres-store-DcyrPS-r.js +1028 -0
  263. package/dist/{postgrest-DAjUkF9w.js → postgrest-D4nuPXIQ.js} +88 -36
  264. package/dist/{postgrest-CEgRbefE.d.ts → postgrest-DicQyqm-.d.ts} +60 -30
  265. package/dist/powersync-DHNQX06W.js +1117 -0
  266. package/dist/{powersync-DISt6SUe.js → powersync-DXqGuq9A.js} +3 -3
  267. package/dist/powersync-Djf-zCpB.js +1 -0
  268. package/dist/preset/index.d.ts +38 -28
  269. package/dist/preset/index.js +1 -1
  270. package/dist/{preset-DZdU0tne.js → preset-BjLzeFpp.js} +58 -34
  271. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  272. package/dist/prisma/index.d.ts +69 -41
  273. package/dist/prisma/index.js +21 -17
  274. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  275. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  276. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  277. package/dist/prompt-BYc6drYW.js +938 -0
  278. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  279. package/dist/protected-action-DUYqb-Ma.js +80 -0
  280. package/dist/{protected-BlF0F6wL.js → protected-action-QEA8arRB.js} +48 -14
  281. package/dist/{provider-B1al-AZz.js → provider-C55OGXJ7.js} +5 -4
  282. package/dist/{provider-DILL9oPK.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  283. package/dist/{provider-store-DM6DNcta.js → provider-store-CaTv00tr.js} +13 -9
  284. package/dist/pull-B65ndFNZ.js +1 -0
  285. package/dist/{pull-jEwbf80J.js → pull-CwpGaQSi.js} +12 -11
  286. package/dist/{push-BD4f15co.js → push-DgssgzkK.js} +62 -16
  287. package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  288. package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-ITwYKvvH.js} +10 -7
  289. package/dist/react/index.d.ts +9 -8
  290. package/dist/react/index.js +7 -6
  291. package/dist/react/provider-client.d.ts +1 -1
  292. package/dist/react/provider-client.js +1 -1
  293. package/dist/react-native/index.d.ts +104 -51
  294. package/dist/react-native/index.js +394 -67
  295. package/dist/{refs-K6eWUJ0H.js → refs-C8BKxc_e.js} +17 -3
  296. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  297. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  298. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  299. package/dist/{replay-Bkm-Ne4l.d.ts → replay-DNftIb_R.d.ts} +1 -1
  300. package/dist/{request-context-C81Pip9n.js → request-context-C25ilqiJ.js} +8 -8
  301. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  302. package/dist/resend/index.d.ts +34 -28
  303. package/dist/resend/index.js +29 -29
  304. package/dist/resolve-names-CF7xXLSG.js +201 -0
  305. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  306. package/dist/{retire-CALjIQ7e.js → retire-B2xffQgY.js} +15 -6
  307. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  308. package/dist/{rls-DTvYd-lI.js → rls-CNEH2_BG.js} +743 -624
  309. package/dist/{rls-BAqP4q66.js → rls-Ca8Jz9b5.js} +41 -10
  310. package/dist/{role-builder-uWQZ4v84.js → role-builder-BK2-T6oD.js} +41 -20
  311. package/dist/rolldown-runtime-C3I60J0A.js +4 -0
  312. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  313. package/dist/{rpc-VSl5ylaQ.js → rpc-fNqAIqQk.js} +8 -5
  314. package/dist/{run-CUKuz0A8.js → run-Bz26OTfO.js} +26 -23
  315. package/dist/run-D-JE8QWb.js +1 -0
  316. package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-DbWI9f99.d.ts} +33 -13
  317. package/dist/{run-ticket-sxFI6LAk.js → run-ticket-Dv7aF7Dk.js} +29 -8
  318. package/dist/{runtime-D3VTAiCA.js → runtime-BGnrOkVH.js} +5 -2
  319. package/dist/{saas-BCXRuXca.js → saas-iWnUdwCt.js} +42 -29
  320. package/dist/{scan-qvOe0hS3.js → scan-DCj1KQfn.js} +1 -1
  321. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  322. package/dist/{schema-yLuBWWsh.js → schema-Dst9I9Gs.js} +9 -5
  323. package/dist/scim/index.d.ts +3 -2
  324. package/dist/scim/index.js +3 -1
  325. package/dist/scim-D8YupzX1.js +44 -0
  326. package/dist/{scim-ClHtpyV3.js → scim-jJBJ7g1Z.js} +35 -551
  327. package/dist/{scopes-CUPSjo9q.js → scopes-0Up_UA2t.js} +42 -24
  328. package/dist/server/index.d.ts +12 -12
  329. package/dist/server/index.js +13 -13
  330. package/dist/{server-C3WXAHZj.js → server-3cVlTLde.js} +31 -31
  331. package/dist/{server-types-CKQiCnON.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  332. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  333. package/dist/{shared-BAK8t4Uo.js → shared-Afctg7B0.js} +100 -61
  334. package/dist/{shared-DvvFzYXe.js → shared-l0oGGetg.js} +9 -6
  335. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  336. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  337. package/dist/{sink-4-eQIRWf.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  338. package/dist/{skills-B6lVdD_W.js → skills-Bjj7BNEQ.js} +16 -12
  339. package/dist/{skills-CTYwkl44.js → skills-OuoMR49L.js} +3 -3
  340. package/dist/{snapshot-B7DkYg6g.js → snapshot-CXlzi69u.js} +21 -18
  341. package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  342. package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  343. package/dist/solid/index.d.ts +55 -15
  344. package/dist/solid/index.js +46 -12
  345. package/dist/solid-start/index.d.ts +30 -12
  346. package/dist/solid-start/index.js +3 -3
  347. package/dist/sources-B1Os_YUu.d.ts +312 -0
  348. package/dist/{sources-vs5dGOsS.js → sources-CMAM-2A3.js} +156 -51
  349. package/dist/sources-qoIJQrJv.js +11 -0
  350. package/dist/{sql-B5T1IL83.js → sql-0WjxIp9g.js} +32 -7
  351. package/dist/sql-B80DFdpG.d.ts +10 -0
  352. package/dist/{src-Cu2m75uo.js → src-DZ0l9UAg.js} +305 -123
  353. package/dist/ssf/index.d.ts +4 -4
  354. package/dist/ssf/index.js +665 -224
  355. package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  356. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  357. package/dist/{store-BDutJkDL.js → store-RNFvaJJv.js} +43 -29
  358. package/dist/{store-options-u0ycEe8s.js → store-options-Dil3lraY.js} +105 -15
  359. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  360. package/dist/{stores-CGhM8BN_.js → stores-DxZWDXCs.js} +42 -5
  361. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  362. package/dist/{stream-CeCMJmBB.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  363. package/dist/{style-DiKWnAvn.js → style-DblOtSga.js} +1 -1
  364. package/dist/{style-Uao76wO7.js → style-Ds11Hmk4.js} +3 -1
  365. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  366. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  367. package/dist/supabase/index.d.ts +48 -37
  368. package/dist/supabase/index.js +6 -6
  369. package/dist/supabase/middleware.d.ts +19 -13
  370. package/dist/supabase/middleware.js +7 -7
  371. package/dist/{supabase-x5JtR2tc.js → supabase-BL1qJzzY.js} +82 -36
  372. package/dist/{supabase-By_frk3U.js → supabase-D39cuGPt.js} +3 -3
  373. package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-B-yXnzUl.js} +1206 -286
  374. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  375. package/dist/supautils-BU-pAEpf.js +808 -0
  376. package/dist/{support-session-C6xJQYut.js → support-session-BsmPCbz8.js} +22 -22
  377. package/dist/svelte/PermissionBoundary.svelte +2 -6
  378. package/dist/svelte/Protected.svelte +2 -8
  379. package/dist/svelte/index.d.ts +9 -8
  380. package/dist/svelte/index.js +10 -9
  381. package/dist/svelte/runtime.d.ts +4 -4
  382. package/dist/svelte/runtime.js +4 -4
  383. package/dist/svelte/source.d.ts +9 -8
  384. package/dist/svelte/source.js +6 -5
  385. package/dist/sveltekit/index.d.ts +30 -12
  386. package/dist/sveltekit/index.js +2 -2
  387. package/dist/{ownership-DqaJNJPn.js → tables-DeMNEy6V.js} +1025 -1085
  388. package/dist/tanstack-start/index.d.ts +22 -10
  389. package/dist/tanstack-start/index.js +2 -2
  390. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  391. package/dist/{tenancy-DN2QAx9z.js → tenancy-5d1zVBvK.js} +36 -21
  392. package/dist/terminal/index.d.ts +23 -14
  393. package/dist/terminal/index.js +17 -20
  394. package/dist/testing/core.d.ts +2 -0
  395. package/dist/testing/core.js +1 -0
  396. package/dist/testing/fixtures/index.d.ts +15 -0
  397. package/dist/testing/fixtures/index.js +831 -0
  398. package/dist/testing/index.d.ts +235 -285
  399. package/dist/testing/index.js +502 -927
  400. package/dist/testing/saas/index.d.ts +43 -27
  401. package/dist/testing/saas/index.js +2 -2
  402. package/dist/testing/saas/permissions.d.ts +1 -1
  403. package/dist/testing/saas/permissions.js +1 -1
  404. package/dist/text-diff-BtfSmdUo.js +444 -0
  405. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  406. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  407. package/dist/{token-BLZcjQgt.js → token-DC9EQiet.js} +15 -13
  408. package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-Qpjs_W6M.js} +5 -2
  409. package/dist/trpc/index.d.ts +11 -8
  410. package/dist/trpc/index.js +15 -9
  411. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  412. package/dist/{types-8RnwUAvE.d.ts → types-AMJ5qoU_.d.ts} +49 -30
  413. package/dist/{types-C_IiEs64.d.ts → types-B2mlGuhW.d.ts} +14 -11
  414. package/dist/{types-_WhUP7ud.d.ts → types-B4uqKDnp.d.ts} +25 -12
  415. package/dist/{types-CX7AvRqP.d.ts → types-BJk0BKRX.d.ts} +24 -14
  416. package/dist/types-B_d_g7T3.d.ts +262 -0
  417. package/dist/{types-BdtSDbBO.d.ts → types-B_tiYvk8.d.ts} +59 -32
  418. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  419. package/dist/{types-Dfv0aTER.d.ts → types-DC1Loeh3.d.ts} +449 -168
  420. package/dist/{types-lUlG3TVd.d.ts → types-DHKPcqzr.d.ts} +2 -2
  421. package/dist/{types-C791HFu9.d.ts → types-DjuMBNF9.d.ts} +68 -32
  422. package/dist/{types-C863OQiR.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  423. package/dist/{types-Druu9wLM.d.ts → types-ZzRGoViD.d.ts} +77 -24
  424. package/dist/{types-BzzaHxt3.d.ts → types-ah9NlU6j.d.ts} +137 -48
  425. package/dist/{types-CVZSNocA.d.ts → types-djVzLlIV.d.ts} +31 -14
  426. package/dist/{types-BtHtcKMr.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  427. package/dist/unplugin/index.d.ts +1 -1
  428. package/dist/unplugin/index.js +2 -2
  429. package/dist/usage-CYeXek0p.js +1 -0
  430. package/dist/{usage-SveTRTyr.js → usage-CxEzS4ey.js} +50 -26
  431. package/dist/{usage-CRVl9V3t.js → usage-ab0PdusX.js} +2 -2
  432. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  433. package/dist/{validation-error-DHUrAkku.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  434. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  435. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  436. package/dist/{verify-BaAKx7t6.js → verify-DZeqoWu5.js} +417 -489
  437. package/dist/version-DMQ0dnN5.js +48 -0
  438. package/dist/version-DizhmD72.js +1 -0
  439. package/dist/{views-DTIIO-oQ.js → views-CD8wuL4Z.js} +19 -6
  440. package/dist/vocabulary-DEJ5j4mR.d.ts +70 -0
  441. package/dist/vue/index.d.ts +71 -21
  442. package/dist/vue/index.js +50 -13
  443. package/dist/{waiter-B986w1oK.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  444. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  445. package/dist/{watch-vea54PRw.js → watch-Cx_WciLE.js} +8 -8
  446. package/dist/watch-DB42U1ib.js +1 -0
  447. package/dist/webmcp/index.d.ts +11 -11
  448. package/dist/webmcp/index.js +8 -5
  449. package/dist/{where-scope-C9vfEphl.js → where-scope-DlCdCM_8.js} +56 -30
  450. package/dist/{who-can-DWBAcaCQ.js → who-can-rI7dCR9Q.js} +23 -20
  451. package/dist/workflow/index.d.ts +3 -3
  452. package/dist/workflow/index.js +13 -13
  453. package/dist/workflow-sdk/index.d.ts +19 -13
  454. package/dist/workflow-sdk/index.js +6 -6
  455. package/dist/{wrap-gX61EtpB.js → wrap-B2wziJI_.js} +11 -5
  456. package/dist/{wrap-C5jC6sKI.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  457. package/package.json +25 -14
  458. package/schemas/catalog-v1.json +3 -0
  459. package/schemas/cli-result-v1.json +1 -0
  460. package/schemas/cloud-api-v1.json +152 -7
  461. package/schemas/connector-v1.json +8 -0
  462. package/schemas/supabase-claims-v1.json +5 -0
  463. package/schemas/supabase-manifest-v1.json +308 -75
  464. package/skills/permdock/SKILL.md +1 -0
  465. package/skills/permdock-agents/references/runtimes.md +3 -1
  466. package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
  467. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  468. package/skills/permdock-data/references/queries-and-rls.md +6 -2
  469. package/skills/permdock-tenancy/SKILL.md +1 -1
  470. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -1
  471. package/skills/permdock-wire/references/adapters.md +28 -22
  472. package/skills/permdock-wire/references/policy-options.md +1 -0
  473. package/dist/catalog-BoWglDPI.js +0 -1
  474. package/dist/collect-D7eQDffE.js +0 -1
  475. package/dist/config-bs_kZeYq.js +0 -162
  476. package/dist/denied-text-CiFQNuMV.d.ts +0 -19
  477. package/dist/fields-OYG_JR78.js +0 -203
  478. package/dist/generate-CNU1pIOo.js +0 -171
  479. package/dist/headers-BIjfMaoC.js +0 -8
  480. package/dist/headers-CIbDTUTK.d.ts +0 -7
  481. package/dist/index-Cp_ilKi1.d.ts +0 -91
  482. package/dist/index-CueFnxQc.d.ts +0 -110
  483. package/dist/load-BxEtwlBS.js +0 -1
  484. package/dist/output-files-B3IZJksC.js +0 -1
  485. package/dist/package-root-Dk_ETdkp.js +0 -31
  486. package/dist/parse-Cxq0WxrA.js +0 -53
  487. package/dist/parse-local-manifest-5ODwqu8b.d.ts +0 -10
  488. package/dist/parse-local-manifest-CVSs6J9I.js +0 -34
  489. package/dist/peer-C8swJ2GH.js +0 -50
  490. package/dist/policies-DP2nqRoF.js +0 -295
  491. package/dist/powersync-BkWWCS1K.js +0 -538
  492. package/dist/powersync-MMJ2mI2q.js +0 -1
  493. package/dist/problem-details-B45V5d2b.d.ts +0 -7
  494. package/dist/prompt-DfZLJLIn.js +0 -32
  495. package/dist/protected-RFGpakN9.d.ts +0 -38
  496. package/dist/pull-CvpINcMK.js +0 -1
  497. package/dist/run-DDwUaJDU.js +0 -1
  498. package/dist/sources-Xc4zkszI.d.ts +0 -190
  499. package/dist/stores-BUGNbJTt.d.ts +0 -30
  500. package/dist/supabase-hook-CCw5m35C.js +0 -1
  501. package/dist/supautils-B6HYL9eL.js +0 -91
  502. package/dist/text-diff-BQcUapOb.js +0 -15
  503. package/dist/types-B3_ooZgZ.d.ts +0 -172
  504. package/dist/usage-CZpSQP6L.js +0 -1
  505. package/dist/version-CEbQ5UeM.js +0 -18
  506. package/dist/version-DXkYUISx.js +0 -1
  507. package/dist/watch--ovlPOc0.js +0 -1
@@ -1,24 +1,45 @@
1
+ //#region src/conditions/row-check.d.ts
2
+ /**
3
+ * Whether the row a unique key names exists, and if so whether the filter keeps
4
+ * it.
5
+ */
6
+ type RowCheck = {
7
+ readonly found: false;
8
+ } | {
9
+ readonly found: true;
10
+ readonly granted: boolean;
11
+ };
12
+ //#endregion
1
13
  //#region src/conditions/subject-settings.d.ts
2
14
  type WithSubjectOptions = {
3
- /** Which settings the generated policies read; match `rls.dialect`. Default `supabase`. */
15
+ /**
16
+ * Which settings the generated policies read; match `rls.dialect`. Default
17
+ * `supabase`.
18
+ */
4
19
  readonly dialect?: "supabase" | "guc" | "neon";
5
20
  /**
6
- * The local `role` setting before the claims: `authenticated` with a principal, `anon` without.
7
- * `false` keeps the connection's role, for a login role that RLS already applies to.
21
+ * The local `role` setting before the claims: `authenticated` with a
22
+ * principal, `anon` without. `false` keeps the connection's role, for a login
23
+ * role that RLS already applies to.
8
24
  */
9
25
  readonly role?: "authenticated" | "anon" | false;
10
26
  /** Prefix of the `guc` dialect's settings (`rls.gucPrefix`). Default `app`. */
11
27
  readonly gucPrefix?: string;
12
- /** Claim holding the principal's tenant (`rls.tenantClaim`). Default `tenant_id`. */
28
+ /**
29
+ * Claim holding the principal's tenant (`rls.tenantClaim`). Default
30
+ * `tenant_id`.
31
+ */
13
32
  readonly tenantClaim?: string;
14
33
  /**
15
- * Further claims from the verified token, such as `user_role` or `memberships` for `jwt`-mode
16
- * helpers. `sub`, `role` and the tenant claim always come from the subject.
34
+ * Further claims from the verified token, such as `user_role` or
35
+ * `memberships` for `jwt`-mode helpers. `sub`, `role` and the tenant claim
36
+ * always come from the subject.
17
37
  */
18
38
  readonly claims?: Readonly<Record<string, unknown>>;
19
39
  /**
20
- * Field names of the API-key claim written for a principal that acts through a credential
21
- * (`rls.apiKeys`). Default `{ claim: 'api_key', scopes: 'scopes', tenant: 'tenant', roles: 'roles' }`.
40
+ * Field names of the API-key claim written for a principal that acts through
41
+ * a credential (`rls.apiKeys`). Default `{ claim: 'api_key', scopes:
42
+ * 'scopes', tenant: 'tenant', roles: 'roles' }`.
22
43
  */
23
44
  readonly apiKeys?: {
24
45
  readonly claim?: string;
@@ -28,13 +49,4 @@ type WithSubjectOptions = {
28
49
  };
29
50
  };
30
51
  //#endregion
31
- //#region src/conditions/row-check.d.ts
32
- /** Whether the row a unique key names exists, and if so whether the filter keeps it. */
33
- type RowCheck = {
34
- readonly found: false;
35
- } | {
36
- readonly found: true;
37
- readonly granted: boolean;
38
- };
39
- //#endregion
40
- export { WithSubjectOptions as n, RowCheck as t };
52
+ export { RowCheck as n, WithSubjectOptions as t };
@@ -1,10 +1,11 @@
1
- import { Rt as Instant, ar as Subject } from "../policy-types-n0uRTsW8.js";
2
- import { a as ApprovalDelegationSource, m as ApprovalStore, u as ApprovalRequest } from "../types-BdtSDbBO.js";
3
- import { a as SupabaseRpcClient, c as readSubjectRecord, i as SupabaseRpcCaller, n as PostgrestSourcesOptions, o as SupabaseRpcResult, r as SubjectRecord, s as postgrestSources, t as PostgrestSources } from "../postgrest-CEgRbefE.js";
4
- import { C as SupabaseClaimsSchema, E as supabaseClaims, S as SupabaseClaimsOptions, T as SupabasePermDockClaims, _ as SupabaseSuspendedMembership, a as SupabaseActorResult, b as SupabaseActClaim, c as SupabaseMembershipTable, d as SupabaseRealtime, f as SupabaseRlsConfig, g as SupabaseSubjectOptions, h as SupabaseStorage, i as SupabaseActor, l as SupabasePermissionRef, m as SupabaseSessionLike, n as RoleThrough, o as SupabaseDelegation, p as SupabaseRlsOptions, r as SupabaseActiveRow, s as SupabaseInclude, t as AuthorizeSqlOptions, u as SupabasePrincipal, v as SupabaseSuspendedScope, w as SupabaseMembershipClaim, x as SupabaseClaims, y as SupabaseSuspension } from "../types-BzzaHxt3.js";
5
- import { a as SupabaseManifestHelper, c as SupabaseManifestRls, d as SupabaseManifestValue, f as parseSupabaseManifest, i as SupabaseManifestColumn, l as SupabaseManifestRole, n as SupabaseHookManifest, o as SupabaseManifestMembership, r as SupabaseManifestActiveRow, s as SupabaseManifestRequires, t as SupabaseHookClaim, u as SupabaseManifestThrough } from "../manifest-mx5ghSFM.js";
6
- import { a as MembershipTableOptions, c as SupabasePostgres, d as supabasePostgresQuery, f as tableMembershipSource, i as MembershipSql, l as authzVersion, n as MembershipHolders, o as SqlMembershipSource, r as MembershipJunctionOptions, s as SqlQuery, t as AUTHZ_VERSION_TABLE, u as junctionMembershipSource } from "../sources-Xc4zkszI.js";
7
- import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-JqcRqyhK.js";
1
+ import { Rt as Instant, lr as Subject } from "../policy-types-CCiDRZBH.js";
2
+ import { a as ApprovalDelegationSource, m as ApprovalStore, u as ApprovalRequest } from "../types-B_tiYvk8.js";
3
+ import { a as SupabaseRpcClient, c as readSubjectRecord, i as SupabaseRpcCaller, n as PostgrestSourcesOptions, o as SupabaseRpcResult, r as SubjectRecord, s as postgrestSources, t as PostgrestSources } from "../postgrest-DicQyqm-.js";
4
+ import { C as SupabaseClaims, D as SupabasePermDockClaims, E as SupabaseMembershipClaim, O as supabaseClaims, S as SupabaseActClaim, T as SupabaseClaimsSchema, _ as SupabaseStorage, a as SupabaseActor, b as SupabaseSuspendedScope, c as SupabaseInclude, d as SupabasePrincipal, f as SupabaseRealtime, g as SupabaseSessionLike, h as SupabaseRlsOptions, i as SupabaseActiveRow, l as SupabaseMembershipTable, m as SupabaseRlsMembershipTable, o as SupabaseActorResult, p as SupabaseRlsConfig, r as RoleThrough, s as SupabaseDelegation, t as AuthorizeSqlOptions, u as SupabasePermissionRef, v as SupabaseSubjectOptions, w as SupabaseClaimsOptions, x as SupabaseSuspension, y as SupabaseSuspendedMembership } from "../types-ah9NlU6j.js";
5
+ import { t as SqlQuery } from "../sql-B80DFdpG.js";
6
+ import { _ as hasTokenHook, a as SupabaseManifestActiveRow, c as SupabaseManifestMembership, d as SupabaseManifestResourceNames, f as SupabaseManifestRls, g as SupabaseManifestValue, h as SupabaseManifestThrough, i as SupabaseManifest, l as SupabaseManifestNames, m as SupabaseManifestScopeNames, n as SupabaseHookClaim, o as SupabaseManifestColumn, p as SupabaseManifestRole, r as SupabaseHookManifest, s as SupabaseManifestHelper, t as SupabaseDatabaseManifest, u as SupabaseManifestRequires, v as parseSupabaseManifest } from "../manifest-CzzWtnAb.js";
7
+ import { a as MembershipStream, c as SupabasePostgres, d as supabasePostgresQuery, f as tableMembershipSource, i as MembershipSql, l as authzVersion, n as MembershipHolders, o as MembershipTableOptions, r as MembershipJunctionOptions, s as SqlMembershipSource, t as AUTHZ_VERSION_TABLE, u as junctionMembershipSource } from "../sources-B1Os_YUu.js";
8
+ import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-hYsPz_yE.js";
8
9
  //#region src/supabase/capability.d.ts
9
10
  type ExchangeCapabilityOptions = {
10
11
  /**
@@ -15,7 +16,10 @@ type ExchangeCapabilityOptions = {
15
16
  readonly key: Record<string, unknown> | {
16
17
  readonly secret: string;
17
18
  };
18
- /** Default `ES256`, Supabase's asymmetric signing key; the legacy secret needs `HS256` named. */
19
+ /**
20
+ * Default `ES256`, Supabase's asymmetric signing key; the legacy secret needs
21
+ * `HS256` named.
22
+ */
19
23
  readonly alg?: "ES256" | "RS256" | "HS256";
20
24
  readonly kid?: string;
21
25
  readonly issuer?: string;
@@ -40,60 +44,66 @@ type SupabaseApprovalStoreOptions = {
40
44
  /**
41
45
  * Runs once per stored request, after the call that stored it, with the
42
46
  * stored request: notify the approvers, or cancel the requests this one
43
- * replaces. A repeated ask that finds the request still open does not run
44
- * it again. A throw fails the open, so the caller does not run the action.
47
+ * replaces. A repeated ask that finds the request still open does not run it
48
+ * again. A throw fails the open, so the caller does not run the action.
45
49
  */
46
50
  readonly onOpen?: (request: ApprovalRequest) => void | Promise<void>;
47
51
  };
48
52
  /**
49
53
  * An `ApprovalStore` over the table and functions `rls.approvals` generates,
50
- * called through supabase-js (`client.schema(schema).rpc(...)`) with a
51
- * client that may execute them, such as a `service_role` client. Each method
52
- * is one atomic statement in the database: a repeated ask keeps the open
53
- * request, two racing approvers both count towards a quorum, and two racing
54
- * resumes never both consume an approval.
54
+ * called through supabase-js (`client.schema(schema).rpc(...)`) with a client
55
+ * that may execute them, such as a `service_role` client. Each method is one
56
+ * atomic statement in the database: a repeated ask keeps the open request, two
57
+ * racing approvers both count towards a quorum, and two racing resumes never
58
+ * both consume an approval.
55
59
  */
56
60
  export declare function supabaseApprovalStore(client: SupabaseRpcCaller, options?: SupabaseApprovalStoreOptions): ApprovalStore;
57
61
  //#endregion
58
62
  //#region src/supabase/approval-delegations.d.ts
59
63
  type TableApprovalDelegationSourceOptions = {
60
64
  readonly query: SqlQuery;
61
- /** Defaults to `permdock.approval_delegations`, the table `rls.approvals.delegations` generates. */
65
+ /**
66
+ * Defaults to `permdock.approval_delegations`, the table
67
+ * `rls.approvals.delegations` generates.
68
+ */
62
69
  readonly table?: string;
63
70
  };
64
71
  /**
65
72
  * Approval delegations (out-of-office covers) from the table
66
73
  * `rls.approvals.delegations` generates, so `approvalsHandler` and
67
- * `permdock_is_approver` read the same rows. A cover without a tenant
68
- * applies everywhere; a malformed row is skipped.
74
+ * `permdock_is_approver` read the same rows. A cover without a tenant applies
75
+ * everywhere; a malformed row is skipped.
69
76
  */
70
77
  export declare function tableApprovalDelegationSource(options: TableApprovalDelegationSourceOptions): ApprovalDelegationSource;
71
78
  //#endregion
72
79
  //#region src/supabase/rls.d.ts
73
80
  export declare function supabaseRls(options?: SupabaseRlsOptions): SupabaseRlsConfig;
74
81
  /**
75
- * `authorize(requested_permission, requested_tenant text default null)` for Supabase's RBAC
76
- * scaffold, over the `role_permissions (role, permission, grant_key, scope, effect)` table that
77
- * `permdock rls generate` seeds. `database` reads `user_roles` (and the memberships table for a
78
- * tenant) on every call; `jwt` reads the hook-injected `user_role` and `memberships` claims. A
79
- * tenant request with no memberships source is denied, never answered from global roles. It
80
- * answers "does a role hold this permission" without seeing a row: an allow with row conditions
81
- * does not count, and a deny the user's tenant or global roles hold overrides every allow.
82
- * Generated policies call the per-statement RLS helpers (`permdock_has`, `permitted_<scope>_ids`)
82
+ * `authorize(requested_permission, requested_tenant text default null)` for
83
+ * Supabase's RBAC scaffold, over the `role_permissions (role, permission,
84
+ * grant_key, scope, effect)` table that `permdock rls generate` seeds.
85
+ * `database` reads `user_roles` (and the memberships table for a tenant) on
86
+ * every call; `jwt` reads the hook-injected `user_role` and `memberships`
87
+ * claims. A tenant request with no memberships source is denied, never answered
88
+ * from global roles. It answers "does a role hold this permission" without
89
+ * seeing a row: an allow with row conditions does not count, and a deny the
90
+ * user's tenant or global roles hold overrides every allow. Generated policies
91
+ * call the per-statement RLS helpers (`permdock_has`, `permitted_<scope>_ids`)
83
92
  * instead. Only `authenticated` may execute it.
84
93
  */
85
94
  export declare function authorizeSql(options?: AuthorizeSqlOptions): string;
86
95
  //#endregion
87
96
  //#region src/supabase/subject.d.ts
88
97
  /**
89
- * Who acts for the user: the outermost `sub` of an RFC 8693 `act` chain (the current
90
- * actor; nested levels are prior actors, kept on `chain` for audit), else the
91
- * OAuth `client_id` of a third-party app. The outer level's `kind` names the actor:
92
- * none is `oauth-client`, `support` a support session, `impersonation` an admin acting as the
93
- * user. Reads only `act` and `client_id`; the caller applies the role rule first (`anon` and
94
- * `service_role` are anonymous and carry no actor). An `act` that is not a chain of objects each
95
- * with a non-empty `sub`, that names another `kind`, or a support level without `session_id`,
96
- * is `{ ok: false }` and must deny.
98
+ * Who acts for the user: the outermost `sub` of an RFC 8693 `act` chain (the
99
+ * current actor; nested levels are prior actors, kept on `chain` for audit),
100
+ * else the OAuth `client_id` of a third-party app. The outer level's `kind`
101
+ * names the actor: none is `oauth-client`, `support` a support session,
102
+ * `impersonation` an admin acting as the user. Reads only `act` and
103
+ * `client_id`; the caller applies the role rule first (`anon` and
104
+ * `service_role` are anonymous and carry no actor). An `act` that is not a
105
+ * chain of objects each with a non-empty `sub`, that names another `kind`, or a
106
+ * support level without `session_id`, is `{ ok: false }` and must deny.
97
107
  */
98
108
  export declare function actorOf(claims: unknown): SupabaseActorResult;
99
109
  /**
@@ -103,9 +113,10 @@ export declare function actorOf(claims: unknown): SupabaseActorResult;
103
113
  export declare function delegationOf(claims: unknown): SupabaseDelegation | undefined;
104
114
  export declare function subjectFromSupabase(claims: unknown, options?: SupabaseSubjectOptions): Subject<SupabasePrincipal>;
105
115
  /**
106
- * A verified session object (`{ kind, claims }`) in, `Subject` out.
107
- * Only `kind: 'user'` sessions map; `anon`, `service`, `invalid` and anything else are anonymous.
116
+ * A verified session object (`{ kind, claims }`) in, `Subject` out. Only `kind:
117
+ * 'user'` sessions map; `anon`, `service`, `invalid` and anything else are
118
+ * anonymous.
108
119
  */
109
120
  export declare function subjectFromSupabaseSession(session: SupabaseSessionLike | null | undefined, options?: SupabaseSubjectOptions): Subject<SupabasePrincipal>;
110
121
  //#endregion
111
- export { AUTHZ_VERSION_TABLE, type AuthorizeSqlOptions, type ExchangeCapabilityOptions, type MembershipHolders, type MembershipJunctionOptions, type MembershipSql, type MembershipTableOptions, type PostgrestSources, type PostgrestSourcesOptions, type RoleThrough, type SqlMembershipSource, type SqlQuery, type SubjectRecord, type SupabaseActClaim, type SupabaseActiveRow, type SupabaseActor, type SupabaseActorResult, type SupabaseApprovalStoreOptions, type SupabaseClaims, type SupabaseClaimsOptions, type SupabaseClaimsSchema, type SupabaseDelegation, type SupabaseHookClaim, type SupabaseHookManifest, type SupabaseInclude, type SupabaseManifestActiveRow, type SupabaseManifestColumn, type SupabaseManifestHelper, type SupabaseManifestMembership, type SupabaseManifestRequires, type SupabaseManifestRls, type SupabaseManifestRole, type SupabaseManifestThrough, type SupabaseManifestValue, type SupabaseMembershipClaim, type SupabaseMembershipTable, type SupabasePermDockClaims, type SupabasePermissionRef, type SupabasePostgres, type SupabasePrincipal, type SupabaseRealtime, type SupabaseRlsConfig, type SupabaseRlsOptions, type SupabaseRpcCaller, type SupabaseRpcClient, type SupabaseRpcResult, type SupabaseSessionLike, type SupabaseStorage, type SupabaseSubjectOptions, type SupabaseSuspendedMembership, type SupabaseSuspendedScope, type SupabaseSuspension, type TableApprovalDelegationSourceOptions, authzVersion, junctionMembershipSource, parseSupabaseManifest, postgrestSources, readSubjectRecord, supabaseClaims, supabaseMembershipsBudget, supabasePostgresQuery, supabaseTenantClaim, tableMembershipSource };
122
+ export { AUTHZ_VERSION_TABLE, type AuthorizeSqlOptions, type ExchangeCapabilityOptions, type MembershipHolders, type MembershipJunctionOptions, type MembershipSql, type MembershipStream, type MembershipTableOptions, type PostgrestSources, type PostgrestSourcesOptions, type RoleThrough, type SqlMembershipSource, type SqlQuery, type SubjectRecord, type SupabaseActClaim, type SupabaseActiveRow, type SupabaseActor, type SupabaseActorResult, type SupabaseApprovalStoreOptions, type SupabaseClaims, type SupabaseClaimsOptions, type SupabaseClaimsSchema, type SupabaseDatabaseManifest, type SupabaseDelegation, type SupabaseHookClaim, type SupabaseHookManifest, type SupabaseInclude, type SupabaseManifest, type SupabaseManifestActiveRow, type SupabaseManifestColumn, type SupabaseManifestHelper, type SupabaseManifestMembership, type SupabaseManifestNames, type SupabaseManifestRequires, type SupabaseManifestResourceNames, type SupabaseManifestRls, type SupabaseManifestRole, type SupabaseManifestScopeNames, type SupabaseManifestThrough, type SupabaseManifestValue, type SupabaseMembershipClaim, type SupabaseMembershipTable, type SupabasePermDockClaims, type SupabasePermissionRef, type SupabasePostgres, type SupabasePrincipal, type SupabaseRealtime, type SupabaseRlsConfig, type SupabaseRlsMembershipTable, type SupabaseRlsOptions, type SupabaseRpcCaller, type SupabaseRpcClient, type SupabaseRpcResult, type SupabaseSessionLike, type SupabaseStorage, type SupabaseSubjectOptions, type SupabaseSuspendedMembership, type SupabaseSuspendedScope, type SupabaseSuspension, type TableApprovalDelegationSourceOptions, authzVersion, hasTokenHook, junctionMembershipSource, parseSupabaseManifest, postgrestSources, readSubjectRecord, supabaseClaims, supabaseMembershipsBudget, supabasePostgresQuery, supabaseTenantClaim, tableMembershipSource };
@@ -1,6 +1,6 @@
1
- import { a as supabaseClaims, i as supabaseApprovalStore, n as supabaseRls, o as exchangeCapability, r as tableApprovalDelegationSource, t as authorizeSql } from "../supabase-x5JtR2tc.js";
2
- import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-NbEtbJC_.js";
3
- import { c as tableMembershipSource, i as authzVersion, o as junctionMembershipSource, s as supabasePostgresQuery, t as AUTHZ_VERSION_TABLE } from "../sources-vs5dGOsS.js";
4
- import { a as delegationOf, c as subjectFromSupabaseSession, i as actorOf, n as postgrestSources, r as readSubjectRecord, s as subjectFromSupabase } from "../postgrest-DAjUkF9w.js";
5
- import { t as parseSupabaseManifest } from "../manifest-C8IzW3Do.js";
6
- export { AUTHZ_VERSION_TABLE, actorOf, authorizeSql, authzVersion, delegationOf, exchangeCapability, junctionMembershipSource, parseSupabaseManifest, postgrestSources, readSubjectRecord, subjectFromSupabase, subjectFromSupabaseSession, supabaseApprovalStore, supabaseClaims, supabaseMembershipsBudget, supabasePostgresQuery, supabaseRls, supabaseTenantClaim, tableApprovalDelegationSource, tableMembershipSource };
1
+ import { a as supabaseClaims, i as supabaseApprovalStore, n as supabaseRls, o as exchangeCapability, r as tableApprovalDelegationSource, t as authorizeSql } from "../supabase-BL1qJzzY.js";
2
+ import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-BELja5A9.js";
3
+ import { c as tableMembershipSource, i as authzVersion, o as junctionMembershipSource, s as supabasePostgresQuery, t as AUTHZ_VERSION_TABLE } from "../sources-CMAM-2A3.js";
4
+ import { a as delegationOf, c as subjectFromSupabaseSession, i as actorOf, n as postgrestSources, r as readSubjectRecord, s as subjectFromSupabase } from "../postgrest-D4nuPXIQ.js";
5
+ import { n as parseSupabaseManifest, t as hasTokenHook } from "../manifest-wg8WkkpD.js";
6
+ export { AUTHZ_VERSION_TABLE, actorOf, authorizeSql, authzVersion, delegationOf, exchangeCapability, hasTokenHook, junctionMembershipSource, parseSupabaseManifest, postgrestSources, readSubjectRecord, subjectFromSupabase, subjectFromSupabaseSession, supabaseApprovalStore, supabaseClaims, supabaseMembershipsBudget, supabasePostgresQuery, supabaseRls, supabaseTenantClaim, tableApprovalDelegationSource, tableMembershipSource };
@@ -1,10 +1,10 @@
1
- import { T as Policy, ar as Subject, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
4
- import { t as InstanceOptions } from "../instance-options-BsVpyGIk.js";
1
+ import { T as Policy, j as PolicyVocabulary, lr as Subject, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as PermDock } from "../permdock-B6Sf4T_S.js";
4
+ import { t as InstanceOptions } from "../instance-options-B0KXqTrJ.js";
5
5
  import { t as RequestContext } from "../request-context-C2_1lchh.js";
6
- import { i as OpenApiHooks } from "../server-types-CKQiCnON.js";
7
- import { n as ServerAdapterServices } from "../bind-DOyrv6zi.js";
6
+ import { i as OpenApiHooks } from "../server-types-CIlpSA2G.js";
7
+ import { n as ServerAdapterServices } from "../bind-Cp2hBHzP.js";
8
8
  import { Middleware } from "@supabase/middleware";
9
9
  //#region src/supabase/middleware.d.ts
10
10
  /**
@@ -35,8 +35,8 @@ export type SupabaseMiddlewareContext = {
35
35
  };
36
36
  /**
37
37
  * A Supabase secret key that acts as a tenant service principal. `id` is the
38
- * principal id, `roles` are held in `tenant` only, and `permissions` caps
39
- * what the key may do, as a `service` credential does.
38
+ * principal id, `roles` are held in `tenant` only, and `permissions` caps what
39
+ * the key may do, as a `service` credential does.
40
40
  */
41
41
  export type SupabaseSecretKey = {
42
42
  readonly id: string;
@@ -61,17 +61,23 @@ export type SupabaseMiddlewarePermDockOptions<TUser = unknown> = InstanceOptions
61
61
  readonly context?: (ctx: SupabaseMiddlewareContext, request: Request) => RequestContext | undefined | Promise<RequestContext | undefined>;
62
62
  };
63
63
  export type WithPermDockConfig = {
64
- /** Run `protect` before the handler; a denial short-circuits with Problem Details. */
64
+ /**
65
+ * Run `protect` before the handler; a denial short-circuits with Problem
66
+ * Details.
67
+ */
65
68
  readonly protect?: Permission;
66
69
  /**
67
- * The OAuth scopes that reach the handler: a delegated token holding none
68
- * of them is refused with `insufficient_scope`. Without `protect`, the
69
- * handler needs a signed-in principal and checks no permission.
70
+ * The OAuth scopes that reach the handler: a delegated token holding none of
71
+ * them is refused with `insufficient_scope`. Without `protect`, the handler
72
+ * needs a signed-in principal and checks no permission.
70
73
  */
71
74
  readonly oauthScopes?: readonly string[];
72
75
  /** Load the row `protect` decides on; `null` or `undefined` yields 404. */
73
76
  readonly data?: (ctx: SupabaseMiddlewareContext, request: Request) => unknown;
74
- /** `true` when `data` returns a row the server loaded; anything else is validated before the check. */
77
+ /**
78
+ * `true` when `data` returns a row the server loaded; anything else is
79
+ * validated before the check.
80
+ */
75
81
  readonly trusted?: boolean;
76
82
  };
77
83
  /**
@@ -1,11 +1,11 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { c as withApp } from "../permdock-BrAscV28.js";
3
- import { t as composeWraps } from "../wrap-gX61EtpB.js";
4
- import { r as credentialSubject } from "../credential-BcoiejpY.js";
5
- import { a as methodNotAllowed } from "../problem-CTviyH5L.js";
6
- import { r as instanceOptions } from "../build-instance-Bu_eDqYw.js";
7
- import { t as createPermDock$1 } from "../create-DCF2SvoT.js";
8
- import { n as attached } from "../bind-CAvgUuKs.js";
2
+ import { l as withApp } from "../permdock-L-_I_3zP.js";
3
+ import { t as composeWraps } from "../wrap-B2wziJI_.js";
4
+ import { r as credentialSubject } from "../credential-CyyyvCsL.js";
5
+ import { o as methodNotAllowed } from "../problem-BVLHFK33.js";
6
+ import { r as instanceOptions } from "../build-instance-CNWaYJyr.js";
7
+ import { t as createPermDock$1 } from "../create-_noSrY1T.js";
8
+ import { n as attached } from "../bind-D_sZSVA3.js";
9
9
  import { defineMiddleware } from "@supabase/middleware";
10
10
  //#region src/supabase/middleware.ts
11
11
  const SECRET_KEY_NAME = /^[A-Za-z0-9_-]+$/u;
@@ -1,14 +1,14 @@
1
1
  import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
- import { d as isoNow, i as dateAt, p as nowSeconds, u as isoAt } from "./time-DkWjdL98.js";
3
- import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
4
- import { s as ApprovalError } from "./types-DqzsnlSA.js";
5
- import { a as approvalPageSize, o as decodeApprovalCursor, s as encodeApprovalCursor, t as applyApprovalVerdict } from "./store-BDutJkDL.js";
6
- import { a as parseCapability } from "./capability-N1K9IpqS.js";
2
+ import { d as isoNow, i as dateAt, p as nowSeconds, u as isoAt } from "./time-nR1JesoH.js";
3
+ import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
4
+ import { s as ApprovalError } from "./types-CcUXciSj.js";
5
+ import { c as decodeApprovalCursor, l as encodeApprovalCursor, s as approvalPageSize, t as applyApprovalVerdict } from "./store-RNFvaJJv.js";
6
+ import { a as parseCapability } from "./capability-BqX94r07.js";
7
7
  import { t as loadJose } from "./load-jose-DZ4dnjri.js";
8
- import "./budget-NbEtbJC_.js";
9
- import { a as quoteQualifiedTable, c as quoteSqlTable, i as qualifySqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, u as sqlTextArray } from "./sql-B5T1IL83.js";
10
- import { d as keptKeys, l as roleColumn } from "./sources-vs5dGOsS.js";
11
- import { t as callRpc } from "./postgrest-DAjUkF9w.js";
8
+ import { a as quoteQualifiedTable, c as quoteSqlTable, d as sqlTextArray, i as qualifySqlTable, o as quoteSqlIdent, s as quoteSqlLiteral } from "./sql-0WjxIp9g.js";
9
+ import "./budget-BELja5A9.js";
10
+ import { d as keptKeys, l as roleColumn } from "./sources-CMAM-2A3.js";
11
+ import { t as callRpc } from "./postgrest-D4nuPXIQ.js";
12
12
  //#region src/supabase/capability.ts
13
13
  const DEFAULT_TTL = 300;
14
14
  const MAX_TTL = 3600;
@@ -61,6 +61,7 @@ const KNOWN = /* @__PURE__ */ new Set([
61
61
  "roles",
62
62
  "memberships",
63
63
  "memberships_truncated",
64
+ "team_ids",
64
65
  "attrs",
65
66
  "authz_ver",
66
67
  "client_id",
@@ -124,11 +125,16 @@ function checkPermDockClaims(record, tenantClaim, path, issues) {
124
125
  else issue(issues, [...path, "memberships"], "Expected an array");
125
126
  }
126
127
  optional(record, "memberships_truncated", path, issues, (value) => typeof value === "boolean", "a boolean");
128
+ optional(record, "team_ids", path, issues, isStrings, "an array of strings");
127
129
  optional(record, tenantClaim, path, issues, isString, "a string");
128
130
  optional(record, "attrs", path, issues, isRecord, "an object");
129
131
  optional(record, "authz_ver", path, issues, (value) => Number.isInteger(value), "an integer");
130
132
  }
131
- /** The outer level's `kind`: none, `support` with a `session_id`, `impersonation`, or `agent` with optional `tools` and `read_only` and no `session_id`. */
133
+ /**
134
+ * The outer level's `kind`: none, `support` with a `session_id`,
135
+ * `impersonation`, or `agent` with optional `tools` and `read_only` and no
136
+ * `session_id`.
137
+ */
132
138
  function checkActKind(level, path, issues) {
133
139
  const marked = own(level, "kind");
134
140
  const kind = marked === void 0 && own(level, "session_id") !== void 0 ? "support" : marked;
@@ -221,7 +227,9 @@ function schemaOf(validate) {
221
227
  * Needs no validation library.
222
228
  *
223
229
  * ```ts
224
- * sb.claims(supabaseClaims().extend(z.object({ datetime_preferences: Prefs })))
230
+ * sb.claims(
231
+ * supabaseClaims().extend(z.object({ datetime_preferences: Prefs })),
232
+ * );
225
233
  * ```
226
234
  */
227
235
  function supabaseClaims(options = {}) {
@@ -234,7 +242,10 @@ function supabaseClaims(options = {}) {
234
242
  }
235
243
  //#endregion
236
244
  //#region src/supabase/approval-store.ts
237
- /** A stored body as the request it is; the store wrote it from an `ApprovalRequest`. */
245
+ /**
246
+ * A stored body as the request it is; the store wrote it from an
247
+ * `ApprovalRequest`.
248
+ */
238
249
  function requestOf(value) {
239
250
  if (!isRecord(value) || value["v"] !== 1 || typeof value["token"] !== "string") return null;
240
251
  return value;
@@ -250,11 +261,11 @@ function filterOf(filter) {
250
261
  }
251
262
  /**
252
263
  * An `ApprovalStore` over the table and functions `rls.approvals` generates,
253
- * called through supabase-js (`client.schema(schema).rpc(...)`) with a
254
- * client that may execute them, such as a `service_role` client. Each method
255
- * is one atomic statement in the database: a repeated ask keeps the open
256
- * request, two racing approvers both count towards a quorum, and two racing
257
- * resumes never both consume an approval.
264
+ * called through supabase-js (`client.schema(schema).rpc(...)`) with a client
265
+ * that may execute them, such as a `service_role` client. Each method is one
266
+ * atomic statement in the database: a repeated ask keeps the open request, two
267
+ * racing approvers both count towards a quorum, and two racing resumes never
268
+ * both consume an approval.
258
269
  */
259
270
  function supabaseApprovalStore(client, options = {}) {
260
271
  const schema = options.schema ?? "permdock";
@@ -370,8 +381,8 @@ function delegationOf(row) {
370
381
  /**
371
382
  * Approval delegations (out-of-office covers) from the table
372
383
  * `rls.approvals.delegations` generates, so `approvalsHandler` and
373
- * `permdock_is_approver` read the same rows. A cover without a tenant
374
- * applies everywhere; a malformed row is skipped.
384
+ * `permdock_is_approver` read the same rows. A cover without a tenant applies
385
+ * everywhere; a malformed row is skipped.
375
386
  */
376
387
  function tableApprovalDelegationSource(options) {
377
388
  const table = quoteQualifiedTable(options.table ?? "permdock.approval_delegations");
@@ -396,15 +407,42 @@ function tableApprovalDelegationSource(options) {
396
407
  function isTable(value) {
397
408
  return value !== null && typeof value === "object" && "table" in value && typeof value.table === "string";
398
409
  }
410
+ /** A table with its `tenant` / `team` columns moved under `columns`. */
411
+ function configTable(table) {
412
+ const { tenant, team, ...rest } = table;
413
+ const columns = compact({
414
+ tenant,
415
+ team,
416
+ ...table.columns
417
+ });
418
+ return Object.keys(columns).length === 0 ? rest : {
419
+ ...rest,
420
+ columns
421
+ };
422
+ }
423
+ function configTables(tables) {
424
+ return tables === void 0 ? void 0 : Object.fromEntries(Object.entries(tables).map(([name, table]) => [name, configTable(table)]));
425
+ }
426
+ function configMemberships(raw) {
427
+ if (raw === void 0) return;
428
+ if (isTable(raw)) return { scopes: { tenant: configTable(raw) } };
429
+ const scopes = configTables(compact({
430
+ tenant: raw.tenant,
431
+ team: raw.team,
432
+ ...raw.scopes
433
+ }));
434
+ return compact({
435
+ scopes: scopes === void 0 || Object.keys(scopes).length === 0 ? void 0 : scopes,
436
+ resource: configTables(raw.resource)
437
+ });
438
+ }
399
439
  function supabaseRls(options = {}) {
400
- const raw = options.memberships;
401
- const memberships = raw === void 0 ? void 0 : isTable(raw) ? { tenant: raw } : raw;
402
440
  return compact({
403
441
  dialect: "supabase",
404
442
  roleClaim: options.roleClaim ?? "user_role",
405
443
  tenantClaim: options.tenantClaim ?? "tenant_id",
406
- tenantType: options.tenantType,
407
- memberships,
444
+ scopeTypes: options.tenantType === void 0 ? void 0 : { tenant: options.tenantType },
445
+ memberships: configMemberships(options.memberships),
408
446
  suspension: options.suspension,
409
447
  realtime: options.realtime,
410
448
  storage: options.storage
@@ -412,7 +450,10 @@ function supabaseRls(options = {}) {
412
450
  }
413
451
  const ident = (name) => quoteSqlIdent(name);
414
452
  const literal = quoteSqlLiteral;
415
- /** The memberships table's role key over alias `m`, joined to its roles table when it holds a reference. */
453
+ /**
454
+ * The memberships table's role key over alias `m`, joined to its roles table
455
+ * when it holds a reference.
456
+ */
416
457
  function tenantRole(memberships) {
417
458
  return roleColumn(memberships.role, qualifySqlTable(memberships.table), "m", {
418
459
  label: "authorizeSql tenant.role",
@@ -490,9 +531,9 @@ function customDatabaseBranch(q, scope, memberships, declared, levels, suspensio
490
531
  )`;
491
532
  }
492
533
  /**
493
- * The `role_permissions` match for one effect. An allow counts only without
494
- * row conditions (`grant_key = permission`): `authorize()` never sees the row.
495
- * A deny counts with or without them, so a conditional deny still denies.
534
+ * The `role_permissions` match for one effect. An allow counts only without row
535
+ * conditions (`grant_key = permission`): `authorize()` never sees the row. A
536
+ * deny counts with or without them, so a conditional deny still denies.
496
537
  */
497
538
  function effectMatch(scope, effect) {
498
539
  return `rp.permission = requested_permission::text
@@ -549,7 +590,10 @@ ${tenantBranch}
549
590
  and not ${global("deny")};
550
591
  end;`;
551
592
  }
552
- /** A claim membership whose `expires_at` (epoch seconds) has passed no longer holds its roles. */
593
+ /**
594
+ * A claim membership whose `expires_at` (epoch seconds) has passed no longer
595
+ * holds its roles.
596
+ */
553
597
  const CLAIM_UNEXPIRED = `case jsonb_typeof(m -> 'expires_at')
554
598
  when 'number' then (m ->> 'expires_at')::numeric > extract(epoch from now())
555
599
  else true
@@ -615,14 +659,16 @@ begin
615
659
  end;`;
616
660
  }
617
661
  /**
618
- * `authorize(requested_permission, requested_tenant text default null)` for Supabase's RBAC
619
- * scaffold, over the `role_permissions (role, permission, grant_key, scope, effect)` table that
620
- * `permdock rls generate` seeds. `database` reads `user_roles` (and the memberships table for a
621
- * tenant) on every call; `jwt` reads the hook-injected `user_role` and `memberships` claims. A
622
- * tenant request with no memberships source is denied, never answered from global roles. It
623
- * answers "does a role hold this permission" without seeing a row: an allow with row conditions
624
- * does not count, and a deny the user's tenant or global roles hold overrides every allow.
625
- * Generated policies call the per-statement RLS helpers (`permdock_has`, `permitted_<scope>_ids`)
662
+ * `authorize(requested_permission, requested_tenant text default null)` for
663
+ * Supabase's RBAC scaffold, over the `role_permissions (role, permission,
664
+ * grant_key, scope, effect)` table that `permdock rls generate` seeds.
665
+ * `database` reads `user_roles` (and the memberships table for a tenant) on
666
+ * every call; `jwt` reads the hook-injected `user_role` and `memberships`
667
+ * claims. A tenant request with no memberships source is denied, never answered
668
+ * from global roles. It answers "does a role hold this permission" without
669
+ * seeing a row: an allow with row conditions does not count, and a deny the
670
+ * user's tenant or global roles hold overrides every allow. Generated policies
671
+ * call the per-statement RLS helpers (`permdock_has`, `permitted_<scope>_ids`)
626
672
  * instead. Only `authenticated` may execute it.
627
673
  */
628
674
  function authorizeSql(options = {}) {
@@ -1,5 +1,5 @@
1
1
  import { t as defineLeaf } from "./command-L8EstFNm.js";
2
- import { c as given, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-C3DktBDY.js";
2
+ import { c as given, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-DXjoTVbS.js";
3
3
  //#region src/cli/commands/supabase.ts
4
4
  const hookGenerate = defineLeaf({
5
5
  flags: {
@@ -47,7 +47,7 @@ const hookGenerate = defineLeaf({
47
47
  const budget = given(flags.budget);
48
48
  const schema = given(flags.schema);
49
49
  const grantsOut = given(flags["grants-out"]);
50
- const { runSupabase } = await import("./supabase-hook-CCw5m35C.js");
50
+ const { runSupabase } = await import("./supabase-hook-H-MtE9Wd.js");
51
51
  return runSupabase({
52
52
  cwd: ctx.cwd,
53
53
  config: ctx.config,
@@ -76,7 +76,7 @@ const inspect = defineLeaf({
76
76
  },
77
77
  async run(ctx, { flags }) {
78
78
  const out = flags.out === "" ? true : flags.out === "-" ? void 0 : flags.out;
79
- const { runSupabase } = await import("./supabase-hook-CCw5m35C.js");
79
+ const { runSupabase } = await import("./supabase-hook-H-MtE9Wd.js");
80
80
  return runSupabase({
81
81
  cwd: ctx.cwd,
82
82
  config: ctx.config,