permdock 0.6.0 → 0.8.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 (507) hide show
  1. package/README.md +2 -3
  2. package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
  3. package/dist/a2a/index.d.ts +7 -7
  4. package/dist/a2a/index.js +9 -9
  5. package/dist/action-result-CL-QCITA.d.ts +19 -0
  6. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  7. package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-BLs67P1l.js} +5 -5
  8. package/dist/agent/index.d.ts +3 -3
  9. package/dist/agent/index.js +1 -1
  10. package/dist/ai-sdk/index.d.ts +31 -10
  11. package/dist/ai-sdk/index.js +22 -12
  12. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  13. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  15. package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  16. package/dist/approvals/index.d.ts +5 -5
  17. package/dist/approvals/index.js +7 -7
  18. package/dist/{approvals-p1PGoVjb.js → approvals-DnIBTuXE.js} +128 -78
  19. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  20. package/dist/{arazzo-41WuzHou.js → arazzo-3RhGfkAK.js} +2 -2
  21. package/dist/{arazzo-CaUVBn7D.js → arazzo-B5-ulWif.js} +6 -6
  22. package/dist/{args-IIolxxKA.js → args-0FrVs5EH.js} +125 -8
  23. package/dist/astro/index.d.ts +30 -12
  24. package/dist/astro/index.js +2 -2
  25. package/dist/{audience-DabClFLQ.js → audience-BAkBDMqn.js} +8 -8
  26. package/dist/{auth-DRLEizbL.js → auth--yPyZNgr.js} +21 -10
  27. package/dist/authzen/index.d.ts +171 -25
  28. package/dist/authzen/index.js +321 -149
  29. package/dist/{automation-BNM3TtDo.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  30. package/dist/{automation-DVjOckjV.js → automation-x3KEUusw.js} +22 -21
  31. package/dist/base-url-BQbddZO5.js +9 -0
  32. package/dist/better-auth/index.d.ts +2 -2
  33. package/dist/better-auth/index.js +13 -7
  34. package/dist/better-supabase/index.d.ts +392 -220
  35. package/dist/better-supabase/index.js +293 -152
  36. package/dist/{bind-DOyrv6zi.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  37. package/dist/{bind-CAvgUuKs.js → bind-D_sZSVA3.js} +22 -10
  38. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  39. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  40. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  41. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  42. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  43. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  44. package/dist/{build-instance-Bu_eDqYw.js → build-instance-CNWaYJyr.js} +3 -3
  45. package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
  46. package/dist/{capability-N1K9IpqS.js → capability-BqX94r07.js} +31 -25
  47. package/dist/{capability-Drg-1YhL.d.ts → capability-ChuiONQU.d.ts} +41 -29
  48. package/dist/{casbin-Dyu2gnUD.js → casbin-H0rKxBx2.js} +16 -8
  49. package/dist/{casbin-Cr7RLtA3.js → casbin-cbSbhT_k.js} +2 -2
  50. package/dist/{casl-64gpT-8x.js → casl-C4OINZHI.js} +2 -2
  51. package/dist/{casl-DjEDhTCP.js → casl-CHHoCldP.js} +19 -10
  52. package/dist/catalog/index.d.ts +104 -23
  53. package/dist/catalog/index.js +117 -8
  54. package/dist/{catalog-HD2gf5mY.js → catalog-BFpz2EmT.js} +57 -26
  55. package/dist/{catalog-DZVbrF-z.js → catalog-DCspHDc8.js} +3 -3
  56. package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-DjMKzJp9.js} +53 -16
  57. package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-e6aCWosn.js} +19 -15
  58. package/dist/catalog-mRQQQhNK.js +1 -0
  59. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  60. package/dist/{create-CQWIpUG-.js → challenge-DImNcR7B.js} +157 -39
  61. package/dist/chat/index.d.ts +1 -1
  62. package/dist/chat/index.js +13 -10
  63. package/dist/chat-sdk/index.d.ts +44 -26
  64. package/dist/chat-sdk/index.js +17 -17
  65. package/dist/checks-CGkP3Z7A.js +40 -0
  66. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  67. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  68. package/dist/claude-agent/index.d.ts +6 -6
  69. package/dist/claude-agent/index.js +6 -3
  70. package/dist/clerk/index.d.ts +11 -7
  71. package/dist/clerk/index.js +6 -6
  72. package/dist/cli/bin.js +4 -4
  73. package/dist/cli/index.d.ts +82 -7
  74. package/dist/cli/index.js +6 -6
  75. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  76. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  77. package/dist/cloud/index.d.ts +186 -38
  78. package/dist/cloud/index.js +293 -31
  79. package/dist/{cloud-ytQ3uviA.js → cloud-BFlGMaak.js} +5 -6
  80. package/dist/{codemod-5mpSpnUY.js → codemod-DLQ9Zpo4.js} +3 -4
  81. package/dist/{codemod-ua2hHy7w.js → codemod-DWSN2erG.js} +523 -201
  82. package/dist/collect-B5BL3klN.js +1 -0
  83. package/dist/{collect-mLTY4nwb.js → collect-B7ZFAJU3.js} +36 -64
  84. package/dist/{collect-Ci6akVwH.js → collect-Bzv3le0A.js} +6 -6
  85. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  86. package/dist/compile/index.d.ts +2 -2
  87. package/dist/compile/index.js +1 -1
  88. package/dist/{compile-1bsAezL0.d.ts → compile-BFzysW3o.d.ts} +36 -12
  89. package/dist/{compile-CMqMx_IN.js → compile-EzEMB-7v.js} +77 -33
  90. package/dist/{completion-BTFrHZhX.js → completion-saoYiRFO.js} +17 -8
  91. package/dist/config-BwPBfN0t.js +108 -0
  92. package/dist/{config-Bj2Ixq3d.js → config-DBeXXmBF.js} +2 -2
  93. package/dist/{config-report-DSpsLpCE.js → config-report-BipSWA6V.js} +9 -6
  94. package/dist/config-shape-ykV0Vm2n.js +134 -0
  95. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  96. package/dist/connector-schema-CYLQNMYq.js +434 -0
  97. package/dist/{context-B_u3_bDJ.js → context-BnIzxTNE.js} +4 -3
  98. package/dist/convex/index.d.ts +13 -7
  99. package/dist/convex/index.js +9 -6
  100. package/dist/core-H-mbhpZc.js +341 -0
  101. package/dist/core-hWIARPDz.d.ts +206 -0
  102. package/dist/{create-CBMmFie-.d.ts → create-BSNrVuxh.d.ts} +87 -34
  103. package/dist/{create-B30OMUOJ.d.ts → create-BVq1lNQE.d.ts} +49 -28
  104. package/dist/{create-D_NmPOdH.d.ts → create-CM1FciYG.d.ts} +37 -29
  105. package/dist/{create-CGm28gyI.js → create-Cq4Uox0f.js} +13 -9
  106. package/dist/{create-DCF2SvoT.js → create-_noSrY1T.js} +15 -21
  107. package/dist/{credential-BcoiejpY.js → credential-CyyyvCsL.js} +42 -39
  108. package/dist/{credentials-DPyHmYz5.js → credentials-CdDxp7jN.js} +6 -6
  109. package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-NB4wcyBf.js} +13 -2
  110. package/dist/{delegation-j6-rc37o.js → delegation-CDB6_keF.js} +31 -22
  111. package/dist/delivery/index.d.ts +5 -5
  112. package/dist/delivery/index.js +6 -5
  113. package/dist/{delivery-DCAgNyCn.js → delivery-BupfvJIV.js} +81 -20
  114. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  115. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  116. package/dist/{describe-BybMRY7A.js → describe-Bb4hGK5d.js} +6 -5
  117. package/dist/{describe-B5qgDvEW.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  118. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  119. package/dist/{diff-CmuSD3vc.js → diff-CN8IYhC_.js} +2 -2
  120. package/dist/{diff-3jbx6Rm4.js → diff-iZWV65nC.js} +23 -14
  121. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  122. package/dist/{doctor-BdZw53-k.js → doctor-CHD1M9R5.js} +485 -141
  123. package/dist/{doctor-3ZqNHX_G.js → doctor-D3wo-yuz.js} +4 -4
  124. package/dist/drizzle/index.d.ts +33 -19
  125. package/dist/drizzle/index.js +17 -9
  126. package/dist/elysia/index.d.ts +17 -11
  127. package/dist/elysia/index.js +5 -5
  128. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  129. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  130. package/dist/{errors-CWTY6uih.js → errors-Vpu6rKHl.js} +14 -10
  131. package/dist/{errors-DH5QEGXh.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  132. package/dist/{evaluate-CNClBvcj.js → evaluate-Dd8Ta0Ie.js} +185 -80
  133. package/dist/{evaluations-beAooV0n.js → evaluations-IBceAeKT.js} +41 -20
  134. package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-z8dQFDaN.d.ts} +12 -6
  135. package/dist/eve/index.d.ts +9 -6
  136. package/dist/eve/index.js +4 -4
  137. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  138. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  139. package/dist/express/index.d.ts +9 -6
  140. package/dist/express/index.js +9 -6
  141. package/dist/fastify/index.d.ts +16 -10
  142. package/dist/fastify/index.js +8 -5
  143. package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  144. package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-JL43jD3E.js} +14 -11
  145. package/dist/fields-D0vUI6dq.js +498 -0
  146. package/dist/{files-C5ZI27eV.js → files-B3AA05f1.js} +21 -5
  147. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  148. package/dist/{fixtures-B7XrLeY7.js → fixtures-A1_sp_tR.js} +15 -6
  149. package/dist/{flags-C3DktBDY.js → flags-DXjoTVbS.js} +2 -2
  150. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  151. package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-DCakWRsr.js} +26 -16
  152. package/dist/gen-B5kvbAoZ.js +58 -0
  153. package/dist/gen-DWCYcMQM.js +827 -0
  154. package/dist/generate-CRVV5V7l.js +165 -0
  155. package/dist/generate-CezbCaTI.js +275 -0
  156. package/dist/{grantee-hxrUsbpM.js → grantee-Dke-9rd1.js} +4 -4
  157. package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-BrYPe-w0.js} +12 -12
  158. package/dist/{grantee-match-DbENBHLB.js → grantee-match-7RZZvoT_.js} +12 -6
  159. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  160. package/dist/h3/index.d.ts +10 -7
  161. package/dist/h3/index.js +3 -3
  162. package/dist/headers-B9jQxjtW.d.ts +10 -0
  163. package/dist/{helpers-CBYVMjwh.js → helpers-DJicaG6f.js} +40 -28
  164. package/dist/hono/index.d.ts +16 -10
  165. package/dist/hono/index.js +5 -5
  166. package/dist/{hosted-BPk51-kX.d.ts → hosted-Cmtxogd0.d.ts} +44 -20
  167. package/dist/{hosted-B46-5LYE.js → hosted-D0IzESu_.js} +68 -25
  168. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  169. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  170. package/dist/{http-DXJ37RDA.js → http-DOL33cO0.js} +11 -8
  171. package/dist/{import-wyqXUyjm.js → import-CST57XLp.js} +64 -51
  172. package/dist/{import-CNV7I2Dw.js → import-_YqhhwvX.js} +6 -6
  173. package/dist/{index-B8YjkEZ4.d.ts → index-B8s204GL.d.ts} +64 -52
  174. package/dist/{index-Ch8LpNDp.d.ts → index-BT5-1VsX.d.ts} +64 -25
  175. package/dist/{index-DuWxc5dt.d.ts → index-BW_0MZOS.d.ts} +388 -149
  176. package/dist/index-BhxEUY9J.d.ts +233 -0
  177. package/dist/index-Bv5iXPqU.d.ts +210 -0
  178. package/dist/{index-C-6Letxg.d.ts → index-_9UiQIkt.d.ts} +164 -77
  179. package/dist/index.d.ts +22 -21
  180. package/dist/index.js +35 -33
  181. package/dist/{init-GG6Jh8HD.js → init-Dz_PsHdv.js} +5 -5
  182. package/dist/{init-DeMYsnYJ.js → init-cE3A8aXq.js} +10 -10
  183. package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  184. package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot--JWiTrvO.js} +81 -56
  185. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  186. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  187. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  188. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  189. package/dist/jwt/index.d.ts +125 -17
  190. package/dist/jwt/index.js +157 -16
  191. package/dist/{kernel-D0NVb1cK.js → kernel-C-fYydV2.js} +151 -16
  192. package/dist/kysely/index.d.ts +49 -33
  193. package/dist/kysely/index.js +9 -7
  194. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  195. package/dist/{load-DFS_ry0W.js → load-DjSU5KXO.js} +6 -6
  196. package/dist/load-Dm0pSYH3.js +1 -0
  197. package/dist/{login-Dfe5RlYk.js → login-D-8tMqzo.js} +4 -4
  198. package/dist/{login-imhuwvn3.js → login-DplQ0s84.js} +18 -15
  199. package/dist/{manifest-dvL2XEe1.js → manifest-Cgiq5oqc.js} +67 -37
  200. package/dist/{manifest-mx5ghSFM.d.ts → manifest-CzzWtnAb.d.ts} +144 -28
  201. package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-2r37XRhD.js} +80 -9
  202. package/dist/{manifest-C8IzW3Do.js → manifest-wg8WkkpD.js} +11 -7
  203. package/dist/{map-claims-D3oRmTk0.js → map-claims-BNWCJtmP.js} +27 -18
  204. package/dist/{map-error-Dr70oA_3.js → map-error-pasIGqMT.js} +7 -7
  205. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  206. package/dist/mcp/index.d.ts +154 -47
  207. package/dist/mcp/index.js +200 -41
  208. package/dist/{migrate-CIq4-E9F.js → migrate-B7oP_sQU.js} +102 -31
  209. package/dist/module-values-BJTBdo6y.js +107 -0
  210. package/dist/nest/index.d.ts +23 -13
  211. package/dist/nest/index.js +18 -11
  212. package/dist/next/client.d.ts +5 -2
  213. package/dist/next/client.js +1 -1
  214. package/dist/next/index.d.ts +72 -26
  215. package/dist/next/index.js +110 -6
  216. package/dist/next/plugin.d.ts +1 -1
  217. package/dist/next/plugin.js +4 -3
  218. package/dist/node/index.d.ts +5 -5
  219. package/dist/node/index.js +3 -3
  220. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  221. package/dist/openai/index.d.ts +13 -7
  222. package/dist/openai/index.js +3 -3
  223. package/dist/openapi/index.d.ts +61 -30
  224. package/dist/openapi/index.js +2 -2
  225. package/dist/{openapi-B7HZ0f-r.js → openapi-BOsx0xn9.js} +34 -24
  226. package/dist/{openapi-C4dDTVEd.js → openapi-CBZUhA3l.js} +4 -5
  227. package/dist/{openapi-DD1SV-5-.js → openapi-VeHHU2l9.js} +23 -14
  228. package/dist/{operation-findings-DgATDpvh.js → operation-findings-CXtFzlKJ.js} +3 -3
  229. package/dist/{operations-X0VM7F3m.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  230. package/dist/orpc/index.d.ts +68 -14
  231. package/dist/orpc/index.js +62 -13
  232. package/dist/otel/index.d.ts +7 -4
  233. package/dist/otel/index.js +8 -5
  234. package/dist/output-files-BHOIlrfD.js +1 -0
  235. package/dist/{output-files-DhRBBE4n.js → output-files-BIQ_9pIs.js} +29 -17
  236. package/dist/{output-1im__-08.js → output-tkju6U7R.js} +15 -7
  237. package/dist/ownership-B4L59T9u.js +1054 -0
  238. package/dist/parse-1_ZheTW5.js +151 -0
  239. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  240. package/dist/parse-local-manifest-DEiCF4ah.js +69 -0
  241. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  242. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  243. package/dist/pdp/index.d.ts +9 -6
  244. package/dist/pdp/index.js +23 -12
  245. package/dist/{peer-CRvC7Hg1.js → peer-C9LvBCcb.js} +1 -1
  246. package/dist/peer-Q0fuZ6hx.js +982 -0
  247. package/dist/{permdock-SV8ZINYT.d.ts → permdock-B6Sf4T_S.d.ts} +270 -117
  248. package/dist/{permdock-BrAscV28.js → permdock-L-_I_3zP.js} +226 -74
  249. package/dist/{permission-registry-Br4jSNVi.js → permission-registry-B8tYxPIt.js} +24 -11
  250. package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-CAY-GU7e.d.ts} +130 -104
  251. package/dist/{permissions-u_KHg-sN.d.ts → permissions-Bx6UI8n1.d.ts} +6 -2
  252. package/dist/{permissions-B-wCP5ZC.js → permissions-CVXmRILq.js} +3 -3
  253. package/dist/{permissions-BPxlwVhN.js → permissions-mDcTWoBs.js} +8 -5
  254. package/dist/pg-DQTqRrou.js +60 -0
  255. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  256. package/dist/pkce-CnmmYqUZ.js +21 -0
  257. package/dist/{policy-77FSAq_V.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  258. package/dist/{policy-DbM5YYtV.js → policy-CLQ8__GF.js} +49 -20
  259. package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  260. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  261. package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-CCiDRZBH.d.ts} +802 -334
  262. package/dist/postgres-store-DcyrPS-r.js +1028 -0
  263. package/dist/{postgrest-DAjUkF9w.js → postgrest-D4nuPXIQ.js} +88 -36
  264. package/dist/{postgrest-CEgRbefE.d.ts → postgrest-DicQyqm-.d.ts} +60 -30
  265. package/dist/powersync-DHNQX06W.js +1117 -0
  266. package/dist/{powersync-DISt6SUe.js → powersync-DXqGuq9A.js} +3 -3
  267. package/dist/powersync-Djf-zCpB.js +1 -0
  268. package/dist/preset/index.d.ts +38 -28
  269. package/dist/preset/index.js +1 -1
  270. package/dist/{preset-DZdU0tne.js → preset-BjLzeFpp.js} +58 -34
  271. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  272. package/dist/prisma/index.d.ts +69 -41
  273. package/dist/prisma/index.js +21 -17
  274. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  275. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  276. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  277. package/dist/prompt-BYc6drYW.js +938 -0
  278. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  279. package/dist/protected-action-DUYqb-Ma.js +80 -0
  280. package/dist/{protected-BlF0F6wL.js → protected-action-QEA8arRB.js} +48 -14
  281. package/dist/{provider-B1al-AZz.js → provider-C55OGXJ7.js} +5 -4
  282. package/dist/{provider-DILL9oPK.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  283. package/dist/{provider-store-DM6DNcta.js → provider-store-CaTv00tr.js} +13 -9
  284. package/dist/pull-B65ndFNZ.js +1 -0
  285. package/dist/{pull-jEwbf80J.js → pull-CwpGaQSi.js} +12 -11
  286. package/dist/{push-BD4f15co.js → push-DgssgzkK.js} +62 -16
  287. package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  288. package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-ITwYKvvH.js} +10 -7
  289. package/dist/react/index.d.ts +9 -8
  290. package/dist/react/index.js +7 -6
  291. package/dist/react/provider-client.d.ts +1 -1
  292. package/dist/react/provider-client.js +1 -1
  293. package/dist/react-native/index.d.ts +104 -51
  294. package/dist/react-native/index.js +394 -67
  295. package/dist/{refs-K6eWUJ0H.js → refs-C8BKxc_e.js} +17 -3
  296. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  297. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  298. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  299. package/dist/{replay-Bkm-Ne4l.d.ts → replay-DNftIb_R.d.ts} +1 -1
  300. package/dist/{request-context-C81Pip9n.js → request-context-C25ilqiJ.js} +8 -8
  301. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  302. package/dist/resend/index.d.ts +34 -28
  303. package/dist/resend/index.js +29 -29
  304. package/dist/resolve-names-CF7xXLSG.js +201 -0
  305. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  306. package/dist/{retire-CALjIQ7e.js → retire-B2xffQgY.js} +15 -6
  307. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  308. package/dist/{rls-DTvYd-lI.js → rls-CNEH2_BG.js} +743 -624
  309. package/dist/{rls-BAqP4q66.js → rls-Ca8Jz9b5.js} +41 -10
  310. package/dist/{role-builder-uWQZ4v84.js → role-builder-BK2-T6oD.js} +41 -20
  311. package/dist/rolldown-runtime-C3I60J0A.js +4 -0
  312. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  313. package/dist/{rpc-VSl5ylaQ.js → rpc-fNqAIqQk.js} +8 -5
  314. package/dist/{run-CUKuz0A8.js → run-Bz26OTfO.js} +26 -23
  315. package/dist/run-D-JE8QWb.js +1 -0
  316. package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-DbWI9f99.d.ts} +33 -13
  317. package/dist/{run-ticket-sxFI6LAk.js → run-ticket-Dv7aF7Dk.js} +29 -8
  318. package/dist/{runtime-D3VTAiCA.js → runtime-BGnrOkVH.js} +5 -2
  319. package/dist/{saas-BCXRuXca.js → saas-iWnUdwCt.js} +42 -29
  320. package/dist/{scan-qvOe0hS3.js → scan-DCj1KQfn.js} +1 -1
  321. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  322. package/dist/{schema-yLuBWWsh.js → schema-Dst9I9Gs.js} +9 -5
  323. package/dist/scim/index.d.ts +3 -2
  324. package/dist/scim/index.js +3 -1
  325. package/dist/scim-D8YupzX1.js +44 -0
  326. package/dist/{scim-ClHtpyV3.js → scim-jJBJ7g1Z.js} +35 -551
  327. package/dist/{scopes-CUPSjo9q.js → scopes-0Up_UA2t.js} +42 -24
  328. package/dist/server/index.d.ts +12 -12
  329. package/dist/server/index.js +13 -13
  330. package/dist/{server-C3WXAHZj.js → server-3cVlTLde.js} +31 -31
  331. package/dist/{server-types-CKQiCnON.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  332. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  333. package/dist/{shared-BAK8t4Uo.js → shared-Afctg7B0.js} +100 -61
  334. package/dist/{shared-DvvFzYXe.js → shared-l0oGGetg.js} +9 -6
  335. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  336. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  337. package/dist/{sink-4-eQIRWf.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  338. package/dist/{skills-B6lVdD_W.js → skills-Bjj7BNEQ.js} +16 -12
  339. package/dist/{skills-CTYwkl44.js → skills-OuoMR49L.js} +3 -3
  340. package/dist/{snapshot-B7DkYg6g.js → snapshot-CXlzi69u.js} +21 -18
  341. package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  342. package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  343. package/dist/solid/index.d.ts +55 -15
  344. package/dist/solid/index.js +46 -12
  345. package/dist/solid-start/index.d.ts +30 -12
  346. package/dist/solid-start/index.js +3 -3
  347. package/dist/sources-B1Os_YUu.d.ts +312 -0
  348. package/dist/{sources-vs5dGOsS.js → sources-CMAM-2A3.js} +156 -51
  349. package/dist/sources-qoIJQrJv.js +11 -0
  350. package/dist/{sql-B5T1IL83.js → sql-0WjxIp9g.js} +32 -7
  351. package/dist/sql-B80DFdpG.d.ts +10 -0
  352. package/dist/{src-Cu2m75uo.js → src-DZ0l9UAg.js} +305 -123
  353. package/dist/ssf/index.d.ts +4 -4
  354. package/dist/ssf/index.js +665 -224
  355. package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  356. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  357. package/dist/{store-BDutJkDL.js → store-RNFvaJJv.js} +43 -29
  358. package/dist/{store-options-u0ycEe8s.js → store-options-Dil3lraY.js} +105 -15
  359. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  360. package/dist/{stores-CGhM8BN_.js → stores-DxZWDXCs.js} +42 -5
  361. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  362. package/dist/{stream-CeCMJmBB.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  363. package/dist/{style-DiKWnAvn.js → style-DblOtSga.js} +1 -1
  364. package/dist/{style-Uao76wO7.js → style-Ds11Hmk4.js} +3 -1
  365. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  366. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  367. package/dist/supabase/index.d.ts +48 -37
  368. package/dist/supabase/index.js +6 -6
  369. package/dist/supabase/middleware.d.ts +19 -13
  370. package/dist/supabase/middleware.js +7 -7
  371. package/dist/{supabase-x5JtR2tc.js → supabase-BL1qJzzY.js} +82 -36
  372. package/dist/{supabase-By_frk3U.js → supabase-D39cuGPt.js} +3 -3
  373. package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-B-yXnzUl.js} +1206 -286
  374. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  375. package/dist/supautils-BU-pAEpf.js +808 -0
  376. package/dist/{support-session-C6xJQYut.js → support-session-BsmPCbz8.js} +22 -22
  377. package/dist/svelte/PermissionBoundary.svelte +2 -6
  378. package/dist/svelte/Protected.svelte +2 -8
  379. package/dist/svelte/index.d.ts +9 -8
  380. package/dist/svelte/index.js +10 -9
  381. package/dist/svelte/runtime.d.ts +4 -4
  382. package/dist/svelte/runtime.js +4 -4
  383. package/dist/svelte/source.d.ts +9 -8
  384. package/dist/svelte/source.js +6 -5
  385. package/dist/sveltekit/index.d.ts +30 -12
  386. package/dist/sveltekit/index.js +2 -2
  387. package/dist/{ownership-DqaJNJPn.js → tables-DeMNEy6V.js} +1025 -1085
  388. package/dist/tanstack-start/index.d.ts +22 -10
  389. package/dist/tanstack-start/index.js +2 -2
  390. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  391. package/dist/{tenancy-DN2QAx9z.js → tenancy-5d1zVBvK.js} +36 -21
  392. package/dist/terminal/index.d.ts +23 -14
  393. package/dist/terminal/index.js +17 -20
  394. package/dist/testing/core.d.ts +2 -0
  395. package/dist/testing/core.js +1 -0
  396. package/dist/testing/fixtures/index.d.ts +15 -0
  397. package/dist/testing/fixtures/index.js +831 -0
  398. package/dist/testing/index.d.ts +235 -285
  399. package/dist/testing/index.js +502 -927
  400. package/dist/testing/saas/index.d.ts +43 -27
  401. package/dist/testing/saas/index.js +2 -2
  402. package/dist/testing/saas/permissions.d.ts +1 -1
  403. package/dist/testing/saas/permissions.js +1 -1
  404. package/dist/text-diff-BtfSmdUo.js +444 -0
  405. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  406. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  407. package/dist/{token-BLZcjQgt.js → token-DC9EQiet.js} +15 -13
  408. package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-Qpjs_W6M.js} +5 -2
  409. package/dist/trpc/index.d.ts +11 -8
  410. package/dist/trpc/index.js +15 -9
  411. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  412. package/dist/{types-8RnwUAvE.d.ts → types-AMJ5qoU_.d.ts} +49 -30
  413. package/dist/{types-C_IiEs64.d.ts → types-B2mlGuhW.d.ts} +14 -11
  414. package/dist/{types-_WhUP7ud.d.ts → types-B4uqKDnp.d.ts} +25 -12
  415. package/dist/{types-CX7AvRqP.d.ts → types-BJk0BKRX.d.ts} +24 -14
  416. package/dist/types-B_d_g7T3.d.ts +262 -0
  417. package/dist/{types-BdtSDbBO.d.ts → types-B_tiYvk8.d.ts} +59 -32
  418. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  419. package/dist/{types-Dfv0aTER.d.ts → types-DC1Loeh3.d.ts} +449 -168
  420. package/dist/{types-lUlG3TVd.d.ts → types-DHKPcqzr.d.ts} +2 -2
  421. package/dist/{types-C791HFu9.d.ts → types-DjuMBNF9.d.ts} +68 -32
  422. package/dist/{types-C863OQiR.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  423. package/dist/{types-Druu9wLM.d.ts → types-ZzRGoViD.d.ts} +77 -24
  424. package/dist/{types-BzzaHxt3.d.ts → types-ah9NlU6j.d.ts} +137 -48
  425. package/dist/{types-CVZSNocA.d.ts → types-djVzLlIV.d.ts} +31 -14
  426. package/dist/{types-BtHtcKMr.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  427. package/dist/unplugin/index.d.ts +1 -1
  428. package/dist/unplugin/index.js +2 -2
  429. package/dist/usage-CYeXek0p.js +1 -0
  430. package/dist/{usage-SveTRTyr.js → usage-CxEzS4ey.js} +50 -26
  431. package/dist/{usage-CRVl9V3t.js → usage-ab0PdusX.js} +2 -2
  432. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  433. package/dist/{validation-error-DHUrAkku.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  434. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  435. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  436. package/dist/{verify-BaAKx7t6.js → verify-DZeqoWu5.js} +417 -489
  437. package/dist/version-DMQ0dnN5.js +48 -0
  438. package/dist/version-DizhmD72.js +1 -0
  439. package/dist/{views-DTIIO-oQ.js → views-CD8wuL4Z.js} +19 -6
  440. package/dist/vocabulary-DEJ5j4mR.d.ts +70 -0
  441. package/dist/vue/index.d.ts +71 -21
  442. package/dist/vue/index.js +50 -13
  443. package/dist/{waiter-B986w1oK.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  444. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  445. package/dist/{watch-vea54PRw.js → watch-Cx_WciLE.js} +8 -8
  446. package/dist/watch-DB42U1ib.js +1 -0
  447. package/dist/webmcp/index.d.ts +11 -11
  448. package/dist/webmcp/index.js +8 -5
  449. package/dist/{where-scope-C9vfEphl.js → where-scope-DlCdCM_8.js} +56 -30
  450. package/dist/{who-can-DWBAcaCQ.js → who-can-rI7dCR9Q.js} +23 -20
  451. package/dist/workflow/index.d.ts +3 -3
  452. package/dist/workflow/index.js +13 -13
  453. package/dist/workflow-sdk/index.d.ts +19 -13
  454. package/dist/workflow-sdk/index.js +6 -6
  455. package/dist/{wrap-gX61EtpB.js → wrap-B2wziJI_.js} +11 -5
  456. package/dist/{wrap-C5jC6sKI.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  457. package/package.json +25 -14
  458. package/schemas/catalog-v1.json +3 -0
  459. package/schemas/cli-result-v1.json +1 -0
  460. package/schemas/cloud-api-v1.json +152 -7
  461. package/schemas/connector-v1.json +8 -0
  462. package/schemas/supabase-claims-v1.json +5 -0
  463. package/schemas/supabase-manifest-v1.json +308 -75
  464. package/skills/permdock/SKILL.md +1 -0
  465. package/skills/permdock-agents/references/runtimes.md +3 -1
  466. package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
  467. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  468. package/skills/permdock-data/references/queries-and-rls.md +6 -2
  469. package/skills/permdock-tenancy/SKILL.md +1 -1
  470. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -1
  471. package/skills/permdock-wire/references/adapters.md +28 -22
  472. package/skills/permdock-wire/references/policy-options.md +1 -0
  473. package/dist/catalog-BoWglDPI.js +0 -1
  474. package/dist/collect-D7eQDffE.js +0 -1
  475. package/dist/config-bs_kZeYq.js +0 -162
  476. package/dist/denied-text-CiFQNuMV.d.ts +0 -19
  477. package/dist/fields-OYG_JR78.js +0 -203
  478. package/dist/generate-CNU1pIOo.js +0 -171
  479. package/dist/headers-BIjfMaoC.js +0 -8
  480. package/dist/headers-CIbDTUTK.d.ts +0 -7
  481. package/dist/index-Cp_ilKi1.d.ts +0 -91
  482. package/dist/index-CueFnxQc.d.ts +0 -110
  483. package/dist/load-BxEtwlBS.js +0 -1
  484. package/dist/output-files-B3IZJksC.js +0 -1
  485. package/dist/package-root-Dk_ETdkp.js +0 -31
  486. package/dist/parse-Cxq0WxrA.js +0 -53
  487. package/dist/parse-local-manifest-5ODwqu8b.d.ts +0 -10
  488. package/dist/parse-local-manifest-CVSs6J9I.js +0 -34
  489. package/dist/peer-C8swJ2GH.js +0 -50
  490. package/dist/policies-DP2nqRoF.js +0 -295
  491. package/dist/powersync-BkWWCS1K.js +0 -538
  492. package/dist/powersync-MMJ2mI2q.js +0 -1
  493. package/dist/problem-details-B45V5d2b.d.ts +0 -7
  494. package/dist/prompt-DfZLJLIn.js +0 -32
  495. package/dist/protected-RFGpakN9.d.ts +0 -38
  496. package/dist/pull-CvpINcMK.js +0 -1
  497. package/dist/run-DDwUaJDU.js +0 -1
  498. package/dist/sources-Xc4zkszI.d.ts +0 -190
  499. package/dist/stores-BUGNbJTt.d.ts +0 -30
  500. package/dist/supabase-hook-CCw5m35C.js +0 -1
  501. package/dist/supautils-B6HYL9eL.js +0 -91
  502. package/dist/text-diff-BQcUapOb.js +0 -15
  503. package/dist/types-B3_ooZgZ.d.ts +0 -172
  504. package/dist/usage-CZpSQP6L.js +0 -1
  505. package/dist/version-CEbQ5UeM.js +0 -18
  506. package/dist/version-DXkYUISx.js +0 -1
  507. package/dist/watch--ovlPOc0.js +0 -1
@@ -1,11 +1,12 @@
1
- import { $n as Delegation, Bn as LimitDetail, G as CustomRoleSourceFactory, Hn as Obligation, J as EntitlementSource, Nn as Decision, Q as LimitStore, Rn as ExplainedDecision, Rt as Instant, T as Policy, Un as Quota, Vt as Snapshot, W as CustomRoleSource, Xt as DecisionEvent, _ as GrantLimit, ar as Subject, at as SettingsSource, cn as Scope, cr as AdapterId, et as MembershipSource, h as Grant, i as ApprovalOption, it as RelationSource, j as PolicyVocabulary, nr as Membership, q as DecisionSink, qn as Actor, qt as AuthEvent, rr as Principal, ur as Condition, ut as TokenSigner } from "./policy-types-n0uRTsW8.js";
2
- import { N as ResourceNode, V as AppData, a as RoleTree, n as PlanTree, r as Role, w as Permission } from "./vocabulary-CN8H_9UF.js";
3
- import { i as OperationEffect, s as OperationMeta, t as Operation, u as OperationRisk } from "./operations-X0VM7F3m.js";
4
- import { i as HostedPolicies } from "./hosted-BPk51-kX.js";
1
+ import { G as CustomRoleSourceFactory, Gt as Snapshot, Hn as ExplainedDecision, J as EntitlementSource, Kn as Obligation, Ln as Decision, Q as LimitStore, Rt as Instant, T as Policy, W as CustomRoleSource, Wn as LimitDetail, Zn as Actor, Zt as AuthEvent, _ as GrantLimit, at as SettingsSource, en as DecisionEvent, et as MembershipSource, fn as Scope, fr as AdapterId, h as Grant, i as ApprovalOption, it as RelationSource, j as PolicyVocabulary, lr as Subject, mr as Condition, or as Membership, q as DecisionSink, qn as Quota, rr as Delegation, sr as Principal, ut as TokenSigner } from "./policy-types-CCiDRZBH.js";
2
+ import { D as RowOf, M as AppData, b as ResourceNode, u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { a as RoleTree, n as PlanTree, r as Role } from "./vocabulary-DEJ5j4mR.js";
4
+ import { i as OperationEffect, s as OperationMeta, t as Operation, u as OperationRisk } from "./operations-Ci_rT6Uo.js";
5
+ import { a as HostedPolicies } from "./hosted-Cmtxogd0.js";
5
6
  //#region src/core/approval-policies.d.ts
6
7
  /**
7
- * One approval requirement kept as data, for a tenant or the whole platform.
8
- * It adds to what the code requires and never removes a requirement.
8
+ * One approval requirement kept as data, for a tenant or the whole platform. It
9
+ * adds to what the code requires and never removes a requirement.
9
10
  */
10
11
  type ApprovalPolicy = {
11
12
  /**
@@ -13,15 +14,27 @@ type ApprovalPolicy = {
13
14
  * permission, which needs `risk` or `effects`.
14
15
  */
15
16
  readonly permission?: string;
16
- /** Matches an operation call whose `meta.risk` is one of these; a call that names no operation never matches. */
17
+ /**
18
+ * Matches an operation call whose `meta.risk` is one of these; a call that
19
+ * names no operation never matches.
20
+ */
17
21
  readonly risk?: readonly OperationRisk[];
18
- /** Matches an operation call whose `meta.effects` includes one of these; a call that names no operation never matches. */
22
+ /**
23
+ * Matches an operation call whose `meta.effects` includes one of these; a
24
+ * call that names no operation never matches.
25
+ */
19
26
  readonly effects?: readonly OperationEffect[];
20
27
  /** Absent: every tenant. */
21
28
  readonly tenant?: string;
22
- /** Actor kinds it applies to (`['agent']`); absent: every call. A call without an actor never matches a list. */
29
+ /**
30
+ * Actor kinds it applies to (`['agent']`); absent: every call. A call without
31
+ * an actor never matches a list.
32
+ */
23
33
  readonly actors?: readonly string[];
24
- /** A portable condition over the row; instance permissions only, since a collection action has no row. */
34
+ /**
35
+ * A portable condition over the row; instance permissions only, since a
36
+ * collection action has no row.
37
+ */
25
38
  readonly where?: Condition;
26
39
  /** A portable condition over the call's input (the proposed row). */
27
40
  readonly check?: Condition;
@@ -33,18 +46,21 @@ type ApprovalPolicy = {
33
46
  };
34
47
  /**
35
48
  * Data-driven approval requirements, a subject input like `CustomRoleSource`:
36
- * read once per instance for the subject's tenants (entries without a
37
- * tenant always apply). A throw, a rejected promise or an invalid entry
38
- * denies every call an allow would otherwise permit.
49
+ * read once per instance for the subject's tenants (entries without a tenant
50
+ * always apply). A throw, a rejected promise or an invalid entry denies every
51
+ * call an allow would otherwise permit.
39
52
  */
40
53
  type ApprovalPolicySource = {
41
54
  /** Names the implementation in errors and events. */
42
55
  readonly name?: string;
43
- approvalPoliciesFor(query: {
56
+ approvalPoliciesFor: (query: {
44
57
  readonly tenants: readonly string[];
45
- }): readonly ApprovalPolicy[] | Promise<readonly ApprovalPolicy[]>;
58
+ }) => readonly ApprovalPolicy[] | Promise<readonly ApprovalPolicy[]>;
46
59
  };
47
- /** The denial detail when an `ApprovalPolicySource` fails: every call an allow would grant denies with reason `approval`. */
60
+ /**
61
+ * The denial detail when an `ApprovalPolicySource` fails: every call an allow
62
+ * would grant denies with reason `approval`.
63
+ */
48
64
  /**
49
65
  * The in-process `ApprovalPolicySource`, usable directly as the
50
66
  * `approvalPolicies` option: it is the source and its feature at once.
@@ -73,9 +89,9 @@ type LoadedApprovalPolicies = {
73
89
  readonly tighten: (code: Grant["approval"], input: TightenInput) => Grant["approval"];
74
90
  } | "failed";
75
91
  /**
76
- * Approval policies kept as data, as an instance option:
77
- * `approvalPolicies: approvalPolicies(source)`. The loading and tightening
78
- * code ships only with an app that imports this function.
92
+ * Approval policies kept as data, as an instance option: `approvalPolicies:
93
+ * approvalPolicies(source)`. The loading and tightening code ships only with an
94
+ * app that imports this function.
79
95
  */
80
96
  type ApprovalPolicies = {
81
97
  readonly feature: "approval-policies";
@@ -83,11 +99,11 @@ type ApprovalPolicies = {
83
99
  };
84
100
  declare function approvalPolicies(source: ApprovalPolicySource): ApprovalPolicies;
85
101
  /**
86
- * Why an `ApprovalPolicy` entry does not load. `unknown-permission`: the
87
- * policy declares no such key (the entry applies to nothing). `invalid`: a
88
- * field has the wrong shape or the approval option does not normalise.
89
- * `where-on-collection`: `where` reads a row, which a collection action
90
- * never has, so the entry could never match; use `check` over the input.
102
+ * Why an `ApprovalPolicy` entry does not load. `unknown-permission`: the policy
103
+ * declares no such key (the entry applies to nothing). `invalid`: a field has
104
+ * the wrong shape or the approval option does not normalise.
105
+ * `where-on-collection`: `where` reads a row, which a collection action never
106
+ * has, so the entry could never match; use `check` over the input.
91
107
  * `stale-on-without-version`: `staleOn` needs an instance permission whose
92
108
  * resource declares `version`.
93
109
  */
@@ -99,16 +115,16 @@ type ApprovalPolicyValidation = {
99
115
  readonly problem: ApprovalPolicyProblem;
100
116
  };
101
117
  /**
102
- * Checks one entry against the policy the way `approvalPoliciesFor` loads
103
- * it, for an application to refuse a bad entry when it is saved instead of
104
- * finding every call denied. Never throws.
118
+ * Checks one entry against the policy the way `approvalPoliciesFor` loads it,
119
+ * for an application to refuse a bad entry when it is saved instead of finding
120
+ * every call denied. Never throws.
105
121
  */
106
122
  declare function validateApprovalPolicy(policy: Policy, entry: unknown): ApprovalPolicyValidation;
107
123
  /**
108
- * `code` with every matching entry added as further stages: the result
109
- * needs all of them (`'sequential'` when any part is ordered), keeps the
110
- * code's escalation, the shortest `ttl`, and `distinct` unless every part
111
- * opts out. Without a matching entry, `code` unchanged.
124
+ * `code` with every matching entry added as further stages: the result needs
125
+ * all of them (`'sequential'` when any part is ordered), keeps the code's
126
+ * escalation, the shortest `ttl`, and `distinct` unless every part opts out.
127
+ * Without a matching entry, `code` unchanged.
112
128
  */
113
129
  declare function tightenApproval(code: Grant["approval"], entries: readonly LoadedApprovalPolicy[], input: {
114
130
  readonly permission: string;
@@ -122,10 +138,17 @@ declare function tightenApproval(code: Grant["approval"], entries: readonly Load
122
138
  readonly operation?: OperationMeta | undefined;
123
139
  }): Grant["approval"];
124
140
  //#endregion
141
+ //#region src/core/checks.d.ts
142
+ /**
143
+ * One check of `canAll` or `decideAll`: a permission alone, or with the row it
144
+ * is checked on.
145
+ */
146
+ type PermissionCheck = Permission | readonly [permission: Permission, data?: unknown];
147
+ //#endregion
125
148
  //#region src/core/limits.d.ts
126
149
  declare function memoryLimitStore(): LimitStore & {
127
150
  /** Live counters, for tests and diagnostics. */
128
- size(): number;
151
+ size: () => number;
129
152
  };
130
153
  type QuotaVerdict = {
131
154
  readonly ok: true;
@@ -139,7 +162,10 @@ type QuotaVerdict = {
139
162
  readonly ok: false;
140
163
  readonly reason: "limit-unavailable";
141
164
  };
142
- /** What the quota stage of `evaluate` asks about one allow whose grant has a `limit`. */
165
+ /**
166
+ * What the quota stage of `evaluate` asks about one allow whose grant has a
167
+ * `limit`.
168
+ */
143
169
  type QuotaInput = {
144
170
  readonly cache: Map<string, number>;
145
171
  readonly limit: GrantLimit;
@@ -175,7 +201,10 @@ type PrincipalIdentity = {
175
201
  readonly kind: "email" | "chat";
176
202
  /** The chat platform (`slack`, `teams`, …); absent for email. */
177
203
  readonly provider?: string;
178
- /** The address (RFC 5322 `addr-spec`) or the platform user id. Emails compare trimmed and case-insensitively. */
204
+ /**
205
+ * The address (RFC 5322 `addr-spec`) or the platform user id. Emails compare
206
+ * trimmed and case-insensitively.
207
+ */
179
208
  readonly value: string;
180
209
  /** The chat workspace or team id. */
181
210
  readonly workspace?: string;
@@ -188,88 +217,143 @@ type PrincipalIdentity = {
188
217
  type PrincipalSource<TPrincipal extends Principal = Principal> = {
189
218
  /** Names the implementation in errors and events. */
190
219
  readonly name?: string;
191
- /** The principal as of this request, or `null` for one deleted, suspended or unknown. */
192
- principal(id: string, options?: {
220
+ /**
221
+ * The principal as of this request, or `null` for one deleted, suspended or
222
+ * unknown.
223
+ */
224
+ principal: (id: string, options?: {
193
225
  readonly tenant?: string;
194
- }): TPrincipal | null | Promise<TPrincipal | null>;
195
- /** The principal an app-owned identity link points to, or `null` when none does. */
196
- principalByIdentity?(identity: PrincipalIdentity): TPrincipal | null | Promise<TPrincipal | null>;
226
+ }) => TPrincipal | null | Promise<TPrincipal | null>;
227
+ /**
228
+ * The principal an app-owned identity link points to, or `null` when none
229
+ * does.
230
+ */
231
+ principalByIdentity?: (identity: PrincipalIdentity) => TPrincipal | null | Promise<TPrincipal | null>;
197
232
  };
198
- /** One `memoryPrincipalSource` identity link: `identity` resolves to the principal with id `principal`. */
233
+ /**
234
+ * One `memoryPrincipalSource` identity link: `identity` resolves to the
235
+ * principal with id `principal`.
236
+ */
199
237
  type PrincipalIdentityLink = {
200
238
  readonly identity: PrincipalIdentity;
201
239
  readonly principal: string;
202
240
  };
203
241
  /**
204
- * In-process principals for tests and single-replica apps. `identities`
205
- * links an email or chat identity to a principal id; each answer is a fresh
206
- * frozen copy. `tenant` is not a filter, as for a database source.
242
+ * In-process principals for tests and single-replica apps. `identities` links
243
+ * an email or chat identity to a principal id; each answer is a fresh frozen
244
+ * copy. `tenant` is not a filter, as for a database source.
207
245
  */
208
246
  declare function memoryPrincipalSource<TPrincipal extends Principal>(input: {
209
247
  readonly principals: readonly TPrincipal[];
210
248
  readonly identities?: readonly PrincipalIdentityLink[];
211
249
  }): PrincipalSource<TPrincipal> & {
212
- principalByIdentity(identity: PrincipalIdentity): TPrincipal | null;
250
+ principalByIdentity: (identity: PrincipalIdentity) => TPrincipal | null;
213
251
  };
214
252
  //#endregion
215
253
  //#region src/core/validation.d.ts
216
254
  type Boundary = "http-body" | "mcp-args" | "tool-args" | "decision-endpoint" | "manual";
217
255
  //#endregion
218
256
  //#region src/core/permdock.d.ts
257
+ /**
258
+ * Rows the server loaded for `decideIds`: by id, or a list carrying the
259
+ * resource id field.
260
+ */
261
+ type LoadedRows = ReadonlyMap<string, unknown> | readonly unknown[];
262
+ type DecideIdsOptions = Omit<DecideOptions, "trusted" | "boundary"> & {
263
+ /** Loads the rows for `ids`; ids it leaves out are denied with `validation`. */
264
+ readonly data: (ids: readonly string[]) => LoadedRows | Promise<LoadedRows>;
265
+ };
219
266
  type DecideOptions = {
220
- /** `true` skips schema validation for a row the server loaded itself. Otherwise `data` is validated against the resource schema first (`validate: 'boundary'`), and a failure denies with reason `validation`. */
267
+ /**
268
+ * `true` skips schema validation for a row the server loaded itself.
269
+ * Otherwise `data` is validated against the resource schema first (`validate:
270
+ * 'boundary'`), and a failure denies with reason `validation`.
271
+ */
221
272
  readonly trusted?: boolean;
222
- /** Where untrusted data came from, reported on validation errors. Defaults to `'manual'`. */
273
+ /**
274
+ * Where untrusted data came from, reported on validation errors. Defaults to
275
+ * `'manual'`.
276
+ */
223
277
  readonly boundary?: Boundary;
224
- /** Decision clock, for expiries and limits; a `Temporal.Instant` fits. Defaults to the current time. */
278
+ /**
279
+ * Decision clock, for expiries and limits; a `Temporal.Instant` fits.
280
+ * Defaults to the current time.
281
+ */
225
282
  readonly now?: Instant;
226
- /** The call that produced the decision, reported on the decision event. Defaults to `'decide'`. */
283
+ /**
284
+ * The call that produced the decision, reported on the decision event.
285
+ * Defaults to `'decide'`.
286
+ */
227
287
  readonly call?: DecisionEvent["call"];
228
288
  /** The adapter that made the call, reported on the decision event. */
229
289
  readonly adapter?: AdapterId;
230
- /** The model id the decision is about or that drove the call (`'openai/gpt-5'`), reported on the decision event. Never read when deciding. */
290
+ /**
291
+ * The model id the decision is about or that drove the call
292
+ * (`'openai/gpt-5'`), reported on the decision event. Never read when
293
+ * deciding.
294
+ */
231
295
  readonly model?: string;
232
- /** Per-call unauthorized handler for `assert`; runs before instance and policy handlers. */
296
+ /**
297
+ * Per-call unauthorized handler for `assert`; runs before instance and policy
298
+ * handlers.
299
+ */
233
300
  readonly onDenied?: (decision: Decision) => never | void;
234
301
  /** The field being read or written; only grants whose `fields` cover it match. */
235
302
  readonly field?: string;
236
- /** `true` attaches a `trace` to the decision: the grants evaluated, matched and skipped. Off by default and free when off. */
303
+ /**
304
+ * `true` attaches a `trace` to the decision: the grants evaluated, matched
305
+ * and skipped. Off by default and free when off.
306
+ */
237
307
  readonly explain?: boolean;
238
308
  /**
239
309
  * A declared scope name: only memberships of that scope answer the check.
240
- * Naming the first scope keeps nested memberships out of a tenant-level
241
- * guard on a collection action. Global roles still apply; resource roles
242
- * and memberships of other scopes are skipped with reason `scope`.
310
+ * Naming the first scope keeps nested memberships out of a tenant-level guard
311
+ * on a collection action. Global roles still apply; resource roles and
312
+ * memberships of other scopes are skipped with reason `scope`.
243
313
  */
244
314
  readonly scope?: string;
245
315
  /**
246
316
  * The operation the call decides, for `ApprovalPolicySource` entries that
247
- * match on `meta.risk` and `meta.effects`. Surfaces that decide an
248
- * operation (agent tools, workflow steps, `protect(operation)`) pass it.
317
+ * match on `meta.risk` and `meta.effects`. Surfaces that decide an operation
318
+ * (agent tools, workflow steps, `protect(operation)`) pass it.
249
319
  */
250
320
  readonly operation?: Pick<Operation, "name" | "meta">;
251
321
  /**
252
322
  * The arguments of the call being decided, such as a tool call's input. An
253
323
  * `approval-required` token binds their digest, so an approval covers this
254
- * call and no call with other arguments. Agent and MCP adapters pass the
255
- * tool arguments. Never read when deciding.
324
+ * call and no call with other arguments. Agent and MCP adapters pass the tool
325
+ * arguments. Never read when deciding.
256
326
  */
257
327
  readonly args?: unknown;
258
328
  /**
259
- * The application's own data for the decision event (a request id, a
260
- * route). Plain JSON; a value that is not is dropped. Never read when
261
- * deciding.
329
+ * The application's own data for the decision event (a request id, a route).
330
+ * Plain JSON; a value that is not is dropped. Never read when deciding.
262
331
  */
263
332
  readonly x?: AppData;
264
333
  };
265
334
  type SimulateOptions = {
266
- /** Decision clock for the whole batch: grant validity, membership expiry and limits are read as of this instant. Defaults to the current time. */
335
+ /**
336
+ * Decision clock for the whole batch: grant validity, membership expiry and
337
+ * limits are read as of this instant. Defaults to the current time.
338
+ */
267
339
  readonly now?: Instant;
268
340
  };
269
341
  type RowPair<T> = {
270
342
  readonly current: T;
271
343
  readonly next: T;
272
344
  };
345
+ /**
346
+ * The `data` a check of `P` takes: any part of its row, or a `{ current, next
347
+ * }` pair of them for an update. `RowOf` is `unknown` for an untyped
348
+ * permission, so any value passes.
349
+ */
350
+ type RowData<P> = Partial<RowOf<P>> | RowPair<Partial<RowOf<P>>> | null | undefined;
351
+ /**
352
+ * `data` the type system knows nothing about (`unknown`, `any`), such as a
353
+ * request body. The check parses it against the resource schema at run time; a
354
+ * value of a known type that does not fit the row is a type error.
355
+ */
356
+ type UncheckedData<D> = D & (unknown extends D ? unknown : never);
273
357
  type WhereResult = {
274
358
  readonly condition: Condition | {
275
359
  readonly op: "or";
@@ -297,69 +381,111 @@ type SnapshotOptions = {
297
381
  };
298
382
  type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
299
383
  readonly can: {
300
- (permission: Permission<string, unknown, "instance">, data: unknown, options?: DecideOptions): boolean;
384
+ <P extends Permission<string, unknown, "instance">>(permission: P, data: RowData<P>, options?: DecideOptions): boolean;
301
385
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: DecideOptions): boolean;
302
386
  /**
303
- * A permission held as `Permission` at run time (from a list, a catalog
304
- * or `findPermission`), whose kind the type does not say: pass `data`,
305
- * or `undefined` for a check without a row.
387
+ * Data of no known type (`unknown`, `any`), such as a request body. It is
388
+ * parsed against the resource schema at run time.
306
389
  */
307
- (permission: Permission, data: unknown, options?: DecideOptions): boolean;
390
+ <D>(permission: Permission, data: UncheckedData<D>, options?: DecideOptions): boolean;
391
+ /**
392
+ * A permission held as `Permission` at run time (from a list, a catalog or
393
+ * `findPermission`), whose kind the type does not say: pass `data`, or
394
+ * `undefined` for a check without a row.
395
+ */
396
+ <P extends Permission>(permission: P, data: RowData<P>, options?: DecideOptions): boolean;
308
397
  };
309
398
  readonly decide: {
310
- (permission: Permission<string, unknown, "instance">, data: unknown, options?: DecideOptions): Decision;
399
+ <P extends Permission<string, unknown, "instance">>(permission: P, data: RowData<P>, options?: DecideOptions): Decision;
311
400
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: DecideOptions): Decision;
312
401
  /**
313
- * A permission held as `Permission` at run time (from a list, a catalog
314
- * or `findPermission`), whose kind the type does not say: pass `data`,
315
- * or `undefined` for a check without a row.
402
+ * Data of no known type (`unknown`, `any`), such as a request body. It is
403
+ * parsed against the resource schema at run time.
404
+ */
405
+ <D>(permission: Permission, data: UncheckedData<D>, options?: DecideOptions): Decision;
406
+ /**
407
+ * A permission held as `Permission` at run time (from a list, a catalog or
408
+ * `findPermission`), whose kind the type does not say: pass `data`, or
409
+ * `undefined` for a check without a row.
316
410
  */
317
- (permission: Permission, data: unknown, options?: DecideOptions): Decision;
411
+ <P extends Permission>(permission: P, data: RowData<P>, options?: DecideOptions): Decision;
318
412
  };
319
413
  /**
320
- * `decide` for each row, in row order. Each row is its own call: a limit
321
- * is consumed once per granted row, so rows past the cap are denied with
414
+ * `can` for every check, on one instance: `true` only when each is granted,
415
+ * and `false` for an empty list. A check is a permission, or a `[permission,
416
+ * row]` pair. It stops at the first check that is not granted.
417
+ */
418
+ readonly canAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => boolean;
419
+ /**
420
+ * `decide` for every check, in check order; a check is a permission or a
421
+ * `[permission, row]` pair.
422
+ */
423
+ readonly decideAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => readonly Decision[];
424
+ /**
425
+ * `decide` for each row, in row order. Each row is its own call: a limit is
426
+ * consumed once per granted row, so rows past the cap are denied with
322
427
  * `limit`, and each `approval-required` row carries its own token.
323
428
  */
324
- readonly decideEach: (permission: Permission, rows: readonly unknown[], options?: DecideOptions) => readonly Decision[];
429
+ readonly decideEach: {
430
+ <D>(permission: Permission, rows: readonly UncheckedData<D>[], options?: DecideOptions): readonly Decision[];
431
+ <P extends Permission>(permission: P, rows: readonly RowData<P>[], options?: DecideOptions): readonly Decision[];
432
+ };
433
+ /**
434
+ * `decide` for each id, in id order, on rows the server loads itself:
435
+ * `options.data(ids)` answers a map from id to row, or the rows with their
436
+ * resource id field. Each row is trusted (no schema check) and decided in the
437
+ * tenant its own root scope field names, as `permdock.tenant(<that value>)`
438
+ * would, so one call can span tenants. An id with no loaded row, a loader
439
+ * that throws and a row of another resource are denied with `validation`. A
440
+ * snapshot instance denies every id with `unsupported`.
441
+ */
442
+ readonly decideIds: (permission: Permission, ids: readonly string[], options: DecideIdsOptions) => Promise<readonly Decision[]>;
325
443
  /**
326
- * What `permission` on `row` decides for the principal `principalId`,
327
- * loaded from `principals` in this instance's active tenant with no actor
328
- * and no delegation. It grants this instance nothing, shares none of its
329
- * caches and never consumes a limit. Denied with `anonymous` when there is
330
- * no `principals`, no such principal or the source throws, and with
444
+ * What `permission` on `row` decides for the principal `principalId`, loaded
445
+ * from `principals` in this instance's active tenant with no actor and no
446
+ * delegation. It grants this instance nothing, shares none of its caches and
447
+ * never consumes a limit. Denied with `anonymous` when there is no
448
+ * `principals`, no such principal or the source throws, and with
331
449
  * `tenant-mismatch` when the principal is outside the active tenant.
332
450
  */
333
451
  readonly decideFor: (principalId: string, permission: Permission, row?: unknown) => Promise<Decision>;
334
452
  readonly assert: {
335
- (permission: Permission<string, unknown, "instance">, data: unknown, options?: DecideOptions): Extract<Decision, {
453
+ <P extends Permission<string, unknown, "instance">>(permission: P, data: RowData<P>, options?: DecideOptions): Extract<Decision, {
336
454
  readonly outcome: "granted";
337
455
  }>;
338
456
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: DecideOptions): Extract<Decision, {
339
457
  readonly outcome: "granted";
340
458
  }>;
341
459
  /**
342
- * A permission held as `Permission` at run time (from a list, a catalog
343
- * or `findPermission`), whose kind the type does not say: pass `data`,
344
- * or `undefined` for a check without a row.
460
+ * Data of no known type (`unknown`, `any`), such as a request body. It is
461
+ * parsed against the resource schema at run time.
462
+ */
463
+ <D>(permission: Permission, data: UncheckedData<D>, options?: DecideOptions): Extract<Decision, {
464
+ readonly outcome: "granted";
465
+ }>;
466
+ /**
467
+ * A permission held as `Permission` at run time (from a list, a catalog or
468
+ * `findPermission`), whose kind the type does not say: pass `data`, or
469
+ * `undefined` for a check without a row.
345
470
  */
346
- (permission: Permission, data: unknown, options?: DecideOptions): Extract<Decision, {
471
+ <P extends Permission>(permission: P, data: RowData<P>, options?: DecideOptions): Extract<Decision, {
347
472
  readonly outcome: "granted";
348
473
  }>;
349
474
  };
350
475
  /**
351
- * `decide` with `explain: true`: the same decision, with a `trace` that
352
- * names the grants evaluated, the allows and denies that matched (so a
353
- * `denied` says which deny won) and the grants passed over. Local
354
- * computation only; the trace never reaches a `DecisionSink`.
476
+ * `decide` with `explain: true`: the same decision, with a `trace` that names
477
+ * the grants evaluated, the allows and denies that matched (so a `denied`
478
+ * says which deny won) and the grants passed over. Local computation only;
479
+ * the trace never reaches a `DecisionSink`.
355
480
  */
356
481
  readonly explain: {
357
- (permission: Permission<string, unknown, "instance">, data: unknown, options?: Omit<DecideOptions, "explain">): ExplainedDecision;
482
+ <P extends Permission<string, unknown, "instance">>(permission: P, data: RowData<P>, options?: Omit<DecideOptions, "explain">): ExplainedDecision;
358
483
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: Omit<DecideOptions, "explain">): ExplainedDecision;
359
- (permission: Permission, data: unknown, options?: Omit<DecideOptions, "explain">): ExplainedDecision;
484
+ <D>(permission: Permission, data: UncheckedData<D>, options?: Omit<DecideOptions, "explain">): ExplainedDecision;
485
+ <P extends Permission>(permission: P, data: RowData<P>, options?: Omit<DecideOptions, "explain">): ExplainedDecision;
360
486
  };
361
- readonly filter: <T>(permission: Permission<string, T, "instance">, rows: readonly T[], options?: DecideOptions) => T[];
362
- readonly pick: <T>(permission: Permission<string, T, "instance">, row: T, options?: DecideOptions) => Partial<T>;
487
+ readonly filter: <T>(permission: Permission<string, NoInfer<T>, "instance">, rows: readonly T[], options?: DecideOptions) => T[];
488
+ readonly pick: <T>(permission: Permission<string, NoInfer<T>, "instance">, row: T, options?: DecideOptions) => Partial<T>;
363
489
  readonly where: (permission: Permission) => WhereResult;
364
490
  readonly actions: (resource: Permission | {
365
491
  readonly [key: string]: unknown;
@@ -396,12 +522,15 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
396
522
  readonly scope?: string;
397
523
  readonly id?: string;
398
524
  }) => readonly Role[];
399
- /** The distinct `meta.audience` values of the roles held in the active tenant, in rank order. */
525
+ /**
526
+ * The distinct `meta.audience` values of the roles held in the active tenant,
527
+ * in rank order.
528
+ */
400
529
  readonly audiences: () => readonly string[];
401
530
  /**
402
- * The roles the subject may hand out in a tenant (the active one by
403
- * default), or with `scope: 'global'` the global roles it may hand out. A
404
- * snapshot answers only the tenant form.
531
+ * The roles the subject may hand out in a tenant (the active one by default),
532
+ * or with `scope: 'global'` the global roles it may hand out. A snapshot
533
+ * answers only the tenant form.
405
534
  */
406
535
  readonly assignableRoles: (options?: {
407
536
  readonly tenant?: string;
@@ -418,8 +547,8 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
418
547
  readonly scope?: "global";
419
548
  }) => readonly Permission[];
420
549
  /**
421
- * The levels of `permission` (`resource(…, { levels })`) the subject may
422
- * hand out in a custom role: those it holds, or every level with
550
+ * The levels of `permission` (`resource(…, { levels })`) the subject may hand
551
+ * out in a custom role: those it holds, or every level with
423
552
  * `meta.manageRoles`. Empty when the permission is not assignable.
424
553
  */
425
554
  readonly assignableLevels: (permission: Permission, options?: {
@@ -438,10 +567,10 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
438
567
  */
439
568
  readonly permittedIds: (permission: Permission, scope: string, options?: PermittedIdsOptions) => readonly string[];
440
569
  /**
441
- * Loads the relation facts `permission` needs for `rows` into this
442
- * instance's cache, so `can`, `decide` and `filter` answer synchronously
443
- * over an async `RelationSource`. It never grants; a failed load leaves
444
- * the checks denied with `relation-unavailable`.
570
+ * Loads the relation facts `permission` needs for `rows` into this instance's
571
+ * cache, so `can`, `decide` and `filter` answer synchronously over an async
572
+ * `RelationSource`. It never grants; a failed load leaves the checks denied
573
+ * with `relation-unavailable`.
445
574
  */
446
575
  readonly prefetchRelations: (permission: Permission, rows: readonly unknown[]) => Promise<void>;
447
576
  readonly roles: V["roles"] extends RoleTree ? V["roles"] : RoleTree;
@@ -451,37 +580,58 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
451
580
  /**
452
581
  * The same subject, tenant, team, actor, delegation, sink and limits with
453
582
  * other sources: `customRoles`, `approvalPolicies` or `relations`. The
454
- * sources it names are read again for the subject's tenants; the others
455
- * keep what this instance loaded. Always a promise, since the sources it
456
- * names may answer asynchronously.
583
+ * sources it names are read again for the subject's tenants; the others keep
584
+ * what this instance loaded. Always a promise, since the sources it names may
585
+ * answer asynchronously.
457
586
  */
458
587
  readonly derive: (options: DeriveOptions) => Promise<PermDock<V>>;
459
588
  };
460
- /** What `permdock.derive` may replace: the sources read after the subject is resolved. */
589
+ /**
590
+ * What `permdock.derive` may replace: the sources read after the subject is
591
+ * resolved.
592
+ */
461
593
  type DeriveOptions = Pick<PermDockOptions, "customRoles" | "approvalPolicies" | "relations" | "principals">;
462
594
  type PermDockOptions = {
463
595
  readonly tenant?: string;
464
596
  /** One source, or several composed with `composeMemberships`. */
465
597
  readonly memberships?: MembershipSource | readonly MembershipSource[];
466
598
  readonly customRoles?: CustomRoleSource | CustomRoleSourceFactory;
467
- /** Plans and seats from billing, merged into `principal.plans` for the active tenant. */
599
+ /**
600
+ * Plans and seats from billing, merged into `principal.plans` for the active
601
+ * tenant.
602
+ */
468
603
  readonly entitlements?: EntitlementSource;
469
604
  readonly actor?: Actor;
470
605
  readonly delegation?: Delegation;
471
606
  readonly sink?: DecisionSink;
472
- /** Grant limits, `limits(store)`; without it a grant with a `limit` denies with `limit-unavailable`. */
607
+ /**
608
+ * Grant limits, `limits(store)`; without it a grant with a `limit` denies
609
+ * with `limit-unavailable`.
610
+ */
473
611
  readonly limits?: Limits;
474
612
  readonly session?: string;
475
613
  readonly expiresAt?: number;
476
- /** Hosted grants, `hostedPolicies(source)`; `current()` is read once, when the instance is created. */
614
+ /**
615
+ * Hosted grants, `hostedPolicies(source)`; `current()` is read once, when the
616
+ * instance is created.
617
+ */
477
618
  readonly policies?: HostedPolicies;
478
- /** The object graph for `through` and edge-table relations; without it they deny with `relation-unavailable`. */
619
+ /**
620
+ * The object graph for `through` and edge-table relations; without it they
621
+ * deny with `relation-unavailable`.
622
+ */
479
623
  readonly relations?: RelationSource;
480
- /** Approval requirements kept as data; they add to the code's and never remove one. A throw denies. */
624
+ /**
625
+ * Approval requirements kept as data; they add to the code's and never remove
626
+ * one. A throw denies.
627
+ */
481
628
  readonly approvalPolicies?: ApprovalPolicies;
482
629
  /** Other principals by id, for `decideFor`; asked with the active tenant. */
483
630
  readonly principals?: PrincipalSource;
484
- /** Tenant settings, read by `decideCredential` for the key's tenant; a call's own `settings` wins. */
631
+ /**
632
+ * Tenant settings, read by `decideCredential` for the key's tenant; a call's
633
+ * own `settings` wins.
634
+ */
485
635
  readonly settings?: SettingsSource;
486
636
  /**
487
637
  * Request values an adapter's `context` hook derived on the server, merged
@@ -492,11 +642,14 @@ type PermDockOptions = {
492
642
  /**
493
643
  * The instance for `user`, built synchronously. Every input must answer
494
644
  * synchronously: the subject mapper, `memberships`, `customRoles`,
495
- * `entitlements`, `approvalPolicies` and the freshness check. One that
496
- * answers with a Promise throws here; use `getPermDock` for those.
645
+ * `entitlements`, `approvalPolicies` and the freshness check. One that answers
646
+ * with a Promise throws here; use `getPermDock` for those.
497
647
  */
498
648
  declare function getPermDockSync<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, user: TUser | Subject | null, options?: PermDockOptions): PermDock<V>;
499
- /** The instance for `user`: waits for every source, then builds it. `getPermDockSync` is the synchronous twin. */
649
+ /**
650
+ * The instance for `user`: waits for every source, then builds it.
651
+ * `getPermDockSync` is the synchronous twin.
652
+ */
500
653
  declare function getPermDock<TUser, TPrincipal extends Principal = Principal, V extends PolicyVocabulary = PolicyVocabulary>(policy: Policy<TUser, TPrincipal, V>, user: TUser | Subject | null, options?: PermDockOptions): Promise<PermDock<V>>;
501
654
  //#endregion
502
- export { ApprovalPolicyValidation as C, validateApprovalPolicy as E, ApprovalPolicySource as S, memoryApprovalPolicySource as T, limits as _, RowPair as a, ApprovalPolicy as b, WhereResult as c, PrincipalIdentity as d, PrincipalIdentityLink as f, Limits as g, PermittedIdsOptions as h, PermDockOptions as i, getPermDock as l, memoryPrincipalSource as m, DeriveOptions as n, SimulateOptions as o, PrincipalSource as p, PermDock as r, SnapshotOptions as s, DecideOptions as t, getPermDockSync as u, memoryLimitStore as v, approvalPolicies as w, ApprovalPolicyProblem as x, ApprovalPolicies as y };
655
+ export { memoryApprovalPolicySource as A, PermissionCheck as C, ApprovalPolicySource as D, ApprovalPolicyProblem as E, ApprovalPolicyValidation as O, memoryLimitStore as S, ApprovalPolicy as T, PrincipalSource as _, PermDock as a, Limits as b, RowPair as c, UncheckedData as d, WhereResult as f, PrincipalIdentityLink as g, PrincipalIdentity as h, LoadedRows as i, validateApprovalPolicy as j, approvalPolicies as k, SimulateOptions as l, getPermDockSync as m, DecideOptions as n, PermDockOptions as o, getPermDock as p, DeriveOptions as r, RowData as s, DecideIdsOptions as t, SnapshotOptions as u, memoryPrincipalSource as v, ApprovalPolicies as w, limits as x, PermittedIdsOptions as y };