permdock 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/README.md +37 -35
  2. package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
  3. package/dist/a2a/index.d.ts +8 -6
  4. package/dist/a2a/index.js +21 -31
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -23
  10. package/dist/ai-sdk/index.js +38 -21
  11. package/dist/app-data-MuyzVqX8.js +60 -0
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-DJ6Yd5z1.js +995 -0
  18. package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
  19. package/dist/arazzo-B6lebmiQ.js +36 -0
  20. package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
  21. package/dist/args-IIolxxKA.js +197 -0
  22. package/dist/astro/index.d.ts +43 -0
  23. package/dist/astro/index.js +27 -0
  24. package/dist/audience-Dg8XsRaO.js +55 -0
  25. package/dist/auth-DRLEizbL.js +178 -0
  26. package/dist/authzen/index.d.ts +26 -6
  27. package/dist/authzen/index.js +228 -75
  28. package/dist/automation-BMZPIVUM.d.ts +114 -0
  29. package/dist/automation-DVjOckjV.js +157 -0
  30. package/dist/better-auth/index.d.ts +8 -6
  31. package/dist/better-auth/index.js +11 -23
  32. package/dist/better-supabase/index.d.ts +438 -86
  33. package/dist/better-supabase/index.js +1027 -184
  34. package/dist/bind--9EFVYWF.d.ts +38 -0
  35. package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
  36. package/dist/body-CH5of8Ne.js +10 -0
  37. package/dist/body-text-QcXok_SI.js +52 -0
  38. package/dist/build-instance-BMnAudHn.js +52 -0
  39. package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
  40. package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
  41. package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
  42. package/dist/casbin-Cr7RLtA3.js +30 -0
  43. package/dist/casbin-Dyu2gnUD.js +234 -0
  44. package/dist/casl-64gpT-8x.js +24 -0
  45. package/dist/casl-DjEDhTCP.js +299 -0
  46. package/dist/catalog/index.d.ts +74 -2
  47. package/dist/catalog/index.js +51 -2
  48. package/dist/catalog-BECMPrwc.js +100 -0
  49. package/dist/catalog-DjhMYYCq.js +1 -0
  50. package/dist/catalog-R_A__RsH.js +52 -0
  51. package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
  52. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  53. package/dist/chat/index.d.ts +2 -0
  54. package/dist/chat/index.js +224 -0
  55. package/dist/chat-sdk/index.d.ts +87 -0
  56. package/dist/chat-sdk/index.js +197 -0
  57. package/dist/claims-map-7oQ3ue4X.js +13 -0
  58. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  59. package/dist/claude-agent/index.d.ts +7 -14
  60. package/dist/claude-agent/index.js +26 -30
  61. package/dist/clerk/index.d.ts +9 -8
  62. package/dist/clerk/index.js +15 -45
  63. package/dist/cli/bin.js +36 -17
  64. package/dist/cli/index.d.ts +20 -6
  65. package/dist/cli/index.js +164 -4
  66. package/dist/cloud/index.d.ts +102 -63
  67. package/dist/cloud/index.js +240 -347
  68. package/dist/cloud-CIoHNevm.js +87 -0
  69. package/dist/codemod-Bmj9dWMH.js +37 -0
  70. package/dist/codemod-Cxvvc70T.js +2084 -0
  71. package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
  72. package/dist/collect-DloHbDVa.js +55 -0
  73. package/dist/collect-FlXJlhus.js +1 -0
  74. package/dist/command-L8EstFNm.js +6 -0
  75. package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
  76. package/dist/compile/index.d.ts +1 -1
  77. package/dist/compile/index.js +1 -2
  78. package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
  79. package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  80. package/dist/completion-BqhRBJD8.js +143 -0
  81. package/dist/config-B46rm9sc.js +26 -0
  82. package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
  83. package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
  84. package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
  85. package/dist/constants-DcJABbLW.js +20 -0
  86. package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
  87. package/dist/convex/index.d.ts +11 -10
  88. package/dist/convex/index.js +18 -18
  89. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  90. package/dist/create-BDS7wc3y.d.ts +138 -0
  91. package/dist/create-BFfm17UA.d.ts +110 -0
  92. package/dist/create-BWRSXgOF.js +403 -0
  93. package/dist/create-C3b4B5eF.js +130 -0
  94. package/dist/create-DnrmLnLW.js +323 -0
  95. package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
  96. package/dist/credentials-DPyHmYz5.js +74 -0
  97. package/dist/deciding-columns-Sq12mEA6.js +123 -0
  98. package/dist/delegation-DaXVdDhM.js +286 -0
  99. package/dist/delegation-input-FTxMK3ji.js +19 -0
  100. package/dist/delivery/index.d.ts +5 -0
  101. package/dist/delivery/index.js +5 -0
  102. package/dist/delivery-DCAgNyCn.js +499 -0
  103. package/dist/delivery-event-xX4obB8F.js +40 -0
  104. package/dist/denied-text-D8jDHgsl.d.ts +19 -0
  105. package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
  106. package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
  107. package/dist/device-BARQ8eYG.js +193 -0
  108. package/dist/diff-CxZo9pTq.js +37 -0
  109. package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
  110. package/dist/doctor-CxiwSfqH.js +44 -0
  111. package/dist/doctor-DFjUxf2f.js +2361 -0
  112. package/dist/drizzle/index.d.ts +5 -3
  113. package/dist/drizzle/index.js +6 -14
  114. package/dist/elysia/index.d.ts +16 -13
  115. package/dist/elysia/index.js +14 -13
  116. package/dist/env-DJZrPjRi.js +8 -0
  117. package/dist/errors-BDUwg2qC.js +27 -0
  118. package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
  119. package/dist/errors-BWXBMaKK.d.ts +11 -0
  120. package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  121. package/dist/errors-CWTY6uih.js +143 -0
  122. package/dist/evaluate-_R8QkWaf.js +1732 -0
  123. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  124. package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
  125. package/dist/eve/index.d.ts +12 -16
  126. package/dist/eve/index.js +23 -29
  127. package/dist/event-time-CsegxXxB.js +23 -0
  128. package/dist/expiry-D4_YKRKD.js +52 -0
  129. package/dist/express/index.d.ts +13 -10
  130. package/dist/express/index.js +14 -12
  131. package/dist/fastify/index.d.ts +26 -13
  132. package/dist/fastify/index.js +17 -36
  133. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  134. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  135. package/dist/fields-D9tPVUUS.js +203 -0
  136. package/dist/files-C5ZI27eV.js +124 -0
  137. package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
  138. package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
  139. package/dist/flags-C3DktBDY.js +86 -0
  140. package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
  141. package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
  142. package/dist/grantee-Cn1HyUsI.js +254 -0
  143. package/dist/grantee-conditions-CcXf8hMM.js +271 -0
  144. package/dist/grantee-match-DHArqY82.js +142 -0
  145. package/dist/h3/index.d.ts +37 -0
  146. package/dist/h3/index.js +35 -0
  147. package/dist/headers-BIjfMaoC.js +8 -0
  148. package/dist/headers-CIbDTUTK.d.ts +7 -0
  149. package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
  150. package/dist/hono/index.d.ts +12 -9
  151. package/dist/hono/index.js +14 -13
  152. package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
  153. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  154. package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
  155. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  156. package/dist/http-DXJ37RDA.js +46 -0
  157. package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
  158. package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
  159. package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
  160. package/dist/index-BcHcPyIo.d.ts +110 -0
  161. package/dist/index-CaxrMD1A.d.ts +1 -0
  162. package/dist/index-Chrs5fQ-.d.ts +210 -0
  163. package/dist/index-CxGUswIC.d.ts +431 -0
  164. package/dist/index-D8EovfsP.d.ts +91 -0
  165. package/dist/index-DOVf7RJv.d.ts +900 -0
  166. package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
  167. package/dist/index.d.ts +20 -14
  168. package/dist/index.js +33 -23
  169. package/dist/init-DeMYsnYJ.js +96 -0
  170. package/dist/init-GG6Jh8HD.js +95 -0
  171. package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  172. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  173. package/dist/instant-BluqDvyS.js +19 -0
  174. package/dist/internals-Dk8A8fX3.js +17 -0
  175. package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
  176. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  177. package/dist/jwt/index.d.ts +18 -11
  178. package/dist/jwt/index.js +166 -145
  179. package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
  180. package/dist/kysely/index.d.ts +5 -3
  181. package/dist/kysely/index.js +6 -14
  182. package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
  183. package/dist/load-BxEtwlBS.js +1 -0
  184. package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
  185. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  186. package/dist/login-Dfe5RlYk.js +68 -0
  187. package/dist/login-imhuwvn3.js +254 -0
  188. package/dist/manifest-C8IzW3Do.js +42 -0
  189. package/dist/manifest-CtKR3GXL.js +370 -0
  190. package/dist/manifest-json-CAGzls-C.js +9 -0
  191. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  192. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  193. package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
  194. package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
  195. package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
  196. package/dist/mcp/index.d.ts +36 -9
  197. package/dist/mcp/index.js +476 -448
  198. package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
  199. package/dist/nest/index.d.ts +12 -9
  200. package/dist/nest/index.js +20 -20
  201. package/dist/next/index.d.ts +40 -20
  202. package/dist/next/index.js +37 -39
  203. package/dist/next/plugin.d.ts +1 -1
  204. package/dist/next/plugin.js +2 -2
  205. package/dist/node/index.d.ts +10 -10
  206. package/dist/node/index.js +7 -9
  207. package/dist/ocsf-BFp-PZZA.js +126 -0
  208. package/dist/openai/index.d.ts +9 -16
  209. package/dist/openai/index.js +18 -25
  210. package/dist/openapi/index.d.ts +3 -3
  211. package/dist/openapi/index.js +1 -1
  212. package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
  213. package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
  214. package/dist/openapi-ahr8rHu3.js +138 -0
  215. package/dist/operation-findings-DgATDpvh.js +36 -0
  216. package/dist/operations-CxybZErY.d.ts +59 -0
  217. package/dist/orpc/index.d.ts +13 -10
  218. package/dist/orpc/index.js +23 -20
  219. package/dist/otel/index.d.ts +3 -2
  220. package/dist/otel/index.js +53 -27
  221. package/dist/output-Dyw8fyPF.js +88 -0
  222. package/dist/output-files-B3IZJksC.js +1 -0
  223. package/dist/output-files-DhRBBE4n.js +138 -0
  224. package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
  225. package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
  226. package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
  227. package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
  228. package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  229. package/dist/parse-request-D_tUXG6M.js +26 -0
  230. package/dist/paths-DXSHAMIa.js +42 -0
  231. package/dist/pdp/index.d.ts +7 -3
  232. package/dist/pdp/index.js +47 -29
  233. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  234. package/dist/peer-CRvC7Hg1.js +1 -0
  235. package/dist/permdock-B9JxkBwC.js +868 -0
  236. package/dist/permdock-D7eeLJER.d.ts +502 -0
  237. package/dist/permission-registry-Br4jSNVi.js +385 -0
  238. package/dist/permissions-B-wCP5ZC.js +30 -0
  239. package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
  240. package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  241. package/dist/policies-CO1oOymN.js +295 -0
  242. package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  243. package/dist/policy-DLZJ5gAp.js +399 -0
  244. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  245. package/dist/policy-module-CTlwMvLI.js +89 -0
  246. package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
  247. package/dist/postgrest-CW0IqC-U.js +566 -0
  248. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  249. package/dist/powersync-BHfuehf3.js +62 -0
  250. package/dist/powersync-CbzkqL_M.js +1 -0
  251. package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
  252. package/dist/preset/index.d.ts +146 -0
  253. package/dist/preset/index.js +1 -0
  254. package/dist/preset-DZdU0tne.js +1768 -0
  255. package/dist/principal-source-pHneukrx.js +103 -0
  256. package/dist/prisma/index.d.ts +6 -3
  257. package/dist/prisma/index.js +6 -12
  258. package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
  259. package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  260. package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
  261. package/dist/problem-types-CJ2325SZ.js +5 -0
  262. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  263. package/dist/protected-DEPHc2xV.d.ts +38 -0
  264. package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
  265. package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
  266. package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  267. package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
  268. package/dist/pull-BgIfno6w.js +256 -0
  269. package/dist/pull-ByOks_Tg.js +1 -0
  270. package/dist/push-CmFVBOeI.js +116 -0
  271. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  272. package/dist/pushed-policy-DobP7AHI.js +238 -0
  273. package/dist/react/index.d.ts +8 -8
  274. package/dist/react/index.js +6 -6
  275. package/dist/react/provider-client.d.ts +1 -1
  276. package/dist/react/provider-client.js +1 -2
  277. package/dist/react-native/index.d.ts +24 -63
  278. package/dist/react-native/index.js +45 -27
  279. package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
  280. package/dist/relation-walk-3OyDBF0S.js +186 -0
  281. package/dist/relations-BnCWnJGI.js +163 -0
  282. package/dist/renames-CGj7YwcQ.js +175 -0
  283. package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  284. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  285. package/dist/request-context-BTRTG7OT.js +71 -0
  286. package/dist/request-context-C2_1lchh.d.ts +5 -0
  287. package/dist/request-schema-CMreVuFM.js +148 -0
  288. package/dist/resend/index.d.ts +126 -0
  289. package/dist/resend/index.js +379 -0
  290. package/dist/resource-relations-D_jw0BFx.js +243 -0
  291. package/dist/retire-CALjIQ7e.js +240 -0
  292. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  293. package/dist/rls-BA8an5Ap.js +336 -0
  294. package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
  295. package/dist/role-builder-CXbis5-X.js +623 -0
  296. package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
  297. package/dist/run-CNsApDpd.js +1 -0
  298. package/dist/run-DOfMtc9V.js +723 -0
  299. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  300. package/dist/run-ticket-sxFI6LAk.js +337 -0
  301. package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
  302. package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
  303. package/dist/scan-BOI5tJ-6.js +29 -0
  304. package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
  305. package/dist/schema-yLuBWWsh.js +130 -0
  306. package/dist/scim/index.d.ts +2 -2
  307. package/dist/scim/index.js +1 -2
  308. package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
  309. package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
  310. package/dist/server/index.d.ts +13 -134
  311. package/dist/server/index.js +13 -10
  312. package/dist/server-DqCT4CgZ.js +453 -0
  313. package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
  314. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  315. package/dist/shared-CD11nBbC.js +304 -0
  316. package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
  317. package/dist/signals-D3NcTKUS.js +32 -0
  318. package/dist/sink-BEZSlMS_.js +957 -0
  319. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  320. package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
  321. package/dist/skills-CTYwkl44.js +51 -0
  322. package/dist/snapshot-CXUWfsNy.js +269 -0
  323. package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  324. package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  325. package/dist/solid/index.d.ts +24 -25
  326. package/dist/solid/index.js +41 -11
  327. package/dist/solid-start/index.d.ts +52 -0
  328. package/dist/solid-start/index.js +49 -0
  329. package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
  330. package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
  331. package/dist/sql-B5T1IL83.js +55 -0
  332. package/dist/src-DLfUWFAI.js +1851 -0
  333. package/dist/ssf/index.d.ts +4 -4
  334. package/dist/ssf/index.js +440 -106
  335. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  336. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  337. package/dist/storage-C2bWdvJH.js +132 -0
  338. package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
  339. package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
  340. package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
  341. package/dist/stores-ClZUgeoP.d.ts +30 -0
  342. package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  343. package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
  344. package/dist/style-DiKWnAvn.js +1 -0
  345. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  346. package/dist/subject-BGoM5o8B.js +17 -0
  347. package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
  348. package/dist/supabase/index.d.ts +23 -106
  349. package/dist/supabase/index.js +5 -4
  350. package/dist/supabase/middleware.d.ts +13 -6
  351. package/dist/supabase/middleware.js +16 -11
  352. package/dist/supabase-9pqI57pW.js +92 -0
  353. package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
  354. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  355. package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
  356. package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
  357. package/dist/support-session-C6xJQYut.js +158 -0
  358. package/dist/svelte/Protected.svelte +11 -4
  359. package/dist/svelte/index.d.ts +7 -7
  360. package/dist/svelte/index.js +26 -12
  361. package/dist/svelte/runtime.d.ts +10 -3
  362. package/dist/svelte/runtime.js +4 -3
  363. package/dist/svelte/source.d.ts +7 -7
  364. package/dist/svelte/source.js +5 -5
  365. package/dist/sveltekit/index.d.ts +51 -0
  366. package/dist/sveltekit/index.js +27 -0
  367. package/dist/tanstack-start/index.d.ts +51 -0
  368. package/dist/tanstack-start/index.js +40 -0
  369. package/dist/target-Bw37TFNA.js +51 -0
  370. package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
  371. package/dist/terminal/index.d.ts +11 -9
  372. package/dist/terminal/index.js +36 -316
  373. package/dist/testing/index.d.ts +391 -106
  374. package/dist/testing/index.js +4574 -1286
  375. package/dist/testing/saas/index.d.ts +9 -8
  376. package/dist/testing/saas/index.js +2 -2
  377. package/dist/testing/saas/permissions.d.ts +1 -1
  378. package/dist/testing/saas/permissions.js +1 -2
  379. package/dist/text-BMFRfBqc.js +8 -0
  380. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  381. package/dist/thenable-yD7SabqG.js +31 -0
  382. package/dist/time-DkWjdL98.js +71 -0
  383. package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
  384. package/dist/tool-refusal-CMLN5xhn.js +41 -0
  385. package/dist/trpc/index.d.ts +12 -9
  386. package/dist/trpc/index.js +18 -17
  387. package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
  388. package/dist/types-BNORmDM8.d.ts +172 -0
  389. package/dist/types-BjV-fqcA.d.ts +57 -0
  390. package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
  391. package/dist/types-C8-KNsFf.d.ts +107 -0
  392. package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  393. package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
  394. package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
  395. package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
  396. package/dist/types-DX0LaKTb.d.ts +157 -0
  397. package/dist/types-DiQjupG2.d.ts +332 -0
  398. package/dist/types-DqzsnlSA.js +67 -0
  399. package/dist/types-_sHy8BQf.d.ts +65 -0
  400. package/dist/types-fbZ7JEXr.d.ts +89 -0
  401. package/dist/types-tIgIeIKJ.d.ts +66 -0
  402. package/dist/unplugin/index.d.ts +1 -1
  403. package/dist/unplugin/index.js +2 -2
  404. package/dist/usage-CHOtwL19.js +1 -0
  405. package/dist/usage-DHtE8j4E.js +32 -0
  406. package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
  407. package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  408. package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
  409. package/dist/validity-CZ7-y0Cj.js +79 -0
  410. package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
  411. package/dist/verify-DbCL9bnB.js +1770 -0
  412. package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
  413. package/dist/version-DXkYUISx.js +1 -0
  414. package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
  415. package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
  416. package/dist/vue/index.d.ts +25 -21
  417. package/dist/vue/index.js +25 -9
  418. package/dist/waiter-BGUtGYoU.js +67 -0
  419. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  420. package/dist/watch-Cb-NcaUw.js +1 -0
  421. package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
  422. package/dist/webmcp/index.d.ts +2 -2
  423. package/dist/webmcp/index.js +13 -37
  424. package/dist/where-scope-Dv-WTP-w.js +306 -0
  425. package/dist/who-can-D0QoYbEb.js +364 -0
  426. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  427. package/dist/wire-denial-C7PaVYEM.js +27 -0
  428. package/dist/workflow/index.d.ts +5 -0
  429. package/dist/workflow/index.js +223 -0
  430. package/dist/workflow-sdk/index.d.ts +56 -0
  431. package/dist/workflow-sdk/index.js +78 -0
  432. package/dist/wrap-Bd1Tejur.d.ts +15 -0
  433. package/dist/wrap-gX61EtpB.js +27 -0
  434. package/package.json +140 -41
  435. package/schemas/access-event-v1.json +118 -0
  436. package/schemas/approval-request-v1.json +34 -1
  437. package/schemas/approval-signature-v1.json +94 -0
  438. package/schemas/automation-event-v1.json +113 -0
  439. package/schemas/capability-v1.json +84 -0
  440. package/schemas/catalog-event-v1.json +87 -0
  441. package/schemas/catalog-v1.json +129 -12
  442. package/schemas/cli-commands-v1.json +164 -0
  443. package/schemas/cli-result-v1.json +96 -0
  444. package/schemas/cloud-api-v1.json +5407 -0
  445. package/schemas/connector-v1.json +408 -0
  446. package/schemas/credential-event-v1.json +81 -0
  447. package/schemas/credential-v1.json +134 -0
  448. package/schemas/decision-event-v1.json +288 -0
  449. package/schemas/delivery-event-v1.json +117 -0
  450. package/schemas/directory-event-v1.json +85 -0
  451. package/schemas/evidence-export-v1.json +54 -0
  452. package/schemas/membership-event-v1.json +93 -0
  453. package/schemas/policy-v1.json +68 -0
  454. package/schemas/pushed-policy-v1.json +236 -0
  455. package/schemas/run-v1.json +162 -0
  456. package/schemas/snapshot-v1.json +138 -0
  457. package/schemas/supabase-claims-v1.json +4 -4
  458. package/schemas/supabase-manifest-v1.json +5 -1
  459. package/schemas/support-session-v1.json +111 -0
  460. package/skills/permdock/SKILL.md +16 -12
  461. package/skills/permdock-agents/SKILL.md +40 -23
  462. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  463. package/skills/permdock-agents/references/runtimes.md +22 -18
  464. package/skills/permdock-approvals/SKILL.md +29 -13
  465. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  466. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  467. package/skills/permdock-audit/SKILL.md +3 -3
  468. package/skills/permdock-credentials/SKILL.md +5 -5
  469. package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
  470. package/skills/permdock-data/SKILL.md +6 -6
  471. package/skills/permdock-data/references/queries-and-rls.md +13 -8
  472. package/skills/permdock-data/references/relationships.md +3 -3
  473. package/skills/permdock-tenancy/SKILL.md +20 -7
  474. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  475. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  476. package/skills/permdock-wire/SKILL.md +18 -12
  477. package/skills/permdock-wire/references/adapters.md +146 -50
  478. package/skills/permdock-wire/references/policy-options.md +15 -6
  479. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  480. package/dist/approvals-DbYAuNkG.js +0 -224
  481. package/dist/arazzo-C9chp3ST.js +0 -54
  482. package/dist/bind-C_ob3LKa.d.ts +0 -25
  483. package/dist/catalog-CRW5Mx_B.js +0 -2
  484. package/dist/catalog-CYj-mX2O.js +0 -48
  485. package/dist/catalog-DWF5cYqB.js +0 -55
  486. package/dist/cloud-CfwZ39Rl.js +0 -50
  487. package/dist/cloud-DWLXO2af.js +0 -118
  488. package/dist/collect-CHB22Sx4.js +0 -83
  489. package/dist/collect-DSWOk19R.js +0 -2
  490. package/dist/commands-BeaGNj_o.js +0 -97
  491. package/dist/config-ir40y8m0.js +0 -36
  492. package/dist/create-CMwIl-w2.js +0 -253
  493. package/dist/delegation-D8pUEuce.js +0 -103
  494. package/dist/diff-C9RDjjhs.js +0 -48
  495. package/dist/doctor-Djh6JDEk.js +0 -53
  496. package/dist/doctor-DvH0IQff.js +0 -1194
  497. package/dist/doctor-collect-CjdO0wQX.js +0 -665
  498. package/dist/duration-xK2jGFVc.js +0 -25
  499. package/dist/errors-CWfoNg9N.js +0 -47
  500. package/dist/errors-DRnGZHzF.js +0 -30
  501. package/dist/evaluation-items-CfCCejQd.js +0 -40
  502. package/dist/expiry-BoBJ8Tvc.js +0 -7
  503. package/dist/fields-BMl1RxoX.js +0 -26
  504. package/dist/grantee-Cv5Sogfv.js +0 -602
  505. package/dist/headers-BZSDieNT.js +0 -6
  506. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  507. package/dist/ids-DC4V4CFu.js +0 -18
  508. package/dist/index-0nNqHspG.d.ts +0 -6
  509. package/dist/index-BNc7Wer_.d.ts +0 -483
  510. package/dist/index-C7Tw7MaW.d.ts +0 -201
  511. package/dist/instance-options-Dhhcnm3y.js +0 -22
  512. package/dist/load-DwJUafYN.js +0 -2
  513. package/dist/manifest-iaoBXHKc.js +0 -783
  514. package/dist/map-AcxK9o_D.js +0 -147
  515. package/dist/may-use-DndQ5tQ-.js +0 -77
  516. package/dist/openapi-CQTsgKoB.js +0 -164
  517. package/dist/permdock-CbgvLnuo.js +0 -3479
  518. package/dist/permissions-DVoF6dMt.js +0 -662
  519. package/dist/policy-xyWg7QdR.js +0 -1122
  520. package/dist/powersync-CrBX8hY6.js +0 -2
  521. package/dist/powersync-DE19b9dT.js +0 -62
  522. package/dist/protected-BdnIEFkY.d.ts +0 -27
  523. package/dist/protected-xAr24FEC.d.ts +0 -40
  524. package/dist/relations-cjOL01hZ.js +0 -505
  525. package/dist/rls-P-BeBx0n.js +0 -238
  526. package/dist/rls-graph-CHwx0V8q.js +0 -435
  527. package/dist/rls-ownership-DcYlZ09B.js +0 -843
  528. package/dist/rls-shared-Cewd_-zI.js +0 -495
  529. package/dist/rls-verify-CMv9H3wV.js +0 -746
  530. package/dist/run-BWc9qqvE.js +0 -174
  531. package/dist/server-DlZ28Oz5.js +0 -268
  532. package/dist/sink-B1fZzIMf.d.ts +0 -104
  533. package/dist/sink-Bd9PSyfq.js +0 -141
  534. package/dist/skills-C5CbhhpG.js +0 -56
  535. package/dist/snapshot-Enxd0n-s.js +0 -975
  536. package/dist/sql-xdg5f4Fi.js +0 -27
  537. package/dist/src-BDwEZWrZ.js +0 -568
  538. package/dist/store-jOBYpiXC.d.ts +0 -36
  539. package/dist/stores-C0IMQrGI.d.ts +0 -52
  540. package/dist/subject-C6dLxqHU.js +0 -24
  541. package/dist/supabase-config-Bj3iDH2I.js +0 -472
  542. package/dist/supabase-hook-gd3s8bxB.js +0 -2
  543. package/dist/supabase-s4o9s1O1.js +0 -83
  544. package/dist/thenable-okc2xDsj.js +0 -10
  545. package/dist/types-BnIEz1sU.d.ts +0 -48
  546. package/dist/types-Bvc4oWT6.d.ts +0 -9
  547. package/dist/types-CKNSyIf_.d.ts +0 -52
  548. package/dist/types-Cq_H8N_X.d.ts +0 -197
  549. package/dist/usage-B0YuTQRO.js +0 -42
  550. package/dist/usage-DorAJiU_.js +0 -2
  551. package/dist/vocabulary-DA8a8zif.d.ts +0 -56
  552. package/dist/watch-BwxLTYMZ.js +0 -2
@@ -0,0 +1,193 @@
1
+ import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
+ import { h as secondsAt } from "./time-DkWjdL98.js";
3
+ import { n as readBodyText } from "./body-text-QcXok_SI.js";
4
+ import { t as timeoutSignal } from "./timeout-D51niuQP.js";
5
+ //#region src/terminal/device.ts
6
+ /** Milliseconds an authorization server request may take. */
7
+ const TERMINAL_TIMEOUT_MS = 1e4;
8
+ async function readJson(response) {
9
+ const text = await readBodyText(response);
10
+ if (!text.ok) return null;
11
+ try {
12
+ const body = JSON.parse(text.text);
13
+ return isRecord(body) ? body : null;
14
+ } catch {
15
+ return null;
16
+ }
17
+ }
18
+ /** POSTs a form and reads a JSON object back; any network or parse failure is `null`. */
19
+ async function postForm(runtime, url, fields) {
20
+ const fetchImpl = runtime.fetch ?? fetch;
21
+ try {
22
+ return await readJson(await fetchImpl(url, {
23
+ method: "POST",
24
+ headers: { "content-type": "application/x-www-form-urlencoded" },
25
+ body: new URLSearchParams(fields),
26
+ signal: timeoutSignal(TERMINAL_TIMEOUT_MS)
27
+ }));
28
+ } catch {
29
+ return null;
30
+ }
31
+ }
32
+ function withoutTrailingSlash(url) {
33
+ return url.replace(/\/+$/u, "");
34
+ }
35
+ /**
36
+ * Where RFC 8414 metadata may live: the well-known segment inserted before
37
+ * the issuer's path (section 3.1), then appended after it for servers that
38
+ * predate the rule. An issuer without a path has one location.
39
+ */
40
+ function metadataUrls(issuer) {
41
+ const parsed = new URL(issuer);
42
+ const path = withoutTrailingSlash(parsed.pathname);
43
+ const inserted = `${parsed.origin}/.well-known/oauth-authorization-server${path}`;
44
+ return path === "" ? [inserted] : [inserted, `${withoutTrailingSlash(issuer)}/.well-known/oauth-authorization-server`];
45
+ }
46
+ /**
47
+ * The issuer's RFC 8414 metadata, or `null`. Metadata whose `issuer` is not
48
+ * the configured issuer is refused (section 3.3), so a mix-up never routes a
49
+ * credential to another server.
50
+ */
51
+ async function discoverAuthorizationServer(issuer, runtime) {
52
+ const fetchImpl = runtime.fetch ?? fetch;
53
+ let urls;
54
+ try {
55
+ urls = metadataUrls(issuer);
56
+ } catch {
57
+ return null;
58
+ }
59
+ for (const url of urls) {
60
+ let body;
61
+ try {
62
+ const response = await fetchImpl(url, { signal: timeoutSignal(TERMINAL_TIMEOUT_MS) });
63
+ body = response.ok ? await readJson(response) : null;
64
+ } catch {
65
+ body = null;
66
+ }
67
+ if (body === null) continue;
68
+ return typeof body["issuer"] === "string" && withoutTrailingSlash(body["issuer"]) === withoutTrailingSlash(issuer) ? body : null;
69
+ }
70
+ return null;
71
+ }
72
+ async function discoverDeviceEndpoints(issuer, runtime) {
73
+ const body = await discoverAuthorizationServer(issuer, runtime);
74
+ if (body === null) return {};
75
+ return compact({
76
+ authorizationEndpoint: stringField(body, "device_authorization_endpoint"),
77
+ tokenEndpoint: stringField(body, "token_endpoint"),
78
+ revocationEndpoint: stringField(body, "revocation_endpoint")
79
+ });
80
+ }
81
+ function stringField(body, name) {
82
+ const value = body[name];
83
+ return typeof value === "string" ? value : void 0;
84
+ }
85
+ function parseAuthorization(body) {
86
+ if (typeof body["device_code"] !== "string" || typeof body["user_code"] !== "string" || typeof body["verification_uri"] !== "string" || typeof body["expires_in"] !== "number") return null;
87
+ return compact({
88
+ device_code: body["device_code"],
89
+ user_code: body["user_code"],
90
+ verification_uri: body["verification_uri"],
91
+ verification_uri_complete: typeof body["verification_uri_complete"] === "string" ? body["verification_uri_complete"] : void 0,
92
+ expires_in: body["expires_in"],
93
+ interval: typeof body["interval"] === "number" ? body["interval"] : void 0
94
+ });
95
+ }
96
+ function parseToken(body, now) {
97
+ if (typeof body["error"] === "string") return {
98
+ ok: false,
99
+ error: body["error"]
100
+ };
101
+ if (typeof body["access_token"] !== "string") return {
102
+ ok: false,
103
+ error: "invalid-token"
104
+ };
105
+ return {
106
+ ok: true,
107
+ credential: compact({
108
+ access_token: body["access_token"],
109
+ refresh_token: typeof body["refresh_token"] === "string" ? body["refresh_token"] : void 0,
110
+ expires_at: typeof body["expires_in"] === "number" ? now + body["expires_in"] : void 0,
111
+ token_type: typeof body["token_type"] === "string" ? body["token_type"] : void 0,
112
+ scope: stringField(body, "scope")
113
+ })
114
+ };
115
+ }
116
+ async function runDeviceFlow(device, runtime, write) {
117
+ const sleep = runtime.sleep ?? defaultSleep;
118
+ const now = () => secondsAt(runtime.now?.());
119
+ let authorizationEndpoint = device.authorizationEndpoint;
120
+ let tokenEndpoint = device.tokenEndpoint;
121
+ if ((authorizationEndpoint === void 0 || tokenEndpoint === void 0) && device.issuer !== void 0) {
122
+ const discovered = await discoverDeviceEndpoints(device.issuer, runtime);
123
+ authorizationEndpoint = authorizationEndpoint ?? discovered.authorizationEndpoint;
124
+ tokenEndpoint = tokenEndpoint ?? discovered.tokenEndpoint;
125
+ }
126
+ if (authorizationEndpoint === void 0 || tokenEndpoint === void 0) return null;
127
+ const startedBody = await postForm(runtime, authorizationEndpoint, {
128
+ client_id: device.clientId,
129
+ scope: device.scope ?? ""
130
+ });
131
+ const authorization = startedBody === null ? null : parseAuthorization(startedBody);
132
+ if (authorization === null) return null;
133
+ device.onPrompt?.(compact({
134
+ user_code: authorization.user_code,
135
+ verification_uri: authorization.verification_uri,
136
+ verification_uri_complete: authorization.verification_uri_complete
137
+ }));
138
+ write(`Visit ${authorization.verification_uri} and enter ${authorization.user_code}\n`);
139
+ if (authorization.verification_uri_complete !== void 0) device.open?.(authorization.verification_uri_complete);
140
+ let interval = authorization.interval ?? 5;
141
+ const deadline = now() + authorization.expires_in;
142
+ while (now() < deadline) {
143
+ await sleep(interval * 1e3);
144
+ const polledBody = await postForm(runtime, tokenEndpoint, {
145
+ grant_type: "urn:ietf:params:oauth:grant-type:device_code",
146
+ device_code: authorization.device_code,
147
+ client_id: device.clientId
148
+ });
149
+ if (polledBody === null) return null;
150
+ const token = parseToken(polledBody, now());
151
+ if (token.ok) return token.credential;
152
+ if (token.error === "slow_down") {
153
+ interval += 5;
154
+ continue;
155
+ }
156
+ if (token.error === "authorization_pending") continue;
157
+ return null;
158
+ }
159
+ return null;
160
+ }
161
+ async function refreshCredential(device, credential, runtime) {
162
+ if (credential.refresh_token === void 0) return null;
163
+ const now = () => secondsAt(runtime.now?.());
164
+ let tokenEndpoint = device.tokenEndpoint;
165
+ if (tokenEndpoint === void 0 && device.issuer !== void 0) tokenEndpoint = (await discoverDeviceEndpoints(device.issuer, runtime)).tokenEndpoint;
166
+ if (tokenEndpoint === void 0) return null;
167
+ const body = await postForm(runtime, tokenEndpoint, {
168
+ grant_type: "refresh_token",
169
+ refresh_token: credential.refresh_token,
170
+ client_id: device.clientId
171
+ });
172
+ if (body === null) return null;
173
+ const token = parseToken(body, now());
174
+ return token.ok ? token.credential : null;
175
+ }
176
+ async function revokeCredential(device, credential, runtime) {
177
+ if (device === void 0 || credential.refresh_token === void 0) return;
178
+ let revocationEndpoint = device.revocationEndpoint;
179
+ if (revocationEndpoint === void 0 && device.issuer !== void 0) revocationEndpoint = (await discoverDeviceEndpoints(device.issuer, runtime)).revocationEndpoint;
180
+ if (revocationEndpoint === void 0) return;
181
+ await postForm(runtime, revocationEndpoint, {
182
+ token: credential.refresh_token,
183
+ token_type_hint: "refresh_token",
184
+ client_id: device.clientId
185
+ });
186
+ }
187
+ function defaultSleep(ms) {
188
+ return new Promise((resolve) => {
189
+ setTimeout(resolve, ms);
190
+ });
191
+ }
192
+ //#endregion
193
+ export { refreshCredential as a, stringField as c, postForm as i, discoverAuthorizationServer as n, revokeCredential as o, parseToken as r, runDeviceFlow as s, TERMINAL_TIMEOUT_MS as t };
@@ -0,0 +1,37 @@
1
+ import { t as defineLeaf } from "./command-L8EstFNm.js";
2
+ import { c as given } from "./flags-C3DktBDY.js";
3
+ //#region src/cli/commands/diff.ts
4
+ const diff = defineLeaf({
5
+ positionals: [{
6
+ name: "before",
7
+ description: "A permissions.catalog.json or a module exporting policy (default the committed catalog)"
8
+ }, {
9
+ name: "after",
10
+ description: "The same, for the new side (default the working tree)"
11
+ }],
12
+ flags: {
13
+ impact: {
14
+ type: "boolean",
15
+ description: "Run the fixtures through both sides and report changed outcomes"
16
+ },
17
+ fixtures: {
18
+ type: "string",
19
+ description: "Fixtures file for --impact",
20
+ valueHint: "file"
21
+ }
22
+ },
23
+ async run(ctx, { flags, args }) {
24
+ return (await import("./diff-DCePiN6M.js")).runDiff({
25
+ cwd: ctx.cwd,
26
+ config: ctx.config,
27
+ sources: [args["before"], args["after"]].filter((value) => value !== void 0),
28
+ impact: flags.impact,
29
+ fixtures: given(flags.fixtures),
30
+ json: ctx.json,
31
+ now: ctx.now,
32
+ io: ctx.io
33
+ });
34
+ }
35
+ });
36
+ //#endregion
37
+ export { diff };
@@ -1,15 +1,60 @@
1
- import { i as findPermission } from "./permissions-DVoF6dMt.js";
2
- import { _ as memoryRoleSource } from "./src-BDwEZWrZ.js";
3
- import { t as canonicalJson } from "./canonical-json-DemiK4Vp.js";
4
- import { t as createPermDock } from "./permdock-CbgvLnuo.js";
5
- import { o as usageResult } from "./errors-CWfoNg9N.js";
6
- import { t as buildCatalog } from "./catalog-doc-DdGm82XT.js";
7
- import { a as loadModule, n as asPolicy, o as pickNamed } from "./load-DhWEB9P1.js";
8
- import { t as parseCatalog } from "./parse-BuyjxhZV.js";
9
- import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-ht28Cplr.js";
1
+ import { E as memoryCustomRoleSource } from "./src-DLfUWFAI.js";
2
+ import { n as findPermission } from "./permission-registry-Br4jSNVi.js";
3
+ import { g as secondsOf } from "./time-DkWjdL98.js";
4
+ import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
5
+ import { t as getPermDock } from "./permdock-B9JxkBwC.js";
6
+ import { i as configError, u as usageResult } from "./errors-CWTY6uih.js";
7
+ import { t as buildCatalog } from "./catalog-doc-C9wjsfNY.js";
8
+ import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DFS_ry0W.js";
9
+ import { t as parseCatalog } from "./parse-Cxq0WxrA.js";
10
+ import { t as operationFindings } from "./operation-findings-DgATDpvh.js";
11
+ import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-B7XrLeY7.js";
10
12
  import { existsSync, readFileSync } from "node:fs";
11
13
  import { resolve } from "node:path";
12
- //#region src/cli/diff.ts
14
+ //#region src/cli/diff/format.ts
15
+ function describeGrant(grant) {
16
+ const role = grant.role === null ? "top-level" : `role ${grant.role}`;
17
+ const scope = grant.scope === "global" ? "" : typeof grant.scope === "string" ? ` in ${grant.scope}` : ` on ${grant.scope.resource}`;
18
+ return `${grant.effect} ${grant.permission} (${role}${scope})`;
19
+ }
20
+ function describeDelegation(delegation) {
21
+ const narrowed = delegation.to.id ?? delegation.to.client;
22
+ const to = narrowed === void 0 ? delegation.to.kind : `${delegation.to.kind} ${narrowed}`;
23
+ return `delegation ${canonicalJson(delegation.from)} → ${to} (${delegation.permissions.join(", ")})`;
24
+ }
25
+ function formatText(diff) {
26
+ const lines = [];
27
+ const section = (title, added, removed, changed = []) => {
28
+ if (added.length === 0 && removed.length === 0 && changed.length === 0) return;
29
+ lines.push(title);
30
+ for (const item of added) lines.push(` + ${item}`);
31
+ for (const item of removed) lines.push(` - ${item}`);
32
+ for (const item of changed) lines.push(` ~ ${item}`);
33
+ };
34
+ section("permissions", diff.permissions.added, diff.permissions.removed, diff.permissions.renamed.map((rename) => `${rename.from} → ${rename.to} (renamed)`));
35
+ section("levels", diff.levels.added.map((item) => `${item.permission}@${item.level}`), diff.levels.removed.map((item) => `${item.permission}@${item.level}`));
36
+ section("scopes", diff.scopes.added, diff.scopes.removed);
37
+ section("roles", diff.roles.added, diff.roles.removed, diff.roles.changed.map((name) => `${name}: declaration changed`));
38
+ if (diff.grants === void 0) lines.push("grants: not compared (a catalog was built without its policy; run `permdock collect` with `policy` configured)");
39
+ else section("grants", diff.grants.added.map(describeGrant), diff.grants.removed.map(describeGrant), diff.grants.changed.map((change) => `${describeGrant(change.after)}: ${change.changes.join(", ")}`));
40
+ if (diff.delegations !== void 0) section("delegations", diff.delegations.added.map(describeDelegation), diff.delegations.removed.map(describeDelegation), diff.delegations.changed.map((change) => `${describeDelegation(change.after)}: ${change.changes.join(", ")}`));
41
+ section("operations", [], [], diff.operations.map((finding) => `${[finding.operation, `(${finding.permission})`].join(" ")}: ${finding.code === "operation-risk-raised" ? `risk ${[finding.previous, finding.risk].join(" → ")}` : "approval no longer required"}`));
42
+ if (diff.impact !== void 0) {
43
+ lines.push(diff.impact.length === 0 ? "impact: no fixture changes outcome" : `impact (${String(diff.impact.length)} fixture(s) change outcome)`);
44
+ for (const row of diff.impact) {
45
+ const where = row.tenant === void 0 ? "" : ` in ${row.tenant}`;
46
+ lines.push(` ${row.subject}${where} ${row.action}: ${row.before} → ${row.after}`);
47
+ }
48
+ }
49
+ if (lines.length === 0) lines.push("no changes");
50
+ if (diff.breaking.length > 0) {
51
+ lines.push(`breaking (${String(diff.breaking.length)})`);
52
+ for (const change of diff.breaking) lines.push(` ${change.kind}: ${change.detail}`);
53
+ }
54
+ return `${lines.join("\n")}\n`;
55
+ }
56
+ //#endregion
57
+ //#region src/cli/diff/diff.ts
13
58
  const EMPTY_SCAN = {
14
59
  roots: [],
15
60
  definitionFiles: {},
@@ -24,7 +69,7 @@ const EMPTY_SCAN = {
24
69
  };
25
70
  async function loadSide(cwd, source, now) {
26
71
  const abs = resolve(cwd, source);
27
- if (!existsSync(abs)) throw new Error(`PermDock CLI: not found: ${source}`);
72
+ if (!existsSync(abs)) throw configError(`PermDock CLI: not found: ${source}`);
28
73
  if (abs.endsWith(".json")) return {
29
74
  source,
30
75
  catalog: parseCatalog(readFileSync(abs, "utf8")),
@@ -78,8 +123,8 @@ function fieldsChange(before, after) {
78
123
  const kept = new Set(after);
79
124
  return before.every((field) => kept.has(field)) ? "fields widened" : "fields narrowed";
80
125
  }
81
- const validFrom = (value) => value?.from ?? Number.NEGATIVE_INFINITY;
82
- const validUntil = (value) => value?.until ?? Number.POSITIVE_INFINITY;
126
+ const validFrom = (value) => secondsOf(value?.from) ?? Number.NEGATIVE_INFINITY;
127
+ const validUntil = (value) => secondsOf(value?.until) ?? Number.POSITIVE_INFINITY;
83
128
  /** Narrowed when the window starts later or ends earlier than before; a new window on an open grant narrows it. */
84
129
  function validityChange(before, after) {
85
130
  return validFrom(after) > validFrom(before) || validUntil(after) < validUntil(before) ? "validity narrowed" : "validity widened";
@@ -98,22 +143,12 @@ const NARROWING = /* @__PURE__ */ new Set([
98
143
  "purpose changed",
99
144
  "portable: false"
100
145
  ]);
101
- function describeGrant(grant) {
102
- const role = grant.role === null ? "top-level" : `role ${grant.role}`;
103
- const scope = grant.scope === "global" ? "" : typeof grant.scope === "string" ? ` in ${grant.scope}` : ` on ${grant.scope.resource}`;
104
- return `${grant.effect} ${grant.permission} (${role}${scope})`;
105
- }
106
146
  function delegationIdentity(delegation) {
107
147
  return canonicalJson({
108
148
  from: delegation.from,
109
149
  to: delegation.to
110
150
  });
111
151
  }
112
- function describeDelegation(delegation) {
113
- const narrowed = delegation.to.id ?? delegation.to.client;
114
- const to = narrowed === void 0 ? delegation.to.kind : `${delegation.to.kind} ${narrowed}`;
115
- return `delegation ${canonicalJson(delegation.from)} → ${to} (${delegation.permissions.join(", ")})`;
116
- }
117
152
  function delegationChanges(before, after) {
118
153
  const changes = [];
119
154
  const lost = before.permissions.filter((key) => !after.permissions.includes(key));
@@ -340,16 +375,17 @@ function diffCatalogs(original, b) {
340
375
  },
341
376
  ...grants === void 0 ? {} : { grants },
342
377
  ...delegations === void 0 ? {} : { delegations },
378
+ operations: operationFindings(original.catalog, b.catalog),
343
379
  breaking
344
380
  };
345
381
  }
346
382
  async function impactOf(input) {
347
383
  const { fixtures, customRoles } = await loadFixtures(input.cwd, input.fixtures);
348
- const now = Math.floor(input.now.getTime() / 1e3);
384
+ const now = { epochMilliseconds: Math.floor(input.now.getTime() / 1e3) * 1e3 };
349
385
  const outcome = async (policy, fixture) => {
350
386
  const permission = findPermission(policy.permissions, fixture.action);
351
387
  if (permission === void 0) return "unknown";
352
- const [decision] = (await createPermDock(policy, fixtureSubject(fixture.subject), { customRoles: memoryRoleSource(customRoles) })).simulate([[permission, fixtureRow(fixture, permission.kind)]], { now });
388
+ const [decision] = (await getPermDock(policy, fixtureSubject(fixture.subject), { customRoles: memoryCustomRoleSource(customRoles) })).simulate([[permission, fixtureRow(fixture, permission.kind)]], { now });
353
389
  return decision?.outcome ?? "denied";
354
390
  };
355
391
  const rows = [];
@@ -375,36 +411,6 @@ async function impactOf(input) {
375
411
  breaking
376
412
  };
377
413
  }
378
- function formatText(diff) {
379
- const lines = [];
380
- const section = (title, added, removed, changed = []) => {
381
- if (added.length === 0 && removed.length === 0 && changed.length === 0) return;
382
- lines.push(title);
383
- for (const item of added) lines.push(` + ${item}`);
384
- for (const item of removed) lines.push(` - ${item}`);
385
- for (const item of changed) lines.push(` ~ ${item}`);
386
- };
387
- section("permissions", diff.permissions.added, diff.permissions.removed, diff.permissions.renamed.map((rename) => `${rename.from} → ${rename.to} (renamed)`));
388
- section("levels", diff.levels.added.map((item) => `${item.permission}@${item.level}`), diff.levels.removed.map((item) => `${item.permission}@${item.level}`));
389
- section("scopes", diff.scopes.added, diff.scopes.removed);
390
- section("roles", diff.roles.added, diff.roles.removed, diff.roles.changed.map((name) => `${name}: declaration changed`));
391
- if (diff.grants === void 0) lines.push("grants: not compared (a catalog was built without its policy; run `permdock collect` with `policy` configured)");
392
- else section("grants", diff.grants.added.map(describeGrant), diff.grants.removed.map(describeGrant), diff.grants.changed.map((change) => `${describeGrant(change.after)}: ${change.changes.join(", ")}`));
393
- if (diff.delegations !== void 0) section("delegations", diff.delegations.added.map(describeDelegation), diff.delegations.removed.map(describeDelegation), diff.delegations.changed.map((change) => `${describeDelegation(change.after)}: ${change.changes.join(", ")}`));
394
- if (diff.impact !== void 0) {
395
- lines.push(diff.impact.length === 0 ? "impact: no fixture changes outcome" : `impact (${String(diff.impact.length)} fixture(s) change outcome)`);
396
- for (const row of diff.impact) {
397
- const where = row.tenant === void 0 ? "" : ` in ${row.tenant}`;
398
- lines.push(` ${row.subject}${where} ${row.action}: ${row.before} → ${row.after}`);
399
- }
400
- }
401
- if (lines.length === 0) lines.push("no changes");
402
- if (diff.breaking.length > 0) {
403
- lines.push(`breaking (${String(diff.breaking.length)})`);
404
- for (const change of diff.breaking) lines.push(` ${change.kind}: ${change.detail}`);
405
- }
406
- return `${lines.join("\n")}\n`;
407
- }
408
414
  async function runDiff(input) {
409
415
  const [sourceA, sourceB, ...extra] = input.sources;
410
416
  if (sourceA === void 0 || sourceB === void 0 || extra.length > 0) return {
@@ -0,0 +1,44 @@
1
+ import { t as defineLeaf } from "./command-L8EstFNm.js";
2
+ import { a as failOnFlag } from "./flags-C3DktBDY.js";
3
+ import { n as ask, t as CANCELLED } from "./prompt-DfZLJLIn.js";
4
+ //#region src/cli/commands/doctor.ts
5
+ const doctor = defineLeaf({
6
+ flags: {
7
+ only: {
8
+ type: "string",
9
+ repeatable: true,
10
+ description: "Check codes or groups to run",
11
+ valueHint: "code",
12
+ async complete() {
13
+ const { DOCTOR_CHECKS } = await import("./doctor-DFjUxf2f.js");
14
+ return [.../* @__PURE__ */ new Set([...DOCTOR_CHECKS.map(({ code }) => code), ...DOCTOR_CHECKS.flatMap(({ groups }) => groups)])];
15
+ }
16
+ },
17
+ fix: {
18
+ type: "boolean",
19
+ description: "Apply safe fixes: install skills, regenerate the catalog"
20
+ },
21
+ ...failOnFlag
22
+ },
23
+ async run(ctx, { flags }) {
24
+ let fix = flags.fix;
25
+ if (fix && ctx.interactive && !ctx.yes) {
26
+ const answer = await ask(`Install the Agent Skills and regenerate the catalog in ${ctx.cwd}?`);
27
+ if (answer === void 0) return CANCELLED;
28
+ fix = answer;
29
+ }
30
+ return (await import("./doctor-DFjUxf2f.js")).runDoctor({
31
+ cwd: ctx.cwd,
32
+ config: ctx.config,
33
+ only: flags.only,
34
+ json: ctx.json,
35
+ fix,
36
+ strict: flags["fail-on"] === "warning",
37
+ color: ctx.color,
38
+ now: ctx.now,
39
+ io: ctx.io
40
+ });
41
+ }
42
+ });
43
+ //#endregion
44
+ export { doctor };