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,23 +1,26 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { a as ownRecord } from "./paths-DXSHAMIa.js";
4
- import { a as problemType, o as statusProblem } from "./problem-details-cn5X30gZ.js";
5
- import { a as isId } from "./expiry-D4_YKRKD.js";
6
- import { d as isoNow, f as nowMillis, g as secondsOf, i as dateAt } from "./time-DkWjdL98.js";
7
- import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
8
- import { r as sha256Digest } from "./sha256-D9ihqmvd.js";
9
- import { s as rootMembershipId } from "./scopes-CUPSjo9q.js";
10
- import { o as flattenGrantee } from "./grantee-hxrUsbpM.js";
11
- import { c as isApprovalError, s as ApprovalError } from "./types-DqzsnlSA.js";
12
- import { a as approvalPageSize, c as listAllApprovals, n as assertApprover, o as decodeApprovalCursor, r as matchesApprovers } from "./store-BDutJkDL.js";
13
- import { n as readBodyText } from "./body-text-QcXok_SI.js";
14
- import { r as hasCredentials } from "./http-BBoKefeS.js";
15
- import { a as methodNotAllowed, c as problemResponse, d as validationProblem, u as unauthenticatedProblem } from "./problem-CTviyH5L.js";
16
- import { f as approverPermissions, m as approverRelations, p as heldPermissions } from "./helpers-CBYVMjwh.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { a as ownRecord } from "./paths-CUvURzHp.js";
4
+ import { a as problemType, o as statusProblem } from "./problem-details-CLDgX1KV.js";
5
+ import { a as isId } from "./expiry-6XByK0dm.js";
6
+ import { d as isoNow, f as nowMillis, g as secondsOf, i as dateAt } from "./time-nR1JesoH.js";
7
+ import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
8
+ import { r as sha256Digest } from "./sha256-C-4WXKIu.js";
9
+ import { c as rootMembershipId } from "./scopes-0Up_UA2t.js";
10
+ import { o as flattenGrantee } from "./grantee-Dke-9rd1.js";
11
+ import { c as isApprovalError, s as ApprovalError } from "./types-CcUXciSj.js";
12
+ import { a as belongsToTenant, c as decodeApprovalCursor, n as assertApprover, o as membershipTenants, r as matchesApprovers, s as approvalPageSize, u as listAllApprovals } from "./store-RNFvaJJv.js";
13
+ import { n as readBodyText } from "./body-text-DQhcmqdY.js";
14
+ import { r as hasCredentials } from "./http-DKLXrFGk.js";
15
+ import { d as unauthenticatedProblem, f as validationProblem, l as problemResponse, o as methodNotAllowed } from "./problem-BVLHFK33.js";
16
+ import { f as approverPermissions, m as approverRelations, p as heldPermissions } from "./helpers-DJicaG6f.js";
17
17
  import { n as isAccessReviewError, t as AccessReviewError } from "./errors-BDUwg2qC.js";
18
- import { t as bodyTooLarge } from "./body-CH5of8Ne.js";
18
+ import { t as bodyTooLarge } from "./body-CJQwYVa8.js";
19
19
  //#region src/approvals/access-reviews/decide.ts
20
- /** Whether `by` is named as a reviewer. A link, a feed or a contact is never a reviewer. */
20
+ /**
21
+ * Whether `by` is named as a reviewer. A link, a feed or a contact is never a
22
+ * reviewer.
23
+ */
21
24
  function accessReviewerEligible(review, by, permissions = [], now) {
22
25
  const principal = by.principal;
23
26
  if (principal === null || principal.kind === "link" || principal.kind === "feed" || principal.kind === "contact") return false;
@@ -27,8 +30,8 @@ function accessReviewerEligible(review, by, permissions = [], now) {
27
30
  });
28
31
  }
29
32
  /**
30
- * The decision to persist, or throws. A reviewer cannot decide a holding
31
- * of their own principal. `holder()` matches only through `permissions`.
33
+ * The decision to persist, or throws. A reviewer cannot decide a holding of
34
+ * their own principal. `holder()` matches only through `permissions`.
32
35
  */
33
36
  function decideAccessReviewItem(review, item, verdict, at) {
34
37
  const now = dateAt(at);
@@ -57,7 +60,10 @@ function json$1(status, body) {
57
60
  headers: { "content-type": "application/json" }
58
61
  });
59
62
  }
60
- /** The route a path names, the methods it allows, or `undefined` for an unknown path. */
63
+ /**
64
+ * The route a path names, the methods it allows, or `undefined` for an unknown
65
+ * path.
66
+ */
61
67
  function parseRoute$1(url, method) {
62
68
  const parts = url.pathname.replace(/\/+$/u, "").split("/").filter(Boolean);
63
69
  const last = parts.at(-1);
@@ -132,8 +138,8 @@ function mapError$1(error, credentials) {
132
138
  }
133
139
  /**
134
140
  * HTTP for one access-review store: `GET` a review and its items, `POST`
135
- * `.../keep`, `.../revoke`, `.../applied` and `.../close`. A caller who is
136
- * not a reviewer and did not open the review gets 404.
141
+ * `.../keep`, `.../revoke`, `.../applied` and `.../close`. A caller who is not
142
+ * a reviewer and did not open the review gets 404.
137
143
  */
138
144
  function accessReviewsHandler(store, options) {
139
145
  return async (request) => {
@@ -275,9 +281,9 @@ function itemsFrom(reviewId, holders, keys) {
275
281
  return items;
276
282
  }
277
283
  /**
278
- * Opens a review of who holds `permissions` in the caller's active tenant.
279
- * The caller must be signed in. PermDock stores the population and does not
280
- * revoke anything: the application changes the source, then `markApplied`.
284
+ * Opens a review of who holds `permissions` in the caller's active tenant. The
285
+ * caller must be signed in. PermDock stores the population and does not revoke
286
+ * anything: the application changes the source, then `markApplied`.
281
287
  */
282
288
  async function startAccessReview(permdock, input, options) {
283
289
  const principal = permdock.subject.principal;
@@ -415,9 +421,9 @@ function stringList(value) {
415
421
  return [...new Set(value)];
416
422
  }
417
423
  /**
418
- * A frozen copy of a delegation with only the known fields, or `undefined`
419
- * when a known field has the wrong type, `until` is not after `from`, or
420
- * the delegate and the delegator are the same principal.
424
+ * A frozen copy of a delegation with only the known fields, or `undefined` when
425
+ * a known field has the wrong type, `until` is not after `from`, or the
426
+ * delegate and the delegator are the same principal.
421
427
  */
422
428
  function parseApprovalDelegation(input) {
423
429
  const value = ownRecord(input);
@@ -475,8 +481,8 @@ function covers(entry, request, delegate, tenant, at) {
475
481
  return entry.resources === void 0 || entry.resources.includes(request.resource.type);
476
482
  }
477
483
  /**
478
- * The first active delegation under which `delegate` may approve `request`,
479
- * or `undefined`. The delegator is resolved by `subjectFor` and checked with
484
+ * The first active delegation under which `delegate` may approve `request`, or
485
+ * `undefined`. The delegator is resolved by `subjectFor` and checked with
480
486
  * `assertApprover`, so relation and permission approvers use the delegator's
481
487
  * facts. A throw, a missing option or a delegator the source does not name
482
488
  * matches nobody. The delegator's own delegations are never read.
@@ -521,7 +527,61 @@ async function matchDelegation(request, delegate, options) {
521
527
  }))).find((match) => match !== void 0);
522
528
  }
523
529
  //#endregion
530
+ //#region src/approvals/entity-tag.ts
531
+ /** The request without its resume `token`; every other field stays. */
532
+ function approvalView(request) {
533
+ const { token: _token, ...view } = request;
534
+ return view;
535
+ }
536
+ /**
537
+ * A strong RFC 9110 entity tag: the quoted `sha-256:` digest of
538
+ * `approvalView(request)` as RFC 8785 JSON. A field outside `ApprovalRequest`
539
+ * changes the tag, so hash the stored request as is.
540
+ */
541
+ function approvalEntityTag(request) {
542
+ return `"${sha256Digest(canonicalJson(approvalView(request)))}"`;
543
+ }
544
+ //#endregion
524
545
  //#region src/approvals/idempotency.ts
546
+ /**
547
+ * How long `approvalsHandler` keeps a response for a repeated
548
+ * `Idempotency-Key`.
549
+ */
550
+ const IDEMPOTENCY_TTL_MS = 864e5;
551
+ /**
552
+ * The `IdempotencyStore` key for one approver's `Idempotency-Key`: keys never
553
+ * cross approvers.
554
+ */
555
+ function idempotencyRecordKey(principalId, key) {
556
+ return `${principalId}\n${key}`;
557
+ }
558
+ function fingerprintOf(call) {
559
+ return `${call.action} ${call.id} ${sha256Digest(call.body)}`;
560
+ }
561
+ /**
562
+ * The record `approvalsHandler` stores after `call` answered `response`: the
563
+ * status, headers and body text, the call's fingerprint, and an expiry 24 hours
564
+ * after `now` (epoch milliseconds, default the clock).
565
+ */
566
+ async function idempotencyRecord(input) {
567
+ return {
568
+ key: idempotencyRecordKey(input.principalId, input.key),
569
+ response: {
570
+ fingerprint: fingerprintOf(input.call),
571
+ status: input.response.status,
572
+ headers: [...input.response.headers.entries()],
573
+ body: await input.response.clone().text()
574
+ },
575
+ expiresAt: (input.now ?? nowMillis()) + IDEMPOTENCY_TTL_MS
576
+ };
577
+ }
578
+ /**
579
+ * Whether a stored response came from the same call: a reused key with another
580
+ * call is refused with `422`.
581
+ */
582
+ function matchesIdempotencyRecord(response, call) {
583
+ return response.fingerprint === fingerprintOf(call);
584
+ }
525
585
  /** An in-process `IdempotencyStore`, for one instance and for tests. */
526
586
  function memoryIdempotencyStore() {
527
587
  const entries = /* @__PURE__ */ new Map();
@@ -588,7 +648,6 @@ function signApproval(request, signer, options = {}) {
588
648
  }
589
649
  //#endregion
590
650
  //#region src/approvals/handler.ts
591
- const IDEMPOTENCY_TTL_MS = 864e5;
592
651
  const MAX_IDEMPOTENCY_KEY_LENGTH = 256;
593
652
  function problem(status, detail) {
594
653
  return problemResponse(statusProblem(status, detail));
@@ -602,14 +661,6 @@ function json(status, body, headers = {}) {
602
661
  }
603
662
  });
604
663
  }
605
- function viewOf(request) {
606
- const { token: _token, ...view } = request;
607
- return view;
608
- }
609
- /** A strong RFC 9110 entity tag: the `sha-256:` digest of the view's RFC 8785 JSON. */
610
- function entityTag(request) {
611
- return `"${sha256Digest(canonicalJson(viewOf(request)))}"`;
612
- }
613
664
  function entityTags(field) {
614
665
  return field.split(",").map((tag) => tag.trim()).filter((tag) => tag !== "");
615
666
  }
@@ -619,7 +670,7 @@ function ifMatchFails(request, current) {
619
670
  if (field === null) return false;
620
671
  const tags = entityTags(field);
621
672
  if (tags.includes("*")) return false;
622
- return !tags.includes(entityTag(current));
673
+ return !tags.includes(approvalEntityTag(current));
623
674
  }
624
675
  /** RFC 9110 section 13.1.2: weak comparison. */
625
676
  function ifNoneMatchHolds(request, etag) {
@@ -635,8 +686,8 @@ function decodeSegment(segment) {
635
686
  }
636
687
  }
637
688
  /**
638
- * The route the path names and the methods it allows. The handler mounts at
639
- * any prefix, so a path reads from its last segments; a path naming none is
689
+ * The route the path names and the methods it allows. The handler mounts at any
690
+ * prefix, so a path reads from its last segments; a path naming none is
640
691
  * `undefined` (`404`).
641
692
  */
642
693
  function parseRoute(url) {
@@ -702,27 +753,16 @@ async function resolveSubject(request, resolve) {
702
753
  return null;
703
754
  }
704
755
  }
705
- function membershipTenants(subject) {
706
- const principal = subject.principal;
707
- if (principal === null) return [];
708
- const tenants = /* @__PURE__ */ new Set();
709
- if (principal.tenant !== void 0) tenants.add(principal.tenant);
710
- for (const membership of principal.memberships ?? []) {
711
- const tenant = rootMembershipId(membership);
712
- if (tenant !== void 0) tenants.add(tenant);
713
- }
714
- return [...tenants];
715
- }
716
- function belongsToTenant(subject, tenant) {
717
- return membershipTenants(subject).includes(tenant);
718
- }
719
756
  async function factsFor(request, subject, options) {
720
757
  return {
721
758
  relations: await approverRelations(request, subject, options),
722
759
  permissions: await heldPermissions(request, subject, options.permdockFor)
723
760
  };
724
761
  }
725
- /** The caller as themselves, or the first delegation that makes them an approver. */
762
+ /**
763
+ * The caller as themselves, or the first delegation that makes them an
764
+ * approver.
765
+ */
726
766
  async function actingApprover(request, subject, requireDistinct, options) {
727
767
  const facts = await factsFor(request, subject, options);
728
768
  try {
@@ -770,7 +810,10 @@ function canView(request, subject, requireDistinct, options) {
770
810
  if (request.resolvedBy === principal.id || (request.approvals ?? []).some((item) => item.by === principal.id)) return Promise.resolve(true);
771
811
  return mayResolve(request, subject, requireDistinct, options);
772
812
  }
773
- /** The requester and who answered: the signed approval carries the resume token, so only they read it. */
813
+ /**
814
+ * The requester and who answered: the signed approval carries the resume token,
815
+ * so only they read it.
816
+ */
774
817
  function party(request, principalId) {
775
818
  return request.subject.principal?.id === principalId || request.resolvedBy === principalId || (request.approvals ?? []).some((item) => item.by === principalId);
776
819
  }
@@ -811,7 +854,10 @@ function inboxScope(url, subject) {
811
854
  }
812
855
  const MAX_BODY_BYTES = 16384;
813
856
  const MAX_NOTE_LENGTH = 2e3;
814
- /** An unreadable body is no note; an oversized body or note is refused, never truncated. */
857
+ /**
858
+ * An unreadable body is no note; an oversized body or note is refused, never
859
+ * truncated.
860
+ */
815
861
  async function readNote(request) {
816
862
  if (!(request.headers.get("content-type") ?? "").includes("application/json")) return { text: "" };
817
863
  const read = await readBodyText(request, MAX_BODY_BYTES);
@@ -865,14 +911,6 @@ function idempotencyKey(request) {
865
911
  if (key === void 0 || key === "" || key.length > MAX_IDEMPOTENCY_KEY_LENGTH || /["\\]/u.test(key)) return { refusal: validationProblem("Idempotency-Key must be a quoted string of 1 to 256 characters") };
866
912
  return { key };
867
913
  }
868
- async function stored(response, fingerprint) {
869
- return {
870
- fingerprint,
871
- status: response.status,
872
- headers: [...response.headers.entries()],
873
- body: await response.clone().text()
874
- };
875
- }
876
914
  function approvalsHandler(store, options) {
877
915
  const requireDistinct = options.requireDistinctApprover === true;
878
916
  const idempotency = options.idempotency ?? memoryIdempotencyStore();
@@ -898,8 +936,8 @@ function approvalsHandler(store, options) {
898
936
  permissions: acting.permissions
899
937
  } : void 0
900
938
  }));
901
- return json(200, viewOf(resolved), {
902
- ETag: entityTag(resolved),
939
+ return json(200, approvalView(resolved), {
940
+ ETag: approvalEntityTag(resolved),
903
941
  ...options.signer !== void 0 && resolved.status === "approved" ? signatureLink(url) : {}
904
942
  });
905
943
  };
@@ -933,7 +971,7 @@ function approvalsHandler(store, options) {
933
971
  return (tenant === void 0 ? scoped.tenantless : tenants.has(tenant)) && await mayResolve(item, subject, requireDistinct, options);
934
972
  }));
935
973
  return json(200, compact({
936
- items: page.items.filter((_, index) => eligible[index] === true).map(viewOf),
974
+ items: page.items.filter((_, index) => eligible[index] === true).map(approvalView),
937
975
  next: page.next
938
976
  }), nextLink(url, page.next));
939
977
  }
@@ -943,19 +981,19 @@ function approvalsHandler(store, options) {
943
981
  principalId: principal.id
944
982
  });
945
983
  return json(200, compact({
946
- items: page.items.map(viewOf),
984
+ items: page.items.map(approvalView),
947
985
  next: page.next
948
986
  }), nextLink(url, page.next));
949
987
  }
950
988
  case "get": {
951
989
  const current = await visible(route.id, subject);
952
990
  if (current === null) return problem(404, "approval was not found");
953
- const etag = entityTag(current);
991
+ const etag = approvalEntityTag(current);
954
992
  if (ifNoneMatchHolds(request, etag)) return new Response(null, {
955
993
  status: 304,
956
994
  headers: { ETag: etag }
957
995
  });
958
- return json(200, viewOf(current), { ETag: etag });
996
+ return json(200, approvalView(current), { ETag: etag });
959
997
  }
960
998
  case "signature": {
961
999
  const current = await findById(store, route.id);
@@ -973,15 +1011,27 @@ function approvalsHandler(store, options) {
973
1011
  const read = await readNote(request);
974
1012
  if (read.refusal !== void 0) return read.refusal;
975
1013
  if (keyed.key === void 0) return await resolve(request, url, route, subject, read);
976
- const key = `${principal.id}\n${keyed.key}`;
977
- const fingerprint = `${route.kind} ${route.id} ${sha256Digest(read.text)}`;
1014
+ const call = {
1015
+ action: route.kind,
1016
+ id: route.id,
1017
+ body: read.text
1018
+ };
1019
+ const key = idempotencyRecordKey(principal.id, keyed.key);
978
1020
  const replay = await idempotency.get(key);
979
- if (replay !== void 0) return replay.fingerprint === fingerprint ? new Response(replay.body, {
1021
+ if (replay !== void 0) return matchesIdempotencyRecord(replay, call) ? new Response(replay.body, {
980
1022
  status: replay.status,
981
1023
  headers: replay.headers.map(([name, value]) => [name, value])
982
1024
  }) : problem(422, "Idempotency-Key was used for another request");
983
1025
  const response = await resolve(request, url, route, subject, read);
984
- if (response.ok) await idempotency.set(key, await stored(response, fingerprint), nowMillis() + IDEMPOTENCY_TTL_MS);
1026
+ if (response.ok) {
1027
+ const record = await idempotencyRecord({
1028
+ principalId: principal.id,
1029
+ key: keyed.key,
1030
+ call,
1031
+ response
1032
+ });
1033
+ await idempotency.set(record.key, record.response, record.expiresAt);
1034
+ }
985
1035
  return response;
986
1036
  }
987
1037
  default: return problem(404, `unknown approvals route ${String(route)}`);
@@ -992,4 +1042,4 @@ function approvalsHandler(store, options) {
992
1042
  };
993
1043
  }
994
1044
  //#endregion
995
- export { matchDelegation as a, memoryAccessReviewStore as c, accessReviewsHandler as d, accessReviewerEligible as f, memoryIdempotencyStore as i, pageAccessReviewItems as l, approvalSignatureClaims as n, memoryApprovalDelegationSource as o, decideAccessReviewItem as p, signApproval as r, parseApprovalDelegation as s, approvalsHandler as t, startAccessReview as u };
1045
+ export { accessReviewerEligible as _, idempotencyRecordKey as a, approvalEntityTag as c, memoryApprovalDelegationSource as d, parseApprovalDelegation as f, accessReviewsHandler as g, startAccessReview as h, idempotencyRecord as i, approvalView as l, pageAccessReviewItems as m, approvalSignatureClaims as n, matchesIdempotencyRecord as o, memoryAccessReviewStore as p, signApproval as r, memoryIdempotencyStore as s, approvalsHandler as t, matchDelegation as u, decideAccessReviewItem as v };
@@ -1,6 +1,9 @@
1
1
  import { n as isReadonlyArray } from "./compact-CAf557ZB.js";
2
2
  //#region src/core/approvers.ts
3
- /** Approves when the approver holds `permission` in the request's tenant (any role, custom roles included). */
3
+ /**
4
+ * Approves when the approver holds `permission` in the request's tenant (any
5
+ * role, custom roles included).
6
+ */
4
7
  function holder(permission) {
5
8
  const key = permission?.key;
6
9
  if (typeof key !== "string" || key === "") throw new Error("PermDock: holder() needs a permission");
@@ -38,7 +41,10 @@ function flattenApprovers(input) {
38
41
  if (isReadonlyArray(input)) return input;
39
42
  return [input];
40
43
  }
41
- /** Every approver `input` names, inside `anyOf` groups too, for reading facts and labels. */
44
+ /**
45
+ * Every approver `input` names, inside `anyOf` groups too, for reading facts
46
+ * and labels.
47
+ */
42
48
  function approverLeaves(input) {
43
49
  return flattenApprovers(input).flatMap((item) => item.kind === "any-of" ? item.of.flatMap((entry) => approverLeaves(entry)) : [item]);
44
50
  }
@@ -1,5 +1,5 @@
1
1
  import { t as defineLeaf } from "./command-L8EstFNm.js";
2
- import { c as given, u as permissionsFlag } from "./flags-C3DktBDY.js";
2
+ import { c as given, u as permissionsFlag } from "./flags-DXjoTVbS.js";
3
3
  //#region src/cli/commands/arazzo.ts
4
4
  const check = defineLeaf({
5
5
  flags: {
@@ -21,7 +21,7 @@ const check = defineLeaf({
21
21
  ...permissionsFlag
22
22
  },
23
23
  async run(ctx, { flags }) {
24
- return (await import("./arazzo-CaUVBn7D.js")).runArazzo({
24
+ return (await import("./arazzo-B5-ulWif.js")).runArazzo({
25
25
  cwd: ctx.cwd,
26
26
  config: ctx.config,
27
27
  doc: given(flags.doc),
@@ -1,9 +1,9 @@
1
- import { p as arazzoFindings } from "./src-Cu2m75uo.js";
2
- import { c as missingInput } from "./errors-CWTY6uih.js";
3
- import { i as readJsonFile } from "./files-D_JIzUrP.js";
4
- import { t as ARAZZO_REPORT_SCHEMA } from "./version-CEbQ5UeM.js";
5
- import { a as loadModule, s as pickNamed, t as asPermissionTree } from "./load-DFS_ry0W.js";
6
- import { t as DOCS_BASE } from "./manifest-dvL2XEe1.js";
1
+ import { _ as arazzoFindings } from "./src-DZ0l9UAg.js";
2
+ import { c as missingInput } from "./errors-Vpu6rKHl.js";
3
+ import { i as readJsonFile } from "./files-BSjrtIHw.js";
4
+ import { t as ARAZZO_REPORT_SCHEMA } from "./version-DMQ0dnN5.js";
5
+ import { a as loadModule, s as pickNamed, t as asPermissionTree } from "./load-DjSU5KXO.js";
6
+ import { t as DOCS_BASE } from "./manifest-Cgiq5oqc.js";
7
7
  import { existsSync } from "node:fs";
8
8
  import { resolve } from "node:path";
9
9
  //#region src/cli/arazzo.ts
@@ -1,5 +1,115 @@
1
- import { n as CliError } from "./errors-CWTY6uih.js";
2
- import { closest, distance } from "fastest-levenshtein";
1
+ import { n as CliError } from "./errors-Vpu6rKHl.js";
2
+ //#region ../../node_modules/.pnpm/fastest-levenshtein@1.0.16/node_modules/fastest-levenshtein/esm/mod.js
3
+ const peq = /* @__PURE__ */ new Uint32Array(65536);
4
+ const myers_32 = (a, b) => {
5
+ const n = a.length;
6
+ const m = b.length;
7
+ const lst = 1 << n - 1;
8
+ let pv = -1;
9
+ let mv = 0;
10
+ let sc = n;
11
+ let i = n;
12
+ while (i--) peq[a.charCodeAt(i)] |= 1 << i;
13
+ for (i = 0; i < m; i++) {
14
+ let eq = peq[b.charCodeAt(i)];
15
+ const xv = eq | mv;
16
+ eq |= (eq & pv) + pv ^ pv;
17
+ mv |= ~(eq | pv);
18
+ pv &= eq;
19
+ if (mv & lst) sc++;
20
+ if (pv & lst) sc--;
21
+ mv = mv << 1 | 1;
22
+ pv = pv << 1 | ~(xv | mv);
23
+ mv &= xv;
24
+ }
25
+ i = n;
26
+ while (i--) peq[a.charCodeAt(i)] = 0;
27
+ return sc;
28
+ };
29
+ const myers_x = (b, a) => {
30
+ const n = a.length;
31
+ const m = b.length;
32
+ const mhc = [];
33
+ const phc = [];
34
+ const hsize = Math.ceil(n / 32);
35
+ const vsize = Math.ceil(m / 32);
36
+ for (let i = 0; i < hsize; i++) {
37
+ phc[i] = -1;
38
+ mhc[i] = 0;
39
+ }
40
+ let j = 0;
41
+ for (; j < vsize - 1; j++) {
42
+ let mv = 0;
43
+ let pv = -1;
44
+ const start = j * 32;
45
+ const vlen = Math.min(32, m) + start;
46
+ for (let k = start; k < vlen; k++) peq[b.charCodeAt(k)] |= 1 << k;
47
+ for (let i = 0; i < n; i++) {
48
+ const eq = peq[a.charCodeAt(i)];
49
+ const pb = phc[i / 32 | 0] >>> i & 1;
50
+ const mb = mhc[i / 32 | 0] >>> i & 1;
51
+ const xv = eq | mv;
52
+ const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
53
+ let ph = mv | ~(xh | pv);
54
+ let mh = pv & xh;
55
+ if (ph >>> 31 ^ pb) phc[i / 32 | 0] ^= 1 << i;
56
+ if (mh >>> 31 ^ mb) mhc[i / 32 | 0] ^= 1 << i;
57
+ ph = ph << 1 | pb;
58
+ mh = mh << 1 | mb;
59
+ pv = mh | ~(xv | ph);
60
+ mv = ph & xv;
61
+ }
62
+ for (let k = start; k < vlen; k++) peq[b.charCodeAt(k)] = 0;
63
+ }
64
+ let mv = 0;
65
+ let pv = -1;
66
+ const start = j * 32;
67
+ const vlen = Math.min(32, m - start) + start;
68
+ for (let k = start; k < vlen; k++) peq[b.charCodeAt(k)] |= 1 << k;
69
+ let score = m;
70
+ for (let i = 0; i < n; i++) {
71
+ const eq = peq[a.charCodeAt(i)];
72
+ const pb = phc[i / 32 | 0] >>> i & 1;
73
+ const mb = mhc[i / 32 | 0] >>> i & 1;
74
+ const xv = eq | mv;
75
+ const xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
76
+ let ph = mv | ~(xh | pv);
77
+ let mh = pv & xh;
78
+ score += ph >>> m - 1 & 1;
79
+ score -= mh >>> m - 1 & 1;
80
+ if (ph >>> 31 ^ pb) phc[i / 32 | 0] ^= 1 << i;
81
+ if (mh >>> 31 ^ mb) mhc[i / 32 | 0] ^= 1 << i;
82
+ ph = ph << 1 | pb;
83
+ mh = mh << 1 | mb;
84
+ pv = mh | ~(xv | ph);
85
+ mv = ph & xv;
86
+ }
87
+ for (let k = start; k < vlen; k++) peq[b.charCodeAt(k)] = 0;
88
+ return score;
89
+ };
90
+ const distance = (a, b) => {
91
+ if (a.length < b.length) {
92
+ const tmp = b;
93
+ b = a;
94
+ a = tmp;
95
+ }
96
+ if (b.length === 0) return a.length;
97
+ if (a.length <= 32) return myers_32(a, b);
98
+ return myers_x(a, b);
99
+ };
100
+ const closest = (str, arr) => {
101
+ let min_distance = Infinity;
102
+ let min_index = 0;
103
+ for (let i = 0; i < arr.length; i++) {
104
+ const dist = distance(str, arr[i]);
105
+ if (dist < min_distance) {
106
+ min_distance = dist;
107
+ min_index = i;
108
+ }
109
+ }
110
+ return arr[min_index];
111
+ };
112
+ //#endregion
3
113
  //#region src/cli/core/context.ts
4
114
  /** Flags every command accepts, read from anywhere before `--`. */
5
115
  const GLOBAL_FLAGS = {
@@ -75,7 +185,10 @@ function suggestion(given, names) {
75
185
  const best = didYouMean(given, names);
76
186
  return best === void 0 ? "" : ` Did you mean ${best}?`;
77
187
  }
78
- /** Every spelling a flag set accepts: `--name`, `--no-name` for booleans, `-x` aliases. */
188
+ /**
189
+ * Every spelling a flag set accepts: `--name`, `--no-name` for booleans, `-x`
190
+ * aliases.
191
+ */
79
192
  function lookupOf(flags) {
80
193
  const lookup = /* @__PURE__ */ new Map();
81
194
  for (const [name, flag] of Object.entries(flags)) {
@@ -97,7 +210,10 @@ function lookupOf(flags) {
97
210
  function flagSpellings(flags) {
98
211
  return [...lookupOf(flags).keys()];
99
212
  }
100
- /** A value never starts with `-`, bar `-` itself: `--out --check` is a bare `--out`. */
213
+ /**
214
+ * A value never starts with `-`, bar `-` itself: `--out --check` is a bare
215
+ * `--out`.
216
+ */
101
217
  function isValue(token) {
102
218
  return token !== void 0 && (token === "-" || !token.startsWith("-"));
103
219
  }
@@ -108,8 +224,8 @@ function checkEnum(command, name, flag, value) {
108
224
  if (flag.type === "enum" && !flag.options.includes(value)) throw new CliError("usage", `${command}: --${name} ${value === "" ? "needs a value" : `'${value}' is not one of ${flag.options.join(", ")}`}.${suggestion(value, flag.options)}`, { code: "invalid_value" });
109
225
  }
110
226
  /**
111
- * Splits argv into the flags `flags` declares, positionals and the tokens
112
- * after `--`. An undeclared flag is a usage error naming the nearest one.
227
+ * Splits argv into the flags `flags` declares, positionals and the tokens after
228
+ * `--`. An undeclared flag is a usage error naming the nearest one.
113
229
  * `--name=value`, `--name value`, `--no-name` and `-x` aliases all read.
114
230
  */
115
231
  function parseFlags(command, argv, flags) {
@@ -134,11 +250,12 @@ function parseFlags(command, argv, flags) {
134
250
  const flag = flags[found.name];
135
251
  if (flag === void 0) continue;
136
252
  if (flag.type === "boolean") {
137
- if (eq !== -1) {
253
+ if (eq === -1) values.set(found.name, !found.negated);
254
+ else {
138
255
  const raw = token.slice(eq + 1);
139
256
  if (raw !== "true" && raw !== "false") throw new CliError("usage", `${command}: ${spelling} takes true or false, got '${raw}'`, { code: "invalid_value" });
140
257
  values.set(found.name, raw === "true" !== found.negated);
141
- } else values.set(found.name, !found.negated);
258
+ }
142
259
  continue;
143
260
  }
144
261
  let value;
@@ -1,9 +1,9 @@
1
- import { T as Policy, Vt as Snapshot, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { a as OperationInput, t as Operation } from "../operations-X0VM7F3m.js";
4
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
5
- import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CKQiCnON.js";
6
- import { a as ProtectTarget, i as PermDockHandlers, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-Dw0MTS3D.js";
1
+ import { Gt as Snapshot, T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as OperationInput, t as Operation } from "../operations-Ci_rT6Uo.js";
4
+ import { a as PermDock } from "../permdock-B6Sf4T_S.js";
5
+ import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CIlpSA2G.js";
6
+ import { a as ProtectTarget, i as PermDockHandlers, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-C1DCvpqV.js";
7
7
  import { APIContext, MiddlewareHandler } from "astro";
8
8
  //#region src/astro/create.d.ts
9
9
  type AstroPermDockOptions<TUser = unknown> = FetchAdapterOptions<APIContext, TUser>;
@@ -12,7 +12,10 @@ type AstroPermDockLocals<TData = unknown, V extends PolicyVocabulary = PolicyVoc
12
12
  readonly permdock: PermDock<V>;
13
13
  readonly permdockData: TData;
14
14
  };
15
- /** The context a wrapped endpoint receives: its own `APIContext` with typed `locals`. */
15
+ /**
16
+ * The context a wrapped endpoint receives: its own `APIContext` with typed
17
+ * `locals`.
18
+ */
16
19
  type AstroPermDockContext<TContext extends APIContext = APIContext, TData = unknown, V extends PolicyVocabulary = PolicyVocabulary> = TContext & {
17
20
  readonly locals: AstroPermDockLocals<TData, V>;
18
21
  };
@@ -23,18 +26,33 @@ type AstroProtect<V extends PolicyVocabulary = PolicyVocabulary> = {
23
26
  <TOperation extends Operation>(operation: TOperation, input?: ContextReader<APIContext, OperationInput<TOperation>>, protectOptions?: ProtectOptions): AstroGuarded<unknown, V>;
24
27
  };
25
28
  type AstroPermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
26
- /** `onRequest` in `src/middleware.ts`: sets `context.locals.permdock`; a bad Web Bot Auth signature is a `401`. */
29
+ /**
30
+ * `onRequest` in `src/middleware.ts`: sets `context.locals.permdock`; a bad
31
+ * Web Bot Auth signature is a `401`.
32
+ */
27
33
  readonly middleware: () => MiddlewareHandler;
28
- /** `export const DELETE = protect(permissions.post.delete, loadPost)(handler)`. */
34
+ /**
35
+ * `export const DELETE = protect(permissions.post.delete,
36
+ * loadPost)(handler)`.
37
+ */
29
38
  readonly protect: AstroProtect<V>;
30
- /** Types `context.locals.permdock` for an endpoint and answers a thrown PermDock error with Problem Details. */
39
+ /**
40
+ * Types `context.locals.permdock` for an endpoint and answers a thrown
41
+ * PermDock error with Problem Details.
42
+ */
31
43
  readonly withPermDock: AstroGuarded<unknown, V>;
32
- /** The instance for an endpoint, an action or a page's frontmatter (`Astro` is an `APIContext`). */
44
+ /**
45
+ * The instance for an endpoint, an action or a page's frontmatter (`Astro` is
46
+ * an `APIContext`).
47
+ */
33
48
  readonly getPermDock: (context: APIContext) => Promise<PermDock<V>>;
34
49
  /** The snapshot a page passes to a `permdock/react` island. */
35
50
  readonly getSnapshot: (context: APIContext, query?: SnapshotQuery) => Promise<Snapshot>;
36
51
  readonly connection: (context: APIContext, connectionOptions?: ConnectionOptions) => Promise<Connection>;
37
- /** `export const { GET, POST } = permdockHandler()` in `src/pages/api/permdock.ts`. */
52
+ /**
53
+ * `export const { GET, POST } = permdockHandler()` in
54
+ * `src/pages/api/permdock.ts`.
55
+ */
38
56
  readonly permdockHandler: () => PermDockHandlers<APIContext>;
39
57
  readonly openapi: OpenApiHooks;
40
58
  };
@@ -1,5 +1,5 @@
1
- import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
2
- import { n as guardedRoute, r as instanceRoute, t as fetchAdapter } from "../fetch-adapter-DD_gfmrC.js";
1
+ import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-IBceAeKT.js";
2
+ import { n as guardedRoute, r as instanceRoute, t as fetchAdapter } from "../fetch-adapter-JL43jD3E.js";
3
3
  //#region src/astro/create.ts
4
4
  const route = {
5
5
  context: (context) => context,