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,10 +1,11 @@
1
- import { u as Permission } from "./permission-types-DhNEmoRG.js";
2
- import { o as ProtectOptions } from "./server-types-C4gZUEZy.js";
1
+ import { u as Permission } from "./permission-types-CAY-GU7e.js";
2
+ import { o as ProtectOptions } from "./server-types-CyRN0-Cd.js";
3
3
  //#region src/server/stream.d.ts
4
4
  type StreamProtectOptions = ProtectOptions & {
5
5
  /**
6
6
  * For a procedure that returns an async iterable: each outbound item is
7
- * checked against this permission and dropped when the subscriber cannot read it.
7
+ * checked against this permission and dropped when the subscriber cannot read
8
+ * it.
8
9
  */
9
10
  readonly items?: Permission<string, unknown, "instance">;
10
11
  };
@@ -1,4 +1,4 @@
1
- import { r as PermDockRevokedError } from "./errors-BKy0EfhN.js";
1
+ import { r as PermDockRevokedError } from "./errors-B6R_lg2a.js";
2
2
  //#region src/server/stream.ts
3
3
  function isAsyncIterable(value) {
4
4
  return value !== null && typeof value === "object" && typeof value[Symbol.asyncIterator] === "function";
@@ -35,8 +35,8 @@ async function* guardIterable(source, connection, options) {
35
35
  }
36
36
  }
37
37
  /**
38
- * The connection loader for a stream `protect` already admitted: the first
39
- * read returns the row `protect` loaded, and each revalidation reloads it.
38
+ * The connection loader for a stream `protect` already admitted: the first read
39
+ * returns the row `protect` loaded, and each revalidation reloads it.
40
40
  */
41
41
  function reloadAfter(loaded, load) {
42
42
  let first = true;
@@ -51,8 +51,8 @@ function reloadAfter(loaded, load) {
51
51
  /** WebSocket close code for a policy violation (RFC 6455 section 7.4.1). */
52
52
  const POLICY_VIOLATION = 1008;
53
53
  /**
54
- * The close reason for a problem: its PermDock type URI, or its `detail`
55
- * code for an `about:blank` one. RFC 6455 caps a reason at 123 bytes.
54
+ * The close reason for a problem: its PermDock type URI, or its `detail` code
55
+ * for an `about:blank` one. RFC 6455 caps a reason at 123 bytes.
56
56
  */
57
57
  function closeReason(problem) {
58
58
  return problem.type === "about:blank" ? problem.detail : problem.type;
@@ -1 +1 @@
1
- export { t as createStyle, n as streamHasColors } from "./style-Cqo7-73x.js";
1
+ export { t as createStyle, n as streamHasColors } from "./style-Ds11Hmk4.js";
@@ -13,7 +13,8 @@ function createStyle(color) {
13
13
  }
14
14
  /**
15
15
  * Whether a stream takes colour. On a TTY `hasColors()` honours `NO_COLOR`,
16
- * `FORCE_COLOR` and `TERM`; a pipe colours only under a non-zero `FORCE_COLOR`.
16
+ * `FORCE_COLOR` and `TERM`; a pipe colours only under a non-zero
17
+ * `FORCE_COLOR`.
17
18
  */
18
19
  function streamHasColors(stream, env = process.env) {
19
20
  if (stream.isTTY === true) return stream.hasColors(env);
@@ -28,7 +28,10 @@ const DENIED = Object.freeze({
28
28
  function rowCheckOf(found, granted) {
29
29
  return found ? granted ? GRANTED : DENIED : MISSING;
30
30
  }
31
- /** Reads `select <filter> as granted ... where <key> limit 2`; only a boolean `true` or `1` grants. */
31
+ /**
32
+ * Reads `select <filter> as granted ... where <key> limit 2`; only a boolean
33
+ * `true` or `1` grants.
34
+ */
32
35
  function rowCheckFrom(rows) {
33
36
  if (rows.length > 1) throw new Error("PermDock: checkRow key matches more than one row");
34
37
  const [row] = rows;
@@ -88,9 +91,10 @@ function setConfigs(settings) {
88
91
  }];
89
92
  }
90
93
  /**
91
- * The transaction preamble that makes Postgres see `permdock.subject`: one `select set_config(…)`
92
- * that sets the role, then the claims the generated policies read. Runs inside the caller's
93
- * transaction, so every setting is local to it.
94
+ * The transaction preamble that makes Postgres see `permdock.subject`: one
95
+ * `select set_config(…)` that sets the role, then the claims the generated
96
+ * policies read. Runs inside the caller's transaction, so every setting is
97
+ * local to it.
94
98
  */
95
99
  function subjectStatements(permdock, options = {}) {
96
100
  const principal = permdock.subject.principal;
@@ -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,11 +1,11 @@
1
- import { Rt as Instant, lr as Subject } from "../policy-types-B-F-qAZk.js";
2
- import { a as ApprovalDelegationSource, m as ApprovalStore, u as ApprovalRequest } from "../types-DC44-hqb.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-CYacM_u7.js";
4
- import { C as SupabaseClaimsOptions, D as supabaseClaims, E as SupabasePermDockClaims, S as SupabaseClaims, T as SupabaseMembershipClaim, _ as SupabaseSubjectOptions, a as SupabaseActor, b as SupabaseSuspension, c as SupabaseInclude, d as SupabasePrincipal, f as SupabaseRealtime, g as SupabaseStorage, h as SupabaseSessionLike, i as SupabaseActiveRow, l as SupabaseMembershipTable, m as SupabaseRlsOptions, o as SupabaseActorResult, p as SupabaseRlsConfig, r as RoleThrough, s as SupabaseDelegation, t as AuthorizeSqlOptions, u as SupabasePermissionRef, v as SupabaseSuspendedMembership, w as SupabaseClaimsSchema, x as SupabaseActClaim, y as SupabaseSuspendedScope } from "../types-BfVmNJO5.js";
5
- import { t as SqlQuery } from "../sql-CDEPCA0g.js";
6
- import { a as SupabaseManifestActiveRow, c as SupabaseManifestMembership, d as SupabaseManifestRole, f as SupabaseManifestThrough, h as parseSupabaseManifest, i as SupabaseManifest, l as SupabaseManifestRequires, m as hasTokenHook, n as SupabaseHookClaim, o as SupabaseManifestColumn, p as SupabaseManifestValue, r as SupabaseHookManifest, s as SupabaseManifestHelper, t as SupabaseDatabaseManifest, u as SupabaseManifestRls } from "../manifest-BVhExYhw.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-DEEuGb8S.js";
8
- import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-JqcRqyhK.js";
1
+ import { Wt as Instant, hr as Subject } from "../policy-types-DGIO_gxq.js";
2
+ import { a as ApprovalDelegationSource, m as ApprovalStore, u as ApprovalRequest } from "../types-DLvhVm1r.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-D5nUGm-c.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-BMVDHvI0.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-CWG32C0G.js";
8
+ import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-hYsPz_yE.js";
9
9
  //#region src/supabase/capability.d.ts
10
10
  type ExchangeCapabilityOptions = {
11
11
  /**
@@ -16,7 +16,10 @@ type ExchangeCapabilityOptions = {
16
16
  readonly key: Record<string, unknown> | {
17
17
  readonly secret: string;
18
18
  };
19
- /** 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
+ */
20
23
  readonly alg?: "ES256" | "RS256" | "HS256";
21
24
  readonly kid?: string;
22
25
  readonly issuer?: string;
@@ -41,60 +44,66 @@ type SupabaseApprovalStoreOptions = {
41
44
  /**
42
45
  * Runs once per stored request, after the call that stored it, with the
43
46
  * stored request: notify the approvers, or cancel the requests this one
44
- * replaces. A repeated ask that finds the request still open does not run
45
- * 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.
46
49
  */
47
50
  readonly onOpen?: (request: ApprovalRequest) => void | Promise<void>;
48
51
  };
49
52
  /**
50
53
  * An `ApprovalStore` over the table and functions `rls.approvals` generates,
51
- * called through supabase-js (`client.schema(schema).rpc(...)`) with a
52
- * client that may execute them, such as a `service_role` client. Each method
53
- * is one atomic statement in the database: a repeated ask keeps the open
54
- * request, two racing approvers both count towards a quorum, and two racing
55
- * 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.
56
59
  */
57
60
  export declare function supabaseApprovalStore(client: SupabaseRpcCaller, options?: SupabaseApprovalStoreOptions): ApprovalStore;
58
61
  //#endregion
59
62
  //#region src/supabase/approval-delegations.d.ts
60
63
  type TableApprovalDelegationSourceOptions = {
61
64
  readonly query: SqlQuery;
62
- /** 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
+ */
63
69
  readonly table?: string;
64
70
  };
65
71
  /**
66
72
  * Approval delegations (out-of-office covers) from the table
67
73
  * `rls.approvals.delegations` generates, so `approvalsHandler` and
68
- * `permdock_is_approver` read the same rows. A cover without a tenant
69
- * 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.
70
76
  */
71
77
  export declare function tableApprovalDelegationSource(options: TableApprovalDelegationSourceOptions): ApprovalDelegationSource;
72
78
  //#endregion
73
79
  //#region src/supabase/rls.d.ts
74
80
  export declare function supabaseRls(options?: SupabaseRlsOptions): SupabaseRlsConfig;
75
81
  /**
76
- * `authorize(requested_permission, requested_tenant text default null)` for Supabase's RBAC
77
- * scaffold, over the `role_permissions (role, permission, grant_key, scope, effect)` table that
78
- * `permdock rls generate` seeds. `database` reads `user_roles` (and the memberships table for a
79
- * tenant) on every call; `jwt` reads the hook-injected `user_role` and `memberships` claims. A
80
- * tenant request with no memberships source is denied, never answered from global roles. It
81
- * answers "does a role hold this permission" without seeing a row: an allow with row conditions
82
- * does not count, and a deny the user's tenant or global roles hold overrides every allow.
83
- * 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`)
84
92
  * instead. Only `authenticated` may execute it.
85
93
  */
86
94
  export declare function authorizeSql(options?: AuthorizeSqlOptions): string;
87
95
  //#endregion
88
96
  //#region src/supabase/subject.d.ts
89
97
  /**
90
- * Who acts for the user: the outermost `sub` of an RFC 8693 `act` chain (the current
91
- * actor; nested levels are prior actors, kept on `chain` for audit), else the
92
- * OAuth `client_id` of a third-party app. The outer level's `kind` names the actor:
93
- * none is `oauth-client`, `support` a support session, `impersonation` an admin acting as the
94
- * user. Reads only `act` and `client_id`; the caller applies the role rule first (`anon` and
95
- * `service_role` are anonymous and carry no actor). An `act` that is not a chain of objects each
96
- * with a non-empty `sub`, that names another `kind`, or a support level without `session_id`,
97
- * 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.
98
107
  */
99
108
  export declare function actorOf(claims: unknown): SupabaseActorResult;
100
109
  /**
@@ -104,9 +113,10 @@ export declare function actorOf(claims: unknown): SupabaseActorResult;
104
113
  export declare function delegationOf(claims: unknown): SupabaseDelegation | undefined;
105
114
  export declare function subjectFromSupabase(claims: unknown, options?: SupabaseSubjectOptions): Subject<SupabasePrincipal>;
106
115
  /**
107
- * A verified session object (`{ kind, claims }`) in, `Subject` out.
108
- * 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.
109
119
  */
110
120
  export declare function subjectFromSupabaseSession(session: SupabaseSessionLike | null | undefined, options?: SupabaseSubjectOptions): Subject<SupabasePrincipal>;
111
121
  //#endregion
112
- 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 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, hasTokenHook, 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--0aJdLEd.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-B-zYB4GS.js";
4
- import { a as delegationOf, c as subjectFromSupabaseSession, i as actorOf, n as postgrestSources, r as readSubjectRecord, s as subjectFromSupabase } from "../postgrest-r5faDIzD.js";
5
- import { n as parseSupabaseManifest, t as hasTokenHook } from "../manifest-B79YuF2T.js";
1
+ import { a as supabaseClaims, i as supabaseApprovalStore, n as supabaseRls, o as exchangeCapability, r as tableApprovalDelegationSource, t as authorizeSql } from "../supabase-DnMMg5Fn.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-5Dr3W64L.js";
5
+ import { n as parseSupabaseManifest, t as hasTokenHook } from "../manifest-wg8WkkpD.js";
6
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, j as PolicyVocabulary, lr as Subject, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
- import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
- import { a as PermDock } from "../permdock-Dco6dyCK.js";
4
- import { t as InstanceOptions } from "../instance-options-CU0YQCLH.js";
1
+ import { T as Policy, hr as Subject, j as PolicyVocabulary, pr as Principal } from "../policy-types-DGIO_gxq.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as PermDock } from "../permdock-CprAPN3w.js";
4
+ import { t as InstanceOptions } from "../instance-options-CoHn-0e8.js";
5
5
  import { t as RequestContext } from "../request-context-C2_1lchh.js";
6
- import { i as OpenApiHooks } from "../server-types-C4gZUEZy.js";
7
- import { n as ServerAdapterServices } from "../bind-JDuvxjuW.js";
6
+ import { i as OpenApiHooks } from "../server-types-CyRN0-Cd.js";
7
+ import { n as ServerAdapterServices } from "../bind-YYjvfpB9.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 { l as withApp } from "../permdock-BfWEeMqk.js";
3
- import { t as composeWraps } from "../wrap-CiSc_KCq.js";
4
- import { r as credentialSubject } from "../credential-CIM7wHwA.js";
5
- import { a as methodNotAllowed } from "../problem-CTviyH5L.js";
6
- import { r as instanceOptions } from "../build-instance-DxE7czo9.js";
7
- import { t as createPermDock$1 } from "../create-DJrlhEp9.js";
8
- import { n as attached } from "../bind-D1nO6fiC.js";
2
+ import { l as withApp } from "../permdock-BvjivVb9.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-BWXqwQYU.js";
7
+ import { t as createPermDock$1 } from "../create-BLPKnJKa.js";
8
+ import { n as attached } from "../bind-BNQA9JK9.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";
2
+ import { d as isoNow, i as dateAt, p as nowSeconds, u as isoAt } from "./time-nR1JesoH.js";
3
3
  import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
4
- import { s as ApprovalError } from "./types-DqzsnlSA.js";
5
- import { c as decodeApprovalCursor, l as encodeApprovalCursor, s as approvalPageSize, t as applyApprovalVerdict } from "./store-DSP9oGvh.js";
6
- import { a as parseCapability } from "./capability-L7NnfhiE.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 { a as quoteQualifiedTable, c as quoteSqlTable, d as sqlTextArray, i as qualifySqlTable, o as quoteSqlIdent, s as quoteSqlLiteral } from "./sql-B96movIM.js";
9
- import "./budget-NbEtbJC_.js";
10
- import { d as keptKeys, l as roleColumn } from "./sources-B-zYB4GS.js";
11
- import { t as callRpc } from "./postgrest-r5faDIzD.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-5Dr3W64L.js";
12
12
  //#region src/supabase/capability.ts
13
13
  const DEFAULT_TTL = 300;
14
14
  const MAX_TTL = 3600;
@@ -130,7 +130,11 @@ function checkPermDockClaims(record, tenantClaim, path, issues) {
130
130
  optional(record, "attrs", path, issues, isRecord, "an object");
131
131
  optional(record, "authz_ver", path, issues, (value) => Number.isInteger(value), "an integer");
132
132
  }
133
- /** 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
+ */
134
138
  function checkActKind(level, path, issues) {
135
139
  const marked = own(level, "kind");
136
140
  const kind = marked === void 0 && own(level, "session_id") !== void 0 ? "support" : marked;
@@ -223,7 +227,9 @@ function schemaOf(validate) {
223
227
  * Needs no validation library.
224
228
  *
225
229
  * ```ts
226
- * sb.claims(supabaseClaims().extend(z.object({ datetime_preferences: Prefs })))
230
+ * sb.claims(
231
+ * supabaseClaims().extend(z.object({ datetime_preferences: Prefs })),
232
+ * );
227
233
  * ```
228
234
  */
229
235
  function supabaseClaims(options = {}) {
@@ -236,7 +242,10 @@ function supabaseClaims(options = {}) {
236
242
  }
237
243
  //#endregion
238
244
  //#region src/supabase/approval-store.ts
239
- /** 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
+ */
240
249
  function requestOf(value) {
241
250
  if (!isRecord(value) || value["v"] !== 1 || typeof value["token"] !== "string") return null;
242
251
  return value;
@@ -252,11 +261,11 @@ function filterOf(filter) {
252
261
  }
253
262
  /**
254
263
  * An `ApprovalStore` over the table and functions `rls.approvals` generates,
255
- * called through supabase-js (`client.schema(schema).rpc(...)`) with a
256
- * client that may execute them, such as a `service_role` client. Each method
257
- * is one atomic statement in the database: a repeated ask keeps the open
258
- * request, two racing approvers both count towards a quorum, and two racing
259
- * 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.
260
269
  */
261
270
  function supabaseApprovalStore(client, options = {}) {
262
271
  const schema = options.schema ?? "permdock";
@@ -372,8 +381,8 @@ function delegationOf(row) {
372
381
  /**
373
382
  * Approval delegations (out-of-office covers) from the table
374
383
  * `rls.approvals.delegations` generates, so `approvalsHandler` and
375
- * `permdock_is_approver` read the same rows. A cover without a tenant
376
- * 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.
377
386
  */
378
387
  function tableApprovalDelegationSource(options) {
379
388
  const table = quoteQualifiedTable(options.table ?? "permdock.approval_delegations");
@@ -398,15 +407,42 @@ function tableApprovalDelegationSource(options) {
398
407
  function isTable(value) {
399
408
  return value !== null && typeof value === "object" && "table" in value && typeof value.table === "string";
400
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
+ }
401
439
  function supabaseRls(options = {}) {
402
- const raw = options.memberships;
403
- const memberships = raw === void 0 ? void 0 : isTable(raw) ? { tenant: raw } : raw;
404
440
  return compact({
405
441
  dialect: "supabase",
406
442
  roleClaim: options.roleClaim ?? "user_role",
407
443
  tenantClaim: options.tenantClaim ?? "tenant_id",
408
- tenantType: options.tenantType,
409
- memberships,
444
+ scopeTypes: options.tenantType === void 0 ? void 0 : { tenant: options.tenantType },
445
+ memberships: configMemberships(options.memberships),
410
446
  suspension: options.suspension,
411
447
  realtime: options.realtime,
412
448
  storage: options.storage
@@ -414,7 +450,10 @@ function supabaseRls(options = {}) {
414
450
  }
415
451
  const ident = (name) => quoteSqlIdent(name);
416
452
  const literal = quoteSqlLiteral;
417
- /** 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
+ */
418
457
  function tenantRole(memberships) {
419
458
  return roleColumn(memberships.role, qualifySqlTable(memberships.table), "m", {
420
459
  label: "authorizeSql tenant.role",
@@ -492,9 +531,9 @@ function customDatabaseBranch(q, scope, memberships, declared, levels, suspensio
492
531
  )`;
493
532
  }
494
533
  /**
495
- * The `role_permissions` match for one effect. An allow counts only without
496
- * row conditions (`grant_key = permission`): `authorize()` never sees the row.
497
- * 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.
498
537
  */
499
538
  function effectMatch(scope, effect) {
500
539
  return `rp.permission = requested_permission::text
@@ -551,7 +590,10 @@ ${tenantBranch}
551
590
  and not ${global("deny")};
552
591
  end;`;
553
592
  }
554
- /** 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
+ */
555
597
  const CLAIM_UNEXPIRED = `case jsonb_typeof(m -> 'expires_at')
556
598
  when 'number' then (m ->> 'expires_at')::numeric > extract(epoch from now())
557
599
  else true
@@ -617,14 +659,16 @@ begin
617
659
  end;`;
618
660
  }
619
661
  /**
620
- * `authorize(requested_permission, requested_tenant text default null)` for Supabase's RBAC
621
- * scaffold, over the `role_permissions (role, permission, grant_key, scope, effect)` table that
622
- * `permdock rls generate` seeds. `database` reads `user_roles` (and the memberships table for a
623
- * tenant) on every call; `jwt` reads the hook-injected `user_role` and `memberships` claims. A
624
- * tenant request with no memberships source is denied, never answered from global roles. It
625
- * answers "does a role hold this permission" without seeing a row: an allow with row conditions
626
- * does not count, and a deny the user's tenant or global roles hold overrides every allow.
627
- * 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`)
628
672
  * instead. Only `authenticated` may execute it.
629
673
  */
630
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-aaeRAdiD.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-DJxC4PoP.js");
50
+ const { runSupabase } = await import("./supabase-hook-C0FyEACZ.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-DJxC4PoP.js");
79
+ const { runSupabase } = await import("./supabase-hook-C0FyEACZ.js");
80
80
  return runSupabase({
81
81
  cwd: ctx.cwd,
82
82
  config: ctx.config,
@@ -0,0 +1 @@
1
+ export { i as runSupabase } from "./supabase-hook-CrgU06WH.js";