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
@@ -0,0 +1,36 @@
1
+ import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
+ //#region src/core/wire-delegation.ts
3
+ function toWireDelegation(delegation) {
4
+ if (delegation === void 0) return;
5
+ return compact({
6
+ scope: delegation.scopes?.join(" "),
7
+ authorization_details: delegation.authorizationDetails,
8
+ access: delegation.access
9
+ });
10
+ }
11
+ function scopeList(value) {
12
+ if (typeof value !== "string") return;
13
+ return value.split(" ").filter((item) => item.length > 0);
14
+ }
15
+ /**
16
+ * The runtime `Delegation` of a wire delegation. A field of the wrong type
17
+ * becomes an empty scope list, so a malformed delegation narrows to nothing.
18
+ */
19
+ function fromWireDelegation(value) {
20
+ if (value === void 0) return;
21
+ if (!isRecord(value)) return { scopes: [] };
22
+ const scope = value["scope"];
23
+ const details = value["authorization_details"];
24
+ const access = value["access"];
25
+ if (scope !== void 0 && typeof scope !== "string" || details !== void 0 && !(Array.isArray(details) && details.every(isDetail)) || access !== void 0 && !Array.isArray(access)) return { scopes: [] };
26
+ return compact({
27
+ scopes: scopeList(scope),
28
+ authorizationDetails: details,
29
+ access
30
+ });
31
+ }
32
+ function isDetail(value) {
33
+ return isRecord(value) && typeof value["type"] === "string";
34
+ }
35
+ //#endregion
36
+ export { toWireDelegation as n, fromWireDelegation as t };
@@ -0,0 +1,27 @@
1
+ import { t as compact } from "./compact-CAf557ZB.js";
2
+ //#region src/core/wire-denial.ts
3
+ const IN_PROCESS = /* @__PURE__ */ new Set(["closure-error", "validation"]);
4
+ function jsonDetail(value) {
5
+ if (value === void 0 || value === null || value instanceof Error) return;
6
+ if (typeof value === "string" || typeof value === "boolean") return value;
7
+ if (typeof value === "number") return Number.isFinite(value) ? value : void 0;
8
+ if (typeof value !== "object") return;
9
+ try {
10
+ return JSON.parse(JSON.stringify(value));
11
+ } catch {
12
+ return;
13
+ }
14
+ }
15
+ function wireDenial(denial) {
16
+ return compact({
17
+ role: denial.role,
18
+ reason: denial.reason,
19
+ to: denial.to,
20
+ detail: IN_PROCESS.has(denial.reason) ? void 0 : jsonDetail(denial.detail)
21
+ });
22
+ }
23
+ function wireDenials(denials) {
24
+ return denials.map(wireDenial);
25
+ }
26
+ //#endregion
27
+ export { wireDenials as t };
@@ -0,0 +1,5 @@
1
+ import { a as AutomationSource, i as AutomationRequest, l as memoryAutomationSource, n as AutomationDecision, r as AutomationMode, s as MemoryAutomationSource, t as Automation, u as parseAutomation } from "../automation-BMZPIVUM.js";
2
+ import { i as pollingApprovalWaiter, n as ApprovalWaiter, r as PollingApprovalWaiterOptions, t as ApprovalWaitOptions } from "../waiter-CKy4MQSY.js";
3
+ import { a as WorkflowPermDockOptions, i as WorkflowPermDock, n as AwaitApprovalOptions, o as createPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-BFfm17UA.js";
4
+ import "../index-CaxrMD1A.js";
5
+ export { type ApprovalWaitOptions, type ApprovalWaiter, type Automation, type AutomationDecision, type AutomationMode, type AutomationOptions, type AutomationRequest, type AutomationSource, type AwaitApprovalOptions, type MemoryAutomationSource, type PollingApprovalWaiterOptions, type StartAutomationResult, type WorkflowPermDock, type WorkflowPermDockOptions, createPermDock, memoryAutomationSource, parseAutomation, pollingApprovalWaiter };
@@ -0,0 +1,223 @@
1
+ import { t as compact } from "../compact-CAf557ZB.js";
2
+ import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
+ import { n as findPermission } from "../permission-registry-Br4jSNVi.js";
4
+ import { n as isThenable } from "../thenable-yD7SabqG.js";
5
+ import { n as memoryAutomationSource, r as parseAutomation } from "../automation-DVjOckjV.js";
6
+ import { c as withApp, t as getPermDock } from "../permdock-B9JxkBwC.js";
7
+ import { o as automationEvent } from "../sink-BEZSlMS_.js";
8
+ import { a as requestApproval, s as resumeDecision } from "../helpers-DTcZOzhF.js";
9
+ import { n as signRunTicket, r as subjectFromRunTicket } from "../run-ticket-sxFI6LAk.js";
10
+ import { t as pollingApprovalWaiter } from "../waiter-BGUtGYoU.js";
11
+ //#region src/workflow/create.ts
12
+ function writeQuietly(sink, event) {
13
+ try {
14
+ const written = sink.write([event]);
15
+ if (isThenable(written)) Promise.resolve(written).catch(() => void 0);
16
+ } catch {}
17
+ }
18
+ const DEFAULT_TTL = 86400;
19
+ function deniedStart(reason, detail) {
20
+ return freezeDeep({
21
+ outcome: "denied",
22
+ denials: [compact({
23
+ role: null,
24
+ reason,
25
+ detail
26
+ })]
27
+ });
28
+ }
29
+ async function readAutomation(source, id, tenant) {
30
+ try {
31
+ const found = await source.automation(id, compact({ tenant }));
32
+ const parsed = found === null ? void 0 : parseAutomation(found);
33
+ return parsed === void 0 || parsed.revoked === true ? void 0 : parsed;
34
+ } catch {
35
+ return;
36
+ }
37
+ }
38
+ function idOf(row) {
39
+ if (row === null || typeof row !== "object") return;
40
+ const id = Reflect.get(row, "id");
41
+ return typeof id === "string" ? id : void 0;
42
+ }
43
+ function targetOf(permission, data, resource) {
44
+ return resource ?? compact({
45
+ type: permission.resource,
46
+ id: idOf(data)
47
+ });
48
+ }
49
+ /**
50
+ * Creates the PermDock for durable runs of published automations. A run
51
+ * acts as the automation's principal with that principal's rights at each
52
+ * step, narrowed to the automation's operations; the trigger is recorded
53
+ * and never grants.
54
+ */
55
+ function createPermDock(policy, given) {
56
+ const { signer, verifier, principals, automations, store: approvals, waiter, audience, issuer, expiresIn = DEFAULT_TTL, onAuth, ...permdockOptions } = withApp(policy, given);
57
+ const instanceFor = (subject) => getPermDock(policy, subject, permdockOptions);
58
+ const publisherCanAssign = async (automation) => {
59
+ const publisher = await principals.principal(automation.publishedBy, compact({ tenant: automation.tenant }));
60
+ if (publisher === null) return false;
61
+ const instance = await instanceFor({
62
+ principal: publisher,
63
+ context: {}
64
+ });
65
+ const roles = new Set(instance.assignableRoles(compact({ tenant: automation.tenant })).map((role) => role.key));
66
+ const ceiling = new Set(instance.assignablePermissions(compact({ tenant: automation.tenant })).map((leaf) => leaf.key));
67
+ return (automation.roles ?? []).every((role) => roles.has(role)) && automation.permissions.every((key) => ceiling.has(key));
68
+ };
69
+ const getPermDock$1 = async (ticket) => {
70
+ let current;
71
+ const tracked = { async automation(id, readOptions) {
72
+ current = await readAutomation(automations, id, readOptions?.tenant);
73
+ return current ?? null;
74
+ } };
75
+ const live = { async principal(id, readOptions) {
76
+ if (current === void 0) return principals.principal(id, readOptions);
77
+ if (id !== current.principal) return null;
78
+ if (current.mode === "publisher") return principals.principal(id, readOptions);
79
+ if (current.tenant === void 0 || !await publisherCanAssign(current)) return null;
80
+ return freezeDeep({
81
+ id: current.principal,
82
+ kind: "service",
83
+ tenant: current.tenant,
84
+ memberships: [{
85
+ tenant: current.tenant,
86
+ roles: current.roles ?? []
87
+ }]
88
+ });
89
+ } };
90
+ let subject;
91
+ try {
92
+ subject = await subjectFromRunTicket(ticket, compact({
93
+ verifier,
94
+ principals: live,
95
+ automations: tracked,
96
+ audience,
97
+ issuer,
98
+ onAuth
99
+ }));
100
+ } catch {
101
+ subject = {
102
+ principal: null,
103
+ context: {}
104
+ };
105
+ }
106
+ return instanceFor(subject);
107
+ };
108
+ const start = async (id, startOptions = {}) => {
109
+ const automation = await readAutomation(automations, id, startOptions.tenant);
110
+ if (automation === void 0) return deniedStart("validation", { cause: "automation-unavailable" });
111
+ const { caller } = startOptions;
112
+ if (caller !== void 0) {
113
+ const run = automation.run === void 0 ? void 0 : findPermission(policy.permissions, automation.run);
114
+ if (run === void 0) return deniedStart("no-grant", { permission: automation.run ?? null });
115
+ const decision = caller.decide(run, startOptions.row);
116
+ if (decision.outcome !== "granted") return freezeDeep({
117
+ outcome: "denied",
118
+ denials: decision.outcome === "denied" ? decision.denials : [{
119
+ role: null,
120
+ reason: "approval"
121
+ }]
122
+ });
123
+ }
124
+ const scopes = [];
125
+ for (const key of automation.permissions) {
126
+ const leaf = findPermission(policy.permissions, key);
127
+ if (leaf === void 0) return deniedStart("validation", { permission: key });
128
+ scopes.push(leaf.scope);
129
+ }
130
+ const runId = startOptions.id ?? globalThis.crypto.randomUUID();
131
+ const runAutomation = {
132
+ id: automation.id,
133
+ version: automation.version
134
+ };
135
+ const signed = await signRunTicket(compact({
136
+ principal: automation.principal,
137
+ kind: "automation",
138
+ actor: {
139
+ id: automation.id,
140
+ kind: "automation"
141
+ },
142
+ delegation: { scopes },
143
+ automation: runAutomation,
144
+ tenant: automation.tenant,
145
+ trigger: startOptions.trigger,
146
+ binding: startOptions.binding,
147
+ id: runId,
148
+ expiresIn
149
+ }), signer, compact({
150
+ audience,
151
+ now: startOptions.now
152
+ }));
153
+ if (permdockOptions.sink !== void 0) writeQuietly(permdockOptions.sink, automationEvent({
154
+ operation: "run",
155
+ automation,
156
+ run: runId
157
+ }));
158
+ return freezeDeep({
159
+ outcome: "started",
160
+ ticket: signed,
161
+ run: {
162
+ id: runId,
163
+ automation: runAutomation
164
+ }
165
+ });
166
+ };
167
+ const opened = async (ticket, permission, data, decideOptions) => {
168
+ const { resource, ttl, signal: _signal, ...rest } = decideOptions;
169
+ const first = await getPermDock$1(ticket);
170
+ const decision = first.decide(permission, data, rest);
171
+ if (decision.outcome !== "approval-required" || approvals === void 0) return { decision };
172
+ return {
173
+ decision,
174
+ expiresAt: (await requestApproval(approvals, decision, compact({
175
+ permission,
176
+ resource: targetOf(permission, data, resource),
177
+ subject: first.subject,
178
+ adapter: "workflow",
179
+ ttl
180
+ }))).expiresAt
181
+ };
182
+ };
183
+ const openApproval = async (ticket, permission, data, decideOptions = {}) => (await opened(ticket, permission, data, decideOptions)).decision;
184
+ const resumeApproval = async (ticket, permission, token, data, decideOptions = {}) => {
185
+ const { resource, ttl: _ttl, signal: _signal, ...rest } = decideOptions;
186
+ const run = await getPermDock$1(ticket);
187
+ const decision = run.decide(permission, data, rest);
188
+ if (approvals === void 0) return decision;
189
+ return resumeDecision({
190
+ decision,
191
+ permission,
192
+ subject: run.subject,
193
+ store: approvals,
194
+ resource: targetOf(permission, data, resource),
195
+ adapter: "workflow",
196
+ token
197
+ });
198
+ };
199
+ const awaitApproval = async (ticket, permission, data, decideOptions = {}) => {
200
+ if (waiter === void 0) {
201
+ const { resource: _resource, ttl: _ttl, signal: _signal, ...rest } = decideOptions;
202
+ return (await getPermDock$1(ticket)).decide(permission, data, rest);
203
+ }
204
+ const { decision, expiresAt } = await opened(ticket, permission, data, decideOptions);
205
+ if (decision.outcome !== "approval-required" || expiresAt === void 0) return decision;
206
+ try {
207
+ await waiter.wait(decision.token, compact({
208
+ expiresAt: { epochMilliseconds: Date.parse(expiresAt) },
209
+ signal: decideOptions.signal
210
+ }));
211
+ } catch {}
212
+ return resumeApproval(ticket, permission, decision.token, data, decideOptions);
213
+ };
214
+ return Object.freeze({
215
+ start,
216
+ getPermDock: getPermDock$1,
217
+ awaitApproval,
218
+ openApproval,
219
+ resumeApproval
220
+ });
221
+ }
222
+ //#endregion
223
+ export { createPermDock, memoryAutomationSource, parseAutomation, pollingApprovalWaiter };
@@ -0,0 +1,56 @@
1
+ import { Nn as Decision } 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 ApprovalWaiter } from "../waiter-CKy4MQSY.js";
5
+ import { i as WorkflowPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-BFfm17UA.js";
6
+ //#region src/workflow-sdk/index.d.ts
7
+ /** The part of a Workflow SDK `Hook` the waiter reads: awaiting it suspends the run. */
8
+ export type WorkflowSdkHook = {
9
+ readonly then: PromiseLike<unknown>["then"];
10
+ dispose(): void;
11
+ };
12
+ /** `createHook` from `workflow`; valid only inside a `"use workflow"` function. */
13
+ export type WorkflowSdkCreateHook = (options: {
14
+ readonly token: string;
15
+ }) => WorkflowSdkHook;
16
+ /** `resumeHook` from `workflow/api`. */
17
+ export type WorkflowSdkResumeHook = (token: string, payload: unknown) => Promise<unknown>;
18
+ /** `sleep` from `workflow`; valid only inside a `"use workflow"` function. */
19
+ export type WorkflowSdkSleep = (until: Date) => PromiseLike<unknown>;
20
+ /** `start` from `workflow/api`, with the workflow function and its arguments. */
21
+ export type WorkflowSdkStart<TArgs extends unknown[], TRun> = (workflow: (ticket: string, ...args: TArgs) => Promise<unknown>, args: [string, ...TArgs]) => Promise<TRun>;
22
+ export type WorkflowSdkWaiterOptions = {
23
+ readonly createHook: WorkflowSdkCreateHook;
24
+ readonly resumeHook: WorkflowSdkResumeHook;
25
+ /** With `sleep`, a wait ends at the request's `expiresAt`; without it, only a wake ends it. */
26
+ readonly sleep?: WorkflowSdkSleep;
27
+ };
28
+ /** The Workflow SDK hook token a run parks on while approval `token` is pending. */
29
+ export declare function approvalHookToken(token: string): string;
30
+ /**
31
+ * An `ApprovalWaiter` over Workflow SDK hooks. `wait` parks the run on a hook
32
+ * and must run inside the workflow function; `wake` resumes it from an
33
+ * approval handler. The hook carries no verdict: the run decides again from
34
+ * the approval store after it wakes.
35
+ */
36
+ export declare function workflowSdkWaiter(options: WorkflowSdkWaiterOptions): ApprovalWaiter;
37
+ export type StartAutomationRunResult<TRun> = (Extract<StartAutomationResult, {
38
+ readonly outcome: "started";
39
+ }> & {
40
+ readonly workflowRun: TRun;
41
+ }) | Extract<StartAutomationResult, {
42
+ readonly outcome: "denied";
43
+ }>;
44
+ /**
45
+ * Starts automation `id` and, when PermDock grants it, the Workflow SDK run
46
+ * that executes it, with the run ticket as the workflow's first argument. A
47
+ * denied start starts nothing.
48
+ */
49
+ export declare function startAutomation<TArgs extends unknown[], TRun>(workflow: Pick<WorkflowPermDock, "start">, start: WorkflowSdkStart<TArgs, TRun>, run: (ticket: string, ...args: TArgs) => Promise<unknown>, id: string, args: TArgs, options?: AutomationOptions): Promise<StartAutomationRunResult<TRun>>;
50
+ /**
51
+ * Resumes hook `token` with `payload` only when `caller` is granted
52
+ * `permission` on `row`. A token alone never resumes a run. A hook that is
53
+ * gone or a resume that throws denies with `validation`.
54
+ */
55
+ export declare function authorizeHook(resumeHook: WorkflowSdkResumeHook, caller: PermDock, permission: Permission, row: unknown, token: string, payload: unknown): Promise<Decision>;
56
+ //#endregion
@@ -0,0 +1,78 @@
1
+ import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
2
+ //#region src/workflow-sdk/index.ts
3
+ const HOOK_PREFIX = "permdock:approval:";
4
+ /** The Workflow SDK hook token a run parks on while approval `token` is pending. */
5
+ function approvalHookToken(token) {
6
+ return `${HOOK_PREFIX}${token}`;
7
+ }
8
+ /**
9
+ * An `ApprovalWaiter` over Workflow SDK hooks. `wait` parks the run on a hook
10
+ * and must run inside the workflow function; `wake` resumes it from an
11
+ * approval handler. The hook carries no verdict: the run decides again from
12
+ * the approval store after it wakes.
13
+ */
14
+ function workflowSdkWaiter(options) {
15
+ const { createHook, resumeHook, sleep } = options;
16
+ return Object.freeze({
17
+ async wait(token, waitOptions = {}) {
18
+ const hook = createHook({ token: approvalHookToken(token) });
19
+ try {
20
+ const expiresAt = waitOptions.expiresAt?.epochMilliseconds;
21
+ if (sleep === void 0 || expiresAt === void 0) {
22
+ await hook;
23
+ return;
24
+ }
25
+ await Promise.race([hook, sleep(new Date(expiresAt))]);
26
+ } finally {
27
+ hook.dispose();
28
+ }
29
+ },
30
+ async wake(token) {
31
+ try {
32
+ await resumeHook(approvalHookToken(token), { token });
33
+ } catch {}
34
+ }
35
+ });
36
+ }
37
+ /**
38
+ * Starts automation `id` and, when PermDock grants it, the Workflow SDK run
39
+ * that executes it, with the run ticket as the workflow's first argument. A
40
+ * denied start starts nothing.
41
+ */
42
+ async function startAutomation(workflow, start, run, id, args, options) {
43
+ const started = await workflow.start(id, options);
44
+ if (started.outcome !== "started") return started;
45
+ const workflowRun = await start(run, [started.ticket, ...args]);
46
+ return Object.freeze({
47
+ ...started,
48
+ workflowRun
49
+ });
50
+ }
51
+ function hookDenied() {
52
+ return freezeDeep({
53
+ outcome: "denied",
54
+ denials: [{
55
+ role: null,
56
+ reason: "validation",
57
+ detail: { cause: "hook-unavailable" }
58
+ }],
59
+ alternatives: []
60
+ });
61
+ }
62
+ /**
63
+ * Resumes hook `token` with `payload` only when `caller` is granted
64
+ * `permission` on `row`. A token alone never resumes a run. A hook that is
65
+ * gone or a resume that throws denies with `validation`.
66
+ */
67
+ async function authorizeHook(resumeHook, caller, permission, row, token, payload) {
68
+ const decision = caller.decide(permission, row);
69
+ if (decision.outcome !== "granted") return decision;
70
+ try {
71
+ await resumeHook(token, payload);
72
+ } catch {
73
+ return hookDenied();
74
+ }
75
+ return decision;
76
+ }
77
+ //#endregion
78
+ export { approvalHookToken, authorizeHook, startAutomation, workflowSdkWaiter };
@@ -1,4 +1,5 @@
1
- import { j as PolicyVocabulary, jt as PermDock } from "./policy-types-sp9P1iIV.js";
1
+ import { j as PolicyVocabulary } from "./policy-types-DzwivBgR.js";
2
+ import { r as PermDock } from "./permdock-D7eeLJER.js";
2
3
  //#region src/core/wrap.d.ts
3
4
  /** A wrapper an adapter applies to each instance it builds, as `withOtel` does. */
4
5
  type PermDockWrap = <V extends PolicyVocabulary>(permdock: PermDock<V>) => PermDock<V>;
@@ -1,3 +1,4 @@
1
+ import { n as internalsOf, t as attachInternals } from "./internals-Dk8A8fX3.js";
1
2
  //#region src/core/wrap.ts
2
3
  /**
3
4
  * A frozen copy of `permdock` with the members `overrides` returns replaced.
@@ -6,16 +7,16 @@
6
7
  */
7
8
  function wrapPermDock(permdock, overrides) {
8
9
  const wrap = (next) => wrapPermDock(next, overrides);
9
- return Object.freeze({
10
+ const wrapped = {
10
11
  ...permdock,
11
12
  ...overrides(permdock),
12
13
  tenant: (id) => wrap(permdock.tenant(id)),
13
14
  team: (id) => wrap(permdock.team(id)),
14
- derive: (options) => {
15
- const derived = permdock.derive(options);
16
- return derived instanceof Promise ? derived.then(wrap) : wrap(derived);
17
- }
18
- });
15
+ derive: async (options) => wrap(await permdock.derive(options))
16
+ };
17
+ const internals = internalsOf(permdock);
18
+ if (internals !== void 0) attachInternals(wrapped, internals);
19
+ return Object.freeze(wrapped);
19
20
  }
20
21
  /** `otel`, then `wrap`. */
21
22
  function composeWraps(otel, wrap) {