permdock 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/README.md +2 -3
  2. package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
  3. package/dist/a2a/index.d.ts +7 -7
  4. package/dist/a2a/index.js +9 -9
  5. package/dist/action-result-CL-QCITA.d.ts +19 -0
  6. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  7. package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-BLs67P1l.js} +5 -5
  8. package/dist/agent/index.d.ts +3 -3
  9. package/dist/agent/index.js +1 -1
  10. package/dist/ai-sdk/index.d.ts +31 -10
  11. package/dist/ai-sdk/index.js +22 -12
  12. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  13. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  15. package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  16. package/dist/approvals/index.d.ts +5 -5
  17. package/dist/approvals/index.js +7 -7
  18. package/dist/{approvals-p1PGoVjb.js → approvals-DnIBTuXE.js} +128 -78
  19. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  20. package/dist/{arazzo-41WuzHou.js → arazzo-3RhGfkAK.js} +2 -2
  21. package/dist/{arazzo-CaUVBn7D.js → arazzo-B5-ulWif.js} +6 -6
  22. package/dist/{args-IIolxxKA.js → args-0FrVs5EH.js} +125 -8
  23. package/dist/astro/index.d.ts +30 -12
  24. package/dist/astro/index.js +2 -2
  25. package/dist/{audience-DabClFLQ.js → audience-BAkBDMqn.js} +8 -8
  26. package/dist/{auth-DRLEizbL.js → auth--yPyZNgr.js} +21 -10
  27. package/dist/authzen/index.d.ts +171 -25
  28. package/dist/authzen/index.js +321 -149
  29. package/dist/{automation-BNM3TtDo.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  30. package/dist/{automation-DVjOckjV.js → automation-x3KEUusw.js} +22 -21
  31. package/dist/base-url-BQbddZO5.js +9 -0
  32. package/dist/better-auth/index.d.ts +2 -2
  33. package/dist/better-auth/index.js +13 -7
  34. package/dist/better-supabase/index.d.ts +392 -220
  35. package/dist/better-supabase/index.js +293 -152
  36. package/dist/{bind-DOyrv6zi.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  37. package/dist/{bind-CAvgUuKs.js → bind-D_sZSVA3.js} +22 -10
  38. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  39. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  40. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  41. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  42. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  43. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  44. package/dist/{build-instance-Bu_eDqYw.js → build-instance-CNWaYJyr.js} +3 -3
  45. package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
  46. package/dist/{capability-N1K9IpqS.js → capability-BqX94r07.js} +31 -25
  47. package/dist/{capability-Drg-1YhL.d.ts → capability-ChuiONQU.d.ts} +41 -29
  48. package/dist/{casbin-Dyu2gnUD.js → casbin-H0rKxBx2.js} +16 -8
  49. package/dist/{casbin-Cr7RLtA3.js → casbin-cbSbhT_k.js} +2 -2
  50. package/dist/{casl-64gpT-8x.js → casl-C4OINZHI.js} +2 -2
  51. package/dist/{casl-DjEDhTCP.js → casl-CHHoCldP.js} +19 -10
  52. package/dist/catalog/index.d.ts +104 -23
  53. package/dist/catalog/index.js +117 -8
  54. package/dist/{catalog-HD2gf5mY.js → catalog-BFpz2EmT.js} +57 -26
  55. package/dist/{catalog-DZVbrF-z.js → catalog-DCspHDc8.js} +3 -3
  56. package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-DjMKzJp9.js} +53 -16
  57. package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-e6aCWosn.js} +19 -15
  58. package/dist/catalog-mRQQQhNK.js +1 -0
  59. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  60. package/dist/{create-CQWIpUG-.js → challenge-DImNcR7B.js} +157 -39
  61. package/dist/chat/index.d.ts +1 -1
  62. package/dist/chat/index.js +13 -10
  63. package/dist/chat-sdk/index.d.ts +44 -26
  64. package/dist/chat-sdk/index.js +17 -17
  65. package/dist/checks-CGkP3Z7A.js +40 -0
  66. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  67. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  68. package/dist/claude-agent/index.d.ts +6 -6
  69. package/dist/claude-agent/index.js +6 -3
  70. package/dist/clerk/index.d.ts +11 -7
  71. package/dist/clerk/index.js +6 -6
  72. package/dist/cli/bin.js +4 -4
  73. package/dist/cli/index.d.ts +82 -7
  74. package/dist/cli/index.js +6 -6
  75. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  76. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  77. package/dist/cloud/index.d.ts +186 -38
  78. package/dist/cloud/index.js +293 -31
  79. package/dist/{cloud-ytQ3uviA.js → cloud-BFlGMaak.js} +5 -6
  80. package/dist/{codemod-5mpSpnUY.js → codemod-DLQ9Zpo4.js} +3 -4
  81. package/dist/{codemod-ua2hHy7w.js → codemod-DWSN2erG.js} +523 -201
  82. package/dist/collect-B5BL3klN.js +1 -0
  83. package/dist/{collect-mLTY4nwb.js → collect-B7ZFAJU3.js} +36 -64
  84. package/dist/{collect-Ci6akVwH.js → collect-Bzv3le0A.js} +6 -6
  85. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  86. package/dist/compile/index.d.ts +2 -2
  87. package/dist/compile/index.js +1 -1
  88. package/dist/{compile-1bsAezL0.d.ts → compile-BFzysW3o.d.ts} +36 -12
  89. package/dist/{compile-CMqMx_IN.js → compile-EzEMB-7v.js} +77 -33
  90. package/dist/{completion-BTFrHZhX.js → completion-saoYiRFO.js} +17 -8
  91. package/dist/config-BwPBfN0t.js +108 -0
  92. package/dist/{config-Bj2Ixq3d.js → config-DBeXXmBF.js} +2 -2
  93. package/dist/{config-report-DSpsLpCE.js → config-report-BipSWA6V.js} +9 -6
  94. package/dist/config-shape-ykV0Vm2n.js +134 -0
  95. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  96. package/dist/connector-schema-CYLQNMYq.js +434 -0
  97. package/dist/{context-B_u3_bDJ.js → context-BnIzxTNE.js} +4 -3
  98. package/dist/convex/index.d.ts +13 -7
  99. package/dist/convex/index.js +9 -6
  100. package/dist/core-H-mbhpZc.js +341 -0
  101. package/dist/core-hWIARPDz.d.ts +206 -0
  102. package/dist/{create-CBMmFie-.d.ts → create-BSNrVuxh.d.ts} +87 -34
  103. package/dist/{create-B30OMUOJ.d.ts → create-BVq1lNQE.d.ts} +49 -28
  104. package/dist/{create-D_NmPOdH.d.ts → create-CM1FciYG.d.ts} +37 -29
  105. package/dist/{create-CGm28gyI.js → create-Cq4Uox0f.js} +13 -9
  106. package/dist/{create-DCF2SvoT.js → create-_noSrY1T.js} +15 -21
  107. package/dist/{credential-BcoiejpY.js → credential-CyyyvCsL.js} +42 -39
  108. package/dist/{credentials-DPyHmYz5.js → credentials-CdDxp7jN.js} +6 -6
  109. package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-NB4wcyBf.js} +13 -2
  110. package/dist/{delegation-j6-rc37o.js → delegation-CDB6_keF.js} +31 -22
  111. package/dist/delivery/index.d.ts +5 -5
  112. package/dist/delivery/index.js +6 -5
  113. package/dist/{delivery-DCAgNyCn.js → delivery-BupfvJIV.js} +81 -20
  114. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  115. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  116. package/dist/{describe-BybMRY7A.js → describe-Bb4hGK5d.js} +6 -5
  117. package/dist/{describe-B5qgDvEW.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  118. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  119. package/dist/{diff-CmuSD3vc.js → diff-CN8IYhC_.js} +2 -2
  120. package/dist/{diff-3jbx6Rm4.js → diff-iZWV65nC.js} +23 -14
  121. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  122. package/dist/{doctor-BdZw53-k.js → doctor-CHD1M9R5.js} +485 -141
  123. package/dist/{doctor-3ZqNHX_G.js → doctor-D3wo-yuz.js} +4 -4
  124. package/dist/drizzle/index.d.ts +33 -19
  125. package/dist/drizzle/index.js +17 -9
  126. package/dist/elysia/index.d.ts +17 -11
  127. package/dist/elysia/index.js +5 -5
  128. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  129. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  130. package/dist/{errors-CWTY6uih.js → errors-Vpu6rKHl.js} +14 -10
  131. package/dist/{errors-DH5QEGXh.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  132. package/dist/{evaluate-CNClBvcj.js → evaluate-Dd8Ta0Ie.js} +185 -80
  133. package/dist/{evaluations-beAooV0n.js → evaluations-IBceAeKT.js} +41 -20
  134. package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-z8dQFDaN.d.ts} +12 -6
  135. package/dist/eve/index.d.ts +9 -6
  136. package/dist/eve/index.js +4 -4
  137. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  138. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  139. package/dist/express/index.d.ts +9 -6
  140. package/dist/express/index.js +9 -6
  141. package/dist/fastify/index.d.ts +16 -10
  142. package/dist/fastify/index.js +8 -5
  143. package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  144. package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-JL43jD3E.js} +14 -11
  145. package/dist/fields-D0vUI6dq.js +498 -0
  146. package/dist/{files-C5ZI27eV.js → files-B3AA05f1.js} +21 -5
  147. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  148. package/dist/{fixtures-B7XrLeY7.js → fixtures-A1_sp_tR.js} +15 -6
  149. package/dist/{flags-C3DktBDY.js → flags-DXjoTVbS.js} +2 -2
  150. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  151. package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-DCakWRsr.js} +26 -16
  152. package/dist/gen-B5kvbAoZ.js +58 -0
  153. package/dist/gen-DWCYcMQM.js +827 -0
  154. package/dist/generate-CRVV5V7l.js +165 -0
  155. package/dist/generate-CezbCaTI.js +275 -0
  156. package/dist/{grantee-hxrUsbpM.js → grantee-Dke-9rd1.js} +4 -4
  157. package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-BrYPe-w0.js} +12 -12
  158. package/dist/{grantee-match-DbENBHLB.js → grantee-match-7RZZvoT_.js} +12 -6
  159. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  160. package/dist/h3/index.d.ts +10 -7
  161. package/dist/h3/index.js +3 -3
  162. package/dist/headers-B9jQxjtW.d.ts +10 -0
  163. package/dist/{helpers-CBYVMjwh.js → helpers-DJicaG6f.js} +40 -28
  164. package/dist/hono/index.d.ts +16 -10
  165. package/dist/hono/index.js +5 -5
  166. package/dist/{hosted-BPk51-kX.d.ts → hosted-Cmtxogd0.d.ts} +44 -20
  167. package/dist/{hosted-B46-5LYE.js → hosted-D0IzESu_.js} +68 -25
  168. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  169. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  170. package/dist/{http-DXJ37RDA.js → http-DOL33cO0.js} +11 -8
  171. package/dist/{import-wyqXUyjm.js → import-CST57XLp.js} +64 -51
  172. package/dist/{import-CNV7I2Dw.js → import-_YqhhwvX.js} +6 -6
  173. package/dist/{index-B8YjkEZ4.d.ts → index-B8s204GL.d.ts} +64 -52
  174. package/dist/{index-Ch8LpNDp.d.ts → index-BT5-1VsX.d.ts} +64 -25
  175. package/dist/{index-DuWxc5dt.d.ts → index-BW_0MZOS.d.ts} +388 -149
  176. package/dist/index-BhxEUY9J.d.ts +233 -0
  177. package/dist/index-Bv5iXPqU.d.ts +210 -0
  178. package/dist/{index-C-6Letxg.d.ts → index-_9UiQIkt.d.ts} +164 -77
  179. package/dist/index.d.ts +22 -21
  180. package/dist/index.js +35 -33
  181. package/dist/{init-GG6Jh8HD.js → init-Dz_PsHdv.js} +5 -5
  182. package/dist/{init-DeMYsnYJ.js → init-cE3A8aXq.js} +10 -10
  183. package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  184. package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot--JWiTrvO.js} +81 -56
  185. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  186. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  187. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  188. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  189. package/dist/jwt/index.d.ts +125 -17
  190. package/dist/jwt/index.js +157 -16
  191. package/dist/{kernel-D0NVb1cK.js → kernel-C-fYydV2.js} +151 -16
  192. package/dist/kysely/index.d.ts +49 -33
  193. package/dist/kysely/index.js +9 -7
  194. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  195. package/dist/{load-DFS_ry0W.js → load-DjSU5KXO.js} +6 -6
  196. package/dist/load-Dm0pSYH3.js +1 -0
  197. package/dist/{login-Dfe5RlYk.js → login-D-8tMqzo.js} +4 -4
  198. package/dist/{login-imhuwvn3.js → login-DplQ0s84.js} +18 -15
  199. package/dist/{manifest-dvL2XEe1.js → manifest-Cgiq5oqc.js} +67 -37
  200. package/dist/{manifest-mx5ghSFM.d.ts → manifest-CzzWtnAb.d.ts} +144 -28
  201. package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-2r37XRhD.js} +80 -9
  202. package/dist/{manifest-C8IzW3Do.js → manifest-wg8WkkpD.js} +11 -7
  203. package/dist/{map-claims-D3oRmTk0.js → map-claims-BNWCJtmP.js} +27 -18
  204. package/dist/{map-error-Dr70oA_3.js → map-error-pasIGqMT.js} +7 -7
  205. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  206. package/dist/mcp/index.d.ts +154 -47
  207. package/dist/mcp/index.js +200 -41
  208. package/dist/{migrate-CIq4-E9F.js → migrate-B7oP_sQU.js} +102 -31
  209. package/dist/module-values-BJTBdo6y.js +107 -0
  210. package/dist/nest/index.d.ts +23 -13
  211. package/dist/nest/index.js +18 -11
  212. package/dist/next/client.d.ts +5 -2
  213. package/dist/next/client.js +1 -1
  214. package/dist/next/index.d.ts +72 -26
  215. package/dist/next/index.js +110 -6
  216. package/dist/next/plugin.d.ts +1 -1
  217. package/dist/next/plugin.js +4 -3
  218. package/dist/node/index.d.ts +5 -5
  219. package/dist/node/index.js +3 -3
  220. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  221. package/dist/openai/index.d.ts +13 -7
  222. package/dist/openai/index.js +3 -3
  223. package/dist/openapi/index.d.ts +61 -30
  224. package/dist/openapi/index.js +2 -2
  225. package/dist/{openapi-B7HZ0f-r.js → openapi-BOsx0xn9.js} +34 -24
  226. package/dist/{openapi-C4dDTVEd.js → openapi-CBZUhA3l.js} +4 -5
  227. package/dist/{openapi-DD1SV-5-.js → openapi-VeHHU2l9.js} +23 -14
  228. package/dist/{operation-findings-DgATDpvh.js → operation-findings-CXtFzlKJ.js} +3 -3
  229. package/dist/{operations-X0VM7F3m.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  230. package/dist/orpc/index.d.ts +68 -14
  231. package/dist/orpc/index.js +62 -13
  232. package/dist/otel/index.d.ts +7 -4
  233. package/dist/otel/index.js +8 -5
  234. package/dist/output-files-BHOIlrfD.js +1 -0
  235. package/dist/{output-files-DhRBBE4n.js → output-files-BIQ_9pIs.js} +29 -17
  236. package/dist/{output-1im__-08.js → output-tkju6U7R.js} +15 -7
  237. package/dist/ownership-B4L59T9u.js +1054 -0
  238. package/dist/parse-1_ZheTW5.js +151 -0
  239. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  240. package/dist/parse-local-manifest-DEiCF4ah.js +69 -0
  241. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  242. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  243. package/dist/pdp/index.d.ts +9 -6
  244. package/dist/pdp/index.js +23 -12
  245. package/dist/{peer-CRvC7Hg1.js → peer-C9LvBCcb.js} +1 -1
  246. package/dist/peer-Q0fuZ6hx.js +982 -0
  247. package/dist/{permdock-SV8ZINYT.d.ts → permdock-B6Sf4T_S.d.ts} +270 -117
  248. package/dist/{permdock-BrAscV28.js → permdock-L-_I_3zP.js} +226 -74
  249. package/dist/{permission-registry-Br4jSNVi.js → permission-registry-B8tYxPIt.js} +24 -11
  250. package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-CAY-GU7e.d.ts} +130 -104
  251. package/dist/{permissions-u_KHg-sN.d.ts → permissions-Bx6UI8n1.d.ts} +6 -2
  252. package/dist/{permissions-B-wCP5ZC.js → permissions-CVXmRILq.js} +3 -3
  253. package/dist/{permissions-BPxlwVhN.js → permissions-mDcTWoBs.js} +8 -5
  254. package/dist/pg-DQTqRrou.js +60 -0
  255. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  256. package/dist/pkce-CnmmYqUZ.js +21 -0
  257. package/dist/{policy-77FSAq_V.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  258. package/dist/{policy-DbM5YYtV.js → policy-CLQ8__GF.js} +49 -20
  259. package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  260. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  261. package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-CCiDRZBH.d.ts} +802 -334
  262. package/dist/postgres-store-DcyrPS-r.js +1028 -0
  263. package/dist/{postgrest-DAjUkF9w.js → postgrest-D4nuPXIQ.js} +88 -36
  264. package/dist/{postgrest-CEgRbefE.d.ts → postgrest-DicQyqm-.d.ts} +60 -30
  265. package/dist/powersync-DHNQX06W.js +1117 -0
  266. package/dist/{powersync-DISt6SUe.js → powersync-DXqGuq9A.js} +3 -3
  267. package/dist/powersync-Djf-zCpB.js +1 -0
  268. package/dist/preset/index.d.ts +38 -28
  269. package/dist/preset/index.js +1 -1
  270. package/dist/{preset-DZdU0tne.js → preset-BjLzeFpp.js} +58 -34
  271. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  272. package/dist/prisma/index.d.ts +69 -41
  273. package/dist/prisma/index.js +21 -17
  274. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  275. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  276. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  277. package/dist/prompt-BYc6drYW.js +938 -0
  278. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  279. package/dist/protected-action-DUYqb-Ma.js +80 -0
  280. package/dist/{protected-BlF0F6wL.js → protected-action-QEA8arRB.js} +48 -14
  281. package/dist/{provider-B1al-AZz.js → provider-C55OGXJ7.js} +5 -4
  282. package/dist/{provider-DILL9oPK.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  283. package/dist/{provider-store-DM6DNcta.js → provider-store-CaTv00tr.js} +13 -9
  284. package/dist/pull-B65ndFNZ.js +1 -0
  285. package/dist/{pull-jEwbf80J.js → pull-CwpGaQSi.js} +12 -11
  286. package/dist/{push-BD4f15co.js → push-DgssgzkK.js} +62 -16
  287. package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  288. package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-ITwYKvvH.js} +10 -7
  289. package/dist/react/index.d.ts +9 -8
  290. package/dist/react/index.js +7 -6
  291. package/dist/react/provider-client.d.ts +1 -1
  292. package/dist/react/provider-client.js +1 -1
  293. package/dist/react-native/index.d.ts +104 -51
  294. package/dist/react-native/index.js +394 -67
  295. package/dist/{refs-K6eWUJ0H.js → refs-C8BKxc_e.js} +17 -3
  296. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  297. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  298. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  299. package/dist/{replay-Bkm-Ne4l.d.ts → replay-DNftIb_R.d.ts} +1 -1
  300. package/dist/{request-context-C81Pip9n.js → request-context-C25ilqiJ.js} +8 -8
  301. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  302. package/dist/resend/index.d.ts +34 -28
  303. package/dist/resend/index.js +29 -29
  304. package/dist/resolve-names-CF7xXLSG.js +201 -0
  305. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  306. package/dist/{retire-CALjIQ7e.js → retire-B2xffQgY.js} +15 -6
  307. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  308. package/dist/{rls-DTvYd-lI.js → rls-CNEH2_BG.js} +743 -624
  309. package/dist/{rls-BAqP4q66.js → rls-Ca8Jz9b5.js} +41 -10
  310. package/dist/{role-builder-uWQZ4v84.js → role-builder-BK2-T6oD.js} +41 -20
  311. package/dist/rolldown-runtime-C3I60J0A.js +4 -0
  312. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  313. package/dist/{rpc-VSl5ylaQ.js → rpc-fNqAIqQk.js} +8 -5
  314. package/dist/{run-CUKuz0A8.js → run-Bz26OTfO.js} +26 -23
  315. package/dist/run-D-JE8QWb.js +1 -0
  316. package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-DbWI9f99.d.ts} +33 -13
  317. package/dist/{run-ticket-sxFI6LAk.js → run-ticket-Dv7aF7Dk.js} +29 -8
  318. package/dist/{runtime-D3VTAiCA.js → runtime-BGnrOkVH.js} +5 -2
  319. package/dist/{saas-BCXRuXca.js → saas-iWnUdwCt.js} +42 -29
  320. package/dist/{scan-qvOe0hS3.js → scan-DCj1KQfn.js} +1 -1
  321. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  322. package/dist/{schema-yLuBWWsh.js → schema-Dst9I9Gs.js} +9 -5
  323. package/dist/scim/index.d.ts +3 -2
  324. package/dist/scim/index.js +3 -1
  325. package/dist/scim-D8YupzX1.js +44 -0
  326. package/dist/{scim-ClHtpyV3.js → scim-jJBJ7g1Z.js} +35 -551
  327. package/dist/{scopes-CUPSjo9q.js → scopes-0Up_UA2t.js} +42 -24
  328. package/dist/server/index.d.ts +12 -12
  329. package/dist/server/index.js +13 -13
  330. package/dist/{server-C3WXAHZj.js → server-3cVlTLde.js} +31 -31
  331. package/dist/{server-types-CKQiCnON.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  332. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  333. package/dist/{shared-BAK8t4Uo.js → shared-Afctg7B0.js} +100 -61
  334. package/dist/{shared-DvvFzYXe.js → shared-l0oGGetg.js} +9 -6
  335. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  336. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  337. package/dist/{sink-4-eQIRWf.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  338. package/dist/{skills-B6lVdD_W.js → skills-Bjj7BNEQ.js} +16 -12
  339. package/dist/{skills-CTYwkl44.js → skills-OuoMR49L.js} +3 -3
  340. package/dist/{snapshot-B7DkYg6g.js → snapshot-CXlzi69u.js} +21 -18
  341. package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  342. package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  343. package/dist/solid/index.d.ts +55 -15
  344. package/dist/solid/index.js +46 -12
  345. package/dist/solid-start/index.d.ts +30 -12
  346. package/dist/solid-start/index.js +3 -3
  347. package/dist/sources-B1Os_YUu.d.ts +312 -0
  348. package/dist/{sources-vs5dGOsS.js → sources-CMAM-2A3.js} +156 -51
  349. package/dist/sources-qoIJQrJv.js +11 -0
  350. package/dist/{sql-B5T1IL83.js → sql-0WjxIp9g.js} +32 -7
  351. package/dist/sql-B80DFdpG.d.ts +10 -0
  352. package/dist/{src-Cu2m75uo.js → src-DZ0l9UAg.js} +305 -123
  353. package/dist/ssf/index.d.ts +4 -4
  354. package/dist/ssf/index.js +665 -224
  355. package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  356. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  357. package/dist/{store-BDutJkDL.js → store-RNFvaJJv.js} +43 -29
  358. package/dist/{store-options-u0ycEe8s.js → store-options-Dil3lraY.js} +105 -15
  359. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  360. package/dist/{stores-CGhM8BN_.js → stores-DxZWDXCs.js} +42 -5
  361. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  362. package/dist/{stream-CeCMJmBB.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  363. package/dist/{style-DiKWnAvn.js → style-DblOtSga.js} +1 -1
  364. package/dist/{style-Uao76wO7.js → style-Ds11Hmk4.js} +3 -1
  365. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  366. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  367. package/dist/supabase/index.d.ts +48 -37
  368. package/dist/supabase/index.js +6 -6
  369. package/dist/supabase/middleware.d.ts +19 -13
  370. package/dist/supabase/middleware.js +7 -7
  371. package/dist/{supabase-x5JtR2tc.js → supabase-BL1qJzzY.js} +82 -36
  372. package/dist/{supabase-By_frk3U.js → supabase-D39cuGPt.js} +3 -3
  373. package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-B-yXnzUl.js} +1206 -286
  374. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  375. package/dist/supautils-BU-pAEpf.js +808 -0
  376. package/dist/{support-session-C6xJQYut.js → support-session-BsmPCbz8.js} +22 -22
  377. package/dist/svelte/PermissionBoundary.svelte +2 -6
  378. package/dist/svelte/Protected.svelte +2 -8
  379. package/dist/svelte/index.d.ts +9 -8
  380. package/dist/svelte/index.js +10 -9
  381. package/dist/svelte/runtime.d.ts +4 -4
  382. package/dist/svelte/runtime.js +4 -4
  383. package/dist/svelte/source.d.ts +9 -8
  384. package/dist/svelte/source.js +6 -5
  385. package/dist/sveltekit/index.d.ts +30 -12
  386. package/dist/sveltekit/index.js +2 -2
  387. package/dist/{ownership-DqaJNJPn.js → tables-DeMNEy6V.js} +1025 -1085
  388. package/dist/tanstack-start/index.d.ts +22 -10
  389. package/dist/tanstack-start/index.js +2 -2
  390. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  391. package/dist/{tenancy-DN2QAx9z.js → tenancy-5d1zVBvK.js} +36 -21
  392. package/dist/terminal/index.d.ts +23 -14
  393. package/dist/terminal/index.js +17 -20
  394. package/dist/testing/core.d.ts +2 -0
  395. package/dist/testing/core.js +1 -0
  396. package/dist/testing/fixtures/index.d.ts +15 -0
  397. package/dist/testing/fixtures/index.js +831 -0
  398. package/dist/testing/index.d.ts +235 -285
  399. package/dist/testing/index.js +502 -927
  400. package/dist/testing/saas/index.d.ts +43 -27
  401. package/dist/testing/saas/index.js +2 -2
  402. package/dist/testing/saas/permissions.d.ts +1 -1
  403. package/dist/testing/saas/permissions.js +1 -1
  404. package/dist/text-diff-BtfSmdUo.js +444 -0
  405. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  406. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  407. package/dist/{token-BLZcjQgt.js → token-DC9EQiet.js} +15 -13
  408. package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-Qpjs_W6M.js} +5 -2
  409. package/dist/trpc/index.d.ts +11 -8
  410. package/dist/trpc/index.js +15 -9
  411. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  412. package/dist/{types-8RnwUAvE.d.ts → types-AMJ5qoU_.d.ts} +49 -30
  413. package/dist/{types-C_IiEs64.d.ts → types-B2mlGuhW.d.ts} +14 -11
  414. package/dist/{types-_WhUP7ud.d.ts → types-B4uqKDnp.d.ts} +25 -12
  415. package/dist/{types-CX7AvRqP.d.ts → types-BJk0BKRX.d.ts} +24 -14
  416. package/dist/types-B_d_g7T3.d.ts +262 -0
  417. package/dist/{types-BdtSDbBO.d.ts → types-B_tiYvk8.d.ts} +59 -32
  418. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  419. package/dist/{types-Dfv0aTER.d.ts → types-DC1Loeh3.d.ts} +449 -168
  420. package/dist/{types-lUlG3TVd.d.ts → types-DHKPcqzr.d.ts} +2 -2
  421. package/dist/{types-C791HFu9.d.ts → types-DjuMBNF9.d.ts} +68 -32
  422. package/dist/{types-C863OQiR.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  423. package/dist/{types-Druu9wLM.d.ts → types-ZzRGoViD.d.ts} +77 -24
  424. package/dist/{types-BzzaHxt3.d.ts → types-ah9NlU6j.d.ts} +137 -48
  425. package/dist/{types-CVZSNocA.d.ts → types-djVzLlIV.d.ts} +31 -14
  426. package/dist/{types-BtHtcKMr.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  427. package/dist/unplugin/index.d.ts +1 -1
  428. package/dist/unplugin/index.js +2 -2
  429. package/dist/usage-CYeXek0p.js +1 -0
  430. package/dist/{usage-SveTRTyr.js → usage-CxEzS4ey.js} +50 -26
  431. package/dist/{usage-CRVl9V3t.js → usage-ab0PdusX.js} +2 -2
  432. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  433. package/dist/{validation-error-DHUrAkku.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  434. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  435. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  436. package/dist/{verify-BaAKx7t6.js → verify-DZeqoWu5.js} +417 -489
  437. package/dist/version-DMQ0dnN5.js +48 -0
  438. package/dist/version-DizhmD72.js +1 -0
  439. package/dist/{views-DTIIO-oQ.js → views-CD8wuL4Z.js} +19 -6
  440. package/dist/vocabulary-DEJ5j4mR.d.ts +70 -0
  441. package/dist/vue/index.d.ts +71 -21
  442. package/dist/vue/index.js +50 -13
  443. package/dist/{waiter-B986w1oK.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  444. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  445. package/dist/{watch-vea54PRw.js → watch-Cx_WciLE.js} +8 -8
  446. package/dist/watch-DB42U1ib.js +1 -0
  447. package/dist/webmcp/index.d.ts +11 -11
  448. package/dist/webmcp/index.js +8 -5
  449. package/dist/{where-scope-C9vfEphl.js → where-scope-DlCdCM_8.js} +56 -30
  450. package/dist/{who-can-DWBAcaCQ.js → who-can-rI7dCR9Q.js} +23 -20
  451. package/dist/workflow/index.d.ts +3 -3
  452. package/dist/workflow/index.js +13 -13
  453. package/dist/workflow-sdk/index.d.ts +19 -13
  454. package/dist/workflow-sdk/index.js +6 -6
  455. package/dist/{wrap-gX61EtpB.js → wrap-B2wziJI_.js} +11 -5
  456. package/dist/{wrap-C5jC6sKI.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  457. package/package.json +25 -14
  458. package/schemas/catalog-v1.json +3 -0
  459. package/schemas/cli-result-v1.json +1 -0
  460. package/schemas/cloud-api-v1.json +152 -7
  461. package/schemas/connector-v1.json +8 -0
  462. package/schemas/supabase-claims-v1.json +5 -0
  463. package/schemas/supabase-manifest-v1.json +308 -75
  464. package/skills/permdock/SKILL.md +1 -0
  465. package/skills/permdock-agents/references/runtimes.md +3 -1
  466. package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
  467. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  468. package/skills/permdock-data/references/queries-and-rls.md +6 -2
  469. package/skills/permdock-tenancy/SKILL.md +1 -1
  470. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -1
  471. package/skills/permdock-wire/references/adapters.md +28 -22
  472. package/skills/permdock-wire/references/policy-options.md +1 -0
  473. package/dist/catalog-BoWglDPI.js +0 -1
  474. package/dist/collect-D7eQDffE.js +0 -1
  475. package/dist/config-bs_kZeYq.js +0 -162
  476. package/dist/denied-text-CiFQNuMV.d.ts +0 -19
  477. package/dist/fields-OYG_JR78.js +0 -203
  478. package/dist/generate-CNU1pIOo.js +0 -171
  479. package/dist/headers-BIjfMaoC.js +0 -8
  480. package/dist/headers-CIbDTUTK.d.ts +0 -7
  481. package/dist/index-Cp_ilKi1.d.ts +0 -91
  482. package/dist/index-CueFnxQc.d.ts +0 -110
  483. package/dist/load-BxEtwlBS.js +0 -1
  484. package/dist/output-files-B3IZJksC.js +0 -1
  485. package/dist/package-root-Dk_ETdkp.js +0 -31
  486. package/dist/parse-Cxq0WxrA.js +0 -53
  487. package/dist/parse-local-manifest-5ODwqu8b.d.ts +0 -10
  488. package/dist/parse-local-manifest-CVSs6J9I.js +0 -34
  489. package/dist/peer-C8swJ2GH.js +0 -50
  490. package/dist/policies-DP2nqRoF.js +0 -295
  491. package/dist/powersync-BkWWCS1K.js +0 -538
  492. package/dist/powersync-MMJ2mI2q.js +0 -1
  493. package/dist/problem-details-B45V5d2b.d.ts +0 -7
  494. package/dist/prompt-DfZLJLIn.js +0 -32
  495. package/dist/protected-RFGpakN9.d.ts +0 -38
  496. package/dist/pull-CvpINcMK.js +0 -1
  497. package/dist/run-DDwUaJDU.js +0 -1
  498. package/dist/sources-Xc4zkszI.d.ts +0 -190
  499. package/dist/stores-BUGNbJTt.d.ts +0 -30
  500. package/dist/supabase-hook-CCw5m35C.js +0 -1
  501. package/dist/supautils-B6HYL9eL.js +0 -91
  502. package/dist/text-diff-BQcUapOb.js +0 -15
  503. package/dist/types-B3_ooZgZ.d.ts +0 -172
  504. package/dist/usage-CZpSQP6L.js +0 -1
  505. package/dist/version-CEbQ5UeM.js +0 -18
  506. package/dist/version-DXkYUISx.js +0 -1
  507. package/dist/watch--ovlPOc0.js +0 -1
@@ -1,12 +1,15 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
- import { t as freezeCopy } from "./freeze-CrU8nQeX.js";
3
- import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
4
- import { i as idText, n as expirySeconds } from "./expiry-D4_YKRKD.js";
5
- import { i as readAppData } from "./app-data-MuyzVqX8.js";
2
+ import { t as freezeCopy } from "./freeze-jjan0lCv.js";
3
+ import { n as isForbiddenKey } from "./paths-CUvURzHp.js";
4
+ import { i as idText, n as expirySeconds } from "./expiry-6XByK0dm.js";
5
+ import { i as readAppData } from "./app-data-UNNm07jV.js";
6
6
  //#region src/core/scopes.ts
7
7
  const RESERVED = /* @__PURE__ */ new Set(["global", "resource"]);
8
8
  const NAME = /^[a-z][a-z0-9_]*$/u;
9
- /** A policy without `scopes` keeps the historical pair: `tenant`, and `team` inside it. */
9
+ /**
10
+ * A policy without `scopes` keeps the historical pair: `tenant`, and `team`
11
+ * inside it.
12
+ */
10
13
  const IMPLICIT = Object.freeze([Object.freeze({ name: "tenant" }), Object.freeze({
11
14
  name: "team",
12
15
  within: "tenant"
@@ -17,9 +20,9 @@ function fail(message) {
17
20
  /**
18
21
  * Validates `definePolicy({ scopes })`. Declaration order is the scope order;
19
22
  * every scope after the first names an earlier one in `within`, so the scopes
20
- * form one tree rooted at the first and have no cycles.
21
- * A scope named `tenant` is the first and `team` the second, so the aliases
22
- * never point at two different scopes.
23
+ * form one tree rooted at the first and have no cycles. A scope named `tenant`
24
+ * is the first and `team` the second, so the aliases never point at two
25
+ * different scopes.
23
26
  */
24
27
  function defineScopes(input) {
25
28
  if (input === void 0) return Object.freeze([]);
@@ -49,7 +52,10 @@ function defineScopes(input) {
49
52
  }
50
53
  return Object.freeze(out);
51
54
  }
52
- /** The scopes a policy or snapshot evaluates with: the declared list, or the implicit pair. */
55
+ /**
56
+ * The scopes a policy or snapshot evaluates with: the declared list, or the
57
+ * implicit pair.
58
+ */
53
59
  function scopeList(declared) {
54
60
  return declared === void 0 || declared.length === 0 ? IMPLICIT : declared;
55
61
  }
@@ -77,7 +83,10 @@ function scopeChain(scopes, name) {
77
83
  function rootScope(scopes) {
78
84
  return scopes[0]?.name;
79
85
  }
80
- /** The id a membership holds for `scope`: its own id, or the `within` entry of an ancestor. */
86
+ /**
87
+ * The id a membership holds for `scope`: its own id, or the `within` entry of
88
+ * an ancestor.
89
+ */
81
90
  function scopeIdOf(membership, scope) {
82
91
  if (membership.scope === scope) return membership.id;
83
92
  const within = membership.within;
@@ -85,19 +94,25 @@ function scopeIdOf(membership, scope) {
85
94
  return within[scope];
86
95
  }
87
96
  /**
88
- * A membership of the first scope itself (the only scope without a parent):
89
- * its id is a tenant. Needs no scope list, for code that holds only a subject.
97
+ * A membership of the first scope itself (the only scope without a parent): its
98
+ * id is a tenant. Needs no scope list, for code that holds only a subject.
90
99
  */
91
100
  function rootMembershipId(membership) {
92
101
  if (membership.scope !== void 0) return membership.within === void 0 ? membership.id : void 0;
93
102
  return membership.team === void 0 ? membership.tenant : void 0;
94
103
  }
95
- /** The instance of the first scope a membership sits in; what the active tenant selects. */
104
+ /**
105
+ * The instance of the first scope a membership sits in; what the active tenant
106
+ * selects.
107
+ */
96
108
  function tenantOf(membership, scopes) {
97
109
  const root = rootScope(scopes);
98
110
  return root === void 0 ? void 0 : scopeIdOf(membership, root);
99
111
  }
100
- /** A non-empty string. Unlike `isId` in `./ids.ts` it has no length cap: membership fields come from the app, not the wire. */
112
+ /**
113
+ * A non-empty string. Unlike `isId` in `./ids.ts` it has no length cap:
114
+ * membership fields come from the app, not the wire.
115
+ */
101
116
  function isNonEmptyString(value) {
102
117
  return typeof value === "string" && value !== "";
103
118
  }
@@ -107,10 +122,10 @@ function roleList(value) {
107
122
  }
108
123
  /**
109
124
  * The canonical form of one membership, or `undefined` when it is malformed
110
- * (fail-closed: it grants nothing). A named membership is
111
- * `{ scope, id, within }` with one `within` entry per ancestor of `scope`;
112
- * the `tenant` / `team` input shape and alias names normalise to it. A
113
- * resource membership keeps `on`. Shapes are exclusive.
125
+ * (fail-closed: it grants nothing). A named membership is `{ scope, id, within
126
+ * }` with one `within` entry per ancestor of `scope`; the `tenant` / `team`
127
+ * input shape and alias names normalise to it. A resource membership keeps
128
+ * `on`. Shapes are exclusive.
114
129
  */
115
130
  function normalizeMembership(input, scopes) {
116
131
  if (input === null || typeof input !== "object" || Array.isArray(input)) return;
@@ -212,8 +227,8 @@ function normalizeMemberships(input, scopes) {
212
227
  }
213
228
  /**
214
229
  * A subject's memberships in canonical form. Resolved subjects already are;
215
- * this accepts a hand-built subject passed straight to a condition evaluator
216
- * or compiler.
230
+ * this accepts a hand-built subject passed straight to a condition evaluator or
231
+ * compiler.
217
232
  */
218
233
  function subjectMemberships(memberships, scopes) {
219
234
  const list = memberships ?? [];
@@ -228,13 +243,16 @@ function activeFor(membership, scopes, active) {
228
243
  if (root === void 0 || membership.scope === void 0 || !scopeChain(scopes, membership.scope).includes(root)) return true;
229
244
  return active !== void 0 && scopeIdOf(membership, root) === active;
230
245
  }
231
- /** Whether `membership` counts for `key`: always, unless a suspension limits it to `keep`. */
246
+ /**
247
+ * Whether `membership` counts for `key`: always, unless a suspension limits it
248
+ * to `keep`.
249
+ */
232
250
  function keepsPermission(membership, key) {
233
251
  return membership.keep === void 0 || membership.keep.includes(key);
234
252
  }
235
253
  /**
236
- * The subject as it stands for one permission: memberships a suspension
237
- * limits to other permissions are left out. The same object when none is.
254
+ * The subject as it stands for one permission: memberships a suspension limits
255
+ * to other permissions are left out. The same object when none is.
238
256
  */
239
257
  function subjectForPermission(subject, key) {
240
258
  const principal = subject.principal;
@@ -249,4 +267,4 @@ function subjectForPermission(subject, key) {
249
267
  };
250
268
  }
251
269
  //#endregion
252
- export { normalizeMemberships as a, rootScope as c, scopeList as d, subjectForPermission as f, keepsPermission as i, scopeChain as l, tenantOf as m, defineScopes as n, resolveScope as o, subjectMemberships as p, findScope as r, rootMembershipId as s, activeFor as t, scopeIdOf as u };
270
+ export { normalizeMembership as a, rootMembershipId as c, scopeIdOf as d, scopeList as f, tenantOf as h, keepsPermission as i, rootScope as l, subjectMemberships as m, defineScopes as n, normalizeMemberships as o, subjectForPermission as p, findScope as r, resolveScope as s, activeFor as t, scopeChain as u };
@@ -1,13 +1,13 @@
1
- import { n as PermDockValidationError, t as PROBLEM_BASE } from "../validation-error-DHUrAkku.js";
2
- import { i as PermDockRevokedError, n as PermDockApprovalRequiredError, r as PermDockDeniedError, t as ApprovalHint } from "../errors-DH5QEGXh.js";
1
+ import { n as PermDockValidationError, t as PROBLEM_BASE } from "../validation-error-YGg2mXyH.js";
2
+ import { i as PermDockRevokedError, n as PermDockApprovalRequiredError, r as PermDockDeniedError, t as ApprovalHint } from "../errors-zi_4T-rx.js";
3
3
  import { t as RequestContext } from "../request-context-C2_1lchh.js";
4
- import { i as memoryRevocationFeed, n as RevocationFeed, t as RevocationEvent } from "../revocations-R07lFBnX.js";
5
- import { C as TenantScope, D as ConnectionOptions, E as ConnectionData, S as TenantOption, T as Connection, _ as WebBotAuthVerifier, a as OperationScopes, b as invalidSignatureResponse, c as ServerPermDock, d as DiscoverViaSignatureAgentOptions, f as InvalidSignatureError, g as WebBotAuthOptions, h as WebBotAuthKeys, i as OpenApiHooks, l as ServerPermDockOptions, m as WebBotAuthKeyLookup, n as DeniedResponseEvent, o as ProtectOptions, p as WebBotAuthJwk, r as Guard, s as ScopeGuard, t as DeniedResponse, u as SnapshotQuery, v as discoverViaSignatureAgent, w as tenantScope, x as webBotAuthVerifier, y as invalidSignatureProblem } from "../server-types-CKQiCnON.js";
6
- import { i as evaluationsHandler } from "../evaluations-C_1vdSZc.js";
7
- import { C as subjectFromApiKey, E as createPermDock, S as parseFeedKey, T as problemFromError, _ as generateApiKey, a as SupportSessionContext, b as memoryCredentialStore, c as SupportSessionSubjectOptions, d as ApiKeyFailureCause, f as ApiKeyParts, g as apiKeyVerifier, h as StoredCredential, i as wwwAuthenticate, l as signSupportSession, m as MemoryCredentialStore, n as problemResponse, o as SupportSessionFailureCause, p as ApiKeySubjectOptions, r as validationProblem, s as SupportSessionSource, t as problemFromDecision, u as subjectFromSupportSession, v as generateFeedKey, w as ProblemFromErrorOptions, x as parseApiKey, y as hashApiKey } from "../index-B8YjkEZ4.js";
8
- import { l as ReplayStore } from "../types-C791HFu9.js";
9
- import { a as WebhookInput, c as WebhookMessage, d as WebhookSigningKey, f as WebhookVerifier, h as webhookVerifier, i as WebhookHeaders, l as WebhookSigner, m as webhookSigner, n as WebhookAlgorithm, o as WebhookJwk, p as WebhookVerifierOptions, r as WebhookFailureCause, s as WebhookJwks, t as VerifiedWebhookMessage, u as WebhookSignerOptions } from "../standard-webhooks-rbD7LS6h.js";
10
- import { t as memoryReplayStore } from "../replay-Bkm-Ne4l.js";
11
- import { a as snapshotHeaders, i as cacheLifeFor, n as SnapshotHeaders, o as snapshotTag, r as SnapshotHeadersOptions, t as CacheLifeForOptions } from "../snapshot-cache-PXI-vGpY.js";
12
- import { a as RunKind, c as RunTicketAutomations, d as RunTicketOptions, f as RunTicketSubjectOptions, h as subjectFromRunTicket, i as RunContext, l as RunTicketFailureCause, m as signRunTicket, n as RunAutomation, o as RunPrincipal, p as parseRunTicket, r as RunBinding, s as RunTicket, t as RunActClaim, u as RunTicketInput } from "../run-ticket-DocwaTKn.js";
13
- export { type ApiKeyFailureCause, type ApiKeyParts, type ApiKeySubjectOptions, type ApprovalHint, type CacheLifeForOptions, type Connection, type ConnectionData, type ConnectionOptions, type DeniedResponse, type DeniedResponseEvent, type DiscoverViaSignatureAgentOptions, type Guard, InvalidSignatureError, type MemoryCredentialStore, type OpenApiHooks, type OperationScopes, PROBLEM_BASE, PermDockApprovalRequiredError, PermDockDeniedError, PermDockRevokedError, PermDockValidationError, type ProblemFromErrorOptions, type ProtectOptions, type ReplayStore, type RequestContext, type RevocationEvent, type RevocationFeed, type RunActClaim, type RunAutomation, type RunBinding, type RunContext, type RunKind, type RunPrincipal, type RunTicket, type RunTicketAutomations, type RunTicketFailureCause, type RunTicketInput, type RunTicketOptions, type RunTicketSubjectOptions, type ScopeGuard, type ServerPermDock, type ServerPermDockOptions, type SnapshotHeaders, type SnapshotHeadersOptions, type SnapshotQuery, type StoredCredential, type SupportSessionContext, type SupportSessionFailureCause, type SupportSessionSource, type SupportSessionSubjectOptions, type TenantOption, type TenantScope, type VerifiedWebhookMessage, type WebBotAuthJwk, type WebBotAuthKeyLookup, type WebBotAuthKeys, type WebBotAuthOptions, type WebBotAuthVerifier, type WebhookAlgorithm, type WebhookFailureCause, type WebhookHeaders, type WebhookInput, type WebhookJwk, type WebhookJwks, type WebhookMessage, type WebhookSigner, type WebhookSignerOptions, type WebhookSigningKey, type WebhookVerifier, type WebhookVerifierOptions, apiKeyVerifier, cacheLifeFor, createPermDock, discoverViaSignatureAgent, evaluationsHandler, generateApiKey, generateFeedKey, hashApiKey, invalidSignatureProblem, invalidSignatureResponse, memoryCredentialStore, memoryReplayStore, memoryRevocationFeed, parseApiKey, parseFeedKey, parseRunTicket, problemFromDecision, problemFromError, problemResponse, signRunTicket, signSupportSession, snapshotHeaders, snapshotTag, subjectFromApiKey, subjectFromRunTicket, subjectFromSupportSession, tenantScope, validationProblem, webBotAuthVerifier, webhookSigner, webhookVerifier, wwwAuthenticate };
4
+ import { i as memoryRevocationFeed, n as RevocationFeed, t as RevocationEvent } from "../revocations-BaUXHM1N.js";
5
+ import { C as TenantScope, D as ConnectionOptions, E as ConnectionData, S as TenantOption, T as Connection, _ as WebBotAuthVerifier, a as OperationScopes, b as invalidSignatureResponse, c as ServerPermDock, d as DiscoverViaSignatureAgentOptions, f as InvalidSignatureError, g as WebBotAuthOptions, h as WebBotAuthKeys, i as OpenApiHooks, l as ServerPermDockOptions, m as WebBotAuthKeyLookup, n as DeniedResponseEvent, o as ProtectOptions, p as WebBotAuthJwk, r as Guard, s as ScopeGuard, t as DeniedResponse, u as SnapshotQuery, v as discoverViaSignatureAgent, w as tenantScope, x as webBotAuthVerifier, y as invalidSignatureProblem } from "../server-types-CIlpSA2G.js";
6
+ import { i as evaluationsHandler } from "../evaluations-z8dQFDaN.js";
7
+ import { C as subjectFromApiKey, E as createPermDock, S as parseFeedKey, T as problemFromError, _ as generateApiKey, a as SupportSessionContext, b as memoryCredentialStore, c as SupportSessionSubjectOptions, d as ApiKeyFailureCause, f as ApiKeyParts, g as apiKeyVerifier, h as StoredCredential, i as wwwAuthenticate, l as signSupportSession, m as MemoryCredentialStore, n as problemResponse, o as SupportSessionFailureCause, p as ApiKeySubjectOptions, r as validationProblem, s as SupportSessionSource, t as problemFromDecision, u as subjectFromSupportSession, v as generateFeedKey, w as ProblemFromErrorOptions, x as parseApiKey, y as hashApiKey } from "../index-B8s204GL.js";
8
+ import { l as ReplayStore } from "../types-DjuMBNF9.js";
9
+ import { a as WebhookInput, c as WebhookMessage, d as WebhookSigningKey, f as WebhookVerifier, h as webhookVerifier, i as WebhookHeaders, l as WebhookSigner, m as webhookSigner, n as WebhookAlgorithm, o as WebhookJwk, p as WebhookVerifierOptions, r as WebhookFailureCause, s as WebhookJwks, t as VerifiedWebhookMessage, u as WebhookSignerOptions } from "../standard-webhooks-C-qX4mJW.js";
10
+ import { t as memoryReplayStore } from "../replay-DNftIb_R.js";
11
+ import { a as snapshotHeaders, i as cacheLifeFor, n as SnapshotHeaders, o as snapshotTag, r as SnapshotHeadersOptions, t as CacheLifeForOptions } from "../snapshot-cache-BAXZ0KOp.js";
12
+ import { a as RunContext, c as RunTicket, d as RunTicketInput, f as RunTicketOptions, g as subjectFromRunTicket, h as signRunTicket, i as RunBinding, l as RunTicketAutomations, m as parseRunTicket, n as RunActClaim, o as RunKind, p as RunTicketSubjectOptions, r as RunAutomation, s as RunPrincipal, t as RUN_TICKET_CLAIMS, u as RunTicketFailureCause } from "../run-ticket-DbWI9f99.js";
13
+ export { type ApiKeyFailureCause, type ApiKeyParts, type ApiKeySubjectOptions, type ApprovalHint, type CacheLifeForOptions, type Connection, type ConnectionData, type ConnectionOptions, type DeniedResponse, type DeniedResponseEvent, type DiscoverViaSignatureAgentOptions, type Guard, InvalidSignatureError, type MemoryCredentialStore, type OpenApiHooks, type OperationScopes, PROBLEM_BASE, PermDockApprovalRequiredError, PermDockDeniedError, PermDockRevokedError, PermDockValidationError, type ProblemFromErrorOptions, type ProtectOptions, RUN_TICKET_CLAIMS, type ReplayStore, type RequestContext, type RevocationEvent, type RevocationFeed, type RunActClaim, type RunAutomation, type RunBinding, type RunContext, type RunKind, type RunPrincipal, type RunTicket, type RunTicketAutomations, type RunTicketFailureCause, type RunTicketInput, type RunTicketOptions, type RunTicketSubjectOptions, type ScopeGuard, type ServerPermDock, type ServerPermDockOptions, type SnapshotHeaders, type SnapshotHeadersOptions, type SnapshotQuery, type StoredCredential, type SupportSessionContext, type SupportSessionFailureCause, type SupportSessionSource, type SupportSessionSubjectOptions, type TenantOption, type TenantScope, type VerifiedWebhookMessage, type WebBotAuthJwk, type WebBotAuthKeyLookup, type WebBotAuthKeys, type WebBotAuthOptions, type WebBotAuthVerifier, type WebhookAlgorithm, type WebhookFailureCause, type WebhookHeaders, type WebhookInput, type WebhookJwk, type WebhookJwks, type WebhookMessage, type WebhookSigner, type WebhookSignerOptions, type WebhookSigningKey, type WebhookVerifier, type WebhookVerifierOptions, apiKeyVerifier, cacheLifeFor, createPermDock, discoverViaSignatureAgent, evaluationsHandler, generateApiKey, generateFeedKey, hashApiKey, invalidSignatureProblem, invalidSignatureResponse, memoryCredentialStore, memoryReplayStore, memoryRevocationFeed, parseApiKey, parseFeedKey, parseRunTicket, problemFromDecision, problemFromError, problemResponse, signRunTicket, signSupportSession, snapshotHeaders, snapshotTag, subjectFromApiKey, subjectFromRunTicket, subjectFromSupportSession, tenantScope, validationProblem, webBotAuthVerifier, webhookSigner, webhookVerifier, wwwAuthenticate };
@@ -1,14 +1,14 @@
1
- import { n as PermDockValidationError, t as PROBLEM_BASE } from "../validation-error-ZfUHbKvf.js";
2
- import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "../errors-BKy0EfhN.js";
1
+ import { n as PermDockValidationError, t as PROBLEM_BASE } from "../validation-error-CYg2kJEw.js";
2
+ import { n as PermDockDeniedError, r as PermDockRevokedError, t as PermDockApprovalRequiredError } from "../errors-B6R_lg2a.js";
3
3
  import { t as memoryRevocationFeed } from "../revocations-Bhr0aMIC.js";
4
- import { c as problemResponse, d as validationProblem, f as wwwAuthenticate, s as problemFromDecision } from "../problem-CTviyH5L.js";
5
- import { t as memoryReplayStore } from "../replay-Du1tJjG7.js";
6
- import { n as snapshotHeaders, r as snapshotTag, t as cacheLifeFor } from "../snapshot-cache-DZHQ0KF6.js";
7
- import { d as discoverViaSignatureAgent, f as invalidSignatureProblem, m as webBotAuthVerifier, o as evaluationsHandler, p as invalidSignatureResponse, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
8
- import { n as tenantScope } from "../adapter-context-CRhqyzCk.js";
9
- import { t as createPermDock } from "../create-DCF2SvoT.js";
10
- import { a as generateFeedKey, c as parseApiKey, i as generateApiKey, l as parseFeedKey, n as subjectFromSupportSession, o as hashApiKey, r as apiKeyVerifier, s as memoryCredentialStore, t as signSupportSession, u as subjectFromApiKey } from "../server-C3WXAHZj.js";
11
- import { n as signRunTicket, r as subjectFromRunTicket, t as parseRunTicket } from "../run-ticket-sxFI6LAk.js";
12
- import { t as problemFromError } from "../map-error-Dr70oA_3.js";
13
- import { n as webhookVerifier, t as webhookSigner } from "../standard-webhooks-DgFFD-Ga.js";
14
- export { InvalidSignatureError, PROBLEM_BASE, PermDockApprovalRequiredError, PermDockDeniedError, PermDockRevokedError, PermDockValidationError, apiKeyVerifier, cacheLifeFor, createPermDock, discoverViaSignatureAgent, evaluationsHandler, generateApiKey, generateFeedKey, hashApiKey, invalidSignatureProblem, invalidSignatureResponse, memoryCredentialStore, memoryReplayStore, memoryRevocationFeed, parseApiKey, parseFeedKey, parseRunTicket, problemFromDecision, problemFromError, problemResponse, signRunTicket, signSupportSession, snapshotHeaders, snapshotTag, subjectFromApiKey, subjectFromRunTicket, subjectFromSupportSession, tenantScope, validationProblem, webBotAuthVerifier, webhookSigner, webhookVerifier, wwwAuthenticate };
4
+ import { c as problemFromDecision, f as validationProblem, l as problemResponse, p as wwwAuthenticate } from "../problem-BVLHFK33.js";
5
+ import { t as memoryReplayStore } from "../replay-BU09ad4L.js";
6
+ import { n as snapshotHeaders, r as snapshotTag, t as cacheLifeFor } from "../snapshot-cache-Bx_4xC_6.js";
7
+ import { d as invalidSignatureProblem, f as invalidSignatureResponse, l as InvalidSignatureError, o as evaluationsHandler, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-IBceAeKT.js";
8
+ import { n as tenantScope } from "../adapter-context-CIQpQxbE.js";
9
+ import { t as createPermDock } from "../create-_noSrY1T.js";
10
+ import { a as generateFeedKey, c as parseApiKey, i as generateApiKey, l as parseFeedKey, n as subjectFromSupportSession, o as hashApiKey, r as apiKeyVerifier, s as memoryCredentialStore, t as signSupportSession, u as subjectFromApiKey } from "../server-3cVlTLde.js";
11
+ import { i as subjectFromRunTicket, n as parseRunTicket, r as signRunTicket, t as RUN_TICKET_CLAIMS } from "../run-ticket-Dv7aF7Dk.js";
12
+ import { t as problemFromError } from "../map-error-pasIGqMT.js";
13
+ import { n as webhookVerifier, t as webhookSigner } from "../standard-webhooks-D67a3nzk.js";
14
+ export { InvalidSignatureError, PROBLEM_BASE, PermDockApprovalRequiredError, PermDockDeniedError, PermDockRevokedError, PermDockValidationError, RUN_TICKET_CLAIMS, apiKeyVerifier, cacheLifeFor, createPermDock, discoverViaSignatureAgent, evaluationsHandler, generateApiKey, generateFeedKey, hashApiKey, invalidSignatureProblem, invalidSignatureResponse, memoryCredentialStore, memoryReplayStore, memoryRevocationFeed, parseApiKey, parseFeedKey, parseRunTicket, problemFromDecision, problemFromError, problemResponse, signRunTicket, signSupportSession, snapshotHeaders, snapshotTag, subjectFromApiKey, subjectFromRunTicket, subjectFromSupportSession, tenantScope, validationProblem, webBotAuthVerifier, webhookSigner, webhookVerifier, wwwAuthenticate };
@@ -1,13 +1,13 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { a as ownRecord } from "./paths-DXSHAMIa.js";
3
- import { m as annotationsFor, n as findPermission } from "./permission-registry-Br4jSNVi.js";
4
- import { n as isThenable } from "./thenable-yD7SabqG.js";
5
- import { f as nowMillis, g as secondsOf, m as rfc3339, o as epochSeconds, u as isoAt } from "./time-DkWjdL98.js";
6
- import { t as bytesToBase64Url } from "./sha256-D9ihqmvd.js";
7
- import { n as parseSupportSession } from "./support-session-C6xJQYut.js";
2
+ import { a as ownRecord } from "./paths-CUvURzHp.js";
3
+ import { m as annotationsFor, n as findPermission } from "./permission-registry-B8tYxPIt.js";
4
+ import { n as isThenable } from "./thenable-BNSM1U2R.js";
5
+ import { f as nowMillis, g as secondsOf, m as rfc3339, o as epochSeconds, u as isoAt } from "./time-nR1JesoH.js";
6
+ import { t as bytesToBase64Url } from "./sha256-C-4WXKIu.js";
7
+ import { n as parseSupportSession } from "./support-session-BsmPCbz8.js";
8
8
  import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
9
- import { c as credentialEvent } from "./sink-BEZSlMS_.js";
10
- import { i as credentialTenant, n as credentialPolicyViolation, o as isFeedId, r as credentialSubject, s as parseCredential } from "./credential-BcoiejpY.js";
9
+ import { c as credentialEvent } from "./sink-D9_vh372.js";
10
+ import { i as credentialTenant, n as credentialPolicyViolation, o as isFeedId, r as credentialSubject, s as parseCredential } from "./credential-CyyyvCsL.js";
11
11
  //#region src/server/credentials.ts
12
12
  const PREFIX = "pdk_";
13
13
  const ID = /^[\w-]{1,128}$/u;
@@ -41,8 +41,8 @@ function checksum(text, alphabet) {
41
41
  /**
42
42
  * Splits `pdk_<id>_<secret><checksum>`: `id` is 1 to 128 of `A-Z a-z 0-9 _ -`,
43
43
  * the secret 43 base62 characters and the checksum the 6 base62 characters of
44
- * the CRC-32 of everything before it. Anything else, including a checksum
45
- * that does not match, is `undefined`.
44
+ * the CRC-32 of everything before it. Anything else, including a checksum that
45
+ * does not match, is `undefined`.
46
46
  */
47
47
  function parseApiKey(key) {
48
48
  if (typeof key !== "string" || key.length > MAX_KEY || !key.startsWith(PREFIX)) return;
@@ -63,9 +63,9 @@ const FEED_ALPHABET = "abcdefghijklmnopqrstuvwxyz234567";
63
63
  const FEED_SECRET_LENGTH = 26;
64
64
  const FEED_TAIL = /* @__PURE__ */ new RegExp(`^[a-z2-7]{${String(32)}}$`, "u");
65
65
  /**
66
- * Splits `pdfeed_<id>_<secret><checksum>`. `id` is `isFeedId`, the secret is
67
- * 26 lowercase base32 characters and the checksum is 6 more. A checksum that
68
- * does not match is `undefined`.
66
+ * Splits `pdfeed_<id>_<secret><checksum>`. `id` is `isFeedId`, the secret is 26
67
+ * lowercase base32 characters and the checksum is 6 more. A checksum that does
68
+ * not match is `undefined`.
69
69
  */
70
70
  function parseFeedKey(key) {
71
71
  if (typeof key !== "string" || key.length > 56 || !key.startsWith(FEED_PREFIX)) return;
@@ -82,8 +82,8 @@ function parseFeedKey(key) {
82
82
  } : void 0;
83
83
  }
84
84
  /**
85
- * A fresh `pdfeed_<id>_<secret><checksum>`: 26 lowercase base32 characters
86
- * (130 bits) and a 6-character CRC-32 checksum. The whole key is lowercase.
85
+ * A fresh `pdfeed_<id>_<secret><checksum>`: 26 lowercase base32 characters (130
86
+ * bits) and a 6-character CRC-32 checksum. The whole key is lowercase.
87
87
  */
88
88
  function generateFeedKey(id) {
89
89
  if (!isFeedId(id)) throw new TypeError("PermDock: a feed id is 1 to 16 of a-z, 0-9 and -");
@@ -124,11 +124,11 @@ function sameHash(left, right) {
124
124
  return difference === 0;
125
125
  }
126
126
  /**
127
- * A `CredentialVerifier` over the application's own table: `find` looks a
128
- * key up by the id in it, and the key's hash is compared in constant time.
129
- * A record that is not a valid v1 credential, or whose id is not the key's,
130
- * verifies to `null`. A throwing `find` propagates, so the resolver denies
131
- * with `source-threw`.
127
+ * A `CredentialVerifier` over the application's own table: `find` looks a key
128
+ * up by the id in it, and the key's hash is compared in constant time. A record
129
+ * that is not a valid v1 credential, or whose id is not the key's, verifies to
130
+ * `null`. A throwing `find` propagates, so the resolver denies with
131
+ * `source-threw`.
132
132
  */
133
133
  function apiKeyVerifier(options) {
134
134
  return Object.freeze({
@@ -266,10 +266,10 @@ function anonymous() {
266
266
  }
267
267
  /**
268
268
  * Resolves an opaque API key (`pdk_<id>_<secret>`) into the subject its
269
- * credential acts as. Every failure (a malformed or unknown key, a record
270
- * that is not a valid credential, expiry, a tenant policy the key breaks, a
271
- * revoked id, a missing owner, a throwing verifier, source or callback) is
272
- * the anonymous subject, never a throw.
269
+ * credential acts as. Every failure (a malformed or unknown key, a record that
270
+ * is not a valid credential, expiry, a tenant policy the key breaks, a revoked
271
+ * id, a missing owner, a throwing verifier, source or callback) is the
272
+ * anonymous subject, never a throw.
273
273
  */
274
274
  async function subjectFromApiKey(key, options) {
275
275
  const tenant = options.tenant;
@@ -314,8 +314,8 @@ async function subjectFromApiKey(key, options) {
314
314
  const SUPPORT_SESSION_TYP = "vnd.permdock.support-session+jwt";
315
315
  /**
316
316
  * Signs a granted `SupportSession` as a `vnd.permdock.support-session+jwt`
317
- * (`sub` the viewed principal, `act` the support actor, `jti` the session
318
- * id) that expires with the session. Throws a `TypeError` for a record
317
+ * (`sub` the viewed principal, `act` the support actor, `jti` the session id)
318
+ * that expires with the session. Throws a `TypeError` for a record
319
319
  * `parseSupportSession` refuses.
320
320
  */
321
321
  function signSupportSession(session, signer, options = {}) {
@@ -380,11 +380,11 @@ async function ended(sessions, id) {
380
380
  }
381
381
  }
382
382
  /**
383
- * Resolves a `vnd.permdock.support-session+jwt` into the subject each
384
- * request of the session acts as: the viewed principal loaded live, a
385
- * `support` actor, the session's permissions as the delegation and
386
- * `context.supportSession`. The actor must still exist. Every failure is the
387
- * anonymous subject, never a throw.
383
+ * Resolves a `vnd.permdock.support-session+jwt` into the subject each request
384
+ * of the session acts as: the viewed principal loaded live, a `support` actor,
385
+ * the session's permissions as the delegation and `context.supportSession`. The
386
+ * actor must still exist. Every failure is the anonymous subject, never a
387
+ * throw.
388
388
  */
389
389
  async function subjectFromSupportSession(token, options) {
390
390
  if (typeof token !== "string" || token.length === 0) return anonymousSubject();
@@ -1,18 +1,21 @@
1
- import { Nn as Decision, Rt as Instant, Vt as Snapshot, ar as Subject, j as PolicyVocabulary, qn as Actor, tr as JsonWebKeyLike } from "./policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "./vocabulary-CN8H_9UF.js";
3
- import { r as PermDock, s as SnapshotOptions } from "./permdock-SV8ZINYT.js";
4
- import { m as ApprovalStore } from "./types-BdtSDbBO.js";
5
- import { a as ProblemDetails, t as ApprovalHint } from "./errors-DH5QEGXh.js";
6
- import { t as InstanceOptions } from "./instance-options-BsVpyGIk.js";
1
+ import { Gt as Snapshot, Ln as Decision, Rt as Instant, Zn as Actor, ar as JsonWebKeyLike, j as PolicyVocabulary, lr as Subject } from "./policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
+ import { a as PermDock, u as SnapshotOptions } from "./permdock-B6Sf4T_S.js";
4
+ import { m as ApprovalStore } from "./types-B_tiYvk8.js";
5
+ import { a as ProblemDetails, t as ApprovalHint } from "./errors-zi_4T-rx.js";
6
+ import { t as InstanceOptions } from "./instance-options-B0KXqTrJ.js";
7
7
  import { t as RequestContext } from "./request-context-C2_1lchh.js";
8
- import { n as PermDockWrap } from "./wrap-C5jC6sKI.js";
9
- import { n as RevocationFeed } from "./revocations-R07lFBnX.js";
10
- import { r as PdpFactory } from "./types-_WhUP7ud.js";
11
- import { i as evaluationsHandler } from "./evaluations-C_1vdSZc.js";
8
+ import { n as PermDockWrap } from "./wrap-DlJE3gS_.js";
9
+ import { n as RevocationFeed } from "./revocations-BaUXHM1N.js";
10
+ import { r as PdpFactory } from "./types-B4uqKDnp.js";
11
+ import { i as evaluationsHandler } from "./evaluations-z8dQFDaN.js";
12
12
  //#region src/server/connection.d.ts
13
13
  type ConnectionData<T> = T | (() => T | null | undefined | Promise<T | null | undefined>);
14
14
  type ConnectionOptions<T = unknown> = {
15
- /** The permission the stream or socket is opened for; re-checked after every revalidation. */
15
+ /**
16
+ * The permission the stream or socket is opened for; re-checked after every
17
+ * revalidation.
18
+ */
16
19
  readonly permission?: Permission;
17
20
  /** The row for `permission`, or a loader re-run on every revalidation. */
18
21
  readonly data?: ConnectionData<T>;
@@ -25,13 +28,13 @@ type Connection = {
25
28
  /** Aborts with a `PermDockRevokedError` when the connection must end. */
26
29
  readonly signal: AbortSignal;
27
30
  /**
28
- * Per-message decision. Data is validated against the resource schema
29
- * first unless `{ trusted: true }` marks it as a row the server loaded.
31
+ * Per-message decision. Data is validated against the resource schema first
32
+ * unless `{ trusted: true }` marks it as a row the server loaded.
30
33
  */
31
34
  readonly check: (permission: Permission, data?: unknown, options?: {
32
35
  readonly trusted?: boolean;
33
36
  }) => Decision;
34
- readonly filter: <T>(permission: Permission<string, T, "instance">, items: readonly T[]) => T[];
37
+ readonly filter: <T>(permission: Permission<string, NoInfer<T>, "instance">, items: readonly T[]) => T[];
35
38
  /**
36
39
  * Resolves once every revalidation queued so far has finished, so a message
37
40
  * checked after a revocation event is checked against the rebuilt instance.
@@ -43,14 +46,17 @@ type Connection = {
43
46
  //#endregion
44
47
  //#region src/core/adapter-context.d.ts
45
48
  /**
46
- * The active tenant an adapter resolved from its own framework context.
47
- * Present means "use this tenant", even when `tenant` is `undefined`.
49
+ * The active tenant an adapter resolved from its own framework context. Present
50
+ * means "use this tenant", even when `tenant` is `undefined`.
48
51
  */
49
52
  type TenantScope = {
50
53
  readonly tenant: string | undefined;
51
54
  };
52
55
  type TenantOption<TContext> = string | ((context: TContext) => string | undefined | Promise<string | undefined>);
53
- /** Resolves an adapter `tenant` option against its framework context; a throw is no tenant. */
56
+ /**
57
+ * Resolves an adapter `tenant` option against its framework context; a throw is
58
+ * no tenant.
59
+ */
54
60
  declare function tenantScope<TContext>(option: TenantOption<TContext> | undefined, context: TContext): Promise<TenantScope>;
55
61
  //#endregion
56
62
  //#region src/server/web-bot-auth.d.ts
@@ -75,13 +81,16 @@ type WebBotAuthOptions = {
75
81
  readonly now?: () => Instant;
76
82
  };
77
83
  /**
78
- * An adapter's `webBotAuth` option: `webBotAuthVerifier(options)`,
79
- * so an app without it does not bundle RFC 9421 verification.
84
+ * An adapter's `webBotAuth` option: `webBotAuthVerifier(options)`, so an app
85
+ * without it does not bundle RFC 9421 verification.
80
86
  */
81
87
  type WebBotAuthVerifier = {
82
88
  readonly name?: string;
83
- /** The verified signer as an actor, `undefined` for an unsigned request; throws `InvalidSignatureError` for a bad signature. */
84
- verify(request: Request): Promise<Actor | undefined>;
89
+ /**
90
+ * The verified signer as an actor, `undefined` for an unsigned request;
91
+ * throws `InvalidSignatureError` for a bad signature.
92
+ */
93
+ verify: (request: Request) => Promise<Actor | undefined>;
85
94
  };
86
95
  type DiscoverViaSignatureAgentOptions = {
87
96
  readonly allow: readonly string[];
@@ -104,7 +113,10 @@ declare function webBotAuthVerifier(options?: WebBotAuthOptions): WebBotAuthVeri
104
113
  //#endregion
105
114
  //#region src/server/server-types.d.ts
106
115
  type ServerPermDockOptions<TUser = unknown> = InstanceOptions & {
107
- /** The user, or a full `Subject` (core then skips `policy.subject`); `null` is anonymous. */
116
+ /**
117
+ * The user, or a full `Subject` (core then skips `policy.subject`); `null` is
118
+ * anonymous.
119
+ */
108
120
  readonly subject: (request: Request) => TUser | Subject | null | Promise<TUser | Subject | null>;
109
121
  readonly actor?: (request: Request) => unknown;
110
122
  /** `webBotAuthVerifier(options)`; a verified bot becomes the actor. */
@@ -123,23 +135,32 @@ type ServerPermDockOptions<TUser = unknown> = InstanceOptions & {
123
135
  readonly approval?: ApprovalHint;
124
136
  readonly operations?: OperationScopes;
125
137
  /**
126
- * Replaces the response of a refused guard. A status below 300, or a
127
- * throw, keeps the default response and reports through `on('error')`.
138
+ * Replaces the response of a refused guard. A status below 300, or a throw,
139
+ * keeps the default response and reports through `on('error')`.
128
140
  */
129
141
  readonly deniedResponse?: DeniedResponse;
130
142
  /**
131
- * Request values merged into `subject.context`, under `policy.context`.
132
- * Only values the server derived belong here, never client input. A throw
133
- * or a value that is not a JSON object adds nothing and reports through
143
+ * Request values merged into `subject.context`, under `policy.context`. Only
144
+ * values the server derived belong here, never client input. A throw or a
145
+ * value that is not a JSON object adds nothing and reports through
134
146
  * `on('error')`.
135
147
  */
136
148
  readonly context?: (request: Request) => RequestContext | undefined | Promise<RequestContext | undefined>;
137
- /** Wraps each instance the factory builds; build it with `wrapPermDock` to cover derived instances. */
149
+ /**
150
+ * Wraps each instance the factory builds; build it with `wrapPermDock` to
151
+ * cover derived instances.
152
+ */
138
153
  readonly wrap?: PermDockWrap;
139
- /** The `adapter` label on decision events, revocations and approvals. Defaults to `server`. */
154
+ /**
155
+ * The `adapter` label on decision events, revocations and approvals. Defaults
156
+ * to `server`.
157
+ */
140
158
  readonly adapter?: string;
141
159
  };
142
- /** What `deniedResponse` receives: the refusal and the default Problem Details for it. */
160
+ /**
161
+ * What `deniedResponse` receives: the refusal and the default Problem Details
162
+ * for it.
163
+ */
143
164
  type DeniedResponseEvent = {
144
165
  readonly decision: Exclude<Decision, {
145
166
  readonly outcome: "granted";
@@ -147,10 +168,13 @@ type DeniedResponseEvent = {
147
168
  readonly problem: ProblemDetails;
148
169
  readonly request: Request | undefined;
149
170
  };
150
- /** Returns Problem Details with extra members, a `Response`, or nothing for the default. */
171
+ /**
172
+ * Returns Problem Details with extra members, a `Response`, or nothing for the
173
+ * default.
174
+ */
151
175
  type DeniedResponse = (event: DeniedResponseEvent) => ProblemDetails | Response | undefined | Promise<ProblemDetails | Response | undefined>;
152
176
  type OperationScopes = {
153
- oauthScopesForRequest(method: string, path: string): readonly string[] | undefined;
177
+ oauthScopesForRequest: (method: string, path: string) => readonly string[] | undefined;
154
178
  };
155
179
  type Guard<T = unknown, V extends PolicyVocabulary = PolicyVocabulary> = {
156
180
  readonly ok: true;
@@ -162,7 +186,10 @@ type Guard<T = unknown, V extends PolicyVocabulary = PolicyVocabulary> = {
162
186
  } | {
163
187
  readonly ok: false;
164
188
  readonly response: Response;
165
- /** The refusal behind `response`; absent for a missing row or a bad signature. */
189
+ /**
190
+ * The refusal behind `response`; absent for a missing row or a bad
191
+ * signature.
192
+ */
166
193
  readonly decision?: Exclude<Decision, {
167
194
  readonly outcome: "granted";
168
195
  }>;
@@ -179,15 +206,18 @@ type ScopeGuard<T = unknown, V extends PolicyVocabulary = PolicyVocabulary> = {
179
206
  } | {
180
207
  readonly ok: false;
181
208
  readonly response: Response;
182
- /** The refusal behind `response`; absent for a missing row or a bad signature. */
209
+ /**
210
+ * The refusal behind `response`; absent for a missing row or a bad
211
+ * signature.
212
+ */
183
213
  readonly decision?: Exclude<Decision, {
184
214
  readonly outcome: "granted";
185
215
  }>;
186
216
  };
187
217
  type Loader<T> = (request: Request) => T | null | undefined | Promise<T | null | undefined>;
188
218
  /**
189
- * `protect(permission, data?, options?)`, or `protect(null, data?,
190
- * { oauthScopes })` for a route that needs a signed-in principal and, from a
219
+ * `protect(permission, data?, options?)`, or `protect(null, data?, {
220
+ * oauthScopes })` for a route that needs a signed-in principal and, from a
191
221
  * delegated token, one of the OAuth scopes it declares, but no permission.
192
222
  */
193
223
  type Protect<V extends PolicyVocabulary = PolicyVocabulary, TArgs extends unknown[] = []> = {
@@ -204,9 +234,9 @@ type OpenApiHooks = {
204
234
  };
205
235
  type ProtectOptions = {
206
236
  /**
207
- * `true` when `data` returns a row the server loaded itself, to skip
208
- * schema validation. Anything else is validated against the resource
209
- * schema before the check.
237
+ * `true` when `data` returns a row the server loaded itself, to skip schema
238
+ * validation. Anything else is validated against the resource schema before
239
+ * the check.
210
240
  */
211
241
  readonly trusted?: boolean;
212
242
  /**
@@ -221,7 +251,10 @@ type ProtectOptions = {
221
251
  readonly explain?: boolean;
222
252
  };
223
253
  type SnapshotQuery = {
224
- /** The active tenant; defaults to the `tenant` option resolved from the request. */
254
+ /**
255
+ * The active tenant; defaults to the `tenant` option resolved from the
256
+ * request.
257
+ */
225
258
  readonly tenant?: string;
226
259
  readonly include?: SnapshotOptions["include"];
227
260
  readonly tenants?: "all";
@@ -234,23 +267,25 @@ type SnapshotQuery = {
234
267
  type ServerPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
235
268
  readonly getPermDock: (request: Request, scope?: TenantScope) => Promise<PermDock<V>>;
236
269
  /**
237
- * The JSON snapshot for a loader (React Router, TanStack Start, SvelteKit, Nuxt), built from the
238
- * request's cached subject. Send it with `snapshotHeaders(snapshot)`.
270
+ * The JSON snapshot for a loader (React Router, TanStack Start, SvelteKit,
271
+ * Nuxt), built from the request's cached subject. Send it with
272
+ * `snapshotHeaders(snapshot)`.
239
273
  */
240
274
  readonly getSnapshot: (request: Request, query?: SnapshotQuery) => Promise<Snapshot>;
241
275
  readonly protect: Protect<V, [scope?: TenantScope]>;
242
276
  /**
243
277
  * `protect` against an instance the adapter already holds, such as a gateway
244
- * connection's: the same OAuth scope check, loader, decision and approval resume.
245
- * A method, so a `ServerPermDock<V>` stays assignable to `ServerPermDock`.
278
+ * connection's: the same OAuth scope check, loader, decision and approval
279
+ * resume. A method, so a `ServerPermDock<V>` stays assignable to
280
+ * `ServerPermDock`.
246
281
  */
247
282
  protectOn<T = unknown>(instance: PermDock<V>, permission: Permission | null, data?: () => T | null | undefined | Promise<T | null | undefined>, protectOptions?: ProtectOptions, request?: Request): Promise<Guard<T, V> | ScopeGuard<T, V>>;
248
283
  /** A long-lived connection for a stream or socket opened by `request`. */
249
284
  readonly connection: <T = unknown>(request: Request, options?: ConnectionOptions<T>, scope?: TenantScope) => Promise<Connection>;
250
285
  /**
251
286
  * Lets `to`, a second `Request` an adapter built for the same incoming
252
- * request (to re-read a body a parser consumed), reuse the subject and
253
- * actor already resolved for `from`.
287
+ * request (to re-read a body a parser consumed), reuse the subject and actor
288
+ * already resolved for `from`.
254
289
  */
255
290
  readonly shareSubject: (from: Request, to: Request) => void;
256
291
  readonly problem: (decision: Decision, init?: {
@@ -69,7 +69,8 @@ function rotr(value, bits) {
69
69
  return value >>> bits | value << 32 - bits;
70
70
  }
71
71
  /**
72
- * SHA-256 of UTF-8 text. Pure JS so `decide` stays synchronous and WinterTC-safe.
72
+ * SHA-256 of UTF-8 text. Pure JS so `decide` stays synchronous and
73
+ * WinterTC-safe.
73
74
  */
74
75
  function sha256(message) {
75
76
  const bytes = new TextEncoder().encode(message);
@@ -142,8 +143,8 @@ function sha256(message) {
142
143
  return out;
143
144
  }
144
145
  /**
145
- * The one digest notation: `sha-256:` plus the unpadded base64url SHA-256
146
- * of `text`. An RFC 9651 sf-token, so it fits a structured header as is.
146
+ * The one digest notation: `sha-256:` plus the unpadded base64url SHA-256 of
147
+ * `text`. An RFC 9651 sf-token, so it fits a structured header as is.
147
148
  */
148
149
  function sha256Digest(text) {
149
150
  return `sha-256:${bytesToBase64Url(sha256(text))}`;