permdock 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/README.md +37 -35
  2. package/dist/{schema-Bol6gqXA.js → 2020-C9VN-x8c.js} +5 -130
  3. package/dist/a2a/index.d.ts +6 -6
  4. package/dist/a2a/index.js +14 -17
  5. package/dist/{adapter-context-mlWsVGGg.js → adapter-context-CRhqyzCk.js} +1 -1
  6. package/dist/adoption-scan-B4R5fnMU.js +107 -0
  7. package/dist/agent/index.d.ts +3 -0
  8. package/dist/agent/index.js +1 -0
  9. package/dist/ai-sdk/index.d.ts +18 -35
  10. package/dist/ai-sdk/index.js +37 -23
  11. package/dist/{app-data-CV8pqqMi.js → app-data-MuyzVqX8.js} +2 -1
  12. package/dist/approval-header-CJACtHkv.js +23 -0
  13. package/dist/approval-prompt-Dg5LeAcT.js +62 -0
  14. package/dist/approval-prompt-Djo_PyZc.d.ts +57 -0
  15. package/dist/approvals/index.d.ts +5 -3
  16. package/dist/approvals/index.js +8 -5
  17. package/dist/approvals-DJ6Yd5z1.js +995 -0
  18. package/dist/arazzo-B6lebmiQ.js +36 -0
  19. package/dist/{arazzo-C4BcskbX.js → arazzo-BWhNF-k0.js} +20 -14
  20. package/dist/args-IIolxxKA.js +197 -0
  21. package/dist/astro/index.d.ts +43 -0
  22. package/dist/astro/index.js +27 -0
  23. package/dist/audience-Dg8XsRaO.js +55 -0
  24. package/dist/auth-DRLEizbL.js +178 -0
  25. package/dist/authzen/index.d.ts +26 -6
  26. package/dist/authzen/index.js +94 -79
  27. package/dist/automation-BMZPIVUM.d.ts +114 -0
  28. package/dist/automation-DVjOckjV.js +157 -0
  29. package/dist/better-auth/index.d.ts +8 -6
  30. package/dist/better-auth/index.js +9 -8
  31. package/dist/better-supabase/index.d.ts +357 -30
  32. package/dist/better-supabase/index.js +936 -194
  33. package/dist/{bind-BzqG8SMb.d.ts → bind--9EFVYWF.d.ts} +12 -10
  34. package/dist/{bind-kk-uyCwH.js → bind-CZzhx-Vj.js} +14 -10
  35. package/dist/body-CH5of8Ne.js +10 -0
  36. package/dist/body-text-QcXok_SI.js +52 -0
  37. package/dist/{build-instance-DIIV9DbC.js → build-instance-BMnAudHn.js} +4 -3
  38. package/dist/{canonical-json-CFKyFOke.js → canonical-json-BC8_nMTw.js} +5 -3
  39. package/dist/{capability-CksyCWDH.d.ts → capability-BSslw1QV.d.ts} +44 -25
  40. package/dist/{capability-txATtKV4.js → capability-N1K9IpqS.js} +68 -42
  41. package/dist/casbin-Cr7RLtA3.js +30 -0
  42. package/dist/casbin-Dyu2gnUD.js +234 -0
  43. package/dist/casl-64gpT-8x.js +24 -0
  44. package/dist/casl-DjEDhTCP.js +299 -0
  45. package/dist/catalog/index.d.ts +74 -2
  46. package/dist/catalog/index.js +51 -2
  47. package/dist/{catalog-tZUyOfOv.js → catalog-BECMPrwc.js} +51 -6
  48. package/dist/catalog-DjhMYYCq.js +1 -0
  49. package/dist/catalog-R_A__RsH.js +52 -0
  50. package/dist/{catalog-doc-DWtg0gGR.js → catalog-doc-C9wjsfNY.js} +45 -23
  51. package/dist/catalog-fingerprint-CCP0-yQS.js +153 -0
  52. package/dist/chat/index.d.ts +2 -0
  53. package/dist/chat/index.js +224 -0
  54. package/dist/chat-sdk/index.d.ts +87 -0
  55. package/dist/chat-sdk/index.js +197 -0
  56. package/dist/claims-map-7oQ3ue4X.js +13 -0
  57. package/dist/claims-map-Ca-QX8C6.d.ts +32 -0
  58. package/dist/claude-agent/index.d.ts +7 -14
  59. package/dist/claude-agent/index.js +24 -27
  60. package/dist/clerk/index.d.ts +9 -8
  61. package/dist/clerk/index.js +9 -14
  62. package/dist/cli/bin.js +36 -17
  63. package/dist/cli/index.d.ts +19 -5
  64. package/dist/cli/index.js +164 -4
  65. package/dist/cloud/index.d.ts +102 -63
  66. package/dist/cloud/index.js +239 -340
  67. package/dist/cloud-CIoHNevm.js +87 -0
  68. package/dist/codemod-Bmj9dWMH.js +37 -0
  69. package/dist/codemod-Cxvvc70T.js +2084 -0
  70. package/dist/{collect-2SrB7lfk.js → collect-CrZJJnEF.js} +75 -11
  71. package/dist/collect-DloHbDVa.js +55 -0
  72. package/dist/collect-FlXJlhus.js +1 -0
  73. package/dist/command-L8EstFNm.js +6 -0
  74. package/dist/compile/index.d.ts +1 -1
  75. package/dist/compile/index.js +1 -2
  76. package/dist/{compile-CcEu2ZQ1.js → compile-CMqMx_IN.js} +11 -8
  77. package/dist/{compile-CtTP7eur.d.ts → compile-Ckm2HqBZ.d.ts} +5 -3
  78. package/dist/completion-BqhRBJD8.js +143 -0
  79. package/dist/config-B46rm9sc.js +26 -0
  80. package/dist/{config-BIjREpyE.js → config-bs_kZeYq.js} +12 -7
  81. package/dist/{config-report--Xb9APJS.js → config-report-DUgj62Ai.js} +15 -5
  82. package/dist/{connection-DUsczpB5.js → connection-DjhIJSs2.js} +6 -5
  83. package/dist/{context-DieZVJXu.js → context-bbFHR-0D.js} +2 -2
  84. package/dist/convex/index.d.ts +11 -10
  85. package/dist/convex/index.js +6 -4
  86. package/dist/create-0VZ7Pdiu.d.ts +107 -0
  87. package/dist/create-BDS7wc3y.d.ts +138 -0
  88. package/dist/create-BFfm17UA.d.ts +110 -0
  89. package/dist/create-BWRSXgOF.js +403 -0
  90. package/dist/create-C3b4B5eF.js +130 -0
  91. package/dist/{create-BBO24vj6.js → create-DnrmLnLW.js} +31 -32
  92. package/dist/{credential-kue0qpbm.js → credential-DM2um3ha.js} +152 -31
  93. package/dist/credentials-DPyHmYz5.js +74 -0
  94. package/dist/delegation-DaXVdDhM.js +286 -0
  95. package/dist/delivery/index.d.ts +5 -0
  96. package/dist/delivery/index.js +5 -0
  97. package/dist/delivery-DCAgNyCn.js +499 -0
  98. package/dist/delivery-event-xX4obB8F.js +40 -0
  99. package/dist/{denied-text-DfRk15uw.d.ts → denied-text-D8jDHgsl.d.ts} +5 -5
  100. package/dist/{describe-C3ldA9os.d.ts → describe-BZUsixiL.d.ts} +2 -2
  101. package/dist/{describe-Cgkp7eP0.js → describe-BybMRY7A.js} +6 -2
  102. package/dist/device-BARQ8eYG.js +193 -0
  103. package/dist/diff-CxZo9pTq.js +37 -0
  104. package/dist/{diff-rpqoe7Ag.js → diff-DCePiN6M.js} +60 -54
  105. package/dist/doctor-CxiwSfqH.js +44 -0
  106. package/dist/{doctor-owlv6ddh.js → doctor-DFjUxf2f.js} +245 -50
  107. package/dist/drizzle/index.d.ts +5 -3
  108. package/dist/drizzle/index.js +2 -2
  109. package/dist/elysia/index.d.ts +16 -13
  110. package/dist/elysia/index.js +13 -12
  111. package/dist/env-DJZrPjRi.js +8 -0
  112. package/dist/errors-BDUwg2qC.js +27 -0
  113. package/dist/{errors-drnfxYtm.js → errors-BKy0EfhN.js} +5 -9
  114. package/dist/errors-BWXBMaKK.d.ts +11 -0
  115. package/dist/{errors-OD_4c__H.d.ts → errors-C2PXIv4c.d.ts} +2 -2
  116. package/dist/errors-CWTY6uih.js +143 -0
  117. package/dist/evaluate-_R8QkWaf.js +1732 -0
  118. package/dist/evaluations-16UqqQ6W.d.ts +32 -0
  119. package/dist/{evaluations-C9YJsv3H.js → evaluations-DZ2CbV5k.js} +145 -34
  120. package/dist/eve/index.d.ts +12 -16
  121. package/dist/eve/index.js +22 -28
  122. package/dist/event-time-CsegxXxB.js +23 -0
  123. package/dist/expiry-D4_YKRKD.js +52 -0
  124. package/dist/express/index.d.ts +13 -10
  125. package/dist/express/index.js +12 -11
  126. package/dist/fastify/index.d.ts +25 -22
  127. package/dist/fastify/index.js +13 -12
  128. package/dist/fetch-adapter-g0ypLkID.js +120 -0
  129. package/dist/fetch-adapter-qKJBuRqy.d.ts +31 -0
  130. package/dist/fields-D9tPVUUS.js +203 -0
  131. package/dist/files-C5ZI27eV.js +124 -0
  132. package/dist/{fixtures-h2eG2OZV.js → fixtures-B7XrLeY7.js} +8 -7
  133. package/dist/flags-C3DktBDY.js +86 -0
  134. package/dist/{from-snapshot-7REQZe0H.js → from-snapshot-D2lZt4Dd.js} +55 -52
  135. package/dist/{grantee-CXY-0C87.js → grantee-Cn1HyUsI.js} +3 -3
  136. package/dist/{grantee-conditions-MQs5NIuX.js → grantee-conditions-CcXf8hMM.js} +4 -3
  137. package/dist/{grantee-match-fxYp9Nmt.js → grantee-match-DHArqY82.js} +5 -4
  138. package/dist/h3/index.d.ts +37 -0
  139. package/dist/h3/index.js +35 -0
  140. package/dist/headers-BIjfMaoC.js +8 -0
  141. package/dist/headers-CIbDTUTK.d.ts +7 -0
  142. package/dist/{helpers-C9YmyBIa.js → helpers-DTcZOzhF.js} +45 -38
  143. package/dist/hono/index.d.ts +12 -9
  144. package/dist/hono/index.js +13 -12
  145. package/dist/hosted-BZIAYvon.js +315 -0
  146. package/dist/hosted-DBDX0M-P.d.ts +78 -0
  147. package/dist/{http-DPuDaChb.d.ts → http-B_LphE5Y.d.ts} +1 -2
  148. package/dist/http-DXJ37RDA.js +46 -0
  149. package/dist/{http-BEbdMZ05.js → http-ujKm0JXE.js} +1 -2
  150. package/dist/{import-UHk1N7vH.js → import-CNV7I2Dw.js} +25 -20
  151. package/dist/{import-BFIlhetD.js → import-DMmOG27O.js} +190 -53
  152. package/dist/index-BcHcPyIo.d.ts +110 -0
  153. package/dist/index-CaxrMD1A.d.ts +1 -0
  154. package/dist/index-Chrs5fQ-.d.ts +210 -0
  155. package/dist/index-CxGUswIC.d.ts +431 -0
  156. package/dist/index-D8EovfsP.d.ts +91 -0
  157. package/dist/{index-UdVQgq48.d.ts → index-DOVf7RJv.d.ts} +431 -81
  158. package/dist/{index-BwMe94Xq.d.ts → index-SGdIQyzc.d.ts} +34 -16
  159. package/dist/index.d.ts +19 -15
  160. package/dist/index.js +31 -21
  161. package/dist/init-DeMYsnYJ.js +96 -0
  162. package/dist/init-GG6Jh8HD.js +95 -0
  163. package/dist/{instance-options-plkrsAog.d.ts → instance-options-Omfd793B.d.ts} +2 -2
  164. package/dist/instance-snapshot-Cxq4ygFc.js +600 -0
  165. package/dist/instant-BluqDvyS.js +19 -0
  166. package/dist/internals-Dk8A8fX3.js +17 -0
  167. package/dist/{json-schema-DBkdUuCO.js → json-schema-B-vAwlde.js} +45 -6
  168. package/dist/json-schema-CN_iLFH2.d.ts +40 -0
  169. package/dist/jwt/index.d.ts +18 -11
  170. package/dist/jwt/index.js +156 -135
  171. package/dist/{kernel-CB3LrIJM.js → kernel-5JatXyND.js} +52 -24
  172. package/dist/kysely/index.d.ts +5 -3
  173. package/dist/kysely/index.js +2 -2
  174. package/dist/load-BxEtwlBS.js +1 -0
  175. package/dist/{load-C3_oTHyO.js → load-DFS_ry0W.js} +22 -6
  176. package/dist/{load-jose-BL6LH4bL.js → load-jose-DZ4dnjri.js} +1 -4
  177. package/dist/login-Dfe5RlYk.js +68 -0
  178. package/dist/login-imhuwvn3.js +254 -0
  179. package/dist/manifest-C8IzW3Do.js +42 -0
  180. package/dist/manifest-CtKR3GXL.js +370 -0
  181. package/dist/manifest-json-CAGzls-C.js +9 -0
  182. package/dist/{manifest-uDS9y5de.d.ts → manifest-mx5ghSFM.d.ts} +9 -2
  183. package/dist/manifest-schema-C0kK_8V0.js +399 -0
  184. package/dist/{map-claims-AVlBaJoa.js → map-claims-D3oRmTk0.js} +13 -10
  185. package/dist/{map-error-BE27PYkE.js → map-error-TCAdw-eW.js} +3 -3
  186. package/dist/{markers-CiwAOZtO.js → markers-C6joDI3o.js} +2 -1
  187. package/dist/mcp/index.d.ts +22 -12
  188. package/dist/mcp/index.js +57 -39
  189. package/dist/{migrate-BwlB5-Wk.js → migrate-BShP7Vf4.js} +53 -14
  190. package/dist/nest/index.d.ts +12 -9
  191. package/dist/nest/index.js +15 -14
  192. package/dist/next/index.d.ts +18 -21
  193. package/dist/next/index.js +13 -11
  194. package/dist/next/plugin.d.ts +1 -1
  195. package/dist/next/plugin.js +2 -2
  196. package/dist/node/index.d.ts +10 -10
  197. package/dist/node/index.js +7 -9
  198. package/dist/{ocsf-uYFXGVw2.js → ocsf-BFp-PZZA.js} +22 -11
  199. package/dist/openai/index.d.ts +9 -16
  200. package/dist/openai/index.js +17 -24
  201. package/dist/openapi/index.d.ts +3 -3
  202. package/dist/openapi/index.js +1 -1
  203. package/dist/{openapi-DBzHQbov.js → openapi-B7HZ0f-r.js} +8 -8
  204. package/dist/{openapi-BJdBmYDG.js → openapi-DTaEmTSW.js} +10 -9
  205. package/dist/openapi-ahr8rHu3.js +138 -0
  206. package/dist/operation-findings-DgATDpvh.js +36 -0
  207. package/dist/operations-CxybZErY.d.ts +59 -0
  208. package/dist/orpc/index.d.ts +13 -10
  209. package/dist/orpc/index.js +20 -15
  210. package/dist/otel/index.d.ts +3 -2
  211. package/dist/otel/index.js +30 -7
  212. package/dist/output-Dyw8fyPF.js +88 -0
  213. package/dist/output-files-B3IZJksC.js +1 -0
  214. package/dist/{output-files-CgIsvdSa.js → output-files-DhRBBE4n.js} +24 -26
  215. package/dist/{permission-keys-B26jeyUv.js → ownership-BatFgAA4.js} +1698 -869
  216. package/dist/{package-root-DtNnpmUd.js → package-root-Dk_ETdkp.js} +1 -1
  217. package/dist/{parse-CVFQHk6c.js → parse-Cxq0WxrA.js} +2 -2
  218. package/dist/{parse-local-manifest-C-q02Pal.js → parse-local-manifest-CVSs6J9I.js} +1 -1
  219. package/dist/{parse-local-manifest-DvYUR0QL.d.ts → parse-local-manifest-DgqtruPn.d.ts} +1 -1
  220. package/dist/parse-request-D_tUXG6M.js +26 -0
  221. package/dist/paths-DXSHAMIa.js +42 -0
  222. package/dist/pdp/index.d.ts +7 -3
  223. package/dist/pdp/index.js +45 -26
  224. package/dist/{peer-BOr_kJE1.js → peer-C8swJ2GH.js} +23 -4
  225. package/dist/peer-CRvC7Hg1.js +1 -0
  226. package/dist/permdock-B9JxkBwC.js +868 -0
  227. package/dist/permdock-D7eeLJER.d.ts +502 -0
  228. package/dist/{permission-registry-BsblpB-z.js → permission-registry-Br4jSNVi.js} +3 -3
  229. package/dist/permissions-B-wCP5ZC.js +30 -0
  230. package/dist/{permissions-CCJ6lmxB.js → permissions-CZKiUfFM.js} +4 -3
  231. package/dist/{permissions-COH-KRgT.d.ts → permissions-oEWfl-kl.d.ts} +1 -2
  232. package/dist/policies-CO1oOymN.js +295 -0
  233. package/dist/{policy-ur0BBK_e.d.ts → policy-Czo4n3Hs.d.ts} +2 -2
  234. package/dist/{hosted-CBHgkzDl.js → policy-DLZJ5gAp.js} +17 -273
  235. package/dist/policy-from-catalog-DzhEc3Y9.js +450 -0
  236. package/dist/policy-module-CTlwMvLI.js +89 -0
  237. package/dist/{policy-types-sp9P1iIV.d.ts → policy-types-DzwivBgR.d.ts} +434 -631
  238. package/dist/postgrest-CW0IqC-U.js +566 -0
  239. package/dist/postgrest-NUqZT-RB.d.ts +100 -0
  240. package/dist/powersync-BHfuehf3.js +62 -0
  241. package/dist/powersync-CbzkqL_M.js +1 -0
  242. package/dist/{powersync-cZe4kzhL.js → powersync-bYUDLOAO.js} +23 -24
  243. package/dist/preset/index.d.ts +146 -0
  244. package/dist/preset/index.js +1 -0
  245. package/dist/preset-DZdU0tne.js +1768 -0
  246. package/dist/principal-source-pHneukrx.js +103 -0
  247. package/dist/prisma/index.d.ts +6 -3
  248. package/dist/prisma/index.js +2 -2
  249. package/dist/{problem-CnWraVhC.js → problem-CTviyH5L.js} +13 -23
  250. package/dist/{problem-details-rIIo8B2C.d.ts → problem-details-DXlt-vks.d.ts} +1 -1
  251. package/dist/{problem-details-DECUnXAn.js → problem-details-cn5X30gZ.js} +43 -40
  252. package/dist/problem-types-CJ2325SZ.js +5 -0
  253. package/dist/{prompt-CXYhLfsS.js → prompt-DfZLJLIn.js} +2 -2
  254. package/dist/{protected-B3_P7xuw.d.ts → protected-DEPHc2xV.d.ts} +16 -8
  255. package/dist/{protected-BN7BUdY1.js → protected-DfjY5mLA.js} +21 -4
  256. package/dist/{provider-Bi-0HNL3.js → provider-CC-u3bYP.js} +2 -2
  257. package/dist/{provider-kwHC9CZD.d.ts → provider-DMVt6yYn.d.ts} +1 -1
  258. package/dist/{provider-store-Ctt-81Ni.js → provider-store-B5Yrkhzr.js} +2 -2
  259. package/dist/pull-BgIfno6w.js +256 -0
  260. package/dist/pull-ByOks_Tg.js +1 -0
  261. package/dist/push-CmFVBOeI.js +116 -0
  262. package/dist/pushed-policy-BImMTTIM.d.ts +57 -0
  263. package/dist/pushed-policy-DobP7AHI.js +238 -0
  264. package/dist/react/index.d.ts +8 -8
  265. package/dist/react/index.js +6 -6
  266. package/dist/react/provider-client.d.ts +1 -1
  267. package/dist/react/provider-client.js +1 -2
  268. package/dist/react-native/index.d.ts +24 -72
  269. package/dist/react-native/index.js +24 -22
  270. package/dist/{refs-f3imMjNW.js → refs-K6eWUJ0H.js} +1 -1
  271. package/dist/{relation-walk-BXnlLtg2.js → relation-walk-3OyDBF0S.js} +2 -2
  272. package/dist/{relations-CvmSpG67.js → relations-BnCWnJGI.js} +3 -3
  273. package/dist/renames-CGj7YwcQ.js +175 -0
  274. package/dist/{replay-COpmZUfx.d.ts → replay-D7iKcLFe.d.ts} +1 -1
  275. package/dist/{replay-BsOyTrdV.js → replay-Du1tJjG7.js} +2 -1
  276. package/dist/{request-context-BVM7aWNs.js → request-context-BTRTG7OT.js} +3 -3
  277. package/dist/request-schema-CMreVuFM.js +148 -0
  278. package/dist/resend/index.d.ts +126 -0
  279. package/dist/resend/index.js +379 -0
  280. package/dist/{resource-relations-D1Un3pcz.js → resource-relations-D_jw0BFx.js} +1 -1
  281. package/dist/{retire-BFcxL6un.js → retire-CALjIQ7e.js} +2 -2
  282. package/dist/{revocations-Cy06JNx2.d.ts → revocations-R07lFBnX.d.ts} +2 -0
  283. package/dist/rls-BA8an5Ap.js +336 -0
  284. package/dist/{rls-BEktUaqg.js → rls-j6t43t7n.js} +287 -689
  285. package/dist/{role-builder-B4GbKM-i.js → role-builder-CXbis5-X.js} +14 -207
  286. package/dist/{rpc-nYC3cR_u.js → rpc-aPyNi6tA.js} +7 -7
  287. package/dist/run-CNsApDpd.js +1 -0
  288. package/dist/run-DOfMtc9V.js +723 -0
  289. package/dist/run-ticket-BjhTOi6u.d.ts +124 -0
  290. package/dist/run-ticket-sxFI6LAk.js +337 -0
  291. package/dist/{runtime-D_tMXnsq.js → runtime-D3VTAiCA.js} +1 -1
  292. package/dist/{saas-DtaA4JuW.js → saas-FO-Q8oj0.js} +16 -14
  293. package/dist/scan-BOI5tJ-6.js +29 -0
  294. package/dist/{schema-DjQBcAP9.js → schema-B4v0Qrac.js} +102 -8
  295. package/dist/schema-yLuBWWsh.js +130 -0
  296. package/dist/scim/index.d.ts +2 -2
  297. package/dist/scim/index.js +1 -2
  298. package/dist/{scim-vFR1O5oG.js → scim-ClHtpyV3.js} +208 -76
  299. package/dist/{scopes-tvpa34ep.js → scopes-CUPSjo9q.js} +12 -7
  300. package/dist/server/index.d.ts +12 -143
  301. package/dist/server/index.js +12 -9
  302. package/dist/server-DqCT4CgZ.js +453 -0
  303. package/dist/{server-types-DdqBwZN_.d.ts → server-types-BLd4MnBX.d.ts} +51 -68
  304. package/dist/{sha256-BO0swRXL.js → sha256-D9ihqmvd.js} +8 -1
  305. package/dist/{shared-1uhI-e-b.js → shared-CD11nBbC.js} +18 -8
  306. package/dist/{shared-JhMeOsDF.js → shared-DvvFzYXe.js} +8 -9
  307. package/dist/signals-D3NcTKUS.js +32 -0
  308. package/dist/sink-BEZSlMS_.js +957 -0
  309. package/dist/sink-Bj_lDUDq.d.ts +225 -0
  310. package/dist/{skills-BZdRQkxs.js → skills-B6lVdD_W.js} +13 -6
  311. package/dist/skills-CTYwkl44.js +51 -0
  312. package/dist/snapshot-CXUWfsNy.js +269 -0
  313. package/dist/{snapshot-cache-Cod40D-X.js → snapshot-cache-DZHQ0KF6.js} +11 -5
  314. package/dist/{snapshot-cache-J5T7t_vD.d.ts → snapshot-cache-DqK9eDmM.d.ts} +7 -5
  315. package/dist/solid/index.d.ts +11 -12
  316. package/dist/solid/index.js +7 -7
  317. package/dist/solid-start/index.d.ts +52 -0
  318. package/dist/solid-start/index.js +49 -0
  319. package/dist/{sources-Dljy06zL.d.ts → sources-BV9j0DeZ.d.ts} +7 -13
  320. package/dist/{sources-B1-b-R0t.js → sources-vs5dGOsS.js} +125 -119
  321. package/dist/{sql-t8teWOfo.js → sql-B5T1IL83.js} +13 -1
  322. package/dist/src-DLfUWFAI.js +1851 -0
  323. package/dist/ssf/index.d.ts +4 -4
  324. package/dist/ssf/index.js +384 -47
  325. package/dist/standard-webhooks-6lg8v_is.d.ts +88 -0
  326. package/dist/standard-webhooks-DgFFD-Ga.js +228 -0
  327. package/dist/storage-C2bWdvJH.js +132 -0
  328. package/dist/{store-ILkLUj_o.js → store-4u_hxjWa.js} +40 -53
  329. package/dist/{store-options-CbUHDoSe.js → store-options-BqEakYRa.js} +26 -21
  330. package/dist/{stores-BHXdSbw9.js → stores-BbsD4fAR.js} +2 -2
  331. package/dist/{stores-Cxz_80g-.d.ts → stores-ClZUgeoP.d.ts} +7 -8
  332. package/dist/{stream-Dwsg6WwE.d.ts → stream-7-xmnf3U.d.ts} +2 -2
  333. package/dist/{stream-BMui98KK.js → stream-CvdUS9V1.js} +9 -2
  334. package/dist/style-DiKWnAvn.js +1 -0
  335. package/dist/{style-CTm1AXDT.js → style-Uao76wO7.js} +3 -2
  336. package/dist/subject-BGoM5o8B.js +17 -0
  337. package/dist/supabase/index.d.ts +23 -106
  338. package/dist/supabase/index.js +5 -4
  339. package/dist/supabase/middleware.d.ts +7 -6
  340. package/dist/supabase/middleware.js +13 -11
  341. package/dist/supabase-9pqI57pW.js +92 -0
  342. package/dist/{supabase-C1TWlnYt.js → supabase-Dxlp8A94.js} +98 -205
  343. package/dist/supabase-hook-CXcGpHqq.js +1 -0
  344. package/dist/{supabase-hook-Cva3ikXz.js → supabase-hook-DdDQhMlw.js} +951 -60
  345. package/dist/support-session-C6xJQYut.js +158 -0
  346. package/dist/svelte/Protected.svelte +4 -4
  347. package/dist/svelte/index.d.ts +7 -7
  348. package/dist/svelte/index.js +10 -10
  349. package/dist/svelte/runtime.d.ts +3 -3
  350. package/dist/svelte/runtime.js +3 -3
  351. package/dist/svelte/source.d.ts +7 -7
  352. package/dist/svelte/source.js +4 -4
  353. package/dist/sveltekit/index.d.ts +51 -0
  354. package/dist/sveltekit/index.js +27 -0
  355. package/dist/tanstack-start/index.d.ts +51 -0
  356. package/dist/tanstack-start/index.js +40 -0
  357. package/dist/target-Bw37TFNA.js +51 -0
  358. package/dist/{tenancy-DshjqY0n.js → tenancy-DN2QAx9z.js} +5 -5
  359. package/dist/terminal/index.d.ts +11 -9
  360. package/dist/terminal/index.js +23 -287
  361. package/dist/testing/index.d.ts +311 -38
  362. package/dist/testing/index.js +3475 -201
  363. package/dist/testing/saas/index.d.ts +9 -8
  364. package/dist/testing/saas/index.js +2 -2
  365. package/dist/testing/saas/permissions.d.ts +1 -1
  366. package/dist/testing/saas/permissions.js +1 -2
  367. package/dist/text-BMFRfBqc.js +8 -0
  368. package/dist/{text-diff-BdkkYSbi.js → text-diff-BQcUapOb.js} +1 -1
  369. package/dist/thenable-yD7SabqG.js +31 -0
  370. package/dist/time-DkWjdL98.js +71 -0
  371. package/dist/{token-Bx9qy30p.js → token-BLZcjQgt.js} +15 -6
  372. package/dist/{tool-refusal-CQ7OEia9.js → tool-refusal-CMLN5xhn.js} +2 -2
  373. package/dist/trpc/index.d.ts +12 -9
  374. package/dist/trpc/index.js +16 -14
  375. package/dist/{types-7rJVLWe5.d.ts → types-5Ut_pbKy.d.ts} +61 -11
  376. package/dist/{store-9KO4BlkB.d.ts → types-BNORmDM8.d.ts} +100 -75
  377. package/dist/types-BjV-fqcA.d.ts +57 -0
  378. package/dist/{types-CUcFZfpU.d.ts → types-BqAKcRNW.d.ts} +2 -1
  379. package/dist/types-C8-KNsFf.d.ts +107 -0
  380. package/dist/{types-Br9IXUBG.d.ts → types-CCpc2Dcv.d.ts} +77 -17
  381. package/dist/{types-DpWfQdSh.d.ts → types-CZTnPFzM.d.ts} +46 -11
  382. package/dist/{types-CqrjB9o6.d.ts → types-CdlxsYQh.d.ts} +23 -11
  383. package/dist/{types-CIlTojhq.d.ts → types-ClZaWzfb.d.ts} +9 -6
  384. package/dist/types-DX0LaKTb.d.ts +157 -0
  385. package/dist/types-DiQjupG2.d.ts +332 -0
  386. package/dist/types-DqzsnlSA.js +67 -0
  387. package/dist/types-_sHy8BQf.d.ts +65 -0
  388. package/dist/{types-ByUo56un.d.ts → types-fbZ7JEXr.d.ts} +23 -22
  389. package/dist/{types-DHrmBJLH.d.ts → types-tIgIeIKJ.d.ts} +7 -7
  390. package/dist/unplugin/index.d.ts +1 -1
  391. package/dist/unplugin/index.js +2 -2
  392. package/dist/usage-CHOtwL19.js +1 -0
  393. package/dist/usage-DHtE8j4E.js +32 -0
  394. package/dist/{usage-CG9nOYZw.js → usage-T5mXq98v.js} +54 -11
  395. package/dist/{validation-error-BSSw0l_8.d.ts → validation-error-Bg5Tpluk.d.ts} +1 -1
  396. package/dist/{validity-dVrUEPJt.js → validity-CZ7-y0Cj.js} +32 -15
  397. package/dist/{verifier-DMr_Zmb_.js → verifier-DHuh-okk.js} +18 -7
  398. package/dist/{verify-BztUB3GX.js → verify-DbCL9bnB.js} +645 -50
  399. package/dist/{version-BEogC-rB.js → version-CEbQ5UeM.js} +4 -3
  400. package/dist/version-DXkYUISx.js +1 -0
  401. package/dist/{views-CJsrBS1f.js → views-DTIIO-oQ.js} +22 -5
  402. package/dist/{permission-types-Dg39z9Kv.d.ts → vocabulary-D6lPdb4Z.d.ts} +65 -2
  403. package/dist/vue/index.d.ts +9 -10
  404. package/dist/vue/index.js +8 -8
  405. package/dist/waiter-BGUtGYoU.js +67 -0
  406. package/dist/waiter-CKy4MQSY.d.ts +36 -0
  407. package/dist/watch-Cb-NcaUw.js +1 -0
  408. package/dist/{watch-zeucB7eF.js → watch-CszoTJMq.js} +44 -5
  409. package/dist/webmcp/index.d.ts +2 -2
  410. package/dist/webmcp/index.js +3 -3
  411. package/dist/where-scope-Dv-WTP-w.js +306 -0
  412. package/dist/who-can-D0QoYbEb.js +364 -0
  413. package/dist/wire-delegation-Cv3W2eaM.js +36 -0
  414. package/dist/wire-denial-C7PaVYEM.js +27 -0
  415. package/dist/workflow/index.d.ts +5 -0
  416. package/dist/workflow/index.js +223 -0
  417. package/dist/workflow-sdk/index.d.ts +56 -0
  418. package/dist/workflow-sdk/index.js +78 -0
  419. package/dist/{wrap-Cr93qqdP.d.ts → wrap-Bd1Tejur.d.ts} +2 -1
  420. package/dist/{wrap-DWsU_5Bd.js → wrap-gX61EtpB.js} +7 -6
  421. package/package.json +136 -37
  422. package/schemas/access-event-v1.json +118 -0
  423. package/schemas/approval-request-v1.json +34 -1
  424. package/schemas/approval-signature-v1.json +94 -0
  425. package/schemas/automation-event-v1.json +113 -0
  426. package/schemas/capability-v1.json +84 -0
  427. package/schemas/catalog-event-v1.json +87 -0
  428. package/schemas/catalog-v1.json +123 -12
  429. package/schemas/cli-commands-v1.json +164 -0
  430. package/schemas/cli-result-v1.json +96 -0
  431. package/schemas/cloud-api-v1.json +5407 -0
  432. package/schemas/connector-v1.json +408 -0
  433. package/schemas/credential-event-v1.json +81 -0
  434. package/schemas/credential-v1.json +134 -0
  435. package/schemas/decision-event-v1.json +288 -0
  436. package/schemas/delivery-event-v1.json +117 -0
  437. package/schemas/directory-event-v1.json +85 -0
  438. package/schemas/evidence-export-v1.json +54 -0
  439. package/schemas/membership-event-v1.json +93 -0
  440. package/schemas/policy-v1.json +68 -0
  441. package/schemas/pushed-policy-v1.json +236 -0
  442. package/schemas/run-v1.json +162 -0
  443. package/schemas/snapshot-v1.json +138 -0
  444. package/schemas/supabase-claims-v1.json +4 -4
  445. package/schemas/supabase-manifest-v1.json +5 -1
  446. package/schemas/support-session-v1.json +111 -0
  447. package/skills/permdock/SKILL.md +16 -12
  448. package/skills/permdock-agents/SKILL.md +40 -23
  449. package/skills/permdock-agents/references/operations-automations-chat.md +221 -0
  450. package/skills/permdock-agents/references/runtimes.md +22 -18
  451. package/skills/permdock-approvals/SKILL.md +29 -13
  452. package/skills/permdock-approvals/references/delivery-and-waiters.md +172 -0
  453. package/skills/permdock-approvals/references/stores-and-resume.md +21 -7
  454. package/skills/permdock-audit/SKILL.md +3 -3
  455. package/skills/permdock-credentials/SKILL.md +5 -5
  456. package/skills/permdock-credentials/references/tokens-keys-links.md +14 -10
  457. package/skills/permdock-data/SKILL.md +6 -6
  458. package/skills/permdock-data/references/queries-and-rls.md +9 -8
  459. package/skills/permdock-data/references/relationships.md +3 -3
  460. package/skills/permdock-tenancy/SKILL.md +20 -7
  461. package/skills/permdock-tenancy/references/contacts-and-support-sessions.md +122 -0
  462. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +5 -4
  463. package/skills/permdock-wire/SKILL.md +17 -11
  464. package/skills/permdock-wire/references/adapters.md +139 -51
  465. package/skills/permdock-wire/references/policy-options.md +5 -5
  466. package/skills/permdock-wire/references/presets-and-recipes.md +58 -0
  467. package/dist/approvals-DZL76lKW.js +0 -240
  468. package/dist/arazzo-CD8d0WLb.js +0 -54
  469. package/dist/catalog-6yWAX6Ps.js +0 -2
  470. package/dist/catalog-WHG4kBq7.js +0 -48
  471. package/dist/cloud-C7bSDgX4.js +0 -50
  472. package/dist/cloud-PeBN3IEn.js +0 -118
  473. package/dist/collect-Bw2Jdq1q.js +0 -2
  474. package/dist/collect-CQx4hX4N.js +0 -83
  475. package/dist/commands-Cpip4ULx.js +0 -97
  476. package/dist/config-DLt6BvV7.js +0 -36
  477. package/dist/diff-Cnghh_Ip.js +0 -48
  478. package/dist/doctor-CuVJvhV_.js +0 -53
  479. package/dist/duration-xK2jGFVc.js +0 -25
  480. package/dist/errors-CWfoNg9N.js +0 -47
  481. package/dist/errors-DRnGZHzF.js +0 -30
  482. package/dist/expiry-BoBJ8Tvc.js +0 -7
  483. package/dist/fields-fwfXN01n.js +0 -1016
  484. package/dist/headers-BZSDieNT.js +0 -6
  485. package/dist/headers-Cf-zWvsO.d.ts +0 -6
  486. package/dist/ids-DC4V4CFu.js +0 -18
  487. package/dist/index-DgM7w96K.d.ts +0 -6
  488. package/dist/index-Dz7didpC.d.ts +0 -201
  489. package/dist/load-B_shHrmd.js +0 -2
  490. package/dist/manifest-BngWKryL.js +0 -770
  491. package/dist/may-use-BOn_dR_w.js +0 -78
  492. package/dist/openapi-DcQ1Kg40.js +0 -164
  493. package/dist/ownership-BgnbOJFT.js +0 -851
  494. package/dist/permdock-L26udHSk.js +0 -3646
  495. package/dist/powersync-BFSbSElQ.js +0 -62
  496. package/dist/powersync-DCDgZgfZ.js +0 -2
  497. package/dist/rls-55DQTuf5.js +0 -250
  498. package/dist/run-DMcNW_8T.js +0 -174
  499. package/dist/server-ZYEHtNHS.js +0 -268
  500. package/dist/sink-BTtmfPnE.js +0 -141
  501. package/dist/sink-CPN4zLfs.d.ts +0 -104
  502. package/dist/skills-Dle4ZoLF.js +0 -56
  503. package/dist/snapshot-Dc9CHPME.js +0 -1078
  504. package/dist/src-Bb7no-hS.js +0 -639
  505. package/dist/subject-C6dLxqHU.js +0 -24
  506. package/dist/supabase-Dbqr141s.js +0 -83
  507. package/dist/supabase-hook-BULg7Ut_.js +0 -2
  508. package/dist/thenable-QSmvt-vZ.js +0 -65
  509. package/dist/types-C0dee0Qf.d.ts +0 -197
  510. package/dist/types-DvupZE0w.d.ts +0 -9
  511. package/dist/usage-4G6t643F.js +0 -42
  512. package/dist/usage-iFLJ0-rr.js +0 -2
  513. package/dist/vocabulary-hhEFLFoL.d.ts +0 -65
  514. package/dist/watch-C8TpsAl4.js +0 -2
@@ -1,12 +1,63 @@
1
- import { i as describeError } from "./errors-CWfoNg9N.js";
1
+ import { r as isRecord } from "./compact-CAf557ZB.js";
2
+ import { T as isOperationEffect } from "./src-DLfUWFAI.js";
3
+ import { o as isPermission } from "./permission-registry-Br4jSNVi.js";
4
+ import { r as isOperationRisk } from "./permissions-B-wCP5ZC.js";
5
+ import { a as describeError, i as configError } from "./errors-CWTY6uih.js";
2
6
  import { a as rel, r as listSourceFiles, s as writeFileEnsuringDir, t as defaultSrcPath } from "./files-D_JIzUrP.js";
3
- import { i as formatCatalogJson, n as catalogForCompare, t as buildCatalog } from "./catalog-doc-DWtg0gGR.js";
7
+ import { a as formatCatalogJson, n as catalogForCompare, t as buildCatalog } from "./catalog-doc-C9wjsfNY.js";
8
+ import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-DFS_ry0W.js";
4
9
  import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
5
- import { a as loadModule, i as loadConfiguredPolicy, r as leavesOf, s as pickNamed, t as asPermissionTree } from "./load-C3_oTHyO.js";
6
- import { t as shortDiff } from "./text-diff-BdkkYSbi.js";
10
+ import { t as shortDiff } from "./text-diff-BQcUapOb.js";
7
11
  import { existsSync, readFileSync } from "node:fs";
8
12
  import { dirname, relative, resolve } from "node:path";
9
13
  import { Visitor, parseSync, visitorKeys } from "oxc-parser";
14
+ //#region src/cli/catalog-operations.ts
15
+ function metaOf(name, value) {
16
+ const fail = (field) => {
17
+ throw configError(`PermDock CLI: operations.${name}.meta${field} is invalid`);
18
+ };
19
+ if (!isRecord(value)) return fail("");
20
+ const { risk, effects, title } = value;
21
+ if (risk !== void 0 && !isOperationRisk(risk)) return fail(".risk");
22
+ if (effects !== void 0 && (!Array.isArray(effects) || !effects.every(isOperationEffect))) return fail(".effects");
23
+ if (title !== void 0 && typeof title !== "string") return fail(".title");
24
+ return {
25
+ ...risk === void 0 ? {} : { risk },
26
+ ...effects === void 0 ? {} : { effects },
27
+ ...title === void 0 ? {} : { title }
28
+ };
29
+ }
30
+ /**
31
+ * The catalog entries of a `defineOperations` map, in definition order.
32
+ * Throws for a value that is not one, such as a module that exports the
33
+ * definitions object instead of the map.
34
+ */
35
+ function catalogOperations(value) {
36
+ if (!isRecord(value)) throw configError("PermDock CLI: operations export is not an operation map");
37
+ const out = [];
38
+ for (const name of Object.keys(value)) {
39
+ const operation = value[name];
40
+ if (!isRecord(operation) || operation["name"] !== name || !isPermission(operation["permission"])) throw configError(`PermDock CLI: operations.${name} is not an operation; export the defineOperations result`);
41
+ const results = operation["results"];
42
+ if (results !== void 0 && !isPermission(results)) throw configError(`PermDock CLI: operations.${name}.results is not a permission`);
43
+ out.push({
44
+ name,
45
+ permission: operation["permission"].key,
46
+ ...results === void 0 ? {} : { results: results.key },
47
+ meta: metaOf(name, operation["meta"])
48
+ });
49
+ }
50
+ return out;
51
+ }
52
+ /** The configured operations module's catalog entries; `undefined` without one. Throws when it is missing or does not load. */
53
+ async function loadConfiguredOperations(cwd, path, options) {
54
+ if (path === void 0) return;
55
+ const abs = resolve(cwd, path);
56
+ if (!existsSync(abs)) throw configError(`PermDock CLI: operations module not found: ${rel(cwd, abs)}`);
57
+ const mod = await loadModule(abs, options);
58
+ return catalogOperations(pickNamed(mod, ["operations"]));
59
+ }
60
+ //#endregion
10
61
  //#region src/cli/scan.ts
11
62
  /** oxc reports recoverable problems as `Warning` or `Advice`; only `Error` leaves the program incomplete. */
12
63
  const PARSE_ERRORS = /* @__PURE__ */ new Set(["Error"]);
@@ -20,6 +71,7 @@ const CHECK_CALLS = /* @__PURE__ */ new Set([
20
71
  "actions",
21
72
  "usePermission",
22
73
  "getPermission",
74
+ "requirePermission",
23
75
  "protect",
24
76
  "allow",
25
77
  "deny",
@@ -83,7 +135,7 @@ function scanSources(cwd, files, knownKeys) {
83
135
  const callee = calleeName(node.callee);
84
136
  if (callee === "snapshot" || callee === "snapshotFor") snapshots.push({
85
137
  file: fileRel,
86
- line: lineAt(node.start ?? 0),
138
+ line: lineAt(node.start),
87
139
  include: includeOf(node.arguments?.[callee === "snapshot" ? 0 : 2], isRoot)
88
140
  });
89
141
  }
@@ -223,7 +275,7 @@ function boundToRoot(name, ancestors, definitions, cache) {
223
275
  }
224
276
  function recordCall(node, parent, lineAt, fileRel, roots, definitionFiles, usages, unknown, dynamic, roleNames, planNames, _allowKeys, knownKeys) {
225
277
  const callee = calleeName(node.callee);
226
- const line = lineAt(node.start ?? 0);
278
+ const line = lineAt(node.start);
227
279
  if (callee === "definePermissions" || callee === "defineRoles" || callee === "definePlans") {
228
280
  const name = declaredName(parent);
229
281
  if (name !== void 0) {
@@ -262,7 +314,7 @@ function recordMember(node, parent, lineAt, fileRel, isRoot, usages, unknown, dy
262
314
  const root = rootName(node);
263
315
  if (root !== void 0 && isRoot(root)) dynamic.push({
264
316
  file: fileRel,
265
- line: lineAt(node.start ?? 0),
317
+ line: lineAt(node.start),
266
318
  call: callName(parent)
267
319
  });
268
320
  return;
@@ -276,7 +328,7 @@ function recordMember(node, parent, lineAt, fileRel, isRoot, usages, unknown, dy
276
328
  const call = callName(parent);
277
329
  const usage = {
278
330
  file: fileRel,
279
- line: lineAt(node.start ?? 0),
331
+ line: lineAt(node.start),
280
332
  call
281
333
  };
282
334
  if (call === "allow") allowKeys.add(key);
@@ -422,8 +474,20 @@ async function runCollect(input) {
422
474
  const knownKeys = new Set(leavesOf(tree).map((leaf) => leaf.key));
423
475
  const scan = scanSources(input.cwd, files, knownKeys);
424
476
  const policy = input.loadPolicy === void 0 ? await loadConfiguredPolicy(input.cwd, input.config.policy, load) : await input.loadPolicy();
477
+ let operations;
478
+ try {
479
+ operations = await loadConfiguredOperations(input.cwd, input.config.operations, load);
480
+ } catch (error) {
481
+ return {
482
+ code: 2,
483
+ document: void 0,
484
+ scan: void 0,
485
+ outPath,
486
+ message: describeError(error)
487
+ };
488
+ }
425
489
  const generatedAt = input.now.toISOString();
426
- const document = buildCatalog(tree, scan, generatedAt, policy);
490
+ const document = buildCatalog(tree, scan, generatedAt, policy, operations);
427
491
  const next = formatCatalogJson(document);
428
492
  if (input.check) {
429
493
  if (!existsSync(outPath)) return {
@@ -436,7 +500,7 @@ async function runCollect(input) {
436
500
  const current = readFileSync(outPath, "utf8");
437
501
  const currentDoc = JSON.parse(current);
438
502
  const onDisk = catalogForCompare(currentDoc);
439
- const generated = catalogForCompare(input.scanPath === void 0 || samePaths(input.scanPath, srcPath) ? document : buildCatalog(tree, scanSources(input.cwd, listSourceFiles(input.cwd, srcPath), knownKeys), generatedAt, policy));
503
+ const generated = catalogForCompare(input.scanPath === void 0 || samePaths(input.scanPath, srcPath) ? document : buildCatalog(tree, scanSources(input.cwd, listSourceFiles(input.cwd, srcPath), knownKeys), generatedAt, policy, operations));
440
504
  if (onDisk !== generated) {
441
505
  const file = rel(input.cwd, outPath);
442
506
  return {
@@ -497,4 +561,4 @@ export const permissions = mergePermissions(collected)
497
561
  writeFileEnsuringDir(abs, body);
498
562
  }
499
563
  //#endregion
500
- export { scanSources as i, guessPermissions as n, runCollect as r, barrelFile as t };
564
+ export { loadConfiguredOperations as a, scanSources as i, guessPermissions as n, runCollect as r, barrelFile as t };
@@ -0,0 +1,55 @@
1
+ import { n as CliError } from "./errors-CWTY6uih.js";
2
+ import { t as defineLeaf } from "./command-L8EstFNm.js";
3
+ import { o as fileOut, t as checkFlag } from "./flags-C3DktBDY.js";
4
+ //#region src/cli/commands/collect.ts
5
+ const collect = defineLeaf({
6
+ flags: {
7
+ ...checkFlag,
8
+ src: {
9
+ type: "string",
10
+ repeatable: true,
11
+ description: "Source roots or globs",
12
+ valueHint: "path"
13
+ },
14
+ out: {
15
+ type: "string",
16
+ description: "Catalog file to write",
17
+ valueHint: "file"
18
+ },
19
+ watch: {
20
+ type: "boolean",
21
+ description: "Collect again when a source, config or policy file changes"
22
+ }
23
+ },
24
+ async run(ctx, { flags }) {
25
+ const out = fileOut("collect", flags.out);
26
+ const overrides = {
27
+ ...flags.src.length > 0 ? { srcPath: [...flags.src] } : {},
28
+ ...out === void 0 ? {} : { out }
29
+ };
30
+ if (flags.watch) {
31
+ if (flags.check) throw new CliError("usage", "collect: --watch writes the catalog; drop --check", { code: "invalid_value" });
32
+ const { watchCollect } = await import("./watch-Cb-NcaUw.js");
33
+ return watchCollect(ctx, overrides);
34
+ }
35
+ const result = await (await import("./collect-FlXJlhus.js")).runCollect({
36
+ cwd: ctx.cwd,
37
+ config: ctx.config,
38
+ collect: overrides,
39
+ check: flags.check,
40
+ now: ctx.now,
41
+ io: ctx.io
42
+ });
43
+ return {
44
+ code: result.code,
45
+ output: result.message,
46
+ ...result.document === void 0 ? {} : { data: {
47
+ out: result.outPath,
48
+ permissions: result.document.permissions.length,
49
+ ...flags.check ? { stale: result.code !== 0 } : {}
50
+ } }
51
+ };
52
+ }
53
+ });
54
+ //#endregion
55
+ export { collect };
@@ -0,0 +1 @@
1
+ export { r as runCollect } from "./collect-CrZJJnEF.js";
@@ -0,0 +1,6 @@
1
+ //#region src/cli/core/command.ts
2
+ function defineLeaf(command) {
3
+ return command;
4
+ }
5
+ //#endregion
6
+ export { defineLeaf as t };
@@ -1,3 +1,3 @@
1
1
  import { n as GraphSqlPart, r as RelationsMapping, t as GraphSql } from "../graph-sql-B-dsAT6j.js";
2
- import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-CtTP7eur.js";
2
+ import { a as CompiledWhere, c as compileWhere, i as CompiledSql, l as escapeLike, n as CompiledCompare, o as MembershipTable, r as CompiledExists, s as MembershipsMapping, t as CompileWhereOptions } from "../compile-Ckm2HqBZ.js";
3
3
  export { type CompileWhereOptions, type CompiledCompare, type CompiledExists, type CompiledSql, type CompiledWhere, type GraphSql, type GraphSqlPart, type MembershipTable, type MembershipsMapping, type RelationsMapping, compileWhere, escapeLike };
@@ -1,2 +1 @@
1
- import { n as escapeLike, t as compileWhere } from "../compile-CcEu2ZQ1.js";
2
- export { compileWhere, escapeLike };
1
+ export { t as compileWhere, n as escapeLike } from "../compile-CMqMx_IN.js";
@@ -1,10 +1,12 @@
1
1
  import { a as sole, n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
2
- import { a as assertSafeKey } from "./thenable-QSmvt-vZ.js";
3
- import { c as isConditionRef, i as resolveConditionRef, s as isConditionDate, u as parentHop } from "./refs-f3imMjNW.js";
2
+ import { t as assertSafeKey } from "./paths-DXSHAMIa.js";
3
+ import { c as isConditionRef, i as resolveConditionRef, s as isConditionDate, u as parentHop } from "./refs-K6eWUJ0H.js";
4
4
  import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
5
- import { t as expiredAt } from "./expiry-BoBJ8Tvc.js";
6
- import { c as rootScope, d as scopeList, l as scopeChain, m as tenantOf, o as resolveScope, p as subjectMemberships } from "./scopes-tvpa34ep.js";
7
- import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, o as groupEntries, p as restrictedFor, u as isPrincipalRelation } from "./resource-relations-D1Un3pcz.js";
5
+ import { t as expiredAt } from "./expiry-D4_YKRKD.js";
6
+ import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, o as groupEntries, p as restrictedFor, u as isPrincipalRelation } from "./resource-relations-D_jw0BFx.js";
7
+ import { o as epochSeconds, t as INVALID_NOW } from "./time-DkWjdL98.js";
8
+ import { c as rootScope, d as scopeList, l as scopeChain, m as tenantOf, o as resolveScope, p as subjectMemberships } from "./scopes-CUPSjo9q.js";
9
+ import { t as isoInstant } from "./instant-BluqDvyS.js";
8
10
  //#region src/conditions/graph-sql.ts
9
11
  /** A Postgres identifier, schema-qualified names split on `.`. */
10
12
  function quoteSqlName(name) {
@@ -339,8 +341,8 @@ function unwrap(value, subject) {
339
341
  return isScalar(resolved) ? resolved : null;
340
342
  }
341
343
  if (isConditionDate(value)) {
342
- const date = new Date(value.date);
343
- return Number.isNaN(date.getTime()) ? null : date;
344
+ const instant = isoInstant(value.date);
345
+ return instant === void 0 ? null : new Date(instant);
344
346
  }
345
347
  if (isReadonlyArray(value)) return value.map((item) => unwrap(item, subject));
346
348
  return value;
@@ -496,7 +498,8 @@ function compileExists(condition, table, subject, now, mappings, scopes) {
496
498
  }
497
499
  function compileMemberOf(condition, options) {
498
500
  assertSafeKey(condition.field, "condition field");
499
- const now = options.now ?? Date.now() / 1e3;
501
+ const now = epochSeconds(options.now);
502
+ if (!Number.isFinite(now)) throw new TypeError(`PermDock: compileWhere ${INVALID_NOW.message}`);
500
503
  const scopes = options.scopes ?? scopeList(void 0);
501
504
  const scope = condition.scope === "resource" ? void 0 : resolveScope(scopes, condition.scope);
502
505
  if (condition.scope !== "resource" && scope === void 0) return NEVER;
@@ -1,5 +1,6 @@
1
- import { It as WhereResult, hn as Scope, jr as Condition, kr as Subject } from "./policy-types-sp9P1iIV.js";
2
- import { y as ResourceNode } from "./permission-types-Dg39z9Kv.js";
1
+ import { Rt as Instant, cn as Scope, ir as Subject, lr as Condition } from "./policy-types-DzwivBgR.js";
2
+ import { N as ResourceNode } from "./vocabulary-D6lPdb4Z.js";
3
+ import { c as WhereResult } from "./permdock-D7eeLJER.js";
3
4
  import { r as RelationsMapping, t as GraphSql } from "./graph-sql-B-dsAT6j.js";
4
5
  //#region src/conditions/compile.d.ts
5
6
  type MembershipTable = {
@@ -32,7 +33,8 @@ type MembershipsMapping = {
32
33
  type CompileWhereOptions = {
33
34
  readonly subject?: Subject;
34
35
  readonly memberships?: MembershipsMapping;
35
- readonly now?: number;
36
+ /** The clock membership expiry is read at; a `Temporal.Instant` fits. Defaults to the current time. */
37
+ readonly now?: Instant;
36
38
  /** The policy's scopes; `where()` results carry them. Defaults to the implicit `tenant` / `team` pair. */
37
39
  readonly scopes?: readonly Scope[];
38
40
  /** Where the relation graph lives; without it a `related` node is refused. */
@@ -0,0 +1,143 @@
1
+ import { n as CliError } from "./errors-CWTY6uih.js";
2
+ import { a as suggestion, o as GLOBAL_FLAGS } from "./args-IIolxxKA.js";
3
+ import { a as resolve } from "./manifest-CtKR3GXL.js";
4
+ import { t as defineLeaf } from "./command-L8EstFNm.js";
5
+ //#region src/cli/core/completion.ts
6
+ const SHELLS = [
7
+ "bash",
8
+ "zsh",
9
+ "fish"
10
+ ];
11
+ function flagNames(flags) {
12
+ return Object.entries(flags).filter(([, flag]) => flag.hidden !== true).map(([name]) => `--${name}`);
13
+ }
14
+ /** The flag `token` names when it waits for a separate value, as `--only` does and `--only=x` does not. */
15
+ function valueFlag(flags, token) {
16
+ if (token === void 0 || !token.startsWith("--") || token.includes("=")) return;
17
+ const flag = flags[token.slice(2)];
18
+ return flag === void 0 || flag.type === "boolean" ? void 0 : flag;
19
+ }
20
+ /** The positional the next bare word fills, after the words already typed past the leaf's path. */
21
+ function positionalAt(leaf, typed) {
22
+ let index = 0;
23
+ for (let i = 0; i < typed.length; i += 1) {
24
+ const token = typed[i] ?? "";
25
+ if (token === "--") return;
26
+ if (token.startsWith("-")) {
27
+ if (valueFlag({
28
+ ...GLOBAL_FLAGS,
29
+ ...leaf.flags
30
+ }, token) !== void 0) i += 1;
31
+ continue;
32
+ }
33
+ index += 1;
34
+ }
35
+ const positionals = leaf.positionals ?? [];
36
+ const last = positionals.at(-1);
37
+ return positionals[index] ?? (last?.variadic === true ? last : void 0);
38
+ }
39
+ /** Values from `complete`, matched against what follows the last comma when the value is a list. */
40
+ async function valuesFor(complete, partial, list) {
41
+ const cut = list ? partial.lastIndexOf(",") + 1 : 0;
42
+ const head = partial.slice(0, cut);
43
+ const taken = head.split(",");
44
+ const tail = partial.slice(cut);
45
+ return (await complete()).filter((value) => value.startsWith(tail) && !taken.includes(value)).map((value) => head + value);
46
+ }
47
+ /**
48
+ * Candidates for the last word of `words`, the tokens typed after
49
+ * `permdock`. An empty list leaves the shell to complete file names.
50
+ */
51
+ async function candidates(words) {
52
+ const partial = words.at(-1) ?? "";
53
+ const before = words.slice(0, -1);
54
+ const resolved = resolve(before);
55
+ if (resolved.kind === "group") {
56
+ if (resolved.unknown !== void 0) return [];
57
+ return (partial.startsWith("-") ? flagNames(GLOBAL_FLAGS) : resolved.entry.children.filter((child) => child.kind === "group" || child.hidden !== true).map((child) => child.name)).filter((name) => name.startsWith(partial));
58
+ }
59
+ const leaf = await resolved.entry.load();
60
+ const flags = {
61
+ ...GLOBAL_FLAGS,
62
+ ...leaf.flags
63
+ };
64
+ const flag = valueFlag(flags, before.at(-1));
65
+ if (flag?.type === "enum") return valuesFor(() => flag.options, partial, flag.repeatable === true);
66
+ if (flag?.type === "string") return flag.complete === void 0 ? [] : valuesFor(flag.complete, partial, flag.repeatable === true || flag.list === true);
67
+ if (partial.startsWith("-")) return flagNames(flags).filter((name) => name.startsWith(partial));
68
+ const positional = positionalAt(leaf, resolved.rest);
69
+ return positional?.complete === void 0 ? [] : valuesFor(positional.complete, partial, false);
70
+ }
71
+ const BASH = `# permdock completion for bash: eval "$(permdock completion bash)"
72
+ _permdock() {
73
+ local -a words=("\${COMP_WORDS[@]:1:COMP_CWORD}")
74
+ local IFS=$'\\n'
75
+ COMPREPLY=($(permdock __complete -- "\${words[@]}" 2>/dev/null))
76
+ if [ \${#COMPREPLY[@]} -eq 0 ]; then
77
+ COMPREPLY=($(compgen -f -- "\${COMP_WORDS[COMP_CWORD]}"))
78
+ fi
79
+ }
80
+ complete -o filenames -F _permdock permdock
81
+ `;
82
+ const ZSH = `#compdef permdock
83
+ # permdock completion for zsh: permdock completion zsh > "\${fpath[1]}/_permdock"
84
+ _permdock() {
85
+ local -a reply
86
+ reply=("\${(@f)$(permdock __complete -- "\${words[@]:1:CURRENT-1}" 2>/dev/null)}")
87
+ if (( \${#reply[@]} == 0 )) || [[ -z "\${reply[1]}" ]]; then
88
+ _files
89
+ else
90
+ compadd -a reply
91
+ fi
92
+ }
93
+ compdef _permdock permdock
94
+ `;
95
+ const FISH = `# permdock completion for fish: permdock completion fish > ~/.config/fish/completions/permdock.fish
96
+ function __permdock_complete
97
+ set -l words (commandline -opc)[2..-1] (commandline -ct)
98
+ permdock __complete -- $words 2>/dev/null
99
+ end
100
+ complete -c permdock -f -a '(__permdock_complete)'
101
+ `;
102
+ function completionScript(shell) {
103
+ switch (shell) {
104
+ case "bash": return BASH;
105
+ case "zsh": return ZSH;
106
+ case "fish": return FISH;
107
+ default: return shell;
108
+ }
109
+ }
110
+ //#endregion
111
+ //#region src/cli/commands/completion.ts
112
+ const completion = defineLeaf({
113
+ positionals: [{
114
+ name: "shell",
115
+ description: "bash, zsh or fish",
116
+ required: true
117
+ }],
118
+ flags: {},
119
+ run(_ctx, { args }) {
120
+ const typed = args["shell"] ?? "";
121
+ const shell = SHELLS.find((name) => name === typed);
122
+ if (shell === void 0) throw new CliError("usage", `completion: unknown shell '${typed}'.${suggestion(typed, SHELLS)} Use bash, zsh or fish.`, { code: "invalid_value" });
123
+ return {
124
+ code: 0,
125
+ output: completionScript(shell),
126
+ data: { shell }
127
+ };
128
+ }
129
+ });
130
+ const complete = defineLeaf({
131
+ flags: {},
132
+ async run(ctx, { passthrough }) {
133
+ const found = await candidates(passthrough);
134
+ ctx.io.stdout(found.length === 0 ? "" : `${found.join("\n")}\n`);
135
+ return {
136
+ code: 0,
137
+ output: "",
138
+ streamed: true
139
+ };
140
+ }
141
+ });
142
+ //#endregion
143
+ export { complete, completion };
@@ -0,0 +1,26 @@
1
+ import { t as defineLeaf } from "./command-L8EstFNm.js";
2
+ import { a as failOnFlag } from "./flags-C3DktBDY.js";
3
+ //#region src/cli/commands/config.ts
4
+ const config = defineLeaf({
5
+ flags: {
6
+ print: {
7
+ type: "boolean",
8
+ description: "Print the effective config as JSON: the file, as written, and each default"
9
+ },
10
+ ...failOnFlag
11
+ },
12
+ async run(ctx, { flags }) {
13
+ const { runConfig } = await import("./config-report-DUgj62Ai.js");
14
+ return runConfig({
15
+ cwd: ctx.cwd,
16
+ config: ctx.config,
17
+ file: ctx.configPath,
18
+ warnings: ctx.configWarnings,
19
+ print: flags.print,
20
+ json: ctx.json,
21
+ strict: flags["fail-on"] === "warning"
22
+ });
23
+ }
24
+ });
25
+ //#endregion
26
+ export { config };
@@ -1,8 +1,8 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
- import { t as CliError } from "./errors-CWfoNg9N.js";
2
+ import { n as CliError } from "./errors-CWTY6uih.js";
3
3
  import { existsSync } from "node:fs";
4
4
  import { relative, resolve } from "node:path";
5
- //#region src/cli/config-schema.ts
5
+ //#region src/cli/project/config-schema.ts
6
6
  const SECTIONS = {
7
7
  collect: {
8
8
  srcPath: true,
@@ -26,6 +26,7 @@ const SECTIONS = {
26
26
  teamType: true,
27
27
  scopeTypes: true,
28
28
  roleClaim: true,
29
+ roleValues: true,
29
30
  gucPrefix: true,
30
31
  out: true,
31
32
  drizzle: true,
@@ -62,7 +63,10 @@ const SECTIONS = {
62
63
  realtime: true,
63
64
  storage: true
64
65
  },
65
- supabase: { hook: true },
66
+ supabase: {
67
+ hook: true,
68
+ schemas: true
69
+ },
66
70
  powersync: {
67
71
  out: true,
68
72
  resources: true,
@@ -82,6 +86,7 @@ const SECTIONS = {
82
86
  const TOP_LEVEL = /* @__PURE__ */ new Set([
83
87
  "permissions",
84
88
  "policy",
89
+ "operations",
85
90
  ...Object.keys(SECTIONS)
86
91
  ]);
87
92
  function isSection(key) {
@@ -101,7 +106,7 @@ function parseConfig(value, file) {
101
106
  const warnings = [];
102
107
  const unknown = (path, known) => `${file}: unknown key ${path}; PermDock reads ${[...known].join(", ")}`;
103
108
  for (const [key, entry] of Object.entries(value)) {
104
- if (key === "permissions" || key === "policy") {
109
+ if (key === "permissions" || key === "policy" || key === "operations") {
105
110
  if (entry !== void 0 && typeof entry !== "string") throw new CliError("usage", `PermDock CLI: ${file}: ${key} must be a module path string`);
106
111
  continue;
107
112
  }
@@ -120,7 +125,7 @@ function parseConfig(value, file) {
120
125
  };
121
126
  }
122
127
  //#endregion
123
- //#region src/cli/config.ts
128
+ //#region src/cli/project/config.ts
124
129
  const CONFIG_FILES = [
125
130
  "permdock.config.ts",
126
131
  "permdock.config.mts",
@@ -140,8 +145,8 @@ async function readConfig(cwd, fromFlag, options) {
140
145
  warnings: [],
141
146
  file: void 0
142
147
  };
143
- if (!existsSync(path)) throw new Error(`PermDock CLI: config file not found: ${path}`);
144
- const { loadModule, pickNamed } = await import("./load-B_shHrmd.js");
148
+ if (!existsSync(path)) throw new CliError("usage", `PermDock CLI: config file not found: ${path}`, { code: "config_not_found" });
149
+ const { loadModule, pickNamed } = await import("./load-BxEtwlBS.js");
145
150
  return {
146
151
  ...parseConfig(pickNamed(await loadModule(path, options), ["default"]), relative(cwd, path).replaceAll("\\", "/")),
147
152
  file: path
@@ -1,8 +1,9 @@
1
1
  import { a as rel, t as defaultSrcPath } from "./files-D_JIzUrP.js";
2
- import { n as CONFIG_REPORT_SCHEMA } from "./version-BEogC-rB.js";
2
+ import { r as CONFIG_REPORT_SCHEMA } from "./version-CEbQ5UeM.js";
3
+ import { n as guessPermissions, t as barrelFile } from "./collect-CrZJJnEF.js";
3
4
  import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
4
- import { n as guessPermissions, t as barrelFile } from "./collect-2SrB7lfk.js";
5
- import "./sources-B1-b-R0t.js";
5
+ import "./sources-vs5dGOsS.js";
6
+ import { t as DOCS_BASE } from "./manifest-CtKR3GXL.js";
6
7
  import { n as MIGRATION_DIRS, t as DEFAULT_SENSITIVE_ACTIONS } from "./constants-DcJABbLW.js";
7
8
  //#region src/cli/config-report.ts
8
9
  function configReport(input) {
@@ -30,13 +31,22 @@ function configReport(input) {
30
31
  function runConfig(input) {
31
32
  const report = configReport(input);
32
33
  const code = input.strict && report.warnings.length > 0 ? 1 : 0;
34
+ const findings = report.warnings.map((warning) => ({
35
+ code: "config-warning",
36
+ severity: "warning",
37
+ message: warning,
38
+ ...report.file === null ? {} : { file: report.file },
39
+ docs: `${DOCS_BASE}/config`
40
+ }));
33
41
  if (input.print || input.json) return {
34
42
  code,
35
- output: `${JSON.stringify(report, null, 2)}\n`
43
+ output: `${JSON.stringify(report, null, 2)}\n`,
44
+ findings
36
45
  };
37
46
  return {
38
47
  code,
39
- output: `${[report.file === null ? "no permdock.config file; every option takes its default" : `${report.file}: ${report.warnings.length === 0 ? "ok" : `${String(report.warnings.length)} warning${report.warnings.length === 1 ? "" : "s"}`}`, ...report.warnings.map((warning) => ` warn ${warning}`)].join("\n")}\n`
48
+ output: `${[report.file === null ? "no permdock.config file; every option takes its default" : `${report.file}: ${report.warnings.length === 0 ? "ok" : `${String(report.warnings.length)} warning${report.warnings.length === 1 ? "" : "s"}`}`, ...report.warnings.map((warning) => ` warn ${warning}`)].join("\n")}\n`,
49
+ findings
40
50
  };
41
51
  }
42
52
  //#endregion
@@ -1,5 +1,6 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { r as PermDockRevokedError } from "./errors-drnfxYtm.js";
2
+ import { r as PermDockRevokedError } from "./errors-BKy0EfhN.js";
3
+ import { a as durationOf, o as epochSeconds } from "./time-DkWjdL98.js";
3
4
  //#region src/server/connection.ts
4
5
  /** `setTimeout` stores delays in a signed 32-bit integer. */
5
6
  const MAX_DELAY = 2147483647;
@@ -52,7 +53,7 @@ async function openConnection(input) {
52
53
  const controller = new AbortController();
53
54
  const timers = /* @__PURE__ */ new Set();
54
55
  const decideOptions = compact({
55
- source: "adapter",
56
+ call: "adapter",
56
57
  adapter: input.adapter
57
58
  });
58
59
  let unsubscribe;
@@ -123,7 +124,7 @@ async function openConnection(input) {
123
124
  });
124
125
  };
125
126
  schedule = (permdock) => {
126
- const now = Date.now() / 1e3;
127
+ const now = epochSeconds();
127
128
  const expiresAt = permdock.subject.expiresAt;
128
129
  if (expiresAt !== void 0) {
129
130
  if (expiresAt <= now) {
@@ -141,8 +142,8 @@ async function openConnection(input) {
141
142
  }
142
143
  const membership = nextMembershipExpiry(permdock, now);
143
144
  if (membership !== void 0) after((membership - now) * 1e3, revalidate);
144
- const every = input.options.revalidate;
145
- if (every !== void 0 && Number.isFinite(every) && every > 0) after(every, revalidate);
145
+ const every = durationOf(input.options.revalidate);
146
+ if (every !== void 0) after(every * 1e3, revalidate);
146
147
  };
147
148
  try {
148
149
  current = await input.open();
@@ -1,6 +1,6 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { i as isPromiseLike } from "./store-options-CbUHDoSe.js";
3
- import { n as switchTenant, t as providerStore } from "./provider-store-Ctt-81Ni.js";
2
+ import { i as isPromiseLike } from "./store-options-BqEakYRa.js";
3
+ import { n as switchTenant, t as providerStore } from "./provider-store-B5Yrkhzr.js";
4
4
  import { getContext, onDestroy, setContext } from "svelte";
5
5
  import { toStore } from "svelte/store";
6
6
  //#region src/svelte/context.ts
@@ -1,21 +1,22 @@
1
- import { E as Policy, Or as Principal, j as PolicyVocabulary, jt as PermDock } from "../policy-types-sp9P1iIV.js";
2
- import { d as Permission } from "../permission-types-Dg39z9Kv.js";
3
- import { a as ProblemDetails, r as PermDockDeniedError } from "../errors-OD_4c__H.js";
4
- import { t as InstanceOptions } from "../instance-options-plkrsAog.js";
1
+ import { T as Policy, j as PolicyVocabulary, rr as Principal } 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 { a as ProblemDetails, r as PermDockDeniedError } from "../errors-C2PXIv4c.js";
5
+ import { t as InstanceOptions } from "../instance-options-Omfd793B.js";
5
6
  //#region src/convex/types.d.ts
6
- type ConvexCtxLike = {
7
+ type ConvexContextLike = {
7
8
  readonly auth?: {
8
9
  readonly getUserIdentity?: () => Promise<unknown>;
9
10
  };
10
11
  readonly db?: unknown;
11
12
  };
12
- type ConvexPermDockCtx<TCtx, V extends PolicyVocabulary = PolicyVocabulary> = TCtx & {
13
+ type ConvexPermDockContext<TCtx, V extends PolicyVocabulary = PolicyVocabulary> = TCtx & {
13
14
  readonly permdock: PermDock<V>;
14
15
  };
15
16
  type ConvexSubject<TCtx, TUser = unknown> = (ctx: TCtx) => TUser | Promise<TUser>;
16
17
  type ConvexQueryBuilder = (definition: {
17
18
  readonly args: Record<string, never>;
18
- readonly handler: (ctx: ConvexCtxLike, args: Record<string, never>) => unknown;
19
+ readonly handler: (ctx: ConvexContextLike, args: Record<string, never>) => unknown;
19
20
  }) => unknown;
20
21
  type ConvexPermDockOptions<TCtx, TUser = unknown> = InstanceOptions & {
21
22
  readonly subject: ConvexSubject<TCtx, TUser>;
@@ -25,7 +26,7 @@ type ConvexPermDockOptions<TCtx, TUser = unknown> = InstanceOptions & {
25
26
  readonly actor?: (ctx: TCtx) => unknown;
26
27
  readonly query?: ConvexQueryBuilder;
27
28
  };
28
- type ConvexHandler<TCtx, TArgs, TResult, V extends PolicyVocabulary = PolicyVocabulary> = (ctx: ConvexPermDockCtx<TCtx, V>, args: TArgs) => TResult | Promise<TResult>;
29
+ type ConvexHandler<TCtx, TArgs, TResult, V extends PolicyVocabulary = PolicyVocabulary> = (ctx: ConvexPermDockContext<TCtx, V>, args: TArgs) => TResult | Promise<TResult>;
29
30
  type ConvexErrorData = ProblemDetails;
30
31
  type ConvexPermDock<TCtx, V extends PolicyVocabulary = PolicyVocabulary> = {
31
32
  readonly withPermDock: <TArgs, TResult>(handler: ConvexHandler<TCtx, TArgs, TResult, V>) => (ctx: TCtx, args: TArgs) => Promise<TResult>;
@@ -40,6 +41,6 @@ export declare class ConvexError extends Error {
40
41
  readonly data: ReturnType<PermDockDeniedError["toProblemDetails"]>;
41
42
  constructor(data: ReturnType<PermDockDeniedError["toProblemDetails"]>);
42
43
  }
43
- export declare function createPermDock<TCtx, TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, options: ConvexPermDockOptions<TCtx, TUser>): ConvexPermDock<TCtx, V>;
44
+ export declare function createPermDock<TCtx, TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, given: ConvexPermDockOptions<TCtx, TUser>): ConvexPermDock<TCtx, V>;
44
45
  //#endregion
45
- export type { ConvexCtxLike, ConvexErrorData, ConvexHandler, ConvexPermDock, ConvexPermDockCtx, ConvexPermDockOptions, ConvexQueryBuilder, ConvexSubject };
46
+ export type { ConvexContextLike, ConvexErrorData, ConvexHandler, ConvexPermDock, ConvexPermDockContext, ConvexPermDockOptions, ConvexQueryBuilder, ConvexSubject };