permdock 0.6.0 → 0.7.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 (399) hide show
  1. package/README.md +1 -0
  2. package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
  3. package/dist/a2a/index.d.ts +5 -5
  4. package/dist/a2a/index.js +4 -4
  5. package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-D-feE7BE.js} +1 -1
  6. package/dist/agent/index.d.ts +3 -3
  7. package/dist/agent/index.js +1 -1
  8. package/dist/ai-sdk/index.d.ts +21 -6
  9. package/dist/ai-sdk/index.js +19 -9
  10. package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-K0faOLFp.d.ts} +2 -2
  11. package/dist/approvals/index.d.ts +4 -4
  12. package/dist/approvals/index.js +4 -4
  13. package/dist/{approvals-p1PGoVjb.js → approvals-CMRfsbBh.js} +74 -48
  14. package/dist/{arazzo-41WuzHou.js → arazzo-ClrF3PVb.js} +2 -2
  15. package/dist/{arazzo-CaUVBn7D.js → arazzo-rdeJ8n1J.js} +4 -4
  16. package/dist/{args-IIolxxKA.js → args-CC3OwyHW.js} +112 -2
  17. package/dist/astro/index.d.ts +6 -6
  18. package/dist/astro/index.js +2 -2
  19. package/dist/{audience-DabClFLQ.js → audience-BrMs8c4o.js} +1 -1
  20. package/dist/{auth-DRLEizbL.js → auth-CscUX8Sy.js} +3 -4
  21. package/dist/authzen/index.d.ts +162 -22
  22. package/dist/authzen/index.js +315 -146
  23. package/dist/{automation-BNM3TtDo.d.ts → automation-DOtAFWdy.d.ts} +3 -3
  24. package/dist/{automation-DVjOckjV.js → automation-ySsxp_Yp.js} +1 -1
  25. package/dist/base-url-BQbddZO5.js +9 -0
  26. package/dist/better-auth/index.d.ts +2 -2
  27. package/dist/better-auth/index.js +2 -2
  28. package/dist/better-supabase/index.d.ts +50 -8
  29. package/dist/better-supabase/index.js +94 -32
  30. package/dist/{bind-CAvgUuKs.js → bind-D1nO6fiC.js} +5 -5
  31. package/dist/{bind-DOyrv6zi.d.ts → bind-JDuvxjuW.d.ts} +7 -7
  32. package/dist/{build-instance-Bu_eDqYw.js → build-instance-DxE7czo9.js} +1 -1
  33. package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
  34. package/dist/{capability-Drg-1YhL.d.ts → capability-D4UC9TTW.d.ts} +2 -2
  35. package/dist/{capability-N1K9IpqS.js → capability-L7NnfhiE.js} +1 -1
  36. package/dist/{casbin-Cr7RLtA3.js → casbin-BHijLuHY.js} +2 -2
  37. package/dist/{casbin-Dyu2gnUD.js → casbin-BW9pS47J.js} +1 -1
  38. package/dist/{casl-64gpT-8x.js → casl-CmJlgziS.js} +2 -2
  39. package/dist/{casl-DjEDhTCP.js → casl-UbI8v-Wq.js} +1 -1
  40. package/dist/catalog/index.d.ts +70 -10
  41. package/dist/catalog/index.js +112 -6
  42. package/dist/catalog-BCCjSAdH.js +1 -0
  43. package/dist/{catalog-DZVbrF-z.js → catalog-BaMQfQ6Y.js} +3 -3
  44. package/dist/{catalog-HD2gf5mY.js → catalog-D69WhFii.js} +43 -13
  45. package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-CV9s6B1S.js} +28 -5
  46. package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-C144oW4M.js} +1 -1
  47. package/dist/{create-CQWIpUG-.js → challenge-nGWma08S.js} +122 -25
  48. package/dist/chat/index.d.ts +1 -1
  49. package/dist/chat/index.js +2 -2
  50. package/dist/chat-sdk/index.d.ts +3 -3
  51. package/dist/checks-BC_0mPIq.js +37 -0
  52. package/dist/claude-agent/index.d.ts +3 -3
  53. package/dist/claude-agent/index.js +2 -2
  54. package/dist/clerk/index.d.ts +3 -3
  55. package/dist/clerk/index.js +1 -1
  56. package/dist/cli/bin.js +2 -2
  57. package/dist/cli/index.d.ts +3 -3
  58. package/dist/cli/index.js +3 -3
  59. package/dist/cloud/index.d.ts +127 -11
  60. package/dist/cloud/index.js +251 -3
  61. package/dist/{cloud-ytQ3uviA.js → cloud-CO8pYtwr.js} +5 -5
  62. package/dist/{codemod-ua2hHy7w.js → codemod-BP6n8N9L.js} +3 -3
  63. package/dist/{codemod-5mpSpnUY.js → codemod-i4N2BhDc.js} +3 -3
  64. package/dist/{collect-mLTY4nwb.js → collect-BaWeMjwV.js} +17 -8
  65. package/dist/{collect-Ci6akVwH.js → collect-DNm3oKOk.js} +6 -5
  66. package/dist/collect-k_Dulxr5.js +1 -0
  67. package/dist/compile/index.d.ts +1 -1
  68. package/dist/compile/index.js +1 -1
  69. package/dist/{compile-CMqMx_IN.js → compile-BAEO5bOk.js} +2 -2
  70. package/dist/{compile-1bsAezL0.d.ts → compile-COM2VKuN.d.ts} +3 -3
  71. package/dist/{completion-BTFrHZhX.js → completion-BNdVf7X2.js} +3 -3
  72. package/dist/{config-bs_kZeYq.js → config-CoQHDrDi.js} +7 -3
  73. package/dist/{config-Bj2Ixq3d.js → config-DGZzMV1B.js} +2 -2
  74. package/dist/{config-report-DSpsLpCE.js → config-report-Cm7UITNA.js} +3 -3
  75. package/dist/connector-schema-_VCSsdtD.js +433 -0
  76. package/dist/{context-B_u3_bDJ.js → context--uM9V3Ui.js} +2 -2
  77. package/dist/convex/index.d.ts +5 -5
  78. package/dist/convex/index.js +2 -2
  79. package/dist/core-B5-w6Kw9.js +335 -0
  80. package/dist/core-CQkE8Esr.d.ts +179 -0
  81. package/dist/{create-B30OMUOJ.d.ts → create-B2-CQqCI.d.ts} +5 -5
  82. package/dist/{create-CGm28gyI.js → create-Cb86Z8Im.js} +9 -8
  83. package/dist/{create-DCF2SvoT.js → create-DJrlhEp9.js} +5 -5
  84. package/dist/{create-D_NmPOdH.d.ts → create-QHuuPw3q.d.ts} +7 -7
  85. package/dist/{create-CBMmFie-.d.ts → create-UTnUVETj.d.ts} +30 -10
  86. package/dist/{credential-BcoiejpY.js → credential-CIM7wHwA.js} +4 -4
  87. package/dist/{credentials-DPyHmYz5.js → credentials-BpuTwd7a.js} +1 -1
  88. package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-DRo2QM6E.js} +13 -2
  89. package/dist/{delegation-j6-rc37o.js → delegation-C5rOdTp5.js} +5 -5
  90. package/dist/delivery/index.d.ts +5 -5
  91. package/dist/delivery/index.js +4 -3
  92. package/dist/{delivery-DCAgNyCn.js → delivery-rwOKLWRm.js} +51 -2
  93. package/dist/{denied-text-CiFQNuMV.d.ts → denied-text-D4qkEtFz.d.ts} +2 -2
  94. package/dist/{describe-BybMRY7A.js → describe-DZlnEtLy.js} +1 -0
  95. package/dist/{describe-B5qgDvEW.d.ts → describe-O0SwYIK8.d.ts} +2 -2
  96. package/dist/{diff-CmuSD3vc.js → diff-Btr1c1Ow.js} +2 -2
  97. package/dist/{diff-3jbx6Rm4.js → diff-DzT-xD13.js} +10 -10
  98. package/dist/{doctor-BdZw53-k.js → doctor-BU1szn63.js} +241 -49
  99. package/dist/{doctor-3ZqNHX_G.js → doctor-BoK_y0KO.js} +4 -4
  100. package/dist/drizzle/index.d.ts +3 -3
  101. package/dist/drizzle/index.js +1 -1
  102. package/dist/elysia/index.d.ts +5 -5
  103. package/dist/elysia/index.js +3 -3
  104. package/dist/{errors-DH5QEGXh.d.ts → errors-B_Qg9D3e.d.ts} +2 -2
  105. package/dist/{errors-CWTY6uih.js → errors-DpP_U6Bf.js} +1 -0
  106. package/dist/{evaluate-CNClBvcj.js → evaluate-B_oqFbWC.js} +55 -12
  107. package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-BCddEOfO.d.ts} +4 -4
  108. package/dist/{evaluations-beAooV0n.js → evaluations-DReoiVBw.js} +4 -4
  109. package/dist/eve/index.d.ts +5 -5
  110. package/dist/eve/index.js +3 -3
  111. package/dist/express/index.d.ts +5 -5
  112. package/dist/express/index.js +3 -3
  113. package/dist/fastify/index.d.ts +5 -5
  114. package/dist/fastify/index.js +3 -3
  115. package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-CuhyYwC1.d.ts} +4 -4
  116. package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-De-u6vhJ.js} +3 -3
  117. package/dist/{fields-OYG_JR78.js → fields-ClcQLrVc.js} +48 -13
  118. package/dist/{files-C5ZI27eV.js → files-acUbNwWt.js} +15 -2
  119. package/dist/{fixtures-B7XrLeY7.js → fixtures-BTMW6zgU.js} +2 -2
  120. package/dist/{flags-C3DktBDY.js → flags-aaeRAdiD.js} +2 -2
  121. package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-Bz469dIh.js} +17 -10
  122. package/dist/generate-3FNO5P5Q.js +159 -0
  123. package/dist/{grantee-hxrUsbpM.js → grantee-BrRANrpT.js} +1 -1
  124. package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-C6P1Tvol.js} +1 -1
  125. package/dist/{grantee-match-DbENBHLB.js → grantee-match-0RtHWQDx.js} +3 -3
  126. package/dist/h3/index.d.ts +4 -4
  127. package/dist/h3/index.js +3 -3
  128. package/dist/{helpers-CBYVMjwh.js → helpers-DY3vXuGs.js} +3 -3
  129. package/dist/hono/index.d.ts +5 -5
  130. package/dist/hono/index.js +3 -3
  131. package/dist/{hosted-BPk51-kX.d.ts → hosted-BmjzxQhp.d.ts} +14 -2
  132. package/dist/{hosted-B46-5LYE.js → hosted-XBgU6RGT.js} +34 -12
  133. package/dist/{http-DXJ37RDA.js → http-Ca3Sr5x1.js} +1 -1
  134. package/dist/{import-wyqXUyjm.js → import-Bz0GefWg.js} +5 -5
  135. package/dist/{import-CNV7I2Dw.js → import-DB2EG_iy.js} +3 -3
  136. package/dist/{index-C-6Letxg.d.ts → index-BE8y3moU.d.ts} +50 -8
  137. package/dist/{index-B8YjkEZ4.d.ts → index-BSfRl0hZ.d.ts} +6 -6
  138. package/dist/{index-DuWxc5dt.d.ts → index-BTkwrK7v.d.ts} +143 -14
  139. package/dist/index-CMiPH2Tv.d.ts +206 -0
  140. package/dist/{index-Ch8LpNDp.d.ts → index-DH9DUDEM.d.ts} +18 -3
  141. package/dist/{index-CueFnxQc.d.ts → index-DLwcuCN_.d.ts} +86 -7
  142. package/dist/index.d.ts +18 -17
  143. package/dist/index.js +27 -25
  144. package/dist/{init-GG6Jh8HD.js → init-5TXNji88.js} +5 -5
  145. package/dist/{init-DeMYsnYJ.js → init-B-4t1NzC.js} +4 -4
  146. package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-CU0YQCLH.d.ts} +1 -1
  147. package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot-CjcwnEiV.js} +16 -11
  148. package/dist/jwt/index.d.ts +83 -5
  149. package/dist/jwt/index.js +143 -5
  150. package/dist/{kernel-D0NVb1cK.js → kernel-DVExUwkp.js} +138 -12
  151. package/dist/kysely/index.d.ts +3 -3
  152. package/dist/kysely/index.js +1 -1
  153. package/dist/load-DrMHXzgN.js +1 -0
  154. package/dist/{load-DFS_ry0W.js → load-DxroEzH1.js} +2 -2
  155. package/dist/{login-Dfe5RlYk.js → login-ClSJh5t5.js} +4 -4
  156. package/dist/{login-imhuwvn3.js → login-WC9HPJpU.js} +6 -10
  157. package/dist/{manifest-C8IzW3Do.js → manifest-B79YuF2T.js} +6 -2
  158. package/dist/{manifest-mx5ghSFM.d.ts → manifest-BVhExYhw.d.ts} +23 -2
  159. package/dist/{manifest-dvL2XEe1.js → manifest-Dv6q4i5s.js} +54 -35
  160. package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-Cv492Qev.js} +37 -7
  161. package/dist/{map-claims-D3oRmTk0.js → map-claims-etGIS_Dv.js} +14 -11
  162. package/dist/{map-error-Dr70oA_3.js → map-error-BQGyDm_M.js} +1 -1
  163. package/dist/mcp/index.d.ts +64 -10
  164. package/dist/mcp/index.js +151 -22
  165. package/dist/{migrate-CIq4-E9F.js → migrate-Dodel0IJ.js} +77 -24
  166. package/dist/nest/index.d.ts +5 -5
  167. package/dist/nest/index.js +3 -3
  168. package/dist/next/index.d.ts +9 -9
  169. package/dist/next/index.js +5 -5
  170. package/dist/next/plugin.d.ts +1 -1
  171. package/dist/next/plugin.js +2 -2
  172. package/dist/node/index.d.ts +5 -5
  173. package/dist/node/index.js +2 -2
  174. package/dist/openai/index.d.ts +5 -5
  175. package/dist/openai/index.js +3 -3
  176. package/dist/openapi/index.d.ts +14 -4
  177. package/dist/openapi/index.js +1 -1
  178. package/dist/{openapi-C4dDTVEd.js → openapi-DMocl1bh.js} +4 -4
  179. package/dist/{openapi-B7HZ0f-r.js → openapi-Ddb4628T.js} +2 -7
  180. package/dist/{openapi-DD1SV-5-.js → openapi-ztVaux6j.js} +8 -8
  181. package/dist/{operation-findings-DgATDpvh.js → operation-findings-kRcEp8lE.js} +1 -1
  182. package/dist/{operations-X0VM7F3m.d.ts → operations-BNLes61x.d.ts} +1 -1
  183. package/dist/orpc/index.d.ts +6 -6
  184. package/dist/orpc/index.js +4 -4
  185. package/dist/otel/index.d.ts +3 -3
  186. package/dist/otel/index.js +1 -1
  187. package/dist/{output-1im__-08.js → output-DgSDLrta.js} +7 -3
  188. package/dist/{output-files-DhRBBE4n.js → output-files-CCMdcFWb.js} +2 -2
  189. package/dist/output-files-DPAY7-GX.js +1 -0
  190. package/dist/{ownership-DqaJNJPn.js → ownership-Z2LpxsGa.js} +443 -40
  191. package/dist/parse-Ddhz2xf4.js +148 -0
  192. package/dist/{parse-local-manifest-CVSs6J9I.js → parse-local-manifest-T1Q8X3A2.js} +24 -1
  193. package/dist/{parse-local-manifest-5ODwqu8b.d.ts → parse-local-manifest-e4mdwAKd.d.ts} +1 -1
  194. package/dist/pdp/index.d.ts +3 -3
  195. package/dist/pdp/index.js +7 -3
  196. package/dist/peer-12Q5I_RH.js +976 -0
  197. package/dist/{peer-CRvC7Hg1.js → peer-DOzzMfZL.js} +1 -1
  198. package/dist/{permdock-BrAscV28.js → permdock-BfWEeMqk.js} +177 -49
  199. package/dist/{permdock-SV8ZINYT.d.ts → permdock-Dco6dyCK.d.ts} +34 -5
  200. package/dist/{permission-registry-Br4jSNVi.js → permission-registry-DpPtSKNZ.js} +1 -1
  201. package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-DhNEmoRG.d.ts} +4 -64
  202. package/dist/{permissions-u_KHg-sN.d.ts → permissions-CoqCOfJ3.d.ts} +2 -1
  203. package/dist/{permissions-B-wCP5ZC.js → permissions-CyH2MV_B.js} +1 -1
  204. package/dist/{permissions-BPxlwVhN.js → permissions-DArULThq.js} +4 -4
  205. package/dist/pkce-5h8NgMQJ.js +21 -0
  206. package/dist/{policies-DP2nqRoF.js → policies-B2lZIurj.js} +3 -3
  207. package/dist/{policy-77FSAq_V.d.ts → policy-B7dg_yzu.d.ts} +2 -2
  208. package/dist/{policy-DbM5YYtV.js → policy-DaJy4nK4.js} +17 -8
  209. package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-DFWYkNdu.js} +9 -9
  210. package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-B-F-qAZk.d.ts} +83 -4
  211. package/dist/postgres-store-BL9M_CA1.js +1001 -0
  212. package/dist/{postgrest-CEgRbefE.d.ts → postgrest-CYacM_u7.d.ts} +12 -1
  213. package/dist/{postgrest-DAjUkF9w.js → postgrest-r5faDIzD.js} +37 -4
  214. package/dist/{powersync-DISt6SUe.js → powersync-13odBwiM.js} +3 -3
  215. package/dist/powersync-53ryOZip.js +1059 -0
  216. package/dist/powersync-CExtTLyA.js +1 -0
  217. package/dist/preset/index.js +1 -1
  218. package/dist/{preset-DZdU0tne.js → preset-CHTbd-DQ.js} +2 -2
  219. package/dist/prisma/index.d.ts +2 -2
  220. package/dist/prisma/index.js +1 -1
  221. package/dist/{problem-details-B45V5d2b.d.ts → problem-details-Tcfmj3bV.d.ts} +1 -1
  222. package/dist/prompt-DwtVemER.js +935 -0
  223. package/dist/{protected-RFGpakN9.d.ts → protected-BwZYL1X_.d.ts} +6 -5
  224. package/dist/{protected-BlF0F6wL.js → protected-DXE3cQYg.js} +2 -2
  225. package/dist/{provider-B1al-AZz.js → provider-BQsTYYy0.js} +2 -2
  226. package/dist/{provider-DILL9oPK.d.ts → provider-Csk-THAn.d.ts} +1 -1
  227. package/dist/{provider-store-DM6DNcta.js → provider-store-IgqQipCO.js} +2 -2
  228. package/dist/{pull-jEwbf80J.js → pull-CN5OLxrF.js} +7 -7
  229. package/dist/pull-Cty6Ovyu.js +1 -0
  230. package/dist/{push-BD4f15co.js → push-tVdG8dUL.js} +54 -14
  231. package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-BbcY9r_4.d.ts} +1 -1
  232. package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-CmYeSQqq.js} +1 -1
  233. package/dist/react/index.d.ts +6 -6
  234. package/dist/react/index.js +3 -3
  235. package/dist/react/provider-client.d.ts +1 -1
  236. package/dist/react/provider-client.js +1 -1
  237. package/dist/react-native/index.d.ts +25 -11
  238. package/dist/react-native/index.js +209 -21
  239. package/dist/{refs-K6eWUJ0H.js → refs-CNJBiTFo.js} +15 -1
  240. package/dist/{replay-Bkm-Ne4l.d.ts → replay-DCDD_ZfL.d.ts} +1 -1
  241. package/dist/{request-context-C81Pip9n.js → request-context-BykKLmyE.js} +2 -2
  242. package/dist/resend/index.d.ts +4 -4
  243. package/dist/{retire-CALjIQ7e.js → retire-Wj6dkyDE.js} +2 -2
  244. package/dist/{rls-BAqP4q66.js → rls-Ck_PocSp.js} +32 -8
  245. package/dist/{rls-DTvYd-lI.js → rls-CxBZb4rZ.js} +478 -534
  246. package/dist/{role-builder-uWQZ4v84.js → role-builder-C1VJzvcr.js} +3 -3
  247. package/dist/rolldown-runtime-C3I60J0A.js +4 -0
  248. package/dist/{rpc-VSl5ylaQ.js → rpc-Bk1bE-ch.js} +1 -1
  249. package/dist/run-Bz7DXGEv.js +1 -0
  250. package/dist/{run-ticket-sxFI6LAk.js → run-ticket-B5d_63Ma.js} +22 -1
  251. package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-BpNi7BCi.d.ts} +8 -3
  252. package/dist/{run-CUKuz0A8.js → run-uLD2aWuO.js} +7 -7
  253. package/dist/{runtime-D3VTAiCA.js → runtime-Vif3_-zf.js} +1 -1
  254. package/dist/{saas-BCXRuXca.js → saas-Az_Kz-4D.js} +7 -7
  255. package/dist/{scan-qvOe0hS3.js → scan-DSljDE1Y.js} +1 -1
  256. package/dist/{schema-yLuBWWsh.js → schema-gIcCx7zM.js} +1 -1
  257. package/dist/scim/index.d.ts +3 -2
  258. package/dist/scim/index.js +3 -1
  259. package/dist/scim-C7JYhySg.js +44 -0
  260. package/dist/{scim-ClHtpyV3.js → scim-YNieBO1U.js} +3 -537
  261. package/dist/{scopes-CUPSjo9q.js → scopes-BHsc-wp-.js} +1 -1
  262. package/dist/server/index.d.ts +11 -11
  263. package/dist/server/index.js +7 -7
  264. package/dist/{server-C3WXAHZj.js → server-Bnga6I50.js} +3 -3
  265. package/dist/{server-types-CKQiCnON.d.ts → server-types-C4gZUEZy.d.ts} +9 -9
  266. package/dist/{shared-DvvFzYXe.js → shared-C8LjUdVU.js} +1 -1
  267. package/dist/{shared-BAK8t4Uo.js → shared-fMKOv8hP.js} +44 -38
  268. package/dist/{sink-4-eQIRWf.d.ts → sink-Cp_Eot9W.d.ts} +4 -4
  269. package/dist/{skills-B6lVdD_W.js → skills-Dcjw9_1C.js} +5 -5
  270. package/dist/{skills-CTYwkl44.js → skills-g_3BS9NC.js} +3 -3
  271. package/dist/{snapshot-B7DkYg6g.js → snapshot-CbGmYiJx.js} +4 -4
  272. package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-DT2Kx1F8.js} +1 -1
  273. package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-Pahd3IYJ.d.ts} +1 -1
  274. package/dist/solid/index.d.ts +6 -5
  275. package/dist/solid/index.js +4 -4
  276. package/dist/solid-start/index.d.ts +6 -6
  277. package/dist/solid-start/index.js +3 -3
  278. package/dist/{sources-vs5dGOsS.js → sources-B-zYB4GS.js} +111 -25
  279. package/dist/{sources-Xc4zkszI.d.ts → sources-DEEuGb8S.d.ts} +63 -14
  280. package/dist/sources-qoIJQrJv.js +11 -0
  281. package/dist/{sql-B5T1IL83.js → sql-B96movIM.js} +5 -1
  282. package/dist/sql-CDEPCA0g.d.ts +10 -0
  283. package/dist/{src-Cu2m75uo.js → src-DLFrtrrC.js} +140 -48
  284. package/dist/ssf/index.d.ts +4 -4
  285. package/dist/ssf/index.js +640 -211
  286. package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-B_qRg0ws.d.ts} +2 -2
  287. package/dist/{store-BDutJkDL.js → store-DSP9oGvh.js} +15 -7
  288. package/dist/{store-options-u0ycEe8s.js → store-options-B_poyYvg.js} +6 -6
  289. package/dist/{stores-BUGNbJTt.d.ts → stores-BAZwSYZA.d.ts} +6 -5
  290. package/dist/{stores-CGhM8BN_.js → stores-BqEuHC05.js} +2 -2
  291. package/dist/{stream-CeCMJmBB.d.ts → stream-2Vwhl7Er.d.ts} +2 -2
  292. package/dist/{style-Uao76wO7.js → style-Cqo7-73x.js} +1 -0
  293. package/dist/{style-DiKWnAvn.js → style-Ds1gNm77.js} +1 -1
  294. package/dist/supabase/index.d.ts +8 -7
  295. package/dist/supabase/index.js +5 -5
  296. package/dist/supabase/middleware.d.ts +6 -6
  297. package/dist/supabase/middleware.js +6 -6
  298. package/dist/{supabase-x5JtR2tc.js → supabase--0aJdLEd.js} +8 -6
  299. package/dist/{supabase-By_frk3U.js → supabase-Bqp7iIY2.js} +3 -3
  300. package/dist/supabase-hook-DJxC4PoP.js +1 -0
  301. package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-Dg0SrQWR.js} +1060 -119
  302. package/dist/supautils-MESd81bF.js +689 -0
  303. package/dist/{support-session-C6xJQYut.js → support-session-Cna49-3f.js} +2 -2
  304. package/dist/svelte/index.d.ts +5 -5
  305. package/dist/svelte/index.js +5 -5
  306. package/dist/svelte/runtime.d.ts +3 -3
  307. package/dist/svelte/runtime.js +3 -3
  308. package/dist/svelte/source.d.ts +5 -5
  309. package/dist/svelte/source.js +2 -2
  310. package/dist/sveltekit/index.d.ts +6 -6
  311. package/dist/sveltekit/index.js +2 -2
  312. package/dist/tanstack-start/index.d.ts +6 -6
  313. package/dist/tanstack-start/index.js +2 -2
  314. package/dist/{tenancy-DN2QAx9z.js → tenancy-CmeBQ6Nv.js} +12 -3
  315. package/dist/terminal/index.d.ts +6 -6
  316. package/dist/terminal/index.js +3 -3
  317. package/dist/testing/core.d.ts +2 -0
  318. package/dist/testing/core.js +1 -0
  319. package/dist/testing/fixtures/index.d.ts +12 -0
  320. package/dist/testing/fixtures/index.js +770 -0
  321. package/dist/testing/index.d.ts +41 -174
  322. package/dist/testing/index.js +241 -731
  323. package/dist/testing/saas/index.d.ts +5 -5
  324. package/dist/testing/saas/index.js +2 -2
  325. package/dist/testing/saas/permissions.d.ts +1 -1
  326. package/dist/testing/saas/permissions.js +1 -1
  327. package/dist/text-diff-DhITNCnD.js +444 -0
  328. package/dist/{token-BLZcjQgt.js → token-2qYDvXz2.js} +1 -1
  329. package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-reAhIzdl.js} +1 -1
  330. package/dist/trpc/index.d.ts +6 -6
  331. package/dist/trpc/index.js +3 -3
  332. package/dist/{types-Dfv0aTER.d.ts → types-BWZybqs9.d.ts} +110 -8
  333. package/dist/{types-Druu9wLM.d.ts → types-BXMYB7BY.d.ts} +2 -2
  334. package/dist/{types-BzzaHxt3.d.ts → types-BfVmNJO5.d.ts} +14 -3
  335. package/dist/{types-lUlG3TVd.d.ts → types-CIeZcG8v.d.ts} +2 -2
  336. package/dist/{types-B3_ooZgZ.d.ts → types-CKV71kKh.d.ts} +4 -4
  337. package/dist/{types-CX7AvRqP.d.ts → types-CQVEQawv.d.ts} +4 -4
  338. package/dist/{types-C863OQiR.d.ts → types-CeIscIKp.d.ts} +4 -4
  339. package/dist/{types-C_IiEs64.d.ts → types-CfiKC5aN.d.ts} +1 -1
  340. package/dist/{types-_WhUP7ud.d.ts → types-D3A19w4A.d.ts} +8 -4
  341. package/dist/{types-8RnwUAvE.d.ts → types-DBHftjgS.d.ts} +15 -8
  342. package/dist/{types-BdtSDbBO.d.ts → types-DC44-hqb.d.ts} +2 -2
  343. package/dist/{types-CVZSNocA.d.ts → types-DXmwu78Z.d.ts} +4 -4
  344. package/dist/{types-C791HFu9.d.ts → types-cTos-H7p.d.ts} +2 -2
  345. package/dist/{types-BtHtcKMr.d.ts → types-g7Oy6Zg4.d.ts} +3 -3
  346. package/dist/unplugin/index.d.ts +1 -1
  347. package/dist/unplugin/index.js +2 -2
  348. package/dist/{usage-SveTRTyr.js → usage-Bybmck7f.js} +7 -7
  349. package/dist/{usage-CRVl9V3t.js → usage-CDaLXCfL.js} +2 -2
  350. package/dist/usage-y-kBNdqs.js +1 -0
  351. package/dist/{validation-error-DHUrAkku.d.ts → validation-error-CQpoquwj.d.ts} +1 -1
  352. package/dist/{verify-BaAKx7t6.js → verify-pe8rL_Qw.js} +350 -83
  353. package/dist/{views-DTIIO-oQ.js → views-BB8E9dTP.js} +1 -1
  354. package/dist/vocabulary-Bg3eeT2H.d.ts +67 -0
  355. package/dist/vue/index.d.ts +6 -5
  356. package/dist/vue/index.js +4 -4
  357. package/dist/{waiter-B986w1oK.d.ts → waiter-DwEyouan.d.ts} +2 -2
  358. package/dist/watch-Bd9mx3rd.js +1 -0
  359. package/dist/{watch-vea54PRw.js → watch-C-4VmFlL.js} +3 -3
  360. package/dist/webmcp/index.d.ts +2 -2
  361. package/dist/webmcp/index.js +2 -2
  362. package/dist/{where-scope-C9vfEphl.js → where-scope-wq2coopv.js} +41 -21
  363. package/dist/{who-can-DWBAcaCQ.js → who-can-BwNsI_Js.js} +6 -6
  364. package/dist/workflow/index.d.ts +3 -3
  365. package/dist/workflow/index.js +5 -5
  366. package/dist/workflow-sdk/index.d.ts +5 -5
  367. package/dist/{wrap-C5jC6sKI.d.ts → wrap-B6R0cMRL.d.ts} +2 -2
  368. package/dist/{wrap-gX61EtpB.js → wrap-CiSc_KCq.js} +8 -2
  369. package/package.json +22 -11
  370. package/schemas/cli-result-v1.json +1 -0
  371. package/schemas/cloud-api-v1.json +152 -7
  372. package/schemas/connector-v1.json +8 -0
  373. package/schemas/supabase-claims-v1.json +5 -0
  374. package/schemas/supabase-manifest-v1.json +276 -75
  375. package/skills/permdock/SKILL.md +1 -0
  376. package/skills/permdock-agents/references/runtimes.md +3 -1
  377. package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
  378. package/skills/permdock-data/references/queries-and-rls.md +4 -1
  379. package/skills/permdock-tenancy/SKILL.md +1 -1
  380. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +1 -0
  381. package/skills/permdock-wire/references/adapters.md +14 -0
  382. package/skills/permdock-wire/references/policy-options.md +1 -0
  383. package/dist/catalog-BoWglDPI.js +0 -1
  384. package/dist/collect-D7eQDffE.js +0 -1
  385. package/dist/index-Cp_ilKi1.d.ts +0 -91
  386. package/dist/load-BxEtwlBS.js +0 -1
  387. package/dist/output-files-B3IZJksC.js +0 -1
  388. package/dist/parse-Cxq0WxrA.js +0 -53
  389. package/dist/peer-C8swJ2GH.js +0 -50
  390. package/dist/powersync-BkWWCS1K.js +0 -538
  391. package/dist/powersync-MMJ2mI2q.js +0 -1
  392. package/dist/prompt-DfZLJLIn.js +0 -32
  393. package/dist/pull-CvpINcMK.js +0 -1
  394. package/dist/run-DDwUaJDU.js +0 -1
  395. package/dist/supabase-hook-CCw5m35C.js +0 -1
  396. package/dist/supautils-B6HYL9eL.js +0 -91
  397. package/dist/text-diff-BQcUapOb.js +0 -15
  398. package/dist/usage-CZpSQP6L.js +0 -1
  399. package/dist/watch--ovlPOc0.js +0 -1
@@ -1,6 +1,6 @@
1
- import { T as Policy } from "./policy-types-n0uRTsW8.js";
2
- import { r as PermDock } from "./permdock-SV8ZINYT.js";
3
- import { m as ApprovalStore } from "./types-BdtSDbBO.js";
1
+ import { T as Policy } from "./policy-types-B-F-qAZk.js";
2
+ import { a as PermDock } from "./permdock-Dco6dyCK.js";
3
+ import { m as ApprovalStore } from "./types-DC44-hqb.js";
4
4
  //#region src/server/evaluations.d.ts
5
5
  /** AuthZEN 1.0 section 7.1.2.1 `options.evaluations_semantic` values. */
6
6
  declare const EVALUATIONS_SEMANTICS: readonly ["execute_all", "deny_on_first_deny", "permit_on_first_permit"];
@@ -13,7 +13,7 @@ declare function evaluationsSemantic(body: Readonly<Record<string, unknown>>): E
13
13
  */
14
14
  declare function evaluateBatch<T extends {
15
15
  readonly decision: boolean;
16
- }>(items: readonly unknown[], semantic: EvaluationsSemantic, rowOf: (item: unknown) => Promise<T>): Promise<T[]>;
16
+ }, I = unknown>(items: readonly I[], semantic: EvaluationsSemantic, rowOf: (item: I) => Promise<T>): Promise<T[]>;
17
17
  declare function evaluationsHandler(options: {
18
18
  readonly policy: Policy;
19
19
  readonly resolve?: (request: Request) => Promise<PermDock>;
@@ -1,12 +1,12 @@
1
1
  import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
2
  import { t as PROBLEM_BASE } from "./validation-error-ZfUHbKvf.js";
3
3
  import { t as wireDenials } from "./wire-denial-C7PaVYEM.js";
4
- import { c as listPermissions, g as formerScopes, h as formerKeys } from "./permission-registry-Br4jSNVi.js";
4
+ import { c as listPermissions, g as formerScopes, h as formerKeys } from "./permission-registry-DpPtSKNZ.js";
5
5
  import { h as secondsAt } from "./time-DkWjdL98.js";
6
6
  import { n as resourceRef } from "./resource-ref-CaS9yVPi.js";
7
7
  import { n as readBodyText } from "./body-text-QcXok_SI.js";
8
8
  import { c as problemResponse, d as validationProblem, n as batchTooLarge } from "./problem-CTviyH5L.js";
9
- import { i as readApprovalHeader, s as resumeDecision } from "./helpers-CBYVMjwh.js";
9
+ import { i as readApprovalHeader, s as resumeDecision } from "./helpers-DY3vXuGs.js";
10
10
  import { t as bodyTooLarge } from "./body-CH5of8Ne.js";
11
11
  import { t as timeoutSignal } from "./timeout-D51niuQP.js";
12
12
  //#region src/core/decision.ts
@@ -420,7 +420,7 @@ function unknownSemanticProblem() {
420
420
  * order, stopping after the first deny or permit.
421
421
  */
422
422
  async function evaluateBatch(items, semantic, rowOf) {
423
- if (semantic === "execute_all") return Promise.all(items.map(rowOf));
423
+ if (semantic === "execute_all") return Promise.all(items.map((item) => rowOf(item)));
424
424
  const stopOn = semantic === "permit_on_first_permit";
425
425
  const rows = [];
426
426
  for (const item of items) {
@@ -607,4 +607,4 @@ function evaluationsHandler(options) {
607
607
  };
608
608
  }
609
609
  //#endregion
610
- export { wireResourceId as _, evaluationReasons as a, unknownSemanticProblem as c, discoverViaSignatureAgent as d, invalidSignatureProblem as f, permissionLookup as g, itemResourceData as h, evaluateBatch as i, withRequestId as l, webBotAuthVerifier as m, applyApprovalResume as n, evaluationsHandler as o, invalidSignatureResponse as p, authzenMetadata as r, evaluationsSemantic as s, EVALUATIONS_SEMANTICS as t, InvalidSignatureError as u, NO_GRANT as v };
610
+ export { NO_GRANT as _, evaluationReasons as a, withRequestId as c, invalidSignatureProblem as d, invalidSignatureResponse as f, wireResourceId as g, permissionLookup as h, evaluateBatch as i, InvalidSignatureError as l, itemResourceData as m, applyApprovalResume as n, evaluationsHandler as o, webBotAuthVerifier as p, authzenMetadata as r, evaluationsSemantic as s, EVALUATIONS_SEMANTICS as t, discoverViaSignatureAgent as u };
@@ -1,8 +1,8 @@
1
- import { T as Policy, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
4
- import { u as ApprovalRequest } from "../types-BdtSDbBO.js";
5
- import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-CBMmFie-.js";
1
+ import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
+ import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
+ import { a as PermDock } from "../permdock-Dco6dyCK.js";
4
+ import { u as ApprovalRequest } from "../types-DC44-hqb.js";
5
+ import { o as AgentAdapterOptions, t as AgentPermDock } from "../create-UTnUVETj.js";
6
6
  //#region src/eve/create.d.ts
7
7
  /** Structural `SessionAuthContext` from `eve`. */
8
8
  type EvePrincipal = {
package/dist/eve/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
- import { c as withApp } from "../permdock-BrAscV28.js";
2
+ import { l as withApp } from "../permdock-BfWEeMqk.js";
3
3
  import { c as isApprovalError } from "../types-DqzsnlSA.js";
4
- import { o as resolveApproval } from "../helpers-CBYVMjwh.js";
5
- import { t as agentRuntime } from "../create-CGm28gyI.js";
4
+ import { o as resolveApproval } from "../helpers-DY3vXuGs.js";
5
+ import { t as agentRuntime } from "../create-Cb86Z8Im.js";
6
6
  import { t as boundedMap } from "../lru-8q4WZjBV.js";
7
7
  //#region src/eve/create.ts
8
8
  const TOKENS_PER_PROCESS = 1e3;
@@ -1,8 +1,8 @@
1
- import { T as Policy, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
4
- import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CKQiCnON.js";
5
- import { t as ServerAdapterOptions } from "../bind-DOyrv6zi.js";
1
+ import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
+ import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
+ import { a as PermDock } from "../permdock-Dco6dyCK.js";
4
+ import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
5
+ import { t as ServerAdapterOptions } from "../bind-JDuvxjuW.js";
6
6
  import { i as toRequest, r as sendResponse } from "../http-B_LphE5Y.js";
7
7
  import { ErrorRequestHandler, Request, RequestHandler, Response, Router } from "express";
8
8
  //#region src/express/create.d.ts
@@ -1,7 +1,7 @@
1
1
  import { r as hasCredentials } from "../http-BBoKefeS.js";
2
- import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
3
- import { t as problemFromError } from "../map-error-Dr70oA_3.js";
4
- import { i as decorate, r as bindKernel } from "../bind-CAvgUuKs.js";
2
+ import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-DReoiVBw.js";
3
+ import { t as problemFromError } from "../map-error-BQGyDm_M.js";
4
+ import { i as decorate, r as bindKernel } from "../bind-D1nO6fiC.js";
5
5
  import { n as sendResponse, r as toRequest } from "../http-ujKm0JXE.js";
6
6
  import express from "express";
7
7
  //#region src/express/create.ts
@@ -1,8 +1,8 @@
1
- import { T as Policy, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { r as PermDock } from "../permdock-SV8ZINYT.js";
4
- import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-CKQiCnON.js";
5
- import { t as ServerAdapterOptions } from "../bind-DOyrv6zi.js";
1
+ import { T as Policy, j as PolicyVocabulary, sr as Principal } from "../policy-types-B-F-qAZk.js";
2
+ import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
+ import { a as PermDock } from "../permdock-Dco6dyCK.js";
4
+ import { f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
5
+ import { t as ServerAdapterOptions } from "../bind-JDuvxjuW.js";
6
6
  import { FastifyPluginAsync, FastifyReply, FastifyRequest, FastifySchema, FastifyTypeProvider, FastifyTypeProviderDefault, RawRequestDefaultExpression, RawServerDefault, RouteGenericInterface } from "fastify";
7
7
  //#region src/server/http.d.ts
8
8
  /** A Fastify-style reply: `code`, `header` and `send`. */
@@ -1,7 +1,7 @@
1
1
  import { c as writeReply, i as headersFrom, n as firstHeader, r as hasCredentials, t as fetchRequest } from "../http-BBoKefeS.js";
2
- import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
3
- import { t as problemFromError } from "../map-error-Dr70oA_3.js";
4
- import { i as decorate, r as bindKernel } from "../bind-CAvgUuKs.js";
2
+ import { l as InvalidSignatureError, p as webBotAuthVerifier, u as discoverViaSignatureAgent } from "../evaluations-DReoiVBw.js";
3
+ import { t as problemFromError } from "../map-error-BQGyDm_M.js";
4
+ import { i as decorate, r as bindKernel } from "../bind-D1nO6fiC.js";
5
5
  //#region src/fastify/http.ts
6
6
  function toRequest(request) {
7
7
  const host = firstHeader(request.headers.host) ?? "localhost";
@@ -1,8 +1,8 @@
1
- import { w as Permission } from "./vocabulary-CN8H_9UF.js";
2
- import { a as OperationInput, t as Operation } from "./operations-X0VM7F3m.js";
1
+ import { u as Permission } from "./permission-types-DhNEmoRG.js";
2
+ import { a as OperationInput, t as Operation } from "./operations-BNLes61x.js";
3
3
  import { n as RevocationFeed } from "./revocations-R07lFBnX.js";
4
- import { o as ProtectOptions } from "./server-types-CKQiCnON.js";
5
- import { t as ServerAdapterOptions } from "./bind-DOyrv6zi.js";
4
+ import { o as ProtectOptions } from "./server-types-C4gZUEZy.js";
5
+ import { t as ServerAdapterOptions } from "./bind-JDuvxjuW.js";
6
6
  //#region src/server/fetch-adapter.d.ts
7
7
  /** What `protect` checks: a permission, an operation from `defineOperations`, or `null` for a route that needs only OAuth scopes. */
8
8
  type ProtectTarget = Permission | Operation | null;
@@ -1,9 +1,9 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { o as isPermission } from "./permission-registry-Br4jSNVi.js";
2
+ import { o as isPermission } from "./permission-registry-DpPtSKNZ.js";
3
3
  import { r as hasCredentials } from "./http-BBoKefeS.js";
4
4
  import { a as methodNotAllowed } from "./problem-CTviyH5L.js";
5
- import { t as problemFromError } from "./map-error-Dr70oA_3.js";
6
- import { i as decorate, r as bindKernel } from "./bind-CAvgUuKs.js";
5
+ import { t as problemFromError } from "./map-error-BQGyDm_M.js";
6
+ import { i as decorate, r as bindKernel } from "./bind-D1nO6fiC.js";
7
7
  //#region src/server/fetch-adapter.ts
8
8
  /**
9
9
  * `protect(target, data, options)(handler)` for a framework whose routes are
@@ -1,7 +1,7 @@
1
- import { i as configError } from "./errors-CWTY6uih.js";
2
- import { s as jsonSchemaOf } from "./catalog-doc-Cdn7-0pQ.js";
3
- import { F as quoteQualified, N as quoteIdent, P as quoteLiteral, j as helperSchema, s as signedIn } from "./shared-BAK8t4Uo.js";
4
- import { c as branchClauses, i as orSql, s as andSql, u as wrapSql } from "./policies-DP2nqRoF.js";
1
+ import { i as configError } from "./errors-DpP_U6Bf.js";
2
+ import { c as jsonSchemaOf } from "./catalog-doc-CV9s6B1S.js";
3
+ import { A as quoteQualified, E as helperSchema, O as quoteIdent, k as quoteLiteral, s as signedIn } from "./shared-fMKOv8hP.js";
4
+ import { c as branchClauses, i as orSql, s as andSql, u as wrapSql } from "./policies-B2lZIurj.js";
5
5
  //#region src/cli/rls/fields.ts
6
6
  /** Names of the field-view objects. Part of the SQL contract. */
7
7
  const FIELD_VIEWS = {
@@ -12,7 +12,9 @@ const FIELD_VIEWS = {
12
12
  /** The companion's row-key column, joined to the base table's key. */
13
13
  key: "permdock_key",
14
14
  /** Marks the companion so doctor PD022 knows it reads as its owner on purpose. */
15
- comment: "permdock:field-companion"
15
+ comment: "permdock:field-companion",
16
+ /** `<table>_mask(p_row)`: the row-masking function `fields: 'mask'` adds. */
17
+ mask: "_mask"
16
18
  };
17
19
  function covers(branch, column) {
18
20
  return branch.fields === void 0 || branch.fields.includes(column);
@@ -67,12 +69,13 @@ function viewName(table, suffix) {
67
69
  return `${table}${suffix}`;
68
70
  }
69
71
  /**
70
- * `<helper schema>.<table>_visible_fields`: outside the Data API's schemas,
71
- * so its owner rights reach clients only through the `_visible` join.
72
+ * `<helper schema>.<table><suffix>`: outside the Data API's schemas, so the
73
+ * companion's owner rights reach clients only through the `_visible` join and
74
+ * the mask function is neither an RPC nor a computed field.
72
75
  */
73
- function companionName(ctx, table) {
76
+ function helperObjectName(ctx, table, suffix) {
74
77
  const base = table.startsWith("public.") ? table.slice(7) : table.replaceAll(".", "_");
75
- return `${helperSchema(ctx)}.${viewName(base, FIELD_VIEWS.companion)}`;
78
+ return `${helperSchema(ctx)}.${viewName(base, suffix)}`;
76
79
  }
77
80
  /**
78
81
  * One view per table whose read grants limit fields. A column is restricted
@@ -93,7 +96,7 @@ function fieldViews(policy, ctx, branches, options, warnings) {
93
96
  const resource = reads.find((branch) => branch.resource !== void 0)?.resource;
94
97
  if (!limited || allows.length === 0 || resource === void 0) continue;
95
98
  const names = schemaColumns(policy, resource);
96
- if (names === void 0) throw configError(`PermDock CLI: --fields views needs the ${resource} schema's JSON Schema (Standard JSON Schema) to list the columns of ${table}`);
99
+ if (names === void 0) throw configError(`PermDock CLI: --fields ${options.mask === true ? "mask" : "views"} needs the ${resource} schema's JSON Schema (Standard JSON Schema) to list the columns of ${table}`);
97
100
  const key = policy.resources.get(resource)?.id ?? "id";
98
101
  const restricted = (column) => column !== key && (allows.some((branch) => branch.fields !== void 0 && !branch.fields.includes(column)) || denies.some((branch) => branch.fields?.includes(column) === true));
99
102
  const columns = names.map((name) => {
@@ -116,7 +119,8 @@ function fieldViews(policy, ctx, branches, options, warnings) {
116
119
  key,
117
120
  columns,
118
121
  roles: reads.some((branch) => branch.roles.includes("anon")) ? ["anon", "authenticated"] : ["authenticated"],
119
- ...options.revokeColumns ? { companion: companionName(ctx, table) } : {}
122
+ ...options.revokeColumns ? { companion: helperObjectName(ctx, table, FIELD_VIEWS.companion) } : {},
123
+ ...options.mask === true ? { maskFunction: helperObjectName(ctx, table, FIELD_VIEWS.mask) } : {}
120
124
  });
121
125
  }
122
126
  return views;
@@ -176,6 +180,34 @@ function columnRevokeSql(view) {
176
180
  return `revoke select (${columnList(restrictedColumns(view))}) on table ${quoteQualified(view.table)} from anon, authenticated;`;
177
181
  }
178
182
  /**
183
+ * `<table>_mask(p_row)`: the row with each restricted column the caller may
184
+ * not read set to null, by the same masks as the view. It reads only the row
185
+ * it is given, so its caller decides which rows; `security invoker`, because
186
+ * it needs nothing beyond the helpers the masks call. The body names the
187
+ * parameter `$1`, since a column called `p_row` would shadow the name.
188
+ */
189
+ function maskFunctionSql(view, fn) {
190
+ const table = quoteQualified(view.table);
191
+ const name = quoteQualified(fn);
192
+ const nulls = view.columns.flatMap((column) => column.mask === void 0 ? [] : [`case when ${column.mask} then '{}'::jsonb else pg_catalog.jsonb_build_object(${quoteLiteral(column.name)}, null) end`]);
193
+ return `-- ${fn}: a row of ${view.table} with ${restrictedColumns(view).join(", ")} null unless a read grant covers the column for the row, for SQL that reads ${view.table} without ${view.view}
194
+ create or replace function ${name}(p_row ${table})
195
+ returns ${table}
196
+ language sql
197
+ stable
198
+ security invoker
199
+ set search_path = ''
200
+ as $$
201
+ select pg_catalog.jsonb_populate_record(
202
+ $1,
203
+ ${nulls.join("\n || ")}
204
+ )
205
+ from (select ($1).*) r
206
+ $$;
207
+ revoke all on function ${name}(${table}) from public, anon, authenticated;
208
+ grant execute on function ${name}(${table}) to ${view.roles.join(", ")};`;
209
+ }
210
+ /**
179
211
  * The view SQL: the `security_invoker` view, and with `--revoke-columns` the
180
212
  * owner-rights companion it joins for the restricted columns. The companion
181
213
  * masks every column with the full field decision and keeps only rows where
@@ -184,10 +216,12 @@ function columnRevokeSql(view) {
184
216
  function fieldViewsSql(views) {
185
217
  return views.map((view) => {
186
218
  const head = `-- field view over ${view.table}: ${restrictedColumns(view).join(", ")} read as null unless a read grant covers the column for the row`;
219
+ const mask = view.maskFunction === void 0 ? [] : [maskFunctionSql(view, view.maskFunction)];
187
220
  if (view.companion === void 0) return [
188
221
  head,
189
222
  inlineViewSql(view),
190
- grantView(view.view, view.roles)
223
+ grantView(view.view, view.roles),
224
+ ...mask
191
225
  ].join("\n");
192
226
  return [
193
227
  head,
@@ -195,7 +229,8 @@ function fieldViewsSql(views) {
195
229
  companionSql(view, view.companion),
196
230
  grantView(view.companion, view.roles),
197
231
  joinedViewSql(view, view.companion),
198
- grantView(view.view, view.roles)
232
+ grantView(view.view, view.roles),
233
+ ...mask
199
234
  ].join("\n");
200
235
  }).join("\n\n");
201
236
  }
@@ -1,10 +1,19 @@
1
- import { n as CliError } from "./errors-CWTY6uih.js";
2
- import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
1
+ import { n as CliError } from "./errors-DpP_U6Bf.js";
2
+ import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
3
3
  import { dirname, relative, resolve } from "node:path";
4
4
  import { execFileSync } from "node:child_process";
5
5
  //#region src/cli/core/files.ts
6
+ /** `/dev/null` and its kin: a rename over a device is refused, so it is written in place. */
7
+ function isCharacterDevice(abs) {
8
+ try {
9
+ return statSync(abs).isCharacterDevice();
10
+ } catch {
11
+ return false;
12
+ }
13
+ }
6
14
  function outcomeOf(abs, text) {
7
15
  if (!existsSync(abs)) return "created";
16
+ if (isCharacterDevice(abs)) return "updated";
8
17
  return readFileSync(abs, "utf8") === text ? "unchanged" : "updated";
9
18
  }
10
19
  /** What writing `files` would do, without writing. */
@@ -27,6 +36,10 @@ function applyFiles(cwd, files, options = {}) {
27
36
  for (const [index, file] of files.entries()) {
28
37
  if (planned[index]?.outcome === "unchanged") continue;
29
38
  const target = resolve(cwd, file.path);
39
+ if (isCharacterDevice(target)) {
40
+ writeFileSync(target, file.text);
41
+ continue;
42
+ }
30
43
  const temp = `${target}.permdock-${String(process.pid)}.tmp`;
31
44
  mkdirSync(dirname(target), { recursive: true });
32
45
  writeFileSync(temp, file.text);
@@ -1,7 +1,7 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
- import { i as configError } from "./errors-CWTY6uih.js";
2
+ import { i as configError } from "./errors-DpP_U6Bf.js";
3
3
  import { i as readJsonFile } from "./files-D_JIzUrP.js";
4
- import { a as loadModule, s as pickNamed } from "./load-DFS_ry0W.js";
4
+ import { a as loadModule, s as pickNamed } from "./load-DxroEzH1.js";
5
5
  import { existsSync } from "node:fs";
6
6
  import { resolve } from "node:path";
7
7
  //#region src/cli/fixtures.ts
@@ -1,5 +1,5 @@
1
- import { n as CliError } from "./errors-CWTY6uih.js";
2
- import { n as secretInput } from "./credentials-DPyHmYz5.js";
1
+ import { n as CliError } from "./errors-DpP_U6Bf.js";
2
+ import { n as secretInput } from "./credentials-BpuTwd7a.js";
3
3
  //#region src/cli/core/flags.ts
4
4
  /** The flag vocabulary shared with better-supabase: one spelling per meaning. */
5
5
  const dbUrlFlags = { "db-url-stdin": {
@@ -2,19 +2,20 @@ import { t as compact } from "./compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
3
  import { a as deniedMessage, i as approvalMessage, n as PermDockDeniedError, t as PermDockApprovalRequiredError } from "./errors-BKy0EfhN.js";
4
4
  import { o as sameId } from "./expiry-D4_YKRKD.js";
5
- import { c as listPermissions } from "./permission-registry-Br4jSNVi.js";
5
+ import { c as listPermissions } from "./permission-registry-DpPtSKNZ.js";
6
6
  import { g as secondsOf, o as epochSeconds, t as INVALID_NOW } from "./time-DkWjdL98.js";
7
- import { a as normalizeMemberships, d as scopeList, m as tenantOf, o as resolveScope, t as activeFor } from "./scopes-CUPSjo9q.js";
8
- import { a as readOnlyActorRefuses, c as rowIdOf, l as rowValues, n as coveredByDelegation, u as evaluateCondition } from "./delegation-j6-rc37o.js";
9
- import { b as synthesiseRole, m as findRole, v as listRoles } from "./grantee-hxrUsbpM.js";
7
+ import { f as scopeList, h as tenantOf, o as normalizeMemberships, s as resolveScope, t as activeFor } from "./scopes-BHsc-wp-.js";
8
+ import { a as readOnlyActorRefuses, c as rowIdOf, l as rowValues, n as coveredByDelegation, u as evaluateCondition } from "./delegation-C5rOdTp5.js";
9
+ import { b as synthesiseRole, m as findRole, v as listRoles } from "./grantee-BrRANrpT.js";
10
10
  import { a as grantCoversField, o as pickVisible, r as readWireValidity, t as isActive } from "./validity-CZ7-y0Cj.js";
11
- import { c as nowSeconds, d as resolveActiveTenant, f as rowInScope, n as inTeam, r as isMembershipExpired, s as nestedAppliesWithoutRow } from "./tenancy-DN2QAx9z.js";
11
+ import { c as nowSeconds, d as resolveActiveTenant, f as rowInScope, n as inTeam, r as isMembershipExpired, s as nestedAppliesWithoutRow } from "./tenancy-CmeBQ6Nv.js";
12
12
  import { t as requiresApproval } from "./approval-required-TzNB9oQA.js";
13
- import { r as tokenPayload, t as decisionToken } from "./token-BLZcjQgt.js";
13
+ import { r as tokenPayload, t as decisionToken } from "./token-2qYDvXz2.js";
14
14
  import { t as fromWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
15
- import { n as matchGrantee } from "./grantee-match-DbENBHLB.js";
15
+ import { n as matchGrantee } from "./grantee-match-0RtHWQDx.js";
16
16
  import { t as resourceIdOf } from "./resource-ref-CaS9yVPi.js";
17
- import { a as deniedFor, n as mayUse, o as signSnapshot, r as permittedIds, t as whereFromGrants } from "./where-scope-C9vfEphl.js";
17
+ import { i as permittedIds, o as deniedFor, r as mayUse, s as signSnapshot, t as whereFromGrants } from "./where-scope-wq2coopv.js";
18
+ import { i as decideAllWith, n as canAllWith } from "./checks-BC_0mPIq.js";
18
19
  //#region src/core/snapshot-evaluate.ts
19
20
  function coveredByInclude(snapshot, permission) {
20
21
  const include = snapshot.include;
@@ -51,7 +52,7 @@ function scopeOk(snapshot, grant, permission, subject, data, team, now, only) {
51
52
  };
52
53
  if (!activeFor(membership, scopes, principal.tenant)) return {
53
54
  ok: false,
54
- reason: principal.tenant === void 0 ? "no-membership" : "tenant-mismatch"
55
+ reason: principal.tenant === void 0 && principal.unheldTenant === void 0 ? "no-tenant" : principal.tenant === void 0 ? "no-membership" : "tenant-mismatch"
55
56
  };
56
57
  if (!inTeam(membership, scopes, team)) return {
57
58
  ok: false,
@@ -361,7 +362,8 @@ function subjectFromSnapshot(snapshot, tenant) {
361
362
  return freezeDeep(compact({
362
363
  principal: principal === null ? null : compact({
363
364
  ...principal,
364
- tenant: nextTenant
365
+ tenant: nextTenant,
366
+ unheldTenant: nextTenant === void 0 ? tenant : void 0
365
367
  }),
366
368
  delegation: fromWireDelegation(snapshot.subject.delegation),
367
369
  context: snapshot.subject.context,
@@ -440,9 +442,14 @@ function fromSnapshot(snapshot, options = {}) {
440
442
  const instance = {
441
443
  can,
442
444
  decide,
445
+ canAll: (checks, decideOptions) => canAllWith(can, checks, decideOptions),
446
+ decideAll: (checks, decideOptions) => decideAllWith(decide, checks, decideOptions),
443
447
  decideEach(permission, rows, decideOptions) {
444
448
  return Object.freeze(rows.map((row) => run(permission, row, decideOptions)));
445
449
  },
450
+ decideIds(permission, ids) {
451
+ return Promise.resolve(Object.freeze(ids.map(() => deniedFor(permission, "unsupported"))));
452
+ },
446
453
  decideFor(_principalId, permission) {
447
454
  return Promise.resolve(deniedFor(permission, "unsupported"));
448
455
  },
@@ -0,0 +1,159 @@
1
+ import { n as SCIM_TABLES, r as SCIM_UNIQUE } from "./postgres-store-BL9M_CA1.js";
2
+ import { o as quoteSqlIdent } from "./sql-B96movIM.js";
3
+ import { n as fileSummary, t as applyFiles } from "./files-acUbNwWt.js";
4
+ import { r as driftOf } from "./output-files-CCMdcFWb.js";
5
+ //#region src/cli/scim/generate.ts
6
+ const SCIM_MARKER = "-- generated by permdock scim generate";
7
+ /** The client roles each dialect's data API connects as; none may reach the directory. */
8
+ function clientRoles(dialect) {
9
+ switch (dialect) {
10
+ case "supabase": return [
11
+ "public",
12
+ "anon",
13
+ "authenticated"
14
+ ];
15
+ case "neon": return [
16
+ "public",
17
+ "anonymous",
18
+ "authenticated"
19
+ ];
20
+ case "guc": return ["public"];
21
+ default: return dialect;
22
+ }
23
+ }
24
+ /**
25
+ * The directory `postgresDirectoryStore` reads and writes: users, groups and
26
+ * group members keyed on `(tenant, id)`, with `userName` and `externalId`
27
+ * unique per tenant. Member values are SCIM `value`s, not a foreign key to
28
+ * users, because a member may be a nested group. No client role may read
29
+ * or write the tables.
30
+ */
31
+ function scimSchemaSql(input) {
32
+ const schema = quoteSqlIdent(input.schema);
33
+ const table = (name) => `${schema}.${quoteSqlIdent(name)}`;
34
+ const users = table(SCIM_TABLES.users);
35
+ const groups = table(SCIM_TABLES.groups);
36
+ const members = table(SCIM_TABLES.members);
37
+ const all = [
38
+ users,
39
+ groups,
40
+ members
41
+ ].join(", ");
42
+ return `${SCIM_MARKER} (--dialect ${input.dialect})
43
+ -- the SCIM directory postgresDirectoryStore reads and writes for scimHandler; every row belongs to one tenant
44
+ create schema if not exists ${schema};
45
+
46
+ create table if not exists ${users} (
47
+ seq bigint generated always as identity unique,
48
+ tenant text not null check (tenant <> ''),
49
+ id text not null check (id <> ''),
50
+ user_name text not null,
51
+ external_id text,
52
+ active boolean not null default true,
53
+ emails jsonb,
54
+ x jsonb,
55
+ created_at timestamptz not null default now(),
56
+ updated_at timestamptz not null default now(),
57
+ revision bigint not null default 1,
58
+ primary key (tenant, id),
59
+ constraint ${quoteSqlIdent(SCIM_UNIQUE.userName)} unique (tenant, user_name),
60
+ constraint ${quoteSqlIdent(SCIM_UNIQUE.userExternalId)} unique (tenant, external_id)
61
+ );
62
+
63
+ create table if not exists ${groups} (
64
+ seq bigint generated always as identity unique,
65
+ tenant text not null check (tenant <> ''),
66
+ id text not null check (id <> ''),
67
+ display_name text not null,
68
+ external_id text,
69
+ roles text[],
70
+ x jsonb,
71
+ created_at timestamptz not null default now(),
72
+ updated_at timestamptz not null default now(),
73
+ revision bigint not null default 1,
74
+ primary key (tenant, id),
75
+ constraint ${quoteSqlIdent(SCIM_UNIQUE.groupExternalId)} unique (tenant, external_id)
76
+ );
77
+
78
+ create table if not exists ${members} (
79
+ tenant text not null,
80
+ group_id text not null,
81
+ user_id text not null,
82
+ position integer not null default 0,
83
+ primary key (tenant, group_id, user_id),
84
+ foreign key (tenant, group_id) references ${groups} (tenant, id) on delete cascade
85
+ );
86
+ create index if not exists ${quoteSqlIdent(`${SCIM_TABLES.members}_user_idx`)} on ${members} (tenant, user_id);
87
+
88
+ -- server only: grant select, insert, update and delete on these tables to the role postgresDirectoryStore
89
+ -- connects as when it does not own them
90
+ alter table ${users} enable row level security;
91
+ alter table ${groups} enable row level security;
92
+ alter table ${members} enable row level security;
93
+ revoke all on table ${all} from ${clientRoles(input.dialect).join(", ")};
94
+ `;
95
+ }
96
+ /** `supabase/schemas/<schema>/scim.sql` for Supabase, the pg-delta per-schema layout; `permdock_scim.sql` otherwise. */
97
+ function scimOut(dialect, schema) {
98
+ return dialect === "supabase" ? `supabase/schemas/${schema}/scim.sql` : "permdock_scim.sql";
99
+ }
100
+ function runScimGenerate(input) {
101
+ const dialect = input.dialect ?? input.config.rls?.dialect ?? "supabase";
102
+ const schema = input.schema ?? input.config.rls?.schema ?? "permdock";
103
+ const sql = scimSchemaSql({
104
+ schema,
105
+ dialect
106
+ });
107
+ const out = input.out ?? scimOut(dialect, schema);
108
+ const data = {
109
+ out,
110
+ dialect,
111
+ schema,
112
+ tables: Object.values(SCIM_TABLES).map((name) => `${schema}.${name}`)
113
+ };
114
+ if (out === "-") return {
115
+ code: 0,
116
+ output: sql.trimEnd(),
117
+ data: {
118
+ ...data,
119
+ sql
120
+ }
121
+ };
122
+ if (input.check) {
123
+ const drift = driftOf(input.cwd, [{
124
+ part: "scim",
125
+ rel: out,
126
+ text: sql
127
+ }]);
128
+ return drift.length === 0 ? {
129
+ code: 0,
130
+ output: `${out} is current`,
131
+ data
132
+ } : {
133
+ code: 1,
134
+ output: `${drift.join("\n")}\nrun permdock scim generate`,
135
+ data: {
136
+ ...data,
137
+ drift
138
+ }
139
+ };
140
+ }
141
+ const applied = applyFiles(input.cwd, [{
142
+ path: out,
143
+ text: sql
144
+ }], { dryRun: input.dryRun });
145
+ return {
146
+ code: 0,
147
+ output: fileSummary(applied, input.dryRun),
148
+ data: {
149
+ ...data,
150
+ files: applied
151
+ },
152
+ next: [{
153
+ when: "in CI, to fail when the file is stale",
154
+ command: "permdock scim generate --check"
155
+ }]
156
+ };
157
+ }
158
+ //#endregion
159
+ export { runScimGenerate };
@@ -1,7 +1,7 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
2
  import { n as freezeDeep, t as freezeCopy } from "./freeze-CrU8nQeX.js";
3
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";
4
+ import { c as listPermissions, o as isPermission } from "./permission-registry-DpPtSKNZ.js";
5
5
  import { i as readAppData, r as parseAppData, t as assertAppData } from "./app-data-MuyzVqX8.js";
6
6
  //#region src/core/vocabulary.ts
7
7
  const ROLE_KIND = "role";
@@ -1,7 +1,7 @@
1
1
  import { a as sole, t as compact } from "./compact-CAf557ZB.js";
2
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
3
  import { d as isoNow } from "./time-DkWjdL98.js";
4
- import { c as rootScope, d as scopeList, o as resolveScope } from "./scopes-CUPSjo9q.js";
4
+ import { f as scopeList, l as rootScope, s as resolveScope } from "./scopes-BHsc-wp-.js";
5
5
  //#region src/core/grantee-conditions.ts
6
6
  /**
7
7
  * Where a graph relation starts on the row: its own id when the relation is
@@ -1,8 +1,8 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
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";
3
+ import { f as scopeList, t as activeFor } from "./scopes-BHsc-wp-.js";
4
+ import { o as flattenGrantee } from "./grantee-BrRANrpT.js";
5
+ import { r as relationCondition, t as inheritCondition } from "./grantee-conditions-C6P1Tvol.js";
6
6
  //#region src/core/grantee-match.ts
7
7
  function combineWhere(left, right) {
8
8
  if (left === void 0) return right;
@@ -1,7 +1,7 @@
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-B-F-qAZk.js";
2
+ import { a as PermDock } from "../permdock-Dco6dyCK.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-C4gZUEZy.js";
4
+ import { a as ProtectTarget, n as FetchAdapterOptions, r as FetchProtect, t as ContextReader } from "../fetch-adapter-CuhyYwC1.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>;
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-DReoiVBw.js";
2
+ import { i as decorate } from "../bind-D1nO6fiC.js";
3
+ import { t as fetchAdapter } from "../fetch-adapter-De-u6vhJ.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);