permdock 0.4.0 → 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 (514) 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-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 -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-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/arazzo-B6lebmiQ.js +36 -0
  19. package/dist/{arazzo-C4BcskbX.js → arazzo-BWhNF-k0.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-Dg8XsRaO.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-BMZPIVUM.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-BzqG8SMb.d.ts → bind--9EFVYWF.d.ts} +12 -10
  34. package/dist/{bind-kk-uyCwH.js → bind-CZzhx-Vj.js} +14 -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-BMnAudHn.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-BSslw1QV.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-tZUyOfOv.js → catalog-BECMPrwc.js} +51 -6
  48. package/dist/catalog-DjhMYYCq.js +1 -0
  49. package/dist/catalog-R_A__RsH.js +52 -0
  50. package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-C9wjsfNY.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-CIoHNevm.js +87 -0
  68. package/dist/codemod-Bmj9dWMH.js +37 -0
  69. package/dist/codemod-Cxvvc70T.js +2084 -0
  70. package/dist/{collect-2SrB7lfk.js → collect-CrZJJnEF.js} +75 -11
  71. package/dist/collect-DloHbDVa.js +55 -0
  72. package/dist/collect-FlXJlhus.js +1 -0
  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-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
  77. package/dist/{compile-CtTP7eur.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  78. package/dist/completion-BqhRBJD8.js +143 -0
  79. package/dist/config-B46rm9sc.js +26 -0
  80. package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
  81. package/dist/{config-report--Xb9APJS.js → config-report-DUgj62Ai.js} +15 -5
  82. package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
  83. package/dist/{context-DieZVJXu.js → context-bbFHR-0D.js} +2 -2
  84. package/dist/convex/index.d.ts +11 -10
  85. package/dist/convex/index.js +6 -4
  86. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  87. package/dist/create-BDS7wc3y.d.ts +138 -0
  88. package/dist/create-BFfm17UA.d.ts +110 -0
  89. package/dist/create-BWRSXgOF.js +403 -0
  90. package/dist/create-C3b4B5eF.js +130 -0
  91. package/dist/{create-BBO24vj6.js → create-DnrmLnLW.js} +31 -32
  92. package/dist/{credential-kue0qpbm.js → credential-DM2um3ha.js} +152 -31
  93. package/dist/credentials-DPyHmYz5.js +74 -0
  94. package/dist/delegation-DaXVdDhM.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-D8jDHgsl.d.ts} +5 -5
  100. package/dist/{describe-C3ldA9os.d.ts → describe-BZUsixiL.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-CxZo9pTq.js +37 -0
  104. package/dist/{diff-rpqoe7Ag.js → diff-DCePiN6M.js} +60 -54
  105. package/dist/doctor-CxiwSfqH.js +44 -0
  106. package/dist/{doctor-owlv6ddh.js → doctor-DFjUxf2f.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-OD_4c__H.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  116. package/dist/errors-CWTY6uih.js +143 -0
  117. package/dist/evaluate-_R8QkWaf.js +1732 -0
  118. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  119. package/dist/{evaluations-C9YJsv3H.js → evaluations-DZ2CbV5k.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-g0ypLkID.js +120 -0
  129. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  130. package/dist/fields-D9tPVUUS.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-D2lZt4Dd.js} +55 -52
  135. package/dist/{grantee-CXY-0C87.js → grantee-Cn1HyUsI.js} +3 -3
  136. package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
  137. package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DHArqY82.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-DTcZOzhF.js} +45 -38
  143. package/dist/hono/index.d.ts +12 -9
  144. package/dist/hono/index.js +13 -12
  145. package/dist/hosted-BZIAYvon.js +315 -0
  146. package/dist/hosted-DBDX0M-P.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-DMmOG27O.js} +190 -53
  152. package/dist/index-BcHcPyIo.d.ts +110 -0
  153. package/dist/index-CaxrMD1A.d.ts +1 -0
  154. package/dist/index-Chrs5fQ-.d.ts +210 -0
  155. package/dist/index-CxGUswIC.d.ts +431 -0
  156. package/dist/index-D8EovfsP.d.ts +91 -0
  157. package/dist/{index-UdVQgq48.d.ts → index-DOVf7RJv.d.ts} +431 -81
  158. package/dist/{index-BwMe94Xq.d.ts → index-SGdIQyzc.d.ts} +34 -16
  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-Omfd793B.d.ts} +2 -2
  164. package/dist/instance-snapshot-Cxq4ygFc.js +600 -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-5JatXyND.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-CtKR3GXL.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-TCAdw-eW.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-BShP7Vf4.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-BJdBmYDG.js → openapi-DTaEmTSW.js} +10 -9
  205. package/dist/openapi-ahr8rHu3.js +138 -0
  206. package/dist/operation-findings-DgATDpvh.js +36 -0
  207. package/dist/operations-CxybZErY.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-Dyw8fyPF.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-BatFgAA4.js} +1698 -869
  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-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
  219. package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-DgqtruPn.d.ts} +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-B9JxkBwC.js +868 -0
  227. package/dist/permdock-D7eeLJER.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-CZKiUfFM.js} +4 -3
  231. package/dist/{permissions-COH-KRgT.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  232. package/dist/policies-CO1oOymN.js +295 -0
  233. package/dist/{policy-ur0BBK_e.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  234. package/dist/{hosted-CBHgkzDl.js → policy-DLZJ5gAp.js} +17 -273
  235. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  236. package/dist/policy-module-CTlwMvLI.js +89 -0
  237. package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-DzwivBgR.d.ts} +434 -631
  238. package/dist/postgrest-CW0IqC-U.js +566 -0
  239. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  240. package/dist/powersync-BHfuehf3.js +62 -0
  241. package/dist/powersync-CbzkqL_M.js +1 -0
  242. package/dist/{powersync-cZe4kzhL.js → powersync-bYUDLOAO.js} +23 -24
  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-DXlt-vks.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-B3_P7xuw.d.ts → protected-DEPHc2xV.d.ts} +16 -8
  255. package/dist/{protected-BN7BUdY1.js → protected-DfjY5mLA.js} +21 -4
  256. package/dist/{provider-Bi-0HNL3.js → provider-CC-u3bYP.js} +2 -2
  257. package/dist/{provider-kwHC9CZD.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  258. package/dist/{provider-store-Ctt-81Ni.js → provider-store-B5Yrkhzr.js} +2 -2
  259. package/dist/pull-BgIfno6w.js +256 -0
  260. package/dist/pull-ByOks_Tg.js +1 -0
  261. package/dist/push-CmFVBOeI.js +116 -0
  262. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  263. package/dist/pushed-policy-DobP7AHI.js +238 -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 +24 -22
  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-D7iKcLFe.d.ts} +1 -1
  275. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  276. package/dist/{request-context-BVM7aWNs.js → request-context-BTRTG7OT.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-BA8an5Ap.js +336 -0
  284. package/dist/{rls-BEktUaqg.js → rls-j6t43t7n.js} +287 -689
  285. package/dist/{role-builder-B4GbKM-i.js → role-builder-CXbis5-X.js} +14 -207
  286. package/dist/{rpc-nYC3cR_u.js → rpc-aPyNi6tA.js} +7 -7
  287. package/dist/run-CNsApDpd.js +1 -0
  288. package/dist/run-DOfMtc9V.js +723 -0
  289. package/dist/run-ticket-BjhTOi6u.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-FO-Q8oj0.js} +16 -14
  293. package/dist/scan-BOI5tJ-6.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-DqCT4CgZ.js +453 -0
  303. package/dist/{server-types-DdqBwZN_.d.ts → server-types-BLd4MnBX.d.ts} +51 -68
  304. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  305. package/dist/{shared-1uhI-e-b.js → shared-CD11nBbC.js} +18 -8
  306. package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
  307. package/dist/signals-D3NcTKUS.js +32 -0
  308. package/dist/sink-BEZSlMS_.js +957 -0
  309. package/dist/sink-Bj_lDUDq.d.ts +225 -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-CXUWfsNy.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-DqK9eDmM.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-BV9j0DeZ.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-DLfUWFAI.js +1851 -0
  323. package/dist/ssf/index.d.ts +4 -4
  324. package/dist/ssf/index.js +384 -47
  325. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  326. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  327. package/dist/storage-C2bWdvJH.js +132 -0
  328. package/dist/{store-ILkLUj_o.js → store-4u_hxjWa.js} +40 -53
  329. package/dist/{store-options-CbUHDoSe.js → store-options-BqEakYRa.js} +26 -21
  330. package/dist/{stores-BHXdSbw9.js → stores-BbsD4fAR.js} +2 -2
  331. package/dist/{stores-Cxz_80g-.d.ts → stores-ClZUgeoP.d.ts} +7 -8
  332. package/dist/{stream-Dwsg6WwE.d.ts → stream-7-xmnf3U.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-9pqI57pW.js +92 -0
  342. package/dist/{supabase-C1TWlnYt.js → supabase-Dxlp8A94.js} +98 -205
  343. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  344. package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-DdDQhMlw.js} +951 -60
  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-7rJVLWe5.d.ts → types-5Ut_pbKy.d.ts} +61 -11
  376. package/dist/{store-9KO4BlkB.d.ts → types-BNORmDM8.d.ts} +100 -75
  377. package/dist/types-BjV-fqcA.d.ts +57 -0
  378. package/dist/{types-CUcFZfpU.d.ts → types-BqAKcRNW.d.ts} +2 -1
  379. package/dist/types-C8-KNsFf.d.ts +107 -0
  380. package/dist/{types-Br9IXUBG.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  381. package/dist/{types-DpWfQdSh.d.ts → types-CZTnPFzM.d.ts} +46 -11
  382. package/dist/{types-CqrjB9o6.d.ts → types-CdlxsYQh.d.ts} +23 -11
  383. package/dist/{types-CIlTojhq.d.ts → types-ClZaWzfb.d.ts} +9 -6
  384. package/dist/types-DX0LaKTb.d.ts +157 -0
  385. package/dist/types-DiQjupG2.d.ts +332 -0
  386. package/dist/types-DqzsnlSA.js +67 -0
  387. package/dist/types-_sHy8BQf.d.ts +65 -0
  388. package/dist/{types-ByUo56un.d.ts → types-fbZ7JEXr.d.ts} +23 -22
  389. package/dist/{types-DHrmBJLH.d.ts → types-tIgIeIKJ.d.ts} +7 -7
  390. package/dist/unplugin/index.d.ts +1 -1
  391. package/dist/unplugin/index.js +2 -2
  392. package/dist/usage-CHOtwL19.js +1 -0
  393. package/dist/usage-DHtE8j4E.js +32 -0
  394. package/dist/{usage-CG9nOYZw.js → usage-T5mXq98v.js} +54 -11
  395. package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-Bg5Tpluk.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-DbCL9bnB.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-D6lPdb4Z.d.ts} +65 -2
  403. package/dist/vue/index.d.ts +9 -10
  404. package/dist/vue/index.js +8 -8
  405. package/dist/waiter-BGUtGYoU.js +67 -0
  406. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  407. package/dist/watch-Cb-NcaUw.js +1 -0
  408. package/dist/{watch-zeucB7eF.js → watch-CszoTJMq.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-Dv-WTP-w.js +306 -0
  412. package/dist/who-can-D0QoYbEb.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-Bd1Tejur.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 +9 -8
  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 +5 -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/load-B_shHrmd.js +0 -2
  490. package/dist/manifest-BngWKryL.js +0 -770
  491. package/dist/may-use-BOn_dR_w.js +0 -78
  492. package/dist/openapi-DcQ1Kg40.js +0 -164
  493. package/dist/ownership-BgnbOJFT.js +0 -851
  494. package/dist/permdock-L26udHSk.js +0 -3646
  495. package/dist/powersync-BFSbSElQ.js +0 -62
  496. package/dist/powersync-DCDgZgfZ.js +0 -2
  497. package/dist/rls-55DQTuf5.js +0 -250
  498. package/dist/run-DMcNW_8T.js +0 -174
  499. package/dist/server-ZYEHtNHS.js +0 -268
  500. package/dist/sink-BTtmfPnE.js +0 -141
  501. package/dist/sink-CPN4zLfs.d.ts +0 -104
  502. package/dist/skills-Dle4ZoLF.js +0 -56
  503. package/dist/snapshot-Dc9CHPME.js +0 -1078
  504. package/dist/src-Bb7no-hS.js +0 -639
  505. package/dist/subject-C6dLxqHU.js +0 -24
  506. package/dist/supabase-Dbqr141s.js +0 -83
  507. package/dist/supabase-hook-BULg7Ut_.js +0 -2
  508. package/dist/thenable-QSmvt-vZ.js +0 -65
  509. package/dist/types-C0dee0Qf.d.ts +0 -197
  510. package/dist/types-DvupZE0w.d.ts +0 -9
  511. package/dist/usage-4G6t643F.js +0 -42
  512. package/dist/usage-iFLJ0-rr.js +0 -2
  513. package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
  514. package/dist/watch-C8TpsAl4.js +0 -2
@@ -1,7 +1,8 @@
1
- import { Dr as Membership, Mt as PermDockOptions, Or as Principal, Sr as CustomRole, Y as LimitStore, kr as Subject, tt as RelationSource, vr as Actor, wr as Delegation } from "../../policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "../../permission-types-Dg39z9Kv.js";
3
- import { a as SaasProject, c as saasPlans, i as SaasFolderSchema, l as saasRoles, n as SaasDocSchema, o as SaasProjectSchema, r as SaasFolder, s as saasPermissions, t as SaasDoc, u as saasTenantRoleNames } from "../../permissions-COH-KRgT.js";
4
- import { n as saasPolicy, t as SAAS_API_KEY_LIMIT } from "../../policy-ur0BBK_e.js";
1
+ import { $n as Delegation, Q as LimitStore, Rt as Instant, Zn as CustomRole, ir as Subject, it as RelationSource, nr as Membership, qn as Actor, rr as Principal } from "../../policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "../../vocabulary-D6lPdb4Z.js";
3
+ import { i as PermDockOptions } from "../../permdock-D7eeLJER.js";
4
+ import { a as SaasProject, c as saasPlans, i as SaasFolderSchema, l as saasRoles, n as SaasDocSchema, o as SaasProjectSchema, r as SaasFolder, s as saasPermissions, t as SaasDoc, u as saasTenantRoleNames } from "../../permissions-oEWfl-kl.js";
5
+ import { n as saasPolicy, t as SAAS_API_KEY_LIMIT } from "../../policy-Czo4n3Hs.js";
5
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
6
7
  //#region src/testing/saas/schema.d.ts
7
8
  type FieldKind = "string" | "boolean" | "nullable-string";
@@ -121,8 +122,8 @@ type SaasTokenOptions = {
121
122
  /** Claim memberships; `false` omits the claim (database mode). Defaults to the seed. */
122
123
  readonly memberships?: readonly Membership[] | false;
123
124
  readonly ttl?: number;
124
- /** Epoch seconds used for `iat`. */
125
- readonly now?: number;
125
+ /** The instant used for `iat`; defaults to the current time. */
126
+ readonly now?: Instant;
126
127
  readonly issuer?: string;
127
128
  readonly audience?: string;
128
129
  readonly claims?: Readonly<Record<string, unknown>>;
@@ -134,9 +135,9 @@ export declare function signSaasToken(sub: string, options?: SaasTokenOptions):
134
135
  * and returns its `sub`, or `null`; never throws. Identity only: memberships
135
136
  * and plans come from the seed, never from the token.
136
137
  */
137
- export declare function verifySaasToken(token: string | null | undefined, now?: number): Promise<string | null>;
138
+ export declare function verifySaasToken(token: string | null | undefined, now?: Instant): Promise<string | null>;
138
139
  /** `verifySaasToken` plus the token's `exp` as `expiresAt` (epoch seconds). */
139
- export declare function verifySaasSession(token: string | null | undefined, now?: number): Promise<{
140
+ export declare function verifySaasSession(token: string | null | undefined, at?: Instant): Promise<{
140
141
  readonly sub: string;
141
142
  readonly expiresAt: number;
142
143
  } | null>;
@@ -1,3 +1,3 @@
1
- import { a as saasPlans, c as rowSchema, i as saasPermissions, n as SaasFolderSchema, o as saasRoles, r as SaasProjectSchema, s as saasTenantRoleNames, t as SaasDocSchema } from "../../permissions-CCJ6lmxB.js";
2
- import { C as saasOrg, D as saasUsers, E as saasSeed, O as SAAS_API_KEY_LIMIT, S as saasMemberships, T as saasRelations, _ as verifySaasToken, a as saasProject, b as SAAS_EXPIRED_AT, c as saasUser, d as saasIssuer, f as saasJwks, g as verifySaasSession, h as signSaasToken, i as saasLimitStore, k as saasPolicy, l as SAAS_TOKEN_TTL_SECONDS, m as saasPublicJwk, n as saasFolder, o as saasScenarioOptions, p as saasPrivateJwk, r as saasFolderScenarios, s as saasScenarios, t as saasDoc, u as saasAudience, v as saasSchemaSql, w as saasPrincipal, x as saasCustomRoles, y as saasSeedSql } from "../../saas-DtaA4JuW.js";
1
+ import { a as saasPlans, c as rowSchema, i as saasPermissions, n as SaasFolderSchema, o as saasRoles, r as SaasProjectSchema, s as saasTenantRoleNames, t as SaasDocSchema } from "../../permissions-CZKiUfFM.js";
2
+ import { C as saasOrg, D as saasUsers, E as saasSeed, O as SAAS_API_KEY_LIMIT, S as saasMemberships, T as saasRelations, _ as verifySaasToken, a as saasProject, b as SAAS_EXPIRED_AT, c as saasUser, d as saasIssuer, f as saasJwks, g as verifySaasSession, h as signSaasToken, i as saasLimitStore, k as saasPolicy, l as SAAS_TOKEN_TTL_SECONDS, m as saasPublicJwk, n as saasFolder, o as saasScenarioOptions, p as saasPrivateJwk, r as saasFolderScenarios, s as saasScenarios, t as saasDoc, u as saasAudience, v as saasSchemaSql, w as saasPrincipal, x as saasCustomRoles, y as saasSeedSql } from "../../saas-FO-Q8oj0.js";
3
3
  export { SAAS_API_KEY_LIMIT, SAAS_EXPIRED_AT, SAAS_TOKEN_TTL_SECONDS, SaasDocSchema, SaasFolderSchema, SaasProjectSchema, rowSchema, saasAudience, saasCustomRoles, saasDoc, saasFolder, saasFolderScenarios, saasIssuer, saasJwks, saasLimitStore, saasMemberships, saasOrg, saasPermissions, saasPlans, saasPolicy, saasPrincipal, saasPrivateJwk, saasProject, saasPublicJwk, saasRelations, saasRoles, saasScenarioOptions, saasScenarios, saasSchemaSql, saasSeed, saasSeedSql, saasTenantRoleNames, saasUser, saasUsers, signSaasToken, verifySaasSession, verifySaasToken };
@@ -1,2 +1,2 @@
1
- import { a as SaasProject, c as saasPlans, i as SaasFolderSchema, l as saasRoles, n as SaasDocSchema, o as SaasProjectSchema, r as SaasFolder, s as saasPermissions, t as SaasDoc, u as saasTenantRoleNames } from "../../permissions-COH-KRgT.js";
1
+ import { a as SaasProject, c as saasPlans, i as SaasFolderSchema, l as saasRoles, n as SaasDocSchema, o as SaasProjectSchema, r as SaasFolder, s as saasPermissions, t as SaasDoc, u as saasTenantRoleNames } from "../../permissions-oEWfl-kl.js";
2
2
  export { SaasDoc, SaasDocSchema, SaasFolder, SaasFolderSchema, SaasProject, SaasProjectSchema, saasPermissions, saasPlans, saasRoles, saasTenantRoleNames };
@@ -1,2 +1 @@
1
- import { a as saasPlans, i as saasPermissions, n as SaasFolderSchema, o as saasRoles, r as SaasProjectSchema, s as saasTenantRoleNames, t as SaasDocSchema } from "../../permissions-CCJ6lmxB.js";
2
- export { SaasDocSchema, SaasFolderSchema, SaasProjectSchema, saasPermissions, saasPlans, saasRoles, saasTenantRoleNames };
1
+ export { t as SaasDocSchema, n as SaasFolderSchema, r as SaasProjectSchema, i as saasPermissions, a as saasPlans, o as saasRoles, s as saasTenantRoleNames } from "../../permissions-CZKiUfFM.js";
@@ -0,0 +1,8 @@
1
+ //#region src/cli/shared/text.ts
2
+ /** The text before the first `separator`, or all of it when there is none. */
3
+ function beforeFirst(text, separator) {
4
+ const at = text.indexOf(separator);
5
+ return at === -1 ? text : text.slice(0, at);
6
+ }
7
+ //#endregion
8
+ export { beforeFirst as t };
@@ -1,5 +1,5 @@
1
1
  import { createTwoFilesPatch } from "diff";
2
- //#region src/cli/text-diff.ts
2
+ //#region src/cli/core/text-diff.ts
3
3
  const MAX_LINES = 40;
4
4
  /**
5
5
  * A unified diff from the file on disk to what the command would write,
@@ -0,0 +1,31 @@
1
+ import { r as isRecord } from "./compact-CAf557ZB.js";
2
+ //#region src/core/thenable.ts
3
+ function isThenable(value) {
4
+ return value !== null && typeof value === "object" && "then" in value && typeof value.then === "function";
5
+ }
6
+ /** Settles a promise nobody awaits, so its rejection is not reported as unhandled. */
7
+ function ignoreRejection(value) {
8
+ Promise.resolve(value).then(void 0, () => void 0);
9
+ }
10
+ /** Runs a Standard Schema that must answer synchronously; an asynchronous answer fails. */
11
+ function validateSync(schema, value) {
12
+ const result = schema["~standard"].validate(value);
13
+ if (isThenable(result)) {
14
+ ignoreRejection(result);
15
+ return { ok: false };
16
+ }
17
+ return result.issues === void 0 ? {
18
+ ok: true,
19
+ value: result.value
20
+ } : {
21
+ ok: false,
22
+ issues: result.issues
23
+ };
24
+ }
25
+ /** `validateSync` for a schema whose output must be an object; anything else is `undefined`. */
26
+ function validateRecord(schema, value) {
27
+ const validated = validateSync(schema, value);
28
+ return validated.ok && isRecord(validated.value) ? validated.value : void 0;
29
+ }
30
+ //#endregion
31
+ export { validateSync as i, isThenable as n, validateRecord as r, ignoreRejection as t };
@@ -0,0 +1,71 @@
1
+ //#region src/core/time.ts
2
+ /** RFC 3339 `date-time` in UTC or with an offset; fractional seconds optional. */
3
+ const RFC3339_PATTERN = "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$";
4
+ const RFC3339 = /* @__PURE__ */ new RegExp(RFC3339_PATTERN, "u");
5
+ function isRfc3339(value) {
6
+ return typeof value === "string" && RFC3339.test(value) && Number.isFinite(Date.parse(value));
7
+ }
8
+ /** Seconds since the epoch as RFC 3339 in UTC. */
9
+ function rfc3339(seconds) {
10
+ return (/* @__PURE__ */ new Date(seconds * 1e3)).toISOString();
11
+ }
12
+ /** Milliseconds since the epoch as RFC 3339 in UTC, milliseconds kept; throws a `RangeError` for a value outside the `Date` range. */
13
+ function isoAt(millis) {
14
+ return new Date(millis).toISOString();
15
+ }
16
+ /** RFC 3339 in UTC of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
17
+ function isoNow(now) {
18
+ return dateAt(now).toISOString();
19
+ }
20
+ /** Whole seconds since the epoch of an RFC 3339 instant; `undefined` for anything else. */
21
+ function secondsOf(value) {
22
+ return isRfc3339(value) ? Math.floor(Date.parse(value) / 1e3) : void 0;
23
+ }
24
+ /** Whole seconds since the epoch of an RFC 3339 string or an `Instant`; `undefined` for anything else, Unix seconds included. */
25
+ function instantOf(value) {
26
+ if (typeof value === "string") return secondsOf(value);
27
+ if (typeof value === "object" && value !== null && "epochMilliseconds" in value && typeof value.epochMilliseconds === "number" && Number.isFinite(value.epochMilliseconds)) return Math.floor(value.epochMilliseconds / 1e3);
28
+ }
29
+ /** A duration: a whole number of seconds above zero, else `undefined`. */
30
+ function durationOf(value) {
31
+ return typeof value === "number" && Number.isSafeInteger(value) && value > 0 ? value : void 0;
32
+ }
33
+ /** Throws at definition time unless `value` is a whole number of seconds above zero. */
34
+ function assertDuration(value, label) {
35
+ if (durationOf(value) === void 0) throw new Error(`PermDock: ${label} must be a whole number of seconds above 0, got ${JSON.stringify(value) ?? String(value)}`);
36
+ }
37
+ /** Whole seconds since the epoch of `now`, or of the clock when absent. */
38
+ function nowSeconds(now) {
39
+ return Math.floor(nowMillis(now) / 1e3);
40
+ }
41
+ /** The `validation` denial detail for a `now` option that is not an `Instant`. */
42
+ const INVALID_NOW = Object.freeze({
43
+ field: "now",
44
+ message: "now must be an Instant ({ epochMilliseconds }), such as a Temporal.Instant"
45
+ });
46
+ /** The `Date` of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
47
+ function dateAt(now) {
48
+ const millis = nowMillis(now);
49
+ if (!Number.isFinite(millis)) throw new RangeError(`PermDock: ${INVALID_NOW.message}`);
50
+ return new Date(millis);
51
+ }
52
+ /** Whole seconds since the epoch of `now`, or of the clock when absent; throws a `RangeError` for a `now` that is not an `Instant`. */
53
+ function secondsAt(now) {
54
+ return Math.floor(dateAt(now).getTime() / 1e3);
55
+ }
56
+ /** The instant `seconds` after the epoch. */
57
+ function instantAt(seconds) {
58
+ return { epochMilliseconds: seconds * 1e3 };
59
+ }
60
+ /** Seconds since the epoch of `now`, fraction kept, or of the clock when absent. */
61
+ function epochSeconds(now) {
62
+ return nowMillis(now) / 1e3;
63
+ }
64
+ /** Milliseconds since the epoch of `now`, or of the clock when absent; `NaN` for a `now` that is not an `Instant`. */
65
+ function nowMillis(now) {
66
+ if (now === void 0) return Date.now();
67
+ const millis = typeof now === "object" && now !== null ? now.epochMilliseconds : void 0;
68
+ return typeof millis === "number" ? millis : NaN;
69
+ }
70
+ //#endregion
71
+ export { durationOf as a, instantOf as c, isoNow as d, nowMillis as f, secondsOf as g, secondsAt as h, dateAt as i, isRfc3339 as l, rfc3339 as m, RFC3339_PATTERN as n, epochSeconds as o, nowSeconds as p, assertDuration as r, instantAt as s, INVALID_NOW as t, isoAt as u };
@@ -1,5 +1,5 @@
1
- import { t as canonicalJson } from "./canonical-json-CFKyFOke.js";
2
- import { n as sha256, t as bytesToBase64Url } from "./sha256-BO0swRXL.js";
1
+ import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
2
+ import { r as sha256Digest } from "./sha256-D9ihqmvd.js";
3
3
  //#region src/core/token.ts
4
4
  /**
5
5
  * Only stable identity goes into the token, so refreshing a session (new
@@ -22,7 +22,16 @@ function versionOf(row, field) {
22
22
  }
23
23
  /** The digest that binds a token to the call's data when no row id does. */
24
24
  function payloadDigest(data) {
25
- return bytesToBase64Url(sha256(canonicalJson(data)));
25
+ return sha256Digest(canonicalJson(data));
26
+ }
27
+ /**
28
+ * The payload a decision token binds: the call's `args` when the caller
29
+ * passes them (an agent or MCP tool call, row or not), otherwise the data of
30
+ * a call without a row id. `undefined` binds nothing beyond the row id.
31
+ */
32
+ function tokenPayload(resourceId, data, args) {
33
+ if (args !== void 0) return payloadDigest(args);
34
+ return resourceId === "*" && data !== void 0 ? payloadDigest(data) : void 0;
26
35
  }
27
36
  /**
28
37
  * `version` is set only for an approval that goes stale on a resource
@@ -32,7 +41,7 @@ function payloadDigest(data) {
32
41
  * others.
33
42
  */
34
43
  function decisionToken(input) {
35
- const payload = JSON.stringify({
44
+ const payload = canonicalJson({
36
45
  key: input.key,
37
46
  resourceId: input.resourceId,
38
47
  principal: principalIdentity(input.principal),
@@ -44,7 +53,7 @@ function decisionToken(input) {
44
53
  ...input.version === void 0 ? {} : { version: input.version },
45
54
  ...input.payload === void 0 ? {} : { payload: input.payload }
46
55
  });
47
- return `pd1.${bytesToBase64Url(sha256(payload))}`;
56
+ return sha256Digest(payload);
48
57
  }
49
58
  //#endregion
50
- export { payloadDigest as n, versionOf as r, decisionToken as t };
59
+ export { versionOf as i, payloadDigest as n, tokenPayload as r, decisionToken as t };
@@ -1,5 +1,5 @@
1
- import { a as wireDenials } from "./problem-details-DECUnXAn.js";
2
- import { t as describe } from "./describe-Cgkp7eP0.js";
1
+ import { t as wireDenials } from "./wire-denial-C7PaVYEM.js";
2
+ import { t as describe } from "./describe-BybMRY7A.js";
3
3
  //#region src/core/tool-refusal.ts
4
4
  function deniedToolRefusal(decision, permission, resource) {
5
5
  const alternatives = decision.alternatives.map((leaf) => leaf.key);
@@ -1,9 +1,10 @@
1
- import { E as Policy, Or as Principal } from "../policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "../permission-types-Dg39z9Kv.js";
3
- import { n as RevocationFeed } from "../revocations-Cy06JNx2.js";
4
- import { A as ConnectionOptions, O as Connection, i as OpenApiHooks } from "../server-types-DdqBwZN_.js";
5
- import { t as ServerAdapterOptions } from "../bind-BzqG8SMb.js";
6
- import { t as StreamProtectOptions } from "../stream-Dwsg6WwE.js";
1
+ import { T as Policy, rr as Principal } from "../policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
+ import { r as PermDock } from "../permdock-D7eeLJER.js";
4
+ import { n as RevocationFeed } from "../revocations-R07lFBnX.js";
5
+ import { D as ConnectionOptions, T as Connection, i as OpenApiHooks } from "../server-types-BLd4MnBX.js";
6
+ import { t as ServerAdapterOptions } from "../bind--9EFVYWF.js";
7
+ import { t as StreamProtectOptions } from "../stream-7-xmnf3U.js";
7
8
  import { AnyTRPCMiddlewareFunction } from "@trpc/server";
8
9
  //#region src/trpc/create.d.ts
9
10
  type TrpcMiddlewareOpts<TCtx = object, TInput = unknown> = {
@@ -33,11 +34,13 @@ type TrpcOpenApiHooks = {
33
34
  readonly securitySchemes: OpenApiHooks["securitySchemes"];
34
35
  };
35
36
  type TrpcPermDock<TCtx = object> = {
36
- readonly permdock: () => TrpcMiddleware;
37
- readonly protect: (permission: Permission | null, loadData?: (opts: TrpcMiddlewareOpts<TCtx>) => unknown, protectOptions?: StreamProtectOptions) => TrpcMiddleware;
37
+ /** The `PermDock` for one procedure call, for code the middleware does not run before. */
38
+ readonly getPermDock: (opts: TrpcMiddlewareOpts<TCtx>) => Promise<PermDock>;
39
+ readonly middleware: () => TrpcMiddleware;
40
+ readonly protect: (permission: Permission | null, data?: (opts: TrpcMiddlewareOpts<TCtx>) => unknown, protectOptions?: StreamProtectOptions) => TrpcMiddleware;
38
41
  /** A long-lived connection for the request behind `ctx`. */
39
42
  readonly connection: (opts: TrpcMiddlewareOpts<TCtx>, connectionOptions?: ConnectionOptions) => Promise<Connection>;
40
- readonly permdockHandler: (request: Request) => Promise<Response>;
43
+ readonly permdockHandler: () => (request: Request) => Promise<Response>;
41
44
  readonly openapi: TrpcOpenApiHooks;
42
45
  readonly errorFormatter: <TShape extends {
43
46
  readonly data: object;
@@ -1,8 +1,8 @@
1
1
  import { o as problemMessage } from "../http-BBoKefeS.js";
2
- import { t as problemFromError } from "../map-error-BE27PYkE.js";
3
- import { n as attached } from "../bind-kk-uyCwH.js";
4
- import { a as reloadAfter, r as isAsyncIterable } from "../stream-BMui98KK.js";
5
- import { i as rpcCode, n as guardStream, r as problemBody, t as bindRpcKernel } from "../rpc-nYC3cR_u.js";
2
+ import { t as problemFromError } from "../map-error-TCAdw-eW.js";
3
+ import { n as attached } from "../bind-CZzhx-Vj.js";
4
+ import { i as isAsyncIterable, o as reloadAfter } from "../stream-CvdUS9V1.js";
5
+ import { i as rpcCode, n as guardStream, r as problemBody, t as bindRpcKernel } from "../rpc-aPyNi6tA.js";
6
6
  import { TRPCError, isTrackedEnvelope } from "@trpc/server";
7
7
  //#region src/trpc/create.ts
8
8
  const PROBLEM = Symbol.for("permdock.problem");
@@ -58,9 +58,10 @@ function errorFormatter(opts) {
58
58
  }
59
59
  function createPermDock(policy, options) {
60
60
  const { kernel, bind, attach, scopeOf, connection, evaluate, guard: runGuard } = bindRpcKernel(policy, options, "trpc", (opts) => opts.ctx, (opts) => opts.path);
61
- const permdock = () => (async (opts) => {
61
+ const getPermDock = async (opts) => kernel.getPermDock(bind(opts), await scopeOf(opts));
62
+ const middleware = () => (async (opts) => {
62
63
  const request = bind(opts);
63
- const instance = await attached(async () => kernel.permdock(request, await scopeOf(opts)));
64
+ const instance = await attached(async () => kernel.getPermDock(request, await scopeOf(opts)));
64
65
  if (!instance.ok) return throwTrpcError(instance.response);
65
66
  const nextCtx = {
66
67
  ...opts.ctx,
@@ -70,18 +71,18 @@ function createPermDock(policy, options) {
70
71
  return mapDownstream(await opts.next({ ctx: nextCtx }));
71
72
  });
72
73
  /** Wraps a subscription's iterable so revocation ends it and unreadable items drop. */
73
- const guardSubscription = async (result, opts, permission, loadData, protectOptions) => {
74
+ const guardSubscription = async (result, opts, permission, data, protectOptions) => {
74
75
  if (result === null || typeof result !== "object" || result.ok !== true || !isAsyncIterable(result.data)) return result;
75
76
  return {
76
77
  ...result,
77
- data: await guardStream(result.data, (connectionOptions) => connection(opts, connectionOptions), permission, loadData, protectOptions, {
78
+ data: await guardStream(result.data, (connectionOptions) => connection(opts, connectionOptions), permission, data, protectOptions, {
78
79
  unwrap: (item) => isTrackedEnvelope(item) ? item[1] : item,
79
80
  onRevoked: trpcErrorFrom
80
81
  })
81
82
  };
82
83
  };
83
- const protect = (permission, loadData, protectOptions) => (async (opts) => {
84
- const { request, guard } = await runGuard(permission, loadData, opts, protectOptions);
84
+ const protect = (permission, data, protectOptions) => (async (opts) => {
85
+ const { request, guard } = await runGuard(permission, data, opts, protectOptions);
85
86
  if (guard.ok) {
86
87
  const nextCtx = {
87
88
  ...opts.ctx,
@@ -89,11 +90,11 @@ function createPermDock(policy, options) {
89
90
  permdockData: guard.data
90
91
  };
91
92
  attach(nextCtx, request);
92
- return guardSubscription(await mapDownstream(await opts.next({ ctx: nextCtx })), opts, permission, loadData === void 0 ? void 0 : reloadAfter(guard.data, () => loadData(opts)), protectOptions);
93
+ return guardSubscription(await mapDownstream(await opts.next({ ctx: nextCtx })), opts, permission, data === void 0 ? void 0 : reloadAfter(guard.data, () => data(opts)), protectOptions);
93
94
  }
94
95
  return throwTrpcError(guard.response);
95
96
  });
96
- const permdockHandler = (request) => {
97
+ const handler = (request) => {
97
98
  return evaluate(request, {
98
99
  ctx: { req: request },
99
100
  path: "permdock",
@@ -103,10 +104,11 @@ function createPermDock(policy, options) {
103
104
  };
104
105
  const kernelOpenApi = kernel.openapi;
105
106
  return {
106
- permdock,
107
+ getPermDock,
108
+ middleware,
107
109
  protect,
108
110
  connection,
109
- permdockHandler,
111
+ permdockHandler: () => handler,
110
112
  openapi: {
111
113
  security: (permission) => ({ openapi: {
112
114
  protect: true,
@@ -1,5 +1,12 @@
1
- import { n as RoleThrough } from "./types-CqrjB9o6.js";
2
- import { o as SqlMembershipSource } from "./sources-Dljy06zL.js";
1
+ import { n as RoleThrough } from "./types-CdlxsYQh.js";
2
+ import { o as SqlMembershipSource } from "./sources-BV9j0DeZ.js";
3
+ //#region src/cli/core/errors.d.ts
4
+ /**
5
+ * 0 success, 1 failure, 2 usage, 3 action required, 130 interrupted (SIGINT
6
+ * or a cancelled prompt), 143 terminated (SIGTERM).
7
+ */
8
+ type ExitCode = 0 | 1 | 2 | 3 | 130 | 143;
9
+ //#endregion
3
10
  //#region src/cli/types.d.ts
4
11
  type CollectConfig = {
5
12
  readonly srcPath?: readonly string[];
@@ -88,7 +95,7 @@ type RlsConfig = {
88
95
  readonly dialect?: RlsDialect;
89
96
  readonly memberships?: RlsMemberships;
90
97
  /**
91
- * `database` mode: the `fromTable` / `fromJunction` sources the helpers
98
+ * `database` mode: the `tableMembershipSource` / `junctionMembershipSource` sources the helpers
92
99
  * read for every scope `memberships` maps no table for. Default
93
100
  * `supabase.hook.memberships`, so the helpers and the token hook run the
94
101
  * same SQL. Setting it selects `database` mode.
@@ -117,6 +124,13 @@ type RlsConfig = {
117
124
  /** Postgres type of each named scope's id column; overrides `tenantType` / `teamType`. */
118
125
  readonly scopeTypes?: Readonly<Record<string, string>>;
119
126
  readonly roleClaim?: string;
127
+ /**
128
+ * Role values the existing SQL compares against (a string literal or an
129
+ * enum label) and the PermDock role each one is. `rls import` writes the
130
+ * PermDock name for a mapped value; `rls migrate` filters a `role` helper by
131
+ * it. An unmapped value must already be a declared role.
132
+ */
133
+ readonly roleValues?: Readonly<Record<string, string>>;
120
134
  readonly gucPrefix?: string;
121
135
  readonly out?: string;
122
136
  /** `--target drizzle`: where each policy's `.link()` finds its table. */
@@ -218,7 +232,8 @@ type RlsConfig = {
218
232
  * Add the approval store `supabaseApprovalStore` reads and writes: the
219
233
  * `approval_requests` table and one function per `ApprovalStore` method, in
220
234
  * the helper schema, executable by no client role. Off by default. An
221
- * object adopts a table the app already has instead.
235
+ * object with `table` adopts a table the app already has instead, and
236
+ * `delegations: true` adds the out-of-office covers.
222
237
  */
223
238
  readonly approvals?: boolean | RlsApprovalsAdopt;
224
239
  /**
@@ -301,8 +316,15 @@ type RlsConfig = {
301
316
  * fields into the app's own columns on each write, converted to their types.
302
317
  */
303
318
  type RlsApprovalsAdopt = {
304
- /** `table` or `schema.table`. */
305
- readonly table: string;
319
+ /** `table` or `schema.table`. Without it the store is the generated `approval_requests`. */
320
+ readonly table?: string;
321
+ /**
322
+ * Add `approval_delegations`, the out-of-office covers a user writes for
323
+ * themselves, and the four-argument `permdock_is_approver` that answers for
324
+ * a delegate inside an active cover. `tableApprovalDelegationSource` reads
325
+ * the same rows for `approvalsHandler`. Off by default.
326
+ */
327
+ readonly delegations?: boolean;
306
328
  /** A text column unique per request. Default `token`. */
307
329
  readonly token?: string;
308
330
  /** A jsonb column holding the `ApprovalRequest`. Default `body`. */
@@ -432,6 +454,9 @@ type RlsActions = Readonly<Record<string, "select" | "insert" | "update" | "dele
432
454
  type RlsMigrateHelper = {
433
455
  readonly form: "ids" | "row" | "membership";
434
456
  readonly scope: string;
457
+ } | {
458
+ readonly form: "role";
459
+ readonly scope: string;
435
460
  } | {
436
461
  readonly form: "scoped";
437
462
  } | {
@@ -500,7 +525,7 @@ type RlsStorage = {
500
525
  };
501
526
  /** `permdock supabase hook generate` input. */
502
527
  type SupabaseHookConfig = {
503
- /** The same `fromTable` / `fromJunction` sources the app passes as `memberships`. */
528
+ /** The same `tableMembershipSource` / `junctionMembershipSource` sources the app passes as `memberships`. */
504
529
  readonly memberships: readonly SqlMembershipSource[];
505
530
  /** Schema of the hook and the version table. Default `rls.schema`, else `permdock`. */
506
531
  readonly schema?: string;
@@ -565,8 +590,21 @@ type SupabaseHookConfig = {
565
590
  readonly suspension?: RlsSuspension;
566
591
  readonly out?: string;
567
592
  };
593
+ /**
594
+ * How the project turns SQL into Supabase migrations: `'pg-delta'`
595
+ * (Declarative Schemas 2.0, `supabase db schema declarative sync`),
596
+ * `'migra'` (declarative schemas on `supabase db diff`) or `'migrations'`
597
+ * (hand-written migrations, no declarative schemas).
598
+ */
599
+ type SupabaseSchemas = "pg-delta" | "migra" | "migrations";
568
600
  type SupabaseConfig = {
569
601
  readonly hook?: SupabaseHookConfig;
602
+ /**
603
+ * The schema workflow `rls generate --split`, `supabase hook generate` and
604
+ * doctor follow. Default: `'migra'` when `supabase/config.toml` sets
605
+ * `[experimental.pgdelta] enabled = false`, else `'pg-delta'`.
606
+ */
607
+ readonly schemas?: SupabaseSchemas;
570
608
  };
571
609
  type DoctorConfig = {
572
610
  /**
@@ -578,7 +616,7 @@ type DoctorConfig = {
578
616
  readonly srcPath?: readonly string[];
579
617
  readonly sensitiveActions?: readonly string[];
580
618
  readonly memberships?: string;
581
- /** A JSON fixture `{ credentials?, settings? }` of API-key credentials and per-tenant settings (the `memorySettings` input) for PD029. */
619
+ /** A JSON fixture `{ credentials?, settings? }` of API-key credentials and per-tenant settings (the `memorySettingsSource` input) for PD029. */
582
620
  readonly credentials?: string;
583
621
  /** Globs or directories whose files are client entries for PD001, for frameworks with no `'use client'` convention. */
584
622
  readonly clientEntries?: readonly string[];
@@ -590,6 +628,8 @@ type DoctorConfig = {
590
628
  type PermDockConfig = {
591
629
  readonly permissions?: string;
592
630
  readonly policy?: string;
631
+ /** A module exporting the `defineOperations` map as `operations` or default; `collect` writes it to the catalog's `operations`. */
632
+ readonly operations?: string;
593
633
  readonly collect?: CollectConfig;
594
634
  readonly catalog?: CatalogConfig;
595
635
  readonly openapi?: {
@@ -608,7 +648,7 @@ type PowerSyncConfig = {
608
648
  readonly resources?: readonly string[];
609
649
  /** The action whose grants decide which rows sync; default `read`. */
610
650
  readonly action?: string;
611
- /** Where `generate` writes `localSnapshotManifest(policy)` as JSON for `localSnapshot` and `powersyncSource`; none by default. */
651
+ /** Where `generate` writes `localSnapshotManifest(policy)` as JSON for `localSnapshot` and `powerSyncSource`; none by default. */
612
652
  readonly manifest?: string;
613
653
  };
614
654
  type CliIo = {
@@ -617,13 +657,23 @@ type CliIo = {
617
657
  readonly now?: () => Date;
618
658
  readonly fetch?: typeof fetch;
619
659
  readonly env?: Readonly<Record<string, string | undefined>>;
620
- /** Styled human output; `--no-color` turns it off. Unset is plain. */
660
+ /** Styled stdout; `--no-color` turns it off. Unset is plain. */
621
661
  readonly color?: boolean;
662
+ /** Styled stderr, decided for that stream on its own. Unset is plain. */
663
+ readonly errColor?: boolean;
622
664
  /** A person at a terminal: commands may prompt. Unset never prompts. */
623
665
  readonly interactive?: boolean;
666
+ /** stdout is a terminal; agent detection reads it. Unset is a pipe. */
667
+ readonly stdoutIsTty?: boolean;
668
+ /** stderr is a terminal: progress draws a spinner. Unset prints lines. */
669
+ readonly stderrIsTty?: boolean;
670
+ /** Reads all of stdin, for `--*-stdin` secrets. Unset reads nothing. */
671
+ readonly readStdin?: () => Promise<string>;
672
+ /** Aborted on SIGINT or SIGTERM. */
673
+ readonly signal?: AbortSignal;
624
674
  };
625
675
  type RunResult = {
626
- readonly code: 0 | 1 | 2;
676
+ readonly code: ExitCode;
627
677
  readonly stdout: string;
628
678
  readonly stderr: string;
629
679
  };