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,8 +1,9 @@
1
- import { Nn as Decision, j as PolicyVocabulary, nr as Membership } from "./policy-types-n0uRTsW8.js";
2
- import { r as Role, w as Permission } from "./vocabulary-CN8H_9UF.js";
3
- import { r as DescribeOptions, t as DecisionDescription } from "./describe-B5qgDvEW.js";
4
- import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, l as PermissionState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "./types-B3_ooZgZ.js";
5
- import { r as ProtectedProps } from "./types-CX7AvRqP.js";
1
+ import { Ln as Decision, j as PolicyVocabulary, 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 { r as DescribeOptions, t as DecisionDescription } from "./describe-O0SwYIK8.js";
5
+ import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, l as PermissionState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "./types-CKV71kKh.js";
6
+ import { r as ProtectedProps } from "./types-CQVEQawv.js";
6
7
  import { ReactNode } from "react";
7
8
  //#region src/react/hooks.d.ts
8
9
  declare function usePermDock<V extends PolicyVocabulary = PolicyVocabulary>(): ClientPermDock<V>;
@@ -1,5 +1,5 @@
1
- import { n as storeOf } from "./store-options-u0ycEe8s.js";
2
- import { c as rolesView, d as subjectView, f as tenantView, i as gateView, 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";
1
+ import { n as storeOf } from "./store-options-B_poyYvg.js";
2
+ import { c as rolesView, d as subjectView, f as tenantView, i as gateView, 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";
3
3
  import { a as PermDockUiContext, i as PermDockStoreContext, r as PermDockSnapshotPromiseContext } from "./live-options-BaAFCIiu.js";
4
4
  import { Suspense, use, useMemo, useSyncExternalStore } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { t as emptySnapshot } from "./from-snapshot-CTCMsFZk.js";
3
- import { t as adapterStore } from "./store-options-u0ycEe8s.js";
2
+ import { t as emptySnapshot } from "./from-snapshot-Bz469dIh.js";
3
+ import { t as adapterStore } from "./store-options-B_poyYvg.js";
4
4
  import { a as PermDockUiContext, i as PermDockStoreContext, n as useKeyed, r as PermDockSnapshotPromiseContext, t as useLiveOptions } from "./live-options-BaAFCIiu.js";
5
5
  import { useLayoutEffect, useMemo } from "react";
6
6
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { n as PermDockProviderProps } from "./types-CX7AvRqP.js";
1
+ import { n as PermDockProviderProps } from "./types-CQVEQawv.js";
2
2
  import { ReactElement } from "react";
3
3
  //#region src/react/provider.d.ts
4
4
  declare function PermDockProvider(props: PermDockProviderProps): ReactElement;
@@ -1,6 +1,6 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
- import { t as emptySnapshot } from "./from-snapshot-CTCMsFZk.js";
3
- import { i as isPromiseLike, t as adapterStore } from "./store-options-u0ycEe8s.js";
2
+ import { t as emptySnapshot } from "./from-snapshot-Bz469dIh.js";
3
+ import { i as isPromiseLike, t as adapterStore } from "./store-options-B_poyYvg.js";
4
4
  //#region src/client/provider-store.ts
5
5
  /**
6
6
  * Store options that read `read()` on every request, so a rotated token, a
@@ -1,15 +1,15 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
- import { t as catalogFingerprint } from "./catalog-fingerprint-CCP0-yQS.js";
3
- import { a as describeError } from "./errors-CWTY6uih.js";
2
+ import { t as catalogFingerprint } from "./catalog-fingerprint-C144oW4M.js";
3
+ import { a as describeError } from "./errors-DpP_U6Bf.js";
4
4
  import { s as writeFileEnsuringDir } from "./files-D_JIzUrP.js";
5
5
  import { s as cliVersion } from "./version-CEbQ5UeM.js";
6
- import { a as formatCatalogJson } from "./catalog-doc-Cdn7-0pQ.js";
6
+ import { o as formatCatalogJson } from "./catalog-doc-CV9s6B1S.js";
7
7
  import { t as catalogPath } from "./catalog-path-CnI0XTFK.js";
8
- import { t as parseSupabaseManifest } from "./manifest-C8IzW3Do.js";
9
- import { t as parseCatalog } from "./parse-Cxq0WxrA.js";
8
+ import { n as parseSupabaseManifest } from "./manifest-B79YuF2T.js";
9
+ import { t as parseCatalog } from "./parse-Ddhz2xf4.js";
10
10
  import { t as POLICY_NOT_PUBLISHED } from "./problem-types-CJ2325SZ.js";
11
- import { n as httpRequest, t as authFailure } from "./http-DXJ37RDA.js";
12
- import { l as cloudUrl, n as cliRuntime, o as readAuth } from "./auth-DRLEizbL.js";
11
+ import { n as httpRequest, t as authFailure } from "./http-Ca3Sr5x1.js";
12
+ import { l as cloudUrl, n as cliRuntime, o as readAuth } from "./auth-CscUX8Sy.js";
13
13
  import { n as formatManifestJson } from "./manifest-json-CAGzls-C.js";
14
14
  import { existsSync, readFileSync, rmSync } from "node:fs";
15
15
  import { relative, resolve } from "node:path";
@@ -0,0 +1 @@
1
+ export { n as runCloudPull } from "./pull-CN5OLxrF.js";
@@ -1,13 +1,15 @@
1
- import { t as catalogFingerprint } from "./catalog-fingerprint-CCP0-yQS.js";
2
- import { a as describeError } from "./errors-CWTY6uih.js";
1
+ import { r as isRecord } from "./compact-CAf557ZB.js";
2
+ import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
3
+ import { t as catalogFingerprint } from "./catalog-fingerprint-C144oW4M.js";
4
+ import { a as describeError, n as CliError } from "./errors-DpP_U6Bf.js";
3
5
  import { s as cliVersion } from "./version-CEbQ5UeM.js";
4
- import { i as loadConfiguredPolicy } from "./load-DFS_ry0W.js";
5
- import { t as parseSupabaseManifest } from "./manifest-C8IzW3Do.js";
6
- import { t as parseCatalog } from "./parse-Cxq0WxrA.js";
7
- import { r as pushedPolicy } from "./pushed-policy-CqtxkV4G.js";
8
- import { n as runCatalog } from "./catalog-HD2gf5mY.js";
9
- import { n as httpRequest, t as authFailure } from "./http-DXJ37RDA.js";
10
- import { a as pushAuth, l as cloudUrl, n as cliRuntime, u as firstNonEmpty } from "./auth-DRLEizbL.js";
6
+ import { i as loadConfiguredPolicy } from "./load-DxroEzH1.js";
7
+ import { n as parseSupabaseManifest } from "./manifest-B79YuF2T.js";
8
+ import { t as parseCatalog } from "./parse-Ddhz2xf4.js";
9
+ import { r as pushedPolicy } from "./pushed-policy-CmYeSQqq.js";
10
+ import { n as runCatalog } from "./catalog-D69WhFii.js";
11
+ import { n as httpRequest, t as authFailure } from "./http-Ca3Sr5x1.js";
12
+ import { a as pushAuth, l as cloudUrl, n as cliRuntime, u as firstNonEmpty } from "./auth-CscUX8Sy.js";
11
13
  import "./manifest-json-CAGzls-C.js";
12
14
  import { existsSync, readFileSync } from "node:fs";
13
15
  import { resolve } from "node:path";
@@ -34,6 +36,43 @@ function readManifest(cwd, flag) {
34
36
  };
35
37
  }
36
38
  }
39
+ /** The built catalog, or a `catalog_invalid` problem listing every issue with its path. */
40
+ function checkedCatalog(output) {
41
+ try {
42
+ return parseCatalog(output);
43
+ } catch (error) {
44
+ if (!(error instanceof PermDockValidationError)) throw error;
45
+ const issues = error.issues.map((issue) => ({
46
+ path: (issue.path ?? []).map(String).join("."),
47
+ message: issue.message
48
+ }));
49
+ throw new CliError("failed", [`permdock cloud push: the catalog has ${String(issues.length)} ${issues.length === 1 ? "issue" : "issues"}`, ...issues.map((issue) => ` ${issue.path}: ${issue.message}`)].join("\n"), {
50
+ code: "catalog_invalid",
51
+ extensions: { issues }
52
+ });
53
+ }
54
+ }
55
+ /** The environment `GET /v1/environment` names for the push credential. */
56
+ async function keyEnvironment(io, url, bearer) {
57
+ const response = await httpRequest(io, {
58
+ url: `${url}/v1/environment`,
59
+ service: "PermDock Cloud",
60
+ headers: {
61
+ authorization: `Bearer ${bearer}`,
62
+ accept: "application/json"
63
+ }
64
+ });
65
+ const body = response.ok ? await response.json().catch(() => void 0) : void 0;
66
+ const environment = isRecord(body) ? body["environment"] : void 0;
67
+ if (typeof environment === "string" && environment !== "") return environment;
68
+ throw new CliError("failed", `permdock cloud push: PermDock Cloud did not name the credential's environment (HTTP ${String(response.status)})`, { next: [{
69
+ command: "permdock cloud push --project <environment>",
70
+ when: "to name the environment"
71
+ }, {
72
+ command: "export PERMDOCK_CLOUD_ENV=<environment>",
73
+ when: "in CI"
74
+ }] });
75
+ }
37
76
  async function runCloud(input) {
38
77
  const manifest = readManifest(input.cwd, input.manifest);
39
78
  if (!manifest.ok) return {
@@ -53,7 +92,7 @@ async function runCloud(input) {
53
92
  code: built.code,
54
93
  output: built.output
55
94
  };
56
- const catalog = parseCatalog(built.output);
95
+ const catalog = checkedCatalog(built.output);
57
96
  const fingerprint = catalogFingerprint(catalog);
58
97
  const loaded = await loadConfiguredPolicy(input.cwd, input.config.policy);
59
98
  const policy = loaded === void 0 ? void 0 : pushedPolicy(loaded);
@@ -68,17 +107,18 @@ async function runCloud(input) {
68
107
  manifest: manifest.manifest !== void 0
69
108
  };
70
109
  const url = cloudUrl(input.url, input.env);
71
- const environment = firstNonEmpty(input.project, input.env["PERMDOCK_CLOUD_ENV"], input.env["VERCEL_ENV"], "production");
72
- const describe = (verb) => input.json ? JSON.stringify({
110
+ const configured = firstNonEmpty(input.project, input.env["PERMDOCK_CLOUD_ENV"]);
111
+ const describe = (verb, environment) => input.json ? JSON.stringify({
73
112
  ...summary,
74
113
  environment,
75
114
  status: verb
76
115
  }) : `${verb} catalog ${fingerprint} (${String(summary.permissions)} permissions, ${String(hostable.length)} hostable${summary.manifest ? ", with manifest" : ""}) to ${environment}`;
77
116
  if (input.dryRun) return {
78
117
  code: 0,
79
- output: describe("would push")
118
+ output: describe("would push", configured === "" ? "the key's environment" : configured)
80
119
  };
81
120
  const auth = await pushAuth(url, input.env, cliRuntime(input.io, input.env));
121
+ const environment = configured === "" ? await keyEnvironment(input.io, url, auth.bearer) : configured;
82
122
  const response = await httpRequest(input.io, {
83
123
  url: `${url}/v1/environments/${encodeURIComponent(environment)}/catalog`,
84
124
  method: "POST",
@@ -109,7 +149,7 @@ async function runCloud(input) {
109
149
  };
110
150
  return {
111
151
  code: 0,
112
- output: describe("pushed")
152
+ output: describe("pushed", environment)
113
153
  };
114
154
  }
115
155
  //#endregion
@@ -1,4 +1,4 @@
1
- import { Gt as SnapshotScope, H as WireValidity, T as Policy, _ as GrantLimit, a as ApprovalRequirement, bn as Grantee, jn as AppObligation, u as BreakGlassSpec, ur as Condition, v as GrantMeta } from "./policy-types-n0uRTsW8.js";
1
+ import { Fn as AppObligation, H as WireValidity, T as Policy, Yt as SnapshotScope, _ as GrantLimit, a as ApprovalRequirement, mr as Condition, u as BreakGlassSpec, v as GrantMeta, wn as Grantee } from "./policy-types-B-F-qAZk.js";
2
2
  import { t as JsonSchemaNode } from "./json-schema-CN_iLFH2.js";
3
3
  //#region src/catalog/pushed-policy.d.ts
4
4
  /**
@@ -3,7 +3,7 @@ import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
3
  import { n as PermDockValidationError } from "./validation-error-ZfUHbKvf.js";
4
4
  import { n as RFC3339_PATTERN } from "./time-DkWjdL98.js";
5
5
  import { i as wireValidity } from "./validity-CZ7-y0Cj.js";
6
- import { n as snapshotScopes } from "./instance-snapshot-BOEhcqIF.js";
6
+ import { n as snapshotScopes } from "./instance-snapshot-CjcwnEiV.js";
7
7
  import { n as copyJson, r as forbiddenKeyPath, t as checkSchema } from "./json-schema-B-vAwlde.js";
8
8
  //#region src/catalog/pushed-policy.ts
9
9
  const strings = {
@@ -1,8 +1,8 @@
1
- import { n as requiredPlans } from "../problem-details-B45V5d2b.js";
2
- import { i as describe } from "../describe-B5qgDvEW.js";
1
+ import { n as requiredPlans } from "../problem-details-Tcfmj3bV.js";
2
+ import { i as describe } from "../describe-O0SwYIK8.js";
3
3
  import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
4
- import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-B3_ooZgZ.js";
5
- import { n as PermDockProviderProps, r as ProtectedProps, t as PermDockDefaults } from "../types-CX7AvRqP.js";
6
- import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-RFGpakN9.js";
7
- import { t as PermDockProvider } from "../provider-DILL9oPK.js";
4
+ import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-CKV71kKh.js";
5
+ import { n as PermDockProviderProps, r as ProtectedProps, t as PermDockDefaults } from "../types-CQVEQawv.js";
6
+ import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-BwZYL1X_.js";
7
+ import { t as PermDockProvider } from "../provider-Csk-THAn.js";
8
8
  export { type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type GateMode, type GateView, type PermDockDefaults, PermDockProvider, type PermDockProviderProps, type PermissionSet, type PermissionState, Protected, type ProtectedProps, type SubjectView, type TenantView, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
@@ -1,7 +1,7 @@
1
1
  "use client";
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 { t as approvalHeaders } from "../headers-BIjfMaoC.js";
5
- import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-BlF0F6wL.js";
6
- import { t as PermDockProvider } from "../provider-B1al-AZz.js";
5
+ import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-DXE3cQYg.js";
6
+ import { t as PermDockProvider } from "../provider-BQsTYYy0.js";
7
7
  export { PermDockProvider, Protected, approvalHeaders, describe, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
@@ -1,2 +1,2 @@
1
- import { t as PermDockProvider } from "../provider-DILL9oPK.js";
1
+ import { t as PermDockProvider } from "../provider-Csk-THAn.js";
2
2
  export { PermDockProvider };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export { t as PermDockProvider } from "../provider-B1al-AZz.js";
2
+ export { t as PermDockProvider } from "../provider-BQsTYYy0.js";
@@ -1,13 +1,13 @@
1
- import { Bt as LocalSnapshotManifest, Rt as Instant, Vt as Snapshot, Zn as CustomRole, nr as Membership, ot as SnapshotSource } from "../policy-types-n0uRTsW8.js";
2
- import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
- import { n as requiredPlans } from "../problem-details-B45V5d2b.js";
4
- import { i as describe } from "../describe-B5qgDvEW.js";
5
- import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-5ODwqu8b.js";
1
+ import { Bt as LocalMembershipRows, Gt as Snapshot, Ht as LocalRowValue, Rt as Instant, Ut as LocalSnapshotManifest, Vt as LocalRowColumn, Wt as LocalSnapshotRows, or as Membership, ot as SnapshotSource, tr as CustomRole } from "../policy-types-B-F-qAZk.js";
2
+ import { u as Permission } from "../permission-types-DhNEmoRG.js";
3
+ import { n as requiredPlans } from "../problem-details-Tcfmj3bV.js";
4
+ import { i as describe } from "../describe-O0SwYIK8.js";
5
+ import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-e4mdwAKd.js";
6
6
  import { t as approvalHeaders } from "../headers-CIbDTUTK.js";
7
- import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, m as ClientStore, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-B3_ooZgZ.js";
8
- import { r as ProtectedProps, t as PermDockDefaults } from "../types-CX7AvRqP.js";
9
- import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-RFGpakN9.js";
10
- import { a as SubscribeOnline, i as SubscribeForeground, n as ReactNativePermDockProviderProps, r as SnapshotStorage, t as NativeRevalidate } from "../types-C863OQiR.js";
7
+ import { a as FilterResult, c as PermissionSet, f as SubjectView, i as ClientStatus, l as PermissionState, m as ClientStore, n as ApprovalState, o as GateMode, p as TenantView, r as ClientPermDock, s as GateView, t as ApprovalHandle } from "../types-CKV71kKh.js";
8
+ import { r as ProtectedProps, t as PermDockDefaults } from "../types-CQVEQawv.js";
9
+ import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-BwZYL1X_.js";
10
+ import { a as SubscribeOnline, i as SubscribeForeground, n as ReactNativePermDockProviderProps, r as SnapshotStorage, t as NativeRevalidate } from "../types-CeIscIKp.js";
11
11
  import { ReactElement } from "react";
12
12
  //#region src/react-native/guards.d.ts
13
13
  /** `true` once the provider has a snapshot to answer from: storage was read or a seed was given. Hide the splash screen on it. */
@@ -77,10 +77,24 @@ type PowerSyncSourceOptions<Q extends string> = {
77
77
  readonly queries: Readonly<Record<Q, PowerSyncQuery>>;
78
78
  /** Maps the rows of each query to the signed-in user's memberships and roles. */
79
79
  readonly read: (rows: Readonly<Record<Q, readonly unknown[]>>) => LocalSnapshotData;
80
+ } | {
81
+ /** The manifest `permdock powersync generate` writes, with its `rows` section. */
82
+ readonly manifest: LocalSnapshotManifest;
83
+ /** The signed-in user's id; the source reads the rows `manifest.rows` names. */
84
+ readonly user: string;
85
+ /** The active tenant: the first scope's instance the UI shows. */
86
+ readonly tenant?: string;
87
+ /** Attributes conditions read, such as `claims` for `principal.claims.team_ids`. */
88
+ readonly attributes?: Readonly<Record<string, unknown>>;
89
+ readonly queries?: undefined;
90
+ readonly read?: undefined;
80
91
  };
81
92
  /**
82
93
  * A `localSnapshot` source over a PowerSync database: `get` runs every query
83
- * with `db.getAll`, and a `db.watch` per query reports changes. A watch
94
+ * with `db.getAll`, and a `db.watch` per query reports changes. Without
95
+ * `queries` and `read`, it reads the tables `manifest.rows` names: the
96
+ * memberships of every source with null roles dropped, the global roles and
97
+ * the custom roles with their levels. A watch
84
98
  * result with unchanged content re-renders nothing (`connectSource`). The source
85
99
  * takes the database as an argument; `permdock/react-native` never imports
86
100
  * `@powersync/*`.
@@ -156,4 +170,4 @@ type NativeStoreOptions = Omit<ReactNativePermDockProviderProps, "children" | "h
156
170
  export declare function connectSource(store: ClientStore, source: SnapshotSource, subscribeForeground?: SubscribeForeground): () => void;
157
171
  export declare function nativeStore(options: NativeStoreOptions): ClientStore;
158
172
  //#endregion
159
- export { type AppStateModule, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type GateMode, type GateView, type LocalSnapshotData, type LocalSnapshotManifest, type LocalSnapshotOptions, type MmkvInstance, type NativeRevalidate, type NetInfoModule, type PermDockDefaults, type PermissionSet, type PermissionState, type PowerSyncQuery, type PowerSyncSourceOptions, type PowerSyncWatchable, Protected, type ProtectedProps, type ReactNativePermDockProviderProps, type SecureStoreModule, type SnapshotSource, type SnapshotStorage, type SubjectView, type SubscribeForeground, type SubscribeOnline, type TenantView, approvalHeaders, describe, parseLocalSnapshotManifest, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
173
+ export { type AppStateModule, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type FilterResult, type GateMode, type GateView, type LocalMembershipRows, type LocalRowColumn, type LocalRowValue, type LocalSnapshotData, type LocalSnapshotManifest, type LocalSnapshotOptions, type LocalSnapshotRows, type MmkvInstance, type NativeRevalidate, type NetInfoModule, type PermDockDefaults, type PermissionSet, type PermissionState, type PowerSyncQuery, type PowerSyncSourceOptions, type PowerSyncWatchable, Protected, type ProtectedProps, type ReactNativePermDockProviderProps, type SecureStoreModule, type SnapshotSource, type SnapshotStorage, type SubjectView, type SubscribeForeground, type SubscribeOnline, type TenantView, approvalHeaders, describe, parseLocalSnapshotManifest, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissions, useRoles, useSubject, useTenant };
@@ -1,20 +1,20 @@
1
1
  "use client";
2
- import { t as compact } from "../compact-CAf557ZB.js";
2
+ import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
3
3
  import { n as freezeDeep } from "../freeze-CrU8nQeX.js";
4
4
  import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
5
- import { t as describe } from "../describe-BybMRY7A.js";
5
+ import { t as describe } from "../describe-DZlnEtLy.js";
6
6
  import { n as isThenable } from "../thenable-yD7SabqG.js";
7
7
  import { h as secondsAt, m as rfc3339 } from "../time-DkWjdL98.js";
8
- import { a as normalizeMemberships, d as scopeList, m as tenantOf$1, o as resolveScope } from "../scopes-CUPSjo9q.js";
9
- import { o as flattenGrantee } from "../grantee-hxrUsbpM.js";
10
- import { d as resolveActiveTenant } from "../tenancy-DN2QAx9z.js";
11
- import { i as bindConditionRefs, n as parseSnapshot } from "../snapshot-B7DkYg6g.js";
12
- import { r as heldRoleNames, t as emptySnapshot } from "../from-snapshot-CTCMsFZk.js";
13
- import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-CVSs6J9I.js";
8
+ import { f as scopeList, h as tenantOf$1, o as normalizeMemberships, s as resolveScope } from "../scopes-BHsc-wp-.js";
9
+ import { o as flattenGrantee } from "../grantee-BrRANrpT.js";
10
+ import { d as resolveActiveTenant } from "../tenancy-CmeBQ6Nv.js";
11
+ import { i as bindConditionRefs, n as parseSnapshot } from "../snapshot-CbGmYiJx.js";
12
+ import { r as heldRoleNames, t as emptySnapshot } from "../from-snapshot-Bz469dIh.js";
13
+ import { t as parseLocalSnapshotManifest } from "../parse-local-manifest-T1Q8X3A2.js";
14
14
  import { t as approvalHeaders } from "../headers-BIjfMaoC.js";
15
- import { n as storeOf, r as isJws, t as adapterStore } from "../store-options-u0ycEe8s.js";
15
+ import { n as storeOf, r as isJws, t as adapterStore } from "../store-options-B_poyYvg.js";
16
16
  import { a as PermDockUiContext, i as PermDockStoreContext, n as useKeyed, t as useLiveOptions } from "../live-options-BaAFCIiu.js";
17
- import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-BlF0F6wL.js";
17
+ import { a as useDescribe, c as useMemberships, d as usePermissions, f as useRoles, i as useAssignableRoles, l as usePermDock, m as useTenant, n as useApproval, o as useFilter, p as useSubject, r as useAssignablePermissions, s as useGate, t as Protected, u as usePermission } from "../protected-DXE3cQYg.js";
18
18
  import { useEffect, useMemo, useRef } from "react";
19
19
  import { jsx } from "react/jsx-runtime";
20
20
  //#region src/react-native/guards.ts
@@ -216,33 +216,221 @@ function localSnapshot(options) {
216
216
  });
217
217
  }
218
218
  //#endregion
219
+ //#region src/react-native/powersync-rows.ts
220
+ function isColumns(roles) {
221
+ return Array.isArray(roles);
222
+ }
223
+ function quoted(name) {
224
+ return `"${name.replaceAll("\"", "\"\"")}"`;
225
+ }
226
+ /** The synced tables `rows` names, each read whole: the subject streams sync only the user's own rows. */
227
+ function rowTables(rows) {
228
+ const tables = /* @__PURE__ */ new Set();
229
+ const column = (item) => {
230
+ if ("through" in item) tables.add(item.through.table);
231
+ };
232
+ for (const source of rows.memberships) {
233
+ tables.add(source.table);
234
+ column(source.user);
235
+ if (isColumns(source.roles)) for (const item of source.roles) column(item);
236
+ }
237
+ if (rows.roles !== void 0) {
238
+ tables.add(rows.roles.table);
239
+ for (const item of rows.roles.roles) column(item);
240
+ }
241
+ if (rows.customRoles !== void 0) {
242
+ tables.add(rows.customRoles.permissions);
243
+ tables.add(rows.customRoles.includes);
244
+ }
245
+ return [...tables];
246
+ }
247
+ function rowQuery(table) {
248
+ return `SELECT * FROM ${quoted(table)}`;
249
+ }
250
+ function text(value) {
251
+ if (typeof value === "string") return value === "" ? void 0 : value;
252
+ return typeof value === "number" || typeof value === "bigint" ? String(value) : void 0;
253
+ }
254
+ function isSet(row, column) {
255
+ const value = column === void 0 ? void 0 : row[column];
256
+ return value !== void 0 && value !== null;
257
+ }
258
+ function rowsOf(tables, table) {
259
+ return (tables[table] ?? []).filter(isRecord);
260
+ }
261
+ /** The value a column holds, read through its referenced table or map; `undefined` for none. */
262
+ function columnValue(row, column, tables) {
263
+ const raw = text(row[column.column]);
264
+ if (raw === void 0) return;
265
+ if ("through" in column) {
266
+ const { through } = column;
267
+ const target = rowsOf(tables, through.table).find((item) => text(item[through.id]) === raw);
268
+ return target === void 0 ? void 0 : text(target[through.column]);
269
+ }
270
+ if ("map" in column) return Object.hasOwn(column.map, raw) ? column.map[raw] ?? void 0 : void 0;
271
+ return raw;
272
+ }
273
+ function membershipsOf(source, tables, user) {
274
+ const byInstance = /* @__PURE__ */ new Map();
275
+ for (const row of rowsOf(tables, source.table)) {
276
+ if (columnValue(row, source.user, tables) !== user || isSet(row, source.expiresAt) || isSet(row, source.disabledAt)) continue;
277
+ const scope = "value" in source.scope ? source.scope.value : text(row[source.scope.column]);
278
+ const id = text(row[source.id]);
279
+ const via = source.via === void 0 ? void 0 : "value" in source.via ? source.via.value : text(row[source.via.column]);
280
+ const roles = isColumns(source.roles) ? source.roles.flatMap((column) => {
281
+ const key = columnValue(row, column, tables);
282
+ return key === void 0 ? [] : [key];
283
+ }) : source.roles.value;
284
+ if (scope === void 0 || id === void 0 || roles.length === 0) continue;
285
+ const key = JSON.stringify([
286
+ scope,
287
+ id,
288
+ via ?? null
289
+ ]);
290
+ const entry = byInstance.get(key) ?? {
291
+ scope,
292
+ id,
293
+ via,
294
+ roles: /* @__PURE__ */ new Set()
295
+ };
296
+ for (const role of roles) entry.roles.add(role);
297
+ byInstance.set(key, entry);
298
+ }
299
+ return [...byInstance.values()].map((entry) => compact({
300
+ scope: entry.scope,
301
+ id: entry.id,
302
+ roles: [...entry.roles].toSorted(),
303
+ via: entry.via
304
+ }));
305
+ }
306
+ function roleKeyOf(row) {
307
+ const name = text(row["role"]);
308
+ const scope = text(row["scope"]);
309
+ return name === void 0 || scope === void 0 ? void 0 : {
310
+ tenant: text(row["tenant_id"]),
311
+ scope,
312
+ id: text(row["scope_id"]),
313
+ name
314
+ };
315
+ }
316
+ function customRoleOf({ key, grants, includes }) {
317
+ const body = {
318
+ name: key.name,
319
+ grants,
320
+ includes
321
+ };
322
+ if (key.scope === "global") return {
323
+ ...body,
324
+ scope: "global"
325
+ };
326
+ if (key.tenant === void 0) return {
327
+ ...body,
328
+ shared: true,
329
+ scope: key.scope
330
+ };
331
+ return compact({
332
+ ...body,
333
+ tenant: key.tenant,
334
+ scope: key.scope,
335
+ id: key.id
336
+ });
337
+ }
338
+ /** Custom roles from the custom-role rows: a tenant role, a shared role (no tenant) or a global role. */
339
+ function customRolesOf(permissions, includes) {
340
+ const roles = /* @__PURE__ */ new Map();
341
+ const entry = (key) => {
342
+ const id = JSON.stringify([
343
+ key.tenant ?? null,
344
+ key.scope,
345
+ key.id ?? null,
346
+ key.name
347
+ ]);
348
+ const found = roles.get(id) ?? {
349
+ key,
350
+ grants: [],
351
+ includes: []
352
+ };
353
+ roles.set(id, found);
354
+ return found;
355
+ };
356
+ for (const row of permissions) {
357
+ const key = roleKeyOf(row);
358
+ const permission = text(row["permission"]);
359
+ const effect = row["effect"] === "deny" ? "deny" : "allow";
360
+ const level = text(row["level"]);
361
+ if (key !== void 0 && permission !== void 0) entry(key).grants.push(compact({
362
+ permission,
363
+ effect,
364
+ level
365
+ }));
366
+ }
367
+ for (const row of includes) {
368
+ const key = roleKeyOf(row);
369
+ const include = text(row["include_role"]);
370
+ if (key !== void 0 && include !== void 0) entry(key).includes.push(include);
371
+ }
372
+ return [...roles.values()].map(customRoleOf);
373
+ }
374
+ /** The user's memberships, global roles and custom roles from the rows of the tables `rows` names. */
375
+ function readRows(rows, tables, principal) {
376
+ const { id: user, tenant, attributes } = principal;
377
+ const memberships = rows.memberships.flatMap((source) => membershipsOf(source, tables, user));
378
+ const global = rows.roles;
379
+ const roles = global === void 0 ? [] : rowsOf(tables, global.table).flatMap((row) => text(row[global.user]) === user ? global.roles.flatMap((column) => {
380
+ const key = columnValue(row, column, tables);
381
+ return key === void 0 ? [] : [key];
382
+ }) : []);
383
+ const custom = rows.customRoles;
384
+ return {
385
+ principal: {
386
+ id: user,
387
+ roles: [...new Set(roles)].toSorted(),
388
+ memberships,
389
+ ...tenant === void 0 ? {} : { tenant },
390
+ ...attributes === void 0 ? {} : { attributes }
391
+ },
392
+ ...custom === void 0 ? {} : { customRoles: customRolesOf(rowsOf(tables, custom.permissions), rowsOf(tables, custom.includes)) }
393
+ };
394
+ }
395
+ //#endregion
219
396
  //#region src/react-native/powersync.ts
397
+ function planOf(options) {
398
+ if (!("user" in options)) return options;
399
+ const { rows } = options.manifest;
400
+ if (rows === void 0) throw new TypeError("PermDock: powerSyncSource needs queries and read, or a manifest with rows (run permdock powersync generate with powersync.manifest)");
401
+ const principal = compact({
402
+ id: options.user,
403
+ tenant: options.tenant,
404
+ attributes: options.attributes
405
+ });
406
+ return {
407
+ queries: Object.fromEntries(rowTables(rows).map((table) => [table, { sql: rowQuery(table) }])),
408
+ read: (tables) => readRows(rows, tables, principal)
409
+ };
410
+ }
220
411
  /**
221
412
  * A `localSnapshot` source over a PowerSync database: `get` runs every query
222
- * with `db.getAll`, and a `db.watch` per query reports changes. A watch
413
+ * with `db.getAll`, and a `db.watch` per query reports changes. Without
414
+ * `queries` and `read`, it reads the tables `manifest.rows` names: the
415
+ * memberships of every source with null roles dropped, the global roles and
416
+ * the custom roles with their levels. A watch
223
417
  * result with unchanged content re-renders nothing (`connectSource`). The source
224
418
  * takes the database as an argument; `permdock/react-native` never imports
225
419
  * `@powersync/*`.
226
420
  */
227
421
  function powerSyncSource(db, options) {
228
- const names = Object.keys(options.queries);
422
+ const plan = planOf(options);
229
423
  return localSnapshot({
230
424
  manifest: options.manifest,
231
425
  read: async () => {
232
- const results = await Promise.all(names.map(async (name) => {
233
- const query = options.queries[name];
426
+ const results = await Promise.all(Object.entries(plan.queries).map(async ([name, query]) => {
234
427
  return [name, await db.getAll(query.sql, [...query.parameters ?? []])];
235
428
  }));
236
- const rows = {};
237
- for (const [name, list] of results) rows[name] = list;
238
- return options.read(rows);
429
+ return plan.read(Object.fromEntries(results));
239
430
  },
240
431
  subscribe: (listener) => {
241
432
  const controller = new AbortController();
242
- for (const name of names) {
243
- const query = options.queries[name];
244
- db.watch(query.sql, [...query.parameters ?? []], { onResult: listener }, { signal: controller.signal });
245
- }
433
+ for (const query of Object.values(plan.queries)) db.watch(query.sql, [...query.parameters ?? []], { onResult: listener }, { signal: controller.signal });
246
434
  return () => {
247
435
  controller.abort();
248
436
  };
@@ -68,6 +68,20 @@ function createRef(path) {
68
68
  }
69
69
  const principal = createRef("principal");
70
70
  const context = createRef("context");
71
+ /**
72
+ * `principal.claims.<path>` for a dot path such as `team_ids` or
73
+ * `attrs.region`, typed `SubjectRef` under `noUncheckedIndexedAccess` and
74
+ * `noPropertyAccessFromIndexSignature`.
75
+ */
76
+ function claim(path) {
77
+ const segments = splitPath(path);
78
+ if (segments.length === 0) throw new Error("PermDock: claim() needs a claim path");
79
+ return createRef([
80
+ "principal",
81
+ "claims",
82
+ ...segments
83
+ ].join("."));
84
+ }
71
85
  function isSubjectRef(value) {
72
86
  if (value === null || typeof value !== "object" || !("ref" in value) || typeof value.ref !== "string") return false;
73
87
  const ref = value.ref;
@@ -88,4 +102,4 @@ function resolveConditionRef(ref, resolved) {
88
102
  }
89
103
  }
90
104
  //#endregion
91
- export { hasConditionOp as a, isConditionRef as c, resolveConditionRef as i, isSqlFunctionField as l, isSubjectRef as n, isCondition as o, principal as r, isConditionDate as s, context as t, parentHop as u };
105
+ export { resolveConditionRef as a, isConditionDate as c, parentHop as d, principal as i, isConditionRef as l, context as n, hasConditionOp as o, isSubjectRef as r, isCondition as s, claim as t, isSqlFunctionField as u };
@@ -1,4 +1,4 @@
1
- import { l as ReplayStore } from "./types-C791HFu9.js";
1
+ import { l as ReplayStore } from "./types-cTos-H7p.js";
2
2
  //#region src/ssf/replay.d.ts
3
3
  declare function memoryReplayStore(): ReplayStore;
4
4
  //#endregion
@@ -1,6 +1,6 @@
1
1
  import { t as assertAppData } from "./app-data-MuyzVqX8.js";
2
- import { n as wrapPermDock } from "./wrap-gX61EtpB.js";
3
- import { t as buildInstance } from "./build-instance-Bu_eDqYw.js";
2
+ import { n as wrapPermDock } from "./wrap-CiSc_KCq.js";
3
+ import { t as buildInstance } from "./build-instance-DxE7czo9.js";
4
4
  //#region src/core/request-context.ts
5
5
  /**
6
6
  * Errors an adapter raises around one instance (a `context` hook that threw,
@@ -1,7 +1,7 @@
1
- import { q as DecisionSink } from "../policy-types-n0uRTsW8.js";
2
- import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-DvSSPQJX.js";
3
- import { d as EmailTransport, o as DeliveryResult, u as EmailMessage } from "../types-BtHtcKMr.js";
4
- import { l as ReplayStore } from "../types-C791HFu9.js";
1
+ import { q as DecisionSink } from "../policy-types-B-F-qAZk.js";
2
+ import { n as ApprovalUrl, t as ApprovalPrompt } from "../approval-prompt-K0faOLFp.js";
3
+ import { d as EmailTransport, o as DeliveryResult, u as EmailMessage } from "../types-g7Oy6Zg4.js";
4
+ import { l as ReplayStore } from "../types-cTos-H7p.js";
5
5
  //#region src/resend/approval-email.d.ts
6
6
  type ApprovalEmailOptions = {
7
7
  /** The app's approval page: a base the request id is appended to, or a function of the prompt. Must be https. */