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
@@ -1,11 +1,10 @@
1
- import { t as compact } from "../compact-y6vfu2_f.js";
2
- import { t as instanceOptions } from "../instance-options-Dhhcnm3y.js";
3
- import { n as createAgentKernel } from "../kernel-_RRHmnMY.js";
1
+ import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
+ import { c as withApp } from "../permdock-B9JxkBwC.js";
3
+ import { t as agentRuntime } from "../create-C3b4B5eF.js";
4
4
  //#region src/claude-agent/create.ts
5
5
  const MCP_PREFIX = "mcp__";
6
6
  function asInput(input) {
7
- if (input !== null && typeof input === "object" && !Array.isArray(input)) return input;
8
- return {};
7
+ return isRecord(input) ? input : {};
9
8
  }
10
9
  function untrustedServer(context, sources) {
11
10
  if (!context.toolName.startsWith(MCP_PREFIX)) return;
@@ -28,50 +27,47 @@ function toResult(verdict, input) {
28
27
  message: `${verdict.summary} Approval ${verdict.token} is pending; retry the call once it is approved.`
29
28
  };
30
29
  }
31
- function createPermDock(policy, options) {
30
+ function createPermDock(policy, given) {
31
+ const options = withApp(policy, given);
32
32
  const sources = options.mcpSources ?? ["sdk"];
33
- const kernel = createAgentKernel(policy, {
34
- ...compact({
35
- actor: options.actor,
36
- delegation: options.delegation,
37
- tenant: options.tenant,
38
- store: options.store
39
- }),
40
- ...instanceOptions(options),
41
- subject: options.subject,
42
- tools: options.tools,
43
- adapter: "claude-agent"
44
- });
33
+ const { agent, kernel } = agentRuntime(policy, options, "claude-agent");
34
+ /** `null`: an unmapped tool under `unmapped: 'allow'`, which PermDock does not decide. */
45
35
  const decide = async (context, input) => {
46
36
  const untrusted = untrustedServer(context, sources);
47
37
  if (untrusted !== void 0) return {
48
38
  behavior: "deny",
49
39
  message: untrusted
50
40
  };
41
+ if (options.unmapped === "allow" && !Object.hasOwn(options.operations, context.toolName)) return null;
51
42
  return toResult(await kernel.decideTool(context.toolName, input, context), input);
52
43
  };
53
- const canUseTool = (toolName, input, sdkOptions = {}) => decide(compact({
44
+ const canUseTool = async (toolName, input, sdkOptions = {}) => await decide(compact({
54
45
  toolName,
55
46
  mcpServer: sdkOptions.mcpServer,
56
47
  agentId: sdkOptions.agentID
57
- }), input);
48
+ }), input) ?? {
49
+ behavior: "allow",
50
+ updatedInput: input
51
+ };
58
52
  const permissionRequestHook = async (input) => {
59
53
  if (input.hook_event_name !== "PermissionRequest" || typeof input.tool_name !== "string") return {};
54
+ const decision = await decide(compact({
55
+ toolName: input.tool_name,
56
+ mcpServer: input.mcp_server,
57
+ sessionId: input.session_id,
58
+ agentId: input.agent_id
59
+ }), input.tool_input);
60
+ if (decision === null) return {};
60
61
  return { hookSpecificOutput: {
61
62
  hookEventName: "PermissionRequest",
62
- decision: await decide(compact({
63
- toolName: input.tool_name,
64
- mcpServer: input.mcp_server,
65
- sessionId: input.session_id,
66
- agentId: input.agent_id
67
- }), input.tool_input)
63
+ decision
68
64
  } };
69
65
  };
70
- return {
66
+ return Object.freeze({
67
+ ...agent,
71
68
  canUseTool,
72
- permissionRequestHook,
73
- permdock: (context) => kernel.instance(context)
74
- };
69
+ permissionRequestHook
70
+ });
75
71
  }
76
72
  //#endregion
77
73
  export { createPermDock };
@@ -1,6 +1,7 @@
1
- import { Nr as Principal, Pr as Subject, xt as RoleSource } from "../policy-IB6yxpC3.js";
2
- import { f as Permission } from "../permissions-DttnqqxC.js";
3
- import { s as RemotePdpCache } from "../types-DxiCGmmd.js";
1
+ import { W as CustomRoleSource, ir as Subject, rr as Principal } from "../policy-types-DzwivBgR.js";
2
+ import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
+ import { s as RemotePdpCache } from "../types-ClZaWzfb.js";
4
+ import { t as ClaimsMap } from "../claims-map-Ca-QX8C6.js";
4
5
  import { StandardSchemaV1 } from "@standard-schema/spec";
5
6
  //#region src/clerk/types.d.ts
6
7
  type ClerkPrincipal = Principal & {
@@ -30,14 +31,14 @@ type ClerkBackend = {
30
31
  } | readonly ClerkMembershipListItem[]>;
31
32
  };
32
33
  };
33
- type ClerkGlobalRoles = string | ((claims: Readonly<Record<string, unknown>>) => readonly string[]);
34
34
  type ClerkSubjectOptions = {
35
35
  readonly memberships?: "active" | "all";
36
36
  readonly backend?: ClerkBackend;
37
- readonly customRoles?: RoleSource;
37
+ readonly customRoles?: CustomRoleSource;
38
38
  readonly permissions?: Readonly<Record<string, Permission>>;
39
39
  readonly schema?: StandardSchemaV1;
40
- readonly globalRoles?: ClerkGlobalRoles;
40
+ /** Where the session token carries platform roles (`claims.roles`): a path such as `publicMetadata.staff`, or a function. Organization roles come from the `o` claim. */
41
+ readonly claims?: Pick<ClaimsMap, "roles">;
41
42
  readonly features?: Readonly<Record<string, string>>;
42
43
  readonly declared?: readonly string[];
43
44
  };
@@ -60,6 +61,6 @@ export declare function subjectFromClerk(authObject: unknown, options?: ClerkSub
60
61
  * A resolver that keeps each user's `memberships: 'all'` list for
61
62
  * `cache.ttl` (at most 30 seconds), so a removed membership grants until then.
62
63
  */
63
- export declare function createClerkSubjectResolver(options?: ClerkSubjectResolverOptions): (authObject: unknown) => Promise<Subject<ClerkPrincipal>>;
64
+ export declare function clerkSubjectResolver(options?: ClerkSubjectResolverOptions): (authObject: unknown) => Promise<Subject<ClerkPrincipal>>;
64
65
  //#endregion
65
- export type { ClerkAuthObject, ClerkBackend, ClerkGlobalRoles, ClerkMembershipListItem, ClerkPrincipal, ClerkSubjectOptions, ClerkSubjectResolverOptions };
66
+ export type { ClerkAuthObject, ClerkBackend, ClerkMembershipListItem, ClerkPrincipal, ClerkSubjectOptions, ClerkSubjectResolverOptions };
@@ -1,36 +1,17 @@
1
- import { t as compact } from "../compact-y6vfu2_f.js";
1
+ import { i as omitKeys, r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { t as ignoreRejection } from "../thenable-okc2xDsj.js";
4
- import { t as anonymousSubject } from "../subject-C6dLxqHU.js";
5
- import { c as ttlMs, s as ttlCache } from "../shared-DRu8VFVM.js";
3
+ import { r as validateRecord } from "../thenable-yD7SabqG.js";
4
+ import { t as anonymousSubject } from "../subject-BGoM5o8B.js";
5
+ import { t as readClaim } from "../claims-map-7oQ3ue4X.js";
6
+ import { c as ttlMs, s as ttlCache } from "../shared-DvvFzYXe.js";
6
7
  //#region src/clerk/subject.ts
7
- function isRecord(value) {
8
- return value !== null && typeof value === "object" && !Array.isArray(value);
9
- }
10
8
  function asRoles(value) {
11
9
  if (typeof value === "string") return value === "" ? [] : [value];
12
10
  if (!Array.isArray(value)) return [];
13
11
  return value.filter((item) => typeof item === "string");
14
12
  }
15
- function readPath(record, path) {
16
- let current = record;
17
- for (const part of path.split(".")) {
18
- if (!isRecord(current) || !Object.hasOwn(current, part)) return;
19
- current = current[part];
20
- }
21
- return current;
22
- }
23
- function validateClaims(extra, schema) {
24
- const result = schema["~standard"].validate(extra);
25
- if (result instanceof Promise) {
26
- ignoreRejection(result);
27
- return;
28
- }
29
- if ("issues" in result && result.issues !== void 0) return;
30
- const value = result.value;
31
- return isRecord(value) ? value : void 0;
32
- }
33
- const REGISTERED_CLAIMS = /* @__PURE__ */ new Set([
13
+ /** Registered claims plus `unsafeMetadata`, which the user can edit. */
14
+ const NOT_EXTRA = /* @__PURE__ */ new Set([.../* @__PURE__ */ new Set([
34
15
  "iss",
35
16
  "sub",
36
17
  "aud",
@@ -47,14 +28,9 @@ const REGISTERED_CLAIMS = /* @__PURE__ */ new Set([
47
28
  "fea",
48
29
  "o",
49
30
  "v"
50
- ]);
31
+ ]), "unsafeMetadata"]);
51
32
  function extraClaims(claims) {
52
- const extra = {};
53
- for (const [key, value] of Object.entries(claims)) {
54
- if (REGISTERED_CLAIMS.has(key) || key === "unsafeMetadata") continue;
55
- extra[key] = value;
56
- }
57
- return extra;
33
+ return omitKeys(claims, NOT_EXTRA);
58
34
  }
59
35
  /**
60
36
  * Plan slugs from `pla`, split by owner: `o:` plans belong to the session's
@@ -105,14 +81,8 @@ function featureRoles(fea, map) {
105
81
  sources
106
82
  };
107
83
  }
108
- function globalRolesFrom(claims, option) {
109
- if (option === void 0) return [];
110
- if (typeof option === "function") try {
111
- return asRoles(option(claims));
112
- } catch {
113
- return [];
114
- }
115
- return asRoles(readPath(claims, option));
84
+ function globalRolesFrom(claims, path) {
85
+ return path === void 0 ? [] : asRoles(readClaim(claims, path));
116
86
  }
117
87
  function splitList(value) {
118
88
  return typeof value === "string" ? value.split(",").map((item) => item.trim()).filter((item) => item !== "") : [];
@@ -231,7 +201,7 @@ function subjectFromClerk(authObject, options = {}) {
231
201
  * A resolver that keeps each user's `memberships: 'all'` list for
232
202
  * `cache.ttl` (at most 30 seconds), so a removed membership grants until then.
233
203
  */
234
- function createClerkSubjectResolver(options = {}) {
204
+ function clerkSubjectResolver(options = {}) {
235
205
  const { cache, ...rest } = options;
236
206
  const lists = ttlCache(ttlMs(cache));
237
207
  const load = async (backend, userId) => {
@@ -273,8 +243,8 @@ async function fromClerk(authObject, options, loadMemberships) {
273
243
  return true;
274
244
  })];
275
245
  let claims = extraClaims(mapped.claims);
276
- if (options.schema !== void 0) claims = validateClaims(claims, options.schema) ?? {};
277
- const global = [...globalRolesFrom(mapped.claims, options.globalRoles), ...features.user];
246
+ if (options.schema !== void 0) claims = validateRecord(options.schema, claims) ?? {};
247
+ const global = [...globalRolesFrom(mapped.claims, options.claims?.roles), ...features.user];
278
248
  const exp = mapped.claims["exp"];
279
249
  const principal = compact({
280
250
  id: mapped.id,
@@ -298,4 +268,4 @@ async function fromClerk(authObject, options, loadMemberships) {
298
268
  }
299
269
  }
300
270
  //#endregion
301
- export { createClerkSubjectResolver, subjectFromClerk };
271
+ export { clerkSubjectResolver, subjectFromClerk };
package/dist/cli/bin.js CHANGED
@@ -1,20 +1,39 @@
1
1
  #!/usr/bin/env node
2
- import { t as run } from "../run-BWc9qqvE.js";
3
- import { n as streamHasColors } from "../style-CTm1AXDT.js";
2
+ import module from "node:module";
3
+ import { text } from "node:stream/consumers";
4
4
  //#region src/cli/bin.ts
5
- const result = await run(process.argv.slice(2), {
6
- cwd: process.cwd(),
7
- io: {
8
- env: process.env,
9
- stdout: (text) => {
10
- process.stdout.write(text.endsWith("\n") ? text : `${text}\n`);
11
- },
12
- stderr: (text) => {
13
- process.stderr.write(text.endsWith("\n") ? text : `${text}\n`);
14
- },
15
- color: streamHasColors(process.stdout),
16
- interactive: process.stdin.isTTY === true && process.stdout.isTTY === true && process.env["CI"] === void 0
17
- }
18
- });
19
- process.exitCode ??= result.code;
5
+ module.enableCompileCache?.();
6
+ const argv = process.argv.slice(2);
7
+ if (argv.length === 1 && (argv[0] === "--version" || argv[0] === "-v")) {
8
+ const { cliVersion } = await import("../version-DXkYUISx.js");
9
+ process.stdout.write(`${cliVersion()}\n`);
10
+ } else {
11
+ const [{ isCi }, { trapSignals }, { run }, { streamHasColors }] = await Promise.all([
12
+ import("../env-DJZrPjRi.js"),
13
+ import("../signals-D3NcTKUS.js"),
14
+ import("../run-CNsApDpd.js"),
15
+ import("../style-DiKWnAvn.js")
16
+ ]);
17
+ const signals = trapSignals();
18
+ const result = await run(argv, {
19
+ cwd: process.cwd(),
20
+ io: {
21
+ env: process.env,
22
+ signal: signals.signal,
23
+ stdout: (chunk) => {
24
+ process.stdout.write(chunk);
25
+ },
26
+ stderr: (chunk) => {
27
+ process.stderr.write(chunk);
28
+ },
29
+ color: streamHasColors(process.stdout),
30
+ errColor: streamHasColors(process.stderr),
31
+ stdoutIsTty: process.stdout.isTTY === true,
32
+ stderrIsTty: process.stderr.isTTY === true,
33
+ readStdin: () => text(process.stdin),
34
+ interactive: process.stdin.isTTY === true && process.stdout.isTTY === true && !isCi(process.env)
35
+ }
36
+ });
37
+ process.exitCode ??= result.code;
38
+ }
20
39
  //#endregion
@@ -1,5 +1,6 @@
1
- import { a as CatalogDocument, c as CatalogResource, d as CatalogSupportAccess, f as CatalogUsage, l as CatalogRole, n as CatalogApproval, r as CatalogBreakGlass, s as CatalogPermission, t as CatalogActivation, u as CatalogScope } from "../types-Dnemwd77.js";
2
- import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMemberships, g as RlsTarget, h as RlsSuspension, i as PermDockConfig, l as RlsDialect, m as RlsSuspendedScope, n as CliIo, o as RlsActiveRow, p as RlsSuspendedMembership, r as CollectConfig, s as RlsApiKeys, t as CatalogConfig, u as RlsFunctionMapping } from "../types-DbjRN55U.js";
1
+ import { a as CatalogDocument, d as CatalogRole, f as CatalogScope, l as CatalogPermission, m as CatalogUsage, n as CatalogApproval, p as CatalogSupportAccess, r as CatalogBreakGlass, t as CatalogActivation, u as CatalogResource } from "../types-CZTnPFzM.js";
2
+ import { a as pushedPolicy, i as parsePushedPolicy, n as PushedGrant, r as PushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-BImMTTIM.js";
3
+ import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMemberships, g as RlsTarget, h as RlsSuspension, i as PermDockConfig, l as RlsDialect, m as RlsSuspendedScope, n as CliIo, o as RlsActiveRow, p as RlsSuspendedMembership, r as CollectConfig, s as RlsApiKeys, t as CatalogConfig, u as RlsFunctionMapping } from "../types-5Ut_pbKy.js";
3
4
  //#region src/cli/catalog-path.d.ts
4
5
  /**
5
6
  * The absolute path `permdock collect` writes the catalog to: `collect.out`,
@@ -8,10 +9,10 @@ import { _ as RunResult, c as RlsConfig, d as RlsMembershipTable, f as RlsMember
8
9
  */
9
10
  export declare function catalogPath(config: PermDockConfig, cwd: string, out?: string): string;
10
11
  //#endregion
11
- //#region src/cli/config.d.ts
12
+ //#region src/cli/project/config.d.ts
12
13
  export declare function defineConfig<T extends PermDockConfig>(config: T): T;
13
14
  //#endregion
14
- //#region src/cli/markers.d.ts
15
+ //#region src/cli/sql/markers.d.ts
15
16
  /** The first line of a hook migration `permdock supabase hook generate` wrote. */
16
17
  type SupabaseHookMarker = {
17
18
  /** The marker's major: `1` for `-- permdock:hook v1`. */
@@ -37,10 +38,23 @@ export declare function parseHookMarker(sql: string): SupabaseHookMarker | undef
37
38
  */
38
39
  export declare function parseGrantsMarker(sql: string): SupabaseGrantsMarker | undefined;
39
40
  //#endregion
40
- //#region src/cli/run.d.ts
41
+ //#region src/cli/token-schemas.d.ts
42
+ /**
43
+ * `schemas/run-v1.json`: the claims of a `vnd.permdock.run+jwt`, as
44
+ * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown
45
+ * claims are allowed; `parseRunTicket` drops them.
46
+ */
47
+ export declare const RUN_TICKET_SCHEMA: Readonly<Record<string, unknown>>;
48
+ /**
49
+ * `schemas/support-session-v1.json`: the claims of a
50
+ * `vnd.permdock.support-session+jwt`, as `signSupportSession` writes them.
51
+ */
52
+ export declare const SUPPORT_SESSION_SCHEMA: Readonly<Record<string, unknown>>;
53
+ //#endregion
54
+ //#region src/cli/core/run.d.ts
41
55
  export declare function run(argv: readonly string[], options?: {
42
56
  readonly cwd?: string;
43
57
  readonly io?: CliIo;
44
58
  }): Promise<RunResult>;
45
59
  //#endregion
46
- export type { CatalogActivation, CatalogApproval, CatalogBreakGlass, CatalogConfig, CatalogDocument, CatalogPermission, CatalogResource, CatalogRole, CatalogScope, CatalogSupportAccess, CatalogUsage, CollectConfig, PermDockConfig, RlsActiveRow, RlsApiKeys, RlsConfig, RlsDialect, RlsFunctionMapping, RlsMembershipTable, RlsMemberships, RlsSuspendedMembership, RlsSuspendedScope, RlsSuspension, RlsTarget, RunResult, SupabaseGrantsMarker, SupabaseHookMarker };
60
+ export { type CatalogActivation, type CatalogApproval, type CatalogBreakGlass, type CatalogConfig, type CatalogDocument, type CatalogPermission, type CatalogResource, type CatalogRole, type CatalogScope, type CatalogSupportAccess, type CatalogUsage, type CollectConfig, PUSHED_POLICY_SCHEMA, type PermDockConfig, type PushedGrant, type PushedPolicy, type RlsActiveRow, type RlsApiKeys, type RlsConfig, type RlsDialect, type RlsFunctionMapping, type RlsMembershipTable, type RlsMemberships, type RlsSuspendedMembership, type RlsSuspendedScope, type RlsSuspension, type RlsTarget, type RunResult, type SupabaseGrantsMarker, type SupabaseHookMarker, parsePushedPolicy, pushedPolicy };
package/dist/cli/index.js CHANGED
@@ -1,5 +1,165 @@
1
1
  import { t as catalogPath } from "../catalog-path-CnI0XTFK.js";
2
- import { t as defineConfig } from "../config-BJiM-xAm.js";
3
- import { o as parseGrantsMarker, s as parseHookMarker } from "../markers-B0hYLvMD.js";
4
- import { t as run } from "../run-BWc9qqvE.js";
5
- export { catalogPath, defineConfig, parseGrantsMarker, parseHookMarker, run };
2
+ import { t as defineConfig } from "../config-bs_kZeYq.js";
3
+ import { n as parsePushedPolicy, r as pushedPolicy, t as PUSHED_POLICY_SCHEMA } from "../pushed-policy-DobP7AHI.js";
4
+ import { c as parseGrantsMarker, l as parseHookMarker } from "../markers-C6joDI3o.js";
5
+ import { t as run } from "../run-DOfMtc9V.js";
6
+ //#region src/cli/token-schemas.ts
7
+ const ID = {
8
+ type: "string",
9
+ minLength: 1,
10
+ maxLength: 256
11
+ };
12
+ const NUMERIC_DATE = {
13
+ type: "integer",
14
+ minimum: 0
15
+ };
16
+ const AUDIENCE = { anyOf: [ID, {
17
+ type: "array",
18
+ items: ID,
19
+ minItems: 1
20
+ }] };
21
+ /**
22
+ * `schemas/run-v1.json`: the claims of a `vnd.permdock.run+jwt`, as
23
+ * `signRunTicket` writes them and `parseRunTicket` accepts them. Unknown
24
+ * claims are allowed; `parseRunTicket` drops them.
25
+ */
26
+ const RUN_TICKET_SCHEMA = {
27
+ $schema: "https://json-schema.org/draft/2020-12/schema",
28
+ $id: "https://permdock.com/schemas/run-v1.json",
29
+ title: "PermDock run ticket",
30
+ description: "The claims of a vnd.permdock.run+jwt, wire format v1. At least one of scope and authorization_details is present; automation is present exactly when kind is automation.",
31
+ type: "object",
32
+ required: [
33
+ "v",
34
+ "iss",
35
+ "sub",
36
+ "aud",
37
+ "jti",
38
+ "iat",
39
+ "exp",
40
+ "kind"
41
+ ],
42
+ properties: {
43
+ v: { const: 1 },
44
+ iss: ID,
45
+ sub: ID,
46
+ aud: AUDIENCE,
47
+ jti: ID,
48
+ iat: NUMERIC_DATE,
49
+ exp: NUMERIC_DATE,
50
+ kind: { enum: [
51
+ "automation",
52
+ "job",
53
+ "caller"
54
+ ] },
55
+ act: { $ref: "#/$defs/act" },
56
+ scope: { type: "string" },
57
+ authorization_details: {
58
+ type: "array",
59
+ items: {
60
+ type: "object",
61
+ required: ["type"],
62
+ properties: { type: { type: "string" } }
63
+ }
64
+ },
65
+ automation: {
66
+ type: "object",
67
+ required: ["id", "version"],
68
+ properties: {
69
+ id: ID,
70
+ version: { anyOf: [ID, {
71
+ type: "integer",
72
+ minimum: 0
73
+ }] }
74
+ }
75
+ },
76
+ tenant: ID,
77
+ trigger: { type: "object" },
78
+ binding: {
79
+ type: "object",
80
+ properties: {
81
+ connector: ID,
82
+ tools: {
83
+ type: "array",
84
+ items: ID,
85
+ maxItems: 64
86
+ }
87
+ }
88
+ }
89
+ },
90
+ anyOf: [{
91
+ required: ["scope"],
92
+ properties: { scope: true }
93
+ }, {
94
+ required: ["authorization_details"],
95
+ properties: { authorization_details: true }
96
+ }],
97
+ $defs: { act: {
98
+ description: "RFC 8693 act: the party running the work; at most 8 nested levels.",
99
+ type: "object",
100
+ required: ["sub"],
101
+ properties: {
102
+ sub: ID,
103
+ kind: ID,
104
+ act: { $ref: "#/$defs/act" }
105
+ }
106
+ } }
107
+ };
108
+ /**
109
+ * `schemas/support-session-v1.json`: the claims of a
110
+ * `vnd.permdock.support-session+jwt`, as `signSupportSession` writes them.
111
+ */
112
+ const SUPPORT_SESSION_SCHEMA = {
113
+ $schema: "https://json-schema.org/draft/2020-12/schema",
114
+ $id: "https://permdock.com/schemas/support-session-v1.json",
115
+ title: "PermDock support session",
116
+ description: "The claims of a vnd.permdock.support-session+jwt, wire format v1: sub is the viewed principal, act the support actor, jti the session id. exp is after iat, by at most one day.",
117
+ type: "object",
118
+ required: [
119
+ "v",
120
+ "iss",
121
+ "sub",
122
+ "aud",
123
+ "jti",
124
+ "iat",
125
+ "exp",
126
+ "act",
127
+ "tenant",
128
+ "reason",
129
+ "permissions"
130
+ ],
131
+ properties: {
132
+ v: { const: 1 },
133
+ iss: ID,
134
+ sub: ID,
135
+ aud: AUDIENCE,
136
+ jti: ID,
137
+ iat: NUMERIC_DATE,
138
+ exp: NUMERIC_DATE,
139
+ act: {
140
+ type: "object",
141
+ required: ["sub", "kind"],
142
+ additionalProperties: false,
143
+ properties: {
144
+ sub: ID,
145
+ kind: { const: "support" }
146
+ }
147
+ },
148
+ tenant: ID,
149
+ reason: {
150
+ type: "string",
151
+ minLength: 1,
152
+ maxLength: 1e3
153
+ },
154
+ permissions: {
155
+ type: "array",
156
+ items: ID,
157
+ minItems: 1,
158
+ maxItems: 64
159
+ },
160
+ approved_by: ID,
161
+ reference: ID
162
+ }
163
+ };
164
+ //#endregion
165
+ export { PUSHED_POLICY_SCHEMA, RUN_TICKET_SCHEMA, SUPPORT_SESSION_SCHEMA, catalogPath, defineConfig, parseGrantsMarker, parseHookMarker, parsePushedPolicy, pushedPolicy, run };