permdock 0.3.1 → 0.5.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 (552) hide show
  1. package/README.md +37 -35
  2. package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
  3. package/dist/a2a/index.d.ts +8 -6
  4. package/dist/a2a/index.js +21 -31
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.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 -23
  10. package/dist/ai-sdk/index.js +38 -21
  11. package/dist/app-data-MuyzVqX8.js +60 -0
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.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-DJ6Yd5z1.js +995 -0
  18. package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
  19. package/dist/arazzo-B6lebmiQ.js +36 -0
  20. package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
  21. package/dist/args-IIolxxKA.js +197 -0
  22. package/dist/astro/index.d.ts +43 -0
  23. package/dist/astro/index.js +27 -0
  24. package/dist/audience-Dg8XsRaO.js +55 -0
  25. package/dist/auth-DRLEizbL.js +178 -0
  26. package/dist/authzen/index.d.ts +26 -6
  27. package/dist/authzen/index.js +228 -75
  28. package/dist/automation-BMZPIVUM.d.ts +114 -0
  29. package/dist/automation-DVjOckjV.js +157 -0
  30. package/dist/better-auth/index.d.ts +8 -6
  31. package/dist/better-auth/index.js +11 -23
  32. package/dist/better-supabase/index.d.ts +438 -86
  33. package/dist/better-supabase/index.js +1027 -184
  34. package/dist/bind--9EFVYWF.d.ts +38 -0
  35. package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
  36. package/dist/body-CH5of8Ne.js +10 -0
  37. package/dist/body-text-QcXok_SI.js +52 -0
  38. package/dist/build-instance-BMnAudHn.js +52 -0
  39. package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
  40. package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
  41. package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
  42. package/dist/casbin-Cr7RLtA3.js +30 -0
  43. package/dist/casbin-Dyu2gnUD.js +234 -0
  44. package/dist/casl-64gpT-8x.js +24 -0
  45. package/dist/casl-DjEDhTCP.js +299 -0
  46. package/dist/catalog/index.d.ts +74 -2
  47. package/dist/catalog/index.js +51 -2
  48. package/dist/catalog-BECMPrwc.js +100 -0
  49. package/dist/catalog-DjhMYYCq.js +1 -0
  50. package/dist/catalog-R_A__RsH.js +52 -0
  51. package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
  52. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  53. package/dist/chat/index.d.ts +2 -0
  54. package/dist/chat/index.js +224 -0
  55. package/dist/chat-sdk/index.d.ts +87 -0
  56. package/dist/chat-sdk/index.js +197 -0
  57. package/dist/claims-map-7oQ3ue4X.js +13 -0
  58. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  59. package/dist/claude-agent/index.d.ts +7 -14
  60. package/dist/claude-agent/index.js +26 -30
  61. package/dist/clerk/index.d.ts +9 -8
  62. package/dist/clerk/index.js +15 -45
  63. package/dist/cli/bin.js +36 -17
  64. package/dist/cli/index.d.ts +20 -6
  65. package/dist/cli/index.js +164 -4
  66. package/dist/cloud/index.d.ts +102 -63
  67. package/dist/cloud/index.js +240 -347
  68. package/dist/cloud-CIoHNevm.js +87 -0
  69. package/dist/codemod-Bmj9dWMH.js +37 -0
  70. package/dist/codemod-Cxvvc70T.js +2084 -0
  71. package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
  72. package/dist/collect-DloHbDVa.js +55 -0
  73. package/dist/collect-FlXJlhus.js +1 -0
  74. package/dist/command-L8EstFNm.js +6 -0
  75. package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
  76. package/dist/compile/index.d.ts +1 -1
  77. package/dist/compile/index.js +1 -2
  78. package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
  79. package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  80. package/dist/completion-BqhRBJD8.js +143 -0
  81. package/dist/config-B46rm9sc.js +26 -0
  82. package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
  83. package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
  84. package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
  85. package/dist/constants-DcJABbLW.js +20 -0
  86. package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
  87. package/dist/convex/index.d.ts +11 -10
  88. package/dist/convex/index.js +18 -18
  89. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  90. package/dist/create-BDS7wc3y.d.ts +138 -0
  91. package/dist/create-BFfm17UA.d.ts +110 -0
  92. package/dist/create-BWRSXgOF.js +403 -0
  93. package/dist/create-C3b4B5eF.js +130 -0
  94. package/dist/create-DnrmLnLW.js +323 -0
  95. package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
  96. package/dist/credentials-DPyHmYz5.js +74 -0
  97. package/dist/deciding-columns-Sq12mEA6.js +123 -0
  98. package/dist/delegation-DaXVdDhM.js +286 -0
  99. package/dist/delegation-input-FTxMK3ji.js +19 -0
  100. package/dist/delivery/index.d.ts +5 -0
  101. package/dist/delivery/index.js +5 -0
  102. package/dist/delivery-DCAgNyCn.js +499 -0
  103. package/dist/delivery-event-xX4obB8F.js +40 -0
  104. package/dist/denied-text-D8jDHgsl.d.ts +19 -0
  105. package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
  106. package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
  107. package/dist/device-BARQ8eYG.js +193 -0
  108. package/dist/diff-CxZo9pTq.js +37 -0
  109. package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
  110. package/dist/doctor-CxiwSfqH.js +44 -0
  111. package/dist/doctor-DFjUxf2f.js +2361 -0
  112. package/dist/drizzle/index.d.ts +5 -3
  113. package/dist/drizzle/index.js +6 -14
  114. package/dist/elysia/index.d.ts +16 -13
  115. package/dist/elysia/index.js +14 -13
  116. package/dist/env-DJZrPjRi.js +8 -0
  117. package/dist/errors-BDUwg2qC.js +27 -0
  118. package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
  119. package/dist/errors-BWXBMaKK.d.ts +11 -0
  120. package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  121. package/dist/errors-CWTY6uih.js +143 -0
  122. package/dist/evaluate-_R8QkWaf.js +1732 -0
  123. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  124. package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
  125. package/dist/eve/index.d.ts +12 -16
  126. package/dist/eve/index.js +23 -29
  127. package/dist/event-time-CsegxXxB.js +23 -0
  128. package/dist/expiry-D4_YKRKD.js +52 -0
  129. package/dist/express/index.d.ts +13 -10
  130. package/dist/express/index.js +14 -12
  131. package/dist/fastify/index.d.ts +26 -13
  132. package/dist/fastify/index.js +17 -36
  133. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  134. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  135. package/dist/fields-D9tPVUUS.js +203 -0
  136. package/dist/files-C5ZI27eV.js +124 -0
  137. package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
  138. package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
  139. package/dist/flags-C3DktBDY.js +86 -0
  140. package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
  141. package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
  142. package/dist/grantee-Cn1HyUsI.js +254 -0
  143. package/dist/grantee-conditions-CcXf8hMM.js +271 -0
  144. package/dist/grantee-match-DHArqY82.js +142 -0
  145. package/dist/h3/index.d.ts +37 -0
  146. package/dist/h3/index.js +35 -0
  147. package/dist/headers-BIjfMaoC.js +8 -0
  148. package/dist/headers-CIbDTUTK.d.ts +7 -0
  149. package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
  150. package/dist/hono/index.d.ts +12 -9
  151. package/dist/hono/index.js +14 -13
  152. package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
  153. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  154. package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
  155. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  156. package/dist/http-DXJ37RDA.js +46 -0
  157. package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
  158. package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
  159. package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
  160. package/dist/index-BcHcPyIo.d.ts +110 -0
  161. package/dist/index-CaxrMD1A.d.ts +1 -0
  162. package/dist/index-Chrs5fQ-.d.ts +210 -0
  163. package/dist/index-CxGUswIC.d.ts +431 -0
  164. package/dist/index-D8EovfsP.d.ts +91 -0
  165. package/dist/index-DOVf7RJv.d.ts +900 -0
  166. package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
  167. package/dist/index.d.ts +20 -14
  168. package/dist/index.js +33 -23
  169. package/dist/init-DeMYsnYJ.js +96 -0
  170. package/dist/init-GG6Jh8HD.js +95 -0
  171. package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  172. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  173. package/dist/instant-BluqDvyS.js +19 -0
  174. package/dist/internals-Dk8A8fX3.js +17 -0
  175. package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
  176. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  177. package/dist/jwt/index.d.ts +18 -11
  178. package/dist/jwt/index.js +166 -145
  179. package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
  180. package/dist/kysely/index.d.ts +5 -3
  181. package/dist/kysely/index.js +6 -14
  182. package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
  183. package/dist/load-BxEtwlBS.js +1 -0
  184. package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
  185. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  186. package/dist/login-Dfe5RlYk.js +68 -0
  187. package/dist/login-imhuwvn3.js +254 -0
  188. package/dist/manifest-C8IzW3Do.js +42 -0
  189. package/dist/manifest-CtKR3GXL.js +370 -0
  190. package/dist/manifest-json-CAGzls-C.js +9 -0
  191. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  192. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  193. package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
  194. package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
  195. package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
  196. package/dist/mcp/index.d.ts +36 -9
  197. package/dist/mcp/index.js +476 -448
  198. package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
  199. package/dist/nest/index.d.ts +12 -9
  200. package/dist/nest/index.js +20 -20
  201. package/dist/next/index.d.ts +40 -20
  202. package/dist/next/index.js +37 -39
  203. package/dist/next/plugin.d.ts +1 -1
  204. package/dist/next/plugin.js +2 -2
  205. package/dist/node/index.d.ts +10 -10
  206. package/dist/node/index.js +7 -9
  207. package/dist/ocsf-BFp-PZZA.js +126 -0
  208. package/dist/openai/index.d.ts +9 -16
  209. package/dist/openai/index.js +18 -25
  210. package/dist/openapi/index.d.ts +3 -3
  211. package/dist/openapi/index.js +1 -1
  212. package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
  213. package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
  214. package/dist/openapi-ahr8rHu3.js +138 -0
  215. package/dist/operation-findings-DgATDpvh.js +36 -0
  216. package/dist/operations-CxybZErY.d.ts +59 -0
  217. package/dist/orpc/index.d.ts +13 -10
  218. package/dist/orpc/index.js +23 -20
  219. package/dist/otel/index.d.ts +3 -2
  220. package/dist/otel/index.js +53 -27
  221. package/dist/output-Dyw8fyPF.js +88 -0
  222. package/dist/output-files-B3IZJksC.js +1 -0
  223. package/dist/output-files-DhRBBE4n.js +138 -0
  224. package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
  225. package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
  226. package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
  227. package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
  228. package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  229. package/dist/parse-request-D_tUXG6M.js +26 -0
  230. package/dist/paths-DXSHAMIa.js +42 -0
  231. package/dist/pdp/index.d.ts +7 -3
  232. package/dist/pdp/index.js +47 -29
  233. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  234. package/dist/peer-CRvC7Hg1.js +1 -0
  235. package/dist/permdock-B9JxkBwC.js +868 -0
  236. package/dist/permdock-D7eeLJER.d.ts +502 -0
  237. package/dist/permission-registry-Br4jSNVi.js +385 -0
  238. package/dist/permissions-B-wCP5ZC.js +30 -0
  239. package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
  240. package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  241. package/dist/policies-CO1oOymN.js +295 -0
  242. package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  243. package/dist/policy-DLZJ5gAp.js +399 -0
  244. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  245. package/dist/policy-module-CTlwMvLI.js +89 -0
  246. package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
  247. package/dist/postgrest-CW0IqC-U.js +566 -0
  248. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  249. package/dist/powersync-BHfuehf3.js +62 -0
  250. package/dist/powersync-CbzkqL_M.js +1 -0
  251. package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
  252. package/dist/preset/index.d.ts +146 -0
  253. package/dist/preset/index.js +1 -0
  254. package/dist/preset-DZdU0tne.js +1768 -0
  255. package/dist/principal-source-pHneukrx.js +103 -0
  256. package/dist/prisma/index.d.ts +6 -3
  257. package/dist/prisma/index.js +6 -12
  258. package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
  259. package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  260. package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
  261. package/dist/problem-types-CJ2325SZ.js +5 -0
  262. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  263. package/dist/protected-DEPHc2xV.d.ts +38 -0
  264. package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
  265. package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
  266. package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  267. package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
  268. package/dist/pull-BgIfno6w.js +256 -0
  269. package/dist/pull-ByOks_Tg.js +1 -0
  270. package/dist/push-CmFVBOeI.js +116 -0
  271. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  272. package/dist/pushed-policy-DobP7AHI.js +238 -0
  273. package/dist/react/index.d.ts +8 -8
  274. package/dist/react/index.js +6 -6
  275. package/dist/react/provider-client.d.ts +1 -1
  276. package/dist/react/provider-client.js +1 -2
  277. package/dist/react-native/index.d.ts +24 -63
  278. package/dist/react-native/index.js +45 -27
  279. package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
  280. package/dist/relation-walk-3OyDBF0S.js +186 -0
  281. package/dist/relations-BnCWnJGI.js +163 -0
  282. package/dist/renames-CGj7YwcQ.js +175 -0
  283. package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  284. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  285. package/dist/request-context-BTRTG7OT.js +71 -0
  286. package/dist/request-context-C2_1lchh.d.ts +5 -0
  287. package/dist/request-schema-CMreVuFM.js +148 -0
  288. package/dist/resend/index.d.ts +126 -0
  289. package/dist/resend/index.js +379 -0
  290. package/dist/resource-relations-D_jw0BFx.js +243 -0
  291. package/dist/retire-CALjIQ7e.js +240 -0
  292. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  293. package/dist/rls-BA8an5Ap.js +336 -0
  294. package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
  295. package/dist/role-builder-CXbis5-X.js +623 -0
  296. package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
  297. package/dist/run-CNsApDpd.js +1 -0
  298. package/dist/run-DOfMtc9V.js +723 -0
  299. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  300. package/dist/run-ticket-sxFI6LAk.js +337 -0
  301. package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
  302. package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
  303. package/dist/scan-BOI5tJ-6.js +29 -0
  304. package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
  305. package/dist/schema-yLuBWWsh.js +130 -0
  306. package/dist/scim/index.d.ts +2 -2
  307. package/dist/scim/index.js +1 -2
  308. package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
  309. package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
  310. package/dist/server/index.d.ts +13 -134
  311. package/dist/server/index.js +13 -10
  312. package/dist/server-DqCT4CgZ.js +453 -0
  313. package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
  314. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  315. package/dist/shared-CD11nBbC.js +304 -0
  316. package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
  317. package/dist/signals-D3NcTKUS.js +32 -0
  318. package/dist/sink-BEZSlMS_.js +957 -0
  319. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  320. package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
  321. package/dist/skills-CTYwkl44.js +51 -0
  322. package/dist/snapshot-CXUWfsNy.js +269 -0
  323. package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  324. package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  325. package/dist/solid/index.d.ts +24 -25
  326. package/dist/solid/index.js +41 -11
  327. package/dist/solid-start/index.d.ts +52 -0
  328. package/dist/solid-start/index.js +49 -0
  329. package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
  330. package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
  331. package/dist/sql-B5T1IL83.js +55 -0
  332. package/dist/src-DLfUWFAI.js +1851 -0
  333. package/dist/ssf/index.d.ts +4 -4
  334. package/dist/ssf/index.js +440 -106
  335. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  336. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  337. package/dist/storage-C2bWdvJH.js +132 -0
  338. package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
  339. package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
  340. package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
  341. package/dist/stores-ClZUgeoP.d.ts +30 -0
  342. package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  343. package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
  344. package/dist/style-DiKWnAvn.js +1 -0
  345. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  346. package/dist/subject-BGoM5o8B.js +17 -0
  347. package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
  348. package/dist/supabase/index.d.ts +23 -106
  349. package/dist/supabase/index.js +5 -4
  350. package/dist/supabase/middleware.d.ts +13 -6
  351. package/dist/supabase/middleware.js +16 -11
  352. package/dist/supabase-9pqI57pW.js +92 -0
  353. package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
  354. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  355. package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
  356. package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
  357. package/dist/support-session-C6xJQYut.js +158 -0
  358. package/dist/svelte/Protected.svelte +11 -4
  359. package/dist/svelte/index.d.ts +7 -7
  360. package/dist/svelte/index.js +26 -12
  361. package/dist/svelte/runtime.d.ts +10 -3
  362. package/dist/svelte/runtime.js +4 -3
  363. package/dist/svelte/source.d.ts +7 -7
  364. package/dist/svelte/source.js +5 -5
  365. package/dist/sveltekit/index.d.ts +51 -0
  366. package/dist/sveltekit/index.js +27 -0
  367. package/dist/tanstack-start/index.d.ts +51 -0
  368. package/dist/tanstack-start/index.js +40 -0
  369. package/dist/target-Bw37TFNA.js +51 -0
  370. package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
  371. package/dist/terminal/index.d.ts +11 -9
  372. package/dist/terminal/index.js +36 -316
  373. package/dist/testing/index.d.ts +391 -106
  374. package/dist/testing/index.js +4574 -1286
  375. package/dist/testing/saas/index.d.ts +9 -8
  376. package/dist/testing/saas/index.js +2 -2
  377. package/dist/testing/saas/permissions.d.ts +1 -1
  378. package/dist/testing/saas/permissions.js +1 -2
  379. package/dist/text-BMFRfBqc.js +8 -0
  380. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  381. package/dist/thenable-yD7SabqG.js +31 -0
  382. package/dist/time-DkWjdL98.js +71 -0
  383. package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
  384. package/dist/tool-refusal-CMLN5xhn.js +41 -0
  385. package/dist/trpc/index.d.ts +12 -9
  386. package/dist/trpc/index.js +18 -17
  387. package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
  388. package/dist/types-BNORmDM8.d.ts +172 -0
  389. package/dist/types-BjV-fqcA.d.ts +57 -0
  390. package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
  391. package/dist/types-C8-KNsFf.d.ts +107 -0
  392. package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  393. package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
  394. package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
  395. package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
  396. package/dist/types-DX0LaKTb.d.ts +157 -0
  397. package/dist/types-DiQjupG2.d.ts +332 -0
  398. package/dist/types-DqzsnlSA.js +67 -0
  399. package/dist/types-_sHy8BQf.d.ts +65 -0
  400. package/dist/types-fbZ7JEXr.d.ts +89 -0
  401. package/dist/types-tIgIeIKJ.d.ts +66 -0
  402. package/dist/unplugin/index.d.ts +1 -1
  403. package/dist/unplugin/index.js +2 -2
  404. package/dist/usage-CHOtwL19.js +1 -0
  405. package/dist/usage-DHtE8j4E.js +32 -0
  406. package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
  407. package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  408. package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
  409. package/dist/validity-CZ7-y0Cj.js +79 -0
  410. package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
  411. package/dist/verify-DbCL9bnB.js +1770 -0
  412. package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
  413. package/dist/version-DXkYUISx.js +1 -0
  414. package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
  415. package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
  416. package/dist/vue/index.d.ts +25 -21
  417. package/dist/vue/index.js +25 -9
  418. package/dist/waiter-BGUtGYoU.js +67 -0
  419. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  420. package/dist/watch-Cb-NcaUw.js +1 -0
  421. package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
  422. package/dist/webmcp/index.d.ts +2 -2
  423. package/dist/webmcp/index.js +13 -37
  424. package/dist/where-scope-Dv-WTP-w.js +306 -0
  425. package/dist/who-can-D0QoYbEb.js +364 -0
  426. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  427. package/dist/wire-denial-C7PaVYEM.js +27 -0
  428. package/dist/workflow/index.d.ts +5 -0
  429. package/dist/workflow/index.js +223 -0
  430. package/dist/workflow-sdk/index.d.ts +56 -0
  431. package/dist/workflow-sdk/index.js +78 -0
  432. package/dist/wrap-Bd1Tejur.d.ts +15 -0
  433. package/dist/wrap-gX61EtpB.js +27 -0
  434. package/package.json +140 -41
  435. package/schemas/access-event-v1.json +118 -0
  436. package/schemas/approval-request-v1.json +34 -1
  437. package/schemas/approval-signature-v1.json +94 -0
  438. package/schemas/automation-event-v1.json +113 -0
  439. package/schemas/capability-v1.json +84 -0
  440. package/schemas/catalog-event-v1.json +87 -0
  441. package/schemas/catalog-v1.json +129 -12
  442. package/schemas/cli-commands-v1.json +164 -0
  443. package/schemas/cli-result-v1.json +96 -0
  444. package/schemas/cloud-api-v1.json +5407 -0
  445. package/schemas/connector-v1.json +408 -0
  446. package/schemas/credential-event-v1.json +81 -0
  447. package/schemas/credential-v1.json +134 -0
  448. package/schemas/decision-event-v1.json +288 -0
  449. package/schemas/delivery-event-v1.json +117 -0
  450. package/schemas/directory-event-v1.json +85 -0
  451. package/schemas/evidence-export-v1.json +54 -0
  452. package/schemas/membership-event-v1.json +93 -0
  453. package/schemas/policy-v1.json +68 -0
  454. package/schemas/pushed-policy-v1.json +236 -0
  455. package/schemas/run-v1.json +162 -0
  456. package/schemas/snapshot-v1.json +138 -0
  457. package/schemas/supabase-claims-v1.json +4 -4
  458. package/schemas/supabase-manifest-v1.json +5 -1
  459. package/schemas/support-session-v1.json +111 -0
  460. package/skills/permdock/SKILL.md +16 -12
  461. package/skills/permdock-agents/SKILL.md +40 -23
  462. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  463. package/skills/permdock-agents/references/runtimes.md +22 -18
  464. package/skills/permdock-approvals/SKILL.md +29 -13
  465. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  466. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  467. package/skills/permdock-audit/SKILL.md +3 -3
  468. package/skills/permdock-credentials/SKILL.md +5 -5
  469. package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
  470. package/skills/permdock-data/SKILL.md +6 -6
  471. package/skills/permdock-data/references/queries-and-rls.md +13 -8
  472. package/skills/permdock-data/references/relationships.md +3 -3
  473. package/skills/permdock-tenancy/SKILL.md +20 -7
  474. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  475. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  476. package/skills/permdock-wire/SKILL.md +18 -12
  477. package/skills/permdock-wire/references/adapters.md +146 -50
  478. package/skills/permdock-wire/references/policy-options.md +15 -6
  479. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  480. package/dist/approvals-DbYAuNkG.js +0 -224
  481. package/dist/arazzo-C9chp3ST.js +0 -54
  482. package/dist/bind-C_ob3LKa.d.ts +0 -25
  483. package/dist/catalog-CRW5Mx_B.js +0 -2
  484. package/dist/catalog-CYj-mX2O.js +0 -48
  485. package/dist/catalog-DWF5cYqB.js +0 -55
  486. package/dist/cloud-CfwZ39Rl.js +0 -50
  487. package/dist/cloud-DWLXO2af.js +0 -118
  488. package/dist/collect-CHB22Sx4.js +0 -83
  489. package/dist/collect-DSWOk19R.js +0 -2
  490. package/dist/commands-BeaGNj_o.js +0 -97
  491. package/dist/config-ir40y8m0.js +0 -36
  492. package/dist/create-CMwIl-w2.js +0 -253
  493. package/dist/delegation-D8pUEuce.js +0 -103
  494. package/dist/diff-C9RDjjhs.js +0 -48
  495. package/dist/doctor-Djh6JDEk.js +0 -53
  496. package/dist/doctor-DvH0IQff.js +0 -1194
  497. package/dist/doctor-collect-CjdO0wQX.js +0 -665
  498. package/dist/duration-xK2jGFVc.js +0 -25
  499. package/dist/errors-CWfoNg9N.js +0 -47
  500. package/dist/errors-DRnGZHzF.js +0 -30
  501. package/dist/evaluation-items-CfCCejQd.js +0 -40
  502. package/dist/expiry-BoBJ8Tvc.js +0 -7
  503. package/dist/fields-BMl1RxoX.js +0 -26
  504. package/dist/grantee-Cv5Sogfv.js +0 -602
  505. package/dist/headers-BZSDieNT.js +0 -6
  506. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  507. package/dist/ids-DC4V4CFu.js +0 -18
  508. package/dist/index-0nNqHspG.d.ts +0 -6
  509. package/dist/index-BNc7Wer_.d.ts +0 -483
  510. package/dist/index-C7Tw7MaW.d.ts +0 -201
  511. package/dist/instance-options-Dhhcnm3y.js +0 -22
  512. package/dist/load-DwJUafYN.js +0 -2
  513. package/dist/manifest-iaoBXHKc.js +0 -783
  514. package/dist/map-AcxK9o_D.js +0 -147
  515. package/dist/may-use-DndQ5tQ-.js +0 -77
  516. package/dist/openapi-CQTsgKoB.js +0 -164
  517. package/dist/permdock-CbgvLnuo.js +0 -3479
  518. package/dist/permissions-DVoF6dMt.js +0 -662
  519. package/dist/policy-xyWg7QdR.js +0 -1122
  520. package/dist/powersync-CrBX8hY6.js +0 -2
  521. package/dist/powersync-DE19b9dT.js +0 -62
  522. package/dist/protected-BdnIEFkY.d.ts +0 -27
  523. package/dist/protected-xAr24FEC.d.ts +0 -40
  524. package/dist/relations-cjOL01hZ.js +0 -505
  525. package/dist/rls-P-BeBx0n.js +0 -238
  526. package/dist/rls-graph-CHwx0V8q.js +0 -435
  527. package/dist/rls-ownership-DcYlZ09B.js +0 -843
  528. package/dist/rls-shared-Cewd_-zI.js +0 -495
  529. package/dist/rls-verify-CMv9H3wV.js +0 -746
  530. package/dist/run-BWc9qqvE.js +0 -174
  531. package/dist/server-DlZ28Oz5.js +0 -268
  532. package/dist/sink-B1fZzIMf.d.ts +0 -104
  533. package/dist/sink-Bd9PSyfq.js +0 -141
  534. package/dist/skills-C5CbhhpG.js +0 -56
  535. package/dist/snapshot-Enxd0n-s.js +0 -975
  536. package/dist/sql-xdg5f4Fi.js +0 -27
  537. package/dist/src-BDwEZWrZ.js +0 -568
  538. package/dist/store-jOBYpiXC.d.ts +0 -36
  539. package/dist/stores-C0IMQrGI.d.ts +0 -52
  540. package/dist/subject-C6dLxqHU.js +0 -24
  541. package/dist/supabase-config-Bj3iDH2I.js +0 -472
  542. package/dist/supabase-hook-gd3s8bxB.js +0 -2
  543. package/dist/supabase-s4o9s1O1.js +0 -83
  544. package/dist/thenable-okc2xDsj.js +0 -10
  545. package/dist/types-BnIEz1sU.d.ts +0 -48
  546. package/dist/types-Bvc4oWT6.d.ts +0 -9
  547. package/dist/types-CKNSyIf_.d.ts +0 -52
  548. package/dist/types-Cq_H8N_X.d.ts +0 -197
  549. package/dist/usage-B0YuTQRO.js +0 -42
  550. package/dist/usage-DorAJiU_.js +0 -2
  551. package/dist/vocabulary-DA8a8zif.d.ts +0 -56
  552. package/dist/watch-BwxLTYMZ.js +0 -2
@@ -13,6 +13,13 @@ type SupabaseHookManifest = {
13
13
  readonly schema: string;
14
14
  readonly function: "custom_access_token_hook";
15
15
  readonly out: string;
16
+ /**
17
+ * How the project turns SQL into migrations: `pg-delta` (`supabase db
18
+ * schema declarative sync`, which keeps the hook's grants in `out`),
19
+ * `migra` (`supabase db diff`, which drops them) or `migrations`
20
+ * (hand-written). Absent means `pg-delta`.
21
+ */
22
+ readonly schemas?: "pg-delta" | "migra" | "migrations";
16
23
  readonly before?: readonly string[];
17
24
  };
18
25
  readonly helpers: {
@@ -91,7 +98,7 @@ type SupabaseManifestThrough = {
91
98
  type SupabaseManifestRole = SupabaseManifestValue | (SupabaseManifestColumn & {
92
99
  readonly through: SupabaseManifestThrough;
93
100
  });
94
- /** One `fromTable` or `fromJunction` source. */
101
+ /** One `tableMembershipSource` or `junctionMembershipSource` source. */
95
102
  type SupabaseManifestMembership = {
96
103
  /** `schema.table`, `public` when the source names no schema. */
97
104
  readonly table: string;
@@ -99,7 +106,7 @@ type SupabaseManifestMembership = {
99
106
  readonly user: SupabaseManifestColumn | (SupabaseManifestColumn & {
100
107
  readonly through: SupabaseManifestThrough;
101
108
  });
102
- /** A column for `fromTable`, the fixed scope for `fromJunction`. */
109
+ /** A column for `tableMembershipSource`, the fixed scope for `junctionMembershipSource`. */
103
110
  readonly scope: SupabaseManifestValue;
104
111
  readonly id: SupabaseManifestColumn;
105
112
  /** A role column, the fixed roles every row holds, or several role columns whose keys the row holds together. */
@@ -0,0 +1,399 @@
1
+ import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
2
+ //#region src/supabase/manifest-schema.ts
3
+ /** `schemas/supabase-manifest-v1.json`, which `parseSupabaseManifest` checks against; a test keeps the two equal. */
4
+ const supabaseManifestSchema = freezeDeep({
5
+ $schema: "https://json-schema.org/draft/2020-12/schema",
6
+ $id: "https://permdock.com/schemas/supabase-manifest-v1.json",
7
+ title: "PermDock Supabase hook manifest v1",
8
+ description: "What `permdock supabase inspect --json` prints and `--out` writes: the generated hook, the SQL helpers, the claims, the membership sources and the columns that decide them. Fields are only added within v1.",
9
+ type: "object",
10
+ required: [
11
+ "$schema",
12
+ "version",
13
+ "hook",
14
+ "helpers",
15
+ "tenantClaim",
16
+ "budget",
17
+ "claims",
18
+ "authzVersion",
19
+ "memberships",
20
+ "rls",
21
+ "decidingColumns",
22
+ "markers"
23
+ ],
24
+ properties: {
25
+ $schema: { const: "https://permdock.com/schemas/supabase-manifest-v1.json" },
26
+ version: { const: 1 },
27
+ hook: {
28
+ type: "object",
29
+ required: [
30
+ "schema",
31
+ "function",
32
+ "out"
33
+ ],
34
+ properties: {
35
+ schema: { $ref: "#/$defs/identifier" },
36
+ function: { const: "custom_access_token_hook" },
37
+ out: { type: "string" },
38
+ schemas: {
39
+ enum: [
40
+ "pg-delta",
41
+ "migra",
42
+ "migrations"
43
+ ],
44
+ description: "How the project turns SQL into migrations: pg-delta (supabase db schema declarative sync), migra (supabase db diff) or hand-written migrations. Absent means pg-delta."
45
+ },
46
+ before: {
47
+ type: "array",
48
+ items: {
49
+ type: "string",
50
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*\\.[A-Za-z_][A-Za-z0-9_]*$"
51
+ }
52
+ }
53
+ }
54
+ },
55
+ helpers: {
56
+ type: "object",
57
+ required: ["schema", "functions"],
58
+ properties: {
59
+ schema: { $ref: "#/$defs/identifier" },
60
+ functions: {
61
+ type: "array",
62
+ items: { $ref: "#/$defs/helperName" }
63
+ }
64
+ }
65
+ },
66
+ tenantClaim: { $ref: "#/$defs/identifier" },
67
+ budget: {
68
+ type: "object",
69
+ required: ["bytes", "measure"],
70
+ properties: {
71
+ bytes: {
72
+ type: "integer",
73
+ minimum: 1
74
+ },
75
+ measure: { type: "string" }
76
+ }
77
+ },
78
+ claims: {
79
+ type: "array",
80
+ items: {
81
+ type: "object",
82
+ required: [
83
+ "name",
84
+ "source",
85
+ "budget"
86
+ ],
87
+ properties: {
88
+ name: { $ref: "#/$defs/identifier" },
89
+ source: {
90
+ type: "string",
91
+ pattern: "^(permdock|[A-Za-z_][A-Za-z0-9_]*\\.[A-Za-z_][A-Za-z0-9_]*)$"
92
+ },
93
+ budget: { type: "boolean" }
94
+ }
95
+ }
96
+ },
97
+ authzVersion: { type: "boolean" },
98
+ authzVersionBump: {
99
+ type: "object",
100
+ required: [
101
+ "schema",
102
+ "function",
103
+ "args"
104
+ ],
105
+ properties: {
106
+ schema: { $ref: "#/$defs/identifier" },
107
+ function: { const: "permdock_bump_authz_version_for" },
108
+ args: { const: "p_users uuid[]" }
109
+ }
110
+ },
111
+ memberships: {
112
+ type: "array",
113
+ items: { $ref: "#/$defs/membership" }
114
+ },
115
+ rls: {
116
+ type: "object",
117
+ required: [
118
+ "schema",
119
+ "mode",
120
+ "tenantClaim",
121
+ "scopes",
122
+ "helpers",
123
+ "memberships"
124
+ ],
125
+ properties: {
126
+ schema: { $ref: "#/$defs/identifier" },
127
+ mode: { enum: ["jwt", "database"] },
128
+ tenantClaim: { $ref: "#/$defs/identifier" },
129
+ scopes: {
130
+ type: "array",
131
+ items: {
132
+ type: "object",
133
+ required: ["name", "type"],
134
+ properties: {
135
+ name: {
136
+ type: "string",
137
+ pattern: "^[a-z][a-z0-9_]*$"
138
+ },
139
+ type: { type: "string" },
140
+ within: {
141
+ type: "string",
142
+ pattern: "^[a-z][a-z0-9_]*$"
143
+ }
144
+ }
145
+ }
146
+ },
147
+ helpers: {
148
+ type: "array",
149
+ items: {
150
+ type: "object",
151
+ required: [
152
+ "name",
153
+ "args",
154
+ "returns",
155
+ "execute"
156
+ ],
157
+ properties: {
158
+ name: { $ref: "#/$defs/helperName" },
159
+ args: { type: "string" },
160
+ returns: { type: "string" },
161
+ execute: {
162
+ type: "array",
163
+ items: { enum: [
164
+ "anon",
165
+ "authenticated",
166
+ "supabase_auth_admin"
167
+ ] }
168
+ }
169
+ }
170
+ }
171
+ },
172
+ memberships: {
173
+ type: "array",
174
+ items: { $ref: "#/$defs/membership" }
175
+ },
176
+ customRoles: { type: "boolean" },
177
+ roles: {
178
+ type: "object",
179
+ required: [
180
+ "table",
181
+ "user",
182
+ "role"
183
+ ],
184
+ additionalProperties: false,
185
+ properties: {
186
+ table: { type: "string" },
187
+ user: { $ref: "#/$defs/column" },
188
+ role: { oneOf: [{ $ref: "#/$defs/role" }, {
189
+ type: "array",
190
+ minItems: 2,
191
+ items: { $ref: "#/$defs/role" }
192
+ }] }
193
+ }
194
+ },
195
+ suspension: {
196
+ type: "object",
197
+ additionalProperties: false,
198
+ properties: {
199
+ users: { $ref: "#/$defs/activeRow" },
200
+ scopes: {
201
+ type: "object",
202
+ additionalProperties: { $ref: "#/$defs/activeRow" }
203
+ },
204
+ memberships: {
205
+ type: "object",
206
+ required: ["keep"],
207
+ additionalProperties: false,
208
+ properties: { keep: {
209
+ description: "The permission keys a membership whose disabledAt column is set still holds.",
210
+ type: "array",
211
+ items: { type: "string" }
212
+ } }
213
+ }
214
+ }
215
+ },
216
+ assignments: {
217
+ type: "object",
218
+ required: ["tables"],
219
+ additionalProperties: false,
220
+ properties: { tables: {
221
+ type: "array",
222
+ items: { type: "string" }
223
+ } }
224
+ },
225
+ apiKeys: {
226
+ type: "object",
227
+ required: [
228
+ "claim",
229
+ "scopes",
230
+ "tenant",
231
+ "roles",
232
+ "serviceRoles"
233
+ ],
234
+ additionalProperties: false,
235
+ properties: {
236
+ claim: { type: "string" },
237
+ scopes: { type: "string" },
238
+ tenant: { type: "string" },
239
+ roles: { type: "string" },
240
+ serviceRoles: {
241
+ type: "array",
242
+ items: { type: "string" }
243
+ }
244
+ }
245
+ }
246
+ }
247
+ },
248
+ decidingColumns: {
249
+ type: "array",
250
+ items: {
251
+ type: "string",
252
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*\\.[A-Za-z_][A-Za-z0-9_]*\\.[A-Za-z_][A-Za-z0-9_]*$"
253
+ }
254
+ },
255
+ markers: {
256
+ type: "object",
257
+ required: ["hook", "grants"],
258
+ properties: {
259
+ hook: { const: "v1" },
260
+ grants: { const: "v1" }
261
+ }
262
+ },
263
+ requires: {
264
+ description: "The supabase/sdk capability-matrix feature ids the hook, the helpers and subjectFromSupabase depend on, as of the matrix release tag.",
265
+ type: "object",
266
+ required: ["matrix", "capabilities"],
267
+ additionalProperties: false,
268
+ properties: {
269
+ matrix: {
270
+ type: "string",
271
+ pattern: "^capability-matrix-v1\\.[0-9]+\\.[0-9]+$"
272
+ },
273
+ capabilities: {
274
+ type: "array",
275
+ uniqueItems: true,
276
+ items: {
277
+ type: "string",
278
+ pattern: "^[a-z][a-z0-9_]*\\.[a-z0-9_]+\\.[a-z0-9_]+$"
279
+ }
280
+ }
281
+ }
282
+ }
283
+ },
284
+ $defs: {
285
+ membership: {
286
+ type: "object",
287
+ required: [
288
+ "table",
289
+ "user",
290
+ "scope",
291
+ "id",
292
+ "role",
293
+ "columns"
294
+ ],
295
+ properties: {
296
+ table: {
297
+ type: "string",
298
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*\\.[A-Za-z_][A-Za-z0-9_]*$"
299
+ },
300
+ user: { $ref: "#/$defs/user" },
301
+ scope: { $ref: "#/$defs/value" },
302
+ id: { $ref: "#/$defs/column" },
303
+ role: { oneOf: [{ $ref: "#/$defs/role" }, {
304
+ type: "array",
305
+ minItems: 2,
306
+ items: { $ref: "#/$defs/role" }
307
+ }] },
308
+ within: { oneOf: [{ $ref: "#/$defs/column" }, {
309
+ type: "object",
310
+ required: ["columns"],
311
+ additionalProperties: false,
312
+ properties: { columns: {
313
+ type: "object",
314
+ additionalProperties: { $ref: "#/$defs/identifier" }
315
+ } }
316
+ }] },
317
+ via: { $ref: "#/$defs/value" },
318
+ expiresAt: { $ref: "#/$defs/column" },
319
+ disabledAt: { $ref: "#/$defs/column" },
320
+ columns: {
321
+ type: "array",
322
+ items: { $ref: "#/$defs/identifier" }
323
+ }
324
+ }
325
+ },
326
+ identifier: {
327
+ type: "string",
328
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*$"
329
+ },
330
+ activeRow: {
331
+ type: "object",
332
+ required: ["table", "id"],
333
+ additionalProperties: false,
334
+ properties: {
335
+ table: { type: "string" },
336
+ id: { $ref: "#/$defs/identifier" },
337
+ disabledAt: { $ref: "#/$defs/identifier" },
338
+ status: { $ref: "#/$defs/identifier" },
339
+ active: {
340
+ type: "array",
341
+ items: { type: "string" }
342
+ },
343
+ keep: {
344
+ description: "A scope only: the permission keys members of a suspended instance still hold.",
345
+ type: "array",
346
+ items: { type: "string" }
347
+ }
348
+ }
349
+ },
350
+ helperName: {
351
+ type: "string",
352
+ pattern: "^(permdock_has(_for)?|permitted_[a-z][a-z0-9_]*_(ids|permission_keys)(_for)?|permitted_[a-z][a-z0-9_]*_users|member_[a-z][a-z0-9_]*_ids(_for)?|permdock_can_assign(_any|_custom_role)?(_for)?|permdock_api_key_allows|permdock_actor_may_write|permdock_is_approver|permdock_user_id)$"
353
+ },
354
+ column: {
355
+ type: "object",
356
+ required: ["column"],
357
+ additionalProperties: false,
358
+ properties: { column: { $ref: "#/$defs/identifier" } }
359
+ },
360
+ role: { oneOf: [{ $ref: "#/$defs/value" }, { $ref: "#/$defs/through" }] },
361
+ user: { oneOf: [{ $ref: "#/$defs/column" }, { $ref: "#/$defs/through" }] },
362
+ through: {
363
+ type: "object",
364
+ required: ["column", "through"],
365
+ additionalProperties: false,
366
+ properties: {
367
+ column: { $ref: "#/$defs/identifier" },
368
+ through: {
369
+ type: "object",
370
+ required: [
371
+ "table",
372
+ "id",
373
+ "column"
374
+ ],
375
+ additionalProperties: false,
376
+ properties: {
377
+ table: {
378
+ type: "string",
379
+ pattern: "^[A-Za-z_][A-Za-z0-9_]*\\.[A-Za-z_][A-Za-z0-9_]*$"
380
+ },
381
+ id: { $ref: "#/$defs/identifier" },
382
+ column: { $ref: "#/$defs/identifier" }
383
+ }
384
+ }
385
+ }
386
+ },
387
+ value: { oneOf: [{ $ref: "#/$defs/column" }, {
388
+ type: "object",
389
+ required: ["value"],
390
+ additionalProperties: false,
391
+ properties: { value: { oneOf: [{ type: "string" }, {
392
+ type: "array",
393
+ items: { type: "string" }
394
+ }] } }
395
+ }] }
396
+ }
397
+ });
398
+ //#endregion
399
+ export { supabaseManifestSchema as t };
@@ -1,8 +1,10 @@
1
- import { t as compact } from "./compact-y6vfu2_f.js";
1
+ import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { O as readPath, T as isForbiddenKey } from "./permissions-DVoF6dMt.js";
4
- import { t as ignoreRejection } from "./thenable-okc2xDsj.js";
5
- import { t as anonymousSubject } from "./subject-C6dLxqHU.js";
3
+ import { n as isForbiddenKey, o as readPath } from "./paths-DXSHAMIa.js";
4
+ import { n as expirySeconds } from "./expiry-D4_YKRKD.js";
5
+ import { r as validateRecord } from "./thenable-yD7SabqG.js";
6
+ import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
7
+ import { t as readClaim } from "./claims-map-7oQ3ue4X.js";
6
8
  import { t as clientNameOf } from "./clients-DjU5ABMy.js";
7
9
  //#region src/jwt/map-claims.ts
8
10
  /** OpenID Connect Core section 5.1: profile data the provider owns. */
@@ -72,13 +74,10 @@ function assuranceOf(claims, paths) {
72
74
  });
73
75
  return Object.keys(assurance).length === 0 ? void 0 : assurance;
74
76
  }
75
- function isPlainRecord(value) {
76
- return value !== null && typeof value === "object" && !Array.isArray(value);
77
- }
78
77
  function hasForbiddenKey(value, depth = 0) {
79
78
  if (depth > 16) return true;
80
79
  if (Array.isArray(value)) return value.some((item) => hasForbiddenKey(item, depth + 1));
81
- if (!isPlainRecord(value)) return false;
80
+ if (!isRecord(value)) return false;
82
81
  return Object.keys(value).some((key) => isForbiddenKey(key) || hasForbiddenKey(value[key], depth + 1));
83
82
  }
84
83
  /**
@@ -86,7 +85,7 @@ function hasForbiddenKey(value, depth = 0) {
86
85
  * without `verification.trust_framework` and a `claims` object is dropped.
87
86
  */
88
87
  function verifiedClaimsOf(value) {
89
- const verified = (Array.isArray(value) ? value : [value]).filter((entry) => isPlainRecord(entry) && isPlainRecord(entry["verification"]) && typeof entry["verification"]["trust_framework"] === "string" && isPlainRecord(entry["claims"]) && !hasForbiddenKey(entry));
88
+ const verified = (Array.isArray(value) ? value : [value]).filter((entry) => isRecord(entry) && isRecord(entry["verification"]) && typeof entry["verification"]["trust_framework"] === "string" && isRecord(entry["claims"]) && !hasForbiddenKey(entry));
90
89
  return verified.length === 0 ? void 0 : freezeDeep(verified.map((entry) => ({
91
90
  verification: entry.verification,
92
91
  claims: entry.claims
@@ -128,7 +127,7 @@ function keptKeys(value) {
128
127
  function claimExtras(record) {
129
128
  return compact({
130
129
  via: typeof record["via"] === "string" ? record["via"] : void 0,
131
- expiresAt: typeof record["expiresAt"] === "number" ? record["expiresAt"] : void 0,
130
+ expiresAt: record["expiresAt"] === void 0 || record["expiresAt"] === null ? void 0 : expirySeconds(record["expiresAt"]) ?? 0,
132
131
  keep: keptKeys(record["keep"])
133
132
  });
134
133
  }
@@ -242,33 +241,28 @@ function customClaims(claims, reserved) {
242
241
  return out;
243
242
  }
244
243
  function validateCustomClaims(claims, schema) {
245
- const result = schema["~standard"].validate(claims);
246
- if (result instanceof Promise) {
247
- ignoreRejection(result);
248
- return { ok: false };
249
- }
250
- if ("issues" in result && result.issues !== void 0) return { ok: false };
251
- return {
244
+ const value = validateRecord(schema, claims);
245
+ return value === void 0 ? { ok: false } : {
252
246
  ok: true,
253
- value: result.value
247
+ value
254
248
  };
255
249
  }
256
250
  function mapClaimsToSubject(claims, options) {
257
251
  const paths = options.claims;
258
252
  const idPath = paths?.id ?? DEFAULT_CLAIMS.id;
259
- const id = readPath(claims, idPath);
253
+ const id = readClaim(claims, idPath);
260
254
  if (typeof id !== "string" || id.length === 0) return {
261
255
  subject: anonymousSubject(),
262
256
  invalidClaims: false,
263
257
  invalidChain: false
264
258
  };
265
259
  const tenantPath = paths?.tenant;
266
- const tenant = tenantPath === void 0 ? void 0 : readPath(claims, tenantPath);
260
+ const tenant = tenantPath === void 0 ? void 0 : readClaim(claims, tenantPath);
267
261
  const activeTenant = typeof tenant === "string" ? tenant : void 0;
268
- const roles = asStringArray(readPath(claims, paths?.roles ?? DEFAULT_CLAIMS.roles));
269
- const plans = asStringArray(readPath(claims, paths?.plans ?? paths?.entitlements ?? DEFAULT_CLAIMS.entitlements));
270
- const groups = asStringArray(readPath(claims, paths?.groups ?? DEFAULT_CLAIMS.groups));
271
- const memberships = [...membershipsFromClaim(paths?.memberships === void 0 ? void 0 : readPath(claims, paths.memberships)), ...membershipsFromGroups(groups, options.groupRoles, activeTenant)];
262
+ const roles = asStringArray(readClaim(claims, paths?.roles ?? DEFAULT_CLAIMS.roles));
263
+ const plans = asStringArray(readClaim(claims, paths?.plans ?? paths?.entitlements ?? DEFAULT_CLAIMS.entitlements));
264
+ const groups = asStringArray(readClaim(claims, paths?.groups ?? DEFAULT_CLAIMS.groups));
265
+ const memberships = [...membershipsFromClaim(paths?.memberships === void 0 ? void 0 : readClaim(claims, paths.memberships)), ...membershipsFromGroups(groups, options.groupRoles, activeTenant)];
272
266
  let extra = customClaims(claims, [
273
267
  "iss",
274
268
  "sub",
@@ -327,7 +321,7 @@ function mapClaimsToSubject(claims, options) {
327
321
  binding
328
322
  }));
329
323
  const sessionPath = paths?.session ?? DEFAULT_CLAIMS.session;
330
- const sessionValue = readPath(claims, sessionPath);
324
+ const sessionValue = readClaim(claims, sessionPath);
331
325
  const sessionExpiry = claims["session_expiry"];
332
326
  const exp = typeof claims.exp === "number" ? claims.exp : void 0;
333
327
  const expiresAt = typeof sessionExpiry === "number" && exp !== void 0 ? Math.min(exp, sessionExpiry) : exp;
@@ -1,8 +1,8 @@
1
- import { t as compact } from "./compact-y6vfu2_f.js";
2
- import { n as PermDockValidationError } from "./validation-error-CnjZ4t92.js";
3
- import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "./errors-Cz5zn0mW.js";
4
- import { r as decisionResponse, s as problemResponse } from "./problem-B43ztKIm.js";
5
- import { r as InvalidSignatureError } from "./evaluations-tz6D9A2G.js";
1
+ import { t as compact } from "./compact-CAf557ZB.js";
2
+ import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
3
+ import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "./errors-BKy0EfhN.js";
4
+ import { c as problemResponse, i as decisionResponse } from "./problem-CTviyH5L.js";
5
+ import { u as InvalidSignatureError } from "./evaluations-DZ2CbV5k.js";
6
6
  //#region src/server/map-error.ts
7
7
  /**
8
8
  * Turns a thrown PermDock error into its Problem Details response, with the
@@ -1,4 +1,5 @@
1
- //#region src/cli/markers.ts
1
+ import { t as beforeFirst } from "./text-BMFRfBqc.js";
2
+ //#region src/cli/sql/markers.ts
2
3
  const HOOK_MARKER = "-- permdock:hook v1";
3
4
  /** The first line of a `--grants-out` file. */
4
5
  const GRANTS_MARKER = "-- permdock:grants v1";
@@ -6,10 +7,14 @@ const GRANTS_MARKER = "-- permdock:grants v1";
6
7
  const SEEDS_MARKER = "-- permdock:seeds v1";
7
8
  /** The first line of the `indexes` part: the indexes the policies and helpers read through. */
8
9
  const INDEXES_MARKER = "-- permdock:indexes v1";
10
+ /** The first line of a `--backfill-out` migration: existing custom roles copied into the custom-role tables. */
11
+ const BACKFILL_MARKER = "-- permdock:backfill v1";
12
+ /** The first line of a `rls migrate --retire-out` migration: a materialised permissions table and its refresh triggers dropped. */
13
+ const RETIRE_MARKER = "-- permdock:retire v1";
9
14
  const HOOK_LINE = /^-- permdock:hook v(?<version>[1-9]\d*)(?: (?<rest>.*))?$/u;
10
15
  const GRANTS_LINE = /^-- permdock:grants v(?<version>[1-9]\d*)(?: (?<rest>.*))?$/u;
11
16
  function firstLine(sql) {
12
- return (sql.split("\n", 1)[0] ?? "").replace(/\r$/u, "");
17
+ return beforeFirst(sql, "\n").replace(/\r$/u, "");
13
18
  }
14
19
  /** The `key=value` pairs after the marker, in a prototype-less object. */
15
20
  function pairs(rest) {
@@ -57,4 +62,4 @@ function parseGrantsMarker(sql) {
57
62
  });
58
63
  }
59
64
  //#endregion
60
- export { hookMarkerFields as a, SEEDS_MARKER as i, HOOK_MARKER as n, parseGrantsMarker as o, INDEXES_MARKER as r, parseHookMarker as s, GRANTS_MARKER as t };
65
+ export { RETIRE_MARKER as a, parseGrantsMarker as c, INDEXES_MARKER as i, parseHookMarker as l, GRANTS_MARKER as n, SEEDS_MARKER as o, HOOK_MARKER as r, hookMarkerFields as s, BACKFILL_MARKER as t };
@@ -1,11 +1,14 @@
1
- import { C as Policy, Nr as Principal, Pr as Subject } from "../policy-IB6yxpC3.js";
2
- import { f as Permission } from "../permissions-DttnqqxC.js";
3
- import { f as ApprovalStore } from "../types-aqOHTHcp.js";
4
- import { t as ApprovalHint } from "../errors-DPdqI50v.js";
5
- import { t as InstanceOptions } from "../instance-options-jARdwfPN.js";
1
+ import { $n as Delegation, T as Policy, ir as Subject, rr as Principal } from "../policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
+ import { m as ApprovalStore } from "../types-CCpc2Dcv.js";
4
+ import { t as ApprovalHint } from "../errors-C2PXIv4c.js";
5
+ import { t as InstanceOptions } from "../instance-options-Omfd793B.js";
6
+ import { t as RequestContext } from "../request-context-C2_1lchh.js";
7
+ import { n as PermDockWrap } from "../wrap-Bd1Tejur.js";
8
+ import { o as OtelWrap } from "../types-BqAKcRNW.js";
9
+ import { n as DeniedTextEvent, t as DeniedText } from "../denied-text-D8jDHgsl.js";
6
10
  import { t as ClientNames } from "../clients-C7zLFuWT.js";
7
- import { u as JwtSubjectOptions } from "../types-Cq_H8N_X.js";
8
- import { o as OtelWrap } from "../types-QCuYJh4q.js";
11
+ import { U as JwtSubjectOptions } from "../types-DiQjupG2.js";
9
12
  import { CacheHint, Icon, McpServer, PromptCallback, ReadResourceCallback, ReadResourceTemplateCallback, RegisteredPrompt, RegisteredResource, RegisteredResourceTemplate, RegisteredTool, ResourceMetadata, ResourceTemplate, ScopeChallengeHandler, StandardSchemaWithJSON, ToolAnnotations, ToolCallback, Variables } from "@modelcontextprotocol/server";
10
13
  //#region src/mcp/types.d.ts
11
14
  /** The verified `AuthInfo` the MCP SDK's bearer auth puts on `ctx.http.authInfo`. */
@@ -96,6 +99,16 @@ type McpPermDockOptions<TUser = unknown> = InstanceOptions & {
96
99
  * client, so one policy delegation covers the token on every surface.
97
100
  */
98
101
  readonly actorKind?: string;
102
+ /**
103
+ * Replaces the actor built from `authInfo.clientId`, `actorKind` and
104
+ * `clients`. Read it from the verified `authInfo`, never from tool arguments.
105
+ */
106
+ readonly actor?: (authInfo: McpAuthInfo) => unknown;
107
+ /**
108
+ * Replaces the delegation read from `authInfo.scopes` and
109
+ * `authInfo.extra.authorization_details`.
110
+ */
111
+ readonly delegation?: (authInfo: McpAuthInfo) => Delegation | undefined | Promise<Delegation | undefined>;
99
112
  /** Names for OAuth client ids (`ClientNames`): the actor gets `client` set to the name of `authInfo.clientId`, which a policy delegation matches with `to: { kind, client }`. */
100
113
  readonly clients?: ClientNames;
101
114
  readonly tenant?: string | ((authInfo: McpAuthInfo) => string | undefined | Promise<string | undefined>);
@@ -125,6 +138,18 @@ type McpPermDockOptions<TUser = unknown> = InstanceOptions & {
125
138
  readonly store?: ApprovalStore;
126
139
  /** `(permdock) => withOtel(permdock, options)` from `permdock/otel`. */
127
140
  readonly otel?: OtelWrap;
141
+ /** Wraps each instance after `otel`; build it with `wrapPermDock` to cover derived instances. */
142
+ readonly wrap?: PermDockWrap;
143
+ /**
144
+ * Request values merged into `subject.context`, under `policy.context`.
145
+ * Read them from the verified `authInfo`, never from tool arguments.
146
+ */
147
+ readonly context?: (authInfo: McpAuthInfo) => RequestContext | undefined | Promise<RequestContext | undefined>;
148
+ /**
149
+ * Replaces the text of a refusal. `isError`, `structuredContent` and the
150
+ * approval shape stay as PermDock built them.
151
+ */
152
+ readonly deniedText?: DeniedText;
128
153
  };
129
154
  type McpPermDock = {
130
155
  /** Call before registering anything: later `register*` calls must carry a `permission`. */
@@ -135,9 +160,11 @@ type McpPermDock = {
135
160
  };
136
161
  //#endregion
137
162
  //#region src/mcp/create.d.ts
163
+ export declare function createPermDock<TUser, TPrincipal extends Principal = Principal>(policy: Policy<TUser, TPrincipal>, given: McpPermDockOptions<TUser>): McpPermDock;
164
+ //#endregion
165
+ //#region src/mcp/mcp-auth.d.ts
138
166
  /** `_meta` key on `tools/call`, `resources/read` and `prompts/get` carrying an approval token. */
139
167
  export declare const APPROVAL_META_KEY = "dev.permdock/approval";
140
- export declare function createPermDock<TUser, TPrincipal extends Principal = Principal>(policy: Policy<TUser, TPrincipal>, options: McpPermDockOptions<TUser>): McpPermDock;
141
168
  //#endregion
142
169
  //#region src/mcp/subject.d.ts
143
170
  type McpSubjectOptions = Pick<JwtSubjectOptions, "claims" | "groupRoles" | "schema" | "delegation"> & {
@@ -156,4 +183,4 @@ type McpSubjectOptions = Pick<JwtSubjectOptions, "claims" | "groupRoles" | "sche
156
183
  */
157
184
  export declare function subjectFromMcp(authInfo: McpAuthInfo | undefined, options?: McpSubjectOptions): Subject<McpPrincipal>;
158
185
  //#endregion
159
- export type { GuardedMcpServer, McpAuthInfo, McpPermDock, McpPermDockOptions, McpPrincipal, McpProcedureEnforcement, McpProcedureToolConfig, McpPromptConfig, McpResourceConfig, McpSubjectOptions, McpToolConfig, ProcedureMcpServer };
186
+ export type { DeniedText, DeniedTextEvent, GuardedMcpServer, McpAuthInfo, McpPermDock, McpPermDockOptions, McpPrincipal, McpProcedureEnforcement, McpProcedureToolConfig, McpPromptConfig, McpResourceConfig, McpSubjectOptions, McpToolConfig, ProcedureMcpServer };