permdock 0.5.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-B4R5fnMU.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-Djo_PyZc.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-DJ6Yd5z1.js → approvals-CMRfsbBh.js} +74 -48
  14. package/dist/{arazzo-B6lebmiQ.js → arazzo-ClrF3PVb.js} +2 -2
  15. package/dist/{arazzo-BWhNF-k0.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-Dg8XsRaO.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-BMZPIVUM.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-CZzhx-Vj.js → bind-D1nO6fiC.js} +5 -5
  31. package/dist/{bind--9EFVYWF.d.ts → bind-JDuvxjuW.d.ts} +7 -7
  32. package/dist/{build-instance-BMnAudHn.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-BSslw1QV.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-R_A__RsH.js → catalog-BaMQfQ6Y.js} +3 -3
  44. package/dist/{catalog-BECMPrwc.js → catalog-D69WhFii.js} +43 -13
  45. package/dist/{catalog-doc-C9wjsfNY.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-BWRSXgOF.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-CIoHNevm.js → cloud-CO8pYtwr.js} +5 -5
  62. package/dist/{codemod-Cxvvc70T.js → codemod-BP6n8N9L.js} +3 -3
  63. package/dist/{codemod-Bmj9dWMH.js → codemod-i4N2BhDc.js} +3 -3
  64. package/dist/{collect-CrZJJnEF.js → collect-BaWeMjwV.js} +17 -8
  65. package/dist/{collect-DloHbDVa.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-Ckm2HqBZ.d.ts → compile-COM2VKuN.d.ts} +3 -3
  71. package/dist/{completion-BqhRBJD8.js → completion-BNdVf7X2.js} +3 -3
  72. package/dist/{config-bs_kZeYq.js → config-CoQHDrDi.js} +7 -3
  73. package/dist/{config-B46rm9sc.js → config-DGZzMV1B.js} +2 -2
  74. package/dist/{config-report-DUgj62Ai.js → config-report-Cm7UITNA.js} +3 -3
  75. package/dist/connector-schema-_VCSsdtD.js +433 -0
  76. package/dist/{context-bbFHR-0D.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-0VZ7Pdiu.d.ts → create-B2-CQqCI.d.ts} +5 -5
  82. package/dist/{create-C3b4B5eF.js → create-Cb86Z8Im.js} +9 -8
  83. package/dist/{create-DnrmLnLW.js → create-DJrlhEp9.js} +5 -5
  84. package/dist/{create-BFfm17UA.d.ts → create-QHuuPw3q.d.ts} +7 -7
  85. package/dist/{create-BDS7wc3y.d.ts → create-UTnUVETj.d.ts} +30 -10
  86. package/dist/{credential-DM2um3ha.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-DaXVdDhM.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-D8jDHgsl.d.ts → denied-text-D4qkEtFz.d.ts} +2 -2
  94. package/dist/{describe-BybMRY7A.js → describe-DZlnEtLy.js} +1 -0
  95. package/dist/{describe-BZUsixiL.d.ts → describe-O0SwYIK8.d.ts} +2 -2
  96. package/dist/{diff-CxZo9pTq.js → diff-Btr1c1Ow.js} +2 -2
  97. package/dist/{diff-DCePiN6M.js → diff-DzT-xD13.js} +10 -10
  98. package/dist/{doctor-DFjUxf2f.js → doctor-BU1szn63.js} +241 -49
  99. package/dist/{doctor-CxiwSfqH.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-C2PXIv4c.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-_R8QkWaf.js → evaluate-B_oqFbWC.js} +130 -34
  107. package/dist/{evaluations-16UqqQ6W.d.ts → evaluations-BCddEOfO.d.ts} +4 -4
  108. package/dist/{evaluations-DZ2CbV5k.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-qKJBuRqy.d.ts → fetch-adapter-CuhyYwC1.d.ts} +4 -4
  116. package/dist/{fetch-adapter-g0ypLkID.js → fetch-adapter-De-u6vhJ.js} +3 -3
  117. package/dist/{fields-D9tPVUUS.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-D2lZt4Dd.js → from-snapshot-Bz469dIh.js} +17 -10
  122. package/dist/generate-3FNO5P5Q.js +159 -0
  123. package/dist/{grantee-Cn1HyUsI.js → grantee-BrRANrpT.js} +14 -4
  124. package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-C6P1Tvol.js} +1 -1
  125. package/dist/{grantee-match-DHArqY82.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-DTcZOzhF.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-DBDX0M-P.d.ts → hosted-BmjzxQhp.d.ts} +14 -2
  132. package/dist/{hosted-BZIAYvon.js → hosted-XBgU6RGT.js} +34 -12
  133. package/dist/{http-DXJ37RDA.js → http-Ca3Sr5x1.js} +1 -1
  134. package/dist/{import-DMmOG27O.js → import-Bz0GefWg.js} +5 -5
  135. package/dist/{import-CNV7I2Dw.js → import-DB2EG_iy.js} +3 -3
  136. package/dist/{index-CxGUswIC.d.ts → index-BE8y3moU.d.ts} +50 -8
  137. package/dist/{index-Chrs5fQ-.d.ts → index-BSfRl0hZ.d.ts} +6 -6
  138. package/dist/{index-DOVf7RJv.d.ts → index-BTkwrK7v.d.ts} +155 -17
  139. package/dist/index-CMiPH2Tv.d.ts +206 -0
  140. package/dist/{index-SGdIQyzc.d.ts → index-DH9DUDEM.d.ts} +18 -3
  141. package/dist/{index-BcHcPyIo.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-Omfd793B.d.ts → instance-options-CU0YQCLH.d.ts} +1 -1
  147. package/dist/{instance-snapshot-Cxq4ygFc.js → instance-snapshot-CjcwnEiV.js} +20 -14
  148. package/dist/jwt/index.d.ts +83 -5
  149. package/dist/jwt/index.js +143 -5
  150. package/dist/{kernel-5JatXyND.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-CtKR3GXL.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-TCAdw-eW.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-BShP7Vf4.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-ahr8rHu3.js → openapi-DMocl1bh.js} +4 -4
  179. package/dist/{openapi-B7HZ0f-r.js → openapi-Ddb4628T.js} +2 -7
  180. package/dist/{openapi-DTaEmTSW.js → openapi-ztVaux6j.js} +8 -8
  181. package/dist/{operation-findings-DgATDpvh.js → operation-findings-kRcEp8lE.js} +1 -1
  182. package/dist/{operations-CxybZErY.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-Dyw8fyPF.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-BatFgAA4.js → ownership-Z2LpxsGa.js} +1349 -883
  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-DgqtruPn.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-B9JxkBwC.js → permdock-BfWEeMqk.js} +177 -49
  199. package/dist/{permdock-D7eeLJER.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-D6lPdb4Z.d.ts → permission-types-DhNEmoRG.d.ts} +4 -62
  202. package/dist/{permissions-oEWfl-kl.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-CZKiUfFM.js → permissions-DArULThq.js} +4 -4
  205. package/dist/pkce-5h8NgMQJ.js +21 -0
  206. package/dist/{policies-CO1oOymN.js → policies-B2lZIurj.js} +3 -3
  207. package/dist/{policy-Czo4n3Hs.d.ts → policy-B7dg_yzu.d.ts} +2 -2
  208. package/dist/{policy-DLZJ5gAp.js → policy-DaJy4nK4.js} +17 -8
  209. package/dist/{policy-from-catalog-DzhEc3Y9.js → policy-from-catalog-DFWYkNdu.js} +9 -9
  210. package/dist/{policy-types-DzwivBgR.d.ts → policy-types-B-F-qAZk.d.ts} +109 -5
  211. package/dist/postgres-store-BL9M_CA1.js +1001 -0
  212. package/dist/{postgrest-NUqZT-RB.d.ts → postgrest-CYacM_u7.d.ts} +12 -1
  213. package/dist/{postgrest-CW0IqC-U.js → postgrest-r5faDIzD.js} +47 -5
  214. package/dist/{powersync-BHfuehf3.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-DXlt-vks.d.ts → problem-details-Tcfmj3bV.d.ts} +1 -1
  222. package/dist/prompt-DwtVemER.js +935 -0
  223. package/dist/{protected-DEPHc2xV.d.ts → protected-BwZYL1X_.d.ts} +6 -5
  224. package/dist/{protected-DfjY5mLA.js → protected-DXE3cQYg.js} +2 -2
  225. package/dist/{provider-CC-u3bYP.js → provider-BQsTYYy0.js} +2 -2
  226. package/dist/{provider-DMVt6yYn.d.ts → provider-Csk-THAn.d.ts} +1 -1
  227. package/dist/{provider-store-B5Yrkhzr.js → provider-store-IgqQipCO.js} +2 -2
  228. package/dist/{pull-BgIfno6w.js → pull-CN5OLxrF.js} +7 -7
  229. package/dist/pull-Cty6Ovyu.js +1 -0
  230. package/dist/{push-CmFVBOeI.js → push-tVdG8dUL.js} +54 -14
  231. package/dist/{pushed-policy-BImMTTIM.d.ts → pushed-policy-BbcY9r_4.d.ts} +1 -1
  232. package/dist/{pushed-policy-DobP7AHI.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 +214 -24
  239. package/dist/{refs-K6eWUJ0H.js → refs-CNJBiTFo.js} +15 -1
  240. package/dist/{replay-D7iKcLFe.d.ts → replay-DCDD_ZfL.d.ts} +1 -1
  241. package/dist/{request-context-BTRTG7OT.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-BA8an5Ap.js → rls-Ck_PocSp.js} +32 -8
  245. package/dist/{rls-j6t43t7n.js → rls-CxBZb4rZ.js} +478 -534
  246. package/dist/{role-builder-CXbis5-X.js → role-builder-C1VJzvcr.js} +3 -3
  247. package/dist/rolldown-runtime-C3I60J0A.js +4 -0
  248. package/dist/{rpc-aPyNi6tA.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-BjhTOi6u.d.ts → run-ticket-BpNi7BCi.d.ts} +8 -3
  252. package/dist/{run-DOfMtc9V.js → run-uLD2aWuO.js} +7 -7
  253. package/dist/{runtime-D3VTAiCA.js → runtime-Vif3_-zf.js} +1 -1
  254. package/dist/{saas-FO-Q8oj0.js → saas-Az_Kz-4D.js} +7 -7
  255. package/dist/{scan-BOI5tJ-6.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-DqCT4CgZ.js → server-Bnga6I50.js} +3 -3
  265. package/dist/{server-types-BLd4MnBX.d.ts → server-types-C4gZUEZy.d.ts} +9 -9
  266. package/dist/{shared-DvvFzYXe.js → shared-C8LjUdVU.js} +1 -1
  267. package/dist/{shared-CD11nBbC.js → shared-fMKOv8hP.js} +46 -39
  268. package/dist/{sink-Bj_lDUDq.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-CXUWfsNy.js → snapshot-CbGmYiJx.js} +4 -4
  272. package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-DT2Kx1F8.js} +1 -1
  273. package/dist/{snapshot-cache-DqK9eDmM.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-BV9j0DeZ.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-DLfUWFAI.js → src-DLFrtrrC.js} +154 -53
  284. package/dist/ssf/index.d.ts +4 -4
  285. package/dist/ssf/index.js +640 -211
  286. package/dist/{standard-webhooks-6lg8v_is.d.ts → standard-webhooks-B_qRg0ws.d.ts} +2 -2
  287. package/dist/{store-4u_hxjWa.js → store-DSP9oGvh.js} +15 -7
  288. package/dist/{store-options-BqEakYRa.js → store-options-B_poyYvg.js} +6 -6
  289. package/dist/{stores-ClZUgeoP.d.ts → stores-BAZwSYZA.d.ts} +6 -5
  290. package/dist/{stores-BbsD4fAR.js → stores-BqEuHC05.js} +2 -2
  291. package/dist/{stream-7-xmnf3U.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-Dxlp8A94.js → supabase--0aJdLEd.js} +9 -7
  299. package/dist/{supabase-9pqI57pW.js → supabase-Bqp7iIY2.js} +3 -3
  300. package/dist/supabase-hook-DJxC4PoP.js +1 -0
  301. package/dist/{supabase-hook-DdDQhMlw.js → supabase-hook-Dg0SrQWR.js} +1069 -123
  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-5Ut_pbKy.d.ts → types-BWZybqs9.d.ts} +112 -8
  333. package/dist/{types-CZTnPFzM.d.ts → types-BXMYB7BY.d.ts} +2 -2
  334. package/dist/{types-CdlxsYQh.d.ts → types-BfVmNJO5.d.ts} +14 -3
  335. package/dist/{types-BqAKcRNW.d.ts → types-CIeZcG8v.d.ts} +2 -2
  336. package/dist/{types-BNORmDM8.d.ts → types-CKV71kKh.d.ts} +4 -4
  337. package/dist/{types-tIgIeIKJ.d.ts → types-CQVEQawv.d.ts} +4 -4
  338. package/dist/{types-BjV-fqcA.d.ts → types-CeIscIKp.d.ts} +4 -4
  339. package/dist/{types-_sHy8BQf.d.ts → types-CfiKC5aN.d.ts} +1 -1
  340. package/dist/{types-ClZaWzfb.d.ts → types-D3A19w4A.d.ts} +8 -4
  341. package/dist/{types-C8-KNsFf.d.ts → types-DBHftjgS.d.ts} +15 -8
  342. package/dist/{types-CCpc2Dcv.d.ts → types-DC44-hqb.d.ts} +2 -2
  343. package/dist/{types-fbZ7JEXr.d.ts → types-DXmwu78Z.d.ts} +4 -4
  344. package/dist/{types-DiQjupG2.d.ts → types-cTos-H7p.d.ts} +2 -2
  345. package/dist/{types-DX0LaKTb.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-T5mXq98v.js → usage-Bybmck7f.js} +7 -7
  349. package/dist/{usage-DHtE8j4E.js → usage-CDaLXCfL.js} +2 -2
  350. package/dist/usage-y-kBNdqs.js +1 -0
  351. package/dist/{validation-error-Bg5Tpluk.d.ts → validation-error-CQpoquwj.d.ts} +1 -1
  352. package/dist/{verify-DbCL9bnB.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-CKy4MQSY.d.ts → waiter-DwEyouan.d.ts} +2 -2
  358. package/dist/watch-Bd9mx3rd.js +1 -0
  359. package/dist/{watch-CszoTJMq.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-Dv-WTP-w.js → where-scope-wq2coopv.js} +41 -21
  363. package/dist/{who-can-D0QoYbEb.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-Bd1Tejur.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 +5 -2
  379. package/skills/permdock-tenancy/SKILL.md +1 -1
  380. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -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-DjhMYYCq.js +0 -1
  384. package/dist/collect-FlXJlhus.js +0 -1
  385. package/dist/index-D8EovfsP.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-CbzkqL_M.js +0 -1
  391. package/dist/powersync-bYUDLOAO.js +0 -538
  392. package/dist/prompt-DfZLJLIn.js +0 -32
  393. package/dist/pull-ByOks_Tg.js +0 -1
  394. package/dist/run-CNsApDpd.js +0 -1
  395. package/dist/supabase-hook-CXcGpHqq.js +0 -1
  396. package/dist/supautils-B6HYL9eL.js +0 -91
  397. package/dist/text-diff-BQcUapOb.js +0 -15
  398. package/dist/usage-CHOtwL19.js +0 -1
  399. package/dist/watch-Cb-NcaUw.js +0 -1
@@ -1,14 +1,14 @@
1
- import { Nn as Decision, Rt as Instant, Vt as Snapshot, ir as Subject, j as PolicyVocabulary, qn as Actor, tr as JsonWebKeyLike } from "./policy-types-DzwivBgR.js";
2
- import { w as Permission } from "./vocabulary-D6lPdb4Z.js";
3
- import { r as PermDock, s as SnapshotOptions } from "./permdock-D7eeLJER.js";
4
- import { m as ApprovalStore } from "./types-CCpc2Dcv.js";
5
- import { a as ProblemDetails, t as ApprovalHint } from "./errors-C2PXIv4c.js";
6
- import { t as InstanceOptions } from "./instance-options-Omfd793B.js";
1
+ import { Gt as Snapshot, Ln as Decision, Rt as Instant, Zn as Actor, ar as JsonWebKeyLike, j as PolicyVocabulary, lr as Subject } from "./policy-types-B-F-qAZk.js";
2
+ import { u as Permission } from "./permission-types-DhNEmoRG.js";
3
+ import { a as PermDock, l as SnapshotOptions } from "./permdock-Dco6dyCK.js";
4
+ import { m as ApprovalStore } from "./types-DC44-hqb.js";
5
+ import { a as ProblemDetails, t as ApprovalHint } from "./errors-B_Qg9D3e.js";
6
+ import { t as InstanceOptions } from "./instance-options-CU0YQCLH.js";
7
7
  import { t as RequestContext } from "./request-context-C2_1lchh.js";
8
- import { n as PermDockWrap } from "./wrap-Bd1Tejur.js";
8
+ import { n as PermDockWrap } from "./wrap-B6R0cMRL.js";
9
9
  import { n as RevocationFeed } from "./revocations-R07lFBnX.js";
10
- import { r as PdpFactory } from "./types-ClZaWzfb.js";
11
- import { i as evaluationsHandler } from "./evaluations-16UqqQ6W.js";
10
+ import { r as PdpFactory } from "./types-D3A19w4A.js";
11
+ import { i as evaluationsHandler } from "./evaluations-BCddEOfO.js";
12
12
  //#region src/server/connection.d.ts
13
13
  type ConnectionData<T> = T | (() => T | null | undefined | Promise<T | null | undefined>);
14
14
  type ConnectionOptions<T = unknown> = {
@@ -1,5 +1,5 @@
1
1
  import { a as durationOf, f as nowMillis } from "./time-DkWjdL98.js";
2
- import { t as decisionToken } from "./token-BLZcjQgt.js";
2
+ import { t as decisionToken } from "./token-2qYDvXz2.js";
3
3
  //#region src/pdp/shared.ts
4
4
  const MAX_CACHE_TTL = 30;
5
5
  const CACHE_MAX = 1e3;
@@ -1,43 +1,9 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
2
  import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
3
3
  import { t as byCodePoint } from "./compare-pfyVnBjE.js";
4
- import { i as configError } from "./errors-CWTY6uih.js";
5
- import { a as quoteQualifiedTable, c as quoteSqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, t as SQL_IDENT } from "./sql-B5T1IL83.js";
6
- import "./sources-vs5dGOsS.js";
7
- //#region src/cli/sql/quote.ts
8
- function quoteIdent(name) {
9
- return quoteSqlIdent(name, CLI);
10
- }
11
- function quoteTable(name) {
12
- return quoteSqlTable(name, CLI);
13
- }
14
- /** A table name with `public.` added when it names no schema, quoted. */
15
- function quoteQualified(name) {
16
- return quoteQualifiedTable(name, CLI);
17
- }
18
- function helperSchema(ctx) {
19
- return ctx.schema ?? "permdock";
20
- }
21
- function qualified(ctx, name) {
22
- return `${quoteIdent(helperSchema(ctx))}.${name}`;
23
- }
24
- function quoteLiteral(value) {
25
- return quoteSqlLiteral(value);
26
- }
27
- const CLI = "PermDock CLI";
28
- function declaredArray(values) {
29
- return values.length === 0 ? `'{}'::text[]` : `array[${values.map(quoteLiteral).join(", ")}]::text[]`;
30
- }
31
- /**
32
- * A text array as a Postgres literal (`'{admin,owner}'`). An element that
33
- * holds a delimiter, a brace, a quote, a backslash, whitespace, or that
34
- * reads as `NULL`, is double-quoted and escaped, so one element can never
35
- * split into several.
36
- */
37
- function textArrayLiteral(values) {
38
- return quoteLiteral(`{${values.map((value) => value === "" || /[\s,{}"\\]/u.test(value) || /^null$/iu.test(value) ? `"${value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")}"` : value).join(",")}}`);
39
- }
40
- //#endregion
4
+ import { i as configError } from "./errors-DpP_U6Bf.js";
5
+ import { a as quoteQualifiedTable, c as quoteSqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, t as SQL_IDENT } from "./sql-B96movIM.js";
6
+ import "./sources-B-zYB4GS.js";
41
7
  //#region src/cli/sql/columns.ts
42
8
  /** The Postgres type a JSON Schema property compares as; `undefined` for text or an unknown shape. */
43
9
  function columnTypeOf(property) {
@@ -111,6 +77,40 @@ function scopeTypeOf(ctx, name) {
111
77
  return name === ctx.scopes[1]?.name ? teamTypeOf(ctx) : tenantTypeOf(ctx);
112
78
  }
113
79
  //#endregion
80
+ //#region src/cli/sql/quote.ts
81
+ function quoteIdent(name) {
82
+ return quoteSqlIdent(name, CLI);
83
+ }
84
+ function quoteTable(name) {
85
+ return quoteSqlTable(name, CLI);
86
+ }
87
+ /** A table name with `public.` added when it names no schema, quoted. */
88
+ function quoteQualified(name) {
89
+ return quoteQualifiedTable(name, CLI);
90
+ }
91
+ function helperSchema(ctx) {
92
+ return ctx.schema ?? "permdock";
93
+ }
94
+ function qualified(ctx, name) {
95
+ return `${quoteIdent(helperSchema(ctx))}.${name}`;
96
+ }
97
+ function quoteLiteral(value) {
98
+ return quoteSqlLiteral(value);
99
+ }
100
+ const CLI = "PermDock CLI";
101
+ function declaredArray(values) {
102
+ return values.length === 0 ? `'{}'::text[]` : `array[${values.map(quoteLiteral).join(", ")}]::text[]`;
103
+ }
104
+ /**
105
+ * A text array as a Postgres literal (`'{admin,owner}'`). An element that
106
+ * holds a delimiter, a brace, a quote, a backslash, whitespace, or that
107
+ * reads as `NULL`, is double-quoted and escaped, so one element can never
108
+ * split into several.
109
+ */
110
+ function textArrayLiteral(values) {
111
+ return quoteLiteral(`{${values.map((value) => value === "" || /[\s,{}"\\]/u.test(value) || /^null$/iu.test(value) ? `"${value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"")}"` : value).join(",")}}`);
112
+ }
113
+ //#endregion
114
114
  //#region src/cli/sql/context.ts
115
115
  const CLAIM = SQL_IDENT;
116
116
  function parseMembershipsFlag(raw) {
@@ -279,13 +279,20 @@ const CUSTOM_ROLES = {
279
279
  guardFor: "permdock_custom_role_guard_for",
280
280
  shape: "permdock_custom_role_shape",
281
281
  entries: "permdock_custom_role_entries",
282
+ entryProblem: "permdock_custom_role_entry_problem",
282
283
  replace: "permdock_replace_custom_role_grants",
283
284
  rename: "permdock_rename_custom_role_grants",
284
285
  remove: "permdock_delete_custom_role_grants",
285
286
  trustedReplace: "permdock_trusted_replace_custom_role_grants",
286
287
  trustedRename: "permdock_trusted_rename_custom_role_grants",
287
288
  trustedRemove: "permdock_trusted_delete_custom_role_grants",
288
- cascade: "permdock_cascade_custom_role"
289
+ replaceById: "permdock_replace_custom_role_grants_by_id",
290
+ trustedReplaceById: "permdock_trusted_replace_custom_role_grants_by_id",
291
+ trustedReadById: "permdock_trusted_role_permissions_by_id",
292
+ cascade: "permdock_cascade_custom_role",
293
+ nameGuard: "permdock_custom_role_name_guard",
294
+ sync: "permdock_sync_custom_role",
295
+ shared: "permdock_is_shared_role"
289
296
  };
290
297
  /** The function `rls.roles` adds. The name is part of the SQL contract. */
291
298
  const GLOBAL_ROLES = { replace: "permdock_replace_global_roles" };
@@ -301,4 +308,4 @@ function allowEntry(ctx) {
301
308
  return ctx.customRoles?.levels === true ? "permission || coalesce('@' || c.level, '')" : "permission";
302
309
  }
303
310
  //#endregion
304
- export { declaredArray as A, parseMembershipsFlag as C, sqlType as D, scopeTypeOf as E, quoteQualified as F, quoteTable as I, textArrayLiteral as L, qualified as M, quoteIdent as N, tenantTypeOf as O, quoteLiteral as P, CLAIM as S, columnTypesOf as T, subjectClaimJsonSql as _, customRolesOn as a, tenantClaimSql as b, SESSION_LIVE_HELPER as c, keyTenantSql as d, kindFilterSql as f, sessionLiveHelperSql as g, roleKindSql as h, allowEntry as i, helperSchema as j, CLI as k, USER_ID_HELPER as l, memberVia as m, GLOBAL_ROLES as n, rootName as o, liveSessionSql as p, HELPERS as r, signedIn as s, CUSTOM_ROLES as t, globalKindFilterSql as u, subjectClaimSql as v, arrayColumnsOf as w, userIdHelperSql as x, subjectIdSql as y };
311
+ export { quoteQualified as A, parseMembershipsFlag as C, qualified as D, helperSchema as E, scopeTypeOf as F, sqlType as I, tenantTypeOf as L, textArrayLiteral as M, arrayColumnsOf as N, quoteIdent as O, columnTypesOf as P, CLAIM as S, declaredArray as T, subjectClaimJsonSql as _, customRolesOn as a, tenantClaimSql as b, SESSION_LIVE_HELPER as c, keyTenantSql as d, kindFilterSql as f, sessionLiveHelperSql as g, roleKindSql as h, allowEntry as i, quoteTable as j, quoteLiteral as k, USER_ID_HELPER as l, memberVia as m, GLOBAL_ROLES as n, rootName as o, liveSessionSql as p, HELPERS as r, signedIn as s, CUSTOM_ROLES as t, globalKindFilterSql as u, subjectClaimSql as v, CLI as w, userIdHelperSql as x, subjectIdSql as y };
@@ -1,7 +1,7 @@
1
- import { Ct as Credential, Jt as AutomationEvent, Kt as AccessEvent, Yt as CredentialEvent, gt as SupportSession, nn as MembershipEvent, q as DecisionSink, rn as SinkEvent, ut as TokenSigner } from "./policy-types-DzwivBgR.js";
2
- import { V as AppData } from "./vocabulary-D6lPdb4Z.js";
3
- import { u as OperationRisk } from "./operations-CxybZErY.js";
4
- import { t as Automation } from "./automation-BMZPIVUM.js";
1
+ import { $t as CredentialEvent, Ct as Credential, Qt as AutomationEvent, Xt as AccessEvent, gt as SupportSession, on as MembershipEvent, q as DecisionSink, sn as SinkEvent, ut as TokenSigner } from "./policy-types-B-F-qAZk.js";
2
+ import { O as AppData } from "./permission-types-DhNEmoRG.js";
3
+ import { u as OperationRisk } from "./operations-BNLes61x.js";
4
+ import { t as Automation } from "./automation-DOtAFWdy.js";
5
5
  //#region src/core/sink.d.ts
6
6
  /**
7
7
  * The closed list of CloudEvents `type` values, `com.permdock.<family>` or
@@ -1,10 +1,11 @@
1
1
  import { t as byCodePoint } from "./compare-pfyVnBjE.js";
2
2
  import { i as readJsonFile } from "./files-D_JIzUrP.js";
3
3
  import { t as packageRoot } from "./package-root-Dk_ETdkp.js";
4
- import { t as didYouMean } from "./args-IIolxxKA.js";
4
+ import { t as didYouMean } from "./args-CC3OwyHW.js";
5
5
  import { cpSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, writeFileSync } from "node:fs";
6
6
  import { basename, dirname, join, relative, resolve } from "node:path";
7
- import { createRequire } from "node:module";
7
+ import { pathToFileURL } from "node:url";
8
+ import { findPackageJSON } from "node:module";
8
9
  //#region src/cli/skills.ts
9
10
  const SKILL_NAMES = [
10
11
  "permdock",
@@ -183,9 +184,8 @@ function resolveTargets(agents) {
183
184
  }
184
185
  function resolveSkillsRoot(cwd, bundled) {
185
186
  try {
186
- const pkg = createRequire(resolve(cwd, "package.json")).resolve("permdock/package.json");
187
- const root = join(dirname(pkg), "skills");
188
- if (existsSync(root)) return root;
187
+ const pkg = findPackageJSON("permdock", pathToFileURL(resolve(cwd, "package.json")));
188
+ if (pkg !== void 0 && existsSync(join(dirname(pkg), "skills"))) return join(dirname(pkg), "skills");
189
189
  } catch {}
190
190
  const local = join(cwd, "node_modules/permdock/skills");
191
191
  if (existsSync(local)) return local;
@@ -1,7 +1,7 @@
1
1
  import { t as defineLeaf } from "./command-L8EstFNm.js";
2
- import { t as checkFlag } from "./flags-C3DktBDY.js";
3
- import { r as pick, t as CANCELLED } from "./prompt-DfZLJLIn.js";
4
- import { n as detectedAgents, r as runSkills, t as SKILL_AGENTS } from "./skills-B6lVdD_W.js";
2
+ import { t as checkFlag } from "./flags-aaeRAdiD.js";
3
+ import { r as pick, t as CANCELLED } from "./prompt-DwtVemER.js";
4
+ import { n as detectedAgents, r as runSkills, t as SKILL_AGENTS } from "./skills-Dcjw9_1C.js";
5
5
  //#region src/cli/commands/skills.ts
6
6
  const forFlag = { for: {
7
7
  type: "string",
@@ -1,12 +1,12 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
3
  import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
4
- import { c as isConditionRef, i as resolveConditionRef } from "./refs-K6eWUJ0H.js";
4
+ import { a as resolveConditionRef, l as isConditionRef } from "./refs-CNJBiTFo.js";
5
5
  import { l as isRfc3339, m as rfc3339, p as nowSeconds } from "./time-DkWjdL98.js";
6
- import { d as scopeList } from "./scopes-CUPSjo9q.js";
7
- import { _ as listPlans, v as listRoles } from "./grantee-Cn1HyUsI.js";
6
+ import { f as scopeList } from "./scopes-BHsc-wp-.js";
7
+ import { _ as listPlans, v as listRoles } from "./grantee-BrRANrpT.js";
8
8
  import { i as wireValidity } from "./validity-CZ7-y0Cj.js";
9
- import { m as tenantsOf } from "./tenancy-DN2QAx9z.js";
9
+ import { m as tenantsOf } from "./tenancy-CmeBQ6Nv.js";
10
10
  import { n as toWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
11
11
  //#region src/conditions/bind.ts
12
12
  function isPrimitive(value) {
@@ -1,5 +1,5 @@
1
1
  import { g as secondsOf, p as nowSeconds } from "./time-DkWjdL98.js";
2
- import { n as payloadDigest } from "./token-BLZcjQgt.js";
2
+ import { n as payloadDigest } from "./token-2qYDvXz2.js";
3
3
  //#region src/core/snapshot-cache.ts
4
4
  /** Seconds since the epoch of a NumericDate or an RFC 3339 instant. */
5
5
  function epochSeconds(value) {
@@ -1,4 +1,4 @@
1
- import { Rt as Instant, Vt as Snapshot } from "./policy-types-DzwivBgR.js";
1
+ import { Gt as Snapshot, Rt as Instant } from "./policy-types-B-F-qAZk.js";
2
2
  //#region src/core/snapshot-cache.d.ts
3
3
  type CacheLifeForOptions = {
4
4
  /** Lower bound in seconds. Next.js includes a private entry in per-link prefetches from 30. */
@@ -1,10 +1,11 @@
1
- import { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, nr as Membership, zn as GrantedDecision } from "../policy-types-DzwivBgR.js";
2
- import { r as Role, w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
- import { n as requiredPlans } from "../problem-details-DXlt-vks.js";
4
- import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-BZUsixiL.js";
1
+ import { Gt as Snapshot, In as ApprovalRequiredDecision, Ln as Decision, Un as GrantedDecision, dt as TokenVerifier, or as Membership } from "../policy-types-B-F-qAZk.js";
2
+ import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
+ import { r as Role } from "../vocabulary-Bg3eeT2H.js";
4
+ import { n as requiredPlans } from "../problem-details-Tcfmj3bV.js";
5
+ import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-O0SwYIK8.js";
5
6
  import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
6
7
  import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
7
- import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle, u as ProviderOptionsBase } from "../types-BNORmDM8.js";
8
+ import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, p as TenantView, r as ClientPermDock, t as ApprovalHandle, u as ProviderOptionsBase } from "../types-CKV71kKh.js";
8
9
  import { Accessor, Accessor as Accessor$1, JSX } from "solid-js";
9
10
  //#region src/solid/types.d.ts
10
11
  /** Structural `JSX.Element`: text, a DOM node or a list of children. */
@@ -1,11 +1,11 @@
1
1
  import { t as compact } from "../compact-CAf557ZB.js";
2
2
  import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
3
- import { t as describe } from "../describe-BybMRY7A.js";
3
+ import { t as describe } from "../describe-DZlnEtLy.js";
4
4
  import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BM8a_P6E.js";
5
5
  import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
6
- import { i as isPromiseLike } from "../store-options-BqEakYRa.js";
7
- import { n as switchTenant, t as providerStore } from "../provider-store-B5Yrkhzr.js";
8
- import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-DTIIO-oQ.js";
6
+ import { i as isPromiseLike } from "../store-options-B_poyYvg.js";
7
+ import { n as switchTenant, t as providerStore } from "../provider-store-IgqQipCO.js";
8
+ import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, l as scopedTenant, n as describeWith, o as permissionSet, r as filterResult, s as protectedView, t as approvalHandle, u as slotContent } from "../views-BB8E9dTP.js";
9
9
  import { ErrorBoundary, createComponent, createComputed, createContext, createMemo, createSignal, getOwner, on, onCleanup, useContext } from "solid-js";
10
10
  //#region src/solid/context.ts
11
11
  const PermDockContext = createContext(void 0);
@@ -1,9 +1,9 @@
1
- import { T as Policy, Vt as Snapshot, j as PolicyVocabulary, rr as Principal } from "../policy-types-DzwivBgR.js";
2
- import { w as Permission } from "../vocabulary-D6lPdb4Z.js";
3
- import { a as OperationInput, t as Operation } from "../operations-CxybZErY.js";
4
- import { r as PermDock } from "../permdock-D7eeLJER.js";
5
- import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-BLd4MnBX.js";
6
- import { a as ProtectTarget, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-qKJBuRqy.js";
1
+ import { Gt as Snapshot, 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 OperationInput, t as Operation } from "../operations-BNLes61x.js";
4
+ import { a as PermDock } from "../permdock-Dco6dyCK.js";
5
+ import { D as ConnectionOptions, T as Connection, f as InvalidSignatureError, i as OpenApiHooks, o as ProtectOptions, u as SnapshotQuery, v as discoverViaSignatureAgent, x as webBotAuthVerifier } from "../server-types-C4gZUEZy.js";
6
+ import { a as ProtectTarget, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-CuhyYwC1.js";
7
7
  import { APIEvent, FetchEvent } from "@solidjs/start/server";
8
8
  //#region src/solid-start/create.d.ts
9
9
  /** The h3 event under every SolidStart request; `subject` and `scope` read it. */
@@ -1,6 +1,6 @@
1
- import { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-DZ2CbV5k.js";
2
- import { i as decorate } from "../bind-CZzhx-Vj.js";
3
- import { n as guardedRoute, t as fetchAdapter } from "../fetch-adapter-g0ypLkID.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 { n as guardedRoute, t as fetchAdapter } from "../fetch-adapter-De-u6vhJ.js";
4
4
  //#region src/solid-start/create.ts
5
5
  /**
6
6
  * `event.locals`. Its type, `App.RequestEventLocals`, is declared by
@@ -1,6 +1,6 @@
1
1
  import { r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
2
  import { i as readAppData } from "./app-data-MuyzVqX8.js";
3
- import { a as quoteQualifiedTable, c as quoteSqlTable, i as qualifySqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, u as sqlTextArray } from "./sql-B5T1IL83.js";
3
+ import { a as quoteQualifiedTable, c as quoteSqlTable, d as sqlTextArray, i as qualifySqlTable, o as quoteSqlIdent, s as quoteSqlLiteral, u as sqlRows } from "./sql-B96movIM.js";
4
4
  //#region src/supabase/keep.ts
5
5
  /** The permission keys of a suspended scope's `keep`, references read by `key`, sorted and unique. */
6
6
  function keptKeys(row) {
@@ -115,7 +115,8 @@ function selectOf(shape, where, user, keep) {
115
115
  return `select ${fields.join(", ")}
116
116
  from ${quoteQualifiedTable(shape.table)} m${shape.join}
117
117
  where ${where.join("\n and ")}
118
- group by ${group.join(", ")}`;
118
+ group by ${group.join(", ")}
119
+ having ${shape.roles} is not null`;
119
120
  }
120
121
  function holdersOf(shape) {
121
122
  const id = ident$1(shape.idColumn);
@@ -191,7 +192,8 @@ function roleColumn(role, table, alias, options) {
191
192
  lookup: sql,
192
193
  columns: [...new Set(parts.map((part) => part.column))],
193
194
  throughs: parts.flatMap((part) => part.throughs),
194
- lateral: true
195
+ lateral: true,
196
+ nullable: false
195
197
  };
196
198
  }
197
199
  function singleRole(role, table, alias, options) {
@@ -204,8 +206,24 @@ function singleRole(role, table, alias, options) {
204
206
  lookup: `${alias}.${q(role)}::text`,
205
207
  columns: [role],
206
208
  throughs: [],
207
- lateral: false
209
+ lateral: false,
210
+ nullable: false
208
211
  };
212
+ if ("map" in role) {
213
+ const arms = Object.entries(role.map).map(([value, key]) => `when ${quoteSqlLiteral(value)} then ${key === null ? "null" : quoteSqlLiteral(key)}`);
214
+ const mapped = `case ${alias}.${q(role.column)}::text ${arms.join(" ")} else null end`;
215
+ return {
216
+ column: role.column,
217
+ sql: mapped,
218
+ join: "",
219
+ lookup: mapped,
220
+ columns: [role.column],
221
+ throughs: [],
222
+ lateral: false,
223
+ map: role.map,
224
+ nullable: true
225
+ };
226
+ }
209
227
  const pairs = Object.entries(role.on);
210
228
  const [pair] = pairs;
211
229
  if (pair === void 0 || pairs.length !== 1) throw new TypeError(`${prefix}: ${options.label}.on must map exactly one column of ${table} to ${role.through}, for example ${options.example ?? "{ role_id: 'id' }"}`);
@@ -220,19 +238,27 @@ function singleRole(role, table, alias, options) {
220
238
  key: role.column,
221
239
  ref
222
240
  };
241
+ const plain = `${keys}.${q(role.column)}::text`;
242
+ const guard = options.guard;
243
+ const key = guard !== void 0 && qualifySqlTable(guard.table) === through ? `case when ${keys}.${q(guard.tenant)} is not null${guard.skip === void 0 ? "" : ` and not coalesce(${keys}.${q(guard.skip)}, false)`} and ${plain} = any(${sqlTextArray(guard.declared)}) then null else ${plain} end` : plain;
223
244
  return {
224
245
  column: ref,
225
- sql: `${keys}.${q(role.column)}::text`,
246
+ sql: key,
226
247
  join: `${options.indent === void 0 ? " " : `\n${options.indent}`}join ${target} ${keys} on ${keys}.${q(id)} = ${alias}.${q(ref)}`,
227
- lookup: `(select ${keys}.${q(role.column)}::text from ${target} ${keys} where ${keys}.${q(id)} = ${alias}.${q(ref)})`,
248
+ lookup: `(select ${key} from ${target} ${keys} where ${keys}.${q(id)} = ${alias}.${q(ref)})`,
228
249
  through: keyed,
229
250
  columns: [ref],
230
251
  throughs: [keyed],
231
- lateral: false
252
+ lateral: false,
253
+ nullable: false
232
254
  };
233
255
  }
234
256
  /** The manifest entry of one role source: the column, and the roles table it references. */
235
- function sourceManifest(column, through) {
257
+ function sourceManifest(column, through, map) {
258
+ if (map !== void 0) return {
259
+ column,
260
+ map
261
+ };
236
262
  return through === void 0 ? { column } : {
237
263
  column,
238
264
  through: {
@@ -248,7 +274,7 @@ function columnManifest(role) {
248
274
  }
249
275
  /** The manifest entry of a role column, or one entry per source of a row with several. */
250
276
  function roleManifest(role) {
251
- if (!role.lateral) return sourceManifest(role.column, role.through);
277
+ if (!role.lateral) return sourceManifest(role.column, role.through, role.map);
252
278
  return role.columns.map((column) => sourceManifest(column, role.throughs.find((through) => through.ref === column)));
253
279
  }
254
280
  //#endregion
@@ -259,10 +285,11 @@ function isFixed(roles) {
259
285
  return Array.isArray(roles);
260
286
  }
261
287
  /** A role column of the membership table, aliased `m`; a `through` column joins its roles table as `mk`. */
262
- function memberRole(role, table, label) {
288
+ function memberRole(role, table, label, guard) {
263
289
  return roleColumn(role, qualifySqlTable(table), "m", {
264
290
  label,
265
- indent: ""
291
+ indent: "",
292
+ ...guard === void 0 ? {} : { guard }
266
293
  });
267
294
  }
268
295
  /** The user of the membership table, aliased `m`; a `through` user joins its table as `mu`. */
@@ -278,12 +305,30 @@ function memberUser(user, table, label) {
278
305
  sql: column.through === void 0 ? col(column.column) : `mu.${ident(column.through.key)}`
279
306
  };
280
307
  }
281
- function roleAgg(role) {
282
- return `jsonb_agg(distinct ${role.sql} order by ${role.sql})`;
308
+ /** `through` tables qualified in the schema of `table`. */
309
+ function throughIn(through, table) {
310
+ const schema = qualifySqlTable(table).split(".")[0] ?? "public";
311
+ return {
312
+ ...through,
313
+ through: through.through.includes(".") ? through.through : `${schema}.${through.through}`
314
+ };
283
315
  }
284
- function rowsOf(result) {
285
- return Array.isArray(result) ? result : result.rows;
316
+ function qualifiedThrough(source, table) {
317
+ return typeof source === "string" || "map" in source ? source : throughIn(source, table);
286
318
  }
319
+ function streamUser(user, table) {
320
+ return typeof user === "string" ? user : throughIn(user, table);
321
+ }
322
+ function isSourceList(role) {
323
+ return Array.isArray(role);
324
+ }
325
+ function streamRoles(role, table) {
326
+ return isSourceList(role) ? role.map((source) => qualifiedThrough(source, table)) : qualifiedThrough(role, table);
327
+ }
328
+ function roleAgg(role) {
329
+ return `jsonb_agg(distinct ${role.sql} order by ${role.sql}) filter (where ${role.sql} is not null)`;
330
+ }
331
+ const rowsOf = sqlRows;
287
332
  function strings(value) {
288
333
  return Array.isArray(value) ? value.filter((item) => typeof item === "string" && item !== "") : [];
289
334
  }
@@ -356,13 +401,16 @@ function supabasePostgresQuery(postgres) {
356
401
  * merge into one membership.
357
402
  */
358
403
  function tableMembershipSource(options) {
404
+ return tableSource(options, void 0);
405
+ }
406
+ function tableSource(options, guard) {
359
407
  const c = options.columns ?? {};
360
408
  const scope = `${col(c.scope ?? "scope")}::text`;
361
409
  const id = `${col(c.id ?? "scope_id")}::text`;
362
410
  const within = c.within === void 0 ? "null::jsonb" : col(c.within);
363
411
  const user = memberUser(c.user ?? "user_id", options.table, "tableMembershipSource columns.user");
364
- const role = memberRole(c.role ?? "role", options.table, "tableMembershipSource columns.role");
365
- return sourceOf(sqlOf({
412
+ const role = memberRole(c.role ?? "role", options.table, "tableMembershipSource columns.role", guard);
413
+ const shape = {
366
414
  table: options.table,
367
415
  join: `${user.column.join}${role.join}`,
368
416
  through: role.through,
@@ -427,7 +475,26 @@ function tableMembershipSource(options) {
427
475
  expiresAt: c.expiresAt === void 0 ? void 0 : { column: c.expiresAt },
428
476
  disabledAt: c.disabledAt === void 0 ? void 0 : { column: c.disabledAt }
429
477
  })
430
- }), options.query);
478
+ };
479
+ const stream = compact({
480
+ table: qualifySqlTable(options.table),
481
+ user: streamUser(c.user ?? "user_id", options.table),
482
+ scope: { column: c.scope ?? "scope" },
483
+ id: c.id ?? "scope_id",
484
+ roles: streamRoles(c.role ?? "role", options.table),
485
+ via: c.via === void 0 ? void 0 : { column: c.via },
486
+ expiresAt: c.expiresAt,
487
+ disabledAt: c.disabledAt,
488
+ nullableRoles: true,
489
+ guard
490
+ });
491
+ return {
492
+ ...sourceOf({
493
+ ...sqlOf(shape),
494
+ stream
495
+ }, options.query),
496
+ guarded: (next) => tableSource(options, next)
497
+ };
431
498
  }
432
499
  /**
433
500
  * Memberships from a table of one scope (`customer_contacts`): every row is a
@@ -435,13 +502,16 @@ function tableMembershipSource(options) {
435
502
  * fixed `via`, and ancestor ids from `within` columns.
436
503
  */
437
504
  function junctionMembershipSource(options) {
505
+ return junctionSource(options, void 0);
506
+ }
507
+ function junctionSource(options, guard) {
438
508
  if (!/^[a-z][a-z0-9_]*$/u.test(options.scope)) throw new TypeError(`PermDock: unsafe scope name '${options.scope}'`);
439
509
  const idColumn = options.id ?? `${options.scope}_id`;
440
510
  const withinEntries = Object.entries(options.within ?? {});
441
511
  const roles = options.roles;
442
512
  const fixed = isFixed(roles) ? roles : void 0;
443
513
  if (fixed?.length === 0) throw new TypeError("PermDock: junctionMembershipSource needs at least one role");
444
- const role = isFixed(roles) ? void 0 : memberRole(typeof roles === "object" && "sources" in roles ? roles.sources : roles, options.table, "junctionMembershipSource roles");
514
+ const role = isFixed(roles) ? void 0 : memberRole(typeof roles === "object" && "sources" in roles ? roles.sources : roles, options.table, "junctionMembershipSource roles", guard);
445
515
  const user = memberUser(options.user ?? "user_id", options.table, "junctionMembershipSource user");
446
516
  const managedColumn = options.managedBy === void 0 ? void 0 : options.managedBy === "idp" ? "" : options.managedBy.column;
447
517
  const groupColumn = options.group === void 0 || typeof options.group === "string" ? void 0 : options.group.column;
@@ -509,12 +579,28 @@ function junctionMembershipSource(options) {
509
579
  })
510
580
  };
511
581
  const sql = sqlOf(shape);
512
- return sourceOf({
513
- ...sql,
514
- scope: options.scope,
515
- holds: [options.scope, ...withinEntries.map(([name]) => name)],
516
- list: (keep = sql.keeps) => selectOf(shape, filters(shape, `$1::text = ${literal(options.scope)} and ${col(idColumn)}::text = $2::text`), true, keep)
517
- }, options.query);
582
+ const stream = compact({
583
+ table: qualifySqlTable(options.table),
584
+ user: streamUser(options.user ?? "user_id", options.table),
585
+ scope: { value: options.scope },
586
+ id: idColumn,
587
+ roles: fixed === void 0 ? streamRoles(typeof roles === "object" && "sources" in roles ? roles.sources : roles, options.table) : { value: [...fixed] },
588
+ via: options.via === void 0 ? void 0 : { value: options.via },
589
+ expiresAt: options.expiresAt,
590
+ disabledAt: options.disabledAt,
591
+ nullableRoles: fixed === void 0,
592
+ guard
593
+ });
594
+ return {
595
+ ...sourceOf({
596
+ ...sql,
597
+ stream,
598
+ scope: options.scope,
599
+ holds: [options.scope, ...withinEntries.map(([name]) => name)],
600
+ list: (keep = sql.keeps) => selectOf(shape, filters(shape, `$1::text = ${literal(options.scope)} and ${col(idColumn)}::text = $2::text`), true, keep)
601
+ }, options.query),
602
+ guarded: (next) => junctionSource(options, next)
603
+ };
518
604
  }
519
605
  const AUTHZ_VERSION_TABLE = "permdock_authz_version";
520
606
  /**