permdock 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/README.md +37 -35
  2. package/dist/{openapi-schema--ARjyfQr.js → 2020-C9VN-x8c.js} +5 -132
  3. package/dist/a2a/index.d.ts +8 -6
  4. package/dist/a2a/index.js +21 -31
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -23
  10. package/dist/ai-sdk/index.js +38 -21
  11. package/dist/app-data-MuyzVqX8.js +60 -0
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-DJ6Yd5z1.js +995 -0
  18. package/dist/{approvers-DT4AVyIg.js → approvers-CqPOLD-o.js} +1 -1
  19. package/dist/arazzo-B6lebmiQ.js +36 -0
  20. package/dist/{arazzo-BAgw9ap6.js → arazzo-BWhNF-k0.js} +24 -17
  21. package/dist/args-IIolxxKA.js +197 -0
  22. package/dist/astro/index.d.ts +43 -0
  23. package/dist/astro/index.js +27 -0
  24. package/dist/audience-Dg8XsRaO.js +55 -0
  25. package/dist/auth-DRLEizbL.js +178 -0
  26. package/dist/authzen/index.d.ts +26 -6
  27. package/dist/authzen/index.js +228 -75
  28. package/dist/automation-BMZPIVUM.d.ts +114 -0
  29. package/dist/automation-DVjOckjV.js +157 -0
  30. package/dist/better-auth/index.d.ts +8 -6
  31. package/dist/better-auth/index.js +11 -23
  32. package/dist/better-supabase/index.d.ts +438 -86
  33. package/dist/better-supabase/index.js +1027 -184
  34. package/dist/bind--9EFVYWF.d.ts +38 -0
  35. package/dist/{bind-CuzGytRf.js → bind-CZzhx-Vj.js} +22 -10
  36. package/dist/body-CH5of8Ne.js +10 -0
  37. package/dist/body-text-QcXok_SI.js +52 -0
  38. package/dist/build-instance-BMnAudHn.js +52 -0
  39. package/dist/{canonical-json-DemiK4Vp.js → canonical-json-BC8_nMTw.js} +6 -6
  40. package/dist/{capability-2kYTMWDv.d.ts → capability-BSslw1QV.d.ts} +44 -25
  41. package/dist/{capability-4qPdO9gk.js → capability-N1K9IpqS.js} +69 -42
  42. package/dist/casbin-Cr7RLtA3.js +30 -0
  43. package/dist/casbin-Dyu2gnUD.js +234 -0
  44. package/dist/casl-64gpT-8x.js +24 -0
  45. package/dist/casl-DjEDhTCP.js +299 -0
  46. package/dist/catalog/index.d.ts +74 -2
  47. package/dist/catalog/index.js +51 -2
  48. package/dist/catalog-BECMPrwc.js +100 -0
  49. package/dist/catalog-DjhMYYCq.js +1 -0
  50. package/dist/catalog-R_A__RsH.js +52 -0
  51. package/dist/{catalog-doc-DdGm82XT.js → catalog-doc-C9wjsfNY.js} +54 -25
  52. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  53. package/dist/chat/index.d.ts +2 -0
  54. package/dist/chat/index.js +224 -0
  55. package/dist/chat-sdk/index.d.ts +87 -0
  56. package/dist/chat-sdk/index.js +197 -0
  57. package/dist/claims-map-7oQ3ue4X.js +13 -0
  58. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  59. package/dist/claude-agent/index.d.ts +7 -14
  60. package/dist/claude-agent/index.js +26 -30
  61. package/dist/clerk/index.d.ts +9 -8
  62. package/dist/clerk/index.js +15 -45
  63. package/dist/cli/bin.js +36 -17
  64. package/dist/cli/index.d.ts +20 -6
  65. package/dist/cli/index.js +164 -4
  66. package/dist/cloud/index.d.ts +102 -63
  67. package/dist/cloud/index.js +240 -347
  68. package/dist/cloud-CIoHNevm.js +87 -0
  69. package/dist/codemod-Bmj9dWMH.js +37 -0
  70. package/dist/codemod-Cxvvc70T.js +2084 -0
  71. package/dist/{collect-DSTE3ml9.js → collect-CrZJJnEF.js} +79 -17
  72. package/dist/collect-DloHbDVa.js +55 -0
  73. package/dist/collect-FlXJlhus.js +1 -0
  74. package/dist/command-L8EstFNm.js +6 -0
  75. package/dist/{compact-y6vfu2_f.js → compact-CAf557ZB.js} +11 -1
  76. package/dist/compile/index.d.ts +1 -1
  77. package/dist/compile/index.js +1 -2
  78. package/dist/{compile-Ba4blROR.js → compile-CMqMx_IN.js} +13 -9
  79. package/dist/{compile-BkRyBDBw.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  80. package/dist/completion-BqhRBJD8.js +143 -0
  81. package/dist/config-B46rm9sc.js +26 -0
  82. package/dist/{config-BJiM-xAm.js → config-bs_kZeYq.js} +15 -10
  83. package/dist/{config-report-CdCgbRnV.js → config-report-DUgj62Ai.js} +17 -8
  84. package/dist/{connection-CU8MQxRi.js → connection-DjhIJSs2.js} +8 -6
  85. package/dist/constants-DcJABbLW.js +20 -0
  86. package/dist/{context-Bcy85rGi.js → context-bbFHR-0D.js} +16 -5
  87. package/dist/convex/index.d.ts +11 -10
  88. package/dist/convex/index.js +18 -18
  89. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  90. package/dist/create-BDS7wc3y.d.ts +138 -0
  91. package/dist/create-BFfm17UA.d.ts +110 -0
  92. package/dist/create-BWRSXgOF.js +403 -0
  93. package/dist/create-C3b4B5eF.js +130 -0
  94. package/dist/create-DnrmLnLW.js +323 -0
  95. package/dist/{credential-8P81ff4u.js → credential-DM2um3ha.js} +153 -32
  96. package/dist/credentials-DPyHmYz5.js +74 -0
  97. package/dist/deciding-columns-Sq12mEA6.js +123 -0
  98. package/dist/delegation-DaXVdDhM.js +286 -0
  99. package/dist/delegation-input-FTxMK3ji.js +19 -0
  100. package/dist/delivery/index.d.ts +5 -0
  101. package/dist/delivery/index.js +5 -0
  102. package/dist/delivery-DCAgNyCn.js +499 -0
  103. package/dist/delivery-event-xX4obB8F.js +40 -0
  104. package/dist/denied-text-D8jDHgsl.d.ts +19 -0
  105. package/dist/{describe-DMYiCjJV.d.ts → describe-BZUsixiL.d.ts} +11 -2
  106. package/dist/{describe-B_gVZEVi.js → describe-BybMRY7A.js} +10 -5
  107. package/dist/device-BARQ8eYG.js +193 -0
  108. package/dist/diff-CxZo9pTq.js +37 -0
  109. package/dist/{diff-2VaeChzX.js → diff-DCePiN6M.js} +61 -55
  110. package/dist/doctor-CxiwSfqH.js +44 -0
  111. package/dist/doctor-DFjUxf2f.js +2361 -0
  112. package/dist/drizzle/index.d.ts +5 -3
  113. package/dist/drizzle/index.js +6 -14
  114. package/dist/elysia/index.d.ts +16 -13
  115. package/dist/elysia/index.js +14 -13
  116. package/dist/env-DJZrPjRi.js +8 -0
  117. package/dist/errors-BDUwg2qC.js +27 -0
  118. package/dist/{errors-Cz5zn0mW.js → errors-BKy0EfhN.js} +6 -10
  119. package/dist/errors-BWXBMaKK.d.ts +11 -0
  120. package/dist/{errors-DPdqI50v.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  121. package/dist/errors-CWTY6uih.js +143 -0
  122. package/dist/evaluate-_R8QkWaf.js +1732 -0
  123. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  124. package/dist/{evaluations-tz6D9A2G.js → evaluations-DZ2CbV5k.js} +181 -32
  125. package/dist/eve/index.d.ts +12 -16
  126. package/dist/eve/index.js +23 -29
  127. package/dist/event-time-CsegxXxB.js +23 -0
  128. package/dist/expiry-D4_YKRKD.js +52 -0
  129. package/dist/express/index.d.ts +13 -10
  130. package/dist/express/index.js +14 -12
  131. package/dist/fastify/index.d.ts +26 -13
  132. package/dist/fastify/index.js +17 -36
  133. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  134. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  135. package/dist/fields-D9tPVUUS.js +203 -0
  136. package/dist/files-C5ZI27eV.js +124 -0
  137. package/dist/{files-DWUN9PzI.js → files-D_JIzUrP.js} +12 -3
  138. package/dist/{fixtures-ht28Cplr.js → fixtures-B7XrLeY7.js} +12 -12
  139. package/dist/flags-C3DktBDY.js +86 -0
  140. package/dist/{from-snapshot-CTLijvdm.js → from-snapshot-D2lZt4Dd.js} +78 -65
  141. package/dist/{generate-CH7ThJ14.js → generate-CNU1pIOo.js} +1 -3
  142. package/dist/grantee-Cn1HyUsI.js +254 -0
  143. package/dist/grantee-conditions-CcXf8hMM.js +271 -0
  144. package/dist/grantee-match-DHArqY82.js +142 -0
  145. package/dist/h3/index.d.ts +37 -0
  146. package/dist/h3/index.js +35 -0
  147. package/dist/headers-BIjfMaoC.js +8 -0
  148. package/dist/headers-CIbDTUTK.d.ts +7 -0
  149. package/dist/{helpers-H_KARDVC.js → helpers-DTcZOzhF.js} +47 -39
  150. package/dist/hono/index.d.ts +12 -9
  151. package/dist/hono/index.js +14 -13
  152. package/dist/{hosted-DJQw46hn.js → hosted-BZIAYvon.js} +64 -15
  153. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  154. package/dist/{http-SO7qGttf.js → http-BBoKefeS.js} +35 -2
  155. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  156. package/dist/http-DXJ37RDA.js +46 -0
  157. package/dist/{http-BIhmLfCc.js → http-ujKm0JXE.js} +3 -26
  158. package/dist/{openapi-import-cmwetbzw.js → import-CNV7I2Dw.js} +30 -26
  159. package/dist/{rls-import-4lLW_pbb.js → import-DMmOG27O.js} +271 -128
  160. package/dist/index-BcHcPyIo.d.ts +110 -0
  161. package/dist/index-CaxrMD1A.d.ts +1 -0
  162. package/dist/index-Chrs5fQ-.d.ts +210 -0
  163. package/dist/index-CxGUswIC.d.ts +431 -0
  164. package/dist/index-D8EovfsP.d.ts +91 -0
  165. package/dist/index-DOVf7RJv.d.ts +900 -0
  166. package/dist/{index-C8z4RjQV.d.ts → index-SGdIQyzc.d.ts} +34 -16
  167. package/dist/index.d.ts +20 -14
  168. package/dist/index.js +33 -23
  169. package/dist/init-DeMYsnYJ.js +96 -0
  170. package/dist/init-GG6Jh8HD.js +95 -0
  171. package/dist/{instance-options-jARdwfPN.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  172. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  173. package/dist/instant-BluqDvyS.js +19 -0
  174. package/dist/internals-Dk8A8fX3.js +17 -0
  175. package/dist/{json-schema-BsAflUGW.js → json-schema-B-vAwlde.js} +46 -9
  176. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  177. package/dist/jwt/index.d.ts +18 -11
  178. package/dist/jwt/index.js +166 -145
  179. package/dist/{kernel-_RRHmnMY.js → kernel-5JatXyND.js} +120 -43
  180. package/dist/kysely/index.d.ts +5 -3
  181. package/dist/kysely/index.js +6 -14
  182. package/dist/{live-options-H2eG8dfJ.js → live-options-BaAFCIiu.js} +16 -3
  183. package/dist/load-BxEtwlBS.js +1 -0
  184. package/dist/{load-DhWEB9P1.js → load-DFS_ry0W.js} +31 -7
  185. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  186. package/dist/login-Dfe5RlYk.js +68 -0
  187. package/dist/login-imhuwvn3.js +254 -0
  188. package/dist/manifest-C8IzW3Do.js +42 -0
  189. package/dist/manifest-CtKR3GXL.js +370 -0
  190. package/dist/manifest-json-CAGzls-C.js +9 -0
  191. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  192. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  193. package/dist/{map-claims-Z4QZOiFF.js → map-claims-D3oRmTk0.js} +19 -25
  194. package/dist/{map-error-pgUWNNtG.js → map-error-TCAdw-eW.js} +5 -5
  195. package/dist/{markers-B0hYLvMD.js → markers-C6joDI3o.js} +8 -3
  196. package/dist/mcp/index.d.ts +36 -9
  197. package/dist/mcp/index.js +476 -448
  198. package/dist/{rls-migrate-CN4TlJTO.js → migrate-BShP7Vf4.js} +119 -20
  199. package/dist/nest/index.d.ts +12 -9
  200. package/dist/nest/index.js +20 -20
  201. package/dist/next/index.d.ts +40 -20
  202. package/dist/next/index.js +37 -39
  203. package/dist/next/plugin.d.ts +1 -1
  204. package/dist/next/plugin.js +2 -2
  205. package/dist/node/index.d.ts +10 -10
  206. package/dist/node/index.js +7 -9
  207. package/dist/ocsf-BFp-PZZA.js +126 -0
  208. package/dist/openai/index.d.ts +9 -16
  209. package/dist/openai/index.js +18 -25
  210. package/dist/openapi/index.d.ts +3 -3
  211. package/dist/openapi/index.js +1 -1
  212. package/dist/{openapi-BqRBvAng.js → openapi-B7HZ0f-r.js} +9 -12
  213. package/dist/{openapi-CqqEbHsL.js → openapi-DTaEmTSW.js} +23 -26
  214. package/dist/openapi-ahr8rHu3.js +138 -0
  215. package/dist/operation-findings-DgATDpvh.js +36 -0
  216. package/dist/operations-CxybZErY.d.ts +59 -0
  217. package/dist/orpc/index.d.ts +13 -10
  218. package/dist/orpc/index.js +23 -20
  219. package/dist/otel/index.d.ts +3 -2
  220. package/dist/otel/index.js +53 -27
  221. package/dist/output-Dyw8fyPF.js +88 -0
  222. package/dist/output-files-B3IZJksC.js +1 -0
  223. package/dist/output-files-DhRBBE4n.js +138 -0
  224. package/dist/{rls-fields-CZOMlwHl.js → ownership-BatFgAA4.js} +2393 -2349
  225. package/dist/{package-root-zGkxO3oN.js → package-root-Dk_ETdkp.js} +4 -3
  226. package/dist/{parse-BuyjxhZV.js → parse-Cxq0WxrA.js} +3 -3
  227. package/dist/{parse-local-manifest-BrMozJCo.js → parse-local-manifest-CVSs6J9I.js} +2 -4
  228. package/dist/{parse-local-manifest-JLnaBH0S.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  229. package/dist/parse-request-D_tUXG6M.js +26 -0
  230. package/dist/paths-DXSHAMIa.js +42 -0
  231. package/dist/pdp/index.d.ts +7 -3
  232. package/dist/pdp/index.js +47 -29
  233. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  234. package/dist/peer-CRvC7Hg1.js +1 -0
  235. package/dist/permdock-B9JxkBwC.js +868 -0
  236. package/dist/permdock-D7eeLJER.d.ts +502 -0
  237. package/dist/permission-registry-Br4jSNVi.js +385 -0
  238. package/dist/permissions-B-wCP5ZC.js +30 -0
  239. package/dist/{permissions-RJrovw98.js → permissions-CZKiUfFM.js} +4 -3
  240. package/dist/{permissions-CDgvKG5L.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  241. package/dist/policies-CO1oOymN.js +295 -0
  242. package/dist/{policy-D2W7uv19.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  243. package/dist/policy-DLZJ5gAp.js +399 -0
  244. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  245. package/dist/policy-module-CTlwMvLI.js +89 -0
  246. package/dist/{policy-IB6yxpC3.d.ts → policy-types-DzwivBgR.d.ts} +939 -1057
  247. package/dist/postgrest-CW0IqC-U.js +566 -0
  248. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  249. package/dist/powersync-BHfuehf3.js +62 -0
  250. package/dist/powersync-CbzkqL_M.js +1 -0
  251. package/dist/{powersync-Dv1_aWF7.js → powersync-bYUDLOAO.js} +30 -32
  252. package/dist/preset/index.d.ts +146 -0
  253. package/dist/preset/index.js +1 -0
  254. package/dist/preset-DZdU0tne.js +1768 -0
  255. package/dist/principal-source-pHneukrx.js +103 -0
  256. package/dist/prisma/index.d.ts +6 -3
  257. package/dist/prisma/index.js +6 -12
  258. package/dist/{problem-B43ztKIm.js → problem-CTviyH5L.js} +18 -27
  259. package/dist/{problem-details-DX075l9V.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  260. package/dist/{problem-details-_AMOYz-w.js → problem-details-cn5X30gZ.js} +45 -42
  261. package/dist/problem-types-CJ2325SZ.js +5 -0
  262. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  263. package/dist/protected-DEPHc2xV.d.ts +38 -0
  264. package/dist/{protected-utU-SLuy.js → protected-DfjY5mLA.js} +37 -8
  265. package/dist/{provider-CSQd7m92.js → provider-CC-u3bYP.js} +23 -10
  266. package/dist/{provider-DZY281jO.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  267. package/dist/{provider-store-Cfbvo4DE.js → provider-store-B5Yrkhzr.js} +6 -3
  268. package/dist/pull-BgIfno6w.js +256 -0
  269. package/dist/pull-ByOks_Tg.js +1 -0
  270. package/dist/push-CmFVBOeI.js +116 -0
  271. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  272. package/dist/pushed-policy-DobP7AHI.js +238 -0
  273. package/dist/react/index.d.ts +8 -8
  274. package/dist/react/index.js +6 -6
  275. package/dist/react/provider-client.d.ts +1 -1
  276. package/dist/react/provider-client.js +1 -2
  277. package/dist/react-native/index.d.ts +24 -63
  278. package/dist/react-native/index.js +45 -27
  279. package/dist/{refs-KYb4ntaz.js → refs-K6eWUJ0H.js} +1 -1
  280. package/dist/relation-walk-3OyDBF0S.js +186 -0
  281. package/dist/relations-BnCWnJGI.js +163 -0
  282. package/dist/renames-CGj7YwcQ.js +175 -0
  283. package/dist/{replay-CYyiLiwO.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  284. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  285. package/dist/request-context-BTRTG7OT.js +71 -0
  286. package/dist/request-context-C2_1lchh.d.ts +5 -0
  287. package/dist/request-schema-CMreVuFM.js +148 -0
  288. package/dist/resend/index.d.ts +126 -0
  289. package/dist/resend/index.js +379 -0
  290. package/dist/resource-relations-D_jw0BFx.js +243 -0
  291. package/dist/retire-CALjIQ7e.js +240 -0
  292. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  293. package/dist/rls-BA8an5Ap.js +336 -0
  294. package/dist/{rls-DiinlRML.js → rls-j6t43t7n.js} +1066 -1068
  295. package/dist/role-builder-CXbis5-X.js +623 -0
  296. package/dist/{rpc-DL9Sqvb1.js → rpc-aPyNi6tA.js} +18 -8
  297. package/dist/run-CNsApDpd.js +1 -0
  298. package/dist/run-DOfMtc9V.js +723 -0
  299. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  300. package/dist/run-ticket-sxFI6LAk.js +337 -0
  301. package/dist/{runtime-CB8gQFvS.js → runtime-D3VTAiCA.js} +1 -1
  302. package/dist/{saas-DhpJjnBA.js → saas-FO-Q8oj0.js} +18 -15
  303. package/dist/scan-BOI5tJ-6.js +29 -0
  304. package/dist/{schema-D3MnDMxa.js → schema-B4v0Qrac.js} +106 -10
  305. package/dist/schema-yLuBWWsh.js +130 -0
  306. package/dist/scim/index.d.ts +2 -2
  307. package/dist/scim/index.js +1 -2
  308. package/dist/{scim-BFGBBAqR.js → scim-ClHtpyV3.js} +213 -87
  309. package/dist/{scopes-CVdPrWN-.js → scopes-CUPSjo9q.js} +20 -7
  310. package/dist/server/index.d.ts +13 -134
  311. package/dist/server/index.js +13 -10
  312. package/dist/server-DqCT4CgZ.js +453 -0
  313. package/dist/{create-B1d519XK.d.ts → server-types-BLd4MnBX.d.ts} +89 -70
  314. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  315. package/dist/shared-CD11nBbC.js +304 -0
  316. package/dist/{shared-DRu8VFVM.js → shared-DvvFzYXe.js} +8 -9
  317. package/dist/signals-D3NcTKUS.js +32 -0
  318. package/dist/sink-BEZSlMS_.js +957 -0
  319. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  320. package/dist/{skills-Biq5uup3.js → skills-B6lVdD_W.js} +16 -8
  321. package/dist/skills-CTYwkl44.js +51 -0
  322. package/dist/snapshot-CXUWfsNy.js +269 -0
  323. package/dist/{snapshot-cache-D6jLelln.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  324. package/dist/{snapshot-cache-B-LxUahj.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  325. package/dist/solid/index.d.ts +24 -25
  326. package/dist/solid/index.js +41 -11
  327. package/dist/solid-start/index.d.ts +52 -0
  328. package/dist/solid-start/index.js +49 -0
  329. package/dist/{sources-BdOYLw9j.d.ts → sources-BV9j0DeZ.d.ts} +11 -13
  330. package/dist/{sources-4p0-4xQm.js → sources-vs5dGOsS.js} +147 -142
  331. package/dist/sql-B5T1IL83.js +55 -0
  332. package/dist/src-DLfUWFAI.js +1851 -0
  333. package/dist/ssf/index.d.ts +4 -4
  334. package/dist/ssf/index.js +440 -106
  335. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  336. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  337. package/dist/storage-C2bWdvJH.js +132 -0
  338. package/dist/{store-DMAWwAJV.js → store-4u_hxjWa.js} +42 -55
  339. package/dist/{store-options-ByhZq1jV.js → store-options-BqEakYRa.js} +38 -24
  340. package/dist/{stores-BT2pSCub.js → stores-BbsD4fAR.js} +7 -3
  341. package/dist/stores-ClZUgeoP.d.ts +30 -0
  342. package/dist/{stream-D1RXubw2.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  343. package/dist/{stream-DDpvynSB.js → stream-CvdUS9V1.js} +10 -2
  344. package/dist/style-DiKWnAvn.js +1 -0
  345. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  346. package/dist/subject-BGoM5o8B.js +17 -0
  347. package/dist/{subject-settings-BwBmCdTR.js → subject-settings-CkEwrw3W.js} +23 -5
  348. package/dist/supabase/index.d.ts +23 -106
  349. package/dist/supabase/index.js +5 -4
  350. package/dist/supabase/middleware.d.ts +13 -6
  351. package/dist/supabase/middleware.js +16 -11
  352. package/dist/supabase-9pqI57pW.js +92 -0
  353. package/dist/{supabase-C0qESOa-.js → supabase-Dxlp8A94.js} +124 -247
  354. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  355. package/dist/{supabase-hook-ntETYCQu.js → supabase-hook-DdDQhMlw.js} +1659 -819
  356. package/dist/{supautils-u8jXTGrt.js → supautils-B6HYL9eL.js} +2 -2
  357. package/dist/support-session-C6xJQYut.js +158 -0
  358. package/dist/svelte/Protected.svelte +11 -4
  359. package/dist/svelte/index.d.ts +7 -7
  360. package/dist/svelte/index.js +26 -12
  361. package/dist/svelte/runtime.d.ts +10 -3
  362. package/dist/svelte/runtime.js +4 -3
  363. package/dist/svelte/source.d.ts +7 -7
  364. package/dist/svelte/source.js +5 -5
  365. package/dist/sveltekit/index.d.ts +51 -0
  366. package/dist/sveltekit/index.js +27 -0
  367. package/dist/tanstack-start/index.d.ts +51 -0
  368. package/dist/tanstack-start/index.js +40 -0
  369. package/dist/target-Bw37TFNA.js +51 -0
  370. package/dist/{validity-uOp8UpYn.js → tenancy-DN2QAx9z.js} +6 -42
  371. package/dist/terminal/index.d.ts +11 -9
  372. package/dist/terminal/index.js +36 -316
  373. package/dist/testing/index.d.ts +391 -106
  374. package/dist/testing/index.js +4574 -1286
  375. package/dist/testing/saas/index.d.ts +9 -8
  376. package/dist/testing/saas/index.js +2 -2
  377. package/dist/testing/saas/permissions.d.ts +1 -1
  378. package/dist/testing/saas/permissions.js +1 -2
  379. package/dist/text-BMFRfBqc.js +8 -0
  380. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  381. package/dist/thenable-yD7SabqG.js +31 -0
  382. package/dist/time-DkWjdL98.js +71 -0
  383. package/dist/{token-CIWxJOCh.js → token-BLZcjQgt.js} +15 -6
  384. package/dist/tool-refusal-CMLN5xhn.js +41 -0
  385. package/dist/trpc/index.d.ts +12 -9
  386. package/dist/trpc/index.js +18 -17
  387. package/dist/{types-DbjRN55U.d.ts → types-5Ut_pbKy.d.ts} +141 -13
  388. package/dist/types-BNORmDM8.d.ts +172 -0
  389. package/dist/types-BjV-fqcA.d.ts +57 -0
  390. package/dist/{types-QCuYJh4q.d.ts → types-BqAKcRNW.d.ts} +2 -1
  391. package/dist/types-C8-KNsFf.d.ts +107 -0
  392. package/dist/{types-aqOHTHcp.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  393. package/dist/{types-Dnemwd77.d.ts → types-CZTnPFzM.d.ts} +50 -11
  394. package/dist/{types-C97IskBw.d.ts → types-CdlxsYQh.d.ts} +23 -11
  395. package/dist/{types-DxiCGmmd.d.ts → types-ClZaWzfb.d.ts} +9 -6
  396. package/dist/types-DX0LaKTb.d.ts +157 -0
  397. package/dist/types-DiQjupG2.d.ts +332 -0
  398. package/dist/types-DqzsnlSA.js +67 -0
  399. package/dist/types-_sHy8BQf.d.ts +65 -0
  400. package/dist/types-fbZ7JEXr.d.ts +89 -0
  401. package/dist/types-tIgIeIKJ.d.ts +66 -0
  402. package/dist/unplugin/index.d.ts +1 -1
  403. package/dist/unplugin/index.js +2 -2
  404. package/dist/usage-CHOtwL19.js +1 -0
  405. package/dist/usage-DHtE8j4E.js +32 -0
  406. package/dist/{usage-ItS7nLcl.js → usage-T5mXq98v.js} +56 -13
  407. package/dist/{validation-error-Ba264OaJ.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  408. package/dist/{validation-error-CnjZ4t92.js → validation-error-ZfUHbKvf.js} +1 -1
  409. package/dist/validity-CZ7-y0Cj.js +79 -0
  410. package/dist/{verifier-BxBo6I44.js → verifier-DHuh-okk.js} +68 -21
  411. package/dist/verify-DbCL9bnB.js +1770 -0
  412. package/dist/{version-BvacVTZR.js → version-CEbQ5UeM.js} +4 -3
  413. package/dist/version-DXkYUISx.js +1 -0
  414. package/dist/{views-Soe7bGSC.js → views-DTIIO-oQ.js} +41 -2
  415. package/dist/{permissions-DttnqqxC.d.ts → vocabulary-D6lPdb4Z.d.ts} +120 -29
  416. package/dist/vue/index.d.ts +25 -21
  417. package/dist/vue/index.js +25 -9
  418. package/dist/waiter-BGUtGYoU.js +67 -0
  419. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  420. package/dist/watch-Cb-NcaUw.js +1 -0
  421. package/dist/{watch-DVBJ9cBq.js → watch-CszoTJMq.js} +47 -8
  422. package/dist/webmcp/index.d.ts +2 -2
  423. package/dist/webmcp/index.js +13 -37
  424. package/dist/where-scope-Dv-WTP-w.js +306 -0
  425. package/dist/who-can-D0QoYbEb.js +364 -0
  426. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  427. package/dist/wire-denial-C7PaVYEM.js +27 -0
  428. package/dist/workflow/index.d.ts +5 -0
  429. package/dist/workflow/index.js +223 -0
  430. package/dist/workflow-sdk/index.d.ts +56 -0
  431. package/dist/workflow-sdk/index.js +78 -0
  432. package/dist/wrap-Bd1Tejur.d.ts +15 -0
  433. package/dist/wrap-gX61EtpB.js +27 -0
  434. package/package.json +140 -41
  435. package/schemas/access-event-v1.json +118 -0
  436. package/schemas/approval-request-v1.json +34 -1
  437. package/schemas/approval-signature-v1.json +94 -0
  438. package/schemas/automation-event-v1.json +113 -0
  439. package/schemas/capability-v1.json +84 -0
  440. package/schemas/catalog-event-v1.json +87 -0
  441. package/schemas/catalog-v1.json +129 -12
  442. package/schemas/cli-commands-v1.json +164 -0
  443. package/schemas/cli-result-v1.json +96 -0
  444. package/schemas/cloud-api-v1.json +5407 -0
  445. package/schemas/connector-v1.json +408 -0
  446. package/schemas/credential-event-v1.json +81 -0
  447. package/schemas/credential-v1.json +134 -0
  448. package/schemas/decision-event-v1.json +288 -0
  449. package/schemas/delivery-event-v1.json +117 -0
  450. package/schemas/directory-event-v1.json +85 -0
  451. package/schemas/evidence-export-v1.json +54 -0
  452. package/schemas/membership-event-v1.json +93 -0
  453. package/schemas/policy-v1.json +68 -0
  454. package/schemas/pushed-policy-v1.json +236 -0
  455. package/schemas/run-v1.json +162 -0
  456. package/schemas/snapshot-v1.json +138 -0
  457. package/schemas/supabase-claims-v1.json +4 -4
  458. package/schemas/supabase-manifest-v1.json +5 -1
  459. package/schemas/support-session-v1.json +111 -0
  460. package/skills/permdock/SKILL.md +16 -12
  461. package/skills/permdock-agents/SKILL.md +40 -23
  462. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  463. package/skills/permdock-agents/references/runtimes.md +22 -18
  464. package/skills/permdock-approvals/SKILL.md +29 -13
  465. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  466. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  467. package/skills/permdock-audit/SKILL.md +3 -3
  468. package/skills/permdock-credentials/SKILL.md +5 -5
  469. package/skills/permdock-credentials/references/tokens-keys-links.md +19 -10
  470. package/skills/permdock-data/SKILL.md +6 -6
  471. package/skills/permdock-data/references/queries-and-rls.md +13 -8
  472. package/skills/permdock-data/references/relationships.md +3 -3
  473. package/skills/permdock-tenancy/SKILL.md +20 -7
  474. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  475. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +6 -4
  476. package/skills/permdock-wire/SKILL.md +18 -12
  477. package/skills/permdock-wire/references/adapters.md +146 -50
  478. package/skills/permdock-wire/references/policy-options.md +15 -6
  479. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  480. package/dist/approvals-DbYAuNkG.js +0 -224
  481. package/dist/arazzo-C9chp3ST.js +0 -54
  482. package/dist/bind-C_ob3LKa.d.ts +0 -25
  483. package/dist/catalog-CRW5Mx_B.js +0 -2
  484. package/dist/catalog-CYj-mX2O.js +0 -48
  485. package/dist/catalog-DWF5cYqB.js +0 -55
  486. package/dist/cloud-CfwZ39Rl.js +0 -50
  487. package/dist/cloud-DWLXO2af.js +0 -118
  488. package/dist/collect-CHB22Sx4.js +0 -83
  489. package/dist/collect-DSWOk19R.js +0 -2
  490. package/dist/commands-BeaGNj_o.js +0 -97
  491. package/dist/config-ir40y8m0.js +0 -36
  492. package/dist/create-CMwIl-w2.js +0 -253
  493. package/dist/delegation-D8pUEuce.js +0 -103
  494. package/dist/diff-C9RDjjhs.js +0 -48
  495. package/dist/doctor-Djh6JDEk.js +0 -53
  496. package/dist/doctor-DvH0IQff.js +0 -1194
  497. package/dist/doctor-collect-CjdO0wQX.js +0 -665
  498. package/dist/duration-xK2jGFVc.js +0 -25
  499. package/dist/errors-CWfoNg9N.js +0 -47
  500. package/dist/errors-DRnGZHzF.js +0 -30
  501. package/dist/evaluation-items-CfCCejQd.js +0 -40
  502. package/dist/expiry-BoBJ8Tvc.js +0 -7
  503. package/dist/fields-BMl1RxoX.js +0 -26
  504. package/dist/grantee-Cv5Sogfv.js +0 -602
  505. package/dist/headers-BZSDieNT.js +0 -6
  506. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  507. package/dist/ids-DC4V4CFu.js +0 -18
  508. package/dist/index-0nNqHspG.d.ts +0 -6
  509. package/dist/index-BNc7Wer_.d.ts +0 -483
  510. package/dist/index-C7Tw7MaW.d.ts +0 -201
  511. package/dist/instance-options-Dhhcnm3y.js +0 -22
  512. package/dist/load-DwJUafYN.js +0 -2
  513. package/dist/manifest-iaoBXHKc.js +0 -783
  514. package/dist/map-AcxK9o_D.js +0 -147
  515. package/dist/may-use-DndQ5tQ-.js +0 -77
  516. package/dist/openapi-CQTsgKoB.js +0 -164
  517. package/dist/permdock-CbgvLnuo.js +0 -3479
  518. package/dist/permissions-DVoF6dMt.js +0 -662
  519. package/dist/policy-xyWg7QdR.js +0 -1122
  520. package/dist/powersync-CrBX8hY6.js +0 -2
  521. package/dist/powersync-DE19b9dT.js +0 -62
  522. package/dist/protected-BdnIEFkY.d.ts +0 -27
  523. package/dist/protected-xAr24FEC.d.ts +0 -40
  524. package/dist/relations-cjOL01hZ.js +0 -505
  525. package/dist/rls-P-BeBx0n.js +0 -238
  526. package/dist/rls-graph-CHwx0V8q.js +0 -435
  527. package/dist/rls-ownership-DcYlZ09B.js +0 -843
  528. package/dist/rls-shared-Cewd_-zI.js +0 -495
  529. package/dist/rls-verify-CMv9H3wV.js +0 -746
  530. package/dist/run-BWc9qqvE.js +0 -174
  531. package/dist/server-DlZ28Oz5.js +0 -268
  532. package/dist/sink-B1fZzIMf.d.ts +0 -104
  533. package/dist/sink-Bd9PSyfq.js +0 -141
  534. package/dist/skills-C5CbhhpG.js +0 -56
  535. package/dist/snapshot-Enxd0n-s.js +0 -975
  536. package/dist/sql-xdg5f4Fi.js +0 -27
  537. package/dist/src-BDwEZWrZ.js +0 -568
  538. package/dist/store-jOBYpiXC.d.ts +0 -36
  539. package/dist/stores-C0IMQrGI.d.ts +0 -52
  540. package/dist/subject-C6dLxqHU.js +0 -24
  541. package/dist/supabase-config-Bj3iDH2I.js +0 -472
  542. package/dist/supabase-hook-gd3s8bxB.js +0 -2
  543. package/dist/supabase-s4o9s1O1.js +0 -83
  544. package/dist/thenable-okc2xDsj.js +0 -10
  545. package/dist/types-BnIEz1sU.d.ts +0 -48
  546. package/dist/types-Bvc4oWT6.d.ts +0 -9
  547. package/dist/types-CKNSyIf_.d.ts +0 -52
  548. package/dist/types-Cq_H8N_X.d.ts +0 -197
  549. package/dist/usage-B0YuTQRO.js +0 -42
  550. package/dist/usage-DorAJiU_.js +0 -2
  551. package/dist/vocabulary-DA8a8zif.d.ts +0 -56
  552. package/dist/watch-BwxLTYMZ.js +0 -2
@@ -0,0 +1,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 };
@@ -0,0 +1,89 @@
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";
4
+ import { t as PermissionBoundaryState } from "./boundary-BmHxVH1J.js";
5
+ import { l as PermissionState, m as ClientStore, u as ProviderOptionsBase } from "./types-BNORmDM8.js";
6
+ import { Snippet } from "svelte";
7
+ import { Readable } from "svelte/store";
8
+ //#region src/client/views.d.ts
9
+ /**
10
+ * What `Protected` renders: `pending` while an endpoint answer is in flight,
11
+ * `approval` for an approval-required decision, `denied` for any other
12
+ * denial.
13
+ */
14
+ type ProtectedView = (PermissionState & {
15
+ readonly slot: "pending" | "denied";
16
+ }) | {
17
+ readonly allowed: false;
18
+ readonly status: PermissionState["status"];
19
+ readonly decision: ApprovalRequiredDecision;
20
+ readonly slot: "approval";
21
+ } | {
22
+ readonly allowed: true;
23
+ readonly status: PermissionState["status"];
24
+ readonly decision: GrantedDecision;
25
+ readonly slot: "default";
26
+ };
27
+ /** Provider-wide content for the `Protected` slots a component leaves out. */
28
+ type SlotDefaults<P, F, A = F> = {
29
+ readonly pending?: P;
30
+ readonly denied?: F;
31
+ readonly approval?: A;
32
+ };
33
+ /**
34
+ * The content `Protected` renders for a non-default slot. Its own prop wins
35
+ * over the provider default; `approval` falls back to `denied`, first the
36
+ * component's, then the provider's.
37
+ */
38
+ declare function slotContent<P, F, A>(slot: "pending", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): P | undefined;
39
+ declare function slotContent<P, F, A>(slot: "denied", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): F | undefined;
40
+ declare function slotContent<P, F, A>(slot: "approval", own: SlotDefaults<P, F, A>, defaults: SlotDefaults<P, F, A> | undefined): F | A | undefined;
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
51
+ //#region src/svelte/protected.d.ts
52
+ type ProtectedProps = {
53
+ readonly permission: Permission;
54
+ readonly data?: unknown;
55
+ readonly tenant?: string;
56
+ readonly children?: Snippet<[GrantedDecision]>;
57
+ readonly pending?: Snippet;
58
+ readonly denied?: Snippet<[Decision]>;
59
+ /** Rendered for an approval-required decision; defaults to `denied`. */
60
+ readonly approval?: Snippet<[ApprovalRequiredDecision]>;
61
+ };
62
+ /** The instance for `tenant`, built once per store change rather than once per check. */
63
+ declare function scopedFor(store: ClientStore, tenant: string | undefined, _generation?: number): PermDock | undefined;
64
+ declare function viewFor(store: ClientStore, reference: Permission, data: unknown, scoped: PermDock | undefined, _generation?: number): ProtectedView;
65
+ //#endregion
66
+ //#region src/svelte/types.d.ts
67
+ type SveltePermDockOptions = ProviderOptionsBase & {
68
+ /**
69
+ * A getter (`() => data.snapshot`) or a readable store re-hydrates the
70
+ * store when it changes; a promise keeps the store `pending` until it
71
+ * settles (render the same promise with `{#await}`).
72
+ */
73
+ readonly snapshot: Snapshot | string | (() => Snapshot | string) | Readable<Snapshot | string> | PromiseLike<Snapshot | string>;
74
+ /** A getter (`() => page.params.org`) switches the active tenant (`refresh({ tenant })`) when it changes. */
75
+ readonly tenant?: string | (() => string | undefined);
76
+ /** A getter is read on every request, so a rotated token applies without a new store. */
77
+ readonly headers?: Readonly<Record<string, string>> | (() => Readonly<Record<string, string>> | undefined);
78
+ readonly verifier?: TokenVerifier;
79
+ /** What every `<Protected>` renders for a snippet it leaves out. */
80
+ readonly defaults?: PermDockDefaults;
81
+ };
82
+ /** Snippets for the `<Protected>` slots a component leaves out. */
83
+ type PermDockDefaults = {
84
+ readonly pending?: Snippet;
85
+ readonly denied?: Snippet<[Decision]>;
86
+ readonly approval?: Snippet<[ApprovalRequiredDecision]>;
87
+ };
88
+ //#endregion
89
+ export { viewFor as a, scopedFor as i, SveltePermDockOptions as n, PermissionBoundaryProps as o, ProtectedProps as r, slotContent as s, PermDockDefaults as t };
@@ -0,0 +1,66 @@
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
+ import { ReactNode } from "react";
6
+ //#region src/react/types.d.ts
7
+ type PermDockProviderProps = ({
8
+ readonly snapshot: Snapshot | string;
9
+ readonly snapshotPromise?: never;
10
+ } | {
11
+ /**
12
+ * An unawaited snapshot from a Server Component. Hooks never suspend on it: until it
13
+ * resolves they deny with `status: 'pending'`, then re-render. A rejection fails closed
14
+ * (`server-only`). Set `suspend` to suspend readers through `use()` instead.
15
+ */
16
+ readonly snapshotPromise: PromiseLike<Snapshot | string>;
17
+ readonly snapshot?: never;
18
+ }) & {
19
+ /**
20
+ * With `snapshotPromise`: `true` suspends every hook to the nearest Suspense boundary until it
21
+ * resolves, and a rejection reaches the nearest error boundary. Defaults to `false`.
22
+ */
23
+ readonly suspend?: boolean;
24
+ /**
25
+ * The AuthZEN evaluations endpoint for checks the snapshot cannot answer. `false` never
26
+ * fetches: those checks answer `denied` with reason `server-only`.
27
+ */
28
+ readonly endpoint?: string | false;
29
+ /** Where `refresh()` fetches a fresh snapshot. Defaults to `endpoint`. */
30
+ readonly snapshotUrl?: string;
31
+ readonly approvals?: string;
32
+ readonly tenant?: string;
33
+ readonly fetch?: typeof fetch;
34
+ readonly headers?: Readonly<Record<string, string>>;
35
+ readonly maxAge?: number;
36
+ readonly verifier?: TokenVerifier;
37
+ /** What every `<Protected>` below renders for a slot it leaves out. */
38
+ readonly defaults?: PermDockDefaults;
39
+ /** Localised text for `useDescribe()`. */
40
+ readonly messages?: DescribeMessages;
41
+ /** Called with each snapshot the store accepts; the latest prop is called. */
42
+ readonly onSnapshot?: NonNullable<ClientStoreOptions["onSnapshot"]>;
43
+ /** Called when the store drops its snapshot; the latest prop is called. */
44
+ readonly onClear?: () => void;
45
+ /** Milliseconds between approval status polls. Defaults to 2000. */
46
+ readonly approvalInterval?: number;
47
+ readonly children: ReactNode;
48
+ };
49
+ /** Provider-wide content for the `<Protected>` slots a component leaves out. */
50
+ type PermDockDefaults = {
51
+ readonly pending?: ReactNode;
52
+ readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
53
+ readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
54
+ };
55
+ type ProtectedProps = {
56
+ readonly permission: Permission;
57
+ readonly data?: unknown;
58
+ readonly tenant?: string;
59
+ readonly pending?: ReactNode;
60
+ readonly denied?: ReactNode | ((decision: Decision) => ReactNode);
61
+ /** Rendered for an approval-required decision; defaults to `denied`. */
62
+ readonly approval?: ReactNode | ((decision: ApprovalRequiredDecision) => ReactNode);
63
+ readonly children: ReactNode | ((decision: GrantedDecision) => ReactNode);
64
+ };
65
+ //#endregion
66
+ export { PermDockProviderProps as n, ProtectedProps as r, PermDockDefaults as t };
@@ -1,4 +1,4 @@
1
- import { a as PermDockPluginOptions } from "../types-DbjRN55U.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-DVBJ9cBq.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,34 +1,43 @@
1
- import { c as getResource } from "./permissions-DVoF6dMt.js";
2
- import { o as usageResult } from "./errors-CWfoNg9N.js";
3
- import { a as USAGE_REPORT_SCHEMA } from "./version-BvacVTZR.js";
4
- import { o as jsonSchemaOf } from "./catalog-doc-DdGm82XT.js";
5
- import { i as rel, r as listSourceFiles } from "./files-DWUN9PzI.js";
6
- import { a as loadModule, n as asPolicy, o as pickNamed } from "./load-DhWEB9P1.js";
7
- import { r as runCollect } from "./collect-DSTE3ml9.js";
1
+ import { a as getResource } from "./permission-registry-Br4jSNVi.js";
2
+ import { u as usageResult } from "./errors-CWTY6uih.js";
3
+ import { a as rel, r as listSourceFiles } from "./files-D_JIzUrP.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";
11
14
  import { createJiti } from "jiti";
12
15
  import { Visitor, parseSync } from "oxc-parser";
13
16
  import { isBuiltin } from "node:module";
14
- //#region src/cli/doctor-source.ts
17
+ //#region src/cli/doctor/source.ts
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-DPdqI50v.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,4 +1,4 @@
1
- import { t as compact } from "./compact-y6vfu2_f.js";
1
+ import { t as compact } from "./compact-CAf557ZB.js";
2
2
  //#region src/core/validation-error.ts
3
3
  /** The base of every Problem Details `type` URI; defined here so a validation error does not pull in the Problem Details builders. */
4
4
  const PROBLEM_BASE = "https://permdock.com/problems";
@@ -0,0 +1,79 @@
1
+ import { n as freezeDeep } from "./freeze-CrU8nQeX.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";
4
+ //#region src/core/fields.ts
5
+ function sanitizeFields(fields) {
6
+ if (fields === void 0) return;
7
+ return fields.filter((field) => field.length > 0 && !isForbiddenKey(field));
8
+ }
9
+ function grantCoversField(fields, field, effect) {
10
+ if (fields === void 0) return true;
11
+ if (fields.length === 0) return false;
12
+ if (field === void 0) return effect === "allow";
13
+ return fields.includes(field);
14
+ }
15
+ function pickVisible(row, canField) {
16
+ const out = {};
17
+ for (const key of ownKeys(row)) if (canField(key)) out[key] = ownGet(row, key);
18
+ return freezeDeep(out);
19
+ }
20
+ function sanitizeContext(value) {
21
+ if (value === null || typeof value !== "object" || Array.isArray(value)) return {};
22
+ const out = {};
23
+ for (const key of ownKeys(value)) out[key] = ownGet(value, key);
24
+ return out;
25
+ }
26
+ //#endregion
27
+ //#region src/core/validity.ts
28
+ /**
29
+ * The normalised validity of a grant, or `undefined` when neither bound is
30
+ * set. Fail-closed at definition time: a bound that does not parse, or a
31
+ * window that ends before it starts, throws so a typo never widens a grant.
32
+ */
33
+ function normalizeValidity(options, permissionKey) {
34
+ const from = options.validFrom === void 0 ? void 0 : instantOf(options.validFrom);
35
+ const until = options.validUntil === void 0 ? void 0 : instantOf(options.validUntil);
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`);
38
+ if (from !== void 0 && until !== void 0 && until <= from) throw new Error(`PermDock: validUntil on '${permissionKey}' must be after validFrom`);
39
+ if (from === void 0 && until === void 0) return;
40
+ return Object.freeze({
41
+ ...from === void 0 ? {} : { from },
42
+ ...until === void 0 ? {} : { until }
43
+ });
44
+ }
45
+ /** Whether a grant with this validity applies at `now` (Unix seconds); no validity always applies. */
46
+ function isActive(validity, now) {
47
+ if (validity === void 0) return true;
48
+ if (validity.from !== void 0 && now < validity.from) return false;
49
+ return validity.until === void 0 || now < validity.until;
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 });
78
+ //#endregion
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 };