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,34 +1,45 @@
1
1
  import { a as sole, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { t as loadPrincipal } from "./principal-source-pHneukrx.js";
4
- import { g as secondsOf, m as rfc3339 } from "./time-DkWjdL98.js";
5
- import { d as scopeList, l as scopeChain, m as tenantOf, o as resolveScope, r as findScope, t as activeFor, u as scopeIdOf } from "./scopes-CUPSjo9q.js";
6
- import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-j6-rc37o.js";
7
- import { r as readWireValidity, t as isActive } from "./validity-CZ7-y0Cj.js";
8
- import { o as resourceRoleCondition } from "./grantee-conditions-CcXf8hMM.js";
9
- import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-DN2QAx9z.js";
10
- import { i as bindConditionRefs, n as parseSnapshot } from "./snapshot-B7DkYg6g.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { t as loadPrincipal } from "./principal-source-C6N60GtM.js";
4
+ import { g as secondsOf, m as rfc3339 } from "./time-nR1JesoH.js";
5
+ import { d as scopeIdOf, f as scopeList, h as tenantOf, r as findScope, s as resolveScope, t as activeFor, u as scopeChain } from "./scopes-0Up_UA2t.js";
6
+ import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-CDB6_keF.js";
7
+ import { r as readWireValidity, t as isActive } from "./validity-Buc7w8E9.js";
8
+ import { o as resourceRoleCondition } from "./grantee-conditions-BrYPe-w0.js";
9
+ import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-5d1zVBvK.js";
10
+ import { a as bindConditionRefs, n as parseSnapshot } from "./snapshot-CXlzi69u.js";
11
11
  //#region src/core/snapshot-sign.ts
12
12
  /**
13
- * Signs `snapshot` as a `vnd.permdock.snapshot+jwt`. `issuedAt` and
14
- * `expiresAt` become `iat` and `exp` and leave the `snapshot` claim, so the
15
- * registered claims are the only times a verifier reads.
13
+ * The claims `signSnapshot` signs for `snapshot`. `issuedAt` and `expiresAt`
14
+ * become `iat` and `exp` and leave the `snapshot` claim, so the registered
15
+ * claims are the only times a verifier reads.
16
16
  */
17
- function signSnapshot(snapshot, signer, options = {}) {
17
+ function snapshotClaims(snapshot) {
18
18
  const { issuedAt, expiresAt, ...claim } = snapshot;
19
- const payload = { snapshot: claim };
20
- if (snapshot.subject.principal !== null) payload["sub"] = snapshot.subject.principal.id;
21
19
  const iat = secondsOf(issuedAt);
20
+ return compact({
21
+ snapshot: claim,
22
+ sub: snapshot.subject.principal?.id,
23
+ iat: iat === void 0 || iat <= 0 ? void 0 : iat,
24
+ exp: secondsOf(expiresAt)
25
+ });
26
+ }
27
+ /**
28
+ * Signs `snapshot` as a `vnd.permdock.snapshot+jwt` with the claims
29
+ * `snapshotClaims` answers.
30
+ */
31
+ function signSnapshot(snapshot, signer, options = {}) {
32
+ const { iat, exp, ...payload } = snapshotClaims(snapshot);
22
33
  return signer.sign(payload, compact({
23
34
  typ: "vnd.permdock.snapshot+jwt",
24
35
  audience: options.audience,
25
- issuedAt: iat === void 0 || iat <= 0 ? void 0 : iat,
26
- expiresAt: secondsOf(expiresAt)
36
+ issuedAt: iat,
37
+ expiresAt: exp
27
38
  }));
28
39
  }
29
40
  /**
30
- * The `snapshot` claim of verified claims with `issuedAt` and `expiresAt`
31
- * taken from `iat` and `exp`; `undefined` when the claim is not an object.
41
+ * The `snapshot` claim of verified claims with `issuedAt` and `expiresAt` taken
42
+ * from `iat` and `exp`; `undefined` when the claim is not an object.
32
43
  */
33
44
  function snapshotClaim(claims) {
34
45
  const claim = claims["snapshot"];
@@ -71,8 +82,8 @@ function deniedFor(permission, reason) {
71
82
  const PEEK = Object.freeze({ call: "can" });
72
83
  /**
73
84
  * What `permission` on `row` decides for the principal `principalId` in the
74
- * caller's active tenant. Never throws, never consumes a limit, and grants
75
- * the caller nothing: the target is a separate instance with its own caches.
85
+ * caller's active tenant. Never throws, never consumes a limit, and grants the
86
+ * caller nothing: the target is a separate instance with its own caches.
76
87
  */
77
88
  async function decideForTarget(caller, principals, create, principalId, permission, row) {
78
89
  if (caller.principal === null) return deniedFor(permission, "anonymous");
@@ -96,6 +107,22 @@ function delegationMayCover(permission, delegation, hasActor) {
96
107
  function blocksEveryRow(grant) {
97
108
  return grant.effect === "deny" && grant.where === void 0 && grant.check === void 0 && grant.portable !== false && grant.fields === void 0 && (grant.scope === void 0 || grant.scope === "tenant");
98
109
  }
110
+ function withinDelegation(permdock, permission, ceiling) {
111
+ return (ceiling === void 0 || ceiling.includes(permission.key)) && !readOnlyActorRefuses(permdock.subject.actor, permission) && delegationMayCover(permission, permdock.subject.delegation, permdock.subject.actor !== void 0 && ceiling === void 0);
112
+ }
113
+ /**
114
+ * Whether the subject's delegation, its delegated ceiling and a read-only actor
115
+ * leave `permission` within reach, whatever the grants say. A hint, never a
116
+ * decision.
117
+ */
118
+ function delegationAllows(permdock, permission) {
119
+ try {
120
+ const snapshot = permdock.snapshot();
121
+ return "grants" in snapshot && withinDelegation(permdock, permission, snapshot.delegated);
122
+ } catch {
123
+ return false;
124
+ }
125
+ }
99
126
  /**
100
127
  * Whether `permission` could be granted to this instance's subject for some
101
128
  * row: the grants its snapshot carries for the active tenant, minus an
@@ -105,10 +132,7 @@ function blocksEveryRow(grant) {
105
132
  function mayUse(permdock, permission) {
106
133
  try {
107
134
  const snapshot = permdock.snapshot();
108
- if (!("grants" in snapshot)) return false;
109
- const ceiling = snapshot.delegated;
110
- if (ceiling !== void 0 && !ceiling.includes(permission.key) || readOnlyActorRefuses(permdock.subject.actor, permission)) return false;
111
- if (!delegationMayCover(permission, permdock.subject.delegation, permdock.subject.actor !== void 0 && ceiling === void 0)) return false;
135
+ if (!("grants" in snapshot) || !withinDelegation(permdock, permission, snapshot.delegated)) return false;
112
136
  const tenant = permdock.subject.principal?.tenant;
113
137
  const scopes = scopeList(snapshot.scopes);
114
138
  const grants = snapshot.grants.filter((grant) => {
@@ -143,8 +167,7 @@ function permittedIds(permdock, permission, scope, options = {}) {
143
167
  if (!("grants" in snapshot)) return [];
144
168
  const scopes = scopeList(snapshot.scopes);
145
169
  const name = resolveScope(scopes, scope);
146
- const ceiling = snapshot.delegated;
147
- if (name === void 0 || ceiling !== void 0 && !ceiling.includes(permission.key) || readOnlyActorRefuses(permdock.subject.actor, permission) || !delegationMayCover(permission, permdock.subject.delegation, permdock.subject.actor !== void 0 && ceiling === void 0)) return [];
170
+ if (name === void 0 || !withinDelegation(permdock, permission, snapshot.delegated)) return [];
148
171
  const conditioned = options.conditioned === true;
149
172
  const now = nowSeconds();
150
173
  const allowed = /* @__PURE__ */ new Set();
@@ -178,12 +201,15 @@ function eq(field, value) {
178
201
  value
179
202
  };
180
203
  }
181
- /** One equality per partitioning scope key on the membership's chain, outermost first. */
204
+ /**
205
+ * One equality per partitioning scope key on the membership's chain, outermost
206
+ * first.
207
+ */
182
208
  function namedFilters(membership, scope) {
183
209
  if (findScope(scope.scopes, membership.scope ?? "") === void 0 || !inTeam(membership, scope.scopes, scope.team) || !activeFor(membership, scope.scopes, scope.tenant) || membership.scope === void 0) return null;
184
210
  const filters = [];
185
211
  for (const name of scopeChain(scope.scopes, membership.scope).toReversed()) {
186
- const key = scope.fieldOf?.(name) ?? findScope(scope.scopes, name)?.key;
212
+ const key = scope.fieldOf(name);
187
213
  if (key !== void 0 && scope.partitioned(name, key)) filters.push(eq(key, scopeIdOf(membership, name)));
188
214
  }
189
215
  return filters;
@@ -303,4 +329,4 @@ function whereFromGrants(grants, scope) {
303
329
  return freezeDeep(result);
304
330
  }
305
331
  //#endregion
306
- export { deniedFor as a, snapshotFromClaims as c, decideForTarget as i, mayUse as n, signSnapshot as o, permittedIds as r, snapshotClaim as s, whereFromGrants as t };
332
+ export { decideForTarget as a, snapshotClaim as c, permittedIds as i, snapshotClaims as l, delegationAllows as n, deniedFor as o, mayUse as r, signSnapshot as s, whereFromGrants as t, snapshotFromClaims as u };
@@ -1,18 +1,18 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { r as ownGet } from "./paths-DXSHAMIa.js";
4
- import { n as internalsOf } from "./internals-Dk8A8fX3.js";
5
- import { a as getResource } from "./permission-registry-Br4jSNVi.js";
6
- import { a as expandRelation, c as isEdgeRelation, l as isFieldRelation, u as isPrincipalRelation } from "./resource-relations-D_jw0BFx.js";
7
- import { s as instantAt } from "./time-DkWjdL98.js";
8
- import { a as normalizeMemberships, c as rootScope, d as scopeList, o as resolveScope } from "./scopes-CUPSjo9q.js";
9
- import { o as flattenGrantee } from "./grantee-hxrUsbpM.js";
10
- import { r as relationCondition } from "./grantee-conditions-CcXf8hMM.js";
11
- import { c as nowSeconds, p as scopeField } from "./tenancy-DN2QAx9z.js";
12
- import { t as byCodePoint } from "./compare-pfyVnBjE.js";
13
- import { T as emptyListeners, t as evaluate } from "./evaluate-CNClBvcj.js";
14
- import { n as relationId, t as pendingRelations } from "./relations-BnCWnJGI.js";
15
- import { t as relationWalk } from "./relation-walk-3OyDBF0S.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { r as ownGet } from "./paths-CUvURzHp.js";
4
+ import { n as internalsOf } from "./internals-B3IgHrvo.js";
5
+ import { a as getResource } from "./permission-registry-B8tYxPIt.js";
6
+ import { a as expandRelation, c as isEdgeRelation, l as isFieldRelation, u as isPrincipalRelation } from "./resource-relations-8-pCScBO.js";
7
+ import { s as instantAt } from "./time-nR1JesoH.js";
8
+ import { f as scopeList, l as rootScope, o as normalizeMemberships, s as resolveScope } from "./scopes-0Up_UA2t.js";
9
+ import { o as flattenGrantee } from "./grantee-Dke-9rd1.js";
10
+ import { t as byCodePoint } from "./compare-DTfyUunF.js";
11
+ import { r as relationCondition } from "./grantee-conditions-BrYPe-w0.js";
12
+ import { c as nowSeconds, p as scopeField } from "./tenancy-5d1zVBvK.js";
13
+ import { D as emptyListeners, t as evaluate } from "./evaluate-Dd8Ta0Ie.js";
14
+ import { n as relationId, t as pendingRelations } from "./relations-BxvRvDHK.js";
15
+ import { t as relationWalk } from "./relation-walk-DK_gkgL7.js";
16
16
  //#region src/core/who-can.ts
17
17
  const MAX_ROUNDS = 48;
18
18
  async function settle(cache) {
@@ -22,7 +22,10 @@ async function settle(cache) {
22
22
  await Promise.all(pending);
23
23
  }
24
24
  }
25
- /** The holders on each instance a graph relation reads, or `undefined` when the graph cannot say. */
25
+ /**
26
+ * The holders on each instance a graph relation reads, or `undefined` when the
27
+ * graph cannot say.
28
+ */
26
29
  async function walkHolders(condition, row, reader, cache) {
27
30
  let walk = relationWalk(condition, row, reader);
28
31
  if (walk === "relation-unavailable") {
@@ -246,11 +249,11 @@ function memberLister(source, scopes) {
246
249
  };
247
250
  }
248
251
  /**
249
- * Who holds `permission` on `resource` for the instance's policy and how
250
- * (role, relation or share), from `MembershipSource.list` and
251
- * `RelationSource.related`. It lists and never grants; `complete: false`
252
- * means some holders could not be listed. An instance built from a
253
- * snapshot answers an empty, incomplete list.
252
+ * Who holds `permission` on `resource` for the instance's policy and how (role,
253
+ * relation or share), from `MembershipSource.list` and
254
+ * `RelationSource.related`. It lists and never grants; `complete: false` means
255
+ * some holders could not be listed. An instance built from a snapshot answers
256
+ * an empty, incomplete list.
254
257
  */
255
258
  function whoCan(permdock, permission, resource) {
256
259
  const internals = internalsOf(permdock);
@@ -1,5 +1,5 @@
1
- import { a as AutomationSource, i as AutomationRequest, l as memoryAutomationSource, n as AutomationDecision, r as AutomationMode, s as MemoryAutomationSource, t as Automation, u as parseAutomation } from "../automation-BNM3TtDo.js";
2
- import { i as pollingApprovalWaiter, n as ApprovalWaiter, r as PollingApprovalWaiterOptions, t as ApprovalWaitOptions } from "../waiter-B986w1oK.js";
3
- import { a as WorkflowPermDockOptions, i as WorkflowPermDock, n as AwaitApprovalOptions, o as createPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-D_NmPOdH.js";
1
+ import { a as AutomationSource, i as AutomationRequest, l as memoryAutomationSource, n as AutomationDecision, r as AutomationMode, s as MemoryAutomationSource, t as Automation, u as parseAutomation } from "../automation-DqEoWHBc.js";
2
+ import { i as pollingApprovalWaiter, n as ApprovalWaiter, r as PollingApprovalWaiterOptions, t as ApprovalWaitOptions } from "../waiter-Bu9zAlE0.js";
3
+ import { a as WorkflowPermDockOptions, i as WorkflowPermDock, n as AwaitApprovalOptions, o as createPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-CM1FciYG.js";
4
4
  import "../index-CaxrMD1A.js";
5
5
  export { type ApprovalWaitOptions, type ApprovalWaiter, type Automation, type AutomationDecision, type AutomationMode, type AutomationOptions, type AutomationRequest, type AutomationSource, type AwaitApprovalOptions, type MemoryAutomationSource, type PollingApprovalWaiterOptions, type StartAutomationResult, type WorkflowPermDock, type WorkflowPermDockOptions, createPermDock, memoryAutomationSource, parseAutomation, pollingApprovalWaiter };
@@ -1,13 +1,13 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
3
- import { n as findPermission } from "../permission-registry-Br4jSNVi.js";
4
- import { n as isThenable } from "../thenable-yD7SabqG.js";
5
- import { n as memoryAutomationSource, r as parseAutomation } from "../automation-DVjOckjV.js";
6
- import { c as withApp, t as getPermDock } from "../permdock-BrAscV28.js";
7
- import { o as automationEvent } from "../sink-BEZSlMS_.js";
8
- import { a as requestApproval, s as resumeDecision } from "../helpers-CBYVMjwh.js";
9
- import { n as signRunTicket, r as subjectFromRunTicket } from "../run-ticket-sxFI6LAk.js";
10
- import { t as pollingApprovalWaiter } from "../waiter-BGUtGYoU.js";
2
+ import { n as freezeDeep } from "../freeze-jjan0lCv.js";
3
+ import { n as findPermission } from "../permission-registry-B8tYxPIt.js";
4
+ import { n as isThenable } from "../thenable-BNSM1U2R.js";
5
+ import { n as memoryAutomationSource, r as parseAutomation } from "../automation-x3KEUusw.js";
6
+ import { l as withApp, t as getPermDock } from "../permdock-L-_I_3zP.js";
7
+ import { o as automationEvent } from "../sink-D9_vh372.js";
8
+ import { a as requestApproval, s as resumeDecision } from "../helpers-DJicaG6f.js";
9
+ import { i as subjectFromRunTicket, r as signRunTicket } from "../run-ticket-Dv7aF7Dk.js";
10
+ import { t as pollingApprovalWaiter } from "../waiter-aBLM63_f.js";
11
11
  //#region src/workflow/create.ts
12
12
  function writeQuietly(sink, event) {
13
13
  try {
@@ -47,10 +47,10 @@ function targetOf(permission, data, resource) {
47
47
  });
48
48
  }
49
49
  /**
50
- * Creates the PermDock for durable runs of published automations. A run
51
- * acts as the automation's principal with that principal's rights at each
52
- * step, narrowed to the automation's operations; the trigger is recorded
53
- * and never grants.
50
+ * Creates the PermDock for durable runs of published automations. A run acts as
51
+ * the automation's principal with that principal's rights at each step,
52
+ * narrowed to the automation's operations; the trigger is recorded and never
53
+ * grants.
54
54
  */
55
55
  function createPermDock(policy, given) {
56
56
  const { signer, verifier, principals, automations, store: approvals, waiter, audience, issuer, expiresIn = DEFAULT_TTL, onAuth, ...permdockOptions } = withApp(policy, given);
@@ -1,13 +1,16 @@
1
- import { Nn as Decision } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
4
- import { n as ApprovalWaiter } from "../waiter-B986w1oK.js";
5
- import { i as WorkflowPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-D_NmPOdH.js";
1
+ import { Ln as Decision } from "../policy-types-CCiDRZBH.js";
2
+ import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
+ import { a as PermDock } from "../permdock-B6Sf4T_S.js";
4
+ import { n as ApprovalWaiter } from "../waiter-Bu9zAlE0.js";
5
+ import { i as WorkflowPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-CM1FciYG.js";
6
6
  //#region src/workflow-sdk/index.d.ts
7
- /** The part of a Workflow SDK `Hook` the waiter reads: awaiting it suspends the run. */
7
+ /**
8
+ * The part of a Workflow SDK `Hook` the waiter reads: awaiting it suspends the
9
+ * run.
10
+ */
8
11
  export type WorkflowSdkHook = {
9
12
  readonly then: PromiseLike<unknown>["then"];
10
- dispose(): void;
13
+ dispose: () => void;
11
14
  };
12
15
  /** `createHook` from `workflow`; valid only inside a `"use workflow"` function. */
13
16
  export type WorkflowSdkCreateHook = (options: {
@@ -22,16 +25,19 @@ export type WorkflowSdkStart<TArgs extends unknown[], TRun> = (workflow: (ticket
22
25
  export type WorkflowSdkWaiterOptions = {
23
26
  readonly createHook: WorkflowSdkCreateHook;
24
27
  readonly resumeHook: WorkflowSdkResumeHook;
25
- /** With `sleep`, a wait ends at the request's `expiresAt`; without it, only a wake ends it. */
28
+ /**
29
+ * With `sleep`, a wait ends at the request's `expiresAt`; without it, only a
30
+ * wake ends it.
31
+ */
26
32
  readonly sleep?: WorkflowSdkSleep;
27
33
  };
28
34
  /** The Workflow SDK hook token a run parks on while approval `token` is pending. */
29
35
  export declare function approvalHookToken(token: string): string;
30
36
  /**
31
37
  * An `ApprovalWaiter` over Workflow SDK hooks. `wait` parks the run on a hook
32
- * and must run inside the workflow function; `wake` resumes it from an
33
- * approval handler. The hook carries no verdict: the run decides again from
34
- * the approval store after it wakes.
38
+ * and must run inside the workflow function; `wake` resumes it from an approval
39
+ * handler. The hook carries no verdict: the run decides again from the approval
40
+ * store after it wakes.
35
41
  */
36
42
  export declare function workflowSdkWaiter(options: WorkflowSdkWaiterOptions): ApprovalWaiter;
37
43
  export type StartAutomationRunResult<TRun> = (Extract<StartAutomationResult, {
@@ -49,8 +55,8 @@ export type StartAutomationRunResult<TRun> = (Extract<StartAutomationResult, {
49
55
  export declare function startAutomation<TArgs extends unknown[], TRun>(workflow: Pick<WorkflowPermDock, "start">, start: WorkflowSdkStart<TArgs, TRun>, run: (ticket: string, ...args: TArgs) => Promise<unknown>, id: string, args: TArgs, options?: AutomationOptions): Promise<StartAutomationRunResult<TRun>>;
50
56
  /**
51
57
  * Resumes hook `token` with `payload` only when `caller` is granted
52
- * `permission` on `row`. A token alone never resumes a run. A hook that is
53
- * gone or a resume that throws denies with `validation`.
58
+ * `permission` on `row`. A token alone never resumes a run. A hook that is gone
59
+ * or a resume that throws denies with `validation`.
54
60
  */
55
61
  export declare function authorizeHook(resumeHook: WorkflowSdkResumeHook, caller: PermDock, permission: Permission, row: unknown, token: string, payload: unknown): Promise<Decision>;
56
62
  //#endregion
@@ -1,4 +1,4 @@
1
- import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
1
+ import { n as freezeDeep } from "../freeze-jjan0lCv.js";
2
2
  //#region src/workflow-sdk/index.ts
3
3
  const HOOK_PREFIX = "permdock:approval:";
4
4
  /** The Workflow SDK hook token a run parks on while approval `token` is pending. */
@@ -7,9 +7,9 @@ function approvalHookToken(token) {
7
7
  }
8
8
  /**
9
9
  * An `ApprovalWaiter` over Workflow SDK hooks. `wait` parks the run on a hook
10
- * and must run inside the workflow function; `wake` resumes it from an
11
- * approval handler. The hook carries no verdict: the run decides again from
12
- * the approval store after it wakes.
10
+ * and must run inside the workflow function; `wake` resumes it from an approval
11
+ * handler. The hook carries no verdict: the run decides again from the approval
12
+ * store after it wakes.
13
13
  */
14
14
  function workflowSdkWaiter(options) {
15
15
  const { createHook, resumeHook, sleep } = options;
@@ -61,8 +61,8 @@ function hookDenied() {
61
61
  }
62
62
  /**
63
63
  * Resumes hook `token` with `payload` only when `caller` is granted
64
- * `permission` on `row`. A token alone never resumes a run. A hook that is
65
- * gone or a resume that throws denies with `validation`.
64
+ * `permission` on `row`. A token alone never resumes a run. A hook that is gone
65
+ * or a resume that throws denies with `validation`.
66
66
  */
67
67
  async function authorizeHook(resumeHook, caller, permission, row, token, payload) {
68
68
  const decision = caller.decide(permission, row);
@@ -1,15 +1,21 @@
1
- import { n as internalsOf, t as attachInternals } from "./internals-Dk8A8fX3.js";
1
+ import { n as internalsOf, t as attachInternals } from "./internals-B3IgHrvo.js";
2
+ import { i as decideAllWith, n as canAllWith } from "./checks-CGkP3Z7A.js";
2
3
  //#region src/core/wrap.ts
3
4
  /**
4
5
  * A frozen copy of `permdock` with the members `overrides` returns replaced.
5
- * `overrides` runs again for every instance `tenant()`, `team()` and
6
- * `derive()` return, so a wrapper never falls off a derived instance.
6
+ * `overrides` runs again for every instance `tenant()`, `team()` and `derive()`
7
+ * return, so a wrapper never falls off a derived instance.
7
8
  */
8
9
  function wrapPermDock(permdock, overrides) {
9
10
  const wrap = (next) => wrapPermDock(next, overrides);
10
- const wrapped = {
11
+ const replaced = {
11
12
  ...permdock,
12
- ...overrides(permdock),
13
+ ...overrides(permdock)
14
+ };
15
+ const wrapped = {
16
+ ...replaced,
17
+ canAll: (checks, options) => canAllWith(replaced.can, checks, options),
18
+ decideAll: (checks, options) => decideAllWith(replaced.decide, checks, options),
13
19
  tenant: (id) => wrap(permdock.tenant(id)),
14
20
  team: (id) => wrap(permdock.team(id)),
15
21
  derive: async (options) => wrap(await permdock.derive(options))
@@ -1,14 +1,17 @@
1
- import { j as PolicyVocabulary } from "./policy-types-n0uRTsW8.js";
2
- import { r as PermDock } from "./permdock-SV8ZINYT.js";
1
+ import { j as PolicyVocabulary } from "./policy-types-CCiDRZBH.js";
2
+ import { a as PermDock } from "./permdock-B6Sf4T_S.js";
3
3
  //#region src/core/wrap.d.ts
4
4
  /** A wrapper an adapter applies to each instance it builds, as `withOtel` does. */
5
5
  type PermDockWrap = <V extends PolicyVocabulary>(permdock: PermDock<V>) => PermDock<V>;
6
- /** The members `wrapPermDock` replaces; it re-wraps the derived instances itself. */
6
+ /**
7
+ * The members `wrapPermDock` replaces; it re-wraps the derived instances
8
+ * itself.
9
+ */
7
10
  type PermDockOverrides<V extends PolicyVocabulary = PolicyVocabulary> = Partial<Omit<PermDock<V>, "tenant" | "team" | "derive">>;
8
11
  /**
9
12
  * A frozen copy of `permdock` with the members `overrides` returns replaced.
10
- * `overrides` runs again for every instance `tenant()`, `team()` and
11
- * `derive()` return, so a wrapper never falls off a derived instance.
13
+ * `overrides` runs again for every instance `tenant()`, `team()` and `derive()`
14
+ * return, so a wrapper never falls off a derived instance.
12
15
  */
13
16
  declare function wrapPermDock<V extends PolicyVocabulary = PolicyVocabulary>(permdock: PermDock<V>, overrides: (permdock: PermDock<V>) => PermDockOverrides<V>): PermDock<V>;
14
17
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "permdock",
3
- "version": "0.6.0",
3
+ "version": "0.8.0",
4
4
  "description": "Typed permissions for TypeScript apps, APIs, databases, and AI agents, with the permdock CLI and test runners.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -271,6 +271,14 @@
271
271
  "types": "./dist/testing/index.d.ts",
272
272
  "default": "./dist/testing/index.js"
273
273
  },
274
+ "./testing/core": {
275
+ "types": "./dist/testing/core.d.ts",
276
+ "default": "./dist/testing/core.js"
277
+ },
278
+ "./testing/fixtures": {
279
+ "types": "./dist/testing/fixtures/index.d.ts",
280
+ "default": "./dist/testing/fixtures/index.js"
281
+ },
274
282
  "./testing/saas": {
275
283
  "types": "./dist/testing/saas/index.d.ts",
276
284
  "default": "./dist/testing/saas/index.js"
@@ -299,26 +307,23 @@
299
307
  "types": "./dist/unplugin/index.d.ts",
300
308
  "default": "./dist/unplugin/index.js"
301
309
  },
302
- "./schemas/*": "./schemas/*"
310
+ "./schemas/*": "./schemas/*",
311
+ "./package.json": "./package.json"
303
312
  },
304
313
  "publishConfig": {
305
314
  "access": "public",
306
315
  "provenance": true
307
316
  },
308
317
  "dependencies": {
309
- "@clack/prompts": "1.8.1",
310
318
  "@standard-schema/spec": "1.1.0",
311
- "diff": "9.0.0",
312
- "fastest-levenshtein": "1.0.16",
313
319
  "jiti": "2.7.0",
314
- "oxc-parser": "0.154.0",
315
- "package-manager-detector": "1.9.0",
316
- "smol-toml": "1.9.1"
320
+ "oxc-parser": "0.154.0"
317
321
  },
318
322
  "devDependencies": {
319
323
  "@anthropic-ai/claude-agent-sdk": "0.3.301",
320
324
  "@arethetypeswrong/cli": "0.18.5",
321
325
  "@babel/core": "8.0.7",
326
+ "@clack/prompts": "1.8.1",
322
327
  "@modelcontextprotocol/client": "2.3.1",
323
328
  "@modelcontextprotocol/server": "2.3.1",
324
329
  "@nestjs/common": "12.1.3",
@@ -348,13 +353,15 @@
348
353
  "ajv": "8.20.0",
349
354
  "astro": "7.4.0",
350
355
  "babel-plugin-react-compiler": "1.0.0",
351
- "better-supabase": "0.9.0",
352
- "better-supabase-floor": "npm:better-supabase@0.9.0",
356
+ "better-supabase": "0.13.0",
357
+ "better-supabase-floor": "npm:better-supabase@0.13.0",
353
358
  "chat": "4.42.0",
359
+ "diff": "9.0.0",
354
360
  "drizzle-orm": "1.0.0-rc.5-5935859",
355
361
  "elysia": "1.4.30",
356
362
  "eve": "0.79.2",
357
363
  "express": "5.3.0",
364
+ "fastest-levenshtein": "1.0.16",
358
365
  "fastify": "5.12.7",
359
366
  "h3": "2.0.2",
360
367
  "happy-dom": "20.14.5",
@@ -362,8 +369,9 @@
362
369
  "jose": "6.2.12",
363
370
  "kysely": "0.29.6",
364
371
  "next": "16.4.1",
365
- "oxlint": "1.88.0",
372
+ "oxlint": "1.89.0",
366
373
  "oxlint-tsgolint": "7.0.2004",
374
+ "package-manager-detector": "1.9.0",
367
375
  "pg": "8.23.1",
368
376
  "pgsql-parser": "18.2.12",
369
377
  "publint": "0.3.25",
@@ -372,6 +380,7 @@
372
380
  "reflect-metadata": "0.2.2",
373
381
  "resend": "6.33.0",
374
382
  "rxjs": "7.8.2",
383
+ "smol-toml": "1.9.1",
375
384
  "solid-js": "1.9.17",
376
385
  "svelte": "5.57.2",
377
386
  "temporal-polyfill": "1.0.6",
@@ -402,7 +411,7 @@
402
411
  "@trpc/server": ">=11",
403
412
  "ai": ">=5",
404
413
  "astro": ">=5",
405
- "better-supabase": ">=0.9.0",
414
+ "better-supabase": ">=0.13.0",
406
415
  "chat": ">=4",
407
416
  "drizzle-orm": ">=0.40 || >=1.0.0-rc.0",
408
417
  "elysia": ">=1",
@@ -411,12 +420,12 @@
411
420
  "fastify": ">=5",
412
421
  "h3": ">=2",
413
422
  "hono": ">=4",
414
- "jose": "^6",
423
+ "jose": ">=6",
415
424
  "kysely": ">=0.27",
416
425
  "next": ">=16.3",
417
426
  "pg": ">=8",
418
427
  "pgsql-parser": ">=18",
419
- "react": "^19",
428
+ "react": ">=19",
420
429
  "reflect-metadata": ">=0.1",
421
430
  "resend": ">=6",
422
431
  "rxjs": ">=7",
@@ -556,6 +565,8 @@
556
565
  "bench": "vitest bench --run --project \"node (bench)\" --reporter=verbose",
557
566
  "build": "tsdown",
558
567
  "check:publish": "publint && pnpm pack --out pack.tgz && attw --profile esm-only pack.tgz && rm -f pack.tgz",
568
+ "gen": "node ../../scripts/testing-fixtures.ts",
569
+ "gen:check": "node ../../scripts/testing-fixtures.ts --check",
559
570
  "lint": "oxlint --disable-nested-config --type-aware",
560
571
  "test": "vitest run --coverage",
561
572
  "typecheck": "tsc --noEmit && tsc --noEmit -p tests/tsconfig.json"
@@ -274,6 +274,9 @@
274
274
  "type": "string"
275
275
  }
276
276
  },
277
+ "orderedLevels": {
278
+ "const": true
279
+ },
277
280
  "hostable": {
278
281
  "const": true
279
282
  },
@@ -77,6 +77,7 @@
77
77
  "dirty_worktree",
78
78
  "write_failed",
79
79
  "check_failed",
80
+ "catalog_invalid",
80
81
  "input_required",
81
82
  "consent_required",
82
83
  "cancelled",