permdock 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/README.md +37 -35
  2. package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
  3. package/dist/a2a/index.d.ts +6 -6
  4. package/dist/a2a/index.js +14 -17
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-DCYe60Pi.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -35
  10. package/dist/ai-sdk/index.js +37 -23
  11. package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-DvSSPQJX.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-p1PGoVjb.js +995 -0
  18. package/dist/arazzo-41WuzHou.js +36 -0
  19. package/dist/{arazzo-C4BcskbX.js → arazzo-CaUVBn7D.js} +20 -14
  20. package/dist/args-IIolxxKA.js +197 -0
  21. package/dist/astro/index.d.ts +43 -0
  22. package/dist/astro/index.js +27 -0
  23. package/dist/audience-DabClFLQ.js +55 -0
  24. package/dist/auth-DRLEizbL.js +178 -0
  25. package/dist/authzen/index.d.ts +26 -6
  26. package/dist/authzen/index.js +94 -79
  27. package/dist/automation-BNM3TtDo.d.ts +114 -0
  28. package/dist/automation-DVjOckjV.js +157 -0
  29. package/dist/better-auth/index.d.ts +8 -6
  30. package/dist/better-auth/index.js +9 -8
  31. package/dist/better-supabase/index.d.ts +357 -30
  32. package/dist/better-supabase/index.js +936 -194
  33. package/dist/{bind-kk-uyCwH.js → bind-CAvgUuKs.js} +14 -10
  34. package/dist/{bind-BzqG8SMb.d.ts → bind-DOyrv6zi.d.ts} +12 -10
  35. package/dist/body-CH5of8Ne.js +10 -0
  36. package/dist/body-text-QcXok_SI.js +52 -0
  37. package/dist/{build-instance-DIIV9DbC.js → build-instance-Bu_eDqYw.js} +4 -3
  38. package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
  39. package/dist/{capability-CksyCWDH.d.ts → capability-Drg-1YhL.d.ts} +44 -25
  40. package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
  41. package/dist/casbin-Cr7RLtA3.js +30 -0
  42. package/dist/casbin-Dyu2gnUD.js +234 -0
  43. package/dist/casl-64gpT-8x.js +24 -0
  44. package/dist/casl-DjEDhTCP.js +299 -0
  45. package/dist/catalog/index.d.ts +74 -2
  46. package/dist/catalog/index.js +51 -2
  47. package/dist/catalog-BoWglDPI.js +1 -0
  48. package/dist/catalog-DZVbrF-z.js +52 -0
  49. package/dist/{catalog-tZUyOfOv.js → catalog-HD2gf5mY.js} +51 -6
  50. package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-Cdn7-0pQ.js} +45 -23
  51. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  52. package/dist/chat/index.d.ts +2 -0
  53. package/dist/chat/index.js +224 -0
  54. package/dist/chat-sdk/index.d.ts +87 -0
  55. package/dist/chat-sdk/index.js +197 -0
  56. package/dist/claims-map-7oQ3ue4X.js +13 -0
  57. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  58. package/dist/claude-agent/index.d.ts +7 -14
  59. package/dist/claude-agent/index.js +24 -27
  60. package/dist/clerk/index.d.ts +9 -8
  61. package/dist/clerk/index.js +9 -14
  62. package/dist/cli/bin.js +36 -17
  63. package/dist/cli/index.d.ts +19 -5
  64. package/dist/cli/index.js +164 -4
  65. package/dist/cloud/index.d.ts +102 -63
  66. package/dist/cloud/index.js +239 -340
  67. package/dist/cloud-ytQ3uviA.js +87 -0
  68. package/dist/codemod-5mpSpnUY.js +37 -0
  69. package/dist/codemod-ua2hHy7w.js +2084 -0
  70. package/dist/collect-Ci6akVwH.js +55 -0
  71. package/dist/collect-D7eQDffE.js +1 -0
  72. package/dist/{collect-2SrB7lfk.js → collect-mLTY4nwb.js} +75 -11
  73. package/dist/command-L8EstFNm.js +6 -0
  74. package/dist/compile/index.d.ts +1 -1
  75. package/dist/compile/index.js +1 -2
  76. package/dist/{compile-CtTP7eur.d.ts → compile-1bsAezL0.d.ts} +5 -3
  77. package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
  78. package/dist/completion-BTFrHZhX.js +143 -0
  79. package/dist/config-Bj2Ixq3d.js +26 -0
  80. package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
  81. package/dist/{config-report--Xb9APJS.js → config-report-DSpsLpCE.js} +15 -5
  82. package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
  83. package/dist/{context-DieZVJXu.js → context-B_u3_bDJ.js} +2 -2
  84. package/dist/convex/index.d.ts +11 -10
  85. package/dist/convex/index.js +6 -4
  86. package/dist/create-B30OMUOJ.d.ts +107 -0
  87. package/dist/create-CBMmFie-.d.ts +138 -0
  88. package/dist/create-CGm28gyI.js +130 -0
  89. package/dist/create-CQWIpUG-.js +403 -0
  90. package/dist/{create-BBO24vj6.js → create-DCF2SvoT.js} +31 -32
  91. package/dist/create-D_NmPOdH.d.ts +110 -0
  92. package/dist/{credential-kue0qpbm.js → credential-BcoiejpY.js} +152 -31
  93. package/dist/credentials-DPyHmYz5.js +74 -0
  94. package/dist/delegation-j6-rc37o.js +286 -0
  95. package/dist/delivery/index.d.ts +5 -0
  96. package/dist/delivery/index.js +5 -0
  97. package/dist/delivery-DCAgNyCn.js +499 -0
  98. package/dist/delivery-event-xX4obB8F.js +40 -0
  99. package/dist/{denied-text-DfRk15uw.d.ts → denied-text-CiFQNuMV.d.ts} +5 -5
  100. package/dist/{describe-C3ldA9os.d.ts → describe-B5qgDvEW.d.ts} +2 -2
  101. package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
  102. package/dist/device-BARQ8eYG.js +193 -0
  103. package/dist/{diff-rpqoe7Ag.js → diff-3jbx6Rm4.js} +60 -54
  104. package/dist/diff-CmuSD3vc.js +37 -0
  105. package/dist/doctor-3ZqNHX_G.js +44 -0
  106. package/dist/{doctor-owlv6ddh.js → doctor-BdZw53-k.js} +245 -50
  107. package/dist/drizzle/index.d.ts +5 -3
  108. package/dist/drizzle/index.js +2 -2
  109. package/dist/elysia/index.d.ts +16 -13
  110. package/dist/elysia/index.js +13 -12
  111. package/dist/env-DJZrPjRi.js +8 -0
  112. package/dist/errors-BDUwg2qC.js +27 -0
  113. package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
  114. package/dist/errors-BWXBMaKK.d.ts +11 -0
  115. package/dist/errors-CWTY6uih.js +143 -0
  116. package/dist/{errors-OD_4c__H.d.ts → errors-DH5QEGXh.d.ts} +2 -2
  117. package/dist/evaluate-CNClBvcj.js +1785 -0
  118. package/dist/evaluations-C_1vdSZc.d.ts +32 -0
  119. package/dist/{evaluations-C9YJsv3H.js → evaluations-beAooV0n.js} +145 -34
  120. package/dist/eve/index.d.ts +12 -16
  121. package/dist/eve/index.js +22 -28
  122. package/dist/event-time-CsegxXxB.js +23 -0
  123. package/dist/expiry-D4_YKRKD.js +52 -0
  124. package/dist/express/index.d.ts +13 -10
  125. package/dist/express/index.js +12 -11
  126. package/dist/fastify/index.d.ts +25 -22
  127. package/dist/fastify/index.js +13 -12
  128. package/dist/fetch-adapter-DD_gfmrC.js +120 -0
  129. package/dist/fetch-adapter-Dw0MTS3D.d.ts +31 -0
  130. package/dist/fields-OYG_JR78.js +203 -0
  131. package/dist/files-C5ZI27eV.js +124 -0
  132. package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
  133. package/dist/flags-C3DktBDY.js +86 -0
  134. package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-CTCMsFZk.js} +55 -52
  135. package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
  136. package/dist/{grantee-CXY-0C87.js → grantee-hxrUsbpM.js} +16 -6
  137. package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DbENBHLB.js} +5 -4
  138. package/dist/h3/index.d.ts +37 -0
  139. package/dist/h3/index.js +35 -0
  140. package/dist/headers-BIjfMaoC.js +8 -0
  141. package/dist/headers-CIbDTUTK.d.ts +7 -0
  142. package/dist/{helpers-C9YmyBIa.js → helpers-CBYVMjwh.js} +45 -38
  143. package/dist/hono/index.d.ts +12 -9
  144. package/dist/hono/index.js +13 -12
  145. package/dist/hosted-B46-5LYE.js +315 -0
  146. package/dist/hosted-BPk51-kX.d.ts +78 -0
  147. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  148. package/dist/http-DXJ37RDA.js +46 -0
  149. package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
  150. package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
  151. package/dist/{import-BFIlhetD.js → import-wyqXUyjm.js} +190 -53
  152. package/dist/index-B8YjkEZ4.d.ts +210 -0
  153. package/dist/index-C-6Letxg.d.ts +431 -0
  154. package/dist/index-CaxrMD1A.d.ts +1 -0
  155. package/dist/{index-BwMe94Xq.d.ts → index-Ch8LpNDp.d.ts} +34 -16
  156. package/dist/index-Cp_ilKi1.d.ts +91 -0
  157. package/dist/index-CueFnxQc.d.ts +110 -0
  158. package/dist/index-DuWxc5dt.d.ts +909 -0
  159. package/dist/index.d.ts +19 -15
  160. package/dist/index.js +31 -21
  161. package/dist/init-DeMYsnYJ.js +96 -0
  162. package/dist/init-GG6Jh8HD.js +95 -0
  163. package/dist/{instance-options-plkrsAog.d.ts → instance-options-BsVpyGIk.d.ts} +2 -2
  164. package/dist/instance-snapshot-BOEhcqIF.js +601 -0
  165. package/dist/instant-BluqDvyS.js +19 -0
  166. package/dist/internals-Dk8A8fX3.js +17 -0
  167. package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
  168. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  169. package/dist/jwt/index.d.ts +18 -11
  170. package/dist/jwt/index.js +156 -135
  171. package/dist/{kernel-CB3LrIJM.js → kernel-D0NVb1cK.js} +52 -24
  172. package/dist/kysely/index.d.ts +5 -3
  173. package/dist/kysely/index.js +2 -2
  174. package/dist/load-BxEtwlBS.js +1 -0
  175. package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
  176. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  177. package/dist/login-Dfe5RlYk.js +68 -0
  178. package/dist/login-imhuwvn3.js +254 -0
  179. package/dist/manifest-C8IzW3Do.js +42 -0
  180. package/dist/manifest-dvL2XEe1.js +370 -0
  181. package/dist/manifest-json-CAGzls-C.js +9 -0
  182. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  183. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  184. package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
  185. package/dist/{map-error-BE27PYkE.js → map-error-Dr70oA_3.js} +3 -3
  186. package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
  187. package/dist/mcp/index.d.ts +22 -12
  188. package/dist/mcp/index.js +57 -39
  189. package/dist/{migrate-BwlB5-Wk.js → migrate-CIq4-E9F.js} +53 -14
  190. package/dist/nest/index.d.ts +12 -9
  191. package/dist/nest/index.js +15 -14
  192. package/dist/next/index.d.ts +18 -21
  193. package/dist/next/index.js +13 -11
  194. package/dist/next/plugin.d.ts +1 -1
  195. package/dist/next/plugin.js +2 -2
  196. package/dist/node/index.d.ts +10 -10
  197. package/dist/node/index.js +7 -9
  198. package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
  199. package/dist/openai/index.d.ts +9 -16
  200. package/dist/openai/index.js +17 -24
  201. package/dist/openapi/index.d.ts +3 -3
  202. package/dist/openapi/index.js +1 -1
  203. package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
  204. package/dist/openapi-C4dDTVEd.js +138 -0
  205. package/dist/{openapi-BJdBmYDG.js → openapi-DD1SV-5-.js} +10 -9
  206. package/dist/operation-findings-DgATDpvh.js +36 -0
  207. package/dist/operations-X0VM7F3m.d.ts +59 -0
  208. package/dist/orpc/index.d.ts +13 -10
  209. package/dist/orpc/index.js +20 -15
  210. package/dist/otel/index.d.ts +3 -2
  211. package/dist/otel/index.js +30 -7
  212. package/dist/output-1im__-08.js +88 -0
  213. package/dist/output-files-B3IZJksC.js +1 -0
  214. package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
  215. package/dist/{permission-keys-B26jeyUv.js → ownership-DqaJNJPn.js} +1045 -153
  216. package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
  217. package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
  218. package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-5ODwqu8b.d.ts} +1 -1
  219. package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
  220. package/dist/parse-request-D_tUXG6M.js +26 -0
  221. package/dist/paths-DXSHAMIa.js +42 -0
  222. package/dist/pdp/index.d.ts +7 -3
  223. package/dist/pdp/index.js +45 -26
  224. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  225. package/dist/peer-CRvC7Hg1.js +1 -0
  226. package/dist/permdock-BrAscV28.js +868 -0
  227. package/dist/permdock-SV8ZINYT.d.ts +502 -0
  228. package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
  229. package/dist/permissions-B-wCP5ZC.js +30 -0
  230. package/dist/{permissions-CCJ6lmxB.js → permissions-BPxlwVhN.js} +4 -3
  231. package/dist/{permissions-COH-KRgT.d.ts → permissions-u_KHg-sN.d.ts} +1 -2
  232. package/dist/policies-DP2nqRoF.js +295 -0
  233. package/dist/{policy-ur0BBK_e.d.ts → policy-77FSAq_V.d.ts} +2 -2
  234. package/dist/{hosted-CBHgkzDl.js → policy-DbM5YYtV.js} +17 -273
  235. package/dist/policy-from-catalog-C2gMa2Dj.js +450 -0
  236. package/dist/policy-module-CTlwMvLI.js +89 -0
  237. package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-n0uRTsW8.d.ts} +460 -632
  238. package/dist/postgrest-CEgRbefE.d.ts +100 -0
  239. package/dist/postgrest-DAjUkF9w.js +575 -0
  240. package/dist/{powersync-cZe4kzhL.js → powersync-BkWWCS1K.js} +23 -24
  241. package/dist/powersync-DISt6SUe.js +62 -0
  242. package/dist/powersync-MMJ2mI2q.js +1 -0
  243. package/dist/preset/index.d.ts +146 -0
  244. package/dist/preset/index.js +1 -0
  245. package/dist/preset-DZdU0tne.js +1768 -0
  246. package/dist/principal-source-pHneukrx.js +103 -0
  247. package/dist/prisma/index.d.ts +6 -3
  248. package/dist/prisma/index.js +2 -2
  249. package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
  250. package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-B45V5d2b.d.ts} +1 -1
  251. package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
  252. package/dist/problem-types-CJ2325SZ.js +5 -0
  253. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  254. package/dist/{protected-BN7BUdY1.js → protected-BlF0F6wL.js} +21 -4
  255. package/dist/{protected-B3_P7xuw.d.ts → protected-RFGpakN9.d.ts} +16 -8
  256. package/dist/{provider-Bi-0HNL3.js → provider-B1al-AZz.js} +2 -2
  257. package/dist/{provider-kwHC9CZD.d.ts → provider-DILL9oPK.d.ts} +1 -1
  258. package/dist/{provider-store-Ctt-81Ni.js → provider-store-DM6DNcta.js} +2 -2
  259. package/dist/pull-CvpINcMK.js +1 -0
  260. package/dist/pull-jEwbf80J.js +256 -0
  261. package/dist/push-BD4f15co.js +116 -0
  262. package/dist/pushed-policy-CqtxkV4G.js +238 -0
  263. package/dist/pushed-policy-DCW91KQU.d.ts +57 -0
  264. package/dist/react/index.d.ts +8 -8
  265. package/dist/react/index.js +6 -6
  266. package/dist/react/provider-client.d.ts +1 -1
  267. package/dist/react/provider-client.js +1 -2
  268. package/dist/react-native/index.d.ts +24 -72
  269. package/dist/react-native/index.js +29 -25
  270. package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
  271. package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
  272. package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
  273. package/dist/renames-CGj7YwcQ.js +175 -0
  274. package/dist/{replay-COpmZUfx.d.ts → replay-Bkm-Ne4l.d.ts} +1 -1
  275. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  276. package/dist/{request-context-BVM7aWNs.js → request-context-C81Pip9n.js} +3 -3
  277. package/dist/request-schema-CMreVuFM.js +148 -0
  278. package/dist/resend/index.d.ts +126 -0
  279. package/dist/resend/index.js +379 -0
  280. package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
  281. package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
  282. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  283. package/dist/rls-BAqP4q66.js +336 -0
  284. package/dist/{rls-BEktUaqg.js → rls-DTvYd-lI.js} +288 -690
  285. package/dist/{role-builder-B4GbKM-i.js → role-builder-uWQZ4v84.js} +14 -207
  286. package/dist/{rpc-nYC3cR_u.js → rpc-VSl5ylaQ.js} +7 -7
  287. package/dist/run-CUKuz0A8.js +723 -0
  288. package/dist/run-DDwUaJDU.js +1 -0
  289. package/dist/run-ticket-DocwaTKn.d.ts +124 -0
  290. package/dist/run-ticket-sxFI6LAk.js +337 -0
  291. package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
  292. package/dist/{saas-DtaA4JuW.js → saas-BCXRuXca.js} +16 -14
  293. package/dist/scan-qvOe0hS3.js +29 -0
  294. package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
  295. package/dist/schema-yLuBWWsh.js +130 -0
  296. package/dist/scim/index.d.ts +2 -2
  297. package/dist/scim/index.js +1 -2
  298. package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
  299. package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
  300. package/dist/server/index.d.ts +12 -143
  301. package/dist/server/index.js +12 -9
  302. package/dist/server-C3WXAHZj.js +453 -0
  303. package/dist/{server-types-DdqBwZN_.d.ts → server-types-CKQiCnON.d.ts} +51 -68
  304. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  305. package/dist/{shared-1uhI-e-b.js → shared-BAK8t4Uo.js} +20 -9
  306. package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
  307. package/dist/signals-D3NcTKUS.js +32 -0
  308. package/dist/sink-4-eQIRWf.d.ts +225 -0
  309. package/dist/sink-BEZSlMS_.js +957 -0
  310. package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
  311. package/dist/skills-CTYwkl44.js +51 -0
  312. package/dist/snapshot-B7DkYg6g.js +269 -0
  313. package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  314. package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-PXI-vGpY.d.ts} +7 -5
  315. package/dist/solid/index.d.ts +11 -12
  316. package/dist/solid/index.js +7 -7
  317. package/dist/solid-start/index.d.ts +52 -0
  318. package/dist/solid-start/index.js +49 -0
  319. package/dist/{sources-Dljy06zL.d.ts → sources-Xc4zkszI.d.ts} +7 -13
  320. package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
  321. package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
  322. package/dist/src-Cu2m75uo.js +1860 -0
  323. package/dist/ssf/index.d.ts +4 -4
  324. package/dist/ssf/index.js +384 -47
  325. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  326. package/dist/standard-webhooks-rbD7LS6h.d.ts +88 -0
  327. package/dist/storage-C2bWdvJH.js +132 -0
  328. package/dist/{store-ILkLUj_o.js → store-BDutJkDL.js} +40 -53
  329. package/dist/{store-options-CbUHDoSe.js → store-options-u0ycEe8s.js} +26 -21
  330. package/dist/{stores-Cxz_80g-.d.ts → stores-BUGNbJTt.d.ts} +7 -8
  331. package/dist/{stores-BHXdSbw9.js → stores-CGhM8BN_.js} +2 -2
  332. package/dist/{stream-Dwsg6WwE.d.ts → stream-CeCMJmBB.d.ts} +2 -2
  333. package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
  334. package/dist/style-DiKWnAvn.js +1 -0
  335. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  336. package/dist/subject-BGoM5o8B.js +17 -0
  337. package/dist/supabase/index.d.ts +23 -106
  338. package/dist/supabase/index.js +5 -4
  339. package/dist/supabase/middleware.d.ts +7 -6
  340. package/dist/supabase/middleware.js +13 -11
  341. package/dist/supabase-By_frk3U.js +92 -0
  342. package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-BMoEhZir.js} +960 -64
  343. package/dist/supabase-hook-CCw5m35C.js +1 -0
  344. package/dist/{supabase-C1TWlnYt.js → supabase-x5JtR2tc.js} +99 -206
  345. package/dist/support-session-C6xJQYut.js +158 -0
  346. package/dist/svelte/Protected.svelte +4 -4
  347. package/dist/svelte/index.d.ts +7 -7
  348. package/dist/svelte/index.js +10 -10
  349. package/dist/svelte/runtime.d.ts +3 -3
  350. package/dist/svelte/runtime.js +3 -3
  351. package/dist/svelte/source.d.ts +7 -7
  352. package/dist/svelte/source.js +4 -4
  353. package/dist/sveltekit/index.d.ts +51 -0
  354. package/dist/sveltekit/index.js +27 -0
  355. package/dist/tanstack-start/index.d.ts +51 -0
  356. package/dist/tanstack-start/index.js +40 -0
  357. package/dist/target-Bw37TFNA.js +51 -0
  358. package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
  359. package/dist/terminal/index.d.ts +11 -9
  360. package/dist/terminal/index.js +23 -287
  361. package/dist/testing/index.d.ts +311 -38
  362. package/dist/testing/index.js +3475 -201
  363. package/dist/testing/saas/index.d.ts +9 -8
  364. package/dist/testing/saas/index.js +2 -2
  365. package/dist/testing/saas/permissions.d.ts +1 -1
  366. package/dist/testing/saas/permissions.js +1 -2
  367. package/dist/text-BMFRfBqc.js +8 -0
  368. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  369. package/dist/thenable-yD7SabqG.js +31 -0
  370. package/dist/time-DkWjdL98.js +71 -0
  371. package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
  372. package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
  373. package/dist/trpc/index.d.ts +12 -9
  374. package/dist/trpc/index.js +16 -14
  375. package/dist/types-8RnwUAvE.d.ts +107 -0
  376. package/dist/{store-9KO4BlkB.d.ts → types-B3_ooZgZ.d.ts} +100 -75
  377. package/dist/{types-Br9IXUBG.d.ts → types-BdtSDbBO.d.ts} +77 -17
  378. package/dist/types-BtHtcKMr.d.ts +157 -0
  379. package/dist/{types-CqrjB9o6.d.ts → types-BzzaHxt3.d.ts} +23 -11
  380. package/dist/types-C791HFu9.d.ts +332 -0
  381. package/dist/types-C863OQiR.d.ts +57 -0
  382. package/dist/{types-ByUo56un.d.ts → types-CVZSNocA.d.ts} +23 -22
  383. package/dist/{types-DHrmBJLH.d.ts → types-CX7AvRqP.d.ts} +7 -7
  384. package/dist/types-C_IiEs64.d.ts +65 -0
  385. package/dist/{types-7rJVLWe5.d.ts → types-Dfv0aTER.d.ts} +63 -11
  386. package/dist/types-DqzsnlSA.js +67 -0
  387. package/dist/{types-DpWfQdSh.d.ts → types-Druu9wLM.d.ts} +46 -11
  388. package/dist/{types-CIlTojhq.d.ts → types-_WhUP7ud.d.ts} +9 -6
  389. package/dist/{types-CUcFZfpU.d.ts → types-lUlG3TVd.d.ts} +2 -1
  390. package/dist/unplugin/index.d.ts +1 -1
  391. package/dist/unplugin/index.js +2 -2
  392. package/dist/usage-CRVl9V3t.js +32 -0
  393. package/dist/usage-CZpSQP6L.js +1 -0
  394. package/dist/{usage-CG9nOYZw.js → usage-SveTRTyr.js} +54 -11
  395. package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-DHUrAkku.d.ts} +1 -1
  396. package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
  397. package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
  398. package/dist/{verify-BztUB3GX.js → verify-BaAKx7t6.js} +645 -50
  399. package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
  400. package/dist/version-DXkYUISx.js +1 -0
  401. package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
  402. package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-CN8H_9UF.d.ts} +67 -2
  403. package/dist/vue/index.d.ts +9 -10
  404. package/dist/vue/index.js +8 -8
  405. package/dist/waiter-B986w1oK.d.ts +36 -0
  406. package/dist/waiter-BGUtGYoU.js +67 -0
  407. package/dist/watch--ovlPOc0.js +1 -0
  408. package/dist/{watch-zeucB7eF.js → watch-vea54PRw.js} +44 -5
  409. package/dist/webmcp/index.d.ts +2 -2
  410. package/dist/webmcp/index.js +3 -3
  411. package/dist/where-scope-C9vfEphl.js +306 -0
  412. package/dist/who-can-DWBAcaCQ.js +364 -0
  413. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  414. package/dist/wire-denial-C7PaVYEM.js +27 -0
  415. package/dist/workflow/index.d.ts +5 -0
  416. package/dist/workflow/index.js +223 -0
  417. package/dist/workflow-sdk/index.d.ts +56 -0
  418. package/dist/workflow-sdk/index.js +78 -0
  419. package/dist/{wrap-Cr93qqdP.d.ts → wrap-C5jC6sKI.d.ts} +2 -1
  420. package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
  421. package/package.json +136 -37
  422. package/schemas/access-event-v1.json +118 -0
  423. package/schemas/approval-request-v1.json +34 -1
  424. package/schemas/approval-signature-v1.json +94 -0
  425. package/schemas/automation-event-v1.json +113 -0
  426. package/schemas/capability-v1.json +84 -0
  427. package/schemas/catalog-event-v1.json +87 -0
  428. package/schemas/catalog-v1.json +123 -12
  429. package/schemas/cli-commands-v1.json +164 -0
  430. package/schemas/cli-result-v1.json +96 -0
  431. package/schemas/cloud-api-v1.json +5407 -0
  432. package/schemas/connector-v1.json +408 -0
  433. package/schemas/credential-event-v1.json +81 -0
  434. package/schemas/credential-v1.json +134 -0
  435. package/schemas/decision-event-v1.json +288 -0
  436. package/schemas/delivery-event-v1.json +117 -0
  437. package/schemas/directory-event-v1.json +85 -0
  438. package/schemas/evidence-export-v1.json +54 -0
  439. package/schemas/membership-event-v1.json +93 -0
  440. package/schemas/policy-v1.json +68 -0
  441. package/schemas/pushed-policy-v1.json +236 -0
  442. package/schemas/run-v1.json +162 -0
  443. package/schemas/snapshot-v1.json +138 -0
  444. package/schemas/supabase-claims-v1.json +4 -4
  445. package/schemas/supabase-manifest-v1.json +5 -1
  446. package/schemas/support-session-v1.json +111 -0
  447. package/skills/permdock/SKILL.md +16 -12
  448. package/skills/permdock-agents/SKILL.md +40 -23
  449. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  450. package/skills/permdock-agents/references/runtimes.md +22 -18
  451. package/skills/permdock-approvals/SKILL.md +29 -13
  452. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  453. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  454. package/skills/permdock-audit/SKILL.md +3 -3
  455. package/skills/permdock-credentials/SKILL.md +5 -5
  456. package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
  457. package/skills/permdock-data/SKILL.md +6 -6
  458. package/skills/permdock-data/references/queries-and-rls.md +10 -9
  459. package/skills/permdock-data/references/relationships.md +3 -3
  460. package/skills/permdock-tenancy/SKILL.md +20 -7
  461. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  462. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  463. package/skills/permdock-wire/SKILL.md +17 -11
  464. package/skills/permdock-wire/references/adapters.md +139 -51
  465. package/skills/permdock-wire/references/policy-options.md +5 -5
  466. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  467. package/dist/approvals-DZL76lKW.js +0 -240
  468. package/dist/arazzo-CD8d0WLb.js +0 -54
  469. package/dist/catalog-6yWAX6Ps.js +0 -2
  470. package/dist/catalog-WHG4kBq7.js +0 -48
  471. package/dist/cloud-C7bSDgX4.js +0 -50
  472. package/dist/cloud-PeBN3IEn.js +0 -118
  473. package/dist/collect-Bw2Jdq1q.js +0 -2
  474. package/dist/collect-CQx4hX4N.js +0 -83
  475. package/dist/commands-Cpip4ULx.js +0 -97
  476. package/dist/config-DLt6BvV7.js +0 -36
  477. package/dist/diff-Cnghh_Ip.js +0 -48
  478. package/dist/doctor-CuVJvhV_.js +0 -53
  479. package/dist/duration-xK2jGFVc.js +0 -25
  480. package/dist/errors-CWfoNg9N.js +0 -47
  481. package/dist/errors-DRnGZHzF.js +0 -30
  482. package/dist/expiry-BoBJ8Tvc.js +0 -7
  483. package/dist/fields-fwfXN01n.js +0 -1016
  484. package/dist/headers-BZSDieNT.js +0 -6
  485. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  486. package/dist/ids-DC4V4CFu.js +0 -18
  487. package/dist/index-DgM7w96K.d.ts +0 -6
  488. package/dist/index-Dz7didpC.d.ts +0 -201
  489. package/dist/index-UdVQgq48.d.ts +0 -550
  490. package/dist/load-B_shHrmd.js +0 -2
  491. package/dist/manifest-BngWKryL.js +0 -770
  492. package/dist/may-use-BOn_dR_w.js +0 -78
  493. package/dist/openapi-DcQ1Kg40.js +0 -164
  494. package/dist/ownership-BgnbOJFT.js +0 -851
  495. package/dist/permdock-L26udHSk.js +0 -3646
  496. package/dist/powersync-BFSbSElQ.js +0 -62
  497. package/dist/powersync-DCDgZgfZ.js +0 -2
  498. package/dist/rls-55DQTuf5.js +0 -250
  499. package/dist/run-DMcNW_8T.js +0 -174
  500. package/dist/server-ZYEHtNHS.js +0 -268
  501. package/dist/sink-BTtmfPnE.js +0 -141
  502. package/dist/sink-CPN4zLfs.d.ts +0 -104
  503. package/dist/skills-Dle4ZoLF.js +0 -56
  504. package/dist/snapshot-Dc9CHPME.js +0 -1078
  505. package/dist/src-Bb7no-hS.js +0 -639
  506. package/dist/subject-C6dLxqHU.js +0 -24
  507. package/dist/supabase-Dbqr141s.js +0 -83
  508. package/dist/supabase-hook-BULg7Ut_.js +0 -2
  509. package/dist/thenable-QSmvt-vZ.js +0 -65
  510. package/dist/types-C0dee0Qf.d.ts +0 -197
  511. package/dist/types-DvupZE0w.d.ts +0 -9
  512. package/dist/usage-4G6t643F.js +0 -42
  513. package/dist/usage-iFLJ0-rr.js +0 -2
  514. package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
  515. package/dist/watch-C8TpsAl4.js +0 -2
@@ -1,6 +1,7 @@
1
- import { Or as Principal, kr as Subject, nt as RoleSource } from "../policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "../permission-types-Dg39z9Kv.js";
3
- import { s as RemotePdpCache } from "../types-CIlTojhq.js";
1
+ import { W as CustomRoleSource, ar as Subject, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
+ import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
+ import { s as RemotePdpCache } from "../types-_WhUP7ud.js";
4
+ import { t as ClaimsMap } from "../claims-map-Ca-QX8C6.js";
4
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
6
  //#region src/clerk/types.d.ts
6
7
  type ClerkPrincipal = Principal & {
@@ -30,14 +31,14 @@ type ClerkBackend = {
30
31
  } | readonly ClerkMembershipListItem[]>;
31
32
  };
32
33
  };
33
- type ClerkGlobalRoles = string | ((claims: Readonly<Record<string, unknown>>) => readonly string[]);
34
34
  type ClerkSubjectOptions = {
35
35
  readonly memberships?: "active" | "all";
36
36
  readonly backend?: ClerkBackend;
37
- readonly customRoles?: RoleSource;
37
+ readonly customRoles?: CustomRoleSource;
38
38
  readonly permissions?: Readonly<Record<string, Permission>>;
39
39
  readonly schema?: StandardSchemaV1;
40
- readonly globalRoles?: ClerkGlobalRoles;
40
+ /** Where the session token carries platform roles (`claims.roles`): a path such as `publicMetadata.staff`, or a function. Organization roles come from the `o` claim. */
41
+ readonly claims?: Pick<ClaimsMap, "roles">;
41
42
  readonly features?: Readonly<Record<string, string>>;
42
43
  readonly declared?: readonly string[];
43
44
  };
@@ -60,6 +61,6 @@ export declare function subjectFromClerk(authObject: unknown, options?: ClerkSub
60
61
  * A resolver that keeps each user's `memberships: 'all'` list for
61
62
  * `cache.ttl` (at most 30 seconds), so a removed membership grants until then.
62
63
  */
63
- export declare function createClerkSubjectResolver(options?: ClerkSubjectResolverOptions): (authObject: unknown) => Promise<Subject<ClerkPrincipal>>;
64
+ export declare function clerkSubjectResolver(options?: ClerkSubjectResolverOptions): (authObject: unknown) => Promise<Subject<ClerkPrincipal>>;
64
65
  //#endregion
65
- export type { ClerkAuthObject, ClerkBackend, ClerkGlobalRoles, ClerkMembershipListItem, ClerkPrincipal, ClerkSubjectOptions, ClerkSubjectResolverOptions };
66
+ export type { ClerkAuthObject, ClerkBackend, ClerkMembershipListItem, ClerkPrincipal, ClerkSubjectOptions, ClerkSubjectResolverOptions };
@@ -1,8 +1,9 @@
1
1
  import { i as omitKeys, r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { l as readPath, r as validateRecord } from "../thenable-QSmvt-vZ.js";
4
- import { t as anonymousSubject } from "../subject-C6dLxqHU.js";
5
- import { c as ttlMs, s as ttlCache } from "../shared-JhMeOsDF.js";
3
+ import { r as validateRecord } from "../thenable-yD7SabqG.js";
4
+ import { t as anonymousSubject } from "../subject-BGoM5o8B.js";
5
+ import { t as readClaim } from "../claims-map-7oQ3ue4X.js";
6
+ import { c as ttlMs, s as ttlCache } from "../shared-DvvFzYXe.js";
6
7
  //#region src/clerk/subject.ts
7
8
  function asRoles(value) {
8
9
  if (typeof value === "string") return value === "" ? [] : [value];
@@ -80,14 +81,8 @@ function featureRoles(fea, map) {
80
81
  sources
81
82
  };
82
83
  }
83
- function globalRolesFrom(claims, option) {
84
- if (option === void 0) return [];
85
- if (typeof option === "function") try {
86
- return asRoles(option(claims));
87
- } catch {
88
- return [];
89
- }
90
- return asRoles(readPath(claims, option));
84
+ function globalRolesFrom(claims, path) {
85
+ return path === void 0 ? [] : asRoles(readClaim(claims, path));
91
86
  }
92
87
  function splitList(value) {
93
88
  return typeof value === "string" ? value.split(",").map((item) => item.trim()).filter((item) => item !== "") : [];
@@ -206,7 +201,7 @@ function subjectFromClerk(authObject, options = {}) {
206
201
  * A resolver that keeps each user's `memberships: 'all'` list for
207
202
  * `cache.ttl` (at most 30 seconds), so a removed membership grants until then.
208
203
  */
209
- function createClerkSubjectResolver(options = {}) {
204
+ function clerkSubjectResolver(options = {}) {
210
205
  const { cache, ...rest } = options;
211
206
  const lists = ttlCache(ttlMs(cache));
212
207
  const load = async (backend, userId) => {
@@ -249,7 +244,7 @@ async function fromClerk(authObject, options, loadMemberships) {
249
244
  })];
250
245
  let claims = extraClaims(mapped.claims);
251
246
  if (options.schema !== void 0) claims = validateRecord(options.schema, claims) ?? {};
252
- const global = [...globalRolesFrom(mapped.claims, options.globalRoles), ...features.user];
247
+ const global = [...globalRolesFrom(mapped.claims, options.claims?.roles), ...features.user];
253
248
  const exp = mapped.claims["exp"];
254
249
  const principal = compact({
255
250
  id: mapped.id,
@@ -273,4 +268,4 @@ async function fromClerk(authObject, options, loadMemberships) {
273
268
  }
274
269
  }
275
270
  //#endregion
276
- export { createClerkSubjectResolver, subjectFromClerk };
271
+ export { clerkSubjectResolver, subjectFromClerk };
package/dist/cli/bin.js CHANGED
@@ -1,20 +1,39 @@
1
1
  #!/usr/bin/env node
2
- import { t as run } from "../run-DMcNW_8T.js";
3
- import { n as streamHasColors } from "../style-CTm1AXDT.js";
2
+ import module from "node:module";
3
+ import { text } from "node:stream/consumers";
4
4
  //#region src/cli/bin.ts
5
- const result = await run(process.argv.slice(2), {
6
- cwd: process.cwd(),
7
- io: {
8
- env: process.env,
9
- stdout: (text) => {
10
- process.stdout.write(text.endsWith("\n") ? text : `${text}\n`);
11
- },
12
- stderr: (text) => {
13
- process.stderr.write(text.endsWith("\n") ? text : `${text}\n`);
14
- },
15
- color: streamHasColors(process.stdout),
16
- interactive: process.stdin.isTTY === true && process.stdout.isTTY === true && process.env["CI"] === void 0
17
- }
18
- });
19
- process.exitCode ??= result.code;
5
+ module.enableCompileCache?.();
6
+ const argv = process.argv.slice(2);
7
+ if (argv.length === 1 && (argv[0] === "--version" || argv[0] === "-v")) {
8
+ const { cliVersion } = await import("../version-DXkYUISx.js");
9
+ process.stdout.write(`${cliVersion()}\n`);
10
+ } else {
11
+ const [{ isCi }, { trapSignals }, { run }, { streamHasColors }] = await Promise.all([
12
+ import("../env-DJZrPjRi.js"),
13
+ import("../signals-D3NcTKUS.js"),
14
+ import("../run-DDwUaJDU.js"),
15
+ import("../style-DiKWnAvn.js")
16
+ ]);
17
+ const signals = trapSignals();
18
+ const result = await run(argv, {
19
+ cwd: process.cwd(),
20
+ io: {
21
+ env: process.env,
22
+ signal: signals.signal,
23
+ stdout: (chunk) => {
24
+ process.stdout.write(chunk);
25
+ },
26
+ stderr: (chunk) => {
27
+ process.stderr.write(chunk);
28
+ },
29
+ color: streamHasColors(process.stdout),
30
+ errColor: streamHasColors(process.stderr),
31
+ stdoutIsTty: process.stdout.isTTY === true,
32
+ stderrIsTty: process.stderr.isTTY === true,
33
+ readStdin: () => text(process.stdin),
34
+ interactive: process.stdin.isTTY === true && process.stdout.isTTY === true && !isCi(process.env)
35
+ }
36
+ });
37
+ process.exitCode ??= result.code;
38
+ }
20
39
  //#endregion
@@ -1,5 +1,6 @@
1
- import { a as CatalogDocument, c as CatalogResource, d as CatalogSupportAccess, f as CatalogUsage, l as CatalogRole, n as CatalogApproval, r as CatalogBreakGlass, s as CatalogPermission, t as CatalogActivation, u as CatalogScope } from "../types-DpWfQdSh.js";
2
- import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMemberships, g as RlsTarget, h as RlsSuspension, i as PermDockConfig, l as RlsDialect, m as RlsSuspendedScope, n as CliIo, o as RlsActiveRow, p as RlsSuspendedMembership, r as CollectConfig, s as RlsApiKeys, t as CatalogConfig, u as RlsFunctionMapping } from "../types-7rJVLWe5.js";
1
+ import { a as CatalogDocument, d as CatalogRole, f as CatalogScope, l as CatalogPermission, m as CatalogUsage, n as CatalogApproval, p as CatalogSupportAccess, r as CatalogBreakGlass, t as CatalogActivation, u as CatalogResource } from "../types-Druu9wLM.js";
2
+ import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-DCW91KQU.js";
3
+ import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMemberships, g as RlsTarget, h as RlsSuspension, i as PermDockConfig, l as RlsDialect, m as RlsSuspendedScope, n as CliIo, o as RlsActiveRow, p as RlsSuspendedMembership, r as CollectConfig, s as RlsApiKeys, t as CatalogConfig, u as RlsFunctionMapping } from "../types-Dfv0aTER.js";
3
4
  //#region src/cli/catalog-path.d.ts
4
5
  /**
5
6
  * The absolute path `permdock collect` writes the catalog to: `collect.out`,
@@ -8,7 +9,7 @@ import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMember
8
9
  */
9
10
  export declare function catalogPath(config: PermDockConfig, cwd: string, out?: string): string;
10
11
  //#endregion
11
- //#region src/cli/config.d.ts
12
+ //#region src/cli/project/config.d.ts
12
13
  export declare function defineConfig<T extends PermDockConfig>(config: T): T;
13
14
  //#endregion
14
15
  //#region src/cli/sql/markers.d.ts
@@ -37,10 +38,23 @@ export declare function parseHookMarker(sql: string): SupabaseHookMarker | undef
37
38
  */
38
39
  export declare function parseGrantsMarker(sql: string): SupabaseGrantsMarker | undefined;
39
40
  //#endregion
40
- //#region src/cli/run.d.ts
41
+ //#region src/cli/token-schemas.d.ts
42
+ /**
43
+ * `schemas/run-v1.json`: the claims of a `vnd.permdock.run+jwt`, as
44
+ * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown
45
+ * claims are allowed; `parseRunTicket` drops them.
46
+ */
47
+ export declare const RUN_TICKET_SCHEMA: Readonly<Record<string, unknown>>;
48
+ /**
49
+ * `schemas/support-session-v1.json`: the claims of a
50
+ * `vnd.permdock.support-session+jwt`, as `signSupportSession` writes them.
51
+ */
52
+ export declare const SUPPORT_SESSION_SCHEMA: Readonly<Record<string, unknown>>;
53
+ //#endregion
54
+ //#region src/cli/core/run.d.ts
41
55
  export declare function run(argv: readonly string[], options?: {
42
56
  readonly cwd?: string;
43
57
  readonly io?: CliIo;
44
58
  }): Promise<RunResult>;
45
59
  //#endregion
46
- export type { CatalogActivation, CatalogApproval, CatalogBreakGlass, CatalogConfig, CatalogDocument, CatalogPermission, CatalogResource, CatalogRole, CatalogScope, CatalogSupportAccess, CatalogUsage, CollectConfig, PermDockConfig, RlsActiveRow, RlsApiKeys, RlsConfig, RlsDialect, RlsFunctionMapping, RlsMembershipTable, RlsMemberships, RlsSuspendedMembership, RlsSuspendedScope, RlsSuspension, RlsTarget, RunResult, SupabaseGrantsMarker, SupabaseHookMarker };
60
+ export { type CatalogActivation, type CatalogApproval, type CatalogBreakGlass, type CatalogConfig, type CatalogDocument, type CatalogPermission, type CatalogResource, type CatalogRole, type CatalogScope, type CatalogSupportAccess, type CatalogUsage, type CollectConfig, PUSHED_POLICY_SCHEMA, type PermDockConfig, type PushedGrant, type PushedPolicy, type RlsActiveRow, type RlsApiKeys, type RlsConfig, type RlsDialect, type RlsFunctionMapping, type RlsMembershipTable, type RlsMemberships, type RlsSuspendedMembership, type RlsSuspendedScope, type RlsSuspension, type RlsTarget, type RunResult, type SupabaseGrantsMarker, type SupabaseHookMarker, parsePushedPolicy, pushedPolicy };
package/dist/cli/index.js CHANGED
@@ -1,5 +1,165 @@
1
1
  import { t as catalogPath } from "../catalog-path-CnI0XTFK.js";
2
- import { t as defineConfig } from "../config-BIjREpyE.js";
3
- import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-CiwAOZtO.js";
4
- import { t as run } from "../run-DMcNW_8T.js";
5
- export { catalogPath, defineConfig, parseGrantsMarker, parseHookMarker, run };
2
+ import { t as defineConfig } from "../config-bs_kZeYq.js";
3
+ import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-CqtxkV4G.js";
4
+ import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-C6joDI3o.js";
5
+ import { t as run } from "../run-CUKuz0A8.js";
6
+ //#region src/cli/token-schemas.ts
7
+ const ID = {
8
+ type: "string",
9
+ minLength: 1,
10
+ maxLength: 256
11
+ };
12
+ const NUMERIC_DATE = {
13
+ type: "integer",
14
+ minimum: 0
15
+ };
16
+ const AUDIENCE = { anyOf: [ID, {
17
+ type: "array",
18
+ items: ID,
19
+ minItems: 1
20
+ }] };
21
+ /**
22
+ * `schemas/run-v1.json`: the claims of a `vnd.permdock.run+jwt`, as
23
+ * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown
24
+ * claims are allowed; `parseRunTicket` drops them.
25
+ */
26
+ const RUN_TICKET_SCHEMA = {
27
+ $schema: "https://json-schema.org/draft/2020-12/schema",
28
+ $id: "https://permdock.com/schemas/run-v1.json",
29
+ title: "PermDock run ticket",
30
+ description: "The claims of a vnd.permdock.run+jwt, wire format v1. At least one of scope and authorization_details is present; automation is present exactly when kind is automation.",
31
+ type: "object",
32
+ required: [
33
+ "v",
34
+ "iss",
35
+ "sub",
36
+ "aud",
37
+ "jti",
38
+ "iat",
39
+ "exp",
40
+ "kind"
41
+ ],
42
+ properties: {
43
+ v: { const: 1 },
44
+ iss: ID,
45
+ sub: ID,
46
+ aud: AUDIENCE,
47
+ jti: ID,
48
+ iat: NUMERIC_DATE,
49
+ exp: NUMERIC_DATE,
50
+ kind: { enum: [
51
+ "automation",
52
+ "job",
53
+ "caller"
54
+ ] },
55
+ act: { $ref: "#/$defs/act" },
56
+ scope: { type: "string" },
57
+ authorization_details: {
58
+ type: "array",
59
+ items: {
60
+ type: "object",
61
+ required: ["type"],
62
+ properties: { type: { type: "string" } }
63
+ }
64
+ },
65
+ automation: {
66
+ type: "object",
67
+ required: ["id", "version"],
68
+ properties: {
69
+ id: ID,
70
+ version: { anyOf: [ID, {
71
+ type: "integer",
72
+ minimum: 0
73
+ }] }
74
+ }
75
+ },
76
+ tenant: ID,
77
+ trigger: { type: "object" },
78
+ binding: {
79
+ type: "object",
80
+ properties: {
81
+ connector: ID,
82
+ tools: {
83
+ type: "array",
84
+ items: ID,
85
+ maxItems: 64
86
+ }
87
+ }
88
+ }
89
+ },
90
+ anyOf: [{
91
+ required: ["scope"],
92
+ properties: { scope: true }
93
+ }, {
94
+ required: ["authorization_details"],
95
+ properties: { authorization_details: true }
96
+ }],
97
+ $defs: { act: {
98
+ description: "RFC 8693 act: the party running the work; at most 8 nested levels.",
99
+ type: "object",
100
+ required: ["sub"],
101
+ properties: {
102
+ sub: ID,
103
+ kind: ID,
104
+ act: { $ref: "#/$defs/act" }
105
+ }
106
+ } }
107
+ };
108
+ /**
109
+ * `schemas/support-session-v1.json`: the claims of a
110
+ * `vnd.permdock.support-session+jwt`, as `signSupportSession` writes them.
111
+ */
112
+ const SUPPORT_SESSION_SCHEMA = {
113
+ $schema: "https://json-schema.org/draft/2020-12/schema",
114
+ $id: "https://permdock.com/schemas/support-session-v1.json",
115
+ title: "PermDock support session",
116
+ description: "The claims of a vnd.permdock.support-session+jwt, wire format v1: sub is the viewed principal, act the support actor, jti the session id. exp is after iat, by at most one day.",
117
+ type: "object",
118
+ required: [
119
+ "v",
120
+ "iss",
121
+ "sub",
122
+ "aud",
123
+ "jti",
124
+ "iat",
125
+ "exp",
126
+ "act",
127
+ "tenant",
128
+ "reason",
129
+ "permissions"
130
+ ],
131
+ properties: {
132
+ v: { const: 1 },
133
+ iss: ID,
134
+ sub: ID,
135
+ aud: AUDIENCE,
136
+ jti: ID,
137
+ iat: NUMERIC_DATE,
138
+ exp: NUMERIC_DATE,
139
+ act: {
140
+ type: "object",
141
+ required: ["sub", "kind"],
142
+ additionalProperties: false,
143
+ properties: {
144
+ sub: ID,
145
+ kind: { const: "support" }
146
+ }
147
+ },
148
+ tenant: ID,
149
+ reason: {
150
+ type: "string",
151
+ minLength: 1,
152
+ maxLength: 1e3
153
+ },
154
+ permissions: {
155
+ type: "array",
156
+ items: ID,
157
+ minItems: 1,
158
+ maxItems: 64
159
+ },
160
+ approved_by: ID,
161
+ reference: ID
162
+ }
163
+ };
164
+ //#endregion
165
+ export { PUSHED_POLICY_SCHEMA, RUN_TICKET_SCHEMA, SUPPORT_SESSION_SCHEMA, catalogPath, defineConfig, parseGrantsMarker, parseHookMarker, parsePushedPolicy, pushedPolicy, run };
@@ -1,90 +1,129 @@
1
- import { Cn as MembershipEvent, Ht as PolicySource, Sn as DirectoryEvent, W as DecisionSink, at as SnapshotSource, bn as CredentialEvent, ct as TokenFailureCause, ut as TokenVerifier, vn as AccessEvent, xn as DecisionEvent } from "../policy-types-sp9P1iIV.js";
2
- import { f as ApprovalStore } from "../types-Br9IXUBG.js";
3
- import { a as JsonWebKeySet, g as ReplayStore } from "../types-C0dee0Qf.js";
4
- import { n as CatalogEventData, o as CloudEventType } from "../sink-CPN4zLfs.js";
5
- //#region src/cloud/types.d.ts
6
- type CloudEndpointOptions = {
7
- readonly url?: string;
8
- readonly environment?: string;
9
- };
10
- type CloudEndpoints = {
11
- /** The environment URL, `<url>/v1/environments/<env>`: `iss` and `aud` of the policy document. */
12
- readonly issuer: string;
13
- /** The environment's JWK Set URL, for `joseTokenVerifier({ jwks })`. */
14
- readonly jwks: string;
15
- };
16
- type CloudOptions = CloudEndpointOptions & {
17
- readonly key?: string;
18
- readonly fetch?: typeof fetch;
19
- readonly flushAt?: number;
20
- /** Most events the sink holds while the Cloud is unreachable (default 10 000); the oldest are dropped first. */
21
- readonly capacity?: number;
22
- readonly waitUntil?: (task: Promise<void>) => void;
23
- /**
24
- * Verifies the environment's signed policy document, typically
25
- * `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`. Without one,
26
- * `policies.current()` stays `null`: an unverifiable document is never applied.
27
- */
28
- readonly verifier?: TokenVerifier;
29
- };
30
- type CloudClient = CloudEndpoints & {
31
- readonly approvals: ApprovalStore;
32
- readonly sink: DecisionSink;
33
- readonly snapshots: SnapshotSource;
34
- readonly policies: PolicySource;
35
- };
36
- //#endregion
37
- //#region src/cloud/create.d.ts
1
+ import { Jt as AutomationEvent, Kt as AccessEvent, Qt as DeliveryEvent, Rt as Instant, Xt as DecisionEvent, Yt as CredentialEvent, Zt as DeliveryChannel, en as DirectoryEvent, nn as MembershipEvent, ut as TokenSigner } from "../policy-types-n0uRTsW8.js";
2
+ import { m as ApprovalStore } from "../types-BdtSDbBO.js";
3
+ import { i as CatalogEventData, l as CloudEventType, r as CLOUD_EVENT_TYPES, s as CloudEvent } from "../sink-4-eQIRWf.js";
4
+ import { c as DeliveryTransport } from "../types-BtHtcKMr.js";
5
+ import { a as CloudConnectionOptions, c as CloudOptions, i as CloudClient, l as CloudSignerOptions, n as CloudCatalog, o as CloudEndpointOptions, r as CloudCatalogPush, s as CloudEndpoints, t as CloudApproverOptions } from "../types-8RnwUAvE.js";
6
+ import { n as ApprovalWaiter } from "../waiter-B986w1oK.js";
7
+ import { l as ReplayStore } from "../types-C791HFu9.js";
8
+ import { f as WebhookVerifier, r as WebhookFailureCause$1, s as WebhookJwks } from "../standard-webhooks-rbD7LS6h.js";
9
+ //#region src/cloud/request.d.ts
38
10
  /**
39
11
  * The environment URL and JWK Set URL `cloud()` uses, resolved with the same
40
12
  * fallbacks (`PERMDOCK_CLOUD_URL`; `PERMDOCK_CLOUD_ENV`, `VERCEL_ENV`, `production`).
41
13
  */
42
14
  export declare function cloudEndpoints(options?: CloudEndpointOptions): CloudEndpoints;
15
+ //#endregion
16
+ //#region src/cloud/create.d.ts
43
17
  export declare function cloud(options?: CloudOptions): CloudClient;
44
18
  //#endregion
19
+ //#region src/cloud/delivery.d.ts
20
+ /**
21
+ * A `DeliveryTransport` for `channel` that hands each checked recipient to
22
+ * PermDock Cloud, which sends it from its hosted email, chat or webhook
23
+ * sender and reports back through `com.permdock.delivery.*` events. The
24
+ * router has already decided the recipient: the Cloud receives the target
25
+ * and the permission that let it through, never a decision to make.
26
+ * `Idempotency-Key` is the delivery's idempotency key, so a retry repeats it.
27
+ */
28
+ export declare function cloudDeliveryTransport<C extends DeliveryChannel>(channel: C, options?: CloudConnectionOptions): DeliveryTransport<C>;
29
+ //#endregion
30
+ //#region src/cloud/signer.d.ts
31
+ /**
32
+ * A `TokenSigner` backed by the environment's PermDock Cloud keys, typically
33
+ * KMS-held, for run tickets (`vnd.permdock.run+jwt`) and every other signed
34
+ * output an app issues. The Cloud signs only what the app sends: it sets
35
+ * `iss` to the environment URL and adds no claim. Policy documents,
36
+ * snapshots, evidence exports, Security Event Tokens and `at+jwt` access tokens are the Cloud's own
37
+ * outputs, so their `typ` values are refused here. Verify what it signs with
38
+ * `joseTokenVerifier({ jwks: cloudEndpoints().jwks })`.
39
+ */
40
+ export declare function cloudSigner(options?: CloudSignerOptions): TokenSigner;
41
+ //#endregion
45
42
  //#region src/cloud/webhook.d.ts
46
- type Envelope<TType extends CloudEventType, TData> = {
47
- readonly specversion: "1.0";
43
+ type Envelope<TType extends CloudEventType, TData> = Omit<CloudEvent, "type" | "data"> & {
48
44
  readonly type: TType;
49
- readonly source: string;
50
- readonly subject?: string;
51
- readonly id: string;
52
- readonly time: string;
53
- readonly datacontenttype: "application/json";
54
45
  readonly data: TData;
55
46
  };
47
+ type Types = typeof CLOUD_EVENT_TYPES;
56
48
  /** A CloudEvent PermDock Cloud delivers, discriminated by `type`. */
57
- type PermDockCloudEvent = Envelope<"dev.permdock.decision", DecisionEvent> | Envelope<"dev.permdock.approval", DecisionEvent> | Envelope<"dev.permdock.directory", DirectoryEvent> | Envelope<"dev.permdock.membership", MembershipEvent> | Envelope<"dev.permdock.credential", CredentialEvent> | Envelope<"dev.permdock.catalog", CatalogEventData> | Envelope<"dev.permdock.access.started", AccessEvent> | Envelope<"dev.permdock.access.ended", AccessEvent> | Envelope<"dev.permdock.access.revoked", AccessEvent>;
58
- type VerifyWebhookOptions = {
59
- /** Your receiver's URL; the batch `aud` must name it. */
60
- readonly audience: string | readonly string[];
61
- /** A verifier over the Cloud JWKS; built from `jwks` when absent. */
62
- readonly verifier?: TokenVerifier;
63
- /** `cloud().jwks`, a JWKS URL, or an inline key set. */
64
- readonly jwks?: string | URL | JsonWebKeySet;
65
- /** Drops a batch whose `jti` was already delivered. */
49
+ type PermDockCloudEvent = Envelope<Types["decision"], DecisionEvent> | Envelope<Types["approvalRequested"] | Types["approvalResolved"] | Types["approvalExpired"] | Types["approvalCancelled"], DecisionEvent> | Envelope<Types["directoryCreated"] | Types["directoryReplaced"] | Types["directoryPatched"] | Types["directoryDeleted"], DirectoryEvent> | Envelope<Types["membershipAdded"] | Types["membershipRemoved"] | Types["membershipChanged"], MembershipEvent> | Envelope<Types["credentialCreated"] | Types["credentialUsed"] | Types["credentialRotated"] | Types["credentialRevoked"], CredentialEvent> | Envelope<Types["catalogPublished"] | Types["catalogDrifted"], CatalogEventData> | Envelope<Types["supportSessionStarted"] | Types["supportSessionEnded"], AccessEvent> | Envelope<Types["automationPublished"] | Types["automationChanged"] | Types["automationRevoked"] | Types["automationRun"], AutomationEvent> | Envelope<Types["deliverySent"] | Types["deliveryDelivered"] | Types["deliveryBounced"] | Types["deliveryComplained"] | Types["deliveryFailed"], DeliveryEvent>;
50
+ type WebhookOptions = {
51
+ /**
52
+ * A verifier to reuse across deliveries, so the JWKS is fetched once;
53
+ * built from `jwks`, `secret`, `replay`, `tolerance` and `now` when absent.
54
+ */
55
+ readonly verifier?: WebhookVerifier;
56
+ /** `cloud().jwks`, a JWKS URL or an inline key set, for `v1a` signatures. */
57
+ readonly jwks?: WebhookJwks;
58
+ /** The endpoint's `whsec_` secret, for `v1` signatures. */
59
+ readonly secret?: string | readonly string[];
60
+ /** Records each `webhook-id`; required unless `verifier` is set. */
66
61
  readonly replay?: ReplayStore;
62
+ /** Seconds a timestamp may differ from the clock. Defaults to 300. */
63
+ readonly tolerance?: number;
64
+ readonly now?: () => Instant;
65
+ readonly fetch?: typeof fetch;
67
66
  };
68
- type WebhookFailureReason = "unsigned" | "invalid-token" | "invalid-events" | "replayed";
67
+ /** The Standard Webhooks verifier's cause, or `invalid-events` for a signed body that is not a CloudEvents batch. */
68
+ type WebhookFailureCause = WebhookFailureCause$1 | "invalid-events";
69
69
  type VerifiedWebhook = {
70
70
  readonly ok: true;
71
+ /** The `webhook-id`, unique per message across retries. */
71
72
  readonly id: string;
73
+ /** The `webhook-timestamp` as an RFC 3339 instant. */
74
+ readonly timestamp: string;
72
75
  readonly events: readonly PermDockCloudEvent[];
73
76
  } | {
74
77
  readonly ok: false;
75
- readonly reason: WebhookFailureReason;
76
- readonly cause?: TokenFailureCause;
78
+ readonly cause: WebhookFailureCause;
77
79
  };
78
80
  /**
79
- * Validates one CloudEvent against the closed type list and its data shape;
80
- * returns `null` for anything else, never throws.
81
+ * Validates one CloudEvent against the closed type list, its `dataschema` and
82
+ * its data shape; returns `null` for anything else, never throws.
81
83
  */
82
84
  export declare function parseCloudEvent(value: unknown): PermDockCloudEvent | null;
83
85
  /**
84
- * Verifies a PermDock Cloud webhook delivery: a compact JWS with
85
- * `typ: permdock-decisions+jwt` whose `events` claim holds CloudEvents.
86
- * There is no unsigned mode, and it never throws.
86
+ * Verifies a PermDock Cloud webhook delivery: Standard Webhooks headers over
87
+ * an `application/cloudevents-batch+json` body (or one
88
+ * `application/cloudevents+json` event). There is no unsigned mode, and it
89
+ * never throws.
90
+ */
91
+ export declare function verifyWebhook(request: Request, options: WebhookOptions): Promise<VerifiedWebhook>;
92
+ //#endregion
93
+ //#region src/cloud/waiter.d.ts
94
+ type CloudApprovalWaiterOptions = WebhookOptions & ({
95
+ /** Read when a wait starts and every `interval` after; typically `cloud().approvals`. */
96
+ readonly store: ApprovalStore;
97
+ /** Milliseconds between fallback reads of `store`. Defaults to 60000. */
98
+ readonly interval?: number;
99
+ readonly waiter?: undefined;
100
+ } | {
101
+ /** A durable runner's waiter (`workflowSdkWaiter()`); `wait` and `wake` go to it. */
102
+ readonly waiter: ApprovalWaiter;
103
+ readonly store?: undefined;
104
+ readonly interval?: undefined;
105
+ });
106
+ type CloudApprovalWaiter = ApprovalWaiter & {
107
+ /**
108
+ * The endpoint for the environment's webhook connector. It verifies the
109
+ * Standard Webhooks signature and wakes the wait of every
110
+ * `com.permdock.approval.resolved`, `.expired` and `.cancelled` event in
111
+ * the batch. It answers `204` once handled or replayed, and Problem
112
+ * Details otherwise.
113
+ */
114
+ readonly webhook: (request: Request) => Promise<Response>;
115
+ };
116
+ /** The approval token of each event that ends a wait, in delivery order. */
117
+ export declare function approvalTokensOf(events: readonly PermDockCloudEvent[]): readonly string[];
118
+ /**
119
+ * An `ApprovalWaiter` that PermDock Cloud wakes. Mount `webhook` on the
120
+ * route the environment's webhook connector posts to: when an approval is
121
+ * resolved, expires or is cancelled, the parked run for its token wakes.
122
+ * Waking never approves anything. The run decides again with the token, and
123
+ * only the app's `decide` and its approval store can grant. Without
124
+ * `waiter`, waits poll `store` as a fallback for a webhook another process
125
+ * received.
87
126
  */
88
- export declare function verifyWebhook(request: Request, options: VerifyWebhookOptions): Promise<VerifiedWebhook>;
127
+ export declare function cloudApprovalWaiter(options: CloudApprovalWaiterOptions): CloudApprovalWaiter;
89
128
  //#endregion
90
- export type { CloudClient, CloudEndpointOptions, CloudEndpoints, CloudOptions, PermDockCloudEvent, VerifiedWebhook, VerifyWebhookOptions, WebhookFailureReason };
129
+ export type { CloudApprovalWaiter, CloudApprovalWaiterOptions, CloudApproverOptions, CloudCatalog, CloudCatalogPush, CloudClient, CloudConnectionOptions, CloudEndpointOptions, CloudEndpoints, CloudOptions, CloudSignerOptions, PermDockCloudEvent, VerifiedWebhook, WebhookFailureCause, WebhookOptions };