permdock 0.5.0 → 0.6.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 (281) hide show
  1. package/dist/a2a/index.d.ts +5 -5
  2. package/dist/a2a/index.js +3 -3
  3. package/dist/{adoption-scan-B4R5fnMU.js → adoption-scan-DCYe60Pi.js} +1 -1
  4. package/dist/agent/index.d.ts +2 -2
  5. package/dist/agent/index.js +1 -1
  6. package/dist/ai-sdk/index.d.ts +4 -4
  7. package/dist/ai-sdk/index.js +3 -3
  8. package/dist/{approval-prompt-Djo_PyZc.d.ts → approval-prompt-DvSSPQJX.d.ts} +2 -2
  9. package/dist/approvals/index.d.ts +3 -3
  10. package/dist/approvals/index.js +3 -3
  11. package/dist/{approvals-DJ6Yd5z1.js → approvals-p1PGoVjb.js} +3 -3
  12. package/dist/{arazzo-B6lebmiQ.js → arazzo-41WuzHou.js} +1 -1
  13. package/dist/{arazzo-BWhNF-k0.js → arazzo-CaUVBn7D.js} +2 -2
  14. package/dist/astro/index.d.ts +6 -6
  15. package/dist/astro/index.js +2 -2
  16. package/dist/{audience-Dg8XsRaO.js → audience-DabClFLQ.js} +1 -1
  17. package/dist/authzen/index.d.ts +4 -4
  18. package/dist/authzen/index.js +2 -2
  19. package/dist/{automation-BMZPIVUM.d.ts → automation-BNM3TtDo.d.ts} +3 -3
  20. package/dist/better-auth/index.d.ts +2 -2
  21. package/dist/better-auth/index.js +1 -1
  22. package/dist/better-supabase/index.d.ts +7 -7
  23. package/dist/better-supabase/index.js +6 -6
  24. package/dist/{bind-CZzhx-Vj.js → bind-CAvgUuKs.js} +4 -4
  25. package/dist/{bind--9EFVYWF.d.ts → bind-DOyrv6zi.d.ts} +7 -7
  26. package/dist/{build-instance-BMnAudHn.js → build-instance-Bu_eDqYw.js} +1 -1
  27. package/dist/{capability-BSslw1QV.d.ts → capability-Drg-1YhL.d.ts} +2 -2
  28. package/dist/catalog/index.d.ts +5 -5
  29. package/dist/catalog/index.js +3 -3
  30. package/dist/catalog-BoWglDPI.js +1 -0
  31. package/dist/{catalog-R_A__RsH.js → catalog-DZVbrF-z.js} +1 -1
  32. package/dist/{catalog-BECMPrwc.js → catalog-HD2gf5mY.js} +2 -2
  33. package/dist/{catalog-doc-C9wjsfNY.js → catalog-doc-Cdn7-0pQ.js} +1 -1
  34. package/dist/chat/index.d.ts +1 -1
  35. package/dist/chat/index.js +2 -2
  36. package/dist/chat-sdk/index.d.ts +3 -3
  37. package/dist/claude-agent/index.d.ts +3 -3
  38. package/dist/claude-agent/index.js +2 -2
  39. package/dist/clerk/index.d.ts +3 -3
  40. package/dist/cli/bin.js +1 -1
  41. package/dist/cli/index.d.ts +3 -3
  42. package/dist/cli/index.js +2 -2
  43. package/dist/cloud/index.d.ts +8 -8
  44. package/dist/cloud/index.js +1 -1
  45. package/dist/{cloud-CIoHNevm.js → cloud-ytQ3uviA.js} +2 -2
  46. package/dist/{codemod-Bmj9dWMH.js → codemod-5mpSpnUY.js} +2 -2
  47. package/dist/{codemod-Cxvvc70T.js → codemod-ua2hHy7w.js} +1 -1
  48. package/dist/{collect-DloHbDVa.js → collect-Ci6akVwH.js} +2 -2
  49. package/dist/collect-D7eQDffE.js +1 -0
  50. package/dist/{collect-CrZJJnEF.js → collect-mLTY4nwb.js} +2 -2
  51. package/dist/compile/index.d.ts +1 -1
  52. package/dist/{compile-Ckm2HqBZ.d.ts → compile-1bsAezL0.d.ts} +3 -3
  53. package/dist/{completion-BqhRBJD8.js → completion-BTFrHZhX.js} +1 -1
  54. package/dist/{config-B46rm9sc.js → config-Bj2Ixq3d.js} +1 -1
  55. package/dist/{config-report-DUgj62Ai.js → config-report-DSpsLpCE.js} +2 -2
  56. package/dist/{context-bbFHR-0D.js → context-B_u3_bDJ.js} +2 -2
  57. package/dist/convex/index.d.ts +5 -5
  58. package/dist/convex/index.js +2 -2
  59. package/dist/{create-0VZ7Pdiu.d.ts → create-B30OMUOJ.d.ts} +5 -5
  60. package/dist/{create-BDS7wc3y.d.ts → create-CBMmFie-.d.ts} +9 -9
  61. package/dist/{create-C3b4B5eF.js → create-CGm28gyI.js} +4 -4
  62. package/dist/{create-BWRSXgOF.js → create-CQWIpUG-.js} +1 -1
  63. package/dist/{create-DnrmLnLW.js → create-DCF2SvoT.js} +4 -4
  64. package/dist/{create-BFfm17UA.d.ts → create-D_NmPOdH.d.ts} +7 -7
  65. package/dist/{credential-DM2um3ha.js → credential-BcoiejpY.js} +2 -2
  66. package/dist/{delegation-DaXVdDhM.js → delegation-j6-rc37o.js} +2 -2
  67. package/dist/delivery/index.d.ts +4 -4
  68. package/dist/delivery/index.js +1 -1
  69. package/dist/{denied-text-D8jDHgsl.d.ts → denied-text-CiFQNuMV.d.ts} +2 -2
  70. package/dist/{describe-BZUsixiL.d.ts → describe-B5qgDvEW.d.ts} +2 -2
  71. package/dist/{diff-DCePiN6M.js → diff-3jbx6Rm4.js} +3 -3
  72. package/dist/{diff-CxZo9pTq.js → diff-CmuSD3vc.js} +1 -1
  73. package/dist/{doctor-CxiwSfqH.js → doctor-3ZqNHX_G.js} +2 -2
  74. package/dist/{doctor-DFjUxf2f.js → doctor-BdZw53-k.js} +14 -14
  75. package/dist/drizzle/index.d.ts +3 -3
  76. package/dist/elysia/index.d.ts +5 -5
  77. package/dist/elysia/index.js +3 -3
  78. package/dist/{errors-C2PXIv4c.d.ts → errors-DH5QEGXh.d.ts} +2 -2
  79. package/dist/{evaluate-_R8QkWaf.js → evaluate-CNClBvcj.js} +81 -28
  80. package/dist/{evaluations-16UqqQ6W.d.ts → evaluations-C_1vdSZc.d.ts} +3 -3
  81. package/dist/{evaluations-DZ2CbV5k.js → evaluations-beAooV0n.js} +1 -1
  82. package/dist/eve/index.d.ts +5 -5
  83. package/dist/eve/index.js +3 -3
  84. package/dist/express/index.d.ts +5 -5
  85. package/dist/express/index.js +3 -3
  86. package/dist/fastify/index.d.ts +5 -5
  87. package/dist/fastify/index.js +3 -3
  88. package/dist/{fetch-adapter-g0ypLkID.js → fetch-adapter-DD_gfmrC.js} +2 -2
  89. package/dist/{fetch-adapter-qKJBuRqy.d.ts → fetch-adapter-Dw0MTS3D.d.ts} +4 -4
  90. package/dist/{fields-D9tPVUUS.js → fields-OYG_JR78.js} +3 -3
  91. package/dist/{from-snapshot-D2lZt4Dd.js → from-snapshot-CTCMsFZk.js} +4 -4
  92. package/dist/{grantee-Cn1HyUsI.js → grantee-hxrUsbpM.js} +13 -3
  93. package/dist/{grantee-match-DHArqY82.js → grantee-match-DbENBHLB.js} +1 -1
  94. package/dist/h3/index.d.ts +4 -4
  95. package/dist/h3/index.js +3 -3
  96. package/dist/{helpers-DTcZOzhF.js → helpers-CBYVMjwh.js} +1 -1
  97. package/dist/hono/index.d.ts +5 -5
  98. package/dist/hono/index.js +3 -3
  99. package/dist/{hosted-BZIAYvon.js → hosted-B46-5LYE.js} +3 -3
  100. package/dist/{hosted-DBDX0M-P.d.ts → hosted-BPk51-kX.d.ts} +1 -1
  101. package/dist/{import-DMmOG27O.js → import-wyqXUyjm.js} +3 -3
  102. package/dist/{index-Chrs5fQ-.d.ts → index-B8YjkEZ4.d.ts} +6 -6
  103. package/dist/{index-CxGUswIC.d.ts → index-C-6Letxg.d.ts} +5 -5
  104. package/dist/{index-SGdIQyzc.d.ts → index-Ch8LpNDp.d.ts} +2 -2
  105. package/dist/{index-D8EovfsP.d.ts → index-Cp_ilKi1.d.ts} +2 -2
  106. package/dist/{index-BcHcPyIo.d.ts → index-CueFnxQc.d.ts} +6 -6
  107. package/dist/{index-DOVf7RJv.d.ts → index-DuWxc5dt.d.ts} +21 -12
  108. package/dist/index.d.ts +17 -17
  109. package/dist/index.js +14 -14
  110. package/dist/{instance-options-Omfd793B.d.ts → instance-options-BsVpyGIk.d.ts} +1 -1
  111. package/dist/{instance-snapshot-Cxq4ygFc.js → instance-snapshot-BOEhcqIF.js} +10 -9
  112. package/dist/jwt/index.d.ts +4 -4
  113. package/dist/{kernel-5JatXyND.js → kernel-D0NVb1cK.js} +5 -5
  114. package/dist/kysely/index.d.ts +3 -3
  115. package/dist/{manifest-CtKR3GXL.js → manifest-dvL2XEe1.js} +23 -23
  116. package/dist/{map-error-TCAdw-eW.js → map-error-Dr70oA_3.js} +1 -1
  117. package/dist/mcp/index.d.ts +9 -9
  118. package/dist/mcp/index.js +4 -4
  119. package/dist/{migrate-BShP7Vf4.js → migrate-CIq4-E9F.js} +1 -1
  120. package/dist/nest/index.d.ts +5 -5
  121. package/dist/nest/index.js +3 -3
  122. package/dist/next/index.d.ts +9 -9
  123. package/dist/next/index.js +3 -3
  124. package/dist/next/plugin.d.ts +1 -1
  125. package/dist/next/plugin.js +1 -1
  126. package/dist/node/index.d.ts +5 -5
  127. package/dist/node/index.js +2 -2
  128. package/dist/openai/index.d.ts +5 -5
  129. package/dist/openai/index.js +3 -3
  130. package/dist/openapi/index.d.ts +3 -3
  131. package/dist/{openapi-ahr8rHu3.js → openapi-C4dDTVEd.js} +1 -1
  132. package/dist/{openapi-DTaEmTSW.js → openapi-DD1SV-5-.js} +1 -1
  133. package/dist/{operations-CxybZErY.d.ts → operations-X0VM7F3m.d.ts} +1 -1
  134. package/dist/orpc/index.d.ts +6 -6
  135. package/dist/orpc/index.js +3 -3
  136. package/dist/otel/index.d.ts +3 -3
  137. package/dist/{output-Dyw8fyPF.js → output-1im__-08.js} +1 -1
  138. package/dist/{ownership-BatFgAA4.js → ownership-DqaJNJPn.js} +921 -858
  139. package/dist/{parse-local-manifest-DgqtruPn.d.ts → parse-local-manifest-5ODwqu8b.d.ts} +1 -1
  140. package/dist/pdp/index.d.ts +3 -3
  141. package/dist/pdp/index.js +1 -1
  142. package/dist/{permdock-B9JxkBwC.js → permdock-BrAscV28.js} +5 -5
  143. package/dist/{permdock-D7eeLJER.d.ts → permdock-SV8ZINYT.d.ts} +4 -4
  144. package/dist/{permissions-CZKiUfFM.js → permissions-BPxlwVhN.js} +2 -2
  145. package/dist/{permissions-oEWfl-kl.d.ts → permissions-u_KHg-sN.d.ts} +1 -1
  146. package/dist/{policies-CO1oOymN.js → policies-DP2nqRoF.js} +1 -1
  147. package/dist/{policy-Czo4n3Hs.d.ts → policy-77FSAq_V.d.ts} +2 -2
  148. package/dist/{policy-DLZJ5gAp.js → policy-DbM5YYtV.js} +2 -2
  149. package/dist/{policy-from-catalog-DzhEc3Y9.js → policy-from-catalog-C2gMa2Dj.js} +5 -5
  150. package/dist/{policy-types-DzwivBgR.d.ts → policy-types-n0uRTsW8.d.ts} +28 -3
  151. package/dist/{postgrest-NUqZT-RB.d.ts → postgrest-CEgRbefE.d.ts} +1 -1
  152. package/dist/{postgrest-CW0IqC-U.js → postgrest-DAjUkF9w.js} +10 -1
  153. package/dist/{powersync-bYUDLOAO.js → powersync-BkWWCS1K.js} +6 -6
  154. package/dist/{powersync-BHfuehf3.js → powersync-DISt6SUe.js} +2 -2
  155. package/dist/powersync-MMJ2mI2q.js +1 -0
  156. package/dist/prisma/index.d.ts +2 -2
  157. package/dist/{problem-details-DXlt-vks.d.ts → problem-details-B45V5d2b.d.ts} +1 -1
  158. package/dist/{protected-DfjY5mLA.js → protected-BlF0F6wL.js} +1 -1
  159. package/dist/{protected-DEPHc2xV.d.ts → protected-RFGpakN9.d.ts} +5 -5
  160. package/dist/{provider-CC-u3bYP.js → provider-B1al-AZz.js} +2 -2
  161. package/dist/{provider-DMVt6yYn.d.ts → provider-DILL9oPK.d.ts} +1 -1
  162. package/dist/{provider-store-B5Yrkhzr.js → provider-store-DM6DNcta.js} +2 -2
  163. package/dist/pull-CvpINcMK.js +1 -0
  164. package/dist/{pull-BgIfno6w.js → pull-jEwbf80J.js} +1 -1
  165. package/dist/{push-CmFVBOeI.js → push-BD4f15co.js} +2 -2
  166. package/dist/{pushed-policy-DobP7AHI.js → pushed-policy-CqtxkV4G.js} +1 -1
  167. package/dist/{pushed-policy-BImMTTIM.d.ts → pushed-policy-DCW91KQU.d.ts} +1 -1
  168. package/dist/react/index.d.ts +6 -6
  169. package/dist/react/index.js +2 -2
  170. package/dist/react/provider-client.d.ts +1 -1
  171. package/dist/react/provider-client.js +1 -1
  172. package/dist/react-native/index.d.ts +9 -9
  173. package/dist/react-native/index.js +10 -8
  174. package/dist/{replay-D7iKcLFe.d.ts → replay-Bkm-Ne4l.d.ts} +1 -1
  175. package/dist/{request-context-BTRTG7OT.js → request-context-C81Pip9n.js} +1 -1
  176. package/dist/resend/index.d.ts +4 -4
  177. package/dist/{rls-BA8an5Ap.js → rls-BAqP4q66.js} +1 -1
  178. package/dist/{rls-j6t43t7n.js → rls-DTvYd-lI.js} +12 -12
  179. package/dist/{role-builder-CXbis5-X.js → role-builder-uWQZ4v84.js} +1 -1
  180. package/dist/{rpc-aPyNi6tA.js → rpc-VSl5ylaQ.js} +1 -1
  181. package/dist/{run-DOfMtc9V.js → run-CUKuz0A8.js} +2 -2
  182. package/dist/run-DDwUaJDU.js +1 -0
  183. package/dist/{run-ticket-BjhTOi6u.d.ts → run-ticket-DocwaTKn.d.ts} +2 -2
  184. package/dist/{saas-FO-Q8oj0.js → saas-BCXRuXca.js} +5 -5
  185. package/dist/{scan-BOI5tJ-6.js → scan-qvOe0hS3.js} +1 -1
  186. package/dist/scim/index.d.ts +1 -1
  187. package/dist/server/index.d.ts +10 -10
  188. package/dist/server/index.js +4 -4
  189. package/dist/{server-DqCT4CgZ.js → server-C3WXAHZj.js} +1 -1
  190. package/dist/{server-types-BLd4MnBX.d.ts → server-types-CKQiCnON.d.ts} +9 -9
  191. package/dist/{shared-CD11nBbC.js → shared-BAK8t4Uo.js} +2 -1
  192. package/dist/{sink-Bj_lDUDq.d.ts → sink-4-eQIRWf.d.ts} +4 -4
  193. package/dist/{snapshot-CXUWfsNy.js → snapshot-B7DkYg6g.js} +1 -1
  194. package/dist/{snapshot-cache-DqK9eDmM.d.ts → snapshot-cache-PXI-vGpY.d.ts} +1 -1
  195. package/dist/solid/index.d.ts +5 -5
  196. package/dist/solid/index.js +2 -2
  197. package/dist/solid-start/index.d.ts +6 -6
  198. package/dist/solid-start/index.js +3 -3
  199. package/dist/{sources-BV9j0DeZ.d.ts → sources-Xc4zkszI.d.ts} +2 -2
  200. package/dist/{src-DLfUWFAI.js → src-Cu2m75uo.js} +24 -15
  201. package/dist/ssf/index.d.ts +3 -3
  202. package/dist/ssf/index.js +1 -1
  203. package/dist/{standard-webhooks-6lg8v_is.d.ts → standard-webhooks-rbD7LS6h.d.ts} +2 -2
  204. package/dist/{store-4u_hxjWa.js → store-BDutJkDL.js} +1 -1
  205. package/dist/{store-options-BqEakYRa.js → store-options-u0ycEe8s.js} +4 -4
  206. package/dist/{stores-ClZUgeoP.d.ts → stores-BUGNbJTt.d.ts} +5 -5
  207. package/dist/{stores-BbsD4fAR.js → stores-CGhM8BN_.js} +1 -1
  208. package/dist/{stream-7-xmnf3U.d.ts → stream-CeCMJmBB.d.ts} +2 -2
  209. package/dist/supabase/index.d.ts +5 -5
  210. package/dist/supabase/index.js +2 -2
  211. package/dist/supabase/middleware.d.ts +6 -6
  212. package/dist/supabase/middleware.js +5 -5
  213. package/dist/{supabase-9pqI57pW.js → supabase-By_frk3U.js} +2 -2
  214. package/dist/{supabase-hook-DdDQhMlw.js → supabase-hook-BMoEhZir.js} +14 -9
  215. package/dist/supabase-hook-CCw5m35C.js +1 -0
  216. package/dist/{supabase-Dxlp8A94.js → supabase-x5JtR2tc.js} +3 -3
  217. package/dist/svelte/index.d.ts +5 -5
  218. package/dist/svelte/index.js +2 -2
  219. package/dist/svelte/runtime.d.ts +3 -3
  220. package/dist/svelte/runtime.js +1 -1
  221. package/dist/svelte/source.d.ts +5 -5
  222. package/dist/svelte/source.js +1 -1
  223. package/dist/sveltekit/index.d.ts +6 -6
  224. package/dist/sveltekit/index.js +2 -2
  225. package/dist/tanstack-start/index.d.ts +6 -6
  226. package/dist/tanstack-start/index.js +2 -2
  227. package/dist/terminal/index.d.ts +6 -6
  228. package/dist/terminal/index.js +3 -3
  229. package/dist/testing/index.d.ts +20 -20
  230. package/dist/testing/index.js +18 -18
  231. package/dist/testing/saas/index.d.ts +5 -5
  232. package/dist/testing/saas/index.js +2 -2
  233. package/dist/testing/saas/permissions.d.ts +1 -1
  234. package/dist/testing/saas/permissions.js +1 -1
  235. package/dist/trpc/index.d.ts +6 -6
  236. package/dist/trpc/index.js +3 -3
  237. package/dist/{types-C8-KNsFf.d.ts → types-8RnwUAvE.d.ts} +5 -5
  238. package/dist/{types-BNORmDM8.d.ts → types-B3_ooZgZ.d.ts} +4 -4
  239. package/dist/{types-CCpc2Dcv.d.ts → types-BdtSDbBO.d.ts} +2 -2
  240. package/dist/{types-DX0LaKTb.d.ts → types-BtHtcKMr.d.ts} +3 -3
  241. package/dist/{types-CdlxsYQh.d.ts → types-BzzaHxt3.d.ts} +1 -1
  242. package/dist/{types-DiQjupG2.d.ts → types-C791HFu9.d.ts} +2 -2
  243. package/dist/{types-BjV-fqcA.d.ts → types-C863OQiR.d.ts} +4 -4
  244. package/dist/{types-fbZ7JEXr.d.ts → types-CVZSNocA.d.ts} +4 -4
  245. package/dist/{types-tIgIeIKJ.d.ts → types-CX7AvRqP.d.ts} +4 -4
  246. package/dist/{types-_sHy8BQf.d.ts → types-C_IiEs64.d.ts} +1 -1
  247. package/dist/{types-5Ut_pbKy.d.ts → types-Dfv0aTER.d.ts} +4 -2
  248. package/dist/{types-CZTnPFzM.d.ts → types-Druu9wLM.d.ts} +2 -2
  249. package/dist/{types-ClZaWzfb.d.ts → types-_WhUP7ud.d.ts} +3 -3
  250. package/dist/{types-BqAKcRNW.d.ts → types-lUlG3TVd.d.ts} +2 -2
  251. package/dist/unplugin/index.d.ts +1 -1
  252. package/dist/unplugin/index.js +1 -1
  253. package/dist/{usage-DHtE8j4E.js → usage-CRVl9V3t.js} +1 -1
  254. package/dist/usage-CZpSQP6L.js +1 -0
  255. package/dist/{usage-T5mXq98v.js → usage-SveTRTyr.js} +4 -4
  256. package/dist/{validation-error-Bg5Tpluk.d.ts → validation-error-DHUrAkku.d.ts} +1 -1
  257. package/dist/{verify-DbCL9bnB.js → verify-BaAKx7t6.js} +11 -11
  258. package/dist/{vocabulary-D6lPdb4Z.d.ts → vocabulary-CN8H_9UF.d.ts} +2 -0
  259. package/dist/vue/index.d.ts +5 -5
  260. package/dist/vue/index.js +2 -2
  261. package/dist/{waiter-CKy4MQSY.d.ts → waiter-B986w1oK.d.ts} +2 -2
  262. package/dist/watch--ovlPOc0.js +1 -0
  263. package/dist/{watch-CszoTJMq.js → watch-vea54PRw.js} +1 -1
  264. package/dist/webmcp/index.d.ts +2 -2
  265. package/dist/{where-scope-Dv-WTP-w.js → where-scope-C9vfEphl.js} +2 -2
  266. package/dist/{who-can-D0QoYbEb.js → who-can-DWBAcaCQ.js} +2 -2
  267. package/dist/workflow/index.d.ts +3 -3
  268. package/dist/workflow/index.js +2 -2
  269. package/dist/workflow-sdk/index.d.ts +5 -5
  270. package/dist/{wrap-Bd1Tejur.d.ts → wrap-C5jC6sKI.d.ts} +2 -2
  271. package/package.json +2 -2
  272. package/skills/permdock-data/references/queries-and-rls.md +1 -1
  273. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +1 -0
  274. package/dist/catalog-DjhMYYCq.js +0 -1
  275. package/dist/collect-FlXJlhus.js +0 -1
  276. package/dist/powersync-CbzkqL_M.js +0 -1
  277. package/dist/pull-ByOks_Tg.js +0 -1
  278. package/dist/run-CNsApDpd.js +0 -1
  279. package/dist/supabase-hook-CXcGpHqq.js +0 -1
  280. package/dist/usage-CHOtwL19.js +0 -1
  281. package/dist/watch-Cb-NcaUw.js +0 -1
@@ -2,7 +2,7 @@ import { t as compact } from "./compact-CAf557ZB.js";
2
2
  import { c as listPermissions, u as renamedKeys } from "./permission-registry-Br4jSNVi.js";
3
3
  import { i as dateAt } from "./time-DkWjdL98.js";
4
4
  import { d as scopeList, o as resolveScope } from "./scopes-CUPSjo9q.js";
5
- import { o as flattenGrantee, v as listRoles } from "./grantee-Cn1HyUsI.js";
5
+ import { o as flattenGrantee, v as listRoles } from "./grantee-hxrUsbpM.js";
6
6
  import { p as scopeField } from "./tenancy-DN2QAx9z.js";
7
7
  import { a as describeError, i as configError, o as exitCodeOfError, u as usageResult } from "./errors-CWTY6uih.js";
8
8
  import { t as policyRowConditionKeys } from "./row-conditions-h2HythXQ.js";
@@ -10,20 +10,20 @@ import { c as requirePolicy } from "./load-DFS_ry0W.js";
10
10
  import "./budget-NbEtbJC_.js";
11
11
  import { i as qualifySqlTable, r as escapeSqlIdent, u as sqlTextArray } from "./sql-B5T1IL83.js";
12
12
  import { l as roleColumn } from "./sources-vs5dGOsS.js";
13
- import { t as policyFromCatalog } from "./policy-from-catalog-DzhEc3Y9.js";
13
+ import { t as policyFromCatalog } from "./policy-from-catalog-C2gMa2Dj.js";
14
14
  import { t as beforeFirst } from "./text-BMFRfBqc.js";
15
15
  import { i as INDEXES_MARKER, n as GRANTS_MARKER, o as SEEDS_MARKER, t as BACKFILL_MARKER } from "./markers-C6joDI3o.js";
16
16
  import { i as requirePeer, n as packageManagerOf, t as addLine } from "./peer-C8swJ2GH.js";
17
17
  import { t as POLICY_NOT_PUBLISHED } from "./problem-types-CJ2325SZ.js";
18
- import { t as fetchProjectPolicy } from "./pull-BgIfno6w.js";
18
+ import { t as fetchProjectPolicy } from "./pull-jEwbf80J.js";
19
19
  import { a as isSeedsDirectory, c as parseSplit, d as seedsMigration, f as writeOutputFiles, l as partPath, n as dataMigrationFile, r as driftOf, u as pgDeltaPath } from "./output-files-DhRBBE4n.js";
20
- import { c as approvalsSql, d as resolveAuthorize, h as schemasRefusal, l as parseRbacAuthorize, m as resolveSchemas, o as supabaseHookSql, p as isSupabaseSchemas, s as permissionHoldersSql, t as grantsLabel, u as rbacScaffold } from "./supabase-hook-DdDQhMlw.js";
21
- import { C as parseMembershipsFlag, E as scopeTypeOf, F as quoteQualified, I as quoteTable, M as qualified, N as quoteIdent$1, O as tenantTypeOf, P as quoteLiteral, _ as subjectClaimJsonSql, a as customRolesOn, c as SESSION_LIVE_HELPER, g as sessionLiveHelperSql, r as HELPERS, t as CUSTOM_ROLES, y as subjectIdSql } from "./shared-CD11nBbC.js";
20
+ import { c as approvalsSql, d as resolveAuthorize, h as schemasRefusal, l as parseRbacAuthorize, m as resolveSchemas, o as supabaseHookSql, p as isSupabaseSchemas, s as permissionHoldersSql, t as grantsLabel, u as rbacScaffold } from "./supabase-hook-BMoEhZir.js";
21
+ import { C as parseMembershipsFlag, E as scopeTypeOf, F as quoteQualified, I as quoteTable, M as qualified, N as quoteIdent$1, O as tenantTypeOf, P as quoteLiteral, _ as subjectClaimJsonSql, a as customRolesOn, c as SESSION_LIVE_HELPER, g as sessionLiveHelperSql, r as HELPERS, t as CUSTOM_ROLES, y as subjectIdSql } from "./shared-BAK8t4Uo.js";
22
22
  import { a as splitUndiffed } from "./deciding-columns-Sq12mEA6.js";
23
- import { a as readOnlyActorKinds, c as branchClauses, d as connectPgPool, i as orSql, n as actorMayWriteSql, o as readOnlyActorPolicies, r as assemblePolicies, t as ACTOR_MAY_WRITE } from "./policies-CO1oOymN.js";
24
- import { $ as checkSuspension, A as roleNames, D as breakGlassHolder, E as apiKeysPlan, F as graphHelper, I as graphSqlName, O as breakGlassKey, S as byKey, W as memberIdsHelper, X as scopeTable, Y as scopeSources, _ as currentKeyExpr, f as permittedByPermissionHelper, g as seedSql, h as helpersSql, i as assignmentSql, k as collectGrants, m as accessSql, n as ownershipSql, q as permittedIdsHelper, t as ownershipRules, u as permissionHelpersSql, x as byCodeUnit } from "./ownership-BatFgAA4.js";
25
- import { _ as indexesSql, a as graphSql, c as callsHelper, g as indexTargets, h as COLUMNS_SQL, i as graphPlan, l as helperCallKeys, m as tableFor, n as runRlsVerify, o as HELPER_TABLES, p as compileGrants, r as closureDepths, v as pruneIndexTargets, y as readTableIndexFacts } from "./verify-DbCL9bnB.js";
26
- import { a as fieldViewsSql, i as fieldViews, n as columnGrantSql, o as rowBranches, r as columnRevokeSql } from "./fields-D9tPVUUS.js";
23
+ import { a as readOnlyActorKinds, c as branchClauses, d as connectPgPool, i as orSql, n as actorMayWriteSql, o as readOnlyActorPolicies, r as assemblePolicies, t as ACTOR_MAY_WRITE } from "./policies-DP2nqRoF.js";
24
+ import { A as collectGrants, C as byKey, D as apiKeysPlan, G as memberIdsHelper, I as graphHelper, J as permittedIdsHelper, L as graphSqlName, O as breakGlassHolder, S as byCodeUnit, X as scopeSources, Z as scopeTable, b as currentKeyExpr, et as checkSuspension, f as permittedByPermissionHelper, g as seedSql, h as helpersSql, i as assignmentSql, j as roleNames, k as breakGlassKey, m as accessSql, n as ownershipSql, t as ownershipRules, u as permissionHelpersSql, x as rolesTableScope } from "./ownership-DqaJNJPn.js";
25
+ import { _ as indexesSql, a as graphSql, c as callsHelper, g as indexTargets, h as COLUMNS_SQL, i as graphPlan, l as helperCallKeys, m as tableFor, n as runRlsVerify, o as HELPER_TABLES, p as compileGrants, r as closureDepths, v as pruneIndexTargets, y as readTableIndexFacts } from "./verify-BaAKx7t6.js";
26
+ import { a as fieldViewsSql, i as fieldViews, n as columnGrantSql, o as rowBranches, r as columnRevokeSql } from "./fields-OYG_JR78.js";
27
27
  import { t as supautilsRejections } from "./supautils-B6HYL9eL.js";
28
28
  import { basename, delimiter, join } from "node:path";
29
29
  import { spawn } from "node:child_process";
@@ -509,7 +509,7 @@ function backfillSql(ctx, from, migrate) {
509
509
  const tenantType = tenantTypeOf(ctx);
510
510
  const rolesTable = quoteQualified(roles.table);
511
511
  const tenant = roles.tenant === void 0 ? `null::${tenantType}` : `${col(roles.tenant)}::${tenantType}`;
512
- const scope = roles.scope === void 0 ? `case when ${tenant} is null then 'global' else ${quoteLiteral(root)} end` : `case when ${tenant} is null then 'global' else ${col(roles.scope)}::text end`;
512
+ const scope = rolesTableScope(roles, tenant, root, col);
513
513
  const scopeId = roles.id === void 0 ? "null::text" : `${col(roles.id)}::text`;
514
514
  const skipped = roles.skip === void 0 ? "false" : `coalesce(${col(roles.skip)}, false)`;
515
515
  const renamed = custom.renamed ?? {};
@@ -2348,7 +2348,7 @@ async function migrate(input) {
2348
2348
  output: generated.output
2349
2349
  };
2350
2350
  await requirePeer(() => import("pgsql-parser"), "pgsql-parser", "permdock rls migrate", input.cwd);
2351
- const { migrateTarget, runRlsMigrate } = await import("./migrate-BShP7Vf4.js");
2351
+ const { migrateTarget, runRlsMigrate } = await import("./migrate-CIq4-E9F.js");
2352
2352
  return runRlsMigrate({
2353
2353
  cwd: input.cwd,
2354
2354
  sql: input.sql,
@@ -2468,7 +2468,7 @@ async function runRls(input) {
2468
2468
  }
2469
2469
  case "import": {
2470
2470
  await requirePeer(() => import("pgsql-parser"), "pgsql-parser", "permdock rls import", input.cwd);
2471
- const { runRlsImport } = await import("./import-DMmOG27O.js");
2471
+ const { runRlsImport } = await import("./import-wyqXUyjm.js");
2472
2472
  return runRlsImport({
2473
2473
  cwd: input.cwd,
2474
2474
  config: input.config,
@@ -7,7 +7,7 @@ import { c as listPermissions, o as isPermission } from "./permission-registry-B
7
7
  import { n as assertMetaValue, r as parseAppData, t as assertAppData } from "./app-data-MuyzVqX8.js";
8
8
  import { d as isSelfParented } from "./resource-relations-D_jw0BFx.js";
9
9
  import { a as durationOf, r as assertDuration } from "./time-DkWjdL98.js";
10
- import { a as authenticated, d as roleScopeOf, g as isRole, o as flattenGrantee, r as asGrantee, u as roleNameOf } from "./grantee-Cn1HyUsI.js";
10
+ import { a as authenticated, d as roleScopeOf, g as isRole, o as flattenGrantee, r as asGrantee, u as roleNameOf } from "./grantee-hxrUsbpM.js";
11
11
  import { c as sanitizeFields, n as normalizeValidity } from "./validity-CZ7-y0Cj.js";
12
12
  //#region src/conditions/opaque.ts
13
13
  function opaque(input) {
@@ -1,7 +1,7 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
2
  import { s as requestFromContext } from "./http-BBoKefeS.js";
3
3
  import { n as tenantScope } from "./adapter-context-CRhqyzCk.js";
4
- import { t as adapterKernel } from "./bind-CZzhx-Vj.js";
4
+ import { t as adapterKernel } from "./bind-CAvgUuKs.js";
5
5
  import { r as guardIterable } from "./stream-CvdUS9V1.js";
6
6
  //#region src/server/rpc.ts
7
7
  /** The tRPC and oRPC error code for a Problem Details status. */
@@ -5,9 +5,9 @@ import { a as resolveCwd, i as readConfig } from "./config-bs_kZeYq.js";
5
5
  import { t as beforeFirst } from "./text-BMFRfBqc.js";
6
6
  import { a as suggestion, i as parseLeaf, n as flagSpellings, o as GLOBAL_FLAGS, r as parseFlags } from "./args-IIolxxKA.js";
7
7
  import { r as progressReporter, t as redact } from "./credentials-DPyHmYz5.js";
8
- import { a as resolve, i as leaves, n as ROOT, r as SECTIONS, t as DOCS_BASE } from "./manifest-CtKR3GXL.js";
8
+ import { a as resolve, i as leaves, n as ROOT, r as SECTIONS, t as DOCS_BASE } from "./manifest-dvL2XEe1.js";
9
9
  import { t as createStyle } from "./style-Uao76wO7.js";
10
- import { a as sarifLog, i as githubAnnotations, n as envelope, t as dataOf } from "./output-Dyw8fyPF.js";
10
+ import { a as sarifLog, i as githubAnnotations, n as envelope, t as dataOf } from "./output-1im__-08.js";
11
11
  import { i as renameMessage, r as flagRename, t as COMMAND_MOVES } from "./renames-CGj7YwcQ.js";
12
12
  import { stripVTControlCharacters } from "node:util";
13
13
  import { existsSync, statSync } from "node:fs";
@@ -0,0 +1 @@
1
+ export { t as run } from "./run-CUKuz0A8.js";
@@ -1,5 +1,5 @@
1
- import { $n as Delegation, Rt as Instant, Yn as AuthorizationDetail, dt as TokenVerifier, ir as Subject, lt as TokenFailureCause, qn as Actor, qt as AuthEvent, rr as Principal, ut as TokenSigner } from "./policy-types-DzwivBgR.js";
2
- import { p as PrincipalSource } from "./permdock-D7eeLJER.js";
1
+ import { $n as Delegation, Rt as Instant, Yn as AuthorizationDetail, ar as Subject, dt as TokenVerifier, lt as TokenFailureCause, qn as Actor, qt as AuthEvent, rr as Principal, ut as TokenSigner } from "./policy-types-n0uRTsW8.js";
2
+ import { p as PrincipalSource } from "./permdock-SV8ZINYT.js";
3
3
  //#region src/server/run-ticket.d.ts
4
4
  /** What started the run: a saved automation, a background job, or a caller's own request. */
5
5
  type RunKind = "automation" | "job" | "caller";
@@ -1,12 +1,12 @@
1
1
  import { r as isRecord } from "./compact-CAf557ZB.js";
2
2
  import { r as principal } from "./refs-K6eWUJ0H.js";
3
- import { a as deny, n as role, r as allow } from "./role-builder-CXbis5-X.js";
4
- import { E as memoryCustomRoleSource, _ as limits, g as memoryRelationSource, v as memoryLimitStore } from "./src-DLfUWFAI.js";
3
+ import { a as deny, n as role, r as allow } from "./role-builder-uWQZ4v84.js";
4
+ import { E as memoryCustomRoleSource, _ as limits, g as memoryRelationSource, v as memoryLimitStore } from "./src-Cu2m75uo.js";
5
5
  import { h as secondsAt } from "./time-DkWjdL98.js";
6
- import { l as relation, n as anyone } from "./grantee-Cn1HyUsI.js";
7
- import { n as definePolicy } from "./policy-DLZJ5gAp.js";
6
+ import { l as relation, n as anyone } from "./grantee-hxrUsbpM.js";
7
+ import { n as definePolicy } from "./policy-DbM5YYtV.js";
8
8
  import { s as quoteSqlLiteral } from "./sql-B5T1IL83.js";
9
- import { a as saasPlans, i as saasPermissions, o as saasRoles } from "./permissions-CZKiUfFM.js";
9
+ import { a as saasPlans, i as saasPermissions, o as saasRoles } from "./permissions-BPxlwVhN.js";
10
10
  //#region src/testing/saas/policy.ts
11
11
  function isSubject(user) {
12
12
  return user !== null && "context" in user && "principal" in user;
@@ -16,7 +16,7 @@ const scan = defineLeaf({
16
16
  }
17
17
  },
18
18
  async run(ctx, { flags }) {
19
- const { runAdoptionScan } = await import("./adoption-scan-B4R5fnMU.js");
19
+ const { runAdoptionScan } = await import("./adoption-scan-DCYe60Pi.js");
20
20
  return runAdoptionScan({
21
21
  cwd: ctx.cwd,
22
22
  srcPath: flags.src.length > 0 ? flags.src : ctx.config.collect?.srcPath ?? ["src"],
@@ -1,2 +1,2 @@
1
- import { A as ScimPage, C as GROUP_SCHEMA, D as SCIM_CONTENT_TYPE, E as ROLES_EXTENSION, F as isDirectoryNotFoundError, I as isDirectoryUniquenessError, M as ScimPatchOp, N as ScimTokenOptions, O as ScimFilter, P as USER_SCHEMA, S as ERROR_SCHEMA, T as PATCH_SCHEMA, _ as DirectoryMembershipSourceOptions, a as scimHandler, b as DirectoryUniquenessError, c as parseScimFilter, d as serviceProviderConfig, f as authenticateScim, g as DirectoryGroup, h as DirectoryChange, i as tenantFromPath, j as ScimPageResult, k as ScimHandlerOptions, l as resourceTypes, m as APP_DATA_EXTENSION, n as directoryMembershipSource, o as filterSupported, p as sha256Hex, r as normalizePatchOps, s as matchFilter, t as memoryDirectoryStore, u as schemas, v as DirectoryNotFoundError, w as LIST_SCHEMA, x as DirectoryUser, y as DirectoryStore } from "../index-SGdIQyzc.js";
1
+ import { A as ScimPage, C as GROUP_SCHEMA, D as SCIM_CONTENT_TYPE, E as ROLES_EXTENSION, F as isDirectoryNotFoundError, I as isDirectoryUniquenessError, M as ScimPatchOp, N as ScimTokenOptions, O as ScimFilter, P as USER_SCHEMA, S as ERROR_SCHEMA, T as PATCH_SCHEMA, _ as DirectoryMembershipSourceOptions, a as scimHandler, b as DirectoryUniquenessError, c as parseScimFilter, d as serviceProviderConfig, f as authenticateScim, g as DirectoryGroup, h as DirectoryChange, i as tenantFromPath, j as ScimPageResult, k as ScimHandlerOptions, l as resourceTypes, m as APP_DATA_EXTENSION, n as directoryMembershipSource, o as filterSupported, p as sha256Hex, r as normalizePatchOps, s as matchFilter, t as memoryDirectoryStore, u as schemas, v as DirectoryNotFoundError, w as LIST_SCHEMA, x as DirectoryUser, y as DirectoryStore } from "../index-Ch8LpNDp.js";
2
2
  export { APP_DATA_EXTENSION, type DirectoryChange, type DirectoryGroup, type DirectoryMembershipSourceOptions, DirectoryNotFoundError, type DirectoryStore, DirectoryUniquenessError, type DirectoryUser, ERROR_SCHEMA, GROUP_SCHEMA, LIST_SCHEMA, PATCH_SCHEMA, ROLES_EXTENSION, SCIM_CONTENT_TYPE, type ScimFilter, type ScimHandlerOptions, type ScimPage, type ScimPageResult, type ScimPatchOp, type ScimTokenOptions, USER_SCHEMA, authenticateScim, directoryMembershipSource, filterSupported, isDirectoryNotFoundError, isDirectoryUniquenessError, matchFilter, memoryDirectoryStore, normalizePatchOps, parseScimFilter, resourceTypes, schemas, scimHandler, serviceProviderConfig, sha256Hex, tenantFromPath };
@@ -1,13 +1,13 @@
1
- import { n as PermDockValidationError, t as PROBLEM_BASE } from "../validation-error-Bg5Tpluk.js";
2
- import { i as PermDockRevokedError, n as PermDockApprovalRequiredError, r as PermDockDeniedError, t as ApprovalHint } from "../errors-C2PXIv4c.js";
1
+ import { n as PermDockValidationError, t as PROBLEM_BASE } from "../validation-error-DHUrAkku.js";
2
+ import { i as PermDockRevokedError, n as PermDockApprovalRequiredError, r as PermDockDeniedError, t as ApprovalHint } from "../errors-DH5QEGXh.js";
3
3
  import { t as RequestContext } from "../request-context-C2_1lchh.js";
4
4
  import { i as memoryRevocationFeed, n as RevocationFeed, t as RevocationEvent } from "../revocations-R07lFBnX.js";
5
- import { C as TenantScope, D as ConnectionOptions, E as ConnectionData, S as TenantOption, T as Connection, _ as WebBotAuthVerifier, a as OperationScopes, b as invalidSignatureResponse, c as ServerPermDock, d as DiscoverViaSignatureAgentOptions, f as InvalidSignatureError, g as WebBotAuthOptions, h as WebBotAuthKeys, i as OpenApiHooks, l as ServerPermDockOptions, m as WebBotAuthKeyLookup, n as DeniedResponseEvent, o as ProtectOptions, p as WebBotAuthJwk, r as Guard, s as ScopeGuard, t as DeniedResponse, u as SnapshotQuery, v as discoverViaSignatureAgent, w as tenantScope, x as webBotAuthVerifier, y as invalidSignatureProblem } from "../server-types-BLd4MnBX.js";
6
- import { i as evaluationsHandler } from "../evaluations-16UqqQ6W.js";
7
- import { C as subjectFromApiKey, E as createPermDock, S as parseFeedKey, T as problemFromError, _ as generateApiKey, a as SupportSessionContext, b as memoryCredentialStore, c as SupportSessionSubjectOptions, d as ApiKeyFailureCause, f as ApiKeyParts, g as apiKeyVerifier, h as StoredCredential, i as wwwAuthenticate, l as signSupportSession, m as MemoryCredentialStore, n as problemResponse, o as SupportSessionFailureCause, p as ApiKeySubjectOptions, r as validationProblem, s as SupportSessionSource, t as problemFromDecision, u as subjectFromSupportSession, v as generateFeedKey, w as ProblemFromErrorOptions, x as parseApiKey, y as hashApiKey } from "../index-Chrs5fQ-.js";
8
- import { l as ReplayStore } from "../types-DiQjupG2.js";
9
- import { a as WebhookInput, c as WebhookMessage, d as WebhookSigningKey, f as WebhookVerifier, h as webhookVerifier, i as WebhookHeaders, l as WebhookSigner, m as webhookSigner, n as WebhookAlgorithm, o as WebhookJwk, p as WebhookVerifierOptions, r as WebhookFailureCause, s as WebhookJwks, t as VerifiedWebhookMessage, u as WebhookSignerOptions } from "../standard-webhooks-6lg8v_is.js";
10
- import { t as memoryReplayStore } from "../replay-D7iKcLFe.js";
11
- import { a as snapshotHeaders, i as cacheLifeFor, n as SnapshotHeaders, o as snapshotTag, r as SnapshotHeadersOptions, t as CacheLifeForOptions } from "../snapshot-cache-DqK9eDmM.js";
12
- import { a as RunKind, c as RunTicketAutomations, d as RunTicketOptions, f as RunTicketSubjectOptions, h as subjectFromRunTicket, i as RunContext, l as RunTicketFailureCause, m as signRunTicket, n as RunAutomation, o as RunPrincipal, p as parseRunTicket, r as RunBinding, s as RunTicket, t as RunActClaim, u as RunTicketInput } from "../run-ticket-BjhTOi6u.js";
5
+ import { C as TenantScope, D as ConnectionOptions, E as ConnectionData, S as TenantOption, T as Connection, _ as WebBotAuthVerifier, a as OperationScopes, b as invalidSignatureResponse, c as ServerPermDock, d as DiscoverViaSignatureAgentOptions, f as InvalidSignatureError, g as WebBotAuthOptions, h as WebBotAuthKeys, i as OpenApiHooks, l as ServerPermDockOptions, m as WebBotAuthKeyLookup, n as DeniedResponseEvent, o as ProtectOptions, p as WebBotAuthJwk, r as Guard, s as ScopeGuard, t as DeniedResponse, u as SnapshotQuery, v as discoverViaSignatureAgent, w as tenantScope, x as webBotAuthVerifier, y as invalidSignatureProblem } from "../server-types-CKQiCnON.js";
6
+ import { i as evaluationsHandler } from "../evaluations-C_1vdSZc.js";
7
+ import { C as subjectFromApiKey, E as createPermDock, S as parseFeedKey, T as problemFromError, _ as generateApiKey, a as SupportSessionContext, b as memoryCredentialStore, c as SupportSessionSubjectOptions, d as ApiKeyFailureCause, f as ApiKeyParts, g as apiKeyVerifier, h as StoredCredential, i as wwwAuthenticate, l as signSupportSession, m as MemoryCredentialStore, n as problemResponse, o as SupportSessionFailureCause, p as ApiKeySubjectOptions, r as validationProblem, s as SupportSessionSource, t as problemFromDecision, u as subjectFromSupportSession, v as generateFeedKey, w as ProblemFromErrorOptions, x as parseApiKey, y as hashApiKey } from "../index-B8YjkEZ4.js";
8
+ import { l as ReplayStore } from "../types-C791HFu9.js";
9
+ import { a as WebhookInput, c as WebhookMessage, d as WebhookSigningKey, f as WebhookVerifier, h as webhookVerifier, i as WebhookHeaders, l as WebhookSigner, m as webhookSigner, n as WebhookAlgorithm, o as WebhookJwk, p as WebhookVerifierOptions, r as WebhookFailureCause, s as WebhookJwks, t as VerifiedWebhookMessage, u as WebhookSignerOptions } from "../standard-webhooks-rbD7LS6h.js";
10
+ import { t as memoryReplayStore } from "../replay-Bkm-Ne4l.js";
11
+ import { a as snapshotHeaders, i as cacheLifeFor, n as SnapshotHeaders, o as snapshotTag, r as SnapshotHeadersOptions, t as CacheLifeForOptions } from "../snapshot-cache-PXI-vGpY.js";
12
+ import { a as RunKind, c as RunTicketAutomations, d as RunTicketOptions, f as RunTicketSubjectOptions, h as subjectFromRunTicket, i as RunContext, l as RunTicketFailureCause, m as signRunTicket, n as RunAutomation, o as RunPrincipal, p as parseRunTicket, r as RunBinding, s as RunTicket, t as RunActClaim, u as RunTicketInput } from "../run-ticket-DocwaTKn.js";
13
13
  export { type ApiKeyFailureCause, type ApiKeyParts, type ApiKeySubjectOptions, type ApprovalHint, type CacheLifeForOptions, type Connection, type ConnectionData, type ConnectionOptions, type DeniedResponse, type DeniedResponseEvent, type DiscoverViaSignatureAgentOptions, type Guard, InvalidSignatureError, type MemoryCredentialStore, type OpenApiHooks, type OperationScopes, PROBLEM_BASE, PermDockApprovalRequiredError, PermDockDeniedError, PermDockRevokedError, PermDockValidationError, type ProblemFromErrorOptions, type ProtectOptions, type ReplayStore, type RequestContext, type RevocationEvent, type RevocationFeed, type RunActClaim, type RunAutomation, type RunBinding, type RunContext, type RunKind, type RunPrincipal, type RunTicket, type RunTicketAutomations, type RunTicketFailureCause, type RunTicketInput, type RunTicketOptions, type RunTicketSubjectOptions, type ScopeGuard, type ServerPermDock, type ServerPermDockOptions, type SnapshotHeaders, type SnapshotHeadersOptions, type SnapshotQuery, type StoredCredential, type SupportSessionContext, type SupportSessionFailureCause, type SupportSessionSource, type SupportSessionSubjectOptions, type TenantOption, type TenantScope, type VerifiedWebhookMessage, type WebBotAuthJwk, type WebBotAuthKeyLookup, type WebBotAuthKeys, type WebBotAuthOptions, type WebBotAuthVerifier, type WebhookAlgorithm, type WebhookFailureCause, type WebhookHeaders, type WebhookInput, type WebhookJwk, type WebhookJwks, type WebhookMessage, type WebhookSigner, type WebhookSignerOptions, type WebhookSigningKey, type WebhookVerifier, type WebhookVerifierOptions, apiKeyVerifier, cacheLifeFor, createPermDock, discoverViaSignatureAgent, evaluationsHandler, generateApiKey, generateFeedKey, hashApiKey, invalidSignatureProblem, invalidSignatureResponse, memoryCredentialStore, memoryReplayStore, memoryRevocationFeed, parseApiKey, parseFeedKey, parseRunTicket, problemFromDecision, problemFromError, problemResponse, signRunTicket, signSupportSession, snapshotHeaders, snapshotTag, subjectFromApiKey, subjectFromRunTicket, subjectFromSupportSession, tenantScope, validationProblem, webBotAuthVerifier, webhookSigner, webhookVerifier, wwwAuthenticate };
@@ -4,11 +4,11 @@ import { t as memoryRevocationFeed } from "../revocations-Bhr0aMIC.js";
4
4
  import { c as problemResponse, d as validationProblem, f as wwwAuthenticate, s as problemFromDecision } from "../problem-CTviyH5L.js";
5
5
  import { t as memoryReplayStore } from "../replay-Du1tJjG7.js";
6
6
  import { n as snapshotHeaders, r as snapshotTag, t as cacheLifeFor } from "../snapshot-cache-DZHQ0KF6.js";
7
- import { d as discoverViaSignatureAgent, f as invalidSignatureProblem, m as webBotAuthVerifier, o as evaluationsHandler, p as invalidSignatureResponse, u as InvalidSignatureError } from "../evaluations-DZ2CbV5k.js";
7
+ import { d as discoverViaSignatureAgent, f as invalidSignatureProblem, m as webBotAuthVerifier, o as evaluationsHandler, p as invalidSignatureResponse, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
8
8
  import { n as tenantScope } from "../adapter-context-CRhqyzCk.js";
9
- import { t as createPermDock } from "../create-DnrmLnLW.js";
10
- import { a as generateFeedKey, c as parseApiKey, i as generateApiKey, l as parseFeedKey, n as subjectFromSupportSession, o as hashApiKey, r as apiKeyVerifier, s as memoryCredentialStore, t as signSupportSession, u as subjectFromApiKey } from "../server-DqCT4CgZ.js";
9
+ import { t as createPermDock } from "../create-DCF2SvoT.js";
10
+ import { a as generateFeedKey, c as parseApiKey, i as generateApiKey, l as parseFeedKey, n as subjectFromSupportSession, o as hashApiKey, r as apiKeyVerifier, s as memoryCredentialStore, t as signSupportSession, u as subjectFromApiKey } from "../server-C3WXAHZj.js";
11
11
  import { n as signRunTicket, r as subjectFromRunTicket, t as parseRunTicket } from "../run-ticket-sxFI6LAk.js";
12
- import { t as problemFromError } from "../map-error-TCAdw-eW.js";
12
+ import { t as problemFromError } from "../map-error-Dr70oA_3.js";
13
13
  import { n as webhookVerifier, t as webhookSigner } from "../standard-webhooks-DgFFD-Ga.js";
14
14
  export { InvalidSignatureError, PROBLEM_BASE, PermDockApprovalRequiredError, PermDockDeniedError, PermDockRevokedError, PermDockValidationError, apiKeyVerifier, cacheLifeFor, createPermDock, discoverViaSignatureAgent, evaluationsHandler, generateApiKey, generateFeedKey, hashApiKey, invalidSignatureProblem, invalidSignatureResponse, memoryCredentialStore, memoryReplayStore, memoryRevocationFeed, parseApiKey, parseFeedKey, parseRunTicket, problemFromDecision, problemFromError, problemResponse, signRunTicket, signSupportSession, snapshotHeaders, snapshotTag, subjectFromApiKey, subjectFromRunTicket, subjectFromSupportSession, tenantScope, validationProblem, webBotAuthVerifier, webhookSigner, webhookVerifier, wwwAuthenticate };
@@ -7,7 +7,7 @@ import { t as bytesToBase64Url } from "./sha256-D9ihqmvd.js";
7
7
  import { n as parseSupportSession } from "./support-session-C6xJQYut.js";
8
8
  import { t as anonymousSubject } from "./subject-BGoM5o8B.js";
9
9
  import { c as credentialEvent } from "./sink-BEZSlMS_.js";
10
- import { i as credentialTenant, n as credentialPolicyViolation, o as isFeedId, r as credentialSubject, s as parseCredential } from "./credential-DM2um3ha.js";
10
+ import { i as credentialTenant, n as credentialPolicyViolation, o as isFeedId, r as credentialSubject, s as parseCredential } from "./credential-BcoiejpY.js";
11
11
  //#region src/server/credentials.ts
12
12
  const PREFIX = "pdk_";
13
13
  const ID = /^[\w-]{1,128}$/u;
@@ -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 { Nn as Decision, Rt as Instant, Vt as Snapshot, ar as Subject, j as PolicyVocabulary, qn as Actor, tr as JsonWebKeyLike } from "./policy-types-n0uRTsW8.js";
2
+ import { w as Permission } from "./vocabulary-CN8H_9UF.js";
3
+ import { r as PermDock, s as SnapshotOptions } from "./permdock-SV8ZINYT.js";
4
+ import { m as ApprovalStore } from "./types-BdtSDbBO.js";
5
+ import { a as ProblemDetails, t as ApprovalHint } from "./errors-DH5QEGXh.js";
6
+ import { t as InstanceOptions } from "./instance-options-BsVpyGIk.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-C5jC6sKI.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-_WhUP7ud.js";
11
+ import { i as evaluationsHandler } from "./evaluations-C_1vdSZc.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> = {
@@ -285,7 +285,8 @@ const CUSTOM_ROLES = {
285
285
  trustedReplace: "permdock_trusted_replace_custom_role_grants",
286
286
  trustedRename: "permdock_trusted_rename_custom_role_grants",
287
287
  trustedRemove: "permdock_trusted_delete_custom_role_grants",
288
- cascade: "permdock_cascade_custom_role"
288
+ cascade: "permdock_cascade_custom_role",
289
+ shared: "permdock_is_shared_role"
289
290
  };
290
291
  /** The function `rls.roles` adds. The name is part of the SQL contract. */
291
292
  const GLOBAL_ROLES = { replace: "permdock_replace_global_roles" };
@@ -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 { 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-n0uRTsW8.js";
2
+ import { V as AppData } from "./vocabulary-CN8H_9UF.js";
3
+ import { u as OperationRisk } from "./operations-X0VM7F3m.js";
4
+ import { t as Automation } from "./automation-BNM3TtDo.js";
5
5
  //#region src/core/sink.d.ts
6
6
  /**
7
7
  * The closed list of CloudEvents `type` values, `com.permdock.<family>` or
@@ -4,7 +4,7 @@ import { n as isForbiddenKey } from "./paths-DXSHAMIa.js";
4
4
  import { c as isConditionRef, i as resolveConditionRef } from "./refs-K6eWUJ0H.js";
5
5
  import { l as isRfc3339, m as rfc3339, p as nowSeconds } from "./time-DkWjdL98.js";
6
6
  import { d as scopeList } from "./scopes-CUPSjo9q.js";
7
- import { _ as listPlans, v as listRoles } from "./grantee-Cn1HyUsI.js";
7
+ import { _ as listPlans, v as listRoles } from "./grantee-hxrUsbpM.js";
8
8
  import { i as wireValidity } from "./validity-CZ7-y0Cj.js";
9
9
  import { m as tenantsOf } from "./tenancy-DN2QAx9z.js";
10
10
  import { n as toWireDelegation } from "./wire-delegation-Cv3W2eaM.js";
@@ -1,4 +1,4 @@
1
- import { Rt as Instant, Vt as Snapshot } from "./policy-types-DzwivBgR.js";
1
+ import { Rt as Instant, Vt as Snapshot } from "./policy-types-n0uRTsW8.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,10 @@
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 { Mn as ApprovalRequiredDecision, Nn as Decision, Vt as Snapshot, dt as TokenVerifier, nr as Membership, zn as GrantedDecision } from "../policy-types-n0uRTsW8.js";
2
+ import { r as Role, w as Permission } from "../vocabulary-CN8H_9UF.js";
3
+ import { n as requiredPlans } from "../problem-details-B45V5d2b.js";
4
+ import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-B5qgDvEW.js";
5
5
  import { t as PermissionBoundaryState } from "../boundary-BmHxVH1J.js";
6
6
  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";
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-B3_ooZgZ.js";
8
8
  import { Accessor, Accessor as Accessor$1, JSX } from "solid-js";
9
9
  //#region src/solid/types.d.ts
10
10
  /** Structural `JSX.Element`: text, a DOM node or a list of children. */
@@ -3,8 +3,8 @@ import { r as requiredPlans } from "../problem-details-cn5X30gZ.js";
3
3
  import { t as describe } from "../describe-BybMRY7A.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";
6
+ import { i as isPromiseLike } from "../store-options-u0ycEe8s.js";
7
+ import { n as switchTenant, t as providerStore } from "../provider-store-DM6DNcta.js";
8
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";
9
9
  import { ErrorBoundary, createComponent, createComputed, createContext, createMemo, createSignal, getOwner, on, onCleanup, useContext } from "solid-js";
10
10
  //#region src/solid/context.ts
@@ -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 { T as Policy, Vt as Snapshot, j as PolicyVocabulary, rr as Principal } from "../policy-types-n0uRTsW8.js";
2
+ import { w as Permission } from "../vocabulary-CN8H_9UF.js";
3
+ import { a as OperationInput, t as Operation } from "../operations-X0VM7F3m.js";
4
+ import { r as PermDock } from "../permdock-SV8ZINYT.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-CKQiCnON.js";
6
+ import { a as ProtectTarget, n as FetchAdapterOptions, t as ContextReader } from "../fetch-adapter-Dw0MTS3D.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 { d as discoverViaSignatureAgent, m as webBotAuthVerifier, u as InvalidSignatureError } from "../evaluations-beAooV0n.js";
2
+ import { i as decorate } from "../bind-CAvgUuKs.js";
3
+ import { n as guardedRoute, t as fetchAdapter } from "../fetch-adapter-DD_gfmrC.js";
4
4
  //#region src/solid-start/create.ts
5
5
  /**
6
6
  * `event.locals`. Its type, `App.RequestEventLocals`, is declared by
@@ -1,5 +1,5 @@
1
- import { et as MembershipSource } from "./policy-types-DzwivBgR.js";
2
- import { n as RoleThrough, y as SupabaseSuspension } from "./types-CdlxsYQh.js";
1
+ import { et as MembershipSource } from "./policy-types-n0uRTsW8.js";
2
+ import { n as RoleThrough, y as SupabaseSuspension } from "./types-BzzaHxt3.js";
3
3
  import { o as SupabaseManifestMembership } from "./manifest-mx5ghSFM.js";
4
4
  //#region src/supabase/roles.d.ts
5
5
  /** A roles table a role column references, by `schema.table`. */
@@ -1,7 +1,7 @@
1
1
  import { n as isReadonlyArray, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
3
  import { n as isForbiddenKey, r as ownGet } from "./paths-DXSHAMIa.js";
4
- import { f as normalizeApproval, g as assertSqlFunctionName, h as assertSqlFunctionArg, m as assertPortableTwin, p as normalizeWhere, u as assertApprovalRelations } from "./role-builder-CXbis5-X.js";
4
+ import { f as normalizeApproval, g as assertSqlFunctionName, h as assertSqlFunctionArg, m as assertPortableTwin, p as normalizeWhere, u as assertApprovalRelations } from "./role-builder-uWQZ4v84.js";
5
5
  import { n as PermDockDeniedError } from "./errors-BKy0EfhN.js";
6
6
  import { o as sameId } from "./expiry-D4_YKRKD.js";
7
7
  import { n as internalsOf } from "./internals-Dk8A8fX3.js";
@@ -10,19 +10,19 @@ import { n as isThenable$1 } from "./thenable-yD7SabqG.js";
10
10
  import { c as isEdgeRelation, m as restrictedStops, o as groupEntries, s as isComputedRelation, u as isPrincipalRelation } from "./resource-relations-D_jw0BFx.js";
11
11
  import { a as durationOf, g as secondsOf, m as rfc3339, p as nowSeconds } from "./time-DkWjdL98.js";
12
12
  import { d as scopeList, l as scopeChain, m as tenantOf, o as resolveScope, u as scopeIdOf } from "./scopes-CUPSjo9q.js";
13
- import { u as evaluateCondition } from "./delegation-DaXVdDhM.js";
14
- import { _ as listPlans, a as authenticated, m as findRole, o as flattenGrantee } from "./grantee-Cn1HyUsI.js";
13
+ import { u as evaluateCondition } from "./delegation-j6-rc37o.js";
14
+ import { _ as listPlans, a as authenticated, m as findRole, o as flattenGrantee } from "./grantee-hxrUsbpM.js";
15
15
  import { m as tenantsOf, r as isMembershipExpired } from "./tenancy-DN2QAx9z.js";
16
- import { o as levelNames, r as grantList, t as declaredRoleNames } from "./policy-DLZJ5gAp.js";
17
- import { r as isPortableCondition } from "./hosted-BZIAYvon.js";
16
+ import { o as levelNames, r as grantList, t as declaredRoleNames } from "./policy-DbM5YYtV.js";
17
+ import { r as isPortableCondition } from "./hosted-B46-5LYE.js";
18
18
  import { n as OPERATION_RISKS, r as isOperationRisk } from "./permissions-B-wCP5ZC.js";
19
- import { b as tenantCustomRoles, f as customRoleId, l as ceilingGrants, p as customRoleScope, v as resolveCustomRole } from "./evaluate-_R8QkWaf.js";
20
- import { d as rankRoles, f as usesAssigns, i as collectSnapshotGrants, n as snapshotScopes, t as snapshotOf, u as bindingOf } from "./instance-snapshot-Cxq4ygFc.js";
19
+ import { S as tenantCustomRoles, b as resolveCustomRole, f as customRoleId, l as ceilingGrants, m as customRoleScope, p as customRoleOf } from "./evaluate-CNClBvcj.js";
20
+ import { d as rankRoles, f as usesAssigns, i as collectSnapshotGrants, n as snapshotScopes, t as snapshotOf, u as bindingOf } from "./instance-snapshot-BOEhcqIF.js";
21
21
  import { n as relationId } from "./relations-BnCWnJGI.js";
22
- import { r as snapshotGrant, t as buildSnapshot } from "./snapshot-CXUWfsNy.js";
22
+ import { r as snapshotGrant, t as buildSnapshot } from "./snapshot-B7DkYg6g.js";
23
23
  import { n as LOCAL_CUSTOM_ROLE } from "./parse-local-manifest-CVSs6J9I.js";
24
- import { r as resolveSubject, s as APP } from "./permdock-B9JxkBwC.js";
25
- import { i as memoryApprovalStore } from "./store-4u_hxjWa.js";
24
+ import { r as resolveSubject, s as APP } from "./permdock-BrAscV28.js";
25
+ import { i as memoryApprovalStore } from "./store-BDutJkDL.js";
26
26
  import { n as wrapPermDock } from "./wrap-gX61EtpB.js";
27
27
  //#region src/conditions/sql-function.ts
28
28
  function sqlFunction(name, options) {
@@ -89,7 +89,12 @@ function memorySnapshotSource(initial) {
89
89
  function memoryCustomRoleSource(customRoles) {
90
90
  const byTenant = /* @__PURE__ */ new Map();
91
91
  const global = [];
92
+ const shared = [];
92
93
  for (const role of customRoles) {
94
+ if (role.shared === true) {
95
+ shared.push(role);
96
+ continue;
97
+ }
93
98
  if (role.tenant === void 0) {
94
99
  global.push(role);
95
100
  continue;
@@ -104,6 +109,9 @@ function memoryCustomRoleSource(customRoles) {
104
109
  },
105
110
  globalRoles() {
106
111
  return [...global];
112
+ },
113
+ sharedRoles() {
114
+ return [...shared];
107
115
  }
108
116
  };
109
117
  }
@@ -1460,8 +1468,8 @@ function ofTenant(tenant, roles) {
1460
1468
  /**
1461
1469
  * A `CustomRoleSource` over a reader that returns every custom role of a tenant.
1462
1470
  * It keeps only the roles of the requested tenant. With `read: 'held'` it
1463
- * skips a tenant's read, and `globalRoles`, when the subject holds only
1464
- * declared roles there.
1471
+ * skips a tenant's read, and `globalRoles` and `sharedRoles`, when the
1472
+ * subject holds only declared roles there.
1465
1473
  */
1466
1474
  function customRoleSource(reader, options = {}) {
1467
1475
  const declared = options.read === "held" ? declaredRoleNames(options.policy) : void 0;
@@ -1472,7 +1480,8 @@ function customRoleSource(reader, options = {}) {
1472
1480
  return isThenable$1(roles) ? roles.then((list) => ofTenant(tenant, list)) : ofTenant(tenant, roles);
1473
1481
  },
1474
1482
  ...reader.assignable === void 0 ? {} : { assignable: (tenant) => reader.assignable?.(tenant) ?? [] },
1475
- ...reader.globalRoles === void 0 ? {} : { globalRoles: (context) => declared !== void 0 && context?.held.every((name) => declared.has(name)) === true ? [] : reader.globalRoles?.() ?? [] }
1483
+ ...reader.globalRoles === void 0 ? {} : { globalRoles: (context) => declared !== void 0 && context?.held.every((name) => declared.has(name)) === true ? [] : reader.globalRoles?.() ?? [] },
1484
+ ...reader.sharedRoles === void 0 ? {} : { sharedRoles: (context) => declared !== void 0 && context?.held.every((name) => declared.has(name)) === true ? [] : reader.sharedRoles?.() ?? [] }
1476
1485
  });
1477
1486
  }
1478
1487
  //#endregion
@@ -1503,7 +1512,7 @@ function snapshotFor(policy, user, options = {}) {
1503
1512
  if (isThenable$1(resolved)) throw new TypeError("PermDock: snapshotFor() needs synchronous subject and context mappers. Resolve async data first and pass it as a Subject, or use (await getPermDock(...)).snapshot().");
1504
1513
  const subject = withPlans(resolved, options.plans);
1505
1514
  const tenants = new Set(tenantsOf(subject.principal, scopeList(policy.scopes)));
1506
- const customRoles = (options.customRoles ?? []).filter((item) => item.scope === "global" || item.tenant !== void 0 && tenants.has(item.tenant));
1515
+ const customRoles = (options.customRoles ?? []).filter((item) => item.scope === "global" || item.shared === true && tenants.size > 0 || item.tenant !== void 0 && tenants.has(item.tenant));
1507
1516
  const names = options.assignable;
1508
1517
  const assignable = names === void 0 ? void 0 : new Map([...tenants].map((tenant) => [tenant, Object.hasOwn(names, tenant) ? names[tenant] ?? [] : []]));
1509
1518
  return snapshotOf(policy, subject, compact({
@@ -1767,7 +1776,7 @@ function decideRoleChangeWith(policy, principal, scopes, change, customRoles, au
1767
1776
  return done(null);
1768
1777
  }
1769
1778
  const found = tenant;
1770
- custom = named.find((role) => sameId(role.tenant, found) && customRoleScope(role, scopes) === scope && sameId(customRoleId(role) ?? id, id));
1779
+ custom = named.find((role) => customRoleOf(role, found) && customRoleScope(role, scopes) === scope && sameId(customRoleId(role) ?? id, id));
1771
1780
  }
1772
1781
  if (!declared && custom === void 0) {
1773
1782
  deny("unknown-role");
@@ -1,4 +1,4 @@
1
- import { A as SsfSubject, C as SsfEventName, D as SsfReceiver, E as SsfPermDockOptions, M as SsfTransmitterConfiguration, N as SsfVerification, O as SsfStreamConfiguration, S as SsfEventListener, T as SsfPermDock, _ as SetSubject, a as PollHandle, b as SsfEventHandler, c as PushSetOptions, d as SetDelivery, f as SetDeliveryFailureCause, g as SetQueue, h as SetPollHandlerOptions, i as CaepReason, j as SsfSubjectResolver, k as SsfStreamStatus, l as ReplayStore, m as SetEvent, n as CaepEventName, o as PollOptions, p as SetError, r as CaepInitiatingEntity, s as PollResult, t as CaepCommon, u as RiscEventName, v as SignSetOptions, w as SsfOnEvent, x as SsfEventInput, y as SsfAuditEvent } from "../types-DiQjupG2.js";
2
- import { t as memoryReplayStore } from "../replay-D7iKcLFe.js";
3
- import { _ as setPollHandler, a as CaepTokenClaimsChange, c as RiscEvents, d as caepEvents, f as pushSet, g as memorySetQueue, h as streamVerificationEvent, i as CaepEvents, l as SSF_POLL_DELIVERY, m as signSet, n as CaepCredentialChange, o as RiscAccountDisabled, p as riscEvents, r as CaepDeviceComplianceChange, s as RiscCredentialCompromise, t as CaepAssuranceLevelChange, u as SSF_PUSH_DELIVERY, v as createPermDock } from "../index-D8EovfsP.js";
1
+ import { A as SsfSubject, C as SsfEventName, D as SsfReceiver, E as SsfPermDockOptions, M as SsfTransmitterConfiguration, N as SsfVerification, O as SsfStreamConfiguration, S as SsfEventListener, T as SsfPermDock, _ as SetSubject, a as PollHandle, b as SsfEventHandler, c as PushSetOptions, d as SetDelivery, f as SetDeliveryFailureCause, g as SetQueue, h as SetPollHandlerOptions, i as CaepReason, j as SsfSubjectResolver, k as SsfStreamStatus, l as ReplayStore, m as SetEvent, n as CaepEventName, o as PollOptions, p as SetError, r as CaepInitiatingEntity, s as PollResult, t as CaepCommon, u as RiscEventName, v as SignSetOptions, w as SsfOnEvent, x as SsfEventInput, y as SsfAuditEvent } from "../types-C791HFu9.js";
2
+ import { t as memoryReplayStore } from "../replay-Bkm-Ne4l.js";
3
+ import { _ as setPollHandler, a as CaepTokenClaimsChange, c as RiscEvents, d as caepEvents, f as pushSet, g as memorySetQueue, h as streamVerificationEvent, i as CaepEvents, l as SSF_POLL_DELIVERY, m as signSet, n as CaepCredentialChange, o as RiscAccountDisabled, p as riscEvents, r as CaepDeviceComplianceChange, s as RiscCredentialCompromise, t as CaepAssuranceLevelChange, u as SSF_PUSH_DELIVERY, v as createPermDock } from "../index-Cp_ilKi1.js";
4
4
  export { type CaepAssuranceLevelChange, type CaepCommon, type CaepCredentialChange, type CaepDeviceComplianceChange, type CaepEventName, type CaepEvents, type CaepInitiatingEntity, type CaepReason, type CaepTokenClaimsChange, type PollHandle, type PollOptions, type PollResult, type PushSetOptions, type ReplayStore, type RiscAccountDisabled, type RiscCredentialCompromise, type RiscEventName, type RiscEvents, SSF_POLL_DELIVERY, SSF_PUSH_DELIVERY, type SetDelivery, type SetDeliveryFailureCause, type SetError, type SetEvent, type SetPollHandlerOptions, type SetQueue, type SetSubject, type SignSetOptions, type SsfAuditEvent, type SsfEventHandler, type SsfEventInput, type SsfEventListener, type SsfEventName, type SsfOnEvent, type SsfPermDock, type SsfPermDockOptions, type SsfReceiver, type SsfStreamConfiguration, type SsfStreamStatus, type SsfSubject, type SsfSubjectResolver, type SsfTransmitterConfiguration, type SsfVerification, caepEvents, createPermDock, memoryReplayStore, memorySetQueue, pushSet, riscEvents, setPollHandler, signSet, streamVerificationEvent };
package/dist/ssf/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { r as isRecord, t as compact } from "../compact-CAf557ZB.js";
2
2
  import { o as epochSeconds } from "../time-DkWjdL98.js";
3
3
  import { n as readBodyText } from "../body-text-QcXok_SI.js";
4
- import { t as cancelApprovals } from "../helpers-DTcZOzhF.js";
4
+ import { t as cancelApprovals } from "../helpers-CBYVMjwh.js";
5
5
  import { i as issuerFromDiscovery, t as joseTokenVerifier } from "../verifier-DHuh-okk.js";
6
6
  import { t as memoryReplayStore } from "../replay-Du1tJjG7.js";
7
7
  import { t as timeoutSignal } from "../timeout-D51niuQP.js";
@@ -1,5 +1,5 @@
1
- import { Rt as Instant, tr as JsonWebKeyLike } from "./policy-types-DzwivBgR.js";
2
- import { l as ReplayStore } from "./types-DiQjupG2.js";
1
+ import { Rt as Instant, tr as JsonWebKeyLike } from "./policy-types-n0uRTsW8.js";
2
+ import { l as ReplayStore } from "./types-C791HFu9.js";
3
3
  //#region src/server/standard-webhooks.d.ts
4
4
  /** The three Standard Webhooks headers a delivery carries. */
5
5
  type WebhookHeaders = {
@@ -3,7 +3,7 @@ import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
3
  import { i as flattenApprovers } from "./approvers-CqPOLD-o.js";
4
4
  import { a as durationOf, i as dateAt } from "./time-DkWjdL98.js";
5
5
  import { s as rootMembershipId } from "./scopes-CUPSjo9q.js";
6
- import { n as matchGrantee } from "./grantee-match-DHArqY82.js";
6
+ import { n as matchGrantee } from "./grantee-match-DbENBHLB.js";
7
7
  import { a as escalationOpenAt, i as approverRelationKey, o as stageEscalationOpenAt, r as approvalQuorum, s as ApprovalError } from "./types-DqzsnlSA.js";
8
8
  //#region src/approvals/page.ts
9
9
  const DEFAULT_PAGE_SIZE = 50;
@@ -1,11 +1,11 @@
1
1
  import { t as compact } from "./compact-CAf557ZB.js";
2
2
  import { g as secondsOf } from "./time-DkWjdL98.js";
3
- import { c as rowIdOf } from "./delegation-DaXVdDhM.js";
3
+ import { c as rowIdOf } from "./delegation-j6-rc37o.js";
4
4
  import { c as nowSeconds } from "./tenancy-DN2QAx9z.js";
5
5
  import { n as payloadDigest } from "./token-BLZcjQgt.js";
6
- import { n as parseSnapshot } from "./snapshot-CXUWfsNy.js";
7
- import { s as snapshotClaim } from "./where-scope-Dv-WTP-w.js";
8
- import { n as fromSnapshot, t as emptySnapshot } from "./from-snapshot-D2lZt4Dd.js";
6
+ import { n as parseSnapshot } from "./snapshot-B7DkYg6g.js";
7
+ import { s as snapshotClaim } from "./where-scope-C9vfEphl.js";
8
+ import { n as fromSnapshot, t as emptySnapshot } from "./from-snapshot-CTCMsFZk.js";
9
9
  import { t as timeoutSignal } from "./timeout-D51niuQP.js";
10
10
  //#region src/client/source.ts
11
11
  /** A compact JWS: three non-empty dot-separated parts. */
@@ -1,8 +1,8 @@
1
- import { Nn as Decision, nr as Membership } from "./policy-types-DzwivBgR.js";
2
- import { r as Role, w as Permission } from "./vocabulary-D6lPdb4Z.js";
3
- import { r as DescribeOptions, t as DecisionDescription } from "./describe-BZUsixiL.js";
4
- import { a as FilterResult, c as PermissionSet, d as RolesOptions, f as SubjectView, l as PermissionState, p as TenantView, r as ClientPermDock, t as ApprovalHandle } from "./types-BNORmDM8.js";
5
- import { n as SveltePermDockOptions } from "./types-fbZ7JEXr.js";
1
+ import { Nn as Decision, 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, p as TenantView, r as ClientPermDock, t as ApprovalHandle } from "./types-B3_ooZgZ.js";
5
+ import { n as SveltePermDockOptions } from "./types-CVZSNocA.js";
6
6
  import { Readable } from "svelte/store";
7
7
  //#region src/svelte/stores.d.ts
8
8
  declare function setPermDock(options: SveltePermDockOptions): ClientPermDock;
@@ -1,5 +1,5 @@
1
1
  import { a as livePermDock, c as rolesView, d as subjectView, f as tenantView, n as describeWith, o as permissionSet, r as filterResult, t as approvalHandle } from "./views-DTIIO-oQ.js";
2
- import { n as getUi, r as providePermDock, t as getStore } from "./context-bbFHR-0D.js";
2
+ import { n as getUi, r as providePermDock, t as getStore } from "./context-B_u3_bDJ.js";
3
3
  import { readable, toStore } from "svelte/store";
4
4
  //#region src/svelte/stores.ts
5
5
  function fromStore(store, compute) {
@@ -1,5 +1,5 @@
1
- import { w as Permission } from "./vocabulary-D6lPdb4Z.js";
2
- import { o as ProtectOptions } from "./server-types-BLd4MnBX.js";
1
+ import { w as Permission } from "./vocabulary-CN8H_9UF.js";
2
+ import { o as ProtectOptions } from "./server-types-CKQiCnON.js";
3
3
  //#region src/server/stream.d.ts
4
4
  type StreamProtectOptions = ProtectOptions & {
5
5
  /**
@@ -1,9 +1,9 @@
1
- import { Rt as Instant, ir as Subject } from "../policy-types-DzwivBgR.js";
2
- import { a as ApprovalDelegationSource, m as ApprovalStore, u as ApprovalRequest } from "../types-CCpc2Dcv.js";
3
- import { a as SupabaseRpcClient, c as readSubjectRecord, i as SupabaseRpcCaller, n as PostgrestSourcesOptions, o as SupabaseRpcResult, r as SubjectRecord, s as postgrestSources, t as PostgrestSources } from "../postgrest-NUqZT-RB.js";
4
- import { C as SupabaseClaimsSchema, E as supabaseClaims, S as SupabaseClaimsOptions, T as SupabasePermDockClaims, _ as SupabaseSuspendedMembership, a as SupabaseActorResult, b as SupabaseActClaim, c as SupabaseMembershipTable, d as SupabaseRealtime, f as SupabaseRlsConfig, g as SupabaseSubjectOptions, h as SupabaseStorage, i as SupabaseActor, l as SupabasePermissionRef, m as SupabaseSessionLike, n as RoleThrough, o as SupabaseDelegation, p as SupabaseRlsOptions, r as SupabaseActiveRow, s as SupabaseInclude, t as AuthorizeSqlOptions, u as SupabasePrincipal, v as SupabaseSuspendedScope, w as SupabaseMembershipClaim, x as SupabaseClaims, y as SupabaseSuspension } from "../types-CdlxsYQh.js";
1
+ import { Rt as Instant, ar as Subject } from "../policy-types-n0uRTsW8.js";
2
+ import { a as ApprovalDelegationSource, m as ApprovalStore, u as ApprovalRequest } from "../types-BdtSDbBO.js";
3
+ import { a as SupabaseRpcClient, c as readSubjectRecord, i as SupabaseRpcCaller, n as PostgrestSourcesOptions, o as SupabaseRpcResult, r as SubjectRecord, s as postgrestSources, t as PostgrestSources } from "../postgrest-CEgRbefE.js";
4
+ import { C as SupabaseClaimsSchema, E as supabaseClaims, S as SupabaseClaimsOptions, T as SupabasePermDockClaims, _ as SupabaseSuspendedMembership, a as SupabaseActorResult, b as SupabaseActClaim, c as SupabaseMembershipTable, d as SupabaseRealtime, f as SupabaseRlsConfig, g as SupabaseSubjectOptions, h as SupabaseStorage, i as SupabaseActor, l as SupabasePermissionRef, m as SupabaseSessionLike, n as RoleThrough, o as SupabaseDelegation, p as SupabaseRlsOptions, r as SupabaseActiveRow, s as SupabaseInclude, t as AuthorizeSqlOptions, u as SupabasePrincipal, v as SupabaseSuspendedScope, w as SupabaseMembershipClaim, x as SupabaseClaims, y as SupabaseSuspension } from "../types-BzzaHxt3.js";
5
5
  import { a as SupabaseManifestHelper, c as SupabaseManifestRls, d as SupabaseManifestValue, f as parseSupabaseManifest, i as SupabaseManifestColumn, l as SupabaseManifestRole, n as SupabaseHookManifest, o as SupabaseManifestMembership, r as SupabaseManifestActiveRow, s as SupabaseManifestRequires, t as SupabaseHookClaim, u as SupabaseManifestThrough } from "../manifest-mx5ghSFM.js";
6
- import { a as MembershipTableOptions, c as SupabasePostgres, d as supabasePostgresQuery, f as tableMembershipSource, i as MembershipSql, l as authzVersion, n as MembershipHolders, o as SqlMembershipSource, r as MembershipJunctionOptions, s as SqlQuery, t as AUTHZ_VERSION_TABLE, u as junctionMembershipSource } from "../sources-BV9j0DeZ.js";
6
+ import { a as MembershipTableOptions, c as SupabasePostgres, d as supabasePostgresQuery, f as tableMembershipSource, i as MembershipSql, l as authzVersion, n as MembershipHolders, o as SqlMembershipSource, r as MembershipJunctionOptions, s as SqlQuery, t as AUTHZ_VERSION_TABLE, u as junctionMembershipSource } from "../sources-Xc4zkszI.js";
7
7
  import { n as supabaseTenantClaim, t as supabaseMembershipsBudget } from "../budget-JqcRqyhK.js";
8
8
  //#region src/supabase/capability.d.ts
9
9
  type ExchangeCapabilityOptions = {