permdock 0.7.0 → 0.9.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-BcudBQOF.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-Ch07MdxN.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-K0faOLFp.d.ts → approval-prompt-3BqWczTt.d.ts} +13 -11
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  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-BpS7LnV0.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-CmQaGPkM.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-DTjR8xet.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-C6Jg75xq.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-D1nO6fiC.js → bind-BNQA9JK9.js} +26 -10
  35. package/dist/{bind-JDuvxjuW.d.ts → bind-YYjvfpB9.d.ts} +32 -12
  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-BWXqwQYU.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-Di9tiUvi.d.ts} +41 -29
  45. package/dist/{casbin-BHijLuHY.js → casbin-B7_yS-oo.js} +2 -2
  46. package/dist/{casbin-BW9pS47J.js → casbin-bHyIxTNQ.js} +16 -8
  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-CGlSwU6j.js} +20 -19
  52. package/dist/catalog-D3oS2GH3.js +1 -0
  53. package/dist/{catalog-BaMQfQ6Y.js → catalog-amPDr0JQ.js} +3 -3
  54. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  55. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  56. package/dist/catalog-operations-DeHTrJSV.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-3kWfjnYy.js} +4 -5
  77. package/dist/{codemod-BP6n8N9L.js → codemod-Bv5i-Mzo.js} +523 -201
  78. package/dist/{codemod-i4N2BhDc.js → codemod-D9Aiii1r.js} +3 -4
  79. package/dist/{collect-DNm3oKOk.js → collect-B80GYEot.js} +4 -5
  80. package/dist/collect-D-eroIfV.js +1 -0
  81. package/dist/{collect-BaWeMjwV.js → collect-WCl8cJQV.js} +26 -63
  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-BEklRUYo.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-_bc0OUQ-.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-D5XrLWpk.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BmWIskD7.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-CQkE8Esr.d.ts → core-CFepFiDP.d.ts} +49 -22
  98. package/dist/{core-B5-w6Kw9.js → core-DzVINFbU.js} +26 -20
  99. package/dist/{create-Cb86Z8Im.js → create-6EwRQlig.js} +10 -7
  100. package/dist/{create-DJrlhEp9.js → create-BLPKnJKa.js} +35 -25
  101. package/dist/{create-UTnUVETj.d.ts → create-BPUopdfL.d.ts} +70 -37
  102. package/dist/{create-QHuuPw3q.d.ts → create-BamXmeob.d.ts} +37 -29
  103. package/dist/{create-B2-CQqCI.d.ts → create-DBvUsgzK.d.ts} +49 -28
  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-DHldhVUv.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-BbFPBSms.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-BwR1JdP2.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-CQegtBAo.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-ClRVAtXQ.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-LPMYjSqO.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-B_Qg9D3e.d.ts → errors-BIM4MFsJ.d.ts} +22 -6
  127. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  128. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-BAmf_AQd.js} +153 -82
  130. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-DOWuBpWv.d.ts} +11 -5
  131. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  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-BIbBAtPZ.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-dPTgJVHd.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-BFfzZSLH.js +58 -0
  150. package/dist/gen-BtfFWGbz.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-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  164. package/dist/{hosted-BmjzxQhp.d.ts → hosted-DVxlLZMe.d.ts} +33 -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-DB2EG_iy.js → import-ACkOrv6g.js} +6 -6
  169. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  170. package/dist/{index-CMiPH2Tv.d.ts → index-BinlXeU-.d.ts} +64 -37
  171. package/dist/{index-BSfRl0hZ.d.ts → index-CV-7DWeD.d.ts} +64 -52
  172. package/dist/{index-BE8y3moU.d.ts → index-DJwEgYzA.d.ts} +127 -82
  173. package/dist/{index-DH9DUDEM.d.ts → index-Dj2qF9VC.d.ts} +54 -30
  174. package/dist/{index-BTkwrK7v.d.ts → index-vYjMrXyK.d.ts} +336 -173
  175. package/dist/{index-DLwcuCN_.d.ts → index-ymept53A.d.ts} +51 -30
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +34 -34
  178. package/dist/{init-B-4t1NzC.js → init-BjuFDYT1.js} +10 -10
  179. package/dist/{init-5TXNji88.js → init-txYTuW9u.js} +5 -5
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-CoHn-0e8.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot-DuWf1cT3.js} +86 -61
  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-qv4cr9w8.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-CfImTJGb.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-CgfCTO3F.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-B2QPh19C.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-C-nv08_n.js} +16 -9
  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 +79 -26
  212. package/dist/next/index.js +121 -10
  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-ztVaux6j.js → openapi-BGeuunWC.js} +23 -14
  223. package/dist/{openapi-DMocl1bh.js → openapi-BIpw3Mb7.js} +4 -5
  224. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  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-DgSDLrta.js → output-DV5dwOTs.js} +9 -5
  232. package/dist/output-files-BHOIlrfD.js +1 -0
  233. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  234. package/dist/ownership-DA5YdYTm.js +1059 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-CCmbhnxP.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-BfWEeMqk.js → permdock-BvjivVb9.js} +200 -140
  245. package/dist/{permdock-Dco6dyCK.d.ts → permdock-CprAPN3w.d.ts} +260 -129
  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-CYcHj_w7.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-BycVKnXv.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-CU3An8uP.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-DGIO_gxq.d.ts} +782 -357
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-5Dr3W64L.js} +84 -86
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-D5nUGm-c.d.ts} +55 -35
  262. package/dist/powersync-B701tvhE.js +1 -0
  263. package/dist/{powersync-13odBwiM.js → powersync-Bg8u-JcR.js} +3 -3
  264. package/dist/{powersync-53ryOZip.js → powersync-CJrT1DSc.js} +127 -69
  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-D8x73IGm.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-DfLeek9O.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/{pull-CN5OLxrF.js → pull-2nJr0qg_.js} +12 -11
  282. package/dist/pull-C3EEGzSw.js +1 -0
  283. package/dist/{push-tVdG8dUL.js → push-Bn-lMEmI.js} +19 -13
  284. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-CDuOL2de.js} +10 -7
  285. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-CryQheKq.d.ts} +12 -6
  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-Bs9Df2fQ.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-Duzdf0cd.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-ConCSj1y.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-Ck_PocSp.js → rls-Ba9wN0SP.js} +13 -6
  306. package/dist/{rls-CxBZb4rZ.js → rls-Cx0dtsB7.js} +310 -128
  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-vHIwyXCp.js} +8 -5
  310. package/dist/run-Ck22anC2.js +1 -0
  311. package/dist/{run-uLD2aWuO.js → run-PbRlXTfh.js} +26 -23
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-B2o2Kxz8.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-DK4V-3Is.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-CRTj6fke.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-BTsE1WRT.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-CyRN0-Cd.d.ts} +88 -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-Cp_Eot9W.d.ts → sink-B5zoUW_O.d.ts} +44 -20
  333. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  334. package/dist/{skills-g_3BS9NC.js → skills-C9uKfSF5.js} +3 -3
  335. package/dist/{skills-Dcjw9_1C.js → skills-CQQcuGBi.js} +12 -8
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BjAWkchD.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-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  344. package/dist/{sources-DEEuGb8S.d.ts → sources-CWG32C0G.d.ts} +126 -53
  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-C_pi2Rnh.js} +292 -101
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  351. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-DOYEuOLx.d.ts} +7 -7
  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-DZJvxFIZ.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-2Vwhl7Er.d.ts → stream-9y9qw51m.d.ts} +4 -3
  357. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  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-DnMMg5Fn.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-SBs3MYUE.js} +3 -3
  368. package/dist/supabase-hook-C0FyEACZ.js +1 -0
  369. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-CrgU06WH.js} +175 -196
  370. package/dist/{supautils-MESd81bF.js → supautils-ByezN3b8.js} +385 -219
  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-BqrxBCir.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 +225 -141
  394. package/dist/testing/index.js +352 -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-c7Xo_2Cu.d.ts +50 -0
  407. package/dist/{types-CfiKC5aN.d.ts → types-B2efzoSX.d.ts} +14 -11
  408. package/dist/{types-CIeZcG8v.d.ts → types-B6ExllNo.d.ts} +2 -2
  409. package/dist/{types-DBHftjgS.d.ts → types-BB-zWDcR.d.ts} +45 -33
  410. package/dist/{types-BfVmNJO5.d.ts → types-BMVDHvI0.d.ts} +128 -50
  411. package/dist/{types-DXmwu78Z.d.ts → types-CEinc15V.d.ts} +31 -14
  412. package/dist/{types-g7Oy6Zg4.d.ts → types-CN0LsqbK.d.ts} +47 -24
  413. package/dist/{types-CeIscIKp.d.ts → types-CWBsAwqn.d.ts} +23 -12
  414. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  415. package/dist/{types-BWZybqs9.d.ts → types-CzOeVvcC.d.ts} +384 -203
  416. package/dist/{types-DC44-hqb.d.ts → types-DLvhVm1r.d.ts} +59 -32
  417. package/dist/{types-D3A19w4A.d.ts → types-DlelvQk4.d.ts} +22 -13
  418. package/dist/{types-cTos-H7p.d.ts → types-DsHGPtkR.d.ts} +68 -32
  419. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  420. package/dist/{types-CQVEQawv.d.ts → types-rCRV4Ge-.d.ts} +24 -14
  421. package/dist/types-tQB2CEnY.d.ts +262 -0
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-0hjZPIRX.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-B9EtHWLa.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-CBzgwfIs.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-uvp-kyfO.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-DlUcTDBz.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-CqUKX6CY.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-BFDKqmUa.js} +8 -8
  441. package/dist/watch-ClLuO2TL.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-BoDJm0Nc.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-DxXB54Wu.d.ts} +8 -5
  452. package/package.json +8 -8
  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 +16 -23
  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,5 +1,5 @@
1
- import { Dn as RelationGrantee, Rt as Instant, fr as AdapterId, gn as Approver, lr as Subject, o as ApprovalStage, or as Membership, r as ApprovalMode, un as WireDelegation } from "./policy-types-B-F-qAZk.js";
2
- import { O as AppData } from "./permission-types-DhNEmoRG.js";
1
+ import { Nn as RelationGrantee, Sn as Approver, Wt as Instant, fr as Membership, gn as WireDelegation, hr as Subject, o as ApprovalStage, r as ApprovalMode, vr as AdapterId } from "./policy-types-DGIO_gxq.js";
2
+ import { M as AppData } from "./permission-types-CAY-GU7e.js";
3
3
  //#region src/approvals/types.d.ts
4
4
  type ApprovalStatus = "pending" | "approved" | "rejected" | "expired";
5
5
  type ApprovalApprovers = {
@@ -12,30 +12,42 @@ type ApprovalApprovers = {
12
12
  readonly distinct?: boolean;
13
13
  /** Set when the approval no longer applies once the row's `version` changes. */
14
14
  readonly staleOn?: "resource-change";
15
- /** Distinct approvers of `by` needed before `status` becomes `approved`; absent means 1. */
15
+ /**
16
+ * Distinct approvers of `by` needed before `status` becomes `approved`;
17
+ * absent means 1.
18
+ */
16
19
  readonly quorum?: number;
17
- /** Who else may approve once the request has waited `after` seconds since `createdAt`. */
20
+ /**
21
+ * Who else may approve once the request has waited `after` seconds since
22
+ * `createdAt`.
23
+ */
18
24
  readonly escalation?: {
19
25
  readonly after: number;
20
26
  readonly to: Approver | readonly Approver[];
21
27
  };
22
28
  };
23
- /** One recorded approval: who gave it, when, and under `stages` the index of the stage it counts for. */
29
+ /**
30
+ * One recorded approval: who gave it, when, and under `stages` the index of the
31
+ * stage it counts for.
32
+ */
24
33
  type ApprovalSignature = {
25
34
  readonly by: string;
26
35
  readonly at: string;
27
36
  readonly stage?: number;
28
37
  readonly vouched?: string;
29
- /** The principal `by` approved for, when `by` acted under an `ApprovalDelegation`. */
38
+ /**
39
+ * The principal `by` approved for, when `by` acted under an
40
+ * `ApprovalDelegation`.
41
+ */
30
42
  readonly onBehalfOf?: string;
31
43
  /** The `ApprovalDelegation` id `onBehalfOf` was read from. */
32
44
  readonly delegation?: string;
33
45
  };
34
46
  /**
35
- * One out-of-office delegation: `delegate` may approve what `delegator`
36
- * could approve, from `from` until `until`. Both instants are required, so
37
- * a delegation cannot be open-ended. `permissions` and `resources` narrow
38
- * it; absent, it covers every request. `tenant` holds it to one tenant.
47
+ * One out-of-office delegation: `delegate` may approve what `delegator` could
48
+ * approve, from `from` until `until`. Both instants are required, so a
49
+ * delegation cannot be open-ended. `permissions` and `resources` narrow it;
50
+ * absent, it covers every request. `tenant` holds it to one tenant.
39
51
  */
40
52
  type ApprovalDelegation = {
41
53
  readonly id: string;
@@ -57,12 +69,12 @@ type ApprovalDelegation = {
57
69
  type ApprovalDelegationSource = {
58
70
  /** Names the implementation in errors and events. */
59
71
  readonly name?: string;
60
- delegationsFor(query: {
72
+ delegationsFor: (query: {
61
73
  readonly delegate: string;
62
74
  readonly tenant?: string;
63
75
  /** RFC 3339. The source returns delegations active at this instant. */
64
76
  readonly at: string;
65
- }): readonly ApprovalDelegation[] | Promise<readonly ApprovalDelegation[]>;
77
+ }) => readonly ApprovalDelegation[] | Promise<readonly ApprovalDelegation[]>;
66
78
  };
67
79
  type ApprovalSubjectSummary = {
68
80
  readonly principal: {
@@ -97,15 +109,24 @@ type ApprovalRequest = {
97
109
  readonly createdAt: string;
98
110
  readonly expiresAt: string;
99
111
  readonly status: ApprovalStatus;
100
- /** Approvals given so far, oldest first; the request is `approved` once there are `approvers.quorum` of them. */
112
+ /**
113
+ * Approvals given so far, oldest first; the request is `approved` once there
114
+ * are `approvers.quorum` of them.
115
+ */
101
116
  readonly approvals?: readonly ApprovalSignature[];
102
117
  readonly resolvedAt?: string;
103
- /** The approver whose verdict resolved the request (the last of `approvals` on a quorum), or `system:<by>` for a cancellation. */
118
+ /**
119
+ * The approver whose verdict resolved the request (the last of `approvals` on
120
+ * a quorum), or `system:<by>` for a cancellation.
121
+ */
104
122
  readonly resolvedBy?: string;
105
123
  readonly vouched?: string;
106
124
  readonly note?: string;
107
125
  readonly consumedAt?: string;
108
- /** The application's own data, set when the request opens; plain JSON, never read by a decision. */
126
+ /**
127
+ * The application's own data, set when the request opens; plain JSON, never
128
+ * read by a decision.
129
+ */
109
130
  readonly x?: AppData;
110
131
  };
111
132
  type ApprovalVerdict = {
@@ -120,8 +141,8 @@ type ApprovalVerdict = {
120
141
  */
121
142
  readonly relations?: readonly string[];
122
143
  /**
123
- * The `holder(permission)` approvers (by permission key) that `by` holds
124
- * in the request's tenant, as `approverPermissions` read them from the
144
+ * The `holder(permission)` approvers (by permission key) that `by` holds in
145
+ * the request's tenant, as `approverPermissions` read them from the
125
146
  * approver's own instance. Server-side input, never from the request body.
126
147
  * Absent means none, so permission approvers match nobody.
127
148
  */
@@ -130,8 +151,8 @@ type ApprovalVerdict = {
130
151
  /**
131
152
  * Set when `by` is not an approver and acts for this principal under an
132
153
  * `ApprovalDelegation`. Server-side input: the handler resolves the
133
- * delegator, and `applyApprovalVerdict` checks them again. `relations`
134
- * and `permissions` are that principal's facts, never the delegate's.
154
+ * delegator, and `applyApprovalVerdict` checks them again. `relations` and
155
+ * `permissions` are that principal's facts, never the delegate's.
135
156
  */
136
157
  readonly onBehalfOf?: {
137
158
  readonly subject: Subject;
@@ -169,28 +190,28 @@ type ApprovalStore = {
169
190
  /** Names the implementation in errors and events. */
170
191
  readonly name?: string;
171
192
  /**
172
- * Seconds a request opened against this store stays open when the
173
- * caller sets no `ttl`; absent means `DEFAULT_APPROVAL_TTL`. A grant's
174
- * `approval.ttl` still caps it.
193
+ * Seconds a request opened against this store stays open when the caller sets
194
+ * no `ttl`; absent means `DEFAULT_APPROVAL_TTL`. A grant's `approval.ttl`
195
+ * still caps it.
175
196
  */
176
197
  readonly ttl?: number;
177
- create(request: ApprovalRequest): Promise<void> | void;
178
- get(token: string): Promise<ApprovalRequest | null> | ApprovalRequest | null;
198
+ create: (request: ApprovalRequest) => Promise<void> | void;
199
+ get: (token: string) => Promise<ApprovalRequest | null> | ApprovalRequest | null;
179
200
  /**
180
201
  * The request with this `id`, for `approvalsHandler`, which routes by id.
181
202
  * Without it the handler pages through `list` to find the id.
182
203
  */
183
- getById?(id: string): Promise<ApprovalRequest | null> | ApprovalRequest | null;
184
- resolve(token: string, verdict: ApprovalVerdict): Promise<ApprovalRequest> | ApprovalRequest;
185
- list(query: ApprovalListQuery): Promise<ApprovalPage> | ApprovalPage;
186
- expire(now?: Instant): Promise<number> | number;
204
+ getById?: (id: string) => Promise<ApprovalRequest | null> | ApprovalRequest | null;
205
+ resolve: (token: string, verdict: ApprovalVerdict) => Promise<ApprovalRequest> | ApprovalRequest;
206
+ list: (query: ApprovalListQuery) => Promise<ApprovalPage> | ApprovalPage;
207
+ expire: (now?: Instant) => Promise<number> | number;
187
208
  /**
188
209
  * Marks an approved, unexpired, unconsumed request consumed and returns it;
189
210
  * returns `null` otherwise. Must be atomic: two concurrent calls for one
190
211
  * token never both return the request.
191
212
  */
192
- consume(token: string, now?: Instant): Promise<ApprovalRequest | null> | ApprovalRequest | null;
193
- cancel?(filter: ApprovalListFilter, meta: ApprovalCancelMeta): Promise<number> | number;
213
+ consume: (token: string, now?: Instant) => Promise<ApprovalRequest | null> | ApprovalRequest | null;
214
+ cancel?: (filter: ApprovalListFilter, meta: ApprovalCancelMeta) => Promise<number> | number;
194
215
  };
195
216
  type ApprovalResumeFailureCause = "approval-not-found" | "approval-pending" | "approval-rejected" | "approval-expired" | "approval-consumed";
196
217
  type ApprovalInspectResult = {
@@ -201,9 +222,15 @@ type ApprovalInspectResult = {
201
222
  readonly cause: ApprovalResumeFailureCause;
202
223
  };
203
224
  declare const APPROVAL_HEADER: "PermDock-Approval";
204
- /** Seconds a request stays open when neither the store nor the call sets a `ttl`. */
225
+ /**
226
+ * Seconds a request stays open when neither the store nor the call sets a
227
+ * `ttl`.
228
+ */
205
229
  declare const DEFAULT_APPROVAL_TTL: number;
206
- /** The approvals a request needs in total: `approvers.quorum` (or 1), or the sum of its stages' quorums. */
230
+ /**
231
+ * The approvals a request needs in total: `approvers.quorum` (or 1), or the sum
232
+ * of its stages' quorums.
233
+ */
207
234
  declare function approvalQuorum(request: ApprovalRequest): number;
208
235
  /**
209
236
  * The instant from which `approvers.escalation.to` may approve, in epoch
@@ -1,6 +1,6 @@
1
- import { Hn as ExplainedDecision, Ln as Decision, T as Policy, j as PolicyVocabulary, lr as Subject, or as Membership, sr as Principal } from "./policy-types-B-F-qAZk.js";
2
- import { f as PermissionTree, u as Permission } from "./permission-types-DhNEmoRG.js";
3
- import { a as PermDock, c as SimulateOptions, n as DecideOptions, o as PermDockOptions, r as DeriveOptions, u as WhereResult, x as PermissionCheck } from "./permdock-Dco6dyCK.js";
1
+ import { Jn as ExplainedDecision, T as Policy, Un as Decision, fr as Membership, hr as Subject, j as PolicyVocabulary, pr as Principal } from "./policy-types-DGIO_gxq.js";
2
+ import { f as PermissionTree, u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { C as PermissionCheck, a as PermDock, f as WhereResult, l as SimulateOptions, n as DecideOptions, o as PermDockOptions, r as DeriveOptions } from "./permdock-CprAPN3w.js";
4
4
  //#region src/pdp/types.d.ts
5
5
  type RemotePdpAuth = {
6
6
  readonly bearer: string | (() => string | Promise<string>);
@@ -40,9 +40,9 @@ type RemotePdpOptions = {
40
40
  readonly fetch?: typeof fetch;
41
41
  };
42
42
  /**
43
- * One tuple callback per delegated permission. The callback receives the
44
- * row for a check and `undefined` for a listing; returning `null` denies
45
- * with `pdp-denied`, throwing denies with `pdp-invalid-response`.
43
+ * One tuple callback per delegated permission. The callback receives the row
44
+ * for a check and `undefined` for a listing; returning `null` denies with
45
+ * `pdp-denied`, throwing denies with `pdp-invalid-response`.
46
46
  */
47
47
  type RelationMap<T> = readonly (readonly [Permission, (subject: Subject, data: unknown) => T | null])[];
48
48
  type OpenFgaTuple = {
@@ -90,25 +90,34 @@ type PdpPermDock<V extends PolicyVocabulary = PolicyVocabulary> = Omit<PermDock<
90
90
  /** `permdock.derive` with the same providers: the result asks the PDP too. */
91
91
  readonly derive: (options: DeriveOptions) => Promise<PdpPermDock<V>>;
92
92
  /**
93
- * For a delegated permission whose provider lists ids, an `in` over them
94
- * (AND the local condition when local grants exist); otherwise the local
95
- * `where`, or an always-false `partial` result.
93
+ * For a delegated permission whose provider lists ids, an `in` over them (AND
94
+ * the local condition when local grants exist); otherwise the local `where`,
95
+ * or an always-false `partial` result.
96
96
  */
97
97
  readonly where: (permission: Permission) => Promise<WhereResult>;
98
98
  readonly can: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<boolean>;
99
99
  readonly decide: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<Decision>;
100
- /** `can` for every check, asking the PDP for each in parallel; `false` for an empty list. */
100
+ /**
101
+ * `can` for every check, asking the PDP for each in parallel; `false` for an
102
+ * empty list.
103
+ */
101
104
  readonly canAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => Promise<boolean>;
102
- /** `decide` for every check, in check order, asking the PDP for each in parallel. */
105
+ /**
106
+ * `decide` for every check, in check order, asking the PDP for each in
107
+ * parallel.
108
+ */
103
109
  readonly decideAll: (checks: readonly PermissionCheck[], options?: DecideOptions) => Promise<readonly Decision[]>;
104
110
  /** `decide` for each row, in row order, asking the PDP per row. */
105
111
  readonly decideEach: (permission: Permission, rows: readonly unknown[], options?: DecideOptions) => Promise<readonly Decision[]>;
106
112
  readonly assert: (permission: Permission, data?: unknown, options?: DecideOptions) => Promise<Extract<Decision, {
107
113
  readonly outcome: "granted";
108
114
  }>>;
109
- /** `decide` with a trace of the local grants; a decision the remote PDP made carries an empty trace. */
115
+ /**
116
+ * `decide` with a trace of the local grants; a decision the remote PDP made
117
+ * carries an empty trace.
118
+ */
110
119
  readonly explain: (permission: Permission, data?: unknown, options?: Omit<DecideOptions, "explain">) => Promise<ExplainedDecision>;
111
- readonly filter: <T>(permission: Permission<string, T, "instance">, rows: readonly T[], options?: DecideOptions) => Promise<T[]>;
120
+ readonly filter: <T>(permission: Permission<string, NoInfer<T>, "instance">, rows: readonly T[], options?: DecideOptions) => Promise<T[]>;
112
121
  readonly simulate: {
113
122
  (checks: readonly (readonly [Permission, unknown?])[], options?: SimulateOptions): Promise<readonly Decision[]>;
114
123
  (preview: {
@@ -1,8 +1,8 @@
1
- import { Y as JwtClaims, Zn as Actor, Zt as AuthEvent, dt as TokenVerifier, et as MembershipSource, lr as Subject, lt as TokenFailureCause, sr as Principal } from "./policy-types-B-F-qAZk.js";
2
- import { m as ApprovalStore } from "./types-DC44-hqb.js";
3
- import { n as RevocationFeed } from "./revocations-R07lFBnX.js";
4
- import { t as ClaimsMap } from "./claims-map-Ca-QX8C6.js";
5
- import { t as ClientNames } from "./clients-C7zLFuWT.js";
1
+ import { Z as JwtClaims, hr as Subject, ht as TokenVerifier, nt as MembershipSource, pr as Principal, pt as TokenFailureCause, rn as AuthEvent, rr as Actor } from "./policy-types-DGIO_gxq.js";
2
+ import { m as ApprovalStore } from "./types-DLvhVm1r.js";
3
+ import { n as RevocationFeed } from "./revocations-BaUXHM1N.js";
4
+ import { t as ClaimsMap } from "./claims-map-D1Pb5oRq.js";
5
+ import { t as ClientNames } from "./clients-C_NOET3z.js";
6
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
7
7
  //#region src/jwt/types.d.ts
8
8
  type JwtAlgorithm = "ES256" | "PS256" | "Ed25519" | "RS256" | "HS256" | "EdDSA";
@@ -24,7 +24,10 @@ type JwksCacheOptions = {
24
24
  readonly minTtl?: number;
25
25
  readonly maxTtl?: number;
26
26
  readonly cooldown?: number;
27
- /** Milliseconds a discovery or JWKS request may take before it counts as failed. Default 5000. */
27
+ /**
28
+ * Milliseconds a discovery or JWKS request may take before it counts as
29
+ * failed. Default 5000.
30
+ */
28
31
  readonly timeout?: number;
29
32
  };
30
33
  type JoseTokenVerifierOptions = {
@@ -47,7 +50,10 @@ type JoseTokenSignerOptions = {
47
50
  readonly kid: string;
48
51
  /** `iss` of every output; required. */
49
52
  readonly issuer: string;
50
- /** `aud` for an output whose `sign` call names none; without either, `sign` rejects. */
53
+ /**
54
+ * `aud` for an output whose `sign` call names none; without either, `sign`
55
+ * rejects.
56
+ */
51
57
  readonly audience?: string | readonly string[];
52
58
  };
53
59
  type JwtDelegationPaths = {
@@ -69,11 +75,17 @@ type JwtSubjectOptions = Omit<JoseTokenVerifierOptions, "audience"> & {
69
75
  readonly actor?: {
70
76
  readonly from?: "act";
71
77
  readonly kind?: string;
72
- /** Names for client ids (`ClientNames`): the actor gets `client` set to the name of `act.sub`. */
78
+ /**
79
+ * Names for client ids (`ClientNames`): the actor gets `client` set to
80
+ * the name of `act.sub`.
81
+ */
73
82
  readonly clients?: ClientNames;
74
83
  } | ((claims: JwtClaims) => Actor | undefined);
75
84
  readonly sender?: "none" | "dpop" | "mtls";
76
- /** With `sender: "dpop"`, rejects a proof `jti` already used by the same key within 60 seconds. */
85
+ /**
86
+ * With `sender: "dpop"`, rejects a proof `jti` already used by the same key
87
+ * within 60 seconds.
88
+ */
77
89
  readonly replay?: ReplayStore;
78
90
  readonly memberships?: MembershipSource;
79
91
  readonly verifier?: TokenVerifier;
@@ -101,7 +113,10 @@ type CaepEventName = "session-revoked" | "credential-change" | "assurance-level-
101
113
  /** The RISC 1.0 event types PermDock treats as a revocation of every session. */
102
114
  type RiscEventName = "account-disabled" | "account-purged" | "credential-compromise";
103
115
  type SsfEventName = CaepEventName | RiscEventName;
104
- /** An SSF 1.0 stream `verification` event: the `state` the receiver asked the transmitter to echo. */
116
+ /**
117
+ * An SSF 1.0 stream `verification` event: the `state` the receiver asked the
118
+ * transmitter to echo.
119
+ */
105
120
  type SsfVerification = {
106
121
  readonly state?: string;
107
122
  readonly jti: string;
@@ -130,7 +145,10 @@ type SsfEventInput = {
130
145
  type SsfEventHandler = (input: SsfEventInput) => void | Promise<void>;
131
146
  type SsfOnEvent = { readonly [K in SsfEventName]?: SsfEventHandler; } & {
132
147
  readonly "*"?: SsfEventHandler;
133
- /** SSF 1.0 section 8.1.4.1 stream verification; it names a stream, never a subject. */
148
+ /**
149
+ * SSF 1.0 section 8.1.4.1 stream verification; it names a stream, never a
150
+ * subject.
151
+ */
134
152
  readonly verification?: (input: SsfVerification) => void | Promise<void>;
135
153
  };
136
154
  /**
@@ -141,12 +159,12 @@ type SsfOnEvent = { readonly [K in SsfEventName]?: SsfEventHandler; } & {
141
159
  type ReplayStore = {
142
160
  /** Names the implementation in errors and events. */
143
161
  readonly name?: string;
144
- seen(key: string): boolean | Promise<boolean>;
145
- remember(key: string, expiresAt?: number): void | Promise<void>;
162
+ seen: (key: string) => boolean | Promise<boolean>;
163
+ remember: (key: string, expiresAt?: number) => void | Promise<void>;
146
164
  /** Records `key` and returns `true` only if it was not already recorded. */
147
- claim?(key: string, expiresAt?: number): boolean | Promise<boolean>;
165
+ claim?: (key: string, expiresAt?: number) => boolean | Promise<boolean>;
148
166
  /** Forgets a claimed `key` so a failed delivery can be retried. */
149
- release?(key: string): void | Promise<void>;
167
+ release?: (key: string) => void | Promise<void>;
150
168
  };
151
169
  type SsfAuditEvent = {
152
170
  readonly type: string;
@@ -193,22 +211,25 @@ type SsfPermDockOptions = {
193
211
  readonly revocations?: RevocationFeed;
194
212
  readonly clockTolerance?: number;
195
213
  /**
196
- * Seconds a SET without `exp` is accepted after its `iat`; default one
197
- * day. The replay record is kept at least that long, so a replayed SET
198
- * is refused for as long as its signature would verify.
214
+ * Seconds a SET without `exp` is accepted after its `iat`; default one day.
215
+ * The replay record is kept at least that long, so a replayed SET is refused
216
+ * for as long as its signature would verify.
199
217
  */
200
218
  readonly maxTokenAge?: number;
201
219
  };
202
220
  type SsfReceiver = {
203
- push(request: Request): Promise<Response>;
204
- logout(request: Request): Promise<Response>;
205
- poll(options: PollOptions): Promise<PollResult> | PollHandle;
206
- on(event: "event", handler: SsfEventListener): () => void;
221
+ push: (request: Request) => Promise<Response>;
222
+ logout: (request: Request) => Promise<Response>;
223
+ poll: (options: PollOptions) => Promise<PollResult> | PollHandle;
224
+ on: (event: "event", handler: SsfEventListener) => () => void;
207
225
  };
208
226
  type SsfPermDock = {
209
227
  readonly receiver: SsfReceiver;
210
228
  };
211
- /** One event of a SET: the event-type URI, the RFC 9493 subject and the event's own claims. */
229
+ /**
230
+ * One event of a SET: the event-type URI, the RFC 9493 subject and the event's
231
+ * own claims.
232
+ */
212
233
  type SetEvent = {
213
234
  readonly type: string;
214
235
  readonly subject: SetSubject;
@@ -237,7 +258,10 @@ type SignSetOptions = {
237
258
  /** `iat`, NumericDate seconds; the signer's clock when absent. */
238
259
  readonly issuedAt?: number;
239
260
  };
240
- /** Why `pushSet` did not deliver: the RFC 8935 `err` code in kebab case, or a transport failure. */
261
+ /**
262
+ * Why `pushSet` did not deliver: the RFC 8935 `err` code in kebab case, or a
263
+ * transport failure.
264
+ */
241
265
  type SetDeliveryFailureCause = "invalid-request" | "invalid-key" | "invalid-issuer" | "invalid-audience" | "authentication-failed" | "access-denied" | "unavailable";
242
266
  type SetDelivery = {
243
267
  readonly ok: true;
@@ -245,13 +269,22 @@ type SetDelivery = {
245
269
  readonly ok: false;
246
270
  readonly cause: SetDeliveryFailureCause;
247
271
  readonly description?: string;
248
- /** `true` when the same SET may be pushed again: a network failure, a timeout or a `5xx`. */
272
+ /**
273
+ * `true` when the same SET may be pushed again: a network failure, a
274
+ * timeout or a `5xx`.
275
+ */
249
276
  readonly retry: boolean;
250
277
  };
251
278
  type PushSetOptions = {
252
- /** The receiver's RFC 8935 push endpoint, the stream's `delivery.endpoint_url`. */
279
+ /**
280
+ * The receiver's RFC 8935 push endpoint, the stream's
281
+ * `delivery.endpoint_url`.
282
+ */
253
283
  readonly endpoint: string;
254
- /** The `Authorization` header value, the stream's `delivery.authorization_header`. */
284
+ /**
285
+ * The `Authorization` header value, the stream's
286
+ * `delivery.authorization_header`.
287
+ */
255
288
  readonly authorization?: string;
256
289
  readonly fetch?: typeof fetch;
257
290
  readonly signal?: AbortSignal;
@@ -268,21 +301,24 @@ type SetError = {
268
301
  type SetQueue = {
269
302
  /** Names the implementation in errors and events. */
270
303
  readonly name?: string;
271
- enqueue(stream: string, jti: string, set: string): void | Promise<void>;
304
+ enqueue: (stream: string, jti: string, set: string) => void | Promise<void>;
272
305
  /** Up to `max` pending SETs, oldest first. */
273
- pending(stream: string, max: number): readonly {
306
+ pending: (stream: string, max: number) => readonly {
274
307
  readonly jti: string;
275
308
  readonly set: string;
276
309
  }[] | Promise<readonly {
277
310
  readonly jti: string;
278
311
  readonly set: string;
279
312
  }[]>;
280
- ack(stream: string, jti: string): void | Promise<void>;
281
- fail(stream: string, jti: string, error: SetError): void | Promise<void>;
313
+ ack: (stream: string, jti: string) => void | Promise<void>;
314
+ fail: (stream: string, jti: string, error: SetError) => void | Promise<void>;
282
315
  };
283
316
  type SetPollHandlerOptions = {
284
317
  readonly queue: SetQueue;
285
- /** The stream id the request's credentials may poll, or `null` to refuse it with `401`. */
318
+ /**
319
+ * The stream id the request's credentials may poll, or `null` to refuse it
320
+ * with `401`.
321
+ */
286
322
  readonly authorize: (request: Request) => string | null | Promise<string | null>;
287
323
  /** The largest `maxEvents` honoured; default 100. */
288
324
  readonly maxEvents?: number;
@@ -1,5 +1,5 @@
1
- import { C as ResourceRelation } from "./permission-types-DhNEmoRG.js";
2
- import { s as OperationMeta } from "./operations-BNLes61x.js";
1
+ import { C as ResourceRelation } from "./permission-types-CAY-GU7e.js";
2
+ import { s as OperationMeta } from "./operations-Ci_rT6Uo.js";
3
3
  //#region src/catalog/types.d.ts
4
4
  type CatalogUsage = {
5
5
  readonly file: string;
@@ -14,19 +14,33 @@ type CatalogPermission = {
14
14
  readonly arity: "instance" | "collection";
15
15
  readonly meta: Readonly<Record<string, unknown>>;
16
16
  readonly usages: readonly CatalogUsage[];
17
- /** Keys the permission was renamed from (`definePermissions` `renamed`), sorted; absent when none. */
17
+ /**
18
+ * Keys the permission was renamed from (`definePermissions` `renamed`),
19
+ * sorted; absent when none.
20
+ */
18
21
  readonly renamedFrom?: readonly string[];
19
- /** Level names a custom role may pick for the permission (`resource(…, { levels })`); absent when none. */
22
+ /**
23
+ * Level names a custom role may pick for the permission (`resource(…, {
24
+ * levels })`); absent when none.
25
+ */
20
26
  readonly levels?: readonly string[];
27
+ /**
28
+ * `true` when `levels` run from narrowest to widest (`resource(…, {
29
+ * orderedLevels: true })`); absent otherwise.
30
+ */
31
+ readonly orderedLevels?: true;
21
32
  /** Present only when the policy lists the permission in `hostable`. */
22
33
  readonly hostable?: true;
23
34
  /**
24
- * `true` when a code grant for the key has a condition beyond role and
25
- * scope, so the SQL helpers alone cannot enforce it, and when the catalog
26
- * was built without the policy, which leaves it unknown.
35
+ * `true` when a code grant for the key has a condition beyond role and scope,
36
+ * so the SQL helpers alone cannot enforce it, and when the catalog was built
37
+ * without the policy, which leaves it unknown.
27
38
  */
28
39
  readonly rowConditions: boolean;
29
- /** The approvals code allows on this permission require; a hosted grant must meet each. */
40
+ /**
41
+ * The approvals code allows on this permission require; a hosted grant must
42
+ * meet each.
43
+ */
30
44
  readonly approvals?: readonly CatalogApproval[];
31
45
  /** Present when a `breakGlass` override targets this permission. */
32
46
  readonly breakGlass?: CatalogBreakGlass;
@@ -72,7 +86,10 @@ type CatalogResource = {
72
86
  readonly field: string;
73
87
  readonly resource: string;
74
88
  }>>;
75
- /** `'hide'` answers a denied check on a loaded row as if the row did not exist; absent for `'reveal'`. */
89
+ /**
90
+ * `'hide'` answers a denied check on a loaded row as if the row did not
91
+ * exist; absent for `'reveal'`.
92
+ */
76
93
  readonly disclosure?: "hide";
77
94
  readonly relations?: Readonly<Record<string, ResourceRelation>>;
78
95
  /** The row field an `approval: { staleOn: 'resource-change' }` binds to. */
@@ -97,7 +114,10 @@ type CatalogRole = {
97
114
  readonly for?: readonly string[];
98
115
  readonly exclusiveWith?: readonly string[];
99
116
  readonly audience?: string;
100
- /** Present when the role is eligible-only and activated with `permdock.activate`. */
117
+ /**
118
+ * Present when the role is eligible-only and activated with
119
+ * `permdock.activate`.
120
+ */
101
121
  readonly activation?: CatalogActivation;
102
122
  /** Present when the role is a `supportAccess` role. */
103
123
  readonly supportAccess?: CatalogSupportAccess;
@@ -133,9 +153,9 @@ type CatalogValidity = {
133
153
  readonly until?: string;
134
154
  };
135
155
  /**
136
- * One code grant as the catalog carries it: the normalised shape
137
- * `definePolicy` produced, minus closures. `permdock diff` compares these;
138
- * a hosted document is authored against them.
156
+ * One code grant as the catalog carries it: the normalised shape `definePolicy`
157
+ * produced, minus closures. `permdock diff` compares these; a hosted document
158
+ * is authored against them.
139
159
  */
140
160
  type CatalogGrant = {
141
161
  readonly permission: string;
@@ -157,7 +177,10 @@ type CatalogGrant = {
157
177
  readonly validity?: CatalogValidity;
158
178
  readonly name?: string;
159
179
  readonly purpose?: readonly string[];
160
- /** The permission key the subject must also hold through a role on the row's scope instance (`requires`). */
180
+ /**
181
+ * The permission key the subject must also hold through a role on the row's
182
+ * scope instance (`requires`).
183
+ */
161
184
  readonly requires?: string | readonly string[];
162
185
  readonly limit?: {
163
186
  readonly count: number;
@@ -165,9 +188,15 @@ type CatalogGrant = {
165
188
  readonly per: number;
166
189
  readonly mode?: "hard" | "soft";
167
190
  };
168
- /** Present when the grant is a closure, reads the relation graph or is opaque; `where` and `check` are then omitted. */
191
+ /**
192
+ * Present when the grant is a closure, reads the relation graph or is opaque;
193
+ * `where` and `check` are then omitted.
194
+ */
169
195
  readonly portable?: false;
170
- /** The grant's `meta`: a description plus the app's own `x`; absent when empty. */
196
+ /**
197
+ * The grant's `meta`: a description plus the app's own `x`; absent when
198
+ * empty.
199
+ */
171
200
  readonly meta?: Readonly<Record<string, unknown>>;
172
201
  };
173
202
  /** `permissions.catalog.json`, validated by `schemas/catalog-v1.json`. */
@@ -176,7 +205,10 @@ type CatalogDocument = {
176
205
  readonly version: 1;
177
206
  readonly generatedAt: string;
178
207
  readonly generator: string;
179
- /** `catalogFingerprint` of this document; what hosted documents pin as `catalog`. */
208
+ /**
209
+ * `catalogFingerprint` of this document; what hosted documents pin as
210
+ * `catalog`.
211
+ */
180
212
  readonly fingerprint?: string;
181
213
  readonly resources: Readonly<Record<string, CatalogResource>>;
182
214
  readonly permissions: readonly CatalogPermission[];
@@ -186,28 +218,49 @@ type CatalogDocument = {
186
218
  readonly plans?: readonly {
187
219
  readonly key: string;
188
220
  }[];
189
- /** Every code grant, canonically ordered; present when the catalog was built with the policy. */
221
+ /**
222
+ * Every code grant, canonically ordered; present when the catalog was built
223
+ * with the policy.
224
+ */
190
225
  readonly grants?: readonly CatalogGrant[];
191
- /** The policy's standing delegations, canonically ordered; present when the policy declares any. */
226
+ /**
227
+ * The policy's standing delegations, canonically ordered; present when the
228
+ * policy declares any.
229
+ */
192
230
  readonly delegations?: readonly CatalogDelegation[];
193
- /** The `defineOperations` map in definition order; present when the config names an `operations` module. */
231
+ /**
232
+ * The `defineOperations` map in definition order; present when the config
233
+ * names an `operations` module.
234
+ */
194
235
  readonly operations?: readonly CatalogOperation[];
195
- /** The policy's coarse OAuth scopes, sorted by scope; present when the policy declares any. */
236
+ /**
237
+ * The policy's coarse OAuth scopes, sorted by scope; present when the policy
238
+ * declares any.
239
+ */
196
240
  readonly oauthScopes?: readonly CatalogOAuthScope[];
197
241
  };
198
- /** One `definePolicy({ oauthScopes })` entry: the coarse scope an authorization server issues and the permission keys it covers, sorted by code point. */
242
+ /**
243
+ * One `definePolicy({ oauthScopes })` entry: the coarse scope an authorization
244
+ * server issues and the permission keys it covers, sorted by code point.
245
+ */
199
246
  type CatalogOAuthScope = {
200
247
  readonly scope: string;
201
248
  readonly permissions: readonly string[];
202
249
  };
203
- /** One `defineOperations` entry: its name, the permission keys it is bound to, and its meta. */
250
+ /**
251
+ * One `defineOperations` entry: its name, the permission keys it is bound to,
252
+ * and its meta.
253
+ */
204
254
  type CatalogOperation = {
205
255
  readonly name: string;
206
256
  readonly permission: string;
207
257
  readonly results?: string;
208
258
  readonly meta: OperationMeta;
209
259
  };
210
- /** One `definePolicy({ delegations })` entry: who hands over, to which actor, which permission keys, and when. */
260
+ /**
261
+ * One `definePolicy({ delegations })` entry: who hands over, to which actor,
262
+ * which permission keys, and when.
263
+ */
211
264
  type CatalogDelegation = {
212
265
  readonly from: unknown;
213
266
  readonly to: {