permdock 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/README.md +37 -35
  2. package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
  3. package/dist/a2a/index.d.ts +6 -6
  4. package/dist/a2a/index.js +14 -17
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -35
  10. package/dist/ai-sdk/index.js +37 -23
  11. package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-DJ6Yd5z1.js +995 -0
  18. package/dist/arazzo-B6lebmiQ.js +36 -0
  19. package/dist/{arazzo-C4BcskbX.js → arazzo-BWhNF-k0.js} +20 -14
  20. package/dist/args-IIolxxKA.js +197 -0
  21. package/dist/astro/index.d.ts +43 -0
  22. package/dist/astro/index.js +27 -0
  23. package/dist/audience-Dg8XsRaO.js +55 -0
  24. package/dist/auth-DRLEizbL.js +178 -0
  25. package/dist/authzen/index.d.ts +26 -6
  26. package/dist/authzen/index.js +94 -79
  27. package/dist/automation-BMZPIVUM.d.ts +114 -0
  28. package/dist/automation-DVjOckjV.js +157 -0
  29. package/dist/better-auth/index.d.ts +8 -6
  30. package/dist/better-auth/index.js +9 -8
  31. package/dist/better-supabase/index.d.ts +357 -30
  32. package/dist/better-supabase/index.js +936 -194
  33. package/dist/{bind-BzqG8SMb.d.ts → bind--9EFVYWF.d.ts} +12 -10
  34. package/dist/{bind-kk-uyCwH.js → bind-CZzhx-Vj.js} +14 -10
  35. package/dist/body-CH5of8Ne.js +10 -0
  36. package/dist/body-text-QcXok_SI.js +52 -0
  37. package/dist/{build-instance-DIIV9DbC.js → build-instance-BMnAudHn.js} +4 -3
  38. package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
  39. package/dist/{capability-CksyCWDH.d.ts → capability-BSslw1QV.d.ts} +44 -25
  40. package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
  41. package/dist/casbin-Cr7RLtA3.js +30 -0
  42. package/dist/casbin-Dyu2gnUD.js +234 -0
  43. package/dist/casl-64gpT-8x.js +24 -0
  44. package/dist/casl-DjEDhTCP.js +299 -0
  45. package/dist/catalog/index.d.ts +74 -2
  46. package/dist/catalog/index.js +51 -2
  47. package/dist/{catalog-tZUyOfOv.js → catalog-BECMPrwc.js} +51 -6
  48. package/dist/catalog-DjhMYYCq.js +1 -0
  49. package/dist/catalog-R_A__RsH.js +52 -0
  50. package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-C9wjsfNY.js} +45 -23
  51. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  52. package/dist/chat/index.d.ts +2 -0
  53. package/dist/chat/index.js +224 -0
  54. package/dist/chat-sdk/index.d.ts +87 -0
  55. package/dist/chat-sdk/index.js +197 -0
  56. package/dist/claims-map-7oQ3ue4X.js +13 -0
  57. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  58. package/dist/claude-agent/index.d.ts +7 -14
  59. package/dist/claude-agent/index.js +24 -27
  60. package/dist/clerk/index.d.ts +9 -8
  61. package/dist/clerk/index.js +9 -14
  62. package/dist/cli/bin.js +36 -17
  63. package/dist/cli/index.d.ts +19 -5
  64. package/dist/cli/index.js +164 -4
  65. package/dist/cloud/index.d.ts +102 -63
  66. package/dist/cloud/index.js +239 -340
  67. package/dist/cloud-CIoHNevm.js +87 -0
  68. package/dist/codemod-Bmj9dWMH.js +37 -0
  69. package/dist/codemod-Cxvvc70T.js +2084 -0
  70. package/dist/{collect-2SrB7lfk.js → collect-CrZJJnEF.js} +75 -11
  71. package/dist/collect-DloHbDVa.js +55 -0
  72. package/dist/collect-FlXJlhus.js +1 -0
  73. package/dist/command-L8EstFNm.js +6 -0
  74. package/dist/compile/index.d.ts +1 -1
  75. package/dist/compile/index.js +1 -2
  76. package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
  77. package/dist/{compile-CtTP7eur.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  78. package/dist/completion-BqhRBJD8.js +143 -0
  79. package/dist/config-B46rm9sc.js +26 -0
  80. package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
  81. package/dist/{config-report--Xb9APJS.js → config-report-DUgj62Ai.js} +15 -5
  82. package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
  83. package/dist/{context-DieZVJXu.js → context-bbFHR-0D.js} +2 -2
  84. package/dist/convex/index.d.ts +11 -10
  85. package/dist/convex/index.js +6 -4
  86. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  87. package/dist/create-BDS7wc3y.d.ts +138 -0
  88. package/dist/create-BFfm17UA.d.ts +110 -0
  89. package/dist/create-BWRSXgOF.js +403 -0
  90. package/dist/create-C3b4B5eF.js +130 -0
  91. package/dist/{create-BBO24vj6.js → create-DnrmLnLW.js} +31 -32
  92. package/dist/{credential-kue0qpbm.js → credential-DM2um3ha.js} +152 -31
  93. package/dist/credentials-DPyHmYz5.js +74 -0
  94. package/dist/delegation-DaXVdDhM.js +286 -0
  95. package/dist/delivery/index.d.ts +5 -0
  96. package/dist/delivery/index.js +5 -0
  97. package/dist/delivery-DCAgNyCn.js +499 -0
  98. package/dist/delivery-event-xX4obB8F.js +40 -0
  99. package/dist/{denied-text-DfRk15uw.d.ts → denied-text-D8jDHgsl.d.ts} +5 -5
  100. package/dist/{describe-C3ldA9os.d.ts → describe-BZUsixiL.d.ts} +2 -2
  101. package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
  102. package/dist/device-BARQ8eYG.js +193 -0
  103. package/dist/diff-CxZo9pTq.js +37 -0
  104. package/dist/{diff-rpqoe7Ag.js → diff-DCePiN6M.js} +60 -54
  105. package/dist/doctor-CxiwSfqH.js +44 -0
  106. package/dist/{doctor-owlv6ddh.js → doctor-DFjUxf2f.js} +245 -50
  107. package/dist/drizzle/index.d.ts +5 -3
  108. package/dist/drizzle/index.js +2 -2
  109. package/dist/elysia/index.d.ts +16 -13
  110. package/dist/elysia/index.js +13 -12
  111. package/dist/env-DJZrPjRi.js +8 -0
  112. package/dist/errors-BDUwg2qC.js +27 -0
  113. package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
  114. package/dist/errors-BWXBMaKK.d.ts +11 -0
  115. package/dist/{errors-OD_4c__H.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  116. package/dist/errors-CWTY6uih.js +143 -0
  117. package/dist/evaluate-_R8QkWaf.js +1732 -0
  118. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  119. package/dist/{evaluations-C9YJsv3H.js → evaluations-DZ2CbV5k.js} +145 -34
  120. package/dist/eve/index.d.ts +12 -16
  121. package/dist/eve/index.js +22 -28
  122. package/dist/event-time-CsegxXxB.js +23 -0
  123. package/dist/expiry-D4_YKRKD.js +52 -0
  124. package/dist/express/index.d.ts +13 -10
  125. package/dist/express/index.js +12 -11
  126. package/dist/fastify/index.d.ts +25 -22
  127. package/dist/fastify/index.js +13 -12
  128. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  129. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  130. package/dist/fields-D9tPVUUS.js +203 -0
  131. package/dist/files-C5ZI27eV.js +124 -0
  132. package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
  133. package/dist/flags-C3DktBDY.js +86 -0
  134. package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-D2lZt4Dd.js} +55 -52
  135. package/dist/{grantee-CXY-0C87.js → grantee-Cn1HyUsI.js} +3 -3
  136. package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
  137. package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DHArqY82.js} +5 -4
  138. package/dist/h3/index.d.ts +37 -0
  139. package/dist/h3/index.js +35 -0
  140. package/dist/headers-BIjfMaoC.js +8 -0
  141. package/dist/headers-CIbDTUTK.d.ts +7 -0
  142. package/dist/{helpers-C9YmyBIa.js → helpers-DTcZOzhF.js} +45 -38
  143. package/dist/hono/index.d.ts +12 -9
  144. package/dist/hono/index.js +13 -12
  145. package/dist/hosted-BZIAYvon.js +315 -0
  146. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  147. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  148. package/dist/http-DXJ37RDA.js +46 -0
  149. package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
  150. package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
  151. package/dist/{import-BFIlhetD.js → import-DMmOG27O.js} +190 -53
  152. package/dist/index-BcHcPyIo.d.ts +110 -0
  153. package/dist/index-CaxrMD1A.d.ts +1 -0
  154. package/dist/index-Chrs5fQ-.d.ts +210 -0
  155. package/dist/index-CxGUswIC.d.ts +431 -0
  156. package/dist/index-D8EovfsP.d.ts +91 -0
  157. package/dist/{index-UdVQgq48.d.ts → index-DOVf7RJv.d.ts} +431 -81
  158. package/dist/{index-BwMe94Xq.d.ts → index-SGdIQyzc.d.ts} +34 -16
  159. package/dist/index.d.ts +19 -15
  160. package/dist/index.js +31 -21
  161. package/dist/init-DeMYsnYJ.js +96 -0
  162. package/dist/init-GG6Jh8HD.js +95 -0
  163. package/dist/{instance-options-plkrsAog.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  164. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  165. package/dist/instant-BluqDvyS.js +19 -0
  166. package/dist/internals-Dk8A8fX3.js +17 -0
  167. package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
  168. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  169. package/dist/jwt/index.d.ts +18 -11
  170. package/dist/jwt/index.js +156 -135
  171. package/dist/{kernel-CB3LrIJM.js → kernel-5JatXyND.js} +52 -24
  172. package/dist/kysely/index.d.ts +5 -3
  173. package/dist/kysely/index.js +2 -2
  174. package/dist/load-BxEtwlBS.js +1 -0
  175. package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
  176. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  177. package/dist/login-Dfe5RlYk.js +68 -0
  178. package/dist/login-imhuwvn3.js +254 -0
  179. package/dist/manifest-C8IzW3Do.js +42 -0
  180. package/dist/manifest-CtKR3GXL.js +370 -0
  181. package/dist/manifest-json-CAGzls-C.js +9 -0
  182. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  183. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  184. package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
  185. package/dist/{map-error-BE27PYkE.js → map-error-TCAdw-eW.js} +3 -3
  186. package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
  187. package/dist/mcp/index.d.ts +22 -12
  188. package/dist/mcp/index.js +57 -39
  189. package/dist/{migrate-BwlB5-Wk.js → migrate-BShP7Vf4.js} +53 -14
  190. package/dist/nest/index.d.ts +12 -9
  191. package/dist/nest/index.js +15 -14
  192. package/dist/next/index.d.ts +18 -21
  193. package/dist/next/index.js +13 -11
  194. package/dist/next/plugin.d.ts +1 -1
  195. package/dist/next/plugin.js +2 -2
  196. package/dist/node/index.d.ts +10 -10
  197. package/dist/node/index.js +7 -9
  198. package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
  199. package/dist/openai/index.d.ts +9 -16
  200. package/dist/openai/index.js +17 -24
  201. package/dist/openapi/index.d.ts +3 -3
  202. package/dist/openapi/index.js +1 -1
  203. package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
  204. package/dist/{openapi-BJdBmYDG.js → openapi-DTaEmTSW.js} +10 -9
  205. package/dist/openapi-ahr8rHu3.js +138 -0
  206. package/dist/operation-findings-DgATDpvh.js +36 -0
  207. package/dist/operations-CxybZErY.d.ts +59 -0
  208. package/dist/orpc/index.d.ts +13 -10
  209. package/dist/orpc/index.js +20 -15
  210. package/dist/otel/index.d.ts +3 -2
  211. package/dist/otel/index.js +30 -7
  212. package/dist/output-Dyw8fyPF.js +88 -0
  213. package/dist/output-files-B3IZJksC.js +1 -0
  214. package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
  215. package/dist/{permission-keys-B26jeyUv.js → ownership-BatFgAA4.js} +1698 -869
  216. package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
  217. package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
  218. package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
  219. package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  220. package/dist/parse-request-D_tUXG6M.js +26 -0
  221. package/dist/paths-DXSHAMIa.js +42 -0
  222. package/dist/pdp/index.d.ts +7 -3
  223. package/dist/pdp/index.js +45 -26
  224. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  225. package/dist/peer-CRvC7Hg1.js +1 -0
  226. package/dist/permdock-B9JxkBwC.js +868 -0
  227. package/dist/permdock-D7eeLJER.d.ts +502 -0
  228. package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
  229. package/dist/permissions-B-wCP5ZC.js +30 -0
  230. package/dist/{permissions-CCJ6lmxB.js → permissions-CZKiUfFM.js} +4 -3
  231. package/dist/{permissions-COH-KRgT.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  232. package/dist/policies-CO1oOymN.js +295 -0
  233. package/dist/{policy-ur0BBK_e.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  234. package/dist/{hosted-CBHgkzDl.js → policy-DLZJ5gAp.js} +17 -273
  235. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  236. package/dist/policy-module-CTlwMvLI.js +89 -0
  237. package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-DzwivBgR.d.ts} +434 -631
  238. package/dist/postgrest-CW0IqC-U.js +566 -0
  239. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  240. package/dist/powersync-BHfuehf3.js +62 -0
  241. package/dist/powersync-CbzkqL_M.js +1 -0
  242. package/dist/{powersync-cZe4kzhL.js → powersync-bYUDLOAO.js} +23 -24
  243. package/dist/preset/index.d.ts +146 -0
  244. package/dist/preset/index.js +1 -0
  245. package/dist/preset-DZdU0tne.js +1768 -0
  246. package/dist/principal-source-pHneukrx.js +103 -0
  247. package/dist/prisma/index.d.ts +6 -3
  248. package/dist/prisma/index.js +2 -2
  249. package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
  250. package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  251. package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
  252. package/dist/problem-types-CJ2325SZ.js +5 -0
  253. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  254. package/dist/{protected-B3_P7xuw.d.ts → protected-DEPHc2xV.d.ts} +16 -8
  255. package/dist/{protected-BN7BUdY1.js → protected-DfjY5mLA.js} +21 -4
  256. package/dist/{provider-Bi-0HNL3.js → provider-CC-u3bYP.js} +2 -2
  257. package/dist/{provider-kwHC9CZD.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  258. package/dist/{provider-store-Ctt-81Ni.js → provider-store-B5Yrkhzr.js} +2 -2
  259. package/dist/pull-BgIfno6w.js +256 -0
  260. package/dist/pull-ByOks_Tg.js +1 -0
  261. package/dist/push-CmFVBOeI.js +116 -0
  262. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  263. package/dist/pushed-policy-DobP7AHI.js +238 -0
  264. package/dist/react/index.d.ts +8 -8
  265. package/dist/react/index.js +6 -6
  266. package/dist/react/provider-client.d.ts +1 -1
  267. package/dist/react/provider-client.js +1 -2
  268. package/dist/react-native/index.d.ts +24 -72
  269. package/dist/react-native/index.js +24 -22
  270. package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
  271. package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
  272. package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
  273. package/dist/renames-CGj7YwcQ.js +175 -0
  274. package/dist/{replay-COpmZUfx.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  275. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  276. package/dist/{request-context-BVM7aWNs.js → request-context-BTRTG7OT.js} +3 -3
  277. package/dist/request-schema-CMreVuFM.js +148 -0
  278. package/dist/resend/index.d.ts +126 -0
  279. package/dist/resend/index.js +379 -0
  280. package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
  281. package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
  282. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  283. package/dist/rls-BA8an5Ap.js +336 -0
  284. package/dist/{rls-BEktUaqg.js → rls-j6t43t7n.js} +287 -689
  285. package/dist/{role-builder-B4GbKM-i.js → role-builder-CXbis5-X.js} +14 -207
  286. package/dist/{rpc-nYC3cR_u.js → rpc-aPyNi6tA.js} +7 -7
  287. package/dist/run-CNsApDpd.js +1 -0
  288. package/dist/run-DOfMtc9V.js +723 -0
  289. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  290. package/dist/run-ticket-sxFI6LAk.js +337 -0
  291. package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
  292. package/dist/{saas-DtaA4JuW.js → saas-FO-Q8oj0.js} +16 -14
  293. package/dist/scan-BOI5tJ-6.js +29 -0
  294. package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
  295. package/dist/schema-yLuBWWsh.js +130 -0
  296. package/dist/scim/index.d.ts +2 -2
  297. package/dist/scim/index.js +1 -2
  298. package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
  299. package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
  300. package/dist/server/index.d.ts +12 -143
  301. package/dist/server/index.js +12 -9
  302. package/dist/server-DqCT4CgZ.js +453 -0
  303. package/dist/{server-types-DdqBwZN_.d.ts → server-types-BLd4MnBX.d.ts} +51 -68
  304. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  305. package/dist/{shared-1uhI-e-b.js → shared-CD11nBbC.js} +18 -8
  306. package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
  307. package/dist/signals-D3NcTKUS.js +32 -0
  308. package/dist/sink-BEZSlMS_.js +957 -0
  309. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  310. package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
  311. package/dist/skills-CTYwkl44.js +51 -0
  312. package/dist/snapshot-CXUWfsNy.js +269 -0
  313. package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  314. package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  315. package/dist/solid/index.d.ts +11 -12
  316. package/dist/solid/index.js +7 -7
  317. package/dist/solid-start/index.d.ts +52 -0
  318. package/dist/solid-start/index.js +49 -0
  319. package/dist/{sources-Dljy06zL.d.ts → sources-BV9j0DeZ.d.ts} +7 -13
  320. package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
  321. package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
  322. package/dist/src-DLfUWFAI.js +1851 -0
  323. package/dist/ssf/index.d.ts +4 -4
  324. package/dist/ssf/index.js +384 -47
  325. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  326. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  327. package/dist/storage-C2bWdvJH.js +132 -0
  328. package/dist/{store-ILkLUj_o.js → store-4u_hxjWa.js} +40 -53
  329. package/dist/{store-options-CbUHDoSe.js → store-options-BqEakYRa.js} +26 -21
  330. package/dist/{stores-BHXdSbw9.js → stores-BbsD4fAR.js} +2 -2
  331. package/dist/{stores-Cxz_80g-.d.ts → stores-ClZUgeoP.d.ts} +7 -8
  332. package/dist/{stream-Dwsg6WwE.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  333. package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
  334. package/dist/style-DiKWnAvn.js +1 -0
  335. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  336. package/dist/subject-BGoM5o8B.js +17 -0
  337. package/dist/supabase/index.d.ts +23 -106
  338. package/dist/supabase/index.js +5 -4
  339. package/dist/supabase/middleware.d.ts +7 -6
  340. package/dist/supabase/middleware.js +13 -11
  341. package/dist/supabase-9pqI57pW.js +92 -0
  342. package/dist/{supabase-C1TWlnYt.js → supabase-Dxlp8A94.js} +98 -205
  343. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  344. package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-DdDQhMlw.js} +951 -60
  345. package/dist/support-session-C6xJQYut.js +158 -0
  346. package/dist/svelte/Protected.svelte +4 -4
  347. package/dist/svelte/index.d.ts +7 -7
  348. package/dist/svelte/index.js +10 -10
  349. package/dist/svelte/runtime.d.ts +3 -3
  350. package/dist/svelte/runtime.js +3 -3
  351. package/dist/svelte/source.d.ts +7 -7
  352. package/dist/svelte/source.js +4 -4
  353. package/dist/sveltekit/index.d.ts +51 -0
  354. package/dist/sveltekit/index.js +27 -0
  355. package/dist/tanstack-start/index.d.ts +51 -0
  356. package/dist/tanstack-start/index.js +40 -0
  357. package/dist/target-Bw37TFNA.js +51 -0
  358. package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
  359. package/dist/terminal/index.d.ts +11 -9
  360. package/dist/terminal/index.js +23 -287
  361. package/dist/testing/index.d.ts +311 -38
  362. package/dist/testing/index.js +3475 -201
  363. package/dist/testing/saas/index.d.ts +9 -8
  364. package/dist/testing/saas/index.js +2 -2
  365. package/dist/testing/saas/permissions.d.ts +1 -1
  366. package/dist/testing/saas/permissions.js +1 -2
  367. package/dist/text-BMFRfBqc.js +8 -0
  368. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  369. package/dist/thenable-yD7SabqG.js +31 -0
  370. package/dist/time-DkWjdL98.js +71 -0
  371. package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
  372. package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
  373. package/dist/trpc/index.d.ts +12 -9
  374. package/dist/trpc/index.js +16 -14
  375. package/dist/{types-7rJVLWe5.d.ts → types-5Ut_pbKy.d.ts} +61 -11
  376. package/dist/{store-9KO4BlkB.d.ts → types-BNORmDM8.d.ts} +100 -75
  377. package/dist/types-BjV-fqcA.d.ts +57 -0
  378. package/dist/{types-CUcFZfpU.d.ts → types-BqAKcRNW.d.ts} +2 -1
  379. package/dist/types-C8-KNsFf.d.ts +107 -0
  380. package/dist/{types-Br9IXUBG.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  381. package/dist/{types-DpWfQdSh.d.ts → types-CZTnPFzM.d.ts} +46 -11
  382. package/dist/{types-CqrjB9o6.d.ts → types-CdlxsYQh.d.ts} +23 -11
  383. package/dist/{types-CIlTojhq.d.ts → types-ClZaWzfb.d.ts} +9 -6
  384. package/dist/types-DX0LaKTb.d.ts +157 -0
  385. package/dist/types-DiQjupG2.d.ts +332 -0
  386. package/dist/types-DqzsnlSA.js +67 -0
  387. package/dist/types-_sHy8BQf.d.ts +65 -0
  388. package/dist/{types-ByUo56un.d.ts → types-fbZ7JEXr.d.ts} +23 -22
  389. package/dist/{types-DHrmBJLH.d.ts → types-tIgIeIKJ.d.ts} +7 -7
  390. package/dist/unplugin/index.d.ts +1 -1
  391. package/dist/unplugin/index.js +2 -2
  392. package/dist/usage-CHOtwL19.js +1 -0
  393. package/dist/usage-DHtE8j4E.js +32 -0
  394. package/dist/{usage-CG9nOYZw.js → usage-T5mXq98v.js} +54 -11
  395. package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  396. package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
  397. package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
  398. package/dist/{verify-BztUB3GX.js → verify-DbCL9bnB.js} +645 -50
  399. package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
  400. package/dist/version-DXkYUISx.js +1 -0
  401. package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
  402. package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-D6lPdb4Z.d.ts} +65 -2
  403. package/dist/vue/index.d.ts +9 -10
  404. package/dist/vue/index.js +8 -8
  405. package/dist/waiter-BGUtGYoU.js +67 -0
  406. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  407. package/dist/watch-Cb-NcaUw.js +1 -0
  408. package/dist/{watch-zeucB7eF.js → watch-CszoTJMq.js} +44 -5
  409. package/dist/webmcp/index.d.ts +2 -2
  410. package/dist/webmcp/index.js +3 -3
  411. package/dist/where-scope-Dv-WTP-w.js +306 -0
  412. package/dist/who-can-D0QoYbEb.js +364 -0
  413. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  414. package/dist/wire-denial-C7PaVYEM.js +27 -0
  415. package/dist/workflow/index.d.ts +5 -0
  416. package/dist/workflow/index.js +223 -0
  417. package/dist/workflow-sdk/index.d.ts +56 -0
  418. package/dist/workflow-sdk/index.js +78 -0
  419. package/dist/{wrap-Cr93qqdP.d.ts → wrap-Bd1Tejur.d.ts} +2 -1
  420. package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
  421. package/package.json +136 -37
  422. package/schemas/access-event-v1.json +118 -0
  423. package/schemas/approval-request-v1.json +34 -1
  424. package/schemas/approval-signature-v1.json +94 -0
  425. package/schemas/automation-event-v1.json +113 -0
  426. package/schemas/capability-v1.json +84 -0
  427. package/schemas/catalog-event-v1.json +87 -0
  428. package/schemas/catalog-v1.json +123 -12
  429. package/schemas/cli-commands-v1.json +164 -0
  430. package/schemas/cli-result-v1.json +96 -0
  431. package/schemas/cloud-api-v1.json +5407 -0
  432. package/schemas/connector-v1.json +408 -0
  433. package/schemas/credential-event-v1.json +81 -0
  434. package/schemas/credential-v1.json +134 -0
  435. package/schemas/decision-event-v1.json +288 -0
  436. package/schemas/delivery-event-v1.json +117 -0
  437. package/schemas/directory-event-v1.json +85 -0
  438. package/schemas/evidence-export-v1.json +54 -0
  439. package/schemas/membership-event-v1.json +93 -0
  440. package/schemas/policy-v1.json +68 -0
  441. package/schemas/pushed-policy-v1.json +236 -0
  442. package/schemas/run-v1.json +162 -0
  443. package/schemas/snapshot-v1.json +138 -0
  444. package/schemas/supabase-claims-v1.json +4 -4
  445. package/schemas/supabase-manifest-v1.json +5 -1
  446. package/schemas/support-session-v1.json +111 -0
  447. package/skills/permdock/SKILL.md +16 -12
  448. package/skills/permdock-agents/SKILL.md +40 -23
  449. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  450. package/skills/permdock-agents/references/runtimes.md +22 -18
  451. package/skills/permdock-approvals/SKILL.md +29 -13
  452. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  453. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  454. package/skills/permdock-audit/SKILL.md +3 -3
  455. package/skills/permdock-credentials/SKILL.md +5 -5
  456. package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
  457. package/skills/permdock-data/SKILL.md +6 -6
  458. package/skills/permdock-data/references/queries-and-rls.md +9 -8
  459. package/skills/permdock-data/references/relationships.md +3 -3
  460. package/skills/permdock-tenancy/SKILL.md +20 -7
  461. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  462. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +5 -4
  463. package/skills/permdock-wire/SKILL.md +17 -11
  464. package/skills/permdock-wire/references/adapters.md +139 -51
  465. package/skills/permdock-wire/references/policy-options.md +5 -5
  466. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  467. package/dist/approvals-DZL76lKW.js +0 -240
  468. package/dist/arazzo-CD8d0WLb.js +0 -54
  469. package/dist/catalog-6yWAX6Ps.js +0 -2
  470. package/dist/catalog-WHG4kBq7.js +0 -48
  471. package/dist/cloud-C7bSDgX4.js +0 -50
  472. package/dist/cloud-PeBN3IEn.js +0 -118
  473. package/dist/collect-Bw2Jdq1q.js +0 -2
  474. package/dist/collect-CQx4hX4N.js +0 -83
  475. package/dist/commands-Cpip4ULx.js +0 -97
  476. package/dist/config-DLt6BvV7.js +0 -36
  477. package/dist/diff-Cnghh_Ip.js +0 -48
  478. package/dist/doctor-CuVJvhV_.js +0 -53
  479. package/dist/duration-xK2jGFVc.js +0 -25
  480. package/dist/errors-CWfoNg9N.js +0 -47
  481. package/dist/errors-DRnGZHzF.js +0 -30
  482. package/dist/expiry-BoBJ8Tvc.js +0 -7
  483. package/dist/fields-fwfXN01n.js +0 -1016
  484. package/dist/headers-BZSDieNT.js +0 -6
  485. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  486. package/dist/ids-DC4V4CFu.js +0 -18
  487. package/dist/index-DgM7w96K.d.ts +0 -6
  488. package/dist/index-Dz7didpC.d.ts +0 -201
  489. package/dist/load-B_shHrmd.js +0 -2
  490. package/dist/manifest-BngWKryL.js +0 -770
  491. package/dist/may-use-BOn_dR_w.js +0 -78
  492. package/dist/openapi-DcQ1Kg40.js +0 -164
  493. package/dist/ownership-BgnbOJFT.js +0 -851
  494. package/dist/permdock-L26udHSk.js +0 -3646
  495. package/dist/powersync-BFSbSElQ.js +0 -62
  496. package/dist/powersync-DCDgZgfZ.js +0 -2
  497. package/dist/rls-55DQTuf5.js +0 -250
  498. package/dist/run-DMcNW_8T.js +0 -174
  499. package/dist/server-ZYEHtNHS.js +0 -268
  500. package/dist/sink-BTtmfPnE.js +0 -141
  501. package/dist/sink-CPN4zLfs.d.ts +0 -104
  502. package/dist/skills-Dle4ZoLF.js +0 -56
  503. package/dist/snapshot-Dc9CHPME.js +0 -1078
  504. package/dist/src-Bb7no-hS.js +0 -639
  505. package/dist/subject-C6dLxqHU.js +0 -24
  506. package/dist/supabase-Dbqr141s.js +0 -83
  507. package/dist/supabase-hook-BULg7Ut_.js +0 -2
  508. package/dist/thenable-QSmvt-vZ.js +0 -65
  509. package/dist/types-C0dee0Qf.d.ts +0 -197
  510. package/dist/types-DvupZE0w.d.ts +0 -9
  511. package/dist/usage-4G6t643F.js +0 -42
  512. package/dist/usage-iFLJ0-rr.js +0 -2
  513. package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
  514. package/dist/watch-C8TpsAl4.js +0 -2
@@ -0,0 +1,65 @@
1
+ import { fn as Approver } from "./policy-types-DzwivBgR.js";
2
+ //#region src/approvals/access-reviews/types.d.ts
3
+ type AccessReviewStatus = "open" | "closed";
4
+ type AccessReviewItemStatus = "pending" | "kept" | "revoked";
5
+ /**
6
+ * Access review v1: who holds `permissions` in one tenant, and who may
7
+ * confirm or revoke each holding. PermDock records the reviewer's decision
8
+ * and never changes the role or membership itself.
9
+ */
10
+ type AccessReview = {
11
+ readonly v: 1;
12
+ readonly id: string;
13
+ readonly tenant: string;
14
+ readonly permissions: readonly string[];
15
+ readonly reviewers: Approver | readonly Approver[];
16
+ readonly createdBy: string;
17
+ readonly createdAt: string;
18
+ readonly dueAt: string;
19
+ readonly status: AccessReviewStatus;
20
+ /** `false` when the population can omit a holder, such as a global role. */
21
+ readonly complete: boolean;
22
+ };
23
+ /** One holding in a review. `via` names the roles the population attributed it to. */
24
+ type AccessReviewItem = {
25
+ readonly v: 1;
26
+ readonly id: string;
27
+ readonly review: string;
28
+ readonly principal: string;
29
+ readonly permission: string;
30
+ readonly via: readonly string[];
31
+ readonly status: AccessReviewItemStatus;
32
+ readonly decidedBy?: string;
33
+ readonly decidedAt?: string;
34
+ readonly note?: string;
35
+ /** Set by the application after it revoked the holding at its source. */
36
+ readonly appliedAt?: string;
37
+ };
38
+ type AccessReviewItemQuery = {
39
+ readonly review: string;
40
+ readonly status?: AccessReviewItemStatus;
41
+ readonly limit?: number;
42
+ readonly cursor?: string;
43
+ };
44
+ type AccessReviewItemPage = {
45
+ readonly items: readonly AccessReviewItem[];
46
+ readonly next?: string;
47
+ };
48
+ type AccessReviewDecision = {
49
+ readonly status: "kept" | "revoked";
50
+ readonly decidedBy: string;
51
+ readonly decidedAt: string;
52
+ readonly note?: string;
53
+ };
54
+ type AccessReviewStore = {
55
+ /** Names the implementation in errors and events. */
56
+ readonly name?: string;
57
+ create(review: AccessReview, items: readonly AccessReviewItem[]): Promise<void> | void;
58
+ get(id: string): Promise<AccessReview | null> | AccessReview | null;
59
+ items(query: AccessReviewItemQuery): Promise<AccessReviewItemPage> | AccessReviewItemPage;
60
+ decide(reviewId: string, itemId: string, decision: AccessReviewDecision): Promise<AccessReviewItem> | AccessReviewItem;
61
+ markApplied(reviewId: string, itemId: string, at: string): Promise<AccessReviewItem> | AccessReviewItem;
62
+ close(id: string): Promise<AccessReview> | AccessReview;
63
+ };
64
+ //#endregion
65
+ export { AccessReviewItemQuery as a, AccessReviewStore as c, AccessReviewItemPage as i, AccessReviewDecision as n, AccessReviewItemStatus as o, AccessReviewItem as r, AccessReviewStatus as s, AccessReview as t };
@@ -1,26 +1,18 @@
1
- import { an as Snapshot, ir as Decision, jt as PermDock, rr as ApprovalRequiredDecision, ur as GrantedDecision, ut as TokenVerifier } from "./policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "./permission-types-Dg39z9Kv.js";
1
+ import { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, zn as GrantedDecision } from "./policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "./vocabulary-D6lPdb4Z.js";
3
+ import { r as PermDock } from "./permdock-D7eeLJER.js";
3
4
  import { t as PermissionBoundaryState } from "./boundary-BmHxVH1J.js";
4
- import { l as PermissionState, t as ClientStore, u as ProviderOptionsBase } from "./store-9KO4BlkB.js";
5
+ import { l as PermissionState, m as ClientStore, u as ProviderOptionsBase } from "./types-BNORmDM8.js";
5
6
  import { Snippet } from "svelte";
6
7
  import { Readable } from "svelte/store";
7
- //#region src/svelte/boundary.d.ts
8
- type PermissionBoundaryProps = {
9
- readonly children?: Snippet;
10
- /** Rendered in place of the children when one throws `PermDockDeniedError`. */
11
- readonly denied?: Snippet<[PermissionBoundaryState]>;
12
- /** Rendered for `PermDockApprovalRequiredError`; defaults to `denied`. */
13
- readonly approval?: Snippet<[PermissionBoundaryState]>;
14
- };
15
- //#endregion
16
8
  //#region src/client/views.d.ts
17
9
  /**
18
10
  * What `Protected` renders: `pending` while an endpoint answer is in flight,
19
- * `approval` for an approval-required decision, `fallback` for any other
11
+ * `approval` for an approval-required decision, `denied` for any other
20
12
  * denial.
21
13
  */
22
14
  type ProtectedView = (PermissionState & {
23
- readonly slot: "pending" | "fallback";
15
+ readonly slot: "pending" | "denied";
24
16
  }) | {
25
17
  readonly allowed: false;
26
18
  readonly status: PermissionState["status"];
@@ -35,18 +27,27 @@ type ProtectedView = (PermissionState & {
35
27
  /** Provider-wide content for the `Protected` slots a component leaves out. */
36
28
  type SlotDefaults<P, F, A = F> = {
37
29
  readonly pending?: P;
38
- readonly fallback?: F;
30
+ readonly denied?: F;
39
31
  readonly approval?: A;
40
32
  };
41
33
  /**
42
34
  * The content `Protected` renders for a non-default slot. Its own prop wins
43
- * over the provider default; `approval` falls back to `fallback`, first the
35
+ * over the provider default; `approval` falls back to `denied`, first the
44
36
  * component's, then the provider's.
45
37
  */
46
38
  declare function slotContent<P, F, A>(slot: "pending", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): P | undefined;
47
- declare function slotContent<P, F, A>(slot: "fallback", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): F | undefined;
39
+ declare function slotContent<P, F, A>(slot: "denied", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): F | undefined;
48
40
  declare function slotContent<P, F, A>(slot: "approval", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): F | A | undefined;
49
41
  //#endregion
42
+ //#region src/svelte/boundary.d.ts
43
+ type PermissionBoundaryProps = {
44
+ readonly children?: Snippet;
45
+ /** Rendered in place of the children when one throws `PermDockDeniedError`. */
46
+ readonly denied?: Snippet<[PermissionBoundaryState]>;
47
+ /** Rendered for `PermDockApprovalRequiredError`; defaults to `denied`. */
48
+ readonly approval?: Snippet<[PermissionBoundaryState]>;
49
+ };
50
+ //#endregion
50
51
  //#region src/svelte/protected.d.ts
51
52
  type ProtectedProps = {
52
53
  readonly permission: Permission;
@@ -54,8 +55,8 @@ type ProtectedProps = {
54
55
  readonly tenant?: string;
55
56
  readonly children?: Snippet<[GrantedDecision]>;
56
57
  readonly pending?: Snippet;
57
- readonly fallback?: Snippet<[Decision]>;
58
- /** Rendered for an approval-required decision; defaults to `fallback`. */
58
+ readonly denied?: Snippet<[Decision]>;
59
+ /** Rendered for an approval-required decision; defaults to `denied`. */
59
60
  readonly approval?: Snippet<[ApprovalRequiredDecision]>;
60
61
  };
61
62
  /** The instance for `tenant`, built once per store change rather than once per check. */
@@ -63,7 +64,7 @@ declare function scopedFor(store: ClientStore, tenant: string | undefined, _gene
63
64
  declare function viewFor(store: ClientStore, reference: Permission, data: unknown, scoped: PermDock | undefined, _generation?: number): ProtectedView;
64
65
  //#endregion
65
66
  //#region src/svelte/types.d.ts
66
- type PermDockSvelteOptions = ProviderOptionsBase & {
67
+ type SveltePermDockOptions = ProviderOptionsBase & {
67
68
  /**
68
69
  * A getter (`() => data.snapshot`) or a readable store re-hydrates the
69
70
  * store when it changes; a promise keeps the store `pending` until it
@@ -81,8 +82,8 @@ type PermDockSvelteOptions = ProviderOptionsBase & {
81
82
  /** Snippets for the `<Protected>` slots a component leaves out. */
82
83
  type PermDockDefaults = {
83
84
  readonly pending?: Snippet;
84
- readonly fallback?: Snippet<[Decision]>;
85
+ readonly denied?: Snippet<[Decision]>;
85
86
  readonly approval?: Snippet<[ApprovalRequiredDecision]>;
86
87
  };
87
88
  //#endregion
88
- export { viewFor as a, scopedFor as i, PermDockSvelteOptions as n, slotContent as o, ProtectedProps as r, PermissionBoundaryProps as s, PermDockDefaults as t };
89
+ export { viewFor as a, scopedFor as i, SveltePermDockOptions as n, PermissionBoundaryProps as o, ProtectedProps as r, slotContent as s, PermDockDefaults as t };
@@ -1,7 +1,7 @@
1
- import { an as Snapshot, ir as Decision, rr as ApprovalRequiredDecision, ur as GrantedDecision, ut as TokenVerifier } from "./policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "./permission-types-Dg39z9Kv.js";
3
- import { n as DescribeMessages } from "./describe-C3ldA9os.js";
4
- import { n as ClientStoreOptions } from "./store-9KO4BlkB.js";
1
+ import { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, zn as GrantedDecision } from "./policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "./vocabulary-D6lPdb4Z.js";
3
+ import { n as DescribeMessages } from "./describe-BZUsixiL.js";
4
+ import { h as ClientStoreOptions } from "./types-BNORmDM8.js";
5
5
  import { ReactNode } from "react";
6
6
  //#region src/react/types.d.ts
7
7
  type PermDockProviderProps = ({
@@ -49,7 +49,7 @@ type PermDockProviderProps = ({
49
49
  /** Provider-wide content for the `<Protected>` slots a component leaves out. */
50
50
  type PermDockDefaults = {
51
51
  readonly pending?: ReactNode;
52
- readonly fallback?: ReactNode | ((decision: Decision) => ReactNode);
52
+ readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
53
53
  readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
54
54
  };
55
55
  type ProtectedProps = {
@@ -57,8 +57,8 @@ type ProtectedProps = {
57
57
  readonly data?: unknown;
58
58
  readonly tenant?: string;
59
59
  readonly pending?: ReactNode;
60
- readonly fallback?: ReactNode | ((decision: Decision) => ReactNode);
61
- /** Rendered for an approval-required decision; defaults to `fallback`. */
60
+ readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
61
+ /** Rendered for an approval-required decision; defaults to `denied`. */
62
62
  readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
63
63
  readonly children: ReactNode | ((decision: GrantedDecision) => ReactNode);
64
64
  };
@@ -1,4 +1,4 @@
1
- import { a as PermDockPluginOptions } from "../types-7rJVLWe5.js";
1
+ import { a as PermDockPluginOptions } from "../types-5Ut_pbKy.js";
2
2
  import { createUnplugin } from "unplugin";
3
3
  //#region src/unplugin/index.d.ts
4
4
  type CreateUnplugin = typeof createUnplugin<PermDockPluginOptions | undefined>;
@@ -1,5 +1,5 @@
1
- import { n as createCollectScheduler, r as report } from "../watch-zeucB7eF.js";
2
- import { t as peerHint } from "../peer-BOr_kJE1.js";
1
+ import { n as createCollectScheduler, r as report } from "../watch-CszoTJMq.js";
2
+ import { r as peerHint } from "../peer-C8swJ2GH.js";
3
3
  import { createRequire } from "node:module";
4
4
  //#region src/unplugin/index.ts
5
5
  function loadCreateUnplugin() {
@@ -0,0 +1 @@
1
+ export { t as runUsage } from "./usage-T5mXq98v.js";
@@ -0,0 +1,32 @@
1
+ import { t as defineLeaf } from "./command-L8EstFNm.js";
2
+ import { a as failOnFlag } from "./flags-C3DktBDY.js";
3
+ //#region src/cli/commands/usage.ts
4
+ const usage = defineLeaf({
5
+ flags: {
6
+ ...failOnFlag,
7
+ ignore: {
8
+ type: "string",
9
+ repeatable: true,
10
+ description: "Permission keys or globs to skip",
11
+ valueHint: "glob"
12
+ },
13
+ "dynamic-as-used": {
14
+ type: "boolean",
15
+ description: "Count computed permission references as uses"
16
+ }
17
+ },
18
+ async run(ctx, { flags }) {
19
+ return (await import("./usage-CHOtwL19.js")).runUsage({
20
+ cwd: ctx.cwd,
21
+ config: ctx.config,
22
+ ignore: flags.ignore,
23
+ strict: flags["fail-on"] === "warning",
24
+ json: ctx.json,
25
+ dynamicAsUsed: flags["dynamic-as-used"],
26
+ now: ctx.now,
27
+ io: ctx.io
28
+ });
29
+ }
30
+ });
31
+ //#endregion
32
+ export { usage };
@@ -1,10 +1,13 @@
1
- import { a as getResource } from "./permission-registry-BsblpB-z.js";
2
- import { o as usageResult } from "./errors-CWfoNg9N.js";
1
+ import { a as getResource } from "./permission-registry-Br4jSNVi.js";
2
+ import { u as usageResult } from "./errors-CWTY6uih.js";
3
3
  import { a as rel, r as listSourceFiles } from "./files-D_JIzUrP.js";
4
- import { a as USAGE_REPORT_SCHEMA } from "./version-BEogC-rB.js";
5
- import { o as jsonSchemaOf } from "./catalog-doc-DWtg0gGR.js";
6
- import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-C3_oTHyO.js";
7
- import { r as runCollect } from "./collect-2SrB7lfk.js";
4
+ import { o as USAGE_REPORT_SCHEMA } from "./version-CEbQ5UeM.js";
5
+ import { s as jsonSchemaOf } from "./catalog-doc-C9wjsfNY.js";
6
+ import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DFS_ry0W.js";
7
+ import { r as runCollect } from "./collect-CrZJJnEF.js";
8
+ import { t as beforeFirst } from "./text-BMFRfBqc.js";
9
+ import { t as DOCS_BASE } from "./manifest-CtKR3GXL.js";
10
+ import { r as findingOf } from "./output-Dyw8fyPF.js";
8
11
  import { existsSync, readFileSync, realpathSync } from "node:fs";
9
12
  import { dirname, resolve } from "node:path";
10
13
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -15,20 +18,26 @@ import { isBuiltin } from "node:module";
15
18
  /** Entries a client file must not import; `tests/cli/doctor-entries.test.ts` keeps it in step with `exports`. */
16
19
  const SERVER_SPECIFIERS = [
17
20
  "permdock/a2a",
21
+ "permdock/agent",
18
22
  "permdock/ai-sdk",
19
23
  "permdock/approvals",
24
+ "permdock/astro",
20
25
  "permdock/authzen",
21
26
  "permdock/better-auth",
22
27
  "permdock/better-supabase",
28
+ "permdock/chat",
29
+ "permdock/chat-sdk",
23
30
  "permdock/claude-agent",
24
31
  "permdock/clerk",
25
32
  "permdock/cloud",
26
33
  "permdock/convex",
34
+ "permdock/delivery",
27
35
  "permdock/drizzle",
28
36
  "permdock/elysia",
29
37
  "permdock/eve",
30
38
  "permdock/express",
31
39
  "permdock/fastify",
40
+ "permdock/h3",
32
41
  "permdock/hono",
33
42
  "permdock/jwt",
34
43
  "permdock/kysely",
@@ -42,24 +51,35 @@ const SERVER_SPECIFIERS = [
42
51
  "permdock/otel",
43
52
  "permdock/pdp",
44
53
  "permdock/prisma",
54
+ "permdock/resend",
45
55
  "permdock/scim",
46
56
  "permdock/server",
57
+ "permdock/solid-start",
47
58
  "permdock/ssf",
48
59
  "permdock/supabase",
49
60
  "permdock/supabase/middleware",
61
+ "permdock/sveltekit",
62
+ "permdock/tanstack-start",
50
63
  "permdock/terminal",
51
- "permdock/trpc"
64
+ "permdock/trpc",
65
+ "permdock/workflow",
66
+ "permdock/workflow-sdk"
52
67
  ];
53
68
  /** Entries that feed request, tool or model data into a check. */
54
69
  const ADAPTER_SPECIFIERS = [
55
70
  "permdock/a2a",
71
+ "permdock/agent",
56
72
  "permdock/ai-sdk",
73
+ "permdock/astro",
57
74
  "permdock/authzen",
75
+ "permdock/chat",
76
+ "permdock/chat-sdk",
58
77
  "permdock/claude-agent",
59
78
  "permdock/elysia",
60
79
  "permdock/eve",
61
80
  "permdock/express",
62
81
  "permdock/fastify",
82
+ "permdock/h3",
63
83
  "permdock/hono",
64
84
  "permdock/mcp",
65
85
  "permdock/nest",
@@ -68,7 +88,10 @@ const ADAPTER_SPECIFIERS = [
68
88
  "permdock/openai",
69
89
  "permdock/orpc",
70
90
  "permdock/server",
91
+ "permdock/solid-start",
71
92
  "permdock/supabase/middleware",
93
+ "permdock/sveltekit",
94
+ "permdock/tanstack-start",
72
95
  "permdock/terminal",
73
96
  "permdock/trpc",
74
97
  "permdock/webmcp"
@@ -241,6 +264,12 @@ function stringValue(node) {
241
264
  if (value?.type === "Literal") return typeof value.value === "string" ? value.value : void 0;
242
265
  return value?.type === "TemplateLiteral" ? value.quasis[0]?.value.cooked ?? void 0 : void 0;
243
266
  }
267
+ /** Their `jwks` holds Standard Webhooks `v1a` keys, not a token issuer's. */
268
+ const WEBHOOK_VERIFIERS = /* @__PURE__ */ new Set([
269
+ "cloudApprovalWaiter",
270
+ "verifyWebhook",
271
+ "webhookVerifier"
272
+ ]);
244
273
  function isPermDockSpecifier(value) {
245
274
  return value === "permdock" || value.startsWith("permdock/");
246
275
  }
@@ -254,7 +283,8 @@ function permdockOptionObjects(source) {
254
283
  ImportDeclaration(node) {
255
284
  if (node.importKind === "type" || !isPermDockSpecifier(node.source.value)) return;
256
285
  for (const specifier of node.specifiers) if (specifier.type === "ImportNamespaceSpecifier") namespaces.add(specifier.local.name);
257
- else if (specifier.type === "ImportDefaultSpecifier" || specifier.importKind !== "type") functions.add(specifier.local.name);
286
+ else if (specifier.type === "ImportDefaultSpecifier") functions.add(specifier.local.name);
287
+ else if (specifier.importKind !== "type" && !WEBHOOK_VERIFIERS.has(specifier.imported.type === "Identifier" ? specifier.imported.name : specifier.imported.value)) functions.add(specifier.local.name);
258
288
  },
259
289
  VariableDeclarator(node) {
260
290
  const init = unwrapped(node.init);
@@ -373,7 +403,7 @@ function pd038(sources, tenantClaim, fallback) {
373
403
  code: "PD038",
374
404
  severity: "warning",
375
405
  message: `${source.file}:${line} reads the tenant from '${read}', but rls.tenantClaim is '${tenantClaim}'`,
376
- fix: `pass tenant: '${tenantClaim}' or set rls.tenantClaim to '${read}'`
406
+ fix: `pass claims: { tenant: '${tenantClaim}' } or set rls.tenantClaim to '${read}'`
377
407
  });
378
408
  }
379
409
  return findings;
@@ -534,7 +564,20 @@ async function runUsage(input) {
534
564
  };
535
565
  return {
536
566
  code: report.errors > 0 || input.strict && report.warnings > 0 ? 1 : 0,
537
- output: input.json ? `${JSON.stringify(report, null, 2)}\n` : formatUsage(report)
567
+ output: input.json ? `${JSON.stringify(report, null, 2)}\n` : formatUsage(report),
568
+ findings: [
569
+ ...unused,
570
+ ...ungranted,
571
+ ...noRole,
572
+ ...dynamic,
573
+ ...undeclared,
574
+ ...outsideInclude
575
+ ].map((item) => findingOf({
576
+ code: item.kind,
577
+ severity: item.kind === "no-role" ? "error" : "warning",
578
+ message: `${item.key === "*" ? "" : `${item.key}: `}${item.detail}`,
579
+ docs: `${DOCS_BASE}/usage`
580
+ }))
538
581
  };
539
582
  }
540
583
  async function usagePolicy(cwd, policyRel, loaded) {
@@ -587,7 +630,7 @@ function declaredFields(policy, resource) {
587
630
  function conditionFields(condition, out) {
588
631
  if (condition === void 0) return;
589
632
  const add = (field) => {
590
- out.add(field.split(".")[0] ?? field);
633
+ out.add(beforeFirst(field, "."));
591
634
  };
592
635
  switch (condition.op) {
593
636
  case "eq":
@@ -1,4 +1,4 @@
1
- import { a as ProblemDetails } from "./errors-OD_4c__H.js";
1
+ import { a as ProblemDetails } from "./errors-C2PXIv4c.js";
2
2
  import { StandardSchemaV1 } from "@standard-schema/spec";
3
3
  //#region src/core/validation-error.d.ts
4
4
  /** The base of every Problem Details `type` URI; defined here so a validation error does not pull in the Problem Details builders. */
@@ -1,5 +1,6 @@
1
1
  import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
2
- import { c as ownKeys, o as isForbiddenKey, s as ownGet } from "./thenable-QSmvt-vZ.js";
2
+ import { i as ownKeys, n as isForbiddenKey, r as ownGet } from "./paths-DXSHAMIa.js";
3
+ import { c as instantOf, g as secondsOf, m as rfc3339 } from "./time-DkWjdL98.js";
3
4
  //#region src/core/fields.ts
4
5
  function sanitizeFields(fields) {
5
6
  if (fields === void 0) return;
@@ -25,17 +26,6 @@ function sanitizeContext(value) {
25
26
  //#endregion
26
27
  //#region src/core/validity.ts
27
28
  /**
28
- * An instant as Unix seconds: a finite number is taken as seconds already, a
29
- * string must parse as RFC 3339. Anything else is `undefined`, and the caller
30
- * decides whether that is "absent" or an error.
31
- */
32
- function instantOf(input) {
33
- if (typeof input === "number") return Number.isFinite(input) ? Math.floor(input) : void 0;
34
- if (typeof input !== "string" || input.trim() === "") return;
35
- const millis = Date.parse(input);
36
- return Number.isFinite(millis) ? Math.floor(millis / 1e3) : void 0;
37
- }
38
- /**
39
29
  * The normalised validity of a grant, or `undefined` when neither bound is
40
30
  * set. Fail-closed at definition time: a bound that does not parse, or a
41
31
  * window that ends before it starts, throws so a typo never widens a grant.
@@ -43,8 +33,8 @@ function instantOf(input) {
43
33
  function normalizeValidity(options, permissionKey) {
44
34
  const from = options.validFrom === void 0 ? void 0 : instantOf(options.validFrom);
45
35
  const until = options.validUntil === void 0 ? void 0 : instantOf(options.validUntil);
46
- if (options.validFrom !== void 0 && from === void 0) throw new Error(`PermDock: validFrom on '${permissionKey}' must be an RFC 3339 string or Unix seconds`);
47
- if (options.validUntil !== void 0 && until === void 0) throw new Error(`PermDock: validUntil on '${permissionKey}' must be an RFC 3339 string or Unix seconds`);
36
+ if (options.validFrom !== void 0 && from === void 0) throw new Error(`PermDock: validFrom on '${permissionKey}' must be an RFC 3339 string or an Instant`);
37
+ if (options.validUntil !== void 0 && until === void 0) throw new Error(`PermDock: validUntil on '${permissionKey}' must be an RFC 3339 string or an Instant`);
48
38
  if (from !== void 0 && until !== void 0 && until <= from) throw new Error(`PermDock: validUntil on '${permissionKey}' must be after validFrom`);
49
39
  if (from === void 0 && until === void 0) return;
50
40
  return Object.freeze({
@@ -58,5 +48,32 @@ function isActive(validity, now) {
58
48
  if (validity.from !== void 0 && now < validity.from) return false;
59
49
  return validity.until === void 0 || now < validity.until;
60
50
  }
51
+ function wireValidity(validity) {
52
+ if (validity === void 0) return;
53
+ return Object.freeze({
54
+ ...validity.from === void 0 ? {} : { from: rfc3339(validity.from) },
55
+ ...validity.until === void 0 ? {} : { until: rfc3339(validity.until) }
56
+ });
57
+ }
58
+ /**
59
+ * The validity of a wire grant. A malformed window fails closed for the
60
+ * grant's effect: an allow never applies (`{ from: +∞ }`), a deny always
61
+ * does (no window), so a corrupt bound can never lift a deny.
62
+ */
63
+ function readWireValidity(value, effect = "allow") {
64
+ if (value === void 0) return;
65
+ const malformed = effect === "deny" ? void 0 : NEVER;
66
+ if (typeof value !== "object" || value === null) return malformed;
67
+ const from = "from" in value ? value.from : void 0;
68
+ const until = "until" in value ? value.until : void 0;
69
+ const start = from === void 0 ? void 0 : secondsOf(from);
70
+ const end = until === void 0 ? void 0 : secondsOf(until);
71
+ if (from !== void 0 && start === void 0 || until !== void 0 && end === void 0) return malformed;
72
+ return Object.freeze({
73
+ ...start === void 0 ? {} : { from: start },
74
+ ...end === void 0 ? {} : { until: end }
75
+ });
76
+ }
77
+ const NEVER = Object.freeze({ from: Number.POSITIVE_INFINITY });
61
78
  //#endregion
62
- export { sanitizeContext as a, pickVisible as i, normalizeValidity as n, sanitizeFields as o, grantCoversField as r, isActive as t };
79
+ export { grantCoversField as a, sanitizeFields as c, wireValidity as i, normalizeValidity as n, pickVisible as o, readWireValidity as r, sanitizeContext as s, isActive as t };
@@ -1,6 +1,7 @@
1
1
  import { n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
2
- import { o as isForbiddenKey, u as splitPath } from "./thenable-QSmvt-vZ.js";
3
- import { t as loadJose } from "./load-jose-BL6LH4bL.js";
2
+ import { n as isForbiddenKey, s as splitPath } from "./paths-DXSHAMIa.js";
3
+ import { p as nowSeconds } from "./time-DkWjdL98.js";
4
+ import { t as loadJose } from "./load-jose-DZ4dnjri.js";
4
5
  //#region src/jwt/header.ts
5
6
  function compactParts(token) {
6
7
  return token.split(".");
@@ -90,10 +91,11 @@ function assertSafeClaimPaths(claims) {
90
91
  claims.roles,
91
92
  claims.groups,
92
93
  claims.entitlements,
94
+ claims.plans,
93
95
  claims.tenant,
94
96
  claims.memberships,
95
97
  claims.session
96
- ].filter((path) => path !== void 0);
98
+ ].filter((path) => typeof path === "string");
97
99
  if (typeof claims.assurance === "string") paths.push(claims.assurance);
98
100
  else if (claims.assurance !== void 0) paths.push(...[
99
101
  claims.assurance.acr,
@@ -128,11 +130,12 @@ function assertVerifierConfig(options) {
128
130
  }
129
131
  function assertSubjectConfig(options) {
130
132
  if (options.verifier === void 0) {
131
- assertVerifierConfig(options);
133
+ assertVerifierConfig(verifierOptions(options));
132
134
  if (options.jwks !== void 0 && !isSecretJwks(options.jwks) && options.issuer === void 0) throw new Error("PermDock: issuer is required with jwks.");
133
135
  }
134
136
  assertSafeClaimPaths(options.claims);
135
137
  if (options.profile === "fapi2" && options.sender === "none") throw new Error("PermDock: profile 'fapi2' requires a sender constraint.");
138
+ if (options.verifier === void 0 && options.audience === void 0) throw new Error("PermDock: audience is required; pass audience: false to accept a token minted for any audience.");
136
139
  }
137
140
  function secretBits(secret) {
138
141
  if (typeof secret === "string") return secret.length * 8;
@@ -142,6 +145,14 @@ function secretBytes(secret) {
142
145
  if (typeof secret === "string") return new TextEncoder().encode(secret);
143
146
  return secret;
144
147
  }
148
+ /** The verifier options of a subject config: `audience: false` means none is checked. */
149
+ function verifierOptions(options) {
150
+ const { audience, ...rest } = options;
151
+ return audience === false || audience === void 0 ? rest : {
152
+ ...rest,
153
+ audience
154
+ };
155
+ }
145
156
  //#endregion
146
157
  //#region src/jwt/cache.ts
147
158
  function clampTtl(seconds, minTtl, maxTtl) {
@@ -297,7 +308,7 @@ function createKeyCache(options) {
297
308
  }
298
309
  };
299
310
  const resolve = async (force, nowInput) => {
300
- const now = nowInput ?? Math.floor(Date.now() / 1e3);
311
+ const now = nowInput ?? nowSeconds();
301
312
  if (options.jwks instanceof URL) return loadJwks(options.jwks.href, now, force);
302
313
  if (typeof options.jwks === "string") return loadJwks(options.jwks, now, force);
303
314
  if (options.jwks !== void 0 && typeof options.jwks === "object" && "keys" in options.jwks) return {
@@ -317,7 +328,7 @@ function createKeyCache(options) {
317
328
  return resolve(false, now);
318
329
  },
319
330
  refetchJwks(now) {
320
- const current = now ?? Math.floor(Date.now() / 1e3);
331
+ const current = now ?? nowSeconds();
321
332
  if (current < cooldownUntil) return resolve(false, current);
322
333
  cooldownUntil = current + cooldown;
323
334
  return resolve(true, current);
@@ -499,4 +510,4 @@ function joseTokenVerifier(options) {
499
510
  }
500
511
  }
501
512
  //#endregion
502
- export { decodeHeader as a, issuerFromDiscovery as i, assertSubjectConfig as n, normalizeTyp as o, fail as r, joseTokenVerifier as t };
513
+ export { verifierOptions as a, issuerFromDiscovery as i, assertSubjectConfig as n, decodeHeader as o, fail as r, normalizeTyp as s, joseTokenVerifier as t };