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,240 +0,0 @@
1
- import { t as compact } from "./compact-CAf557ZB.js";
2
- import { t as PROBLEM_BASE } from "./validation-error-ZfUHbKvf.js";
3
- import { s as rootMembershipId } from "./scopes-tvpa34ep.js";
4
- import { n as isApprovalError } from "./errors-DRnGZHzF.js";
5
- import { r as hasCredentials } from "./http-BBoKefeS.js";
6
- import { u as unauthenticatedProblem } from "./problem-CnWraVhC.js";
7
- import { n as assertApprover } from "./store-ILkLUj_o.js";
8
- import { m as approverRelations, p as heldPermissions } from "./helpers-C9YmyBIa.js";
9
- //#region src/approvals/handler.ts
10
- function problem(status, title, detail, slug) {
11
- const body = {
12
- type: `${PROBLEM_BASE}/${slug}`,
13
- title,
14
- status,
15
- detail
16
- };
17
- return new Response(JSON.stringify(body), {
18
- status,
19
- headers: { "content-type": "application/problem+json" }
20
- });
21
- }
22
- function json(status, body) {
23
- return new Response(JSON.stringify(body), {
24
- status,
25
- headers: { "content-type": "application/json" }
26
- });
27
- }
28
- function parseRoute(url, method) {
29
- const parts = url.pathname.replace(/\/+$/u, "").split("/").filter(Boolean);
30
- const last = parts.at(-1);
31
- const prev = parts.at(-2);
32
- if (last === void 0) return;
33
- if (method === "GET" && last === "pending") return { kind: "pending" };
34
- if (method === "GET" && last === "mine") return { kind: "mine" };
35
- if (method === "POST" && last === "approve" && prev !== void 0) return {
36
- kind: "approve",
37
- token: decodeURIComponent(prev)
38
- };
39
- if (method === "POST" && last === "reject" && prev !== void 0) return {
40
- kind: "reject",
41
- token: decodeURIComponent(prev)
42
- };
43
- if (method === "GET" && last !== "pending" && last !== "mine") return {
44
- kind: "get",
45
- token: decodeURIComponent(last)
46
- };
47
- }
48
- async function resolveSubject(request, resolve) {
49
- try {
50
- const subject = await resolve(request);
51
- if (subject === null || subject === void 0) return null;
52
- return subject;
53
- } catch {
54
- return null;
55
- }
56
- }
57
- function membershipTenants(subject) {
58
- const principal = subject.principal;
59
- if (principal === null) return [];
60
- const tenants = /* @__PURE__ */ new Set();
61
- if (principal.tenant !== void 0) tenants.add(principal.tenant);
62
- for (const membership of principal.memberships ?? []) {
63
- const tenant = rootMembershipId(membership);
64
- if (tenant !== void 0) tenants.add(tenant);
65
- }
66
- return [...tenants];
67
- }
68
- function belongsToTenant(subject, tenant) {
69
- return membershipTenants(subject).includes(tenant);
70
- }
71
- async function mayResolve(request, subject, requireDistinct, options) {
72
- try {
73
- const relations = await approverRelations(request, subject, options);
74
- const permissions = await heldPermissions(request, subject, options.permdockFor);
75
- assertApprover(request, subject, requireDistinct, /* @__PURE__ */ new Date(), relations, permissions);
76
- return true;
77
- } catch {
78
- return false;
79
- }
80
- }
81
- /**
82
- * The requester, a tenant member for a tenant request, and for a request
83
- * without a tenant only who answered it or may answer it.
84
- */
85
- function canView(request, subject, requireDistinct, options) {
86
- const principal = subject.principal;
87
- if (principal === null) return Promise.resolve(false);
88
- if (request.subject.principal?.id === principal.id) return Promise.resolve(true);
89
- const tenant = request.subject.principal?.tenant;
90
- if (tenant !== void 0) return Promise.resolve(belongsToTenant(subject, tenant));
91
- if (request.resolvedBy === principal.id || (request.approvals ?? []).some((item) => item.by === principal.id)) return Promise.resolve(true);
92
- return mayResolve(request, subject, requireDistinct, options);
93
- }
94
- /**
95
- * The tenants whose pending requests the approver may list: the requested one,
96
- * else the active one, else every membership tenant. Requests without a tenant
97
- * are listed only when no tenant was requested or active.
98
- */
99
- function pageQuery(url) {
100
- const limit = url.searchParams.get("limit");
101
- const cursor = url.searchParams.get("cursor");
102
- return compact({
103
- limit: limit === null ? void 0 : Number(limit),
104
- cursor: cursor ?? void 0
105
- });
106
- }
107
- function inboxScope(url, subject) {
108
- const requested = url.searchParams.get("tenant");
109
- if (requested !== null && requested !== "") {
110
- if (!belongsToTenant(subject, requested)) return { ok: false };
111
- return {
112
- ok: true,
113
- tenants: [requested],
114
- tenantless: false
115
- };
116
- }
117
- const active = subject.principal?.tenant;
118
- if (active !== void 0) return {
119
- ok: true,
120
- tenants: [active],
121
- tenantless: false
122
- };
123
- return {
124
- ok: true,
125
- tenants: membershipTenants(subject),
126
- tenantless: true
127
- };
128
- }
129
- function signedApproval(request, signer, audience) {
130
- if (signer === void 0 || request.status !== "approved") return Promise.resolve(void 0);
131
- const payload = { approval: {
132
- token: request.token,
133
- permission: request.permission,
134
- resource: request.resource,
135
- status: request.status
136
- } };
137
- if (request.subject.principal !== null) payload["sub"] = request.subject.principal.id;
138
- return signer.sign(payload, compact({
139
- typ: "permdock-approval+jwt",
140
- audience,
141
- expiresAt: Math.floor(Date.parse(request.expiresAt) / 1e3)
142
- }));
143
- }
144
- const MAX_BODY_BYTES = 16384;
145
- const MAX_NOTE_LENGTH = 2e3;
146
- function tooLarge() {
147
- return problem(413, "Payload too large", `request body exceeds ${String(MAX_BODY_BYTES)} bytes`, "payload-too-large");
148
- }
149
- /** An unreadable body is no note; an oversized body or note is refused, never truncated. */
150
- async function readNote(request) {
151
- const contentType = request.headers.get("content-type") ?? "";
152
- if (request.method !== "POST" || !contentType.includes("application/json")) return {};
153
- if (Number(request.headers.get("content-length") ?? 0) > MAX_BODY_BYTES) return { refusal: tooLarge() };
154
- try {
155
- const text = await request.text();
156
- if (text.length > MAX_BODY_BYTES) return { refusal: tooLarge() };
157
- const body = JSON.parse(text);
158
- if (body !== null && typeof body === "object" && "note" in body && typeof body.note === "string") return body.note.length > MAX_NOTE_LENGTH ? { refusal: problem(400, "Invalid request", `note exceeds ${String(MAX_NOTE_LENGTH)} characters`, "validation") } : { note: body.note };
159
- } catch {
160
- return {};
161
- }
162
- return {};
163
- }
164
- function mapError(error, credentials) {
165
- if (!isApprovalError(error)) return problem(500, "Internal error", "approval store failed", "internal");
166
- if (error.code === "approval-not-found") return problem(404, "Not found", error.message, "not-found");
167
- if (error.code === "approval-not-pending" || error.code === "approval-expired" || error.code === "approver-repeated") return problem(409, "Conflict", error.message, "conflict");
168
- if (error.code === "approver-unauthenticated") return unauthenticatedProblem(credentials);
169
- return problem(403, "Permission denied", error.message, "denied");
170
- }
171
- function approvalsHandler(store, options) {
172
- const requireDistinct = options.requireDistinctApprover === true;
173
- return async (request) => {
174
- const url = new URL(request.url);
175
- const route = parseRoute(url, request.method);
176
- if (route === void 0) return problem(405, "Method not allowed", "unknown approvals route", "method-not-allowed");
177
- await store.expire();
178
- const subject = await resolveSubject(request, options.subject);
179
- const principal = subject?.principal ?? null;
180
- if (subject === null || principal === null) return unauthenticatedProblem(hasCredentials(request));
181
- try {
182
- if (route.kind === "pending") {
183
- const scoped = inboxScope(url, subject);
184
- if (!scoped.ok) return problem(403, "Permission denied", "approver does not belong to that tenant", "denied");
185
- const page = await store.list({
186
- ...pageQuery(url),
187
- status: "pending"
188
- });
189
- const tenants = new Set(scoped.tenants);
190
- const eligible = await Promise.all(page.items.map(async (item) => {
191
- const tenant = item.subject.principal?.tenant;
192
- return (tenant === void 0 ? scoped.tenantless : tenants.has(tenant)) && await mayResolve(item, subject, requireDistinct, options);
193
- }));
194
- return json(200, compact({
195
- items: page.items.filter((_, index) => eligible[index] === true),
196
- next: page.next
197
- }));
198
- }
199
- if (route.kind === "mine") {
200
- const page = await store.list({
201
- ...pageQuery(url),
202
- principalId: principal.id
203
- });
204
- return json(200, compact({
205
- items: page.items,
206
- next: page.next
207
- }));
208
- }
209
- if (route.kind === "get") {
210
- const current = await store.get(route.token);
211
- if (current === null || !await canView(current, subject, requireDistinct, options)) return problem(404, "Not found", "approval was not found", "not-found");
212
- return json(200, current);
213
- }
214
- const current = await store.get(route.token);
215
- if (current === null) return problem(404, "Not found", "approval was not found", "not-found");
216
- const relations = await approverRelations(current, subject, options);
217
- const permissions = await heldPermissions(current, subject, options.permdockFor);
218
- assertApprover(current, subject, requireDistinct, /* @__PURE__ */ new Date(), relations, permissions);
219
- const read = await readNote(request);
220
- if (read.refusal !== void 0) return read.refusal;
221
- const note = read.note;
222
- const resolved = await store.resolve(route.token, compact({
223
- status: route.kind === "approve" ? "approved" : "rejected",
224
- by: subject,
225
- note,
226
- relations,
227
- permissions
228
- }));
229
- const signed = await signedApproval(resolved, options.signer, options.audience);
230
- return json(200, compact({
231
- ...resolved,
232
- signed
233
- }));
234
- } catch (error) {
235
- return mapError(error, hasCredentials(request));
236
- }
237
- };
238
- }
239
- //#endregion
240
- export { approvalsHandler as t };
@@ -1,54 +0,0 @@
1
- import { a as listArg, i as globalArgs, s as stringArg, t as COMMAND_DESCRIPTIONS } from "./commands-Cpip4ULx.js";
2
- import { defineCommand } from "citty";
3
- //#region src/cli/commands/arazzo.ts
4
- function arazzo(ctx) {
5
- return defineCommand({
6
- meta: {
7
- name: "arazzo",
8
- description: COMMAND_DESCRIPTIONS.arazzo
9
- },
10
- args: {
11
- ...globalArgs,
12
- action: {
13
- type: "positional",
14
- required: false,
15
- description: "check"
16
- },
17
- doc: {
18
- type: "string",
19
- description: "Arazzo document",
20
- valueHint: "arazzo.json"
21
- },
22
- openapi: {
23
- type: "string",
24
- description: "OpenAPI document the workflows call",
25
- valueHint: "doc.json"
26
- },
27
- workflow: {
28
- type: "string",
29
- description: "Check one workflow",
30
- valueHint: "id"
31
- },
32
- from: {
33
- type: "string",
34
- description: "Module exporting the policy, instead of the config",
35
- valueHint: "module"
36
- }
37
- },
38
- async run({ args: parsed, rawArgs }) {
39
- const result = await (await import("./arazzo-C4BcskbX.js")).runArazzo({
40
- cwd: ctx.cwd,
41
- config: ctx.config,
42
- rest: parsed._,
43
- doc: listArg(rawArgs, "doc")[0],
44
- openapi: stringArg(parsed.openapi),
45
- workflow: stringArg(parsed.workflow),
46
- from: stringArg(parsed.from),
47
- json: ctx.json
48
- });
49
- ctx.report(result);
50
- }
51
- });
52
- }
53
- //#endregion
54
- export { arazzo };
@@ -1,2 +0,0 @@
1
- import { t as runCatalog } from "./catalog-tZUyOfOv.js";
2
- export { runCatalog };
@@ -1,48 +0,0 @@
1
- import { a as listArg, i as globalArgs, s as stringArg, t as COMMAND_DESCRIPTIONS } from "./commands-Cpip4ULx.js";
2
- import { defineCommand } from "citty";
3
- //#region src/cli/commands/catalog.ts
4
- function catalog(ctx) {
5
- return defineCommand({
6
- meta: {
7
- name: "catalog",
8
- description: COMMAND_DESCRIPTIONS.catalog
9
- },
10
- args: {
11
- ...globalArgs,
12
- format: {
13
- type: "enum",
14
- options: [
15
- "json",
16
- "schema",
17
- "markdown"
18
- ],
19
- default: "json",
20
- description: "Output format"
21
- },
22
- from: {
23
- type: "string",
24
- description: "Module exporting the permissions, instead of the config",
25
- valueHint: "module"
26
- },
27
- include: {
28
- type: "string",
29
- description: "Permission keys or prefixes to keep, repeatable",
30
- valueHint: "key"
31
- }
32
- },
33
- async run({ args: parsed, rawArgs }) {
34
- const result = await (await import("./catalog-6yWAX6Ps.js")).runCatalog({
35
- cwd: ctx.cwd,
36
- config: ctx.config,
37
- format: parsed.format,
38
- from: stringArg(parsed.from),
39
- include: listArg(rawArgs, "include"),
40
- now: ctx.now,
41
- io: ctx.io
42
- });
43
- ctx.report(result);
44
- }
45
- });
46
- }
47
- //#endregion
48
- export { catalog };
@@ -1,50 +0,0 @@
1
- import { i as globalArgs, s as stringArg, t as COMMAND_DESCRIPTIONS } from "./commands-Cpip4ULx.js";
2
- import { defineCommand } from "citty";
3
- //#region src/cli/commands/cloud.ts
4
- function cloud(ctx) {
5
- return defineCommand({
6
- meta: {
7
- name: "cloud",
8
- description: COMMAND_DESCRIPTIONS.cloud
9
- },
10
- args: {
11
- ...globalArgs,
12
- action: {
13
- type: "positional",
14
- required: false,
15
- description: "push"
16
- },
17
- "dry-run": {
18
- type: "boolean",
19
- description: "Print the payload; send nothing"
20
- },
21
- url: {
22
- type: "string",
23
- description: "Cloud API base URL",
24
- valueHint: "url"
25
- },
26
- environment: {
27
- type: "string",
28
- description: "Target environment",
29
- valueHint: "env"
30
- }
31
- },
32
- async run({ args: parsed }) {
33
- const result = await (await import("./cloud-PeBN3IEn.js")).runCloud({
34
- cwd: ctx.cwd,
35
- config: ctx.config,
36
- rest: parsed._,
37
- url: stringArg(parsed.url),
38
- environment: stringArg(parsed.environment),
39
- dryRun: parsed["dry-run"] === true,
40
- json: ctx.json,
41
- env: ctx.io.env ?? process.env,
42
- now: ctx.now,
43
- io: ctx.io
44
- });
45
- ctx.report(result);
46
- }
47
- });
48
- }
49
- //#endregion
50
- export { cloud };
@@ -1,118 +0,0 @@
1
- import { t as catalogFingerprint } from "./src-Bb7no-hS.js";
2
- import { s as snapshotScopes } from "./permdock-L26udHSk.js";
3
- import { i as describeError } from "./errors-CWfoNg9N.js";
4
- import { i as loadConfiguredPolicy } from "./load-C3_oTHyO.js";
5
- import { t as parseCatalog } from "./parse-CVFQHk6c.js";
6
- import { t as runCatalog } from "./catalog-tZUyOfOv.js";
7
- //#region src/cli/cloud.ts
8
- function firstNonEmpty(...values) {
9
- for (const value of values) if (value !== void 0 && value !== "") return value;
10
- return "";
11
- }
12
- function pushedGrant(grant) {
13
- const entry = {
14
- permission: grant.permission.key,
15
- effect: grant.effect,
16
- role: grant.role,
17
- to: grant.to,
18
- where: grant.portable ? grant.where : void 0,
19
- check: grant.portable ? grant.check : void 0,
20
- approval: grant.approval,
21
- scope: grant.scope === "global" ? void 0 : typeof grant.scope === "string" ? grant.scope : { resource: grant.scope.resource },
22
- portable: grant.portable ? void 0 : false,
23
- fields: grant.fields,
24
- limit: grant.limit
25
- };
26
- return Object.fromEntries(Object.entries(entry).filter(([, value]) => value !== void 0));
27
- }
28
- /** The code policy as the hosted AuthZEN endpoint evaluates it; closures travel as `portable: false` and deny there. */
29
- function pushedPolicy(policy) {
30
- const scopes = snapshotScopes(policy);
31
- return {
32
- fingerprint: policy.fingerprint,
33
- ...scopes === void 0 ? {} : { scopes },
34
- grants: policy.grants.filter((grant) => grant.hosted === void 0).map(pushedGrant)
35
- };
36
- }
37
- async function runCloud(input) {
38
- if (input.rest[0] !== "push") return {
39
- code: 2,
40
- output: `usage: permdock cloud push [--dry-run] [--url <url>] [--environment <env>]`
41
- };
42
- const built = await runCatalog({
43
- cwd: input.cwd,
44
- config: input.config,
45
- format: "json",
46
- from: void 0,
47
- include: [],
48
- now: input.now,
49
- io: input.io
50
- });
51
- if (built.code !== 0) return {
52
- code: built.code,
53
- output: built.output
54
- };
55
- const catalog = parseCatalog(built.output);
56
- const fingerprint = catalogFingerprint(catalog);
57
- const loaded = await loadConfiguredPolicy(input.cwd, input.config.policy);
58
- const policy = loaded === void 0 ? void 0 : pushedPolicy(loaded);
59
- const hostable = catalog.permissions.filter((permission) => permission.hostable === true).map((permission) => permission.key);
60
- const summary = {
61
- fingerprint,
62
- permissions: catalog.permissions.length,
63
- hostable,
64
- roles: (catalog.roles ?? []).length,
65
- plans: (catalog.plans ?? []).length,
66
- grants: policy?.grants.length ?? 0
67
- };
68
- const url = firstNonEmpty(input.url, input.env["PERMDOCK_CLOUD_URL"]).replace(/\/$/u, "");
69
- const environment = firstNonEmpty(input.environment, input.env["PERMDOCK_CLOUD_ENV"], input.env["VERCEL_ENV"], "production");
70
- const describe = (verb) => input.json ? JSON.stringify({
71
- ...summary,
72
- environment,
73
- status: verb
74
- }) : `${verb} catalog ${fingerprint} (${String(summary.permissions)} permissions, ${String(hostable.length)} hostable) to ${environment}`;
75
- if (input.dryRun) return {
76
- code: 0,
77
- output: describe("would push")
78
- };
79
- const key = input.env["PERMDOCK_CLOUD_KEY"] ?? "";
80
- if (url === "" || key === "") return {
81
- code: 2,
82
- output: "permdock cloud push needs PERMDOCK_CLOUD_URL (or --url) and PERMDOCK_CLOUD_KEY in the environment"
83
- };
84
- const fetchFn = input.io.fetch ?? globalThis.fetch.bind(globalThis);
85
- let response;
86
- try {
87
- response = await fetchFn(`${url}/v1/environments/${encodeURIComponent(environment)}/catalog`, {
88
- method: "POST",
89
- headers: {
90
- authorization: `Bearer ${key}`,
91
- "content-type": "application/json"
92
- },
93
- body: JSON.stringify(policy === void 0 ? {
94
- fingerprint,
95
- catalog
96
- } : {
97
- fingerprint,
98
- catalog,
99
- policy
100
- })
101
- });
102
- } catch (error) {
103
- return {
104
- code: 1,
105
- output: `PermDock Cloud unreachable: ${describeError(error)}`
106
- };
107
- }
108
- if (!response.ok) return {
109
- code: 1,
110
- output: `PermDock Cloud rejected the catalog: HTTP ${String(response.status)}`
111
- };
112
- return {
113
- code: 0,
114
- output: describe("pushed")
115
- };
116
- }
117
- //#endregion
118
- export { runCloud };
@@ -1,2 +0,0 @@
1
- import { r as runCollect } from "./collect-2SrB7lfk.js";
2
- export { runCollect };
@@ -1,83 +0,0 @@
1
- import { i as describeError } from "./errors-CWfoNg9N.js";
2
- import { a as listArg, i as globalArgs, s as stringArg, t as COMMAND_DESCRIPTIONS } from "./commands-Cpip4ULx.js";
3
- import { defineCommand } from "citty";
4
- //#region src/cli/commands/collect.ts
5
- function collect(ctx) {
6
- return defineCommand({
7
- meta: {
8
- name: "collect",
9
- description: COMMAND_DESCRIPTIONS.collect
10
- },
11
- args: {
12
- ...globalArgs,
13
- check: {
14
- type: "boolean",
15
- description: "Exit 1 when the catalog on disk is stale; write nothing"
16
- },
17
- src: {
18
- type: "string",
19
- description: "Source roots or globs, repeatable or comma-separated",
20
- valueHint: "path"
21
- },
22
- out: {
23
- type: "string",
24
- description: "Catalog file to write",
25
- valueHint: "file"
26
- },
27
- watch: {
28
- type: "boolean",
29
- description: "Collect again when a source, config or policy file changes"
30
- }
31
- },
32
- async run({ args: parsed, rawArgs }) {
33
- const src = listArg(rawArgs, "src");
34
- const out = stringArg(parsed.out);
35
- const overrides = {
36
- ...src.length > 0 ? { srcPath: src } : {},
37
- ...out === void 0 ? {} : { out }
38
- };
39
- if (parsed.watch === true) {
40
- if (parsed.check === true) {
41
- ctx.report({
42
- code: 2,
43
- output: "collect: --watch writes the catalog; drop --check"
44
- });
45
- return;
46
- }
47
- const { createCollectScheduler } = await import("./watch-C8TpsAl4.js");
48
- const scheduler = createCollectScheduler(ctx.cwd, { collect: overrides }, {
49
- ...ctx.configFile === void 0 ? {} : { configFile: ctx.configFile },
50
- report: (message) => {
51
- ctx.io.stderr(message ?? "catalog updated");
52
- }
53
- });
54
- let message;
55
- try {
56
- message = await scheduler.run(false);
57
- } catch (error) {
58
- message = describeError(error);
59
- }
60
- scheduler.watch();
61
- ctx.report({
62
- code: 0,
63
- output: message ?? "watching for changes; Ctrl-C to stop"
64
- });
65
- return;
66
- }
67
- const result = await (await import("./collect-Bw2Jdq1q.js")).runCollect({
68
- cwd: ctx.cwd,
69
- config: ctx.config,
70
- collect: overrides,
71
- check: parsed.check === true,
72
- now: ctx.now,
73
- io: ctx.io
74
- });
75
- ctx.report({
76
- code: result.code,
77
- output: result.message
78
- });
79
- }
80
- });
81
- }
82
- //#endregion
83
- export { collect };