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
@@ -0,0 +1,165 @@
1
+ import { n as SCIM_TABLES, r as SCIM_UNIQUE } from "./postgres-store-DcyrPS-r.js";
2
+ import { o as quoteSqlIdent } from "./sql-0WjxIp9g.js";
3
+ import { n as fileSummary, t as applyFiles } from "./files-B3AA05f1.js";
4
+ import { r as driftOf } from "./output-files-BIQ_9pIs.js";
5
+ //#region src/cli/scim/generate.ts
6
+ const SCIM_MARKER = "-- generated by permdock scim generate";
7
+ /**
8
+ * The client roles each dialect's data API connects as; none may reach the
9
+ * directory.
10
+ */
11
+ function clientRoles(dialect) {
12
+ switch (dialect) {
13
+ case "supabase": return [
14
+ "public",
15
+ "anon",
16
+ "authenticated"
17
+ ];
18
+ case "neon": return [
19
+ "public",
20
+ "anonymous",
21
+ "authenticated"
22
+ ];
23
+ case "guc": return ["public"];
24
+ default: return dialect;
25
+ }
26
+ }
27
+ /**
28
+ * The directory `postgresDirectoryStore` reads and writes: users, groups and
29
+ * group members keyed on `(tenant, id)`, with `userName` and `externalId`
30
+ * unique per tenant. Member values are SCIM `value`s, not a foreign key to
31
+ * users, because a member may be a nested group. No client role may read or
32
+ * write the tables.
33
+ */
34
+ function scimSchemaSql(input) {
35
+ const schema = quoteSqlIdent(input.schema);
36
+ const table = (name) => `${schema}.${quoteSqlIdent(name)}`;
37
+ const users = table(SCIM_TABLES.users);
38
+ const groups = table(SCIM_TABLES.groups);
39
+ const members = table(SCIM_TABLES.members);
40
+ const all = [
41
+ users,
42
+ groups,
43
+ members
44
+ ].join(", ");
45
+ return `${SCIM_MARKER} (--dialect ${input.dialect})
46
+ -- the SCIM directory postgresDirectoryStore reads and writes for scimHandler; every row belongs to one tenant
47
+ create schema if not exists ${schema};
48
+
49
+ create table if not exists ${users} (
50
+ seq bigint generated always as identity unique,
51
+ tenant text not null check (tenant <> ''),
52
+ id text not null check (id <> ''),
53
+ user_name text not null,
54
+ external_id text,
55
+ active boolean not null default true,
56
+ emails jsonb,
57
+ x jsonb,
58
+ created_at timestamptz not null default now(),
59
+ updated_at timestamptz not null default now(),
60
+ revision bigint not null default 1,
61
+ primary key (tenant, id),
62
+ constraint ${quoteSqlIdent(SCIM_UNIQUE.userName)} unique (tenant, user_name),
63
+ constraint ${quoteSqlIdent(SCIM_UNIQUE.userExternalId)} unique (tenant, external_id)
64
+ );
65
+
66
+ create table if not exists ${groups} (
67
+ seq bigint generated always as identity unique,
68
+ tenant text not null check (tenant <> ''),
69
+ id text not null check (id <> ''),
70
+ display_name text not null,
71
+ external_id text,
72
+ roles text[],
73
+ x jsonb,
74
+ created_at timestamptz not null default now(),
75
+ updated_at timestamptz not null default now(),
76
+ revision bigint not null default 1,
77
+ primary key (tenant, id),
78
+ constraint ${quoteSqlIdent(SCIM_UNIQUE.groupExternalId)} unique (tenant, external_id)
79
+ );
80
+
81
+ create table if not exists ${members} (
82
+ tenant text not null,
83
+ group_id text not null,
84
+ user_id text not null,
85
+ position integer not null default 0,
86
+ primary key (tenant, group_id, user_id),
87
+ foreign key (tenant, group_id) references ${groups} (tenant, id) on delete cascade
88
+ );
89
+ create index if not exists ${quoteSqlIdent(`${SCIM_TABLES.members}_user_idx`)} on ${members} (tenant, user_id);
90
+
91
+ -- server only: grant select, insert, update and delete on these tables to the role postgresDirectoryStore
92
+ -- connects as when it does not own them
93
+ alter table ${users} enable row level security;
94
+ alter table ${groups} enable row level security;
95
+ alter table ${members} enable row level security;
96
+ revoke all on table ${all} from ${clientRoles(input.dialect).join(", ")};
97
+ `;
98
+ }
99
+ /**
100
+ * `supabase/schemas/<schema>/scim.sql` for Supabase, the pg-delta per-schema
101
+ * layout; `permdock_scim.sql` otherwise.
102
+ */
103
+ function scimOut(dialect, schema) {
104
+ return dialect === "supabase" ? `supabase/schemas/${schema}/scim.sql` : "permdock_scim.sql";
105
+ }
106
+ function runScimGenerate(input) {
107
+ const dialect = input.dialect ?? input.config.rls?.dialect ?? "supabase";
108
+ const schema = input.schema ?? input.config.rls?.schema ?? "permdock";
109
+ const sql = scimSchemaSql({
110
+ schema,
111
+ dialect
112
+ });
113
+ const out = input.out ?? scimOut(dialect, schema);
114
+ const data = {
115
+ out,
116
+ dialect,
117
+ schema,
118
+ tables: Object.values(SCIM_TABLES).map((name) => `${schema}.${name}`)
119
+ };
120
+ if (out === "-") return {
121
+ code: 0,
122
+ output: sql.trimEnd(),
123
+ data: {
124
+ ...data,
125
+ sql
126
+ }
127
+ };
128
+ if (input.check) {
129
+ const drift = driftOf(input.cwd, [{
130
+ part: "scim",
131
+ rel: out,
132
+ text: sql
133
+ }]);
134
+ return drift.length === 0 ? {
135
+ code: 0,
136
+ output: `${out} is current`,
137
+ data
138
+ } : {
139
+ code: 1,
140
+ output: `${drift.join("\n")}\nrun permdock scim generate`,
141
+ data: {
142
+ ...data,
143
+ drift
144
+ }
145
+ };
146
+ }
147
+ const applied = applyFiles(input.cwd, [{
148
+ path: out,
149
+ text: sql
150
+ }], { dryRun: input.dryRun });
151
+ return {
152
+ code: 0,
153
+ output: fileSummary(applied, input.dryRun),
154
+ data: {
155
+ ...data,
156
+ files: applied
157
+ },
158
+ next: [{
159
+ when: "in CI, to fail when the file is stale",
160
+ command: "permdock scim generate --check"
161
+ }]
162
+ };
163
+ }
164
+ //#endregion
165
+ export { runScimGenerate };
@@ -0,0 +1,275 @@
1
+ import { r as isRecord } from "./compact-CAf557ZB.js";
2
+ import { t as byCodePoint } from "./compare-DTfyUunF.js";
3
+ //#region src/cli/generate.ts
4
+ const IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/u;
5
+ const MAX_DEPTH = 6;
6
+ function isSchemaKind(value) {
7
+ return value === "zod" || value === "valibot" || value === "arktype";
8
+ }
9
+ function schemaImport(kind) {
10
+ switch (kind) {
11
+ case "zod": return "import { z } from 'zod'";
12
+ case "valibot": return "import * as v from 'valibot'";
13
+ case "arktype": return "import { type } from 'arktype'";
14
+ default: return kind;
15
+ }
16
+ }
17
+ function emptySchema(kind) {
18
+ return schemaExpression(kind, { type: "object" });
19
+ }
20
+ function propertyKey(name) {
21
+ return IDENTIFIER.test(name) ? name : JSON.stringify(name);
22
+ }
23
+ function literalEnum(schema) {
24
+ const type = schema["type"];
25
+ const nullable = Array.isArray(type) && type.includes("null");
26
+ const all = schema["enum"];
27
+ const values = nullable && Array.isArray(all) ? all.filter((value) => value !== null) : all;
28
+ if (!Array.isArray(values) || values.length === 0 || !values.every((value) => typeof value === "string")) return;
29
+ return values;
30
+ }
31
+ function schemaType(schema) {
32
+ const type = schema["type"];
33
+ if (typeof type === "string") return type;
34
+ if (Array.isArray(type)) {
35
+ const named = type.filter((item) => item !== "null");
36
+ return named.length === 1 && typeof named[0] === "string" ? named[0] : void 0;
37
+ }
38
+ return isRecord(schema["properties"]) ? "object" : void 0;
39
+ }
40
+ function bound(node, key) {
41
+ const value = node[key];
42
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
43
+ }
44
+ function isNullable(node, emit) {
45
+ const type = node["type"];
46
+ return emit.constraints && Array.isArray(type) && type.includes("null");
47
+ }
48
+ function formatOf(node, emit) {
49
+ const format = node["format"];
50
+ return emit.constraints && typeof format === "string" ? format : void 0;
51
+ }
52
+ /** `[method, value]` pairs for the bounds `keys` names, in order. */
53
+ function bounds(node, emit, keys) {
54
+ if (!emit.constraints) return [];
55
+ return keys.flatMap(([key, method]) => {
56
+ const value = bound(node, key);
57
+ return value === void 0 ? [] : [[method, value]];
58
+ });
59
+ }
60
+ const NUMBER_BOUNDS = [
61
+ ["minimum", "min"],
62
+ ["exclusiveMinimum", "gt"],
63
+ ["maximum", "max"],
64
+ ["exclusiveMaximum", "lt"]
65
+ ];
66
+ const LENGTH_BOUNDS = [["minLength", "min"], ["maxLength", "max"]];
67
+ const ITEM_BOUNDS = [["minItems", "min"], ["maxItems", "max"]];
68
+ const ZOD_FORMATS = {
69
+ uuid: "z.uuid()",
70
+ email: "z.email()",
71
+ uri: "z.url()",
72
+ "date-time": "z.iso.datetime({ offset: true })",
73
+ date: "z.iso.date()"
74
+ };
75
+ function zodChain(base, pairs) {
76
+ return `${base}${pairs.map(([method, value]) => `.${method}(${String(value)})`).join("")}`;
77
+ }
78
+ function zodOf(schema, emit, depth) {
79
+ const node = emit.resolve(schema);
80
+ const expression = zodNode(node, emit, depth);
81
+ return isNullable(node, emit) ? `${expression}.nullable()` : expression;
82
+ }
83
+ function zodNode(node, emit, depth) {
84
+ const values = literalEnum(node);
85
+ if (values !== void 0) return `z.enum(${JSON.stringify(values)})`;
86
+ const type = depth > MAX_DEPTH ? void 0 : schemaType(node);
87
+ if (type === void 0) return "z.unknown()";
88
+ switch (type) {
89
+ case "string": return zodChain(ZOD_FORMATS[formatOf(node, emit) ?? ""] ?? "z.string()", bounds(node, emit, LENGTH_BOUNDS));
90
+ case "number": return zodChain("z.number()", bounds(node, emit, NUMBER_BOUNDS));
91
+ case "integer": return zodChain("z.number().int()", bounds(node, emit, NUMBER_BOUNDS));
92
+ case "boolean": return "z.boolean()";
93
+ case "array": return zodChain(`z.array(${isRecord(node["items"]) ? zodOf(node["items"], emit, depth + 1) : "z.unknown()"})`, bounds(node, emit, ITEM_BOUNDS));
94
+ case "object": {
95
+ const fields = objectFields(node).map(([name, child, required]) => {
96
+ const expression = zodOf(child, emit, depth + 1);
97
+ return `${propertyKey(name)}: ${required ? expression : `${expression}.optional()`}`;
98
+ });
99
+ return `z.object({${fields.length === 0 ? "" : ` ${fields.join(", ")} `}})`;
100
+ }
101
+ default: return "z.unknown()";
102
+ }
103
+ }
104
+ /** Each property of an object schema with whether `required` names it. */
105
+ function objectFields(node) {
106
+ const required = new Set(Array.isArray(node["required"]) ? node["required"] : []);
107
+ const properties = isRecord(node["properties"]) ? node["properties"] : {};
108
+ return Object.entries(properties).filter((entry) => isRecord(entry[1])).map(([name, child]) => [
109
+ name,
110
+ child,
111
+ required.has(name)
112
+ ]);
113
+ }
114
+ const VALIBOT_FORMATS = {
115
+ uuid: "v.uuid()",
116
+ email: "v.email()",
117
+ uri: "v.url()",
118
+ "date-time": "v.isoTimestamp()",
119
+ date: "v.isoDate()"
120
+ };
121
+ const VALIBOT_NUMBER_BOUNDS = [
122
+ ["minimum", "minValue"],
123
+ ["exclusiveMinimum", "gtValue"],
124
+ ["maximum", "maxValue"],
125
+ ["exclusiveMaximum", "ltValue"]
126
+ ];
127
+ function valibotPipe(base, actions) {
128
+ return actions.length === 0 ? base : `v.pipe(${[base, ...actions].join(", ")})`;
129
+ }
130
+ function valibotLength(pairs) {
131
+ return pairs.map(([method, value]) => `v.${method === "min" ? "minLength" : "maxLength"}(${String(value)})`);
132
+ }
133
+ function valibotOf(schema, emit, depth) {
134
+ const node = emit.resolve(schema);
135
+ const expression = valibotNode(node, emit, depth);
136
+ return isNullable(node, emit) ? `v.nullable(${expression})` : expression;
137
+ }
138
+ function valibotNode(node, emit, depth) {
139
+ const values = literalEnum(node);
140
+ if (values !== void 0) return `v.picklist(${JSON.stringify(values)})`;
141
+ const type = depth > MAX_DEPTH ? void 0 : schemaType(node);
142
+ if (type === void 0) return "v.unknown()";
143
+ const numeric = bounds(node, emit, VALIBOT_NUMBER_BOUNDS).map(([method, value]) => `v.${method}(${String(value)})`);
144
+ switch (type) {
145
+ case "string": {
146
+ const format = VALIBOT_FORMATS[formatOf(node, emit) ?? ""];
147
+ return valibotPipe("v.string()", [...format === void 0 ? [] : [format], ...valibotLength(bounds(node, emit, LENGTH_BOUNDS))]);
148
+ }
149
+ case "number": return valibotPipe("v.number()", numeric);
150
+ case "integer": return valibotPipe("v.number()", ["v.integer()", ...numeric]);
151
+ case "boolean": return "v.boolean()";
152
+ case "array": return valibotPipe(`v.array(${isRecord(node["items"]) ? valibotOf(node["items"], emit, depth + 1) : "v.unknown()"})`, valibotLength(bounds(node, emit, ITEM_BOUNDS)));
153
+ case "object": {
154
+ const fields = objectFields(node).map(([name, child, required]) => {
155
+ const expression = valibotOf(child, emit, depth + 1);
156
+ return `${propertyKey(name)}: ${required ? expression : `v.optional(${expression})`}`;
157
+ });
158
+ return `v.object({${fields.length === 0 ? "" : ` ${fields.join(", ")} `}})`;
159
+ }
160
+ default: return "v.unknown()";
161
+ }
162
+ }
163
+ const ARKTYPE_FORMATS = {
164
+ uuid: "string.uuid",
165
+ email: "string.email",
166
+ uri: "string.url",
167
+ "date-time": "string.date.iso",
168
+ date: "string.date.iso"
169
+ };
170
+ /** `1 <= string <= 120`; arktype bounds apply to `string` and `number` only. */
171
+ function arktypeRange(keyword, pairs) {
172
+ const lower = pairs.find(([method]) => method === "min" || method === "gt");
173
+ const upper = pairs.find(([method]) => method === "max" || method === "lt");
174
+ const left = lower === void 0 ? "" : `${String(lower[1])} ${lower[0] === "gt" ? "<" : "<="} `;
175
+ const right = upper === void 0 ? "" : ` ${upper[0] === "lt" ? "<" : "<="} ${String(upper[1])}`;
176
+ return lower !== void 0 && upper === void 0 ? `${keyword} ${lower[0] === "gt" ? ">" : ">="} ${String(lower[1])}` : `${left}${keyword}${right}`;
177
+ }
178
+ /** An arktype definition: a string keyword or an object literal. */
179
+ function arktypeOf(schema, emit, depth) {
180
+ const node = emit.resolve(schema);
181
+ const definition = arktypeNode(node, emit, depth);
182
+ if (!isNullable(node, emit)) return definition;
183
+ return definition.startsWith("'") ? `'${definition.slice(1, -1)} | null'` : `[${definition}, '|', 'null']`;
184
+ }
185
+ function arktypeNode(node, emit, depth) {
186
+ const values = literalEnum(node);
187
+ if (values !== void 0) return JSON.stringify(values.map((value) => `'${value.replaceAll("'", "\\'")}'`).join(" | "));
188
+ const type = depth > MAX_DEPTH ? void 0 : schemaType(node);
189
+ if (type === void 0) return "'unknown'";
190
+ switch (type) {
191
+ case "string": {
192
+ const format = ARKTYPE_FORMATS[formatOf(node, emit) ?? ""];
193
+ return format === void 0 ? `'${arktypeRange("string", bounds(node, emit, LENGTH_BOUNDS))}'` : `'${format}'`;
194
+ }
195
+ case "number": return `'${arktypeRange("number", bounds(node, emit, NUMBER_BOUNDS))}'`;
196
+ case "integer": return "'number.integer'";
197
+ case "boolean": return "'boolean'";
198
+ case "array": {
199
+ if (!isRecord(node["items"])) return "'unknown[]'";
200
+ const item = arktypeOf(node["items"], emit, depth + 1);
201
+ return item.startsWith("'") && !item.includes("|") ? `'${item.slice(1, -1)}[]'` : `[${item}, '[]']`;
202
+ }
203
+ case "object": {
204
+ const fields = objectFields(node).map(([name, child, required]) => `${JSON.stringify(required ? name : `${name}?`)}: ${arktypeOf(child, emit, depth + 1)}`);
205
+ return `{${fields.length === 0 ? "" : ` ${fields.join(", ")} `}}`;
206
+ }
207
+ default: return "'unknown'";
208
+ }
209
+ }
210
+ /**
211
+ * A validator expression for a JSON Schema object. Only the portable core
212
+ * (primitives, enums of strings, arrays, objects with `required`) is
213
+ * translated, plus with `constraints` the formats, bounds and nullable types;
214
+ * anything else becomes the validator's `unknown`.
215
+ */
216
+ function schemaExpression(kind, schema, resolve = (node) => node, options = {}) {
217
+ const emit = {
218
+ resolve,
219
+ constraints: options.constraints === true
220
+ };
221
+ switch (kind) {
222
+ case "zod": return zodOf(schema, emit, 0);
223
+ case "valibot": return valibotOf(schema, emit, 0);
224
+ case "arktype": return `type(${arktypeOf(schema, emit, 0)})`;
225
+ default: return kind;
226
+ }
227
+ }
228
+ function renderList(value, indent) {
229
+ if (Array.isArray(value)) return JSON.stringify(value);
230
+ return JSON.stringify(value, null, 2).replaceAll("\n", `\n${indent}`);
231
+ }
232
+ function renderResource(resource, indent) {
233
+ const inner = `${indent} `;
234
+ const options = [
235
+ `${inner}id: '${(resource.id ?? "id").replaceAll("\\", "\\\\").replaceAll("'", "\\'")}',`,
236
+ `${inner}actions: ${renderList(resource.actions, inner)},`,
237
+ `${inner}collection: ${renderList(resource.collection, inner)},`
238
+ ].join("\n");
239
+ return `${resource.schema === void 0 ? "resource({" : `resource(${resource.schema}, {`}\n${options}\n${indent}})`;
240
+ }
241
+ function insert(trie, resource) {
242
+ let node = trie;
243
+ for (const [index, segment] of resource.path.entries()) {
244
+ if (index === resource.path.length - 1) {
245
+ node.set(segment, resource);
246
+ return;
247
+ }
248
+ const next = node.get(segment);
249
+ if (next instanceof Map) node = next;
250
+ else {
251
+ const created = /* @__PURE__ */ new Map();
252
+ node.set(segment, created);
253
+ node = created;
254
+ }
255
+ }
256
+ }
257
+ function renderTrie(trie, indent) {
258
+ return [...trie.entries()].toSorted(([a], [b]) => byCodePoint(a, b)).map(([segment, value]) => value instanceof Map ? `${indent}${propertyKey(segment)}: {\n${renderTrie(value, `${indent} `)}\n${indent}},` : `${indent}${propertyKey(segment)}: ${renderResource(value, indent)},`).join("\n");
259
+ }
260
+ /** A deterministic `definePermissions()` module with a `// @generated` header. */
261
+ function emitPermissionsModule(input) {
262
+ const trie = /* @__PURE__ */ new Map();
263
+ for (const resource of input.resources) insert(trie, resource);
264
+ const imports = ["import { definePermissions, resource } from 'permdock'", ...input.schema === void 0 ? [] : [schemaImport(input.schema)]];
265
+ const extras = Object.entries(input.exports ?? {}).map(([name, value]) => `export const ${name} = ${JSON.stringify(value, null, 2)} as const\n\n`);
266
+ return `// @generated by permdock ${input.generator}
267
+ ${imports.join("\n")}
268
+
269
+ ${extras.join("")}export const permissions = definePermissions({
270
+ ${renderTrie(trie, " ")}
271
+ })
272
+ `;
273
+ }
274
+ //#endregion
275
+ export { schemaExpression as i, emptySchema as n, isSchemaKind as r, emitPermissionsModule as t };
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep, t as freezeCopy } from "./freeze-CrU8nQeX.js";
3
- import { i as ownKeys, n as isForbiddenKey, t as assertSafeKey } from "./paths-DXSHAMIa.js";
4
- import { c as listPermissions, o as isPermission } from "./permission-registry-Br4jSNVi.js";
5
- import { i as readAppData, r as parseAppData, t as assertAppData } from "./app-data-MuyzVqX8.js";
2
+ import { n as freezeDeep, t as freezeCopy } from "./freeze-jjan0lCv.js";
3
+ import { i as ownKeys, n as isForbiddenKey, t as assertSafeKey } from "./paths-CUvURzHp.js";
4
+ import { c as listPermissions, o as isPermission } from "./permission-registry-B8tYxPIt.js";
5
+ import { i as readAppData, r as parseAppData, t as assertAppData } from "./app-data-UNNm07jV.js";
6
6
  //#region src/core/vocabulary.ts
7
7
  const ROLE_KIND = "role";
8
8
  const PLAN_KIND = "plan";
@@ -1,11 +1,11 @@
1
1
  import { a as sole, t as compact } from "./compact-CAf557ZB.js";
2
- import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, m as restrictedStops, p as restrictedFor, s as isComputedRelation, u as isPrincipalRelation } from "./resource-relations-D_jw0BFx.js";
3
- import { d as isoNow } from "./time-DkWjdL98.js";
4
- import { c as rootScope, d as scopeList, o as resolveScope } from "./scopes-CUPSjo9q.js";
2
+ import { a as expandRelation, c as isEdgeRelation, d as isSelfParented, l as isFieldRelation, m as restrictedStops, p as restrictedFor, s as isComputedRelation, u as isPrincipalRelation } from "./resource-relations-8-pCScBO.js";
3
+ import { d as isoNow } from "./time-nR1JesoH.js";
4
+ import { f as scopeList, l as rootScope, s as resolveScope } from "./scopes-0Up_UA2t.js";
5
5
  //#region src/core/grantee-conditions.ts
6
6
  /**
7
- * Where a graph relation starts on the row: its own id when the relation is
8
- * on the row's resource, the parent field when it is on the parent resource.
7
+ * Where a graph relation starts on the row: its own id when the relation is on
8
+ * the row's resource, the parent field when it is on the parent resource.
9
9
  * `undefined` when `through` cannot reach the relation's resource.
10
10
  */
11
11
  function relationStart(grantee, resource, target) {
@@ -25,10 +25,10 @@ function relationStart(grantee, resource, target) {
25
25
  };
26
26
  }
27
27
  /**
28
- * A resource role held on self-parented `membershipResource` instances
29
- * (`ids`) reaches rows below them: the row itself when it is of that
30
- * resource, its parent field when its parent is, walked up to the default
31
- * depth. `undefined` when the row is not on such a chain.
28
+ * A resource role held on self-parented `membershipResource` instances (`ids`)
29
+ * reaches rows below them: the row itself when it is of that resource, its
30
+ * parent field when its parent is, walked up to the default depth. `undefined`
31
+ * when the row is not on such a chain.
32
32
  */
33
33
  function resourceRoleCondition(resource, membershipResource, ids, resources) {
34
34
  if (resource === void 0 || !isSelfParented(resources.get(membershipResource))) return;
@@ -72,9 +72,9 @@ function linkStop(resource, link) {
72
72
  };
73
73
  }
74
74
  /**
75
- * The link path from the row to the grantee's resource: the row field of
76
- * the first link and each hop. `undefined` when a link is not declared or
77
- * the path ends on another resource.
75
+ * The link path from the row to the grantee's resource: the row field of the
76
+ * first link and each hop. `undefined` when a link is not declared or the path
77
+ * ends on another resource.
78
78
  */
79
79
  function relationHops(grantee, resource, resources) {
80
80
  const through = grantee.through;
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { u as isoAt } from "./time-DkWjdL98.js";
3
- import { d as scopeList, t as activeFor } from "./scopes-CUPSjo9q.js";
4
- import { o as flattenGrantee } from "./grantee-hxrUsbpM.js";
5
- import { r as relationCondition, t as inheritCondition } from "./grantee-conditions-CcXf8hMM.js";
2
+ import { u as isoAt } from "./time-nR1JesoH.js";
3
+ import { f as scopeList, t as activeFor } from "./scopes-0Up_UA2t.js";
4
+ import { o as flattenGrantee } from "./grantee-Dke-9rd1.js";
5
+ import { r as relationCondition, t as inheritCondition } from "./grantee-conditions-BrYPe-w0.js";
6
6
  //#region src/core/grantee-match.ts
7
7
  function combineWhere(left, right) {
8
8
  if (left === void 0) return right;
@@ -12,7 +12,10 @@ function combineWhere(left, right) {
12
12
  conditions: [left, right]
13
13
  };
14
14
  }
15
- /** Seats (`Membership.entitlements`) held through memberships that apply under the active tenant. */
15
+ /**
16
+ * Seats (`Membership.entitlements`) held through memberships that apply under
17
+ * the active tenant.
18
+ */
16
19
  function seatsInTenant(subject, scopes) {
17
20
  const principal = subject.principal;
18
21
  if (principal === null) return [];
@@ -110,7 +113,10 @@ function matchOne(grantee, subject, now, resource, scopes, resources) {
110
113
  default: return unknownGrantee(grantee);
111
114
  }
112
115
  }
113
- /** A kind this build does not know, from a forged snapshot or a newer document, never matches. */
116
+ /**
117
+ * A kind this build does not know, from a forged snapshot or a newer document,
118
+ * never matches.
119
+ */
114
120
  function unknownGrantee(_grantee) {
115
121
  return {
116
122
  matched: false,
@@ -19,9 +19,9 @@ type RelationsMapping = {
19
19
  /** The table of each resource the graph reads; default the resource name. */
20
20
  readonly tables?: Readonly<Record<string, string>>;
21
21
  /**
22
- * A closure table (`resource`, `ancestor`, `descendant`, `depth`) such as
23
- * the one `permdock rls` keeps. Without it, parent walks are a bounded
24
- * recursive query over the resource's own table.
22
+ * A closure table (`resource`, `ancestor`, `descendant`, `depth`) such as the
23
+ * one `permdock rls` keeps. Without it, parent walks are a bounded recursive
24
+ * query over the resource's own table.
25
25
  */
26
26
  readonly closure?: string;
27
27
  };
@@ -1,11 +1,14 @@
1
- import { T as Policy, Vt as Snapshot, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
3
- import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CKQiCnON.js";
4
- import { a as ProtectTarget, n as FetchAdapterOptions, r as FetchProtect, t as ContextReader } from "../fetch-adapter-Dw0MTS3D.js";
1
+ import { Gt as Snapshot, T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-CCiDRZBH.js";
2
+ import { a as PermDock } from "../permdock-B6Sf4T_S.js";
3
+ import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CIlpSA2G.js";
4
+ import { a as ProtectTarget, n as FetchAdapterOptions, r as FetchProtect, t as ContextReader } from "../fetch-adapter-C1DCvpqV.js";
5
5
  import { EventHandler, H3Event, H3EventContext, Middleware } from "h3";
6
6
  //#region src/h3/create.d.ts
7
7
  type H3PermDockOptions<TUser = unknown> = FetchAdapterOptions<H3Event, TUser>;
8
- /** `event.context` once `middleware()` or `protect` ran: the instance and the loaded row. */
8
+ /**
9
+ * `event.context` once `middleware()` or `protect` ran: the instance and the
10
+ * loaded row.
11
+ */
9
12
  type H3PermDockContext<TData = unknown, V extends PolicyVocabulary = PolicyVocabulary> = H3EventContext & {
10
13
  readonly permdock: PermDock<V>;
11
14
  readonly permdockData: TData;
@@ -23,8 +26,8 @@ type H3PermDock<V extends PolicyVocabulary = PolicyVocabulary> = {
23
26
  readonly getSnapshot: (event: H3Event, query?: SnapshotQuery) => Promise<Snapshot>;
24
27
  /**
25
28
  * Types `event.context.permdock` and `permdockData` for the handler, builds
26
- * the instance when no middleware set it, and answers a thrown PermDock
27
- * error with Problem Details.
29
+ * the instance when no middleware set it, and answers a thrown PermDock error
30
+ * with Problem Details.
28
31
  */
29
32
  readonly withPermDock: <TData = unknown>(handler: (event: H3PermDockEvent<TData, V>) => unknown) => EventHandler;
30
33
  readonly connection: (event: H3Event, connectionOptions?: ConnectionOptions) => Promise<Connection>;
package/dist/h3/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
2
- import { i as decorate } from "../bind-CAvgUuKs.js";
3
- import { t as fetchAdapter } from "../fetch-adapter-DD_gfmrC.js";
1
+ import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-IBceAeKT.js";
2
+ import { i as decorate } from "../bind-D_sZSVA3.js";
3
+ import { t as fetchAdapter } from "../fetch-adapter-JL43jD3E.js";
4
4
  //#region src/h3/create.ts
5
5
  function createPermDock(policy, options) {
6
6
  const adapter = fetchAdapter(policy, options, "h3", (event) => event.req);
@@ -0,0 +1,10 @@
1
+ //#region src/client/headers.d.ts
2
+ /**
3
+ * The `PermDock-Approval` header for a resume; a `TypeError` for a token that
4
+ * is not an RFC 9651 sf-token.
5
+ */
6
+ declare function approvalHeaders(token: string): {
7
+ readonly "PermDock-Approval": string;
8
+ };
9
+ //#endregion
10
+ export { approvalHeaders as t };