permdock 0.4.0 → 0.6.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 (515) hide show
  1. package/README.md +37 -35
  2. package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
  3. package/dist/a2a/index.d.ts +6 -6
  4. package/dist/a2a/index.js +14 -17
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-DCYe60Pi.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -35
  10. package/dist/ai-sdk/index.js +37 -23
  11. package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-DvSSPQJX.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-p1PGoVjb.js +995 -0
  18. package/dist/arazzo-41WuzHou.js +36 -0
  19. package/dist/{arazzo-C4BcskbX.js → arazzo-CaUVBn7D.js} +20 -14
  20. package/dist/args-IIolxxKA.js +197 -0
  21. package/dist/astro/index.d.ts +43 -0
  22. package/dist/astro/index.js +27 -0
  23. package/dist/audience-DabClFLQ.js +55 -0
  24. package/dist/auth-DRLEizbL.js +178 -0
  25. package/dist/authzen/index.d.ts +26 -6
  26. package/dist/authzen/index.js +94 -79
  27. package/dist/automation-BNM3TtDo.d.ts +114 -0
  28. package/dist/automation-DVjOckjV.js +157 -0
  29. package/dist/better-auth/index.d.ts +8 -6
  30. package/dist/better-auth/index.js +9 -8
  31. package/dist/better-supabase/index.d.ts +357 -30
  32. package/dist/better-supabase/index.js +936 -194
  33. package/dist/{bind-kk-uyCwH.js → bind-CAvgUuKs.js} +14 -10
  34. package/dist/{bind-BzqG8SMb.d.ts → bind-DOyrv6zi.d.ts} +12 -10
  35. package/dist/body-CH5of8Ne.js +10 -0
  36. package/dist/body-text-QcXok_SI.js +52 -0
  37. package/dist/{build-instance-DIIV9DbC.js → build-instance-Bu_eDqYw.js} +4 -3
  38. package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
  39. package/dist/{capability-CksyCWDH.d.ts → capability-Drg-1YhL.d.ts} +44 -25
  40. package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
  41. package/dist/casbin-Cr7RLtA3.js +30 -0
  42. package/dist/casbin-Dyu2gnUD.js +234 -0
  43. package/dist/casl-64gpT-8x.js +24 -0
  44. package/dist/casl-DjEDhTCP.js +299 -0
  45. package/dist/catalog/index.d.ts +74 -2
  46. package/dist/catalog/index.js +51 -2
  47. package/dist/catalog-BoWglDPI.js +1 -0
  48. package/dist/catalog-DZVbrF-z.js +52 -0
  49. package/dist/{catalog-tZUyOfOv.js → catalog-HD2gf5mY.js} +51 -6
  50. package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-Cdn7-0pQ.js} +45 -23
  51. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  52. package/dist/chat/index.d.ts +2 -0
  53. package/dist/chat/index.js +224 -0
  54. package/dist/chat-sdk/index.d.ts +87 -0
  55. package/dist/chat-sdk/index.js +197 -0
  56. package/dist/claims-map-7oQ3ue4X.js +13 -0
  57. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  58. package/dist/claude-agent/index.d.ts +7 -14
  59. package/dist/claude-agent/index.js +24 -27
  60. package/dist/clerk/index.d.ts +9 -8
  61. package/dist/clerk/index.js +9 -14
  62. package/dist/cli/bin.js +36 -17
  63. package/dist/cli/index.d.ts +19 -5
  64. package/dist/cli/index.js +164 -4
  65. package/dist/cloud/index.d.ts +102 -63
  66. package/dist/cloud/index.js +239 -340
  67. package/dist/cloud-ytQ3uviA.js +87 -0
  68. package/dist/codemod-5mpSpnUY.js +37 -0
  69. package/dist/codemod-ua2hHy7w.js +2084 -0
  70. package/dist/collect-Ci6akVwH.js +55 -0
  71. package/dist/collect-D7eQDffE.js +1 -0
  72. package/dist/{collect-2SrB7lfk.js → collect-mLTY4nwb.js} +75 -11
  73. package/dist/command-L8EstFNm.js +6 -0
  74. package/dist/compile/index.d.ts +1 -1
  75. package/dist/compile/index.js +1 -2
  76. package/dist/{compile-CtTP7eur.d.ts → compile-1bsAezL0.d.ts} +5 -3
  77. package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
  78. package/dist/completion-BTFrHZhX.js +143 -0
  79. package/dist/config-Bj2Ixq3d.js +26 -0
  80. package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
  81. package/dist/{config-report--Xb9APJS.js → config-report-DSpsLpCE.js} +15 -5
  82. package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
  83. package/dist/{context-DieZVJXu.js → context-B_u3_bDJ.js} +2 -2
  84. package/dist/convex/index.d.ts +11 -10
  85. package/dist/convex/index.js +6 -4
  86. package/dist/create-B30OMUOJ.d.ts +107 -0
  87. package/dist/create-CBMmFie-.d.ts +138 -0
  88. package/dist/create-CGm28gyI.js +130 -0
  89. package/dist/create-CQWIpUG-.js +403 -0
  90. package/dist/{create-BBO24vj6.js → create-DCF2SvoT.js} +31 -32
  91. package/dist/create-D_NmPOdH.d.ts +110 -0
  92. package/dist/{credential-kue0qpbm.js → credential-BcoiejpY.js} +152 -31
  93. package/dist/credentials-DPyHmYz5.js +74 -0
  94. package/dist/delegation-j6-rc37o.js +286 -0
  95. package/dist/delivery/index.d.ts +5 -0
  96. package/dist/delivery/index.js +5 -0
  97. package/dist/delivery-DCAgNyCn.js +499 -0
  98. package/dist/delivery-event-xX4obB8F.js +40 -0
  99. package/dist/{denied-text-DfRk15uw.d.ts → denied-text-CiFQNuMV.d.ts} +5 -5
  100. package/dist/{describe-C3ldA9os.d.ts → describe-B5qgDvEW.d.ts} +2 -2
  101. package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
  102. package/dist/device-BARQ8eYG.js +193 -0
  103. package/dist/{diff-rpqoe7Ag.js → diff-3jbx6Rm4.js} +60 -54
  104. package/dist/diff-CmuSD3vc.js +37 -0
  105. package/dist/doctor-3ZqNHX_G.js +44 -0
  106. package/dist/{doctor-owlv6ddh.js → doctor-BdZw53-k.js} +245 -50
  107. package/dist/drizzle/index.d.ts +5 -3
  108. package/dist/drizzle/index.js +2 -2
  109. package/dist/elysia/index.d.ts +16 -13
  110. package/dist/elysia/index.js +13 -12
  111. package/dist/env-DJZrPjRi.js +8 -0
  112. package/dist/errors-BDUwg2qC.js +27 -0
  113. package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
  114. package/dist/errors-BWXBMaKK.d.ts +11 -0
  115. package/dist/errors-CWTY6uih.js +143 -0
  116. package/dist/{errors-OD_4c__H.d.ts → errors-DH5QEGXh.d.ts} +2 -2
  117. package/dist/evaluate-CNClBvcj.js +1785 -0
  118. package/dist/evaluations-C_1vdSZc.d.ts +32 -0
  119. package/dist/{evaluations-C9YJsv3H.js → evaluations-beAooV0n.js} +145 -34
  120. package/dist/eve/index.d.ts +12 -16
  121. package/dist/eve/index.js +22 -28
  122. package/dist/event-time-CsegxXxB.js +23 -0
  123. package/dist/expiry-D4_YKRKD.js +52 -0
  124. package/dist/express/index.d.ts +13 -10
  125. package/dist/express/index.js +12 -11
  126. package/dist/fastify/index.d.ts +25 -22
  127. package/dist/fastify/index.js +13 -12
  128. package/dist/fetch-adapter-DD_gfmrC.js +120 -0
  129. package/dist/fetch-adapter-Dw0MTS3D.d.ts +31 -0
  130. package/dist/fields-OYG_JR78.js +203 -0
  131. package/dist/files-C5ZI27eV.js +124 -0
  132. package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
  133. package/dist/flags-C3DktBDY.js +86 -0
  134. package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-CTCMsFZk.js} +55 -52
  135. package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
  136. package/dist/{grantee-CXY-0C87.js → grantee-hxrUsbpM.js} +16 -6
  137. package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DbENBHLB.js} +5 -4
  138. package/dist/h3/index.d.ts +37 -0
  139. package/dist/h3/index.js +35 -0
  140. package/dist/headers-BIjfMaoC.js +8 -0
  141. package/dist/headers-CIbDTUTK.d.ts +7 -0
  142. package/dist/{helpers-C9YmyBIa.js → helpers-CBYVMjwh.js} +45 -38
  143. package/dist/hono/index.d.ts +12 -9
  144. package/dist/hono/index.js +13 -12
  145. package/dist/hosted-B46-5LYE.js +315 -0
  146. package/dist/hosted-BPk51-kX.d.ts +78 -0
  147. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  148. package/dist/http-DXJ37RDA.js +46 -0
  149. package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
  150. package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
  151. package/dist/{import-BFIlhetD.js → import-wyqXUyjm.js} +190 -53
  152. package/dist/index-B8YjkEZ4.d.ts +210 -0
  153. package/dist/index-C-6Letxg.d.ts +431 -0
  154. package/dist/index-CaxrMD1A.d.ts +1 -0
  155. package/dist/{index-BwMe94Xq.d.ts → index-Ch8LpNDp.d.ts} +34 -16
  156. package/dist/index-Cp_ilKi1.d.ts +91 -0
  157. package/dist/index-CueFnxQc.d.ts +110 -0
  158. package/dist/index-DuWxc5dt.d.ts +909 -0
  159. package/dist/index.d.ts +19 -15
  160. package/dist/index.js +31 -21
  161. package/dist/init-DeMYsnYJ.js +96 -0
  162. package/dist/init-GG6Jh8HD.js +95 -0
  163. package/dist/{instance-options-plkrsAog.d.ts → instance-options-BsVpyGIk.d.ts} +2 -2
  164. package/dist/instance-snapshot-BOEhcqIF.js +601 -0
  165. package/dist/instant-BluqDvyS.js +19 -0
  166. package/dist/internals-Dk8A8fX3.js +17 -0
  167. package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
  168. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  169. package/dist/jwt/index.d.ts +18 -11
  170. package/dist/jwt/index.js +156 -135
  171. package/dist/{kernel-CB3LrIJM.js → kernel-D0NVb1cK.js} +52 -24
  172. package/dist/kysely/index.d.ts +5 -3
  173. package/dist/kysely/index.js +2 -2
  174. package/dist/load-BxEtwlBS.js +1 -0
  175. package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
  176. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  177. package/dist/login-Dfe5RlYk.js +68 -0
  178. package/dist/login-imhuwvn3.js +254 -0
  179. package/dist/manifest-C8IzW3Do.js +42 -0
  180. package/dist/manifest-dvL2XEe1.js +370 -0
  181. package/dist/manifest-json-CAGzls-C.js +9 -0
  182. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  183. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  184. package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
  185. package/dist/{map-error-BE27PYkE.js → map-error-Dr70oA_3.js} +3 -3
  186. package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
  187. package/dist/mcp/index.d.ts +22 -12
  188. package/dist/mcp/index.js +57 -39
  189. package/dist/{migrate-BwlB5-Wk.js → migrate-CIq4-E9F.js} +53 -14
  190. package/dist/nest/index.d.ts +12 -9
  191. package/dist/nest/index.js +15 -14
  192. package/dist/next/index.d.ts +18 -21
  193. package/dist/next/index.js +13 -11
  194. package/dist/next/plugin.d.ts +1 -1
  195. package/dist/next/plugin.js +2 -2
  196. package/dist/node/index.d.ts +10 -10
  197. package/dist/node/index.js +7 -9
  198. package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
  199. package/dist/openai/index.d.ts +9 -16
  200. package/dist/openai/index.js +17 -24
  201. package/dist/openapi/index.d.ts +3 -3
  202. package/dist/openapi/index.js +1 -1
  203. package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
  204. package/dist/openapi-C4dDTVEd.js +138 -0
  205. package/dist/{openapi-BJdBmYDG.js → openapi-DD1SV-5-.js} +10 -9
  206. package/dist/operation-findings-DgATDpvh.js +36 -0
  207. package/dist/operations-X0VM7F3m.d.ts +59 -0
  208. package/dist/orpc/index.d.ts +13 -10
  209. package/dist/orpc/index.js +20 -15
  210. package/dist/otel/index.d.ts +3 -2
  211. package/dist/otel/index.js +30 -7
  212. package/dist/output-1im__-08.js +88 -0
  213. package/dist/output-files-B3IZJksC.js +1 -0
  214. package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
  215. package/dist/{permission-keys-B26jeyUv.js → ownership-DqaJNJPn.js} +1045 -153
  216. package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
  217. package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
  218. package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-5ODwqu8b.d.ts} +1 -1
  219. package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
  220. package/dist/parse-request-D_tUXG6M.js +26 -0
  221. package/dist/paths-DXSHAMIa.js +42 -0
  222. package/dist/pdp/index.d.ts +7 -3
  223. package/dist/pdp/index.js +45 -26
  224. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  225. package/dist/peer-CRvC7Hg1.js +1 -0
  226. package/dist/permdock-BrAscV28.js +868 -0
  227. package/dist/permdock-SV8ZINYT.d.ts +502 -0
  228. package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
  229. package/dist/permissions-B-wCP5ZC.js +30 -0
  230. package/dist/{permissions-CCJ6lmxB.js → permissions-BPxlwVhN.js} +4 -3
  231. package/dist/{permissions-COH-KRgT.d.ts → permissions-u_KHg-sN.d.ts} +1 -2
  232. package/dist/policies-DP2nqRoF.js +295 -0
  233. package/dist/{policy-ur0BBK_e.d.ts → policy-77FSAq_V.d.ts} +2 -2
  234. package/dist/{hosted-CBHgkzDl.js → policy-DbM5YYtV.js} +17 -273
  235. package/dist/policy-from-catalog-C2gMa2Dj.js +450 -0
  236. package/dist/policy-module-CTlwMvLI.js +89 -0
  237. package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-n0uRTsW8.d.ts} +460 -632
  238. package/dist/postgrest-CEgRbefE.d.ts +100 -0
  239. package/dist/postgrest-DAjUkF9w.js +575 -0
  240. package/dist/{powersync-cZe4kzhL.js → powersync-BkWWCS1K.js} +23 -24
  241. package/dist/powersync-DISt6SUe.js +62 -0
  242. package/dist/powersync-MMJ2mI2q.js +1 -0
  243. package/dist/preset/index.d.ts +146 -0
  244. package/dist/preset/index.js +1 -0
  245. package/dist/preset-DZdU0tne.js +1768 -0
  246. package/dist/principal-source-pHneukrx.js +103 -0
  247. package/dist/prisma/index.d.ts +6 -3
  248. package/dist/prisma/index.js +2 -2
  249. package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
  250. package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-B45V5d2b.d.ts} +1 -1
  251. package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
  252. package/dist/problem-types-CJ2325SZ.js +5 -0
  253. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  254. package/dist/{protected-BN7BUdY1.js → protected-BlF0F6wL.js} +21 -4
  255. package/dist/{protected-B3_P7xuw.d.ts → protected-RFGpakN9.d.ts} +16 -8
  256. package/dist/{provider-Bi-0HNL3.js → provider-B1al-AZz.js} +2 -2
  257. package/dist/{provider-kwHC9CZD.d.ts → provider-DILL9oPK.d.ts} +1 -1
  258. package/dist/{provider-store-Ctt-81Ni.js → provider-store-DM6DNcta.js} +2 -2
  259. package/dist/pull-CvpINcMK.js +1 -0
  260. package/dist/pull-jEwbf80J.js +256 -0
  261. package/dist/push-BD4f15co.js +116 -0
  262. package/dist/pushed-policy-CqtxkV4G.js +238 -0
  263. package/dist/pushed-policy-DCW91KQU.d.ts +57 -0
  264. package/dist/react/index.d.ts +8 -8
  265. package/dist/react/index.js +6 -6
  266. package/dist/react/provider-client.d.ts +1 -1
  267. package/dist/react/provider-client.js +1 -2
  268. package/dist/react-native/index.d.ts +24 -72
  269. package/dist/react-native/index.js +29 -25
  270. package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
  271. package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
  272. package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
  273. package/dist/renames-CGj7YwcQ.js +175 -0
  274. package/dist/{replay-COpmZUfx.d.ts → replay-Bkm-Ne4l.d.ts} +1 -1
  275. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  276. package/dist/{request-context-BVM7aWNs.js → request-context-C81Pip9n.js} +3 -3
  277. package/dist/request-schema-CMreVuFM.js +148 -0
  278. package/dist/resend/index.d.ts +126 -0
  279. package/dist/resend/index.js +379 -0
  280. package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
  281. package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
  282. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  283. package/dist/rls-BAqP4q66.js +336 -0
  284. package/dist/{rls-BEktUaqg.js → rls-DTvYd-lI.js} +288 -690
  285. package/dist/{role-builder-B4GbKM-i.js → role-builder-uWQZ4v84.js} +14 -207
  286. package/dist/{rpc-nYC3cR_u.js → rpc-VSl5ylaQ.js} +7 -7
  287. package/dist/run-CUKuz0A8.js +723 -0
  288. package/dist/run-DDwUaJDU.js +1 -0
  289. package/dist/run-ticket-DocwaTKn.d.ts +124 -0
  290. package/dist/run-ticket-sxFI6LAk.js +337 -0
  291. package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
  292. package/dist/{saas-DtaA4JuW.js → saas-BCXRuXca.js} +16 -14
  293. package/dist/scan-qvOe0hS3.js +29 -0
  294. package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
  295. package/dist/schema-yLuBWWsh.js +130 -0
  296. package/dist/scim/index.d.ts +2 -2
  297. package/dist/scim/index.js +1 -2
  298. package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
  299. package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
  300. package/dist/server/index.d.ts +12 -143
  301. package/dist/server/index.js +12 -9
  302. package/dist/server-C3WXAHZj.js +453 -0
  303. package/dist/{server-types-DdqBwZN_.d.ts → server-types-CKQiCnON.d.ts} +51 -68
  304. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  305. package/dist/{shared-1uhI-e-b.js → shared-BAK8t4Uo.js} +20 -9
  306. package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
  307. package/dist/signals-D3NcTKUS.js +32 -0
  308. package/dist/sink-4-eQIRWf.d.ts +225 -0
  309. package/dist/sink-BEZSlMS_.js +957 -0
  310. package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
  311. package/dist/skills-CTYwkl44.js +51 -0
  312. package/dist/snapshot-B7DkYg6g.js +269 -0
  313. package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  314. package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-PXI-vGpY.d.ts} +7 -5
  315. package/dist/solid/index.d.ts +11 -12
  316. package/dist/solid/index.js +7 -7
  317. package/dist/solid-start/index.d.ts +52 -0
  318. package/dist/solid-start/index.js +49 -0
  319. package/dist/{sources-Dljy06zL.d.ts → sources-Xc4zkszI.d.ts} +7 -13
  320. package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
  321. package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
  322. package/dist/src-Cu2m75uo.js +1860 -0
  323. package/dist/ssf/index.d.ts +4 -4
  324. package/dist/ssf/index.js +384 -47
  325. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  326. package/dist/standard-webhooks-rbD7LS6h.d.ts +88 -0
  327. package/dist/storage-C2bWdvJH.js +132 -0
  328. package/dist/{store-ILkLUj_o.js → store-BDutJkDL.js} +40 -53
  329. package/dist/{store-options-CbUHDoSe.js → store-options-u0ycEe8s.js} +26 -21
  330. package/dist/{stores-Cxz_80g-.d.ts → stores-BUGNbJTt.d.ts} +7 -8
  331. package/dist/{stores-BHXdSbw9.js → stores-CGhM8BN_.js} +2 -2
  332. package/dist/{stream-Dwsg6WwE.d.ts → stream-CeCMJmBB.d.ts} +2 -2
  333. package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
  334. package/dist/style-DiKWnAvn.js +1 -0
  335. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  336. package/dist/subject-BGoM5o8B.js +17 -0
  337. package/dist/supabase/index.d.ts +23 -106
  338. package/dist/supabase/index.js +5 -4
  339. package/dist/supabase/middleware.d.ts +7 -6
  340. package/dist/supabase/middleware.js +13 -11
  341. package/dist/supabase-By_frk3U.js +92 -0
  342. package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-BMoEhZir.js} +960 -64
  343. package/dist/supabase-hook-CCw5m35C.js +1 -0
  344. package/dist/{supabase-C1TWlnYt.js → supabase-x5JtR2tc.js} +99 -206
  345. package/dist/support-session-C6xJQYut.js +158 -0
  346. package/dist/svelte/Protected.svelte +4 -4
  347. package/dist/svelte/index.d.ts +7 -7
  348. package/dist/svelte/index.js +10 -10
  349. package/dist/svelte/runtime.d.ts +3 -3
  350. package/dist/svelte/runtime.js +3 -3
  351. package/dist/svelte/source.d.ts +7 -7
  352. package/dist/svelte/source.js +4 -4
  353. package/dist/sveltekit/index.d.ts +51 -0
  354. package/dist/sveltekit/index.js +27 -0
  355. package/dist/tanstack-start/index.d.ts +51 -0
  356. package/dist/tanstack-start/index.js +40 -0
  357. package/dist/target-Bw37TFNA.js +51 -0
  358. package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
  359. package/dist/terminal/index.d.ts +11 -9
  360. package/dist/terminal/index.js +23 -287
  361. package/dist/testing/index.d.ts +311 -38
  362. package/dist/testing/index.js +3475 -201
  363. package/dist/testing/saas/index.d.ts +9 -8
  364. package/dist/testing/saas/index.js +2 -2
  365. package/dist/testing/saas/permissions.d.ts +1 -1
  366. package/dist/testing/saas/permissions.js +1 -2
  367. package/dist/text-BMFRfBqc.js +8 -0
  368. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  369. package/dist/thenable-yD7SabqG.js +31 -0
  370. package/dist/time-DkWjdL98.js +71 -0
  371. package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
  372. package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
  373. package/dist/trpc/index.d.ts +12 -9
  374. package/dist/trpc/index.js +16 -14
  375. package/dist/types-8RnwUAvE.d.ts +107 -0
  376. package/dist/{store-9KO4BlkB.d.ts → types-B3_ooZgZ.d.ts} +100 -75
  377. package/dist/{types-Br9IXUBG.d.ts → types-BdtSDbBO.d.ts} +77 -17
  378. package/dist/types-BtHtcKMr.d.ts +157 -0
  379. package/dist/{types-CqrjB9o6.d.ts → types-BzzaHxt3.d.ts} +23 -11
  380. package/dist/types-C791HFu9.d.ts +332 -0
  381. package/dist/types-C863OQiR.d.ts +57 -0
  382. package/dist/{types-ByUo56un.d.ts → types-CVZSNocA.d.ts} +23 -22
  383. package/dist/{types-DHrmBJLH.d.ts → types-CX7AvRqP.d.ts} +7 -7
  384. package/dist/types-C_IiEs64.d.ts +65 -0
  385. package/dist/{types-7rJVLWe5.d.ts → types-Dfv0aTER.d.ts} +63 -11
  386. package/dist/types-DqzsnlSA.js +67 -0
  387. package/dist/{types-DpWfQdSh.d.ts → types-Druu9wLM.d.ts} +46 -11
  388. package/dist/{types-CIlTojhq.d.ts → types-_WhUP7ud.d.ts} +9 -6
  389. package/dist/{types-CUcFZfpU.d.ts → types-lUlG3TVd.d.ts} +2 -1
  390. package/dist/unplugin/index.d.ts +1 -1
  391. package/dist/unplugin/index.js +2 -2
  392. package/dist/usage-CRVl9V3t.js +32 -0
  393. package/dist/usage-CZpSQP6L.js +1 -0
  394. package/dist/{usage-CG9nOYZw.js → usage-SveTRTyr.js} +54 -11
  395. package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-DHUrAkku.d.ts} +1 -1
  396. package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
  397. package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
  398. package/dist/{verify-BztUB3GX.js → verify-BaAKx7t6.js} +645 -50
  399. package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
  400. package/dist/version-DXkYUISx.js +1 -0
  401. package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
  402. package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-CN8H_9UF.d.ts} +67 -2
  403. package/dist/vue/index.d.ts +9 -10
  404. package/dist/vue/index.js +8 -8
  405. package/dist/waiter-B986w1oK.d.ts +36 -0
  406. package/dist/waiter-BGUtGYoU.js +67 -0
  407. package/dist/watch--ovlPOc0.js +1 -0
  408. package/dist/{watch-zeucB7eF.js → watch-vea54PRw.js} +44 -5
  409. package/dist/webmcp/index.d.ts +2 -2
  410. package/dist/webmcp/index.js +3 -3
  411. package/dist/where-scope-C9vfEphl.js +306 -0
  412. package/dist/who-can-DWBAcaCQ.js +364 -0
  413. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  414. package/dist/wire-denial-C7PaVYEM.js +27 -0
  415. package/dist/workflow/index.d.ts +5 -0
  416. package/dist/workflow/index.js +223 -0
  417. package/dist/workflow-sdk/index.d.ts +56 -0
  418. package/dist/workflow-sdk/index.js +78 -0
  419. package/dist/{wrap-Cr93qqdP.d.ts → wrap-C5jC6sKI.d.ts} +2 -1
  420. package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
  421. package/package.json +136 -37
  422. package/schemas/access-event-v1.json +118 -0
  423. package/schemas/approval-request-v1.json +34 -1
  424. package/schemas/approval-signature-v1.json +94 -0
  425. package/schemas/automation-event-v1.json +113 -0
  426. package/schemas/capability-v1.json +84 -0
  427. package/schemas/catalog-event-v1.json +87 -0
  428. package/schemas/catalog-v1.json +123 -12
  429. package/schemas/cli-commands-v1.json +164 -0
  430. package/schemas/cli-result-v1.json +96 -0
  431. package/schemas/cloud-api-v1.json +5407 -0
  432. package/schemas/connector-v1.json +408 -0
  433. package/schemas/credential-event-v1.json +81 -0
  434. package/schemas/credential-v1.json +134 -0
  435. package/schemas/decision-event-v1.json +288 -0
  436. package/schemas/delivery-event-v1.json +117 -0
  437. package/schemas/directory-event-v1.json +85 -0
  438. package/schemas/evidence-export-v1.json +54 -0
  439. package/schemas/membership-event-v1.json +93 -0
  440. package/schemas/policy-v1.json +68 -0
  441. package/schemas/pushed-policy-v1.json +236 -0
  442. package/schemas/run-v1.json +162 -0
  443. package/schemas/snapshot-v1.json +138 -0
  444. package/schemas/supabase-claims-v1.json +4 -4
  445. package/schemas/supabase-manifest-v1.json +5 -1
  446. package/schemas/support-session-v1.json +111 -0
  447. package/skills/permdock/SKILL.md +16 -12
  448. package/skills/permdock-agents/SKILL.md +40 -23
  449. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  450. package/skills/permdock-agents/references/runtimes.md +22 -18
  451. package/skills/permdock-approvals/SKILL.md +29 -13
  452. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  453. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  454. package/skills/permdock-audit/SKILL.md +3 -3
  455. package/skills/permdock-credentials/SKILL.md +5 -5
  456. package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
  457. package/skills/permdock-data/SKILL.md +6 -6
  458. package/skills/permdock-data/references/queries-and-rls.md +10 -9
  459. package/skills/permdock-data/references/relationships.md +3 -3
  460. package/skills/permdock-tenancy/SKILL.md +20 -7
  461. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  462. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  463. package/skills/permdock-wire/SKILL.md +17 -11
  464. package/skills/permdock-wire/references/adapters.md +139 -51
  465. package/skills/permdock-wire/references/policy-options.md +5 -5
  466. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  467. package/dist/approvals-DZL76lKW.js +0 -240
  468. package/dist/arazzo-CD8d0WLb.js +0 -54
  469. package/dist/catalog-6yWAX6Ps.js +0 -2
  470. package/dist/catalog-WHG4kBq7.js +0 -48
  471. package/dist/cloud-C7bSDgX4.js +0 -50
  472. package/dist/cloud-PeBN3IEn.js +0 -118
  473. package/dist/collect-Bw2Jdq1q.js +0 -2
  474. package/dist/collect-CQx4hX4N.js +0 -83
  475. package/dist/commands-Cpip4ULx.js +0 -97
  476. package/dist/config-DLt6BvV7.js +0 -36
  477. package/dist/diff-Cnghh_Ip.js +0 -48
  478. package/dist/doctor-CuVJvhV_.js +0 -53
  479. package/dist/duration-xK2jGFVc.js +0 -25
  480. package/dist/errors-CWfoNg9N.js +0 -47
  481. package/dist/errors-DRnGZHzF.js +0 -30
  482. package/dist/expiry-BoBJ8Tvc.js +0 -7
  483. package/dist/fields-fwfXN01n.js +0 -1016
  484. package/dist/headers-BZSDieNT.js +0 -6
  485. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  486. package/dist/ids-DC4V4CFu.js +0 -18
  487. package/dist/index-DgM7w96K.d.ts +0 -6
  488. package/dist/index-Dz7didpC.d.ts +0 -201
  489. package/dist/index-UdVQgq48.d.ts +0 -550
  490. package/dist/load-B_shHrmd.js +0 -2
  491. package/dist/manifest-BngWKryL.js +0 -770
  492. package/dist/may-use-BOn_dR_w.js +0 -78
  493. package/dist/openapi-DcQ1Kg40.js +0 -164
  494. package/dist/ownership-BgnbOJFT.js +0 -851
  495. package/dist/permdock-L26udHSk.js +0 -3646
  496. package/dist/powersync-BFSbSElQ.js +0 -62
  497. package/dist/powersync-DCDgZgfZ.js +0 -2
  498. package/dist/rls-55DQTuf5.js +0 -250
  499. package/dist/run-DMcNW_8T.js +0 -174
  500. package/dist/server-ZYEHtNHS.js +0 -268
  501. package/dist/sink-BTtmfPnE.js +0 -141
  502. package/dist/sink-CPN4zLfs.d.ts +0 -104
  503. package/dist/skills-Dle4ZoLF.js +0 -56
  504. package/dist/snapshot-Dc9CHPME.js +0 -1078
  505. package/dist/src-Bb7no-hS.js +0 -639
  506. package/dist/subject-C6dLxqHU.js +0 -24
  507. package/dist/supabase-Dbqr141s.js +0 -83
  508. package/dist/supabase-hook-BULg7Ut_.js +0 -2
  509. package/dist/thenable-QSmvt-vZ.js +0 -65
  510. package/dist/types-C0dee0Qf.d.ts +0 -197
  511. package/dist/types-DvupZE0w.d.ts +0 -9
  512. package/dist/usage-4G6t643F.js +0 -42
  513. package/dist/usage-iFLJ0-rr.js +0 -2
  514. package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
  515. package/dist/watch-C8TpsAl4.js +0 -2
@@ -1,9 +1,22 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { f as rowIdOf, n as parseSnapshot } from "./snapshot-Dc9CHPME.js";
3
- import { c as nowSeconds } from "./tenancy-DshjqY0n.js";
4
- import { n as payloadDigest } from "./token-Bx9qy30p.js";
5
- import { n as fromSnapshot, t as emptySnapshot } from "./from-snapshot-7REQZe0H.js";
2
+ import { g as secondsOf } from "./time-DkWjdL98.js";
3
+ import { c as rowIdOf } from "./delegation-j6-rc37o.js";
4
+ import { c as nowSeconds } from "./tenancy-DN2QAx9z.js";
5
+ import { n as payloadDigest } from "./token-BLZcjQgt.js";
6
+ import { n as parseSnapshot } from "./snapshot-B7DkYg6g.js";
7
+ import { s as snapshotClaim } from "./where-scope-C9vfEphl.js";
8
+ import { n as fromSnapshot, t as emptySnapshot } from "./from-snapshot-CTCMsFZk.js";
6
9
  import { t as timeoutSignal } from "./timeout-D51niuQP.js";
10
+ //#region src/client/source.ts
11
+ /** A compact JWS: three non-empty dot-separated parts. */
12
+ function isJws(value) {
13
+ const parts = value.split(".");
14
+ return parts.length === 3 && parts.every((part) => part.length > 0);
15
+ }
16
+ function isPromiseLike(value) {
17
+ return typeof value === "object" && value !== null && "then" in value && typeof value.then === "function";
18
+ }
19
+ //#endregion
7
20
  //#region src/client/approvals.ts
8
21
  /** Ceiling for the approval poll backoff after a failed status request. */
9
22
  const APPROVAL_BACKOFF_CAP_MS = 6e4;
@@ -237,16 +250,6 @@ function storeRequest(fetchImpl, headers) {
237
250
  });
238
251
  }
239
252
  //#endregion
240
- //#region src/client/source.ts
241
- /** A compact JWS: three non-empty dot-separated parts. */
242
- function isJws(value) {
243
- const parts = value.split(".");
244
- return parts.length === 3 && parts.every((part) => part.length > 0);
245
- }
246
- function isPromiseLike(value) {
247
- return typeof value === "object" && value !== null && "then" in value && typeof value.then === "function";
248
- }
249
- //#endregion
250
253
  //#region src/client/store.ts
251
254
  function withTenant(source, tenant) {
252
255
  if (tenant === void 0) return source;
@@ -380,11 +383,13 @@ function createClientStore(options) {
380
383
  return "ready";
381
384
  };
382
385
  const isStale = () => {
383
- const maxAge = snapshot.issuedAt > 0 ? options.maxAge : void 0;
384
- if (snapshot.expiresAt === void 0 && maxAge === void 0) return false;
386
+ const issuedAt = secondsOf(snapshot.issuedAt) ?? 0;
387
+ const expiresAt = secondsOf(snapshot.expiresAt);
388
+ const maxAge = issuedAt > 0 ? options.maxAge : void 0;
389
+ if (expiresAt === void 0 && maxAge === void 0) return false;
385
390
  const now = nowSeconds();
386
- if (snapshot.expiresAt !== void 0 && snapshot.expiresAt <= now) return true;
387
- return maxAge !== void 0 && now - snapshot.issuedAt > maxAge;
391
+ if (expiresAt !== void 0 && expiresAt <= now) return true;
392
+ return maxAge !== void 0 && now - issuedAt > maxAge;
388
393
  };
389
394
  const serverOnly = () => {
390
395
  hydrate(emptySnapshot());
@@ -401,8 +406,8 @@ function createClientStore(options) {
401
406
  const verifyJws = async (raw) => {
402
407
  if (options.verifier === void 0) return;
403
408
  try {
404
- const verified = await options.verifier.verify(raw, { typ: "permdock-snapshot+jwt" });
405
- return verified.ok ? verified.claims["snapshot"] : void 0;
409
+ const verified = await options.verifier.verify(raw, { typ: "vnd.permdock.snapshot+jwt" });
410
+ return verified.ok ? snapshotClaim(verified.claims) : void 0;
406
411
  } catch {
407
412
  return;
408
413
  }
@@ -565,7 +570,7 @@ function createClientStore(options) {
565
570
  signed = body;
566
571
  body = await verifyJws(body);
567
572
  ok = body !== void 0;
568
- }
573
+ } else if (ok && options.verifier !== void 0) ok = false;
569
574
  refreshing -= 1;
570
575
  if (started !== generation || seq !== refreshSeq) {
571
576
  emit();
@@ -1,12 +1,11 @@
1
- import { Dr as Membership, ir as Decision } from "./policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "./permission-types-Dg39z9Kv.js";
3
- import { r as Role } from "./vocabulary-hhEFLFoL.js";
4
- import { r as DescribeOptions, t as DecisionDescription } from "./describe-C3ldA9os.js";
5
- import { a as ClientPermDock, c as PermissionSet, d as SubjectView, f as TenantView, l as PermissionState, p as UseRolesOptions, r as ApprovalHandle, s as FilterResult } from "./store-9KO4BlkB.js";
6
- import { n as PermDockSvelteOptions } from "./types-ByUo56un.js";
1
+ import { Nn as Decision, nr as Membership } from "./policy-types-n0uRTsW8.js";
2
+ import { r as Role, w as Permission } from "./vocabulary-CN8H_9UF.js";
3
+ import { r as DescribeOptions, t as DecisionDescription } from "./describe-B5qgDvEW.js";
4
+ import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, l as PermissionState, p as TenantView, r as ClientPermDock, t as ApprovalHandle } from "./types-B3_ooZgZ.js";
5
+ import { n as SveltePermDockOptions } from "./types-CVZSNocA.js";
7
6
  import { Readable } from "svelte/store";
8
7
  //#region src/svelte/stores.d.ts
9
- declare function setPermDock(options: PermDockSvelteOptions): ClientPermDock;
8
+ declare function setPermDock(options: SveltePermDockOptions): ClientPermDock;
10
9
  declare function getPermDock(): ClientPermDock;
11
10
  /** `describe` with the provider's `messages`; a call's own `messages` win. Call it during component init. */
12
11
  declare function getDescribe(): (decision: Decision, options?: DescribeOptions) => DecisionDescription;
@@ -15,7 +14,7 @@ declare function permissions(references: () => readonly Permission[], data?: ()
15
14
  declare function filtered<T>(reference: Permission<string, T, "instance">, rows: () => readonly T[]): Readable<FilterResult<T>>;
16
15
  declare function tenant(): Readable<TenantView>;
17
16
  declare function memberships(): Readable<readonly Membership[]>;
18
- declare function roles(options?: () => UseRolesOptions): Readable<{
17
+ declare function roles(options?: () => RolesOptions): Readable<{
19
18
  readonly roles: readonly Role[];
20
19
  }>;
21
20
  declare function assignable(): Readable<readonly Role[]>;
@@ -1,5 +1,5 @@
1
- import { a as permissionSet, d as tenantView, i as livePermDock, n as describeWith, r as filterResult, s as rolesView, t as approvalHandle, u as subjectView } from "./views-CJsrBS1f.js";
2
- import { n as getUi, r as providePermDock, t as getStore } from "./context-DieZVJXu.js";
1
+ import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, n as describeWith, o as permissionSet, r as filterResult, t as approvalHandle } from "./views-DTIIO-oQ.js";
2
+ import { n as getUi, r as providePermDock, t as getStore } from "./context-B_u3_bDJ.js";
3
3
  import { readable, toStore } from "svelte/store";
4
4
  //#region src/svelte/stores.ts
5
5
  function fromStore(store, compute) {
@@ -1,5 +1,5 @@
1
- import { d as Permission } from "./permission-types-Dg39z9Kv.js";
2
- import { o as ProtectOptions } from "./server-types-DdqBwZN_.js";
1
+ import { w as Permission } from "./vocabulary-CN8H_9UF.js";
2
+ import { o as ProtectOptions } from "./server-types-CKQiCnON.js";
3
3
  //#region src/server/stream.d.ts
4
4
  type StreamProtectOptions = ProtectOptions & {
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { r as PermDockRevokedError } from "./errors-drnfxYtm.js";
1
+ import { r as PermDockRevokedError } from "./errors-BKy0EfhN.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";
@@ -50,6 +50,13 @@ function reloadAfter(loaded, load) {
50
50
  }
51
51
  /** WebSocket close code for a policy violation (RFC 6455 section 7.4.1). */
52
52
  const POLICY_VIOLATION = 1008;
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.
56
+ */
57
+ function closeReason(problem) {
58
+ return problem.type === "about:blank" ? problem.detail : problem.type;
59
+ }
53
60
  /** The Problem Details for an aborted connection signal. */
54
61
  function revokedProblem(signal) {
55
62
  const reason = signal.reason;
@@ -64,4 +71,4 @@ function onRevoked(connection, end) {
64
71
  else connection.signal.addEventListener("abort", fire, { once: true });
65
72
  }
66
73
  //#endregion
67
- export { reloadAfter as a, onRevoked as i, guardIterable as n, isAsyncIterable as r, POLICY_VIOLATION as t };
74
+ export { onRevoked as a, isAsyncIterable as i, closeReason as n, reloadAfter as o, guardIterable as r, POLICY_VIOLATION as t };
@@ -0,0 +1 @@
1
+ export { t as createStyle, n as streamHasColors } from "./style-Uao76wO7.js";
@@ -1,12 +1,13 @@
1
1
  import { styleText } from "node:util";
2
- //#region src/cli/style.ts
2
+ //#region src/cli/core/style.ts
3
3
  function createStyle(color) {
4
4
  const paint = (format, text) => color ? styleText(format, text, { validateStream: false }) : text;
5
5
  return {
6
6
  color,
7
7
  paint,
8
8
  errorMark: color ? paint("red", "✖") : "error",
9
- warnMark: color ? paint("yellow", "⚠") : "warn"
9
+ warnMark: color ? paint("yellow", "⚠") : "warn",
10
+ okMark: color ? paint("green", "✔") : "ok"
10
11
  };
11
12
  }
12
13
  /**
@@ -0,0 +1,17 @@
1
+ //#region src/core/subject.ts
2
+ function isSubject(value) {
3
+ return value !== null && typeof value === "object" && "principal" in value && "context" in value && typeof value.context === "object";
4
+ }
5
+ function isActor(value) {
6
+ if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
7
+ const record = value;
8
+ return typeof record.id === "string" && typeof record.kind === "string";
9
+ }
10
+ function anonymousSubject(context = {}) {
11
+ return Object.freeze({
12
+ principal: null,
13
+ context: Object.freeze({ ...context })
14
+ });
15
+ }
16
+ //#endregion
17
+ export { isActor as n, isSubject as r, anonymousSubject as t };
@@ -1,8 +1,9 @@
1
- import { Dr as Membership, E as Policy, Sr as CustomRole, X as MemberEntry, Z as MembershipSource, kr as Subject, nt as RoleSource } from "../policy-types-sp9P1iIV.js";
2
- import { c as ApprovalRequest, f as ApprovalStore } from "../types-Br9IXUBG.js";
3
- 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-CqrjB9o6.js";
4
- 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-uDS9y5de.js";
5
- import { a as MembershipTableOptions, c as SupabasePostgres, d as fromSupabasePostgres, f as fromTable, 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 fromJunction } from "../sources-Dljy06zL.js";
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";
6
7
  import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-JqcRqyhK.js";
7
8
  //#region src/supabase/capability.d.ts
8
9
  type ExchangeCapabilityOptions = {
@@ -20,7 +21,7 @@ type ExchangeCapabilityOptions = {
20
21
  readonly issuer?: string;
21
22
  /** Lifetime in seconds, capped by the capability's own expiry. Default 300. */
22
23
  readonly ttl?: number;
23
- readonly now?: number;
24
+ readonly now?: Instant;
24
25
  };
25
26
  /**
26
27
  * Exchanges a verified link subject (from `subjectFromCapability`) for a
@@ -30,109 +31,11 @@ type ExchangeCapabilityOptions = {
30
31
  */
31
32
  export declare function exchangeCapability(subject: Subject, options: ExchangeCapabilityOptions): Promise<string | undefined>;
32
33
  //#endregion
33
- //#region src/supabase/postgrest.d.ts
34
- /** What a supabase-js `rpc` call resolves to: `data` or an `error` with a message. */
35
- type SupabaseRpcResult = {
36
- readonly data: unknown;
37
- readonly error: {
38
- readonly message: string;
39
- } | null;
40
- };
41
- /**
42
- * The part of a supabase-js client `postgrestSources` calls:
43
- * `client.schema(name).rpc(fn, args)`. Pass a client that may execute the
44
- * function, such as a `service_role` client after the grant the docs show.
45
- */
46
- type SupabaseRpcClient = {
47
- schema(name: string): {
48
- rpc(fn: string, args: Readonly<Record<string, unknown>>): PromiseLike<SupabaseRpcResult>;
49
- };
50
- };
51
- type SupabaseRpcCaller = {
52
- schema(name: never): {
53
- rpc(fn: never, args: never): PromiseLike<SupabaseRpcResult>;
54
- };
55
- };
56
- type PostgrestSourcesOptions = {
57
- /**
58
- * The `supabase.hook.api` setting the hook file was generated with: the
59
- * wrappers live in `schema` (default `public`) as `<prefix>subject_for`,
60
- * `<prefix>members_of` and `<prefix>authz_version_for` (default prefix
61
- * `permdock_`). It sets the defaults of `schema`, `fn`, `membersFn` and
62
- * `versionFn`, which still override it.
63
- */
64
- readonly api?: {
65
- readonly schema?: string;
66
- readonly prefix?: string;
67
- };
68
- /** Schema of the functions. Default `permdock`, where the hook generates `subject_for` and `members_of`. */
69
- readonly schema?: string;
70
- /** Function name, for a wrapper in an exposed schema. Default `subject_for`. */
71
- readonly fn?: string;
72
- readonly membersFn?: string;
73
- /** The version-only function `memberships.version` calls. Default `authz_version_for`. */
74
- readonly versionFn?: string;
75
- /**
76
- * The policy whose declared roles tell custom roles apart. With it,
77
- * `customRoles` reads nothing while every role the subject holds is
78
- * declared, and `memberships.version` reads the whole subject in one call
79
- * when the token claims a custom role, which the custom roles need anyway.
80
- */
81
- readonly policy?: Policy;
82
- };
83
- /** One user as `subject_for(p_user)` returns it. */
84
- type SubjectRecord = {
85
- readonly id: string;
86
- /** `false` for a suspended user, who holds no roles or memberships. */
87
- readonly active: boolean;
88
- readonly roles: readonly string[];
89
- readonly memberships: readonly Membership[];
90
- readonly customRoles: readonly CustomRole[];
91
- readonly authzVersion?: number;
92
- };
93
- type PostgrestSources = {
94
- /**
95
- * Memberships and the authorization version of any principal, and `list`,
96
- * the live members of one scope instance through `members_of`, for
97
- * `countHolders` and `whoCan`. Wrap it in `claimsFirst` to read only when
98
- * the token was truncated.
99
- */
100
- readonly memberships: MembershipSource & {
101
- list(query: {
102
- readonly scope: string;
103
- readonly id: string;
104
- }): Promise<MemberEntry[]>;
105
- };
106
- /** The custom roles `principal` holds, for `createPermDock`'s `customRoles`. */
107
- customRoles(principal: {
108
- readonly id: string;
109
- }): RoleSource;
110
- /** The subject the hook would mint for `userId`: anonymous when the user is unknown or suspended. */
111
- subject(userId: string): Promise<Subject>;
112
- /** The raw record, `undefined` for an unknown user. */
113
- record(userId: string): Promise<SubjectRecord | undefined>;
114
- };
115
- /** Reads `subject_for`'s JSON; anything it cannot read is left out, and a malformed record is no record. */
116
- export declare function readSubjectRecord(value: unknown): SubjectRecord | undefined;
117
- /**
118
- * Membership, custom-role and subject sources over the `subject_for(p_user)`,
119
- * `authz_version_for(p_user)` and `members_of(p_scope, p_id)` functions
120
- * `permdock supabase hook generate` writes, for a backend that reaches
121
- * Postgres only through PostgREST. `memberships.version` reads only the
122
- * version, so `claimsFirst` with `onStale: 'reread'` reads the full subject
123
- * only for a stale token; when the version function is missing it falls back
124
- * to `subject_for`. With `policy`, a token that claims a custom role has its
125
- * subject read in one `subject_for` call instead, and custom roles are read
126
- * only for a subject that holds one. Each user and each instance is read once per
127
- * `postgrestSources` call, so create it per request or per job.
128
- */
129
- export declare function postgrestSources(client: SupabaseRpcCaller, options?: PostgrestSourcesOptions): PostgrestSources;
130
- //#endregion
131
34
  //#region src/supabase/approval-store.d.ts
132
35
  type SupabaseApprovalStoreOptions = {
133
36
  /** Schema of the generated store functions (`rls.schema`). Default `permdock`. */
134
37
  readonly schema?: string;
135
- /** How long a request stays open when the caller sets no `ttl`, in milliseconds. */
38
+ /** Seconds a request stays open when the caller sets no `ttl`. */
136
39
  readonly ttl?: number;
137
40
  /**
138
41
  * Runs once per stored request, after the call that stored it, with the
@@ -152,6 +55,20 @@ type SupabaseApprovalStoreOptions = {
152
55
  */
153
56
  export declare function supabaseApprovalStore(client: SupabaseRpcCaller, options?: SupabaseApprovalStoreOptions): ApprovalStore;
154
57
  //#endregion
58
+ //#region src/supabase/approval-delegations.d.ts
59
+ type TableApprovalDelegationSourceOptions = {
60
+ readonly query: SqlQuery;
61
+ /** Defaults to `permdock.approval_delegations`, the table `rls.approvals.delegations` generates. */
62
+ readonly table?: string;
63
+ };
64
+ /**
65
+ * Approval delegations (out-of-office covers) from the table
66
+ * `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.
69
+ */
70
+ export declare function tableApprovalDelegationSource(options: TableApprovalDelegationSourceOptions): ApprovalDelegationSource;
71
+ //#endregion
155
72
  //#region src/supabase/rls.d.ts
156
73
  export declare function supabaseRls(options?: SupabaseRlsOptions): SupabaseRlsConfig;
157
74
  /**
@@ -191,4 +108,4 @@ export declare function subjectFromSupabase(claims: unknown, options?: SupabaseS
191
108
  */
192
109
  export declare function subjectFromSupabaseSession(session: SupabaseSessionLike | null | undefined, options?: SupabaseSubjectOptions): Subject<SupabasePrincipal>;
193
110
  //#endregion
194
- 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, authzVersion, fromJunction, fromSupabasePostgres, fromTable, parseSupabaseManifest, supabaseClaims, supabaseMembershipsBudget, supabaseTenantClaim };
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 };
@@ -1,5 +1,6 @@
1
- import { a as readSubjectRecord, i as postgrestSources, n as supabaseRls, o as supabaseClaims, r as supabaseApprovalStore, s as exchangeCapability, t as authorizeSql } from "../supabase-C1TWlnYt.js";
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
2
  import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-NbEtbJC_.js";
3
- import { a as fromJunction, i as authzVersion, o as fromSupabasePostgres, s as fromTable, t as AUTHZ_VERSION_TABLE } from "../sources-B1-b-R0t.js";
4
- import { a as subjectFromSupabase, n as actorOf, o as subjectFromSupabaseSession, r as delegationOf, t as parseSupabaseManifest } from "../manifest-BngWKryL.js";
5
- export { AUTHZ_VERSION_TABLE, actorOf, authorizeSql, authzVersion, delegationOf, exchangeCapability, fromJunction, fromSupabasePostgres, fromTable, parseSupabaseManifest, postgrestSources, readSubjectRecord, subjectFromSupabase, subjectFromSupabaseSession, supabaseApprovalStore, supabaseClaims, supabaseMembershipsBudget, supabaseRls, supabaseTenantClaim };
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,9 +1,10 @@
1
- import { E as Policy, Or as Principal, j as PolicyVocabulary, jt as PermDock, kr as Subject } from "../policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "../permission-types-Dg39z9Kv.js";
3
- import { t as InstanceOptions } from "../instance-options-plkrsAog.js";
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";
4
5
  import { t as RequestContext } from "../request-context-C2_1lchh.js";
5
- import { i as OpenApiHooks } from "../server-types-DdqBwZN_.js";
6
- import { n as ServerAdapterServices } from "../bind-BzqG8SMb.js";
6
+ import { i as OpenApiHooks } from "../server-types-CKQiCnON.js";
7
+ import { n as ServerAdapterServices } from "../bind-DOyrv6zi.js";
7
8
  import { Middleware } from "@supabase/middleware";
8
9
  //#region src/supabase/middleware.d.ts
9
10
  /**
@@ -84,5 +85,5 @@ export type SupabaseMiddlewarePermDock<V extends PolicyVocabulary = PolicyVocabu
84
85
  readonly permdockHandler: () => SupabaseMiddlewareHandler;
85
86
  readonly openapi: OpenApiHooks;
86
87
  };
87
- export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, options: SupabaseMiddlewarePermDockOptions<TUser>): SupabaseMiddlewarePermDock<V>;
88
+ export declare function createPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: SupabaseMiddlewarePermDockOptions<TUser>): SupabaseMiddlewarePermDock<V>;
88
89
  //#endregion
@@ -1,10 +1,11 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { t as composeWraps } from "../wrap-DWsU_5Bd.js";
3
- import { r as credentialSubject } from "../credential-kue0qpbm.js";
4
- import { a as methodNotAllowed } from "../problem-CnWraVhC.js";
5
- import { r as instanceOptions } from "../build-instance-DIIV9DbC.js";
6
- import { n as createServerKernel } from "../create-BBO24vj6.js";
7
- import { n as attached } from "../bind-kk-uyCwH.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";
8
9
  import { defineMiddleware } from "@supabase/middleware";
9
10
  //#region src/supabase/middleware.ts
10
11
  const SECRET_KEY_NAME = /^[A-Za-z0-9_-]+$/u;
@@ -22,7 +23,7 @@ function secretKeySubjects(keys, permissions) {
22
23
  roles: [...key.roles],
23
24
  permissions: key.permissions.map((permission) => ({ permission: permission.key })),
24
25
  createdBy: key.id,
25
- createdAt: 0,
26
+ createdAt: "1970-01-01T00:00:00.000Z",
26
27
  name
27
28
  };
28
29
  subjects.set(name, credentialSubject(credential, { permissions }));
@@ -43,12 +44,13 @@ function secretKeySubject(subjects, ctx) {
43
44
  const name = readString(ctx, "authKeyName");
44
45
  return name === void 0 ? void 0 : subjects.get(name);
45
46
  }
46
- function createPermDock(policy, options) {
47
+ function createPermDock(policy, given) {
48
+ const options = withApp(policy, given);
47
49
  const contexts = /* @__PURE__ */ new WeakMap();
48
50
  const tenantOption = options.tenant;
49
51
  const contextFor = (request) => contexts.get(request) ?? { jwtClaims: null };
50
52
  const secretKeys = secretKeySubjects(options.secretKeys, policy.permissions);
51
- const kernel = createServerKernel(policy, compact({
53
+ const kernel = createPermDock$1(policy, compact({
52
54
  subject: (request) => {
53
55
  const ctx = contextFor(request);
54
56
  return secretKeySubject(secretKeys, ctx) ?? options.subject(ctx, request);
@@ -61,7 +63,7 @@ function createPermDock(policy, options) {
61
63
  webBotAuth: options.webBotAuth,
62
64
  adapter: "supabase-middleware",
63
65
  wrap: composeWraps(options.otel, options.wrap),
64
- onDenied: options.onDenied
66
+ deniedResponse: options.deniedResponse
65
67
  }));
66
68
  const bind = (request, ctx) => {
67
69
  contexts.set(request, ctx);
@@ -72,7 +74,7 @@ function createPermDock(policy, options) {
72
74
  run: (config) => async (request, ctx) => {
73
75
  bind(request, ctx);
74
76
  if (config?.protect === void 0 && config?.oauthScopes === void 0) {
75
- const instance = await attached(() => kernel.permdock(request));
77
+ const instance = await attached(() => kernel.getPermDock(request));
76
78
  return instance.ok ? { permdock: instance.permdock } : instance.response;
77
79
  }
78
80
  const loadData = config.data;
@@ -0,0 +1,92 @@
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";
3
+ //#region src/cli/commands/supabase.ts
4
+ const hookGenerate = defineLeaf({
5
+ flags: {
6
+ out: {
7
+ type: "string",
8
+ description: "File to write",
9
+ valueHint: "file"
10
+ },
11
+ ...checkFlag,
12
+ ...dbUrlFlags,
13
+ "active-from": {
14
+ type: "string",
15
+ description: "Where the hook reads the active tenant",
16
+ valueHint: "source"
17
+ },
18
+ budget: {
19
+ type: "string",
20
+ description: "Byte budget for the memberships claim",
21
+ valueHint: "bytes"
22
+ },
23
+ schema: {
24
+ type: "string",
25
+ description: "Schema for the hook function",
26
+ valueHint: "name"
27
+ },
28
+ schemas: {
29
+ type: "enum",
30
+ options: [
31
+ "pg-delta",
32
+ "migra",
33
+ "migrations"
34
+ ],
35
+ description: "Schema workflow (default supabase.schemas, else pg-delta)"
36
+ },
37
+ "grants-out": {
38
+ type: "string",
39
+ description: "migra: file for the privileges supabase db diff drops",
40
+ valueHint: "file"
41
+ }
42
+ },
43
+ async run(ctx, { flags }) {
44
+ const out = fileOut("supabase hook generate", flags.out);
45
+ const db = await dbUrl(ctx, flags);
46
+ const activeFrom = given(flags["active-from"]);
47
+ const budget = given(flags.budget);
48
+ const schema = given(flags.schema);
49
+ const grantsOut = given(flags["grants-out"]);
50
+ const { runSupabase } = await import("./supabase-hook-CCw5m35C.js");
51
+ return runSupabase({
52
+ cwd: ctx.cwd,
53
+ config: ctx.config,
54
+ rest: ["hook", "generate"],
55
+ check: flags.check,
56
+ json: ctx.json,
57
+ io: ctx.io,
58
+ ...out === void 0 ? {} : { out },
59
+ ...db === void 0 ? {} : { db },
60
+ ...activeFrom === void 0 ? {} : { activeFrom },
61
+ ...budget === void 0 ? {} : { budget },
62
+ ...schema === void 0 ? {} : { schema },
63
+ ...grantsOut === void 0 ? {} : { grantsOut },
64
+ ...flags.schemas === void 0 ? {} : { schemas: flags.schemas }
65
+ });
66
+ }
67
+ });
68
+ const inspect = defineLeaf({
69
+ flags: {
70
+ out: {
71
+ type: "string",
72
+ description: "File to write; a bare --out writes permdock.manifest.json",
73
+ valueHint: "file"
74
+ },
75
+ ...checkFlag
76
+ },
77
+ async run(ctx, { flags }) {
78
+ const out = flags.out === "" ? true : flags.out === "-" ? void 0 : flags.out;
79
+ const { runSupabase } = await import("./supabase-hook-CCw5m35C.js");
80
+ return runSupabase({
81
+ cwd: ctx.cwd,
82
+ config: ctx.config,
83
+ rest: ["inspect"],
84
+ check: flags.check,
85
+ json: ctx.json,
86
+ io: ctx.io,
87
+ ...out === void 0 ? {} : { out }
88
+ });
89
+ }
90
+ });
91
+ //#endregion
92
+ export { hookGenerate, inspect };