permdock 0.7.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 (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-CL-QCITA.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  14. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  35. package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
  45. package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
  46. package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
  52. package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
  53. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  54. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  55. package/dist/catalog-mRQQQhNK.js +1 -0
  56. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
  77. package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
  78. package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
  79. package/dist/collect-B5BL3klN.js +1 -0
  80. package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
  81. package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
  98. package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
  99. package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
  100. package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
  101. package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
  102. package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
  103. package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  127. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  128. package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
  130. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  131. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-B5kvbAoZ.js +58 -0
  150. package/dist/gen-DWCYcMQM.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
  164. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  169. package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
  170. package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
  171. package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
  172. package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
  173. package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
  174. package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
  175. package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +33 -33
  178. package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
  179. package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +72 -26
  212. package/dist/next/index.js +110 -6
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  223. package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
  224. package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/output-files-BHOIlrfD.js +1 -0
  232. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  233. package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
  234. package/dist/ownership-B4L59T9u.js +1054 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
  245. package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
  262. package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
  263. package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
  264. package/dist/powersync-Djf-zCpB.js +1 -0
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/pull-B65ndFNZ.js +1 -0
  282. package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
  283. package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
  284. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  285. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-CF7xXLSG.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
  306. package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
  310. package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
  311. package/dist/run-D-JE8QWb.js +1 -0
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  333. package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  334. package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
  335. package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
  344. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  351. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  357. package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
  368. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
  369. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  370. package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +224 -141
  394. package/dist/testing/index.js +299 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  407. package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
  408. package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
  409. package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
  410. package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
  411. package/dist/types-B_d_g7T3.d.ts +262 -0
  412. package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
  413. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  414. package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
  415. package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
  416. package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
  417. package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  418. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  419. package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
  420. package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
  421. package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-CYeXek0p.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
  441. package/dist/watch-DB42U1ib.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  452. package/package.json +7 -7
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +14 -22
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -1,12 +1,12 @@
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-B-F-qAZk.js";
2
- import { O as AppData, b as ResourceNode, u as Permission } from "./permission-types-DhNEmoRG.js";
3
- import { a as RoleTree, n as PlanTree, r as Role } from "./vocabulary-Bg3eeT2H.js";
4
- import { i as OperationEffect, s as OperationMeta, t as Operation, u as OperationRisk } from "./operations-BNLes61x.js";
5
- import { a as HostedPolicies } from "./hosted-BmjzxQhp.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";
6
6
  //#region src/core/approval-policies.d.ts
7
7
  /**
8
- * One approval requirement kept as data, for a tenant or the whole platform.
9
- * 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.
10
10
  */
11
11
  type ApprovalPolicy = {
12
12
  /**
@@ -14,15 +14,27 @@ type ApprovalPolicy = {
14
14
  * permission, which needs `risk` or `effects`.
15
15
  */
16
16
  readonly permission?: string;
17
- /** 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
+ */
18
21
  readonly risk?: readonly OperationRisk[];
19
- /** 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
+ */
20
26
  readonly effects?: readonly OperationEffect[];
21
27
  /** Absent: every tenant. */
22
28
  readonly tenant?: string;
23
- /** 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
+ */
24
33
  readonly actors?: readonly string[];
25
- /** 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
+ */
26
38
  readonly where?: Condition;
27
39
  /** A portable condition over the call's input (the proposed row). */
28
40
  readonly check?: Condition;
@@ -34,18 +46,21 @@ type ApprovalPolicy = {
34
46
  };
35
47
  /**
36
48
  * Data-driven approval requirements, a subject input like `CustomRoleSource`:
37
- * read once per instance for the subject's tenants (entries without a
38
- * tenant always apply). A throw, a rejected promise or an invalid entry
39
- * 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.
40
52
  */
41
53
  type ApprovalPolicySource = {
42
54
  /** Names the implementation in errors and events. */
43
55
  readonly name?: string;
44
- approvalPoliciesFor(query: {
56
+ approvalPoliciesFor: (query: {
45
57
  readonly tenants: readonly string[];
46
- }): readonly ApprovalPolicy[] | Promise<readonly ApprovalPolicy[]>;
58
+ }) => readonly ApprovalPolicy[] | Promise<readonly ApprovalPolicy[]>;
47
59
  };
48
- /** 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
+ */
49
64
  /**
50
65
  * The in-process `ApprovalPolicySource`, usable directly as the
51
66
  * `approvalPolicies` option: it is the source and its feature at once.
@@ -74,9 +89,9 @@ type LoadedApprovalPolicies = {
74
89
  readonly tighten: (code: Grant["approval"], input: TightenInput) => Grant["approval"];
75
90
  } | "failed";
76
91
  /**
77
- * Approval policies kept as data, as an instance option:
78
- * `approvalPolicies: approvalPolicies(source)`. The loading and tightening
79
- * 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.
80
95
  */
81
96
  type ApprovalPolicies = {
82
97
  readonly feature: "approval-policies";
@@ -84,11 +99,11 @@ type ApprovalPolicies = {
84
99
  };
85
100
  declare function approvalPolicies(source: ApprovalPolicySource): ApprovalPolicies;
86
101
  /**
87
- * Why an `ApprovalPolicy` entry does not load. `unknown-permission`: the
88
- * policy declares no such key (the entry applies to nothing). `invalid`: a
89
- * field has the wrong shape or the approval option does not normalise.
90
- * `where-on-collection`: `where` reads a row, which a collection action
91
- * 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.
92
107
  * `stale-on-without-version`: `staleOn` needs an instance permission whose
93
108
  * resource declares `version`.
94
109
  */
@@ -100,16 +115,16 @@ type ApprovalPolicyValidation = {
100
115
  readonly problem: ApprovalPolicyProblem;
101
116
  };
102
117
  /**
103
- * Checks one entry against the policy the way `approvalPoliciesFor` loads
104
- * it, for an application to refuse a bad entry when it is saved instead of
105
- * 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.
106
121
  */
107
122
  declare function validateApprovalPolicy(policy: Policy, entry: unknown): ApprovalPolicyValidation;
108
123
  /**
109
- * `code` with every matching entry added as further stages: the result
110
- * needs all of them (`'sequential'` when any part is ordered), keeps the
111
- * code's escalation, the shortest `ttl`, and `distinct` unless every part
112
- * 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.
113
128
  */
114
129
  declare function tightenApproval(code: Grant["approval"], entries: readonly LoadedApprovalPolicy[], input: {
115
130
  readonly permission: string;
@@ -124,13 +139,16 @@ declare function tightenApproval(code: Grant["approval"], entries: readonly Load
124
139
  }): Grant["approval"];
125
140
  //#endregion
126
141
  //#region src/core/checks.d.ts
127
- /** One check of `canAll` or `decideAll`: a permission alone, or with the row it is checked on. */
142
+ /**
143
+ * One check of `canAll` or `decideAll`: a permission alone, or with the row it
144
+ * is checked on.
145
+ */
128
146
  type PermissionCheck = Permission | readonly [permission: Permission, data?: unknown];
129
147
  //#endregion
130
148
  //#region src/core/limits.d.ts
131
149
  declare function memoryLimitStore(): LimitStore & {
132
150
  /** Live counters, for tests and diagnostics. */
133
- size(): number;
151
+ size: () => number;
134
152
  };
135
153
  type QuotaVerdict = {
136
154
  readonly ok: true;
@@ -144,7 +162,10 @@ type QuotaVerdict = {
144
162
  readonly ok: false;
145
163
  readonly reason: "limit-unavailable";
146
164
  };
147
- /** 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
+ */
148
169
  type QuotaInput = {
149
170
  readonly cache: Map<string, number>;
150
171
  readonly limit: GrantLimit;
@@ -180,7 +201,10 @@ type PrincipalIdentity = {
180
201
  readonly kind: "email" | "chat";
181
202
  /** The chat platform (`slack`, `teams`, …); absent for email. */
182
203
  readonly provider?: string;
183
- /** 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
+ */
184
208
  readonly value: string;
185
209
  /** The chat workspace or team id. */
186
210
  readonly workspace?: string;
@@ -193,94 +217,143 @@ type PrincipalIdentity = {
193
217
  type PrincipalSource<TPrincipal extends Principal = Principal> = {
194
218
  /** Names the implementation in errors and events. */
195
219
  readonly name?: string;
196
- /** The principal as of this request, or `null` for one deleted, suspended or unknown. */
197
- 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?: {
198
225
  readonly tenant?: string;
199
- }): TPrincipal | null | Promise<TPrincipal | null>;
200
- /** The principal an app-owned identity link points to, or `null` when none does. */
201
- 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>;
202
232
  };
203
- /** 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
+ */
204
237
  type PrincipalIdentityLink = {
205
238
  readonly identity: PrincipalIdentity;
206
239
  readonly principal: string;
207
240
  };
208
241
  /**
209
- * In-process principals for tests and single-replica apps. `identities`
210
- * links an email or chat identity to a principal id; each answer is a fresh
211
- * 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.
212
245
  */
213
246
  declare function memoryPrincipalSource<TPrincipal extends Principal>(input: {
214
247
  readonly principals: readonly TPrincipal[];
215
248
  readonly identities?: readonly PrincipalIdentityLink[];
216
249
  }): PrincipalSource<TPrincipal> & {
217
- principalByIdentity(identity: PrincipalIdentity): TPrincipal | null;
250
+ principalByIdentity: (identity: PrincipalIdentity) => TPrincipal | null;
218
251
  };
219
252
  //#endregion
220
253
  //#region src/core/validation.d.ts
221
254
  type Boundary = "http-body" | "mcp-args" | "tool-args" | "decision-endpoint" | "manual";
222
255
  //#endregion
223
256
  //#region src/core/permdock.d.ts
224
- /** Rows the server loaded for `decideIds`: by id, or a list carrying the resource id field. */
257
+ /**
258
+ * Rows the server loaded for `decideIds`: by id, or a list carrying the
259
+ * resource id field.
260
+ */
225
261
  type LoadedRows = ReadonlyMap<string, unknown> | readonly unknown[];
226
262
  type DecideIdsOptions = Omit<DecideOptions, "trusted" | "boundary"> & {
227
263
  /** Loads the rows for `ids`; ids it leaves out are denied with `validation`. */
228
264
  readonly data: (ids: readonly string[]) => LoadedRows | Promise<LoadedRows>;
229
265
  };
230
266
  type DecideOptions = {
231
- /** `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
+ */
232
272
  readonly trusted?: boolean;
233
- /** 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
+ */
234
277
  readonly boundary?: Boundary;
235
- /** 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
+ */
236
282
  readonly now?: Instant;
237
- /** 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
+ */
238
287
  readonly call?: DecisionEvent["call"];
239
288
  /** The adapter that made the call, reported on the decision event. */
240
289
  readonly adapter?: AdapterId;
241
- /** 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
+ */
242
295
  readonly model?: string;
243
- /** 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
+ */
244
300
  readonly onDenied?: (decision: Decision) => never | void;
245
301
  /** The field being read or written; only grants whose `fields` cover it match. */
246
302
  readonly field?: string;
247
- /** `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
+ */
248
307
  readonly explain?: boolean;
249
308
  /**
250
309
  * A declared scope name: only memberships of that scope answer the check.
251
- * Naming the first scope keeps nested memberships out of a tenant-level
252
- * guard on a collection action. Global roles still apply; resource roles
253
- * 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`.
254
313
  */
255
314
  readonly scope?: string;
256
315
  /**
257
316
  * The operation the call decides, for `ApprovalPolicySource` entries that
258
- * match on `meta.risk` and `meta.effects`. Surfaces that decide an
259
- * 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.
260
319
  */
261
320
  readonly operation?: Pick<Operation, "name" | "meta">;
262
321
  /**
263
322
  * The arguments of the call being decided, such as a tool call's input. An
264
323
  * `approval-required` token binds their digest, so an approval covers this
265
- * call and no call with other arguments. Agent and MCP adapters pass the
266
- * 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.
267
326
  */
268
327
  readonly args?: unknown;
269
328
  /**
270
- * The application's own data for the decision event (a request id, a
271
- * route). Plain JSON; a value that is not is dropped. Never read when
272
- * 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.
273
331
  */
274
332
  readonly x?: AppData;
275
333
  };
276
334
  type SimulateOptions = {
277
- /** 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
+ */
278
339
  readonly now?: Instant;
279
340
  };
280
341
  type RowPair<T> = {
281
342
  readonly current: T;
282
343
  readonly next: T;
283
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);
284
357
  type WhereResult = {
285
358
  readonly condition: Condition | {
286
359
  readonly op: "or";
@@ -308,87 +381,111 @@ type SnapshotOptions = {
308
381
  };
309
382
  type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
310
383
  readonly can: {
311
- (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;
312
385
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: DecideOptions): boolean;
313
386
  /**
314
- * A permission held as `Permission` at run time (from a list, a catalog
315
- * or `findPermission`), whose kind the type does not say: pass `data`,
316
- * 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.
389
+ */
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.
317
395
  */
318
- (permission: Permission, data: unknown, options?: DecideOptions): boolean;
396
+ <P extends Permission>(permission: P, data: RowData<P>, options?: DecideOptions): boolean;
319
397
  };
320
398
  readonly decide: {
321
- (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;
322
400
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: DecideOptions): Decision;
323
401
  /**
324
- * A permission held as `Permission` at run time (from a list, a catalog
325
- * or `findPermission`), whose kind the type does not say: pass `data`,
326
- * 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.
327
404
  */
328
- (permission: Permission, data: unknown, options?: DecideOptions): Decision;
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.
410
+ */
411
+ <P extends Permission>(permission: P, data: RowData<P>, options?: DecideOptions): Decision;
329
412
  };
330
413
  /**
331
- * `can` for every check, on one instance: `true` only when each is
332
- * granted, and `false` for an empty list. A check is a permission, or a
333
- * `[permission, row]` pair. It stops at the first check that is not granted.
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.
334
417
  */
335
418
  readonly canAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => boolean;
336
- /** `decide` for every check, in check order; a check is a permission or a `[permission, row]` pair. */
419
+ /**
420
+ * `decide` for every check, in check order; a check is a permission or a
421
+ * `[permission, row]` pair.
422
+ */
337
423
  readonly decideAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => readonly Decision[];
338
424
  /**
339
- * `decide` for each row, in row order. Each row is its own call: a limit
340
- * is consumed once per granted row, so rows past the cap are denied with
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
341
427
  * `limit`, and each `approval-required` row carries its own token.
342
428
  */
343
- 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
+ };
344
433
  /**
345
434
  * `decide` for each id, in id order, on rows the server loads itself:
346
435
  * `options.data(ids)` answers a map from id to row, or the rows with their
347
- * resource id field. Each row is trusted (no schema check) and decided in
348
- * the tenant its own root scope field names, as `permdock.tenant(<that
349
- * value>)` would, so one call can span tenants. An id with no loaded row,
350
- * a loader that throws and a row of another resource are denied with
351
- * `validation`. A snapshot instance denies every id with `unsupported`.
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`.
352
441
  */
353
442
  readonly decideIds: (permission: Permission, ids: readonly string[], options: DecideIdsOptions) => Promise<readonly Decision[]>;
354
443
  /**
355
- * What `permission` on `row` decides for the principal `principalId`,
356
- * loaded from `principals` in this instance's active tenant with no actor
357
- * and no delegation. It grants this instance nothing, shares none of its
358
- * caches and never consumes a limit. Denied with `anonymous` when there is
359
- * 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
360
449
  * `tenant-mismatch` when the principal is outside the active tenant.
361
450
  */
362
451
  readonly decideFor: (principalId: string, permission: Permission, row?: unknown) => Promise<Decision>;
363
452
  readonly assert: {
364
- (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, {
365
454
  readonly outcome: "granted";
366
455
  }>;
367
456
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: DecideOptions): Extract<Decision, {
368
457
  readonly outcome: "granted";
369
458
  }>;
370
459
  /**
371
- * A permission held as `Permission` at run time (from a list, a catalog
372
- * or `findPermission`), whose kind the type does not say: pass `data`,
373
- * 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.
374
470
  */
375
- (permission: Permission, data: unknown, options?: DecideOptions): Extract<Decision, {
471
+ <P extends Permission>(permission: P, data: RowData<P>, options?: DecideOptions): Extract<Decision, {
376
472
  readonly outcome: "granted";
377
473
  }>;
378
474
  };
379
475
  /**
380
- * `decide` with `explain: true`: the same decision, with a `trace` that
381
- * names the grants evaluated, the allows and denies that matched (so a
382
- * `denied` says which deny won) and the grants passed over. Local
383
- * 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`.
384
480
  */
385
481
  readonly explain: {
386
- (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;
387
483
  (permission: Permission<string, unknown, "collection">, data?: unknown, options?: Omit<DecideOptions, "explain">): ExplainedDecision;
388
- (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;
389
486
  };
390
- readonly filter: <T>(permission: Permission<string, T, "instance">, rows: readonly T[], options?: DecideOptions) => T[];
391
- 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>;
392
489
  readonly where: (permission: Permission) => WhereResult;
393
490
  readonly actions: (resource: Permission | {
394
491
  readonly [key: string]: unknown;
@@ -425,12 +522,15 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
425
522
  readonly scope?: string;
426
523
  readonly id?: string;
427
524
  }) => readonly Role[];
428
- /** 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
+ */
429
529
  readonly audiences: () => readonly string[];
430
530
  /**
431
- * The roles the subject may hand out in a tenant (the active one by
432
- * default), or with `scope: 'global'` the global roles it may hand out. A
433
- * 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.
434
534
  */
435
535
  readonly assignableRoles: (options?: {
436
536
  readonly tenant?: string;
@@ -447,8 +547,8 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
447
547
  readonly scope?: "global";
448
548
  }) => readonly Permission[];
449
549
  /**
450
- * The levels of `permission` (`resource(…, { levels })`) the subject may
451
- * 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
452
552
  * `meta.manageRoles`. Empty when the permission is not assignable.
453
553
  */
454
554
  readonly assignableLevels: (permission: Permission, options?: {
@@ -467,10 +567,10 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
467
567
  */
468
568
  readonly permittedIds: (permission: Permission, scope: string, options?: PermittedIdsOptions) => readonly string[];
469
569
  /**
470
- * Loads the relation facts `permission` needs for `rows` into this
471
- * instance's cache, so `can`, `decide` and `filter` answer synchronously
472
- * over an async `RelationSource`. It never grants; a failed load leaves
473
- * 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`.
474
574
  */
475
575
  readonly prefetchRelations: (permission: Permission, rows: readonly unknown[]) => Promise<void>;
476
576
  readonly roles: V["roles"] extends RoleTree ? V["roles"] : RoleTree;
@@ -480,37 +580,58 @@ type PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
480
580
  /**
481
581
  * The same subject, tenant, team, actor, delegation, sink and limits with
482
582
  * other sources: `customRoles`, `approvalPolicies` or `relations`. The
483
- * sources it names are read again for the subject's tenants; the others
484
- * keep what this instance loaded. Always a promise, since the sources it
485
- * 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.
486
586
  */
487
587
  readonly derive: (options: DeriveOptions) => Promise<PermDock<V>>;
488
588
  };
489
- /** 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
+ */
490
593
  type DeriveOptions = Pick<PermDockOptions, "customRoles" | "approvalPolicies" | "relations" | "principals">;
491
594
  type PermDockOptions = {
492
595
  readonly tenant?: string;
493
596
  /** One source, or several composed with `composeMemberships`. */
494
597
  readonly memberships?: MembershipSource | readonly MembershipSource[];
495
598
  readonly customRoles?: CustomRoleSource | CustomRoleSourceFactory;
496
- /** 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
+ */
497
603
  readonly entitlements?: EntitlementSource;
498
604
  readonly actor?: Actor;
499
605
  readonly delegation?: Delegation;
500
606
  readonly sink?: DecisionSink;
501
- /** 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
+ */
502
611
  readonly limits?: Limits;
503
612
  readonly session?: string;
504
613
  readonly expiresAt?: number;
505
- /** 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
+ */
506
618
  readonly policies?: HostedPolicies;
507
- /** 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
+ */
508
623
  readonly relations?: RelationSource;
509
- /** 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
+ */
510
628
  readonly approvalPolicies?: ApprovalPolicies;
511
629
  /** Other principals by id, for `decideFor`; asked with the active tenant. */
512
630
  readonly principals?: PrincipalSource;
513
- /** 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
+ */
514
635
  readonly settings?: SettingsSource;
515
636
  /**
516
637
  * Request values an adapter's `context` hook derived on the server, merged
@@ -521,11 +642,14 @@ type PermDockOptions = {
521
642
  /**
522
643
  * The instance for `user`, built synchronously. Every input must answer
523
644
  * synchronously: the subject mapper, `memberships`, `customRoles`,
524
- * `entitlements`, `approvalPolicies` and the freshness check. One that
525
- * 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.
526
647
  */
527
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>;
528
- /** 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
+ */
529
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>>;
530
654
  //#endregion
531
- export { ApprovalPolicy as C, approvalPolicies as D, ApprovalPolicyValidation as E, memoryApprovalPolicySource as O, ApprovalPolicies as S, ApprovalPolicySource as T, PermittedIdsOptions as _, PermDock as a, memoryLimitStore as b, SimulateOptions as c, getPermDock as d, getPermDockSync as f, memoryPrincipalSource as g, PrincipalSource as h, LoadedRows as i, validateApprovalPolicy as k, SnapshotOptions as l, PrincipalIdentityLink as m, DecideOptions as n, PermDockOptions as o, PrincipalIdentity as p, DeriveOptions as r, RowPair as s, DecideIdsOptions as t, WhereResult as u, Limits as v, ApprovalPolicyProblem as w, PermissionCheck as x, limits 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 };