permdock 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +1 -3
  2. package/dist/a2a/index.d.ts +7 -7
  3. package/dist/a2a/index.js +8 -8
  4. package/dist/action-result-CL-QCITA.d.ts +19 -0
  5. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  6. package/dist/{adoption-scan-D-feE7BE.js → adoption-scan-BLs67P1l.js} +5 -5
  7. package/dist/agent/index.d.ts +2 -2
  8. package/dist/agent/index.js +1 -1
  9. package/dist/ai-sdk/index.d.ts +19 -13
  10. package/dist/ai-sdk/index.js +6 -6
  11. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  12. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  13. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  14. package/dist/{approval-prompt-K0faOLFp.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  15. package/dist/approvals/index.d.ts +4 -4
  16. package/dist/approvals/index.js +6 -6
  17. package/dist/{approvals-CMRfsbBh.js → approvals-DnIBTuXE.js} +66 -42
  18. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  19. package/dist/{arazzo-ClrF3PVb.js → arazzo-3RhGfkAK.js} +2 -2
  20. package/dist/{arazzo-rdeJ8n1J.js → arazzo-B5-ulWif.js} +6 -6
  21. package/dist/{args-CC3OwyHW.js → args-0FrVs5EH.js} +14 -7
  22. package/dist/astro/index.d.ts +30 -12
  23. package/dist/astro/index.js +2 -2
  24. package/dist/{audience-BrMs8c4o.js → audience-BAkBDMqn.js} +8 -8
  25. package/dist/{auth-CscUX8Sy.js → auth--yPyZNgr.js} +19 -7
  26. package/dist/authzen/index.d.ts +34 -28
  27. package/dist/authzen/index.js +23 -20
  28. package/dist/{automation-DOtAFWdy.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  29. package/dist/{automation-ySsxp_Yp.js → automation-x3KEUusw.js} +22 -21
  30. package/dist/better-auth/index.d.ts +2 -2
  31. package/dist/better-auth/index.js +13 -7
  32. package/dist/better-supabase/index.d.ts +357 -227
  33. package/dist/better-supabase/index.js +219 -140
  34. package/dist/{bind-JDuvxjuW.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  35. package/dist/{bind-D1nO6fiC.js → bind-D_sZSVA3.js} +22 -10
  36. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  37. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  38. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  39. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  40. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  41. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  42. package/dist/{build-instance-DxE7czo9.js → build-instance-CNWaYJyr.js} +3 -3
  43. package/dist/{capability-L7NnfhiE.js → capability-BqX94r07.js} +31 -25
  44. package/dist/{capability-D4UC9TTW.d.ts → capability-ChuiONQU.d.ts} +41 -29
  45. package/dist/{casbin-BW9pS47J.js → casbin-H0rKxBx2.js} +16 -8
  46. package/dist/{casbin-BHijLuHY.js → casbin-cbSbhT_k.js} +2 -2
  47. package/dist/{casl-CmJlgziS.js → casl-C4OINZHI.js} +2 -2
  48. package/dist/{casl-UbI8v-Wq.js → casl-CHHoCldP.js} +19 -10
  49. package/dist/catalog/index.d.ts +51 -30
  50. package/dist/catalog/index.js +18 -15
  51. package/dist/{catalog-D69WhFii.js → catalog-BFpz2EmT.js} +20 -19
  52. package/dist/{catalog-BaMQfQ6Y.js → catalog-DCspHDc8.js} +3 -3
  53. package/dist/{catalog-doc-CV9s6B1S.js → catalog-doc-DjMKzJp9.js} +28 -14
  54. package/dist/{catalog-fingerprint-C144oW4M.js → catalog-fingerprint-e6aCWosn.js} +18 -14
  55. package/dist/catalog-mRQQQhNK.js +1 -0
  56. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  57. package/dist/{challenge-nGWma08S.js → challenge-DImNcR7B.js} +48 -27
  58. package/dist/chat/index.d.ts +1 -1
  59. package/dist/chat/index.js +13 -10
  60. package/dist/chat-sdk/index.d.ts +44 -26
  61. package/dist/chat-sdk/index.js +17 -17
  62. package/dist/{checks-BC_0mPIq.js → checks-CGkP3Z7A.js} +4 -1
  63. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  64. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  65. package/dist/claude-agent/index.d.ts +6 -6
  66. package/dist/claude-agent/index.js +6 -3
  67. package/dist/clerk/index.d.ts +11 -7
  68. package/dist/clerk/index.js +6 -6
  69. package/dist/cli/bin.js +4 -4
  70. package/dist/cli/index.d.ts +82 -7
  71. package/dist/cli/index.js +6 -6
  72. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  73. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  74. package/dist/cloud/index.d.ts +84 -52
  75. package/dist/cloud/index.js +53 -39
  76. package/dist/{cloud-CO8pYtwr.js → cloud-BFlGMaak.js} +4 -5
  77. package/dist/{codemod-i4N2BhDc.js → codemod-DLQ9Zpo4.js} +3 -4
  78. package/dist/{codemod-BP6n8N9L.js → codemod-DWSN2erG.js} +523 -201
  79. package/dist/collect-B5BL3klN.js +1 -0
  80. package/dist/{collect-BaWeMjwV.js → collect-B7ZFAJU3.js} +26 -63
  81. package/dist/{collect-DNm3oKOk.js → collect-Bzv3le0A.js} +4 -5
  82. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  83. package/dist/compile/index.d.ts +2 -2
  84. package/dist/compile/index.js +1 -1
  85. package/dist/{compile-COM2VKuN.d.ts → compile-BFzysW3o.d.ts} +36 -12
  86. package/dist/{compile-BAEO5bOk.js → compile-EzEMB-7v.js} +77 -33
  87. package/dist/{completion-BNdVf7X2.js → completion-saoYiRFO.js} +17 -8
  88. package/dist/config-BwPBfN0t.js +108 -0
  89. package/dist/{config-DGZzMV1B.js → config-DBeXXmBF.js} +2 -2
  90. package/dist/{config-report-Cm7UITNA.js → config-report-BipSWA6V.js} +9 -6
  91. package/dist/config-shape-ykV0Vm2n.js +134 -0
  92. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  93. package/dist/{connector-schema-_VCSsdtD.js → connector-schema-CYLQNMYq.js} +3 -2
  94. package/dist/{context--uM9V3Ui.js → context-BnIzxTNE.js} +4 -3
  95. package/dist/convex/index.d.ts +13 -7
  96. package/dist/convex/index.js +9 -6
  97. package/dist/{core-B5-w6Kw9.js → core-H-mbhpZc.js} +26 -20
  98. package/dist/{core-CQkE8Esr.d.ts → core-hWIARPDz.d.ts} +49 -22
  99. package/dist/{create-UTnUVETj.d.ts → create-BSNrVuxh.d.ts} +70 -37
  100. package/dist/{create-B2-CQqCI.d.ts → create-BVq1lNQE.d.ts} +49 -28
  101. package/dist/{create-QHuuPw3q.d.ts → create-CM1FciYG.d.ts} +37 -29
  102. package/dist/{create-Cb86Z8Im.js → create-Cq4Uox0f.js} +10 -7
  103. package/dist/{create-DJrlhEp9.js → create-_noSrY1T.js} +15 -21
  104. package/dist/{credential-CIM7wHwA.js → credential-CyyyvCsL.js} +41 -38
  105. package/dist/{credentials-BpuTwd7a.js → credentials-CdDxp7jN.js} +6 -6
  106. package/dist/{deciding-columns-DRo2QM6E.js → deciding-columns-NB4wcyBf.js} +2 -2
  107. package/dist/{delegation-C5rOdTp5.js → delegation-CDB6_keF.js} +31 -22
  108. package/dist/delivery/index.d.ts +4 -4
  109. package/dist/delivery/index.js +5 -5
  110. package/dist/{delivery-rwOKLWRm.js → delivery-BupfvJIV.js} +34 -22
  111. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  112. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  113. package/dist/{describe-DZlnEtLy.js → describe-Bb4hGK5d.js} +5 -5
  114. package/dist/{describe-O0SwYIK8.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  115. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  116. package/dist/{diff-Btr1c1Ow.js → diff-CN8IYhC_.js} +2 -2
  117. package/dist/{diff-DzT-xD13.js → diff-iZWV65nC.js} +22 -13
  118. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  119. package/dist/{doctor-BU1szn63.js → doctor-CHD1M9R5.js} +287 -135
  120. package/dist/{doctor-BoK_y0KO.js → doctor-D3wo-yuz.js} +4 -4
  121. package/dist/drizzle/index.d.ts +33 -19
  122. package/dist/drizzle/index.js +17 -9
  123. package/dist/elysia/index.d.ts +17 -11
  124. package/dist/elysia/index.js +5 -5
  125. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  126. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  127. package/dist/{errors-DpP_U6Bf.js → errors-Vpu6rKHl.js} +13 -10
  128. package/dist/{errors-B_Qg9D3e.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  129. package/dist/{evaluate-B_oqFbWC.js → evaluate-Dd8Ta0Ie.js} +140 -78
  130. package/dist/{evaluations-DReoiVBw.js → evaluations-IBceAeKT.js} +40 -19
  131. package/dist/{evaluations-BCddEOfO.d.ts → evaluations-z8dQFDaN.d.ts} +11 -5
  132. package/dist/eve/index.d.ts +9 -6
  133. package/dist/eve/index.js +4 -4
  134. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  135. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  136. package/dist/express/index.d.ts +9 -6
  137. package/dist/express/index.js +9 -6
  138. package/dist/fastify/index.d.ts +16 -10
  139. package/dist/fastify/index.js +8 -5
  140. package/dist/{fetch-adapter-CuhyYwC1.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  141. package/dist/{fetch-adapter-De-u6vhJ.js → fetch-adapter-JL43jD3E.js} +14 -11
  142. package/dist/fields-D0vUI6dq.js +498 -0
  143. package/dist/{files-acUbNwWt.js → files-B3AA05f1.js} +8 -5
  144. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  145. package/dist/{fixtures-BTMW6zgU.js → fixtures-A1_sp_tR.js} +15 -6
  146. package/dist/{flags-aaeRAdiD.js → flags-DXjoTVbS.js} +2 -2
  147. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  148. package/dist/{from-snapshot-Bz469dIh.js → from-snapshot-DCakWRsr.js} +18 -15
  149. package/dist/gen-B5kvbAoZ.js +58 -0
  150. package/dist/gen-DWCYcMQM.js +827 -0
  151. package/dist/{generate-3FNO5P5Q.js → generate-CRVV5V7l.js} +14 -8
  152. package/dist/generate-CezbCaTI.js +275 -0
  153. package/dist/{grantee-BrRANrpT.js → grantee-Dke-9rd1.js} +4 -4
  154. package/dist/{grantee-conditions-C6P1Tvol.js → grantee-conditions-BrYPe-w0.js} +12 -12
  155. package/dist/{grantee-match-0RtHWQDx.js → grantee-match-7RZZvoT_.js} +12 -6
  156. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  157. package/dist/h3/index.d.ts +10 -7
  158. package/dist/h3/index.js +3 -3
  159. package/dist/headers-B9jQxjtW.d.ts +10 -0
  160. package/dist/{helpers-DY3vXuGs.js → helpers-DJicaG6f.js} +40 -28
  161. package/dist/hono/index.d.ts +16 -10
  162. package/dist/hono/index.js +5 -5
  163. package/dist/{hosted-BmjzxQhp.d.ts → hosted-Cmtxogd0.d.ts} +33 -21
  164. package/dist/{hosted-XBgU6RGT.js → hosted-D0IzESu_.js} +42 -21
  165. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  166. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  167. package/dist/{http-Ca3Sr5x1.js → http-DOL33cO0.js} +11 -8
  168. package/dist/{import-Bz0GefWg.js → import-CST57XLp.js} +64 -51
  169. package/dist/{import-DB2EG_iy.js → import-_YqhhwvX.js} +6 -6
  170. package/dist/{index-BSfRl0hZ.d.ts → index-B8s204GL.d.ts} +64 -52
  171. package/dist/{index-DH9DUDEM.d.ts → index-BT5-1VsX.d.ts} +54 -30
  172. package/dist/{index-BTkwrK7v.d.ts → index-BW_0MZOS.d.ts} +282 -172
  173. package/dist/{index-CMiPH2Tv.d.ts → index-BhxEUY9J.d.ts} +64 -37
  174. package/dist/{index-DLwcuCN_.d.ts → index-Bv5iXPqU.d.ts} +51 -30
  175. package/dist/{index-BE8y3moU.d.ts → index-_9UiQIkt.d.ts} +127 -82
  176. package/dist/index.d.ts +22 -22
  177. package/dist/index.js +33 -33
  178. package/dist/{init-5TXNji88.js → init-Dz_PsHdv.js} +5 -5
  179. package/dist/{init-B-4t1NzC.js → init-cE3A8aXq.js} +10 -10
  180. package/dist/{instance-options-CU0YQCLH.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  181. package/dist/{instance-snapshot-CjcwnEiV.js → instance-snapshot--JWiTrvO.js} +75 -55
  182. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  183. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  184. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  185. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  186. package/dist/jwt/index.d.ts +57 -27
  187. package/dist/jwt/index.js +24 -21
  188. package/dist/{kernel-DVExUwkp.js → kernel-C-fYydV2.js} +32 -23
  189. package/dist/kysely/index.d.ts +49 -33
  190. package/dist/kysely/index.js +9 -7
  191. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  192. package/dist/{load-DxroEzH1.js → load-DjSU5KXO.js} +6 -6
  193. package/dist/load-Dm0pSYH3.js +1 -0
  194. package/dist/{login-ClSJh5t5.js → login-D-8tMqzo.js} +4 -4
  195. package/dist/{login-WC9HPJpU.js → login-DplQ0s84.js} +16 -9
  196. package/dist/{manifest-Dv6q4i5s.js → manifest-Cgiq5oqc.js} +49 -38
  197. package/dist/{manifest-BVhExYhw.d.ts → manifest-CzzWtnAb.d.ts} +126 -31
  198. package/dist/{manifest-schema-Cv492Qev.js → manifest-schema-2r37XRhD.js} +44 -3
  199. package/dist/{manifest-B79YuF2T.js → manifest-wg8WkkpD.js} +6 -6
  200. package/dist/{map-claims-etGIS_Dv.js → map-claims-BNWCJtmP.js} +14 -8
  201. package/dist/{map-error-BQGyDm_M.js → map-error-pasIGqMT.js} +7 -7
  202. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  203. package/dist/mcp/index.d.ts +114 -61
  204. package/dist/mcp/index.js +70 -40
  205. package/dist/{migrate-Dodel0IJ.js → migrate-B7oP_sQU.js} +35 -17
  206. package/dist/module-values-BJTBdo6y.js +107 -0
  207. package/dist/nest/index.d.ts +23 -13
  208. package/dist/nest/index.js +18 -11
  209. package/dist/next/client.d.ts +5 -2
  210. package/dist/next/client.js +1 -1
  211. package/dist/next/index.d.ts +72 -26
  212. package/dist/next/index.js +110 -6
  213. package/dist/next/plugin.d.ts +1 -1
  214. package/dist/next/plugin.js +4 -3
  215. package/dist/node/index.d.ts +5 -5
  216. package/dist/node/index.js +3 -3
  217. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  218. package/dist/openai/index.d.ts +13 -7
  219. package/dist/openai/index.js +3 -3
  220. package/dist/openapi/index.d.ts +51 -30
  221. package/dist/openapi/index.js +2 -2
  222. package/dist/{openapi-Ddb4628T.js → openapi-BOsx0xn9.js} +33 -18
  223. package/dist/{openapi-DMocl1bh.js → openapi-CBZUhA3l.js} +4 -5
  224. package/dist/{openapi-ztVaux6j.js → openapi-VeHHU2l9.js} +23 -14
  225. package/dist/{operation-findings-kRcEp8lE.js → operation-findings-CXtFzlKJ.js} +3 -3
  226. package/dist/{operations-BNLes61x.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  227. package/dist/orpc/index.d.ts +68 -14
  228. package/dist/orpc/index.js +62 -13
  229. package/dist/otel/index.d.ts +7 -4
  230. package/dist/otel/index.js +8 -5
  231. package/dist/output-files-BHOIlrfD.js +1 -0
  232. package/dist/{output-files-CCMdcFWb.js → output-files-BIQ_9pIs.js} +29 -17
  233. package/dist/{output-DgSDLrta.js → output-tkju6U7R.js} +9 -5
  234. package/dist/ownership-B4L59T9u.js +1054 -0
  235. package/dist/{parse-Ddhz2xf4.js → parse-1_ZheTW5.js} +16 -13
  236. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  237. package/dist/{parse-local-manifest-T1Q8X3A2.js → parse-local-manifest-DEiCF4ah.js} +19 -7
  238. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  239. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  240. package/dist/pdp/index.d.ts +9 -6
  241. package/dist/pdp/index.js +20 -13
  242. package/dist/{peer-DOzzMfZL.js → peer-C9LvBCcb.js} +1 -1
  243. package/dist/{peer-12Q5I_RH.js → peer-Q0fuZ6hx.js} +9 -3
  244. package/dist/{permdock-Dco6dyCK.d.ts → permdock-B6Sf4T_S.d.ts} +253 -129
  245. package/dist/{permdock-BfWEeMqk.js → permdock-L-_I_3zP.js} +59 -35
  246. package/dist/{permission-registry-DpPtSKNZ.js → permission-registry-B8tYxPIt.js} +23 -10
  247. package/dist/{permission-types-DhNEmoRG.d.ts → permission-types-CAY-GU7e.d.ts} +127 -41
  248. package/dist/{permissions-CoqCOfJ3.d.ts → permissions-Bx6UI8n1.d.ts} +6 -3
  249. package/dist/{permissions-CyH2MV_B.js → permissions-CVXmRILq.js} +3 -3
  250. package/dist/{permissions-DArULThq.js → permissions-mDcTWoBs.js} +8 -5
  251. package/dist/pg-DQTqRrou.js +60 -0
  252. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  253. package/dist/{pkce-5h8NgMQJ.js → pkce-CnmmYqUZ.js} +1 -1
  254. package/dist/{policy-B7dg_yzu.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  255. package/dist/{policy-DaJy4nK4.js → policy-CLQ8__GF.js} +43 -23
  256. package/dist/{policy-from-catalog-DFWYkNdu.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  257. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  258. package/dist/{policy-types-B-F-qAZk.d.ts → policy-types-CCiDRZBH.d.ts} +738 -349
  259. package/dist/{postgres-store-BL9M_CA1.js → postgres-store-DcyrPS-r.js} +43 -16
  260. package/dist/{postgrest-r5faDIzD.js → postgrest-D4nuPXIQ.js} +52 -33
  261. package/dist/{postgrest-CYacM_u7.d.ts → postgrest-DicQyqm-.d.ts} +54 -35
  262. package/dist/{powersync-53ryOZip.js → powersync-DHNQX06W.js} +127 -69
  263. package/dist/{powersync-13odBwiM.js → powersync-DXqGuq9A.js} +3 -3
  264. package/dist/powersync-Djf-zCpB.js +1 -0
  265. package/dist/preset/index.d.ts +38 -28
  266. package/dist/preset/index.js +1 -1
  267. package/dist/{preset-CHTbd-DQ.js → preset-BjLzeFpp.js} +56 -32
  268. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  269. package/dist/prisma/index.d.ts +69 -41
  270. package/dist/prisma/index.js +21 -17
  271. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  272. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  273. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  274. package/dist/{prompt-DwtVemER.js → prompt-BYc6drYW.js} +4 -1
  275. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  276. package/dist/protected-action-DUYqb-Ma.js +80 -0
  277. package/dist/{protected-DXE3cQYg.js → protected-action-QEA8arRB.js} +48 -14
  278. package/dist/{provider-BQsTYYy0.js → provider-C55OGXJ7.js} +5 -4
  279. package/dist/{provider-Csk-THAn.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  280. package/dist/{provider-store-IgqQipCO.js → provider-store-CaTv00tr.js} +13 -9
  281. package/dist/pull-B65ndFNZ.js +1 -0
  282. package/dist/{pull-CN5OLxrF.js → pull-CwpGaQSi.js} +12 -11
  283. package/dist/{push-tVdG8dUL.js → push-DgssgzkK.js} +19 -13
  284. package/dist/{pushed-policy-BbcY9r_4.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  285. package/dist/{pushed-policy-CmYeSQqq.js → pushed-policy-ITwYKvvH.js} +10 -7
  286. package/dist/react/index.d.ts +9 -8
  287. package/dist/react/index.js +7 -6
  288. package/dist/react/provider-client.d.ts +1 -1
  289. package/dist/react/provider-client.js +1 -1
  290. package/dist/react-native/index.d.ts +94 -55
  291. package/dist/react-native/index.js +200 -61
  292. package/dist/{refs-CNJBiTFo.js → refs-C8BKxc_e.js} +2 -2
  293. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  294. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  295. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  296. package/dist/{replay-DCDD_ZfL.d.ts → replay-DNftIb_R.d.ts} +1 -1
  297. package/dist/{request-context-BykKLmyE.js → request-context-C25ilqiJ.js} +8 -8
  298. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  299. package/dist/resend/index.d.ts +34 -28
  300. package/dist/resend/index.js +29 -29
  301. package/dist/resolve-names-CF7xXLSG.js +201 -0
  302. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  303. package/dist/{retire-Wj6dkyDE.js → retire-B2xffQgY.js} +15 -6
  304. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  305. package/dist/{rls-CxBZb4rZ.js → rls-CNEH2_BG.js} +299 -124
  306. package/dist/{rls-Ck_PocSp.js → rls-Ca8Jz9b5.js} +13 -6
  307. package/dist/{role-builder-C1VJzvcr.js → role-builder-BK2-T6oD.js} +41 -20
  308. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  309. package/dist/{rpc-Bk1bE-ch.js → rpc-fNqAIqQk.js} +8 -5
  310. package/dist/{run-uLD2aWuO.js → run-Bz26OTfO.js} +26 -23
  311. package/dist/run-D-JE8QWb.js +1 -0
  312. package/dist/{run-ticket-BpNi7BCi.d.ts → run-ticket-DbWI9f99.d.ts} +29 -14
  313. package/dist/{run-ticket-B5d_63Ma.js → run-ticket-Dv7aF7Dk.js} +9 -9
  314. package/dist/{runtime-Vif3_-zf.js → runtime-BGnrOkVH.js} +5 -2
  315. package/dist/{saas-Az_Kz-4D.js → saas-iWnUdwCt.js} +42 -29
  316. package/dist/{scan-DSljDE1Y.js → scan-DCj1KQfn.js} +1 -1
  317. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  318. package/dist/{schema-gIcCx7zM.js → schema-Dst9I9Gs.js} +8 -4
  319. package/dist/scim/index.d.ts +2 -2
  320. package/dist/scim/index.js +2 -2
  321. package/dist/{scim-C7JYhySg.js → scim-D8YupzX1.js} +2 -2
  322. package/dist/{scim-YNieBO1U.js → scim-jJBJ7g1Z.js} +33 -15
  323. package/dist/{scopes-BHsc-wp-.js → scopes-0Up_UA2t.js} +41 -23
  324. package/dist/server/index.d.ts +11 -11
  325. package/dist/server/index.js +12 -12
  326. package/dist/{server-Bnga6I50.js → server-3cVlTLde.js} +31 -31
  327. package/dist/{server-types-C4gZUEZy.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  328. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  329. package/dist/{shared-fMKOv8hP.js → shared-Afctg7B0.js} +65 -32
  330. package/dist/{shared-C8LjUdVU.js → shared-l0oGGetg.js} +9 -6
  331. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  332. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  333. package/dist/{sink-Cp_Eot9W.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  334. package/dist/{skills-Dcjw9_1C.js → skills-Bjj7BNEQ.js} +12 -8
  335. package/dist/{skills-g_3BS9NC.js → skills-OuoMR49L.js} +3 -3
  336. package/dist/{snapshot-CbGmYiJx.js → snapshot-CXlzi69u.js} +21 -18
  337. package/dist/{snapshot-cache-Pahd3IYJ.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  338. package/dist/{snapshot-cache-DT2Kx1F8.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  339. package/dist/solid/index.d.ts +55 -16
  340. package/dist/solid/index.js +46 -12
  341. package/dist/solid-start/index.d.ts +30 -12
  342. package/dist/solid-start/index.js +3 -3
  343. package/dist/{sources-DEEuGb8S.d.ts → sources-B1Os_YUu.d.ts} +126 -53
  344. package/dist/{sources-B-zYB4GS.js → sources-CMAM-2A3.js} +46 -27
  345. package/dist/{sql-B96movIM.js → sql-0WjxIp9g.js} +28 -7
  346. package/dist/{sql-CDEPCA0g.d.ts → sql-B80DFdpG.d.ts} +2 -2
  347. package/dist/{src-DLFrtrrC.js → src-DZ0l9UAg.js} +190 -100
  348. package/dist/ssf/index.d.ts +3 -3
  349. package/dist/ssf/index.js +47 -35
  350. package/dist/{standard-webhooks-B_qRg0ws.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  351. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  352. package/dist/{store-DSP9oGvh.js → store-RNFvaJJv.js} +32 -26
  353. package/dist/{store-options-B_poyYvg.js → store-options-Dil3lraY.js} +105 -15
  354. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  355. package/dist/{stores-BqEuHC05.js → stores-DxZWDXCs.js} +42 -5
  356. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  357. package/dist/{stream-2Vwhl7Er.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  358. package/dist/{style-Ds1gNm77.js → style-DblOtSga.js} +1 -1
  359. package/dist/{style-Cqo7-73x.js → style-Ds11Hmk4.js} +2 -1
  360. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  361. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  362. package/dist/supabase/index.d.ts +48 -38
  363. package/dist/supabase/index.js +5 -5
  364. package/dist/supabase/middleware.d.ts +19 -13
  365. package/dist/supabase/middleware.js +7 -7
  366. package/dist/{supabase--0aJdLEd.js → supabase-BL1qJzzY.js} +79 -35
  367. package/dist/{supabase-Bqp7iIY2.js → supabase-D39cuGPt.js} +3 -3
  368. package/dist/{supabase-hook-Dg0SrQWR.js → supabase-hook-B-yXnzUl.js} +175 -196
  369. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  370. package/dist/{supautils-MESd81bF.js → supautils-BU-pAEpf.js} +166 -47
  371. package/dist/{support-session-Cna49-3f.js → support-session-BsmPCbz8.js} +21 -21
  372. package/dist/svelte/PermissionBoundary.svelte +2 -6
  373. package/dist/svelte/Protected.svelte +2 -8
  374. package/dist/svelte/index.d.ts +9 -8
  375. package/dist/svelte/index.js +10 -9
  376. package/dist/svelte/runtime.d.ts +4 -4
  377. package/dist/svelte/runtime.js +4 -4
  378. package/dist/svelte/source.d.ts +9 -8
  379. package/dist/svelte/source.js +6 -5
  380. package/dist/sveltekit/index.d.ts +30 -12
  381. package/dist/sveltekit/index.js +2 -2
  382. package/dist/{ownership-Z2LpxsGa.js → tables-DeMNEy6V.js} +641 -1104
  383. package/dist/tanstack-start/index.d.ts +22 -10
  384. package/dist/tanstack-start/index.js +2 -2
  385. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  386. package/dist/{tenancy-CmeBQ6Nv.js → tenancy-5d1zVBvK.js} +25 -19
  387. package/dist/terminal/index.d.ts +23 -14
  388. package/dist/terminal/index.js +17 -20
  389. package/dist/testing/core.d.ts +1 -1
  390. package/dist/testing/core.js +1 -1
  391. package/dist/testing/fixtures/index.d.ts +8 -5
  392. package/dist/testing/fixtures/index.js +78 -17
  393. package/dist/testing/index.d.ts +224 -141
  394. package/dist/testing/index.js +299 -234
  395. package/dist/testing/saas/index.d.ts +43 -27
  396. package/dist/testing/saas/index.js +2 -2
  397. package/dist/testing/saas/permissions.d.ts +1 -1
  398. package/dist/testing/saas/permissions.js +1 -1
  399. package/dist/{text-diff-DhITNCnD.js → text-diff-BtfSmdUo.js} +2 -2
  400. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  401. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  402. package/dist/{token-2qYDvXz2.js → token-DC9EQiet.js} +14 -12
  403. package/dist/{tool-refusal-reAhIzdl.js → tool-refusal-Qpjs_W6M.js} +5 -2
  404. package/dist/trpc/index.d.ts +11 -8
  405. package/dist/trpc/index.js +15 -9
  406. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  407. package/dist/{types-DBHftjgS.d.ts → types-AMJ5qoU_.d.ts} +45 -33
  408. package/dist/{types-CfiKC5aN.d.ts → types-B2mlGuhW.d.ts} +14 -11
  409. package/dist/{types-D3A19w4A.d.ts → types-B4uqKDnp.d.ts} +22 -13
  410. package/dist/{types-CQVEQawv.d.ts → types-BJk0BKRX.d.ts} +24 -14
  411. package/dist/types-B_d_g7T3.d.ts +262 -0
  412. package/dist/{types-DC44-hqb.d.ts → types-B_tiYvk8.d.ts} +59 -32
  413. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  414. package/dist/{types-BWZybqs9.d.ts → types-DC1Loeh3.d.ts} +381 -202
  415. package/dist/{types-CIeZcG8v.d.ts → types-DHKPcqzr.d.ts} +2 -2
  416. package/dist/{types-cTos-H7p.d.ts → types-DjuMBNF9.d.ts} +68 -32
  417. package/dist/{types-CeIscIKp.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  418. package/dist/{types-BXMYB7BY.d.ts → types-ZzRGoViD.d.ts} +77 -24
  419. package/dist/{types-BfVmNJO5.d.ts → types-ah9NlU6j.d.ts} +128 -50
  420. package/dist/{types-DXmwu78Z.d.ts → types-djVzLlIV.d.ts} +31 -14
  421. package/dist/{types-g7Oy6Zg4.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  422. package/dist/unplugin/index.d.ts +1 -1
  423. package/dist/unplugin/index.js +2 -2
  424. package/dist/usage-CYeXek0p.js +1 -0
  425. package/dist/{usage-Bybmck7f.js → usage-CxEzS4ey.js} +50 -26
  426. package/dist/{usage-CDaLXCfL.js → usage-ab0PdusX.js} +2 -2
  427. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  428. package/dist/{validation-error-CQpoquwj.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  429. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  430. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  431. package/dist/{verify-pe8rL_Qw.js → verify-DZeqoWu5.js} +148 -487
  432. package/dist/version-DMQ0dnN5.js +48 -0
  433. package/dist/version-DizhmD72.js +1 -0
  434. package/dist/{views-BB8E9dTP.js → views-CD8wuL4Z.js} +19 -6
  435. package/dist/{vocabulary-Bg3eeT2H.d.ts → vocabulary-DEJ5j4mR.d.ts} +7 -4
  436. package/dist/vue/index.d.ts +71 -22
  437. package/dist/vue/index.js +50 -13
  438. package/dist/{waiter-DwEyouan.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  439. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  440. package/dist/{watch-C-4VmFlL.js → watch-Cx_WciLE.js} +8 -8
  441. package/dist/watch-DB42U1ib.js +1 -0
  442. package/dist/webmcp/index.d.ts +11 -11
  443. package/dist/webmcp/index.js +8 -5
  444. package/dist/{where-scope-wq2coopv.js → where-scope-DlCdCM_8.js} +24 -18
  445. package/dist/{who-can-BwNsI_Js.js → who-can-rI7dCR9Q.js} +23 -20
  446. package/dist/workflow/index.d.ts +3 -3
  447. package/dist/workflow/index.js +13 -13
  448. package/dist/workflow-sdk/index.d.ts +19 -13
  449. package/dist/workflow-sdk/index.js +6 -6
  450. package/dist/{wrap-CiSc_KCq.js → wrap-B2wziJI_.js} +4 -4
  451. package/dist/{wrap-B6R0cMRL.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  452. package/package.json +7 -7
  453. package/schemas/catalog-v1.json +3 -0
  454. package/schemas/supabase-manifest-v1.json +33 -1
  455. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  456. package/skills/permdock-data/references/queries-and-rls.md +2 -1
  457. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -2
  458. package/skills/permdock-wire/references/adapters.md +14 -22
  459. package/dist/catalog-BCCjSAdH.js +0 -1
  460. package/dist/collect-k_Dulxr5.js +0 -1
  461. package/dist/config-CoQHDrDi.js +0 -166
  462. package/dist/denied-text-D4qkEtFz.d.ts +0 -19
  463. package/dist/fields-ClcQLrVc.js +0 -238
  464. package/dist/generate-CNU1pIOo.js +0 -171
  465. package/dist/headers-BIjfMaoC.js +0 -8
  466. package/dist/headers-CIbDTUTK.d.ts +0 -7
  467. package/dist/load-DrMHXzgN.js +0 -1
  468. package/dist/output-files-DPAY7-GX.js +0 -1
  469. package/dist/package-root-Dk_ETdkp.js +0 -31
  470. package/dist/parse-local-manifest-e4mdwAKd.d.ts +0 -10
  471. package/dist/policies-B2lZIurj.js +0 -295
  472. package/dist/powersync-CExtTLyA.js +0 -1
  473. package/dist/problem-details-Tcfmj3bV.d.ts +0 -7
  474. package/dist/protected-BwZYL1X_.d.ts +0 -39
  475. package/dist/pull-Cty6Ovyu.js +0 -1
  476. package/dist/run-Bz7DXGEv.js +0 -1
  477. package/dist/stores-BAZwSYZA.d.ts +0 -31
  478. package/dist/supabase-hook-DJxC4PoP.js +0 -1
  479. package/dist/types-CKV71kKh.d.ts +0 -172
  480. package/dist/usage-y-kBNdqs.js +0 -1
  481. package/dist/version-CEbQ5UeM.js +0 -18
  482. package/dist/version-DXkYUISx.js +0 -1
  483. package/dist/watch-Bd9mx3rd.js +0 -1
@@ -1,13 +1,16 @@
1
- import { c as missingInput } from "./errors-DpP_U6Bf.js";
1
+ import { c as missingInput } from "./errors-Vpu6rKHl.js";
2
2
  import { t as defineLeaf } from "./command-L8EstFNm.js";
3
- import { c as given, d as policyFlag, f as validatorFlag, i as dryRunFlag, l as outFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-aaeRAdiD.js";
3
+ import { c as given, d as policyFlag, f as validatorFlag, i as dryRunFlag, l as outFlag, n as dbUrl, o as fileOut, r as dbUrlFlags, t as checkFlag } from "./flags-DXjoTVbS.js";
4
4
  //#region src/cli/commands/rls.ts
5
5
  const membershipsFlag = { memberships: {
6
6
  type: "string",
7
7
  description: "Membership table as <table>:tenant,user,role",
8
8
  valueHint: "table"
9
9
  } };
10
- /** The flags that shape the generated SQL; verify --introspect and migrate take them too. */
10
+ /**
11
+ * The flags that shape the generated SQL; verify --introspect and migrate take
12
+ * them too.
13
+ */
11
14
  const shapeFlags = {
12
15
  target: {
13
16
  type: "enum",
@@ -141,7 +144,10 @@ const SHAPE_DEFAULTS = {
141
144
  schemas: void 0,
142
145
  "db-url-stdin": false
143
146
  };
144
- /** Every RlsRunInput field at its "not given" value, with the shape flags applied. */
147
+ /**
148
+ * Every RlsRunInput field at its "not given" value, with the shape flags
149
+ * applied.
150
+ */
145
151
  async function rlsInput(ctx, verb, shape, options) {
146
152
  return {
147
153
  cwd: ctx.cwd,
@@ -186,7 +192,7 @@ async function rlsInput(ctx, verb, shape, options) {
186
192
  };
187
193
  }
188
194
  async function runRls(input) {
189
- return (await import("./rls-CxBZb4rZ.js")).runRls(input);
195
+ return (await import("./rls-CNEH2_BG.js")).runRls(input);
190
196
  }
191
197
  const generate = defineLeaf({
192
198
  flags: {
@@ -209,7 +215,8 @@ const generate = defineLeaf({
209
215
  valueHint: "parts",
210
216
  list: true,
211
217
  async complete() {
212
- return (await import("./output-files-DPAY7-GX.js")).SPLIT_PARTS;
218
+ const { SPLIT_PARTS } = await import("./output-files-BHOIlrfD.js");
219
+ return SPLIT_PARTS;
213
220
  }
214
221
  },
215
222
  "grants-out": {
@@ -1,14 +1,14 @@
1
1
  import { a as sole, n as isReadonlyArray, t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { i as ownKeys, n as isForbiddenKey, t as assertSafeKey } from "./paths-DXSHAMIa.js";
4
- import { c as isConditionDate, l as isConditionRef, r as isSubjectRef, s as isCondition, u as isSqlFunctionField } from "./refs-CNJBiTFo.js";
5
- import { c as isUserApprover, i as flattenApprovers, l as user, o as isAnyOfInput, r as approverLeaves, s as isPermissionApprover } from "./approvers-CqPOLD-o.js";
6
- import { c as listPermissions, o as isPermission } from "./permission-registry-DpPtSKNZ.js";
7
- import { n as assertMetaValue, r as parseAppData, t as assertAppData } from "./app-data-MuyzVqX8.js";
8
- import { d as isSelfParented } from "./resource-relations-D_jw0BFx.js";
9
- import { a as durationOf, r as assertDuration } from "./time-DkWjdL98.js";
10
- import { a as authenticated, d as roleScopeOf, g as isRole, o as flattenGrantee, r as asGrantee, u as roleNameOf } from "./grantee-BrRANrpT.js";
11
- import { c as sanitizeFields, n as normalizeValidity } from "./validity-CZ7-y0Cj.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { i as ownKeys, n as isForbiddenKey, t as assertSafeKey } from "./paths-CUvURzHp.js";
4
+ import { c as isConditionDate, l as isConditionRef, r as isSubjectRef, s as isCondition, u as isSqlFunctionField } from "./refs-C8BKxc_e.js";
5
+ import { c as isUserApprover, i as flattenApprovers, l as user, o as isAnyOfInput, r as approverLeaves, s as isPermissionApprover } from "./approvers-B4r0N_Uz.js";
6
+ import { c as listPermissions, o as isPermission } from "./permission-registry-B8tYxPIt.js";
7
+ import { n as assertMetaValue, r as parseAppData, t as assertAppData } from "./app-data-UNNm07jV.js";
8
+ import { d as isSelfParented } from "./resource-relations-8-pCScBO.js";
9
+ import { a as durationOf, r as assertDuration } from "./time-nR1JesoH.js";
10
+ import { a as authenticated, d as roleScopeOf, g as isRole, o as flattenGrantee, r as asGrantee, u as roleNameOf } from "./grantee-Dke-9rd1.js";
11
+ import { c as sanitizeFields, n as normalizeValidity } from "./validity-Buc7w8E9.js";
12
12
  //#region src/conditions/opaque.ts
13
13
  function opaque(input) {
14
14
  return freezeDeep({
@@ -152,7 +152,10 @@ function normalizeSqlFunction(input) {
152
152
  twin
153
153
  });
154
154
  }
155
- /** `{ session: … }` under `subject`; any other value is a comparison on a `subject` field. */
155
+ /**
156
+ * `{ session: … }` under `subject`; any other value is a comparison on a
157
+ * `subject` field.
158
+ */
156
159
  function isSubjectCondition(value) {
157
160
  return value !== null && typeof value === "object" && !Array.isArray(value) && Object.hasOwn(value, "session");
158
161
  }
@@ -213,7 +216,10 @@ function normalizeWhere(input) {
213
216
  }
214
217
  //#endregion
215
218
  //#region src/core/approval-normalize.ts
216
- /** Every approver a requirement names: `by`, each stage and its escalation, and `escalation.to`, inside `anyOf` groups too. */
219
+ /**
220
+ * Every approver a requirement names: `by`, each stage and its escalation, and
221
+ * `escalation.to`, inside `anyOf` groups too.
222
+ */
217
223
  function approversOf(requirement) {
218
224
  return [
219
225
  ...approverLeaves(requirement.by),
@@ -330,9 +336,9 @@ function assertApprovalVersions(grants, resources) {
330
336
  }
331
337
  }
332
338
  /**
333
- * A relation approver is checked by id, from the requested row: the
334
- * relation lives on the permission's own resource (optionally up its parent
335
- * chain), or at the end of a list of links from it.
339
+ * A relation approver is checked by id, from the requested row: the relation
340
+ * lives on the permission's own resource (optionally up its parent chain), or
341
+ * at the end of a list of links from it.
336
342
  */
337
343
  function assertApprovalRelations(grants, resources) {
338
344
  for (const grant of grants) {
@@ -347,7 +353,10 @@ function assertApprovalRelations(grants, resources) {
347
353
  }
348
354
  }
349
355
  }
350
- /** The resource a relation approver's `through` reaches from `start`, or `undefined`. */
356
+ /**
357
+ * The resource a relation approver's `through` reaches from `start`, or
358
+ * `undefined`.
359
+ */
351
360
  function approverRelationResource(start, through, resources) {
352
361
  if (through === void 0) return start;
353
362
  if (through === "parent") return isSelfParented(resources.get(start)) ? start : void 0;
@@ -368,7 +377,10 @@ function assertLimit(limit, permissionKey) {
368
377
  if (limit.mode !== void 0 && limit.mode !== "hard" && limit.mode !== "soft") throw new Error(`PermDock: limit mode on '${permissionKey}' must be 'hard' or 'soft'`);
369
378
  if (limit.alertAt !== void 0 && (typeof limit.alertAt !== "number" || !(limit.alertAt > 0 && limit.alertAt <= 1))) throw new Error(`PermDock: limit alertAt on '${permissionKey}' must be a fraction above 0 and at most 1`);
370
379
  }
371
- /** The declared fields of a validated `limit`, so extra keys never reach the grant. */
380
+ /**
381
+ * The declared fields of a validated `limit`, so extra keys never reach the
382
+ * grant.
383
+ */
372
384
  function normalizeLimit(limit) {
373
385
  if (limit === void 0) return;
374
386
  return {
@@ -436,7 +448,10 @@ function makeGrant(permission, effect, condition) {
436
448
  requires
437
449
  });
438
450
  }
439
- /** Checks a grant's `meta`: plain JSON, string `description`, `x` through the schema when given. */
451
+ /**
452
+ * Checks a grant's `meta`: plain JSON, string `description`, `x` through the
453
+ * schema when given.
454
+ */
440
455
  function grantMeta(meta, key, schema) {
441
456
  if (meta === void 0) return;
442
457
  assertAppData(meta, `meta of a grant on ${key}`);
@@ -478,7 +493,10 @@ function appObligations(input, key, effect) {
478
493
  }
479
494
  return out.length === 0 ? void 0 : freezeDeep(out);
480
495
  }
481
- /** Re-checks every grant's `meta.x` with the policy's grant schema, keeping the schema output. */
496
+ /**
497
+ * Re-checks every grant's `meta.x` with the policy's grant schema, keeping the
498
+ * schema output.
499
+ */
482
500
  function withGrantSchema(grant, schema) {
483
501
  const meta = grant.meta;
484
502
  if (schema === void 0 || meta?.x === void 0) return grant;
@@ -602,7 +620,10 @@ function holderCount(roleName, option, value) {
602
620
  if (typeof value !== "number" || !Number.isInteger(value) || value < 0) throw new Error(`PermDock: role '${roleName}' ${option} must be a whole number of holders`);
603
621
  return value;
604
622
  }
605
- /** Ownership rules count holders per scope instance, so they need a named-scope role. */
623
+ /**
624
+ * Ownership rules count holders per scope instance, so they need a named-scope
625
+ * role.
626
+ */
606
627
  function roleRules(roleName, scope, options) {
607
628
  const min = holderCount(roleName, "min", options?.min);
608
629
  const max = holderCount(roleName, "max", options?.max);
@@ -9,9 +9,10 @@ const ROW_GRANTEES = /* @__PURE__ */ new Set([
9
9
  /**
10
10
  * Whether a grant depends on more than the role and the scope: a row or body
11
11
  * condition, a closure, a field list, a purpose, a break-glass override, a
12
- * validity window, a `requires`, or a relation, plan, actor or assurance grantee. The SQL helpers
13
- * (`permdock_has`, `permitted_<scope>_ids`) check only role and scope, so a
14
- * policy that calls them for such a permission would widen access.
12
+ * validity window, a `requires`, or a relation, plan, actor or assurance
13
+ * grantee. The SQL helpers (`permdock_has`, `permitted_<scope>_ids`) check only
14
+ * role and scope, so a policy that calls them for such a permission would widen
15
+ * access.
15
16
  */
16
17
  function grantHasRowConditions(grant) {
17
18
  const grantees = Array.isArray(grant.to) ? grant.to : [grant.to];
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { s as requestFromContext } from "./http-BBoKefeS.js";
3
- import { n as tenantScope } from "./adapter-context-CRhqyzCk.js";
4
- import { t as adapterKernel } from "./bind-D1nO6fiC.js";
5
- import { r as guardIterable } from "./stream-CvdUS9V1.js";
2
+ import { s as requestFromContext } from "./http-DKLXrFGk.js";
3
+ import { n as tenantScope } from "./adapter-context-CIQpQxbE.js";
4
+ import { t as adapterKernel } from "./bind-D_sZSVA3.js";
5
+ import { r as guardIterable } from "./stream-CDvF0sJm.js";
6
6
  //#region src/server/rpc.ts
7
7
  /** The tRPC and oRPC error code for a Problem Details status. */
8
8
  function rpcCode(status) {
@@ -83,7 +83,10 @@ function bindRpcKernel(policy, options, adapter, contextOf, path) {
83
83
  guard
84
84
  };
85
85
  }
86
- /** Wraps a streamed result so revocation ends it and items the subscriber cannot read drop. */
86
+ /**
87
+ * Wraps a streamed result so revocation ends it and items the subscriber cannot
88
+ * read drop.
89
+ */
87
90
  async function guardStream(source, open, permission, data, protectOptions, guard) {
88
91
  const conn = await open(permission === null ? {} : compact({
89
92
  permission,
@@ -1,13 +1,13 @@
1
- import { i as dateAt } from "./time-DkWjdL98.js";
2
- import { a as describeError, l as problemOf, n as CliError, r as cliProblem, s as kindOfCode } from "./errors-DpP_U6Bf.js";
3
- import { s as cliVersion } from "./version-CEbQ5UeM.js";
4
- import { a as resolveCwd, i as readConfig } from "./config-CoQHDrDi.js";
1
+ import { i as dateAt } from "./time-nR1JesoH.js";
2
+ import { a as describeError, l as problemOf, n as CliError, r as cliProblem, s as kindOfCode } from "./errors-Vpu6rKHl.js";
3
+ import { s as cliVersion } from "./version-DMQ0dnN5.js";
4
+ import { a as resolveCwd, i as readConfig } from "./config-BwPBfN0t.js";
5
5
  import { t as beforeFirst } from "./text-BMFRfBqc.js";
6
- import { a as suggestion, i as parseLeaf, n as flagSpellings, o as GLOBAL_FLAGS, r as parseFlags } from "./args-CC3OwyHW.js";
7
- import { r as progressReporter, t as redact } from "./credentials-BpuTwd7a.js";
8
- import { a as resolve, i as leaves, n as ROOT, r as SECTIONS, t as DOCS_BASE } from "./manifest-Dv6q4i5s.js";
9
- import { t as createStyle } from "./style-Cqo7-73x.js";
10
- import { a as sarifLog, i as githubAnnotations, n as envelope, t as dataOf } from "./output-DgSDLrta.js";
6
+ import { a as suggestion, i as parseLeaf, n as flagSpellings, o as GLOBAL_FLAGS, r as parseFlags } from "./args-0FrVs5EH.js";
7
+ import { r as progressReporter, t as redact } from "./credentials-CdDxp7jN.js";
8
+ import { a as resolve, i as leaves, n as ROOT, r as SECTIONS, t as DOCS_BASE } from "./manifest-Cgiq5oqc.js";
9
+ import { t as createStyle } from "./style-Ds11Hmk4.js";
10
+ import { i as githubAnnotations, n as envelope, o as sarifLog, t as dataOf } from "./output-tkju6U7R.js";
11
11
  import { i as renameMessage, r as flagRename, t as COMMAND_MOVES } from "./renames-CGj7YwcQ.js";
12
12
  import { stripVTControlCharacters } from "node:util";
13
13
  import { existsSync, statSync } from "node:fs";
@@ -19,8 +19,8 @@ function set(env, name) {
19
19
  }
20
20
  /**
21
21
  * The AI agent running the CLI, from the variables `@vercel/detect-agent`
22
- * reads, in its order. `CURSOR_TRACE_ID` is also set in Cursor's own
23
- * terminal, so it counts only when stdout is not a TTY.
22
+ * reads, in its order. `CURSOR_TRACE_ID` is also set in Cursor's own terminal,
23
+ * so it counts only when stdout is not a TTY.
24
24
  */
25
25
  function detectAgent(env, probe) {
26
26
  const named = env["AI_AGENT"]?.trim();
@@ -94,8 +94,8 @@ function modeOf(value, source) {
94
94
  return mode;
95
95
  }
96
96
  /**
97
- * `--agent`, then `PERMDOCK_AGENT`, then detection. An unknown value is a
98
- * usage error, so a typo never leaves an agent with prompts it cannot answer.
97
+ * `--agent`, then `PERMDOCK_AGENT`, then detection. An unknown value is a usage
98
+ * error, so a typo never leaves an agent with prompts it cannot answer.
99
99
  */
100
100
  function agentMode(flag, env, probe) {
101
101
  const mode = flag === void 0 ? modeOf(env["PERMDOCK_AGENT"], "PERMDOCK_AGENT") ?? "auto" : modeOf(flag, "--agent") ?? "auto";
@@ -110,8 +110,8 @@ function agentMode(flag, env, probe) {
110
110
  //#region src/cli/core/consent.ts
111
111
  /**
112
112
  * The reasons a run needs consent: it edits files the project owns, it
113
- * publishes to the Cloud, or `--force` overwrites files PermDock did not
114
- * write. A `--dry-run` or `--check` run writes nothing and needs none.
113
+ * publishes to the Cloud, or `--force` overwrites files PermDock did not write.
114
+ * A `--dry-run` or `--check` run writes nothing and needs none.
115
115
  */
116
116
  function consentReasons(effects, flags) {
117
117
  if (flags["dry-run"] === true || flags["check"] === true) return [];
@@ -126,8 +126,8 @@ function quote(token) {
126
126
  return /^[\w@%+=:,./-]+$/u.test(token) ? token : `'${token.replaceAll("'", String.raw`'\''`)}'`;
127
127
  }
128
128
  /**
129
- * The argv as a command line to run again, `--confirm` dropped. Secrets
130
- * only arrive through `--*-stdin` flags, so the line holds none.
129
+ * The argv as a command line to run again, `--confirm` dropped. Secrets only
130
+ * arrive through `--*-stdin` flags, so the line holds none.
131
131
  */
132
132
  function replayArgv(argv) {
133
133
  const out = [];
@@ -143,8 +143,8 @@ function replayArgv(argv) {
143
143
  }
144
144
  /**
145
145
  * A short token bound to what the person agrees to, the directory and the
146
- * command line. Hex, because a base64url token may start with `-` and parse
147
- * as a flag. 16 characters, as better-supabase's.
146
+ * command line. Hex, because a base64url token may start with `-` and parse as
147
+ * a flag. 16 characters, as better-supabase's.
148
148
  */
149
149
  function consentToken(reasons, argv, cwd) {
150
150
  return createHash("sha256").update(JSON.stringify([
@@ -304,7 +304,10 @@ function document(commands) {
304
304
  commands
305
305
  };
306
306
  }
307
- /** `<command> --help --json`: the `cli-commands-v1` document with that command only. */
307
+ /**
308
+ * `<command> --help --json`: the `cli-commands-v1` document with that command
309
+ * only.
310
+ */
308
311
  function leafDocument(path, entry, leaf) {
309
312
  return document([leafJson(path, entry, leaf)]);
310
313
  }
@@ -402,8 +405,8 @@ function lined(text) {
402
405
  return text === "" || text.endsWith("\n") ? text : `${text}\n`;
403
406
  }
404
407
  /**
405
- * The step that answers an `input_required` error without its own `next`:
406
- * the same command line with each missing flag or positional filled by a
408
+ * The step that answers an `input_required` error without its own `next`: the
409
+ * same command line with each missing flag or positional filled by a
407
410
  * placeholder the caller replaces.
408
411
  */
409
412
  function missingInputNext(argv, error) {
@@ -675,7 +678,7 @@ async function run(argv, options) {
675
678
  if (result.streamed === true) return done(result.code);
676
679
  if (format === "github" || format === "sarif") {
677
680
  const findings = result.findings ?? [];
678
- writeOut(format === "github" ? githubAnnotations(findings) || "" : sarifLog(name, findings));
681
+ writeOut(format === "github" ? githubAnnotations(findings) : sarifLog(name, findings));
679
682
  return done(result.code);
680
683
  }
681
684
  if (json) {
@@ -0,0 +1 @@
1
+ export { t as run } from "./run-Bz26OTfO.js";
@@ -1,7 +1,10 @@
1
- import { $n as AuthorizationDetail, Rt as Instant, Zn as Actor, Zt as AuthEvent, dt as TokenVerifier, lr as Subject, lt as TokenFailureCause, rr as Delegation, sr as Principal, ut as TokenSigner } from "./policy-types-B-F-qAZk.js";
2
- import { h as PrincipalSource } from "./permdock-Dco6dyCK.js";
1
+ import { $n as AuthorizationDetail, Rt as Instant, Zn as Actor, Zt as AuthEvent, dt as TokenVerifier, lr as Subject, lt as TokenFailureCause, rr as Delegation, sr as Principal, ut as TokenSigner } from "./policy-types-CCiDRZBH.js";
2
+ import { _ as PrincipalSource } from "./permdock-B6Sf4T_S.js";
3
3
  //#region src/server/run-ticket.d.ts
4
- /** What started the run: a saved automation, a background job, or a caller's own request. */
4
+ /**
5
+ * What started the run: a saved automation, a background job, or a caller's own
6
+ * request.
7
+ */
5
8
  type RunKind = "automation" | "job" | "caller";
6
9
  /** RFC 8693 `act`: the party running the work, with the chain of earlier actors. */
7
10
  type RunActClaim = {
@@ -9,7 +12,10 @@ type RunActClaim = {
9
12
  readonly kind?: string;
10
13
  readonly act?: RunActClaim;
11
14
  };
12
- /** The connector and tools a run may reach; carried for the adapter, never a grant. */
15
+ /**
16
+ * The connector and tools a run may reach; carried for the adapter, never a
17
+ * grant.
18
+ */
13
19
  type RunBinding = {
14
20
  readonly connector?: string;
15
21
  readonly tools?: readonly string[];
@@ -18,7 +24,10 @@ type RunAutomation = {
18
24
  readonly id: string;
19
25
  readonly version: number | string;
20
26
  };
21
- /** The v1 claims of a `vnd.permdock.run+jwt`. At least one of `scope` and `authorization_details` is present. */
27
+ /**
28
+ * The v1 claims of a `vnd.permdock.run+jwt`. At least one of `scope` and
29
+ * `authorization_details` is present.
30
+ */
22
31
  type RunTicket = {
23
32
  readonly v: 1;
24
33
  readonly iss: string;
@@ -34,13 +43,16 @@ type RunTicket = {
34
43
  /** Present exactly when `kind` is `automation`. */
35
44
  readonly automation?: RunAutomation;
36
45
  readonly tenant?: string;
37
- /** The event that started the run, as JSON. Evaluation never reads it as a grant. */
46
+ /**
47
+ * The event that started the run, as JSON. Evaluation never reads it as a
48
+ * grant.
49
+ */
38
50
  readonly trigger?: Readonly<Record<string, unknown>>;
39
51
  readonly binding?: RunBinding;
40
52
  };
41
53
  /**
42
- * Every v1 claim of a `vnd.permdock.run+jwt`, the set `parseRunTicket` keeps.
43
- * A signing service passes only these to its signer.
54
+ * Every v1 claim of a `vnd.permdock.run+jwt`, the set `parseRunTicket` keeps. A
55
+ * signing service passes only these to its signer.
44
56
  */
45
57
  declare const RUN_TICKET_CLAIMS: readonly (keyof RunTicket)[];
46
58
  type RunTicketInput = {
@@ -49,7 +61,10 @@ type RunTicketInput = {
49
61
  readonly kind: RunKind;
50
62
  /** Becomes `act`; a nested `act` on the actor is kept as the chain. */
51
63
  readonly actor?: Actor;
52
- /** The run's ceiling. Required: a ticket never carries the principal's full authority. */
64
+ /**
65
+ * The run's ceiling. Required: a ticket never carries the principal's full
66
+ * authority.
67
+ */
53
68
  readonly delegation: Delegation;
54
69
  readonly automation?: RunAutomation;
55
70
  readonly tenant?: string;
@@ -67,9 +82,9 @@ type RunTicketOptions = {
67
82
  };
68
83
  /** The live record of an automation, read on every use of its ticket. */
69
84
  type RunTicketAutomations = {
70
- automation(id: string, options: {
85
+ automation: (id: string, options: {
71
86
  readonly tenant?: string;
72
- }): {
87
+ }) => {
73
88
  readonly id: string;
74
89
  readonly version: number | string;
75
90
  readonly revoked?: boolean;
@@ -104,9 +119,9 @@ type RunPrincipal = Principal & {
104
119
  readonly runTicket: RunTicket;
105
120
  };
106
121
  /**
107
- * Validates untrusted run-ticket claims and returns a frozen copy with only
108
- * the v1 fields, or `undefined`. Unknown claims are dropped; a wrong type in
109
- * a known claim, a missing delegation, or an `automation` that does not match
122
+ * Validates untrusted run-ticket claims and returns a frozen copy with only the
123
+ * v1 fields, or `undefined`. Unknown claims are dropped; a wrong type in a
124
+ * known claim, a missing delegation, or an `automation` that does not match
110
125
  * `kind` rejects the whole ticket.
111
126
  */
112
127
  declare function parseRunTicket(claims: unknown): RunTicket | undefined;
@@ -1,15 +1,15 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { a as ownRecord, n as isForbiddenKey } from "./paths-DXSHAMIa.js";
4
- import { a as isId } from "./expiry-D4_YKRKD.js";
5
- import { o as epochSeconds, p as nowSeconds } from "./time-DkWjdL98.js";
2
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
+ import { a as ownRecord, n as isForbiddenKey } from "./paths-CUvURzHp.js";
4
+ import { a as isId } from "./expiry-6XByK0dm.js";
5
+ import { o as epochSeconds, p as nowSeconds } from "./time-nR1JesoH.js";
6
6
  import { n as toWireDelegation, t as fromWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
7
7
  import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
8
8
  //#region src/server/run-ticket.ts
9
9
  const RUN_TICKET_TYP = "vnd.permdock.run+jwt";
10
10
  /**
11
- * Every v1 claim of a `vnd.permdock.run+jwt`, the set `parseRunTicket` keeps.
12
- * A signing service passes only these to its signer.
11
+ * Every v1 claim of a `vnd.permdock.run+jwt`, the set `parseRunTicket` keeps. A
12
+ * signing service passes only these to its signer.
13
13
  */
14
14
  const RUN_TICKET_CLAIMS = Object.freeze([
15
15
  "v",
@@ -155,9 +155,9 @@ function parseBody(record) {
155
155
  });
156
156
  }
157
157
  /**
158
- * Validates untrusted run-ticket claims and returns a frozen copy with only
159
- * the v1 fields, or `undefined`. Unknown claims are dropped; a wrong type in
160
- * a known claim, a missing delegation, or an `automation` that does not match
158
+ * Validates untrusted run-ticket claims and returns a frozen copy with only the
159
+ * v1 fields, or `undefined`. Unknown claims are dropped; a wrong type in a
160
+ * known claim, a missing delegation, or an `automation` that does not match
161
161
  * `kind` rejects the whole ticket.
162
162
  */
163
163
  function parseRunTicket(claims) {
@@ -1,6 +1,9 @@
1
- import { l as scopedTenant, s as protectedView } from "./views-BB8E9dTP.js";
1
+ import { l as scopedTenant, s as protectedView } from "./views-CD8wuL4Z.js";
2
2
  //#region src/svelte/protected.ts
3
- /** The instance for `tenant`, built once per store change rather than once per check. */
3
+ /**
4
+ * The instance for `tenant`, built once per store change rather than once per
5
+ * check.
6
+ */
4
7
  function scopedFor(store, tenant, _generation) {
5
8
  return scopedTenant(store.get(), tenant);
6
9
  }
@@ -1,12 +1,12 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
- import { i as principal } from "./refs-CNJBiTFo.js";
3
- import { a as deny, n as role, r as allow } from "./role-builder-C1VJzvcr.js";
4
- import { A as memoryCustomRoleSource, S as memoryLimitStore, b as memoryRelationSource, x as limits } from "./src-DLFrtrrC.js";
5
- import { h as secondsAt } from "./time-DkWjdL98.js";
6
- import { l as relation, n as anyone } from "./grantee-BrRANrpT.js";
7
- import { n as definePolicy } from "./policy-DaJy4nK4.js";
8
- import { s as quoteSqlLiteral } from "./sql-B96movIM.js";
9
- import { a as saasPlans, i as saasPermissions, o as saasRoles } from "./permissions-DArULThq.js";
2
+ import { i as principal } from "./refs-C8BKxc_e.js";
3
+ import { a as deny, n as role, r as allow } from "./role-builder-BK2-T6oD.js";
4
+ import { A as memoryCustomRoleSource, S as memoryLimitStore, b as memoryRelationSource, x as limits } from "./src-DZ0l9UAg.js";
5
+ import { h as secondsAt } from "./time-nR1JesoH.js";
6
+ import { l as relation, n as anyone } from "./grantee-Dke-9rd1.js";
7
+ import { r as definePolicy } from "./policy-CLQ8__GF.js";
8
+ import { s as quoteSqlLiteral } from "./sql-0WjxIp9g.js";
9
+ import { a as saasPlans, i as saasPermissions, o as saasRoles } from "./permissions-mDcTWoBs.js";
10
10
  //#region src/testing/saas/policy.ts
11
11
  function isSubject(user) {
12
12
  return user !== null && "context" in user && "principal" in user;
@@ -107,6 +107,7 @@ const saasPolicy = definePolicy({
107
107
  const SAAS_EXPIRED_AT = 1e9;
108
108
  /**
109
109
  * Users, one hazard each:
110
+ *
110
111
  * - alice: admin in acme, viewer in globex (different role per org)
111
112
  * - bob: member in acme (owns p1, p3, p4)
112
113
  * - carol: owner in acme
@@ -116,9 +117,11 @@ const SAAS_EXPIRED_AT = 1e9;
116
117
  * - mallory: no memberships at all
117
118
  * - gina: `lead` of team-a in acme
118
119
  * - hank: viewer in acme, `collaborator` on project p3 only
119
- * - `user-2` and `2`: members of `org-1`; `Date.parse` maps both ids to one instant
120
+ * - `user-2` and `2`: members of `org-1`; `Date.parse` maps both ids to one
121
+ * instant
120
122
  * - tina: member of `tenant-1`; `Date.parse('org-1') === Date.parse('tenant-1')`
121
- * - ivan: viewer in acme who holds the team role `lead` on the tenant membership (the wrong scope)
123
+ * - ivan: viewer in acme who holds the team role `lead` on the tenant membership
124
+ * (the wrong scope)
122
125
  *
123
126
  * Acme's folders: `root` ─ `eng` ─ `platform` ─ `infra`, and `root` ─ `hr`
124
127
  * (restricted) ─ `payroll`. bob views `root`, hank views `hr`, gina edits
@@ -391,7 +394,10 @@ const saasSeed = Object.freeze({
391
394
  }
392
395
  ]
393
396
  });
394
- /** The seed's folder tree and shares as a `RelationSource`, for `createPermDock({ relations })`. */
397
+ /**
398
+ * The seed's folder tree and shares as a `RelationSource`, for
399
+ * `createPermDock({ relations })`.
400
+ */
395
401
  function saasRelations(seed = saasSeed) {
396
402
  const edges = (relation) => seed.shares.filter((share) => share.relation === relation).map((share) => share.expiresAt === void 0 ? {
397
403
  id: share.folder,
@@ -432,9 +438,9 @@ function saasMemberships(user, members = saasSeed.members) {
432
438
  /** Custom roles of every org, as `createPermDock({ customRoles })` expects. */
433
439
  const saasCustomRoles = saasSeed.orgs.flatMap((org) => org.customRoles);
434
440
  /**
435
- * The principal for `user`, with the plans of the requested `tenant`'s org.
436
- * The tenant itself is passed to `createPermDock({ tenant })`, never trusted
437
- * from here.
441
+ * The principal for `user`, with the plans of the requested `tenant`'s org. The
442
+ * tenant itself is passed to `createPermDock({ tenant })`, never trusted from
443
+ * here.
438
444
  */
439
445
  function saasPrincipal(user, tenant) {
440
446
  const org = tenant === void 0 ? void 0 : saasOrg(tenant);
@@ -447,10 +453,10 @@ function saasPrincipal(user, tenant) {
447
453
  //#endregion
448
454
  //#region src/testing/saas/sql.ts
449
455
  /**
450
- * Postgres tables for the SaaS domain. Column names match the resource
451
- * fields (`"orgId"`, `"ownerId"`) so generated RLS and ORM filters compile
452
- * against them without a column map. RLS is enabled and forced on the row
453
- * tables; policies come from `permdock rls generate`.
456
+ * Postgres tables for the SaaS domain. Column names match the resource fields
457
+ * (`"orgId"`, `"ownerId"`) so generated RLS and ORM filters compile against
458
+ * them without a column map. RLS is enabled and forced on the row tables;
459
+ * policies come from `permdock rls generate`.
454
460
  */
455
461
  const saasSchemaSql = `
456
462
  create table org (
@@ -507,7 +513,7 @@ create table folder_editor (
507
513
  function literal(value) {
508
514
  if (value === null || value === void 0) return "null";
509
515
  if (typeof value === "number") {
510
- if (!Number.isFinite(value)) throw new Error("PermDock: non-finite number in fixture seed");
516
+ if (!Number.isFinite(value)) throw new TypeError("PermDock: non-finite number in fixture seed");
511
517
  return String(value);
512
518
  }
513
519
  if (typeof value === "boolean") return value ? "true" : "false";
@@ -592,7 +598,7 @@ const SAAS_TOKEN_TTL_SECONDS = 3600;
592
598
  function base64url(bytes) {
593
599
  let binary = "";
594
600
  for (const byte of bytes) binary += String.fromCodePoint(byte);
595
- return btoa(binary).replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/u, "");
601
+ return btoa(binary).replaceAll("+", "-").replaceAll("/", "_").replace(/[=]+$/u, "");
596
602
  }
597
603
  function encodeJson(value) {
598
604
  return base64url(new TextEncoder().encode(JSON.stringify(value)));
@@ -640,9 +646,9 @@ function parseSegment(segment) {
640
646
  }
641
647
  }
642
648
  /**
643
- * Verifies a token from `signSaasToken` (ES256, `kid`, `iss`, `aud`, `exp`)
644
- * and returns its `sub`, or `null`; never throws. Identity only: memberships
645
- * and plans come from the seed, never from the token.
649
+ * Verifies a token from `signSaasToken` (ES256, `kid`, `iss`, `aud`, `exp`) and
650
+ * returns its `sub`, or `null`; never throws. Identity only: memberships and
651
+ * plans come from the seed, never from the token.
646
652
  */
647
653
  async function verifySaasToken(token, now) {
648
654
  return (await verifySaasSession(token, now))?.sub ?? null;
@@ -677,7 +683,10 @@ async function verifySaasSession(token, at) {
677
683
  }
678
684
  //#endregion
679
685
  //#region src/testing/saas/scenarios.ts
680
- /** What the policy's `subject` receives: the principal, or a `Subject` carrying the actor. */
686
+ /**
687
+ * What the policy's `subject` receives: the principal, or a `Subject` carrying
688
+ * the actor.
689
+ */
681
690
  function saasUser(scenario) {
682
691
  const principal = saasPrincipal(scenario.user, scenario.tenant);
683
692
  if (scenario.actor === void 0 && scenario.delegation === void 0) return principal;
@@ -713,7 +722,10 @@ function saasLimitStore(used = 0) {
713
722
  }
714
723
  };
715
724
  }
716
- /** The `createPermDock` options a scenario runs with: tenant, custom roles, quota and folder tree. */
725
+ /**
726
+ * The `createPermDock` options a scenario runs with: tenant, custom roles,
727
+ * quota and folder tree.
728
+ */
717
729
  function saasScenarioOptions(scenario) {
718
730
  return {
719
731
  ...scenario.tenant === void 0 ? {} : { tenant: scenario.tenant },
@@ -738,8 +750,9 @@ function saasFolder(id) {
738
750
  return row;
739
751
  }
740
752
  /**
741
- * The folder tree, decided with `createPermDock({ relations: saasRelations() })`.
742
- * A snapshot carries no graph, so every graph grant is server-only on a client.
753
+ * The folder tree, decided with `createPermDock({ relations: saasRelations()
754
+ * })`. A snapshot carries no graph, so every graph grant is server-only on a
755
+ * client.
743
756
  */
744
757
  const saasFolderScenarios = Object.freeze([
745
758
  {
@@ -803,8 +816,8 @@ const saasFolderScenarios = Object.freeze([
803
816
  }
804
817
  ]);
805
818
  /**
806
- * Hand-written expectations. Never derive `expected` from the engine: the
807
- * list is the oracle every adapter, ORM and client suite runs against.
819
+ * Hand-written expectations. Never derive `expected` from the engine: the list
820
+ * is the oracle every adapter, ORM and client suite runs against.
808
821
  */
809
822
  const saasScenarios = Object.freeze([
810
823
  {
@@ -16,7 +16,7 @@ const scan = defineLeaf({
16
16
  }
17
17
  },
18
18
  async run(ctx, { flags }) {
19
- const { runAdoptionScan } = await import("./adoption-scan-D-feE7BE.js");
19
+ const { runAdoptionScan } = await import("./adoption-scan-BLs67P1l.js");
20
20
  return runAdoptionScan({
21
21
  cwd: ctx.cwd,
22
22
  srcPath: flags.src.length > 0 ? flags.src : ctx.config.collect?.srcPath ?? ["src"],
@@ -1,5 +1,5 @@
1
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
2
- import { n as RFC3339_PATTERN } from "./time-DkWjdL98.js";
1
+ import { n as freezeDeep } from "./freeze-jjan0lCv.js";
2
+ import { n as RFC3339_PATTERN } from "./time-nR1JesoH.js";
3
3
  //#region src/catalog/schema.ts
4
4
  const name = {
5
5
  type: "string",
@@ -234,6 +234,7 @@ const catalogSchema = freezeDeep({
234
234
  },
235
235
  renamedFrom: strings,
236
236
  levels: strings,
237
+ orderedLevels: { const: true },
237
238
  hostable: { const: true },
238
239
  rowConditions: { type: "boolean" },
239
240
  approvals: {