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,7 +1,7 @@
1
- import { t as packageRoot } from "./package-root-DtNnpmUd.js";
1
+ import { t as packageRoot } from "./package-root-Dk_ETdkp.js";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
- //#region src/cli/version.ts
4
+ //#region src/cli/core/version.ts
5
5
  function cliVersion() {
6
6
  return JSON.parse(readFileSync(join(packageRoot(), "package.json"), "utf8")).version;
7
7
  }
@@ -13,5 +13,6 @@ const SUPABASE_MANIFEST_SCHEMA = "https://permdock.com/schemas/supabase-manifest
13
13
  const USAGE_REPORT_SCHEMA = "https://permdock.com/schemas/usage-report-v1.json";
14
14
  const DOCTOR_REPORT_SCHEMA = "https://permdock.com/schemas/doctor-report-v1.json";
15
15
  const CONFIG_REPORT_SCHEMA = "https://permdock.com/schemas/config-report-v1.json";
16
+ const ARAZZO_REPORT_SCHEMA = "https://permdock.com/schemas/arazzo-report-v1.json";
16
17
  //#endregion
17
- export { USAGE_REPORT_SCHEMA as a, SUPABASE_MANIFEST_SCHEMA as i, CONFIG_REPORT_SCHEMA as n, cliVersion as o, DOCTOR_REPORT_SCHEMA as r, generatorBanner as s, CATALOG_SCHEMA as t };
18
+ export { SUPABASE_MANIFEST_SCHEMA as a, generatorBanner as c, DOCTOR_REPORT_SCHEMA as i, CATALOG_SCHEMA as n, USAGE_REPORT_SCHEMA as o, CONFIG_REPORT_SCHEMA as r, cliVersion as s, ARAZZO_REPORT_SCHEMA as t };
@@ -0,0 +1 @@
1
+ export { s as cliVersion } from "./version-CEbQ5UeM.js";
@@ -1,4 +1,5 @@
1
- import { t as describe } from "./describe-Cgkp7eP0.js";
1
+ import { r as requiredPlans } from "./problem-details-cn5X30gZ.js";
2
+ import { t as describe } from "./describe-BybMRY7A.js";
2
3
  //#region src/client/views.ts
3
4
  function permissionSet(store, permissions, data) {
4
5
  const granted = [];
@@ -73,7 +74,7 @@ function protectedView(local, root, permission, data, scoped) {
73
74
  };
74
75
  if (!state.allowed || decision.outcome !== "granted") return {
75
76
  ...state,
76
- slot: "fallback"
77
+ slot: "denied"
77
78
  };
78
79
  return {
79
80
  allowed: true,
@@ -101,8 +102,8 @@ function approvalHandle(store, decision) {
101
102
  function slotContent(slot, own, defaults) {
102
103
  switch (slot) {
103
104
  case "pending": return own.pending ?? defaults?.pending;
104
- case "fallback": return own.fallback ?? defaults?.fallback;
105
- case "approval": return own.approval ?? own.fallback ?? defaults?.approval ?? defaults?.fallback;
105
+ case "denied": return own.denied ?? defaults?.denied;
106
+ case "approval": return own.approval ?? own.denied ?? defaults?.approval ?? defaults?.denied;
106
107
  default: return slot;
107
108
  }
108
109
  }
@@ -113,5 +114,21 @@ function describeWith(messages) {
113
114
  messages
114
115
  });
115
116
  }
117
+ /** The `GateView` of a permission state; `describeDecision` localises the reason. */
118
+ function gateView(state, describeDecision, mode = "disable") {
119
+ const pending = state.status === "pending";
120
+ const needsApproval = state.decision.outcome === "approval-required";
121
+ const allowed = state.allowed && !pending;
122
+ return {
123
+ allowed,
124
+ pending,
125
+ hidden: mode === "hide" && !allowed && !pending && !needsApproval,
126
+ disabled: !allowed,
127
+ needsApproval,
128
+ upgrade: requiredPlans(state.decision),
129
+ reason: describeDecision(state.decision),
130
+ decision: state.decision
131
+ };
132
+ }
116
133
  //#endregion
117
- export { permissionSet as a, scopedTenant as c, tenantView as d, livePermDock as i, slotContent as l, describeWith as n, protectedView as o, filterResult as r, rolesView as s, approvalHandle as t, subjectView as u };
134
+ export { livePermDock as a, rolesView as c, subjectView as d, tenantView as f, gateView as i, scopedTenant as l, describeWith as n, permissionSet as o, filterResult as r, protectedView as s, approvalHandle as t, slotContent as u };
@@ -28,7 +28,7 @@ declare const RESOURCE_X: unique symbol;
28
28
  //#endregion
29
29
  //#region src/core/permission-types.d.ts
30
30
  /** `definePermissions` options. */
31
- type DefinePermissionsOptions<PX = never, RX = never> = {
31
+ type PermissionsOptions<PX = never, RX = never> = {
32
32
  /**
33
33
  * Keys a permission used to have, mapped to its current key. Old keys are
34
34
  * accepted wherever a key arrives as a string (stored custom roles, OAuth
@@ -239,4 +239,69 @@ type LeavesFrom<Prefix extends string, Names extends string, T, Kind extends Per
239
239
  type InferResourceLeaves<R extends ResourceInit, Prefix extends string, X = never> = R extends ResourceInit<infer T, infer A, infer C> ? LeavesFrom<Prefix, ActionNames<A>, T, "instance", X> & LeavesFrom<Prefix, ActionNames<C>, T, "collection", X> : object;
240
240
  type InferPermissionTree<Input, Prefix extends string = "", X = never> = Input extends ResourceInit ? InferResourceLeaves<Input, Prefix, X> : Input extends Record<string, unknown> ? { readonly [K in keyof Input & string]: InferPermissionTree<Input[K], Prefix extends "" ? K : `${Prefix}.${K}`, X>; } : never;
241
241
  //#endregion
242
- export { WithX as A, ResourceRelationInput as C, AppData as D, RESOURCE_X as E, AppDataSchema as O, ResourceRelation as S, ResourceXTree as T, ResourceLink as _, EdgeGroup as a, ResourceOptions as b, EdgeRelation as c, Permission as d, PermissionKind as f, ResourceLevel as g, ResourceInit as h, DefinePermissionsOptions as i, MetaValue as k, FieldRelation as l, PrincipalRelation as m, ActionMeta as n, EdgeGroups as o, PermissionTree as p, ComputedRelation as r, EdgeMatch as s, ActionList as t, InferPermissionTree as u, ResourceMeta as v, ResourceRestricted as w, ResourceParent as x, ResourceNode as y };
242
+ //#region src/core/vocabulary.d.ts
243
+ declare const ROLE_KIND: "role";
244
+ declare const PLAN_KIND: "plan";
245
+ /** `defineRoles` and `definePlans` options. */
246
+ type VocabularyOptions<X = never> = {
247
+ /**
248
+ * A Standard Schema for every leaf's `meta.x`, validated synchronously at
249
+ * definition time. On a role tree it also checks the `meta.x` of custom
250
+ * roles a `CustomRoleSource` returns; an invalid one is dropped, not the role.
251
+ */
252
+ readonly x?: AppDataSchema<X>;
253
+ };
254
+ /**
255
+ * A role's metadata. `audience` names the surface its holders use (`'staff'`,
256
+ * `'portal'`, `'platform'`); `permdock.audiences()` lists the distinct
257
+ * audiences of the roles held in the active scope.
258
+ */
259
+ type RoleMeta = ActionMeta & {
260
+ readonly audience?: string;
261
+ };
262
+ type Role<K extends string = string> = {
263
+ readonly key: K;
264
+ /** A declared scope name, or the `tenant` / `team` alias. */
265
+ readonly on?: string;
266
+ readonly assignable: boolean;
267
+ readonly meta: RoleMeta;
268
+ /** A shared custom role: the platform defines it for every tenant, and a tenant admin cannot edit it. */
269
+ readonly shared?: true;
270
+ readonly kind: typeof ROLE_KIND;
271
+ };
272
+ type Plan<K extends string = string> = {
273
+ readonly key: K;
274
+ readonly meta: ActionMeta;
275
+ readonly kind: typeof PLAN_KIND;
276
+ };
277
+ type RoleInit = {
278
+ /** A declared scope name, or the `tenant` / `team` alias. */
279
+ readonly on?: string;
280
+ readonly assignable?: boolean;
281
+ readonly meta?: RoleMeta;
282
+ };
283
+ type PlanInit = {
284
+ readonly meta?: ActionMeta;
285
+ };
286
+ type RoleTree = {
287
+ readonly [key: string]: Role;
288
+ };
289
+ type PlanTree = {
290
+ readonly [key: string]: Plan;
291
+ };
292
+ type Vocabulary = {
293
+ readonly permissions?: unknown;
294
+ readonly roles?: RoleTree;
295
+ readonly plans?: PlanTree;
296
+ };
297
+ type InferRoleTree<Input, X = never> = { readonly [K in keyof Input & string]: WithX<Role<K>, X>; };
298
+ type InferPlanTree<Input, X = never> = { readonly [K in keyof Input & string]: WithX<Plan<K>, X>; };
299
+ declare function isRole(value: unknown): value is Role;
300
+ declare function isPlan(value: unknown): value is Plan;
301
+ declare function defineRoles<const Input extends Record<string, RoleInit>, X = never>(input: Input, options?: VocabularyOptions<X>): InferRoleTree<Input, X>;
302
+ declare function definePlans<const Input extends Record<string, PlanInit>, X = never>(input: Input, options?: VocabularyOptions<X>): InferPlanTree<Input, X>;
303
+ declare function listRoles(tree: RoleTree | undefined): readonly Role[];
304
+ declare function listPlans(tree: PlanTree | undefined): readonly Plan[];
305
+ declare function findRole(tree: RoleTree | undefined, key: string): Role | undefined;
306
+ //#endregion
307
+ export { ResourceLevel as A, RESOURCE_X as B, InferPermissionTree as C, PermissionsOptions as D, PermissionTree as E, ResourceParent as F, AppDataSchema as H, ResourceRelation as I, ResourceRelationInput as L, ResourceMeta as M, ResourceNode as N, PrincipalRelation as O, ResourceOptions as P, ResourceRestricted as R, FieldRelation as S, PermissionKind as T, MetaValue as U, AppData as V, ComputedRelation as _, RoleTree as a, EdgeMatch as b, definePlans as c, isPlan as d, isRole as f, ActionMeta as g, ActionList as h, RoleMeta as i, ResourceLink as j, ResourceInit as k, defineRoles as l, listRoles as m, PlanTree as n, Vocabulary as o, listPlans as p, Role as r, VocabularyOptions as s, Plan as t, findRole as u, EdgeGroup as v, Permission as w, EdgeRelation as x, EdgeGroups as y, ResourceXTree as z };
@@ -1,11 +1,10 @@
1
- import { Dr as Membership, an as Snapshot, ir as Decision, rr as ApprovalRequiredDecision, ut as TokenVerifier } from "../policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "../permission-types-Dg39z9Kv.js";
3
- import { r as Role } from "../vocabulary-hhEFLFoL.js";
4
- import { n as requiredPlans } from "../problem-details-rIIo8B2C.js";
5
- import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-C3ldA9os.js";
1
+ import { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, nr as Membership } from "../policy-types-n0uRTsW8.js";
2
+ import { r as Role, w as Permission } from "../vocabulary-CN8H_9UF.js";
3
+ import { n as requiredPlans } from "../problem-details-B45V5d2b.js";
4
+ import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-B5qgDvEW.js";
6
5
  import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
7
- import { t as approvalHeaders } from "../headers-Cf-zWvsO.js";
8
- import { a as ClientPermDock, c as PermissionSet, d as SubjectView, f as TenantView, i as ApprovalState, l as PermissionState, o as ClientStatus, p as UseRolesOptions, r as ApprovalHandle, s as FilterResult, u as ProviderOptionsBase } from "../store-9KO4BlkB.js";
6
+ import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
7
+ import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle, u as ProviderOptionsBase } from "../types-B3_ooZgZ.js";
9
8
  import { ComputedRef, DefineComponent, MaybeRefOrGetter, Plugin, VNode } from "vue";
10
9
  //#region src/vue/types.d.ts
11
10
  type PermDockPluginOptions = ProviderOptionsBase & {
@@ -28,7 +27,7 @@ type SlotOutput = VNode | VNode[] | string | null;
28
27
  /** Render functions for the `<Protected>` slots a component leaves out; they get the slot props. */
29
28
  type PermDockDefaults = {
30
29
  readonly pending?: () => SlotOutput;
31
- readonly fallback?: (props: {
30
+ readonly denied?: (props: {
32
31
  readonly decision: Decision;
33
32
  }) => SlotOutput;
34
33
  readonly approval?: (props: {
@@ -47,7 +46,7 @@ export declare function usePermissions(permissions: MaybeRefOrGetter<readonly Pe
47
46
  export declare function useFilter<T>(permission: Permission<string, T, "instance">, rows: MaybeRefOrGetter<readonly T[]>): ComputedRef<FilterResult<T>>;
48
47
  export declare function useTenant(): ComputedRef<TenantView>;
49
48
  export declare function useMemberships(): ComputedRef<readonly Membership[]>;
50
- export declare function useRoles(options?: MaybeRefOrGetter<UseRolesOptions>): ComputedRef<{
49
+ export declare function useRoles(options?: MaybeRefOrGetter<RolesOptions>): ComputedRef<{
51
50
  readonly roles: readonly Role[];
52
51
  }>;
53
52
  export declare function useAssignableRoles(): ComputedRef<readonly Role[]>;
@@ -81,4 +80,4 @@ type ProtectedProps = {
81
80
  };
82
81
  export declare const Protected: DefineComponent<ProtectedProps>;
83
82
  //#endregion
84
- export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type SubjectView, type TenantView, type UseRolesOptions, approvalHeaders, describe, requiredPlans };
83
+ export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedProps, type RolesOptions, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans };
package/dist/vue/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import { r as requiredPlans } from "../problem-details-DECUnXAn.js";
2
- import { t as describe } from "../describe-Cgkp7eP0.js";
3
- import { t as approvalHeaders } from "../headers-BZSDieNT.js";
4
- import { i as isPromiseLike } from "../store-options-CbUHDoSe.js";
5
- import { a as permissionSet, c as scopedTenant, d as tenantView, i as livePermDock, l as slotContent, n as describeWith, o as protectedView, r as filterResult, s as rolesView, t as approvalHandle, u as subjectView } from "../views-CJsrBS1f.js";
1
+ import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
2
+ import { t as describe } from "../describe-BybMRY7A.js";
6
3
  import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
7
- import { n as switchTenant, t as providerStore } from "../provider-store-Ctt-81Ni.js";
4
+ import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
5
+ import { i as isPromiseLike } from "../store-options-u0ycEe8s.js";
6
+ import { n as switchTenant, t as providerStore } from "../provider-store-DM6DNcta.js";
7
+ import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-DTIIO-oQ.js";
8
8
  import { computed, defineComponent, effectScope, getCurrentScope, inject, isRef, onErrorCaptured, onScopeDispose, provide, shallowRef, toValue, watch } from "vue";
9
9
  //#region src/vue/context.ts
10
10
  const permDockKey = Symbol("permdock");
@@ -195,12 +195,12 @@ const Protected = defineComponent({
195
195
  }, root, props.permission, props.data, scoped.value);
196
196
  const own = {
197
197
  pending: slots["pending"],
198
- fallback: slots["fallback"],
198
+ denied: slots["denied"],
199
199
  approval: slots["approval"]
200
200
  };
201
201
  switch (view.slot) {
202
202
  case "pending": return slotContent("pending", own, defaults)?.() ?? null;
203
- case "fallback": return slotContent("fallback", own, defaults)?.({ decision: view.decision }) ?? null;
203
+ case "denied": return slotContent("denied", own, defaults)?.({ decision: view.decision }) ?? null;
204
204
  case "approval": return slotContent("approval", own, defaults)?.({ decision: view.decision }) ?? null;
205
205
  case "default": return slots["default"]?.({ decision: view.decision }) ?? null;
206
206
  default: return view;
@@ -0,0 +1,36 @@
1
+ import { Rt as Instant } from "./policy-types-n0uRTsW8.js";
2
+ import { m as ApprovalStore } from "./types-BdtSDbBO.js";
3
+ //#region src/workflow/waiter.d.ts
4
+ type ApprovalWaitOptions = {
5
+ /** When the approval request expires; the wait ends then whatever the store says. */
6
+ readonly expiresAt?: Instant;
7
+ /** Aborting rejects the wait with the signal's reason. */
8
+ readonly signal?: AbortSignal;
9
+ };
10
+ /**
11
+ * Suspends a run until an approval request is decided. `wait` resolves once
12
+ * the request is no longer pending, `wake` is called for its token, or it
13
+ * expires; it never says how the request was decided, so the caller always
14
+ * decides again with the token. A durable runner implements it with its own
15
+ * suspension primitive.
16
+ */
17
+ type ApprovalWaiter = {
18
+ /** Names the implementation in errors and events. */
19
+ readonly name?: string;
20
+ wait(token: string, options?: ApprovalWaitOptions): Promise<void>;
21
+ /** Called after an approver resolves the request for `token`. */
22
+ wake(token: string): void | Promise<void>;
23
+ };
24
+ type PollingApprovalWaiterOptions = {
25
+ readonly store: ApprovalStore;
26
+ /** Milliseconds between reads of the store. Defaults to 5000. */
27
+ readonly interval?: number;
28
+ };
29
+ /**
30
+ * An in-process `ApprovalWaiter` that reads `store` every `interval`
31
+ * milliseconds. `wake` ends a wait in the same process at once. A store read
32
+ * that throws counts as still pending until the request expires.
33
+ */
34
+ declare function pollingApprovalWaiter(options: PollingApprovalWaiterOptions): ApprovalWaiter;
35
+ //#endregion
36
+ export { pollingApprovalWaiter as i, ApprovalWaiter as n, PollingApprovalWaiterOptions as r, ApprovalWaitOptions as t };
@@ -0,0 +1,67 @@
1
+ import { f as nowMillis } from "./time-DkWjdL98.js";
2
+ //#region src/workflow/waiter.ts
3
+ const DEFAULT_INTERVAL = 5e3;
4
+ /**
5
+ * An in-process `ApprovalWaiter` that reads `store` every `interval`
6
+ * milliseconds. `wake` ends a wait in the same process at once. A store read
7
+ * that throws counts as still pending until the request expires.
8
+ */
9
+ function pollingApprovalWaiter(options) {
10
+ const interval = options.interval ?? DEFAULT_INTERVAL;
11
+ if (!Number.isFinite(interval) || interval <= 0) throw new RangeError("PermDock: pollingApprovalWaiter interval must be a positive number");
12
+ const woken = /* @__PURE__ */ new Map();
13
+ const decided = async (token) => {
14
+ try {
15
+ return (await options.store.get(token))?.status !== "pending";
16
+ } catch {
17
+ return false;
18
+ }
19
+ };
20
+ return Object.freeze({
21
+ wait(token, waitOptions = {}) {
22
+ const { signal, expiresAt } = waitOptions;
23
+ return new Promise((resolve, reject) => {
24
+ let timer;
25
+ const listeners = woken.get(token) ?? /* @__PURE__ */ new Set();
26
+ woken.set(token, listeners);
27
+ const finish = (error) => {
28
+ if (timer !== void 0) clearTimeout(timer);
29
+ listeners.delete(done);
30
+ if (listeners.size === 0) woken.delete(token);
31
+ signal?.removeEventListener("abort", aborted);
32
+ if (error === void 0) resolve();
33
+ else reject(error);
34
+ };
35
+ const done = () => {
36
+ finish();
37
+ };
38
+ const aborted = () => {
39
+ const reason = signal?.reason;
40
+ finish(reason instanceof Error ? reason : new Error("PermDock: approval wait aborted", { cause: reason }));
41
+ };
42
+ if (signal?.aborted === true) {
43
+ aborted();
44
+ return;
45
+ }
46
+ listeners.add(done);
47
+ signal?.addEventListener("abort", aborted, { once: true });
48
+ const poll = async () => {
49
+ if (!listeners.has(done)) return;
50
+ if (expiresAt !== void 0 && expiresAt.epochMilliseconds <= nowMillis() || await decided(token)) {
51
+ finish();
52
+ return;
53
+ }
54
+ if (listeners.has(done)) timer = setTimeout(() => {
55
+ poll();
56
+ }, interval);
57
+ };
58
+ poll();
59
+ });
60
+ },
61
+ wake(token) {
62
+ for (const listener of woken.get(token) ?? []) listener();
63
+ }
64
+ });
65
+ }
66
+ //#endregion
67
+ export { pollingApprovalWaiter as t };
@@ -0,0 +1 @@
1
+ export { i as watchCollect } from "./watch-vea54PRw.js";
@@ -1,7 +1,8 @@
1
- import { i as describeError } from "./errors-CWfoNg9N.js";
1
+ import { i as dateAt } from "./time-DkWjdL98.js";
2
+ import { a as describeError } from "./errors-CWTY6uih.js";
2
3
  import { t as defaultSrcPath } from "./files-D_JIzUrP.js";
3
- import { r as runCollect } from "./collect-2SrB7lfk.js";
4
- import { n as isConfigFile, r as loadConfig } from "./config-BIjREpyE.js";
4
+ import { r as runCollect } from "./collect-mLTY4nwb.js";
5
+ import { n as isConfigFile, r as loadConfig } from "./config-bs_kZeYq.js";
5
6
  import { watch } from "node:fs";
6
7
  import { basename, dirname, relative, resolve, sep } from "node:path";
7
8
  //#region src/cli/watch.ts
@@ -19,7 +20,7 @@ function within(dirs, file) {
19
20
  return path !== "" && !path.startsWith("..") && !path.startsWith(sep);
20
21
  });
21
22
  }
22
- async function collectOnce(cwd, options, check, fresh, configFile, now = () => /* @__PURE__ */ new Date()) {
23
+ async function collectOnce(cwd, options, check, fresh, configFile, now = () => dateAt()) {
23
24
  const config = await loadConfig(cwd, configFile, { fresh });
24
25
  const collect = {
25
26
  ...config.collect,
@@ -124,5 +125,43 @@ function createCollectScheduler(cwd, options, settings) {
124
125
  close
125
126
  };
126
127
  }
128
+ /**
129
+ * `collect --watch`: one collect now, then one per change until Ctrl-C.
130
+ * Under `--json` each collect is an NDJSON event on stdout; otherwise a
131
+ * line on stderr.
132
+ */
133
+ async function watchCollect(ctx, overrides) {
134
+ const emit = (status, message) => {
135
+ if (ctx.json) ctx.io.stdout(`${JSON.stringify({
136
+ event: "collect",
137
+ status,
138
+ message,
139
+ at: dateAt().toISOString()
140
+ })}\n`);
141
+ else ctx.log(message);
142
+ };
143
+ const scheduler = createCollectScheduler(ctx.cwd, { collect: overrides }, {
144
+ ...ctx.configFile === void 0 ? {} : { configFile: ctx.configFile },
145
+ report: (message) => {
146
+ emit(message === void 0 ? "success" : "error", message ?? "catalog updated");
147
+ }
148
+ });
149
+ try {
150
+ const message = await scheduler.run(false);
151
+ emit(message === void 0 ? "success" : "error", message ?? "catalog written");
152
+ } catch (error) {
153
+ emit("error", describeError(error));
154
+ }
155
+ scheduler.watch();
156
+ ctx.signal.addEventListener("abort", () => {
157
+ scheduler.close();
158
+ });
159
+ ctx.log("watching for changes; Ctrl-C to stop");
160
+ return {
161
+ code: 0,
162
+ output: "",
163
+ streamed: true
164
+ };
165
+ }
127
166
  //#endregion
128
- export { createCollectScheduler as n, report as r, collectOnce as t };
167
+ export { watchCollect as i, createCollectScheduler as n, report as r, collectOnce as t };
@@ -1,5 +1,5 @@
1
- import { an as Snapshot, ir as Decision } from "../policy-types-sp9P1iIV.js";
2
- import { d as Permission, p as PermissionTree } from "../permission-types-Dg39z9Kv.js";
1
+ import { Nn as Decision, Vt as Snapshot } from "../policy-types-n0uRTsW8.js";
2
+ import { E as PermissionTree, w as Permission } from "../vocabulary-CN8H_9UF.js";
3
3
  import { StandardSchemaV1 } from "@standard-schema/spec";
4
4
  //#region src/webmcp/types.d.ts
5
5
  type WebMcpClientStatus = "ready" | "pending" | "stale" | "server-only";
@@ -1,9 +1,9 @@
1
1
  import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
- import { n as isThenable, t as ignoreRejection } from "../thenable-QSmvt-vZ.js";
3
2
  import { n as PermDockValidationError } from "../validation-error-ZfUHbKvf.js";
4
- import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-BsblpB-z.js";
3
+ import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-Br4jSNVi.js";
4
+ import { n as isThenable, t as ignoreRejection } from "../thenable-yD7SabqG.js";
5
5
  import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
6
- import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-CQ7OEia9.js";
6
+ import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-CMLN5xhn.js";
7
7
  //#region src/webmcp/register.ts
8
8
  const MISSING_CONTEXT = "permdock/webmcp: document.modelContext is absent; registerTools is a no-op.";
9
9
  const CURRENT = Symbol.for("permdock.current");