permdock 0.16.0 → 0.18.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 (384) hide show
  1. package/dist/a2a/index.d.ts +4 -4
  2. package/dist/a2a/index.js +3 -3
  3. package/dist/{adapter-context-CIQpQxbE.js → adapter-context-OHikyRqV.js} +1 -1
  4. package/dist/{adoption-scan-C2BCiUEG.js → adoption-scan-CxExBYSJ.js} +1 -1
  5. package/dist/agent/index.d.ts +2 -2
  6. package/dist/agent/index.js +1 -1
  7. package/dist/ai-sdk/index.d.ts +3 -3
  8. package/dist/ai-sdk/index.js +3 -3
  9. package/dist/approval-normalize-CUjgSsOl.js +189 -0
  10. package/dist/approval-policies-oNnckT12.d.ts +138 -0
  11. package/dist/{approval-prompt-3BqWczTt.d.ts → approval-prompt-Bg7gDSqd.d.ts} +1 -1
  12. package/dist/approvals/index.d.ts +5 -4
  13. package/dist/approvals/index.js +7 -6
  14. package/dist/{approvals-DnIBTuXE.js → approvals-DGId_hgJ.js} +3 -3
  15. package/dist/{approvers-B4r0N_Uz.js → approvers-BaNwKYgd.js} +20 -1
  16. package/dist/{arazzo-ClYz2Z0W.js → arazzo--riLuGY0.js} +4 -4
  17. package/dist/{arazzo-CHoYnQXO.js → arazzo-CEDbb-uM.js} +2 -2
  18. package/dist/{args-0FrVs5EH.js → args-iafbHiXn.js} +2 -5
  19. package/dist/astro/index.d.ts +4 -4
  20. package/dist/astro/index.js +2 -2
  21. package/dist/{audience-DTjR8xet.js → audience-B4YR9UpV.js} +1 -1
  22. package/dist/{auth--yPyZNgr.js → auth-j3Eu-j4h.js} +1 -1
  23. package/dist/authz-topic-Dbc-HDOS.js +15 -0
  24. package/dist/authzen/index.d.ts +5 -5
  25. package/dist/authzen/index.js +2 -2
  26. package/dist/{automation-C6Jg75xq.d.ts → automation-Bfa_wD1h.d.ts} +1 -1
  27. package/dist/better-auth/index.d.ts +1 -1
  28. package/dist/better-auth/index.js +10 -8
  29. package/dist/better-supabase/index.d.ts +335 -38
  30. package/dist/better-supabase/index.js +778 -117
  31. package/dist/{better-supabase-Dirf_8Ec.js → better-supabase-BJtQ-kNf.js} +26 -10
  32. package/dist/{bind-BNQA9JK9.js → bind-B4pMH9bm.js} +6 -6
  33. package/dist/{bind-YYjvfpB9.d.ts → bind-DR6ku3A9.d.ts} +7 -7
  34. package/dist/{budget-BELja5A9.js → budget-BBCPDOGP.js} +1 -1
  35. package/dist/{budget-hYsPz_yE.d.ts → budget-CNLsV2SL.d.ts} +1 -1
  36. package/dist/{build-instance-BWXqwQYU.js → build-instance-BFMFQdE_.js} +3 -2
  37. package/dist/{capability-Di9tiUvi.d.ts → capability-BZ_veK9o.d.ts} +1 -1
  38. package/dist/{capability-BqX94r07.js → capability-zN6T9fxe.js} +2 -3
  39. package/dist/{casbin-D_rVQ31U.js → casbin-DCQHkkyj.js} +2 -2
  40. package/dist/{casbin-C9EvElBb.js → casbin-bKC1FpEx.js} +2 -2
  41. package/dist/{casl-C4OINZHI.js → casl-CjBVJj8R.js} +2 -2
  42. package/dist/{casl-CHHoCldP.js → casl-CkBssiB1.js} +1 -1
  43. package/dist/catalog/index.d.ts +5 -5
  44. package/dist/catalog/index.js +7 -7
  45. package/dist/catalog-Caqhbdix.js +1 -0
  46. package/dist/{catalog-CGlSwU6j.js → catalog-D1fw8qif.js} +5 -5
  47. package/dist/{catalog-doc-DjMKzJp9.js → catalog-doc-C4DGfJCO.js} +3 -3
  48. package/dist/{catalog-operations-DeHTrJSV.js → catalog-operations-BD22drQf.js} +4 -4
  49. package/dist/{catalog-amPDr0JQ.js → catalog-zzNuR3sY.js} +3 -3
  50. package/dist/{challenge-DImNcR7B.js → challenge-B2O2OLEk.js} +2 -2
  51. package/dist/chat/index.d.ts +1 -1
  52. package/dist/chat/index.js +2 -2
  53. package/dist/chat-sdk/index.d.ts +3 -3
  54. package/dist/{checks-CGkP3Z7A.js → checks-fyDOhcz0.js} +33 -1
  55. package/dist/claude-agent/index.d.ts +3 -3
  56. package/dist/claude-agent/index.js +2 -2
  57. package/dist/clerk/index.d.ts +2 -2
  58. package/dist/clerk/index.js +10 -7
  59. package/dist/cli/bin.js +1 -1
  60. package/dist/cli/index.d.ts +5 -5
  61. package/dist/cli/index.js +3 -3
  62. package/dist/client-CH7vzSAY.d.ts +32 -0
  63. package/dist/cloud/index.d.ts +8 -8
  64. package/dist/cloud/index.js +1 -1
  65. package/dist/{cloud-DdaJ7ILM.js → cloud-C0vXBmLG.js} +4 -4
  66. package/dist/{codemod-B1USJS7a.js → codemod-C-L0w-u7.js} +3 -3
  67. package/dist/{codemod-ammy6wv4.js → codemod-eYI1FbeJ.js} +395 -8
  68. package/dist/{collect-DnXL4B8c.js → collect-CU85z6Ta.js} +4 -4
  69. package/dist/{collect-WCl8cJQV.js → collect-D878zLDP.js} +4 -4
  70. package/dist/collect-KCtOigxx.js +1 -0
  71. package/dist/compile/index.d.ts +1 -1
  72. package/dist/compile/index.js +1 -1
  73. package/dist/{compile-EzEMB-7v.js → compile-B_oJqmIg.js} +4 -4
  74. package/dist/{compile-BEklRUYo.d.ts → compile-DBm0ub4p.d.ts} +2 -2
  75. package/dist/{completion--Y4YItFZ.js → completion-Dauc6pVT.js} +3 -3
  76. package/dist/{config-CcLlvEYW.js → config-COHmivz9.js} +4 -4
  77. package/dist/{config-BQ77xMZk.js → config-DWp2PucY.js} +2 -2
  78. package/dist/{config-report-DVMOLJ7F.js → config-report-DKpFm5ID.js} +2 -2
  79. package/dist/{context-BnIzxTNE.js → context-DeammvFl.js} +2 -2
  80. package/dist/convex/index.d.ts +4 -4
  81. package/dist/convex/index.js +3 -3
  82. package/dist/{core-lxoANyai.js → core-B8sLve3z.js} +7 -7
  83. package/dist/{core-CFepFiDP.d.ts → core-D87h2kpR.d.ts} +2 -2
  84. package/dist/{create-BLPKnJKa.js → create-3A7J9KRR.js} +6 -5
  85. package/dist/{create-CDd9c22W.d.ts → create-BrQXL-Wt.d.ts} +6 -6
  86. package/dist/{create-BPUopdfL.d.ts → create-BzwjZuRS.d.ts} +7 -7
  87. package/dist/{create-Coq5fIrq.js → create-C-tm3KIF.js} +5 -5
  88. package/dist/{create-DBvUsgzK.d.ts → create-CtoT1lIQ.d.ts} +4 -4
  89. package/dist/{credential-CyyyvCsL.js → credential-B3Hj4puZ.js} +4 -3
  90. package/dist/{credentials-CdDxp7jN.js → credentials-dkycUsY3.js} +1 -1
  91. package/dist/decision-CaG5_eNJ.js +21 -0
  92. package/dist/{delegation-CDB6_keF.js → delegation-aK4T_5WU.js} +3 -3
  93. package/dist/delivery/index.d.ts +4 -4
  94. package/dist/delivery/index.js +1 -1
  95. package/dist/{denied-text-DHldhVUv.d.ts → denied-text-DlIxt8fh.d.ts} +1 -1
  96. package/dist/{describe-BbFPBSms.d.ts → describe-BKtC_8PG.d.ts} +1 -1
  97. package/dist/{describe-Bb4hGK5d.js → describe-BZAlPHxT.js} +2 -1
  98. package/dist/{diff-DfmYaIhB.js → diff-BnNHqtHj.js} +8 -8
  99. package/dist/{diff-CxtbOi2l.js → diff-CBCzOTWM.js} +2 -2
  100. package/dist/{doctor-D1Xnmy6u.js → doctor-CkYKCuX7.js} +233 -30
  101. package/dist/{doctor-CwYc2lJb.js → doctor-xUpR5rXg.js} +3 -3
  102. package/dist/drizzle/index.d.ts +3 -3
  103. package/dist/drizzle/index.js +1 -1
  104. package/dist/elysia/index.d.ts +4 -4
  105. package/dist/elysia/index.js +3 -3
  106. package/dist/{errors-Vpu6rKHl.js → errors-BhRkoNS7.js} +0 -2
  107. package/dist/{errors-BIM4MFsJ.d.ts → errors-TpzkEKgJ.d.ts} +1 -1
  108. package/dist/{evaluate-BAmf_AQd.js → evaluate-Czbj7thS.js} +18 -15
  109. package/dist/{evaluations-DOWuBpWv.d.ts → evaluations-CisTTURl.d.ts} +3 -3
  110. package/dist/{evaluations-IBceAeKT.js → evaluations-h3KoJAPa.js} +3 -22
  111. package/dist/eve/index.d.ts +4 -4
  112. package/dist/eve/index.js +3 -3
  113. package/dist/express/index.d.ts +4 -4
  114. package/dist/express/index.js +3 -3
  115. package/dist/fastify/index.d.ts +4 -4
  116. package/dist/fastify/index.js +3 -3
  117. package/dist/{fetch-adapter-BIbBAtPZ.d.ts → fetch-adapter-BdmfnbJM.d.ts} +2 -2
  118. package/dist/{fetch-adapter-dPTgJVHd.js → fetch-adapter-DH-NJPbL.js} +2 -2
  119. package/dist/{fields-DI8s3cPl.js → fields-CrjL6A49.js} +3 -3
  120. package/dist/{files-B3AA05f1.js → files-CfiRtQ-m.js} +1 -1
  121. package/dist/{fixtures-Bm4_K1ke.js → fixtures-Cemqurt8.js} +10 -4
  122. package/dist/{flags-DXjoTVbS.js → flags-BlmpmXoY.js} +2 -2
  123. package/dist/{from-snapshot-DCakWRsr.js → from-snapshot-DMlSSo9b.js} +14 -12
  124. package/dist/{gen-DwgCSC6V.js → gen-BEIN-DRM.js} +2 -2
  125. package/dist/{gen-DuAhghDw.js → gen-mf-MRwVr.js} +9 -9
  126. package/dist/{generate-CRVV5V7l.js → generate-BqkZq8Dr.js} +2 -2
  127. package/dist/{grantee-conditions-BrYPe-w0.js → grantee-conditions-DX4K_gGI.js} +1 -1
  128. package/dist/{grantee-match-7RZZvoT_.js → grantee-match-BP-k4vRJ.js} +2 -2
  129. package/dist/h3/index.d.ts +4 -4
  130. package/dist/h3/index.js +3 -3
  131. package/dist/{helpers-DJicaG6f.js → helpers-DmqGy63f.js} +85 -13
  132. package/dist/hono/index.d.ts +4 -4
  133. package/dist/hono/index.js +3 -3
  134. package/dist/{hosted-DVxlLZMe.d.ts → hosted-BFNXwcjd.d.ts} +1 -1
  135. package/dist/{hosted-D0IzESu_.js → hosted-waouw2V-.js} +12 -10
  136. package/dist/{http-DOL33cO0.js → http-DhMWeB_h.js} +1 -1
  137. package/dist/{import-CNBF96hB.js → import-C1XXpG_m.js} +4 -4
  138. package/dist/{import-Dfe2unKO.js → import-DObwEota.js} +3 -3
  139. package/dist/{index-BinlXeU-.d.ts → index-BhnOOnp9.d.ts} +2 -2
  140. package/dist/{index-ymept53A.d.ts → index-CVGio3cH.d.ts} +4 -4
  141. package/dist/{index-DJwEgYzA.d.ts → index-CdMOd-GY.d.ts} +17 -11
  142. package/dist/{index-Cay5-Kvx.d.ts → index-CdUTE6qd.d.ts} +11 -10
  143. package/dist/{index-Dj2qF9VC.d.ts → index-Dfv9Toct.d.ts} +1 -1
  144. package/dist/{index-CV-7DWeD.d.ts → index-rFp6X_QP.d.ts} +4 -4
  145. package/dist/index.d.ts +18 -16
  146. package/dist/index.js +24 -20
  147. package/dist/{init-BUo2G-FI.js → init-CNJ8lLjo.js} +5 -5
  148. package/dist/{init-C6cWP3xW.js → init-DS3PEsCG.js} +5 -5
  149. package/dist/{instance-options-CoHn-0e8.d.ts → instance-options-2sFGSdsf.d.ts} +2 -2
  150. package/dist/{instance-snapshot-DuWf1cT3.js → instance-snapshot-BWa71my8.js} +15 -12
  151. package/dist/jwt/index.d.ts +4 -4
  152. package/dist/jwt/index.js +3 -3
  153. package/dist/{kernel-BD8QuMnv.js → kernel-30Z2zM_d.js} +10 -10
  154. package/dist/kysely/index.d.ts +3 -3
  155. package/dist/kysely/index.js +1 -1
  156. package/dist/{load-DjSU5KXO.js → load-BaEamml-.js} +1 -1
  157. package/dist/load-CjnlPxpL.js +1 -0
  158. package/dist/{login-D1MHOomI.js → login-BgK5Jloo.js} +4 -4
  159. package/dist/{login-DCKE5pVy.js → login-DUVzBLh7.js} +4 -4
  160. package/dist/{manifest-BXTbHNIV.js → manifest-BdzBobNK.js} +1 -1
  161. package/dist/{manifest-schema-DQkBK2Mr.js → manifest-schema-CsFsYLF-.js} +1 -1
  162. package/dist/{manifest-Cft51TLK.js → manifest-wclLWBVH.js} +37 -37
  163. package/dist/{map-claims-C-nv08_n.js → map-claims-PQwHynxV.js} +25 -11
  164. package/dist/{map-error-pasIGqMT.js → map-error-BH16Ah8P.js} +1 -1
  165. package/dist/mcp/index.d.ts +8 -8
  166. package/dist/mcp/index.js +9 -9
  167. package/dist/{migrate-BJHxQqT5.js → migrate-BbY5-Khy.js} +4 -4
  168. package/dist/{module-values-B1EVTkHP.js → module-values-B8tNIxdd.js} +2 -2
  169. package/dist/nest/index.d.ts +4 -4
  170. package/dist/nest/index.js +3 -3
  171. package/dist/next/index.d.ts +45 -13
  172. package/dist/next/index.js +68 -30
  173. package/dist/next/plugin.d.ts +1 -1
  174. package/dist/next/plugin.js +2 -2
  175. package/dist/node/index.d.ts +4 -4
  176. package/dist/node/index.js +2 -2
  177. package/dist/openai/index.d.ts +4 -4
  178. package/dist/openai/index.js +3 -3
  179. package/dist/openapi/index.d.ts +2 -2
  180. package/dist/{openapi-BwWkHxvW.js → openapi-C4gFqeRz.js} +4 -4
  181. package/dist/{openapi-DSzQN7Zu.js → openapi-zMEB9qxn.js} +5 -5
  182. package/dist/{operation-findings-CXtFzlKJ.js → operation-findings-CVwJHEu_.js} +1 -1
  183. package/dist/operation-risks-BKOcTv8J.js +13 -0
  184. package/dist/operations-Bm9HFecz.js +89 -0
  185. package/dist/orpc/index.d.ts +5 -5
  186. package/dist/orpc/index.js +3 -3
  187. package/dist/otel/index.d.ts +3 -3
  188. package/dist/otel/index.js +1 -1
  189. package/dist/{output-DlICTjBh.js → output-BFWLER4r.js} +1 -1
  190. package/dist/output-files-BYscrQl-.js +1 -0
  191. package/dist/{output-files-BIQ_9pIs.js → output-files-CM0BnH05.js} +1 -1
  192. package/dist/{ownership-qqBuGJXr.js → ownership-D-mIt-w0.js} +6 -6
  193. package/dist/{parse-1_ZheTW5.js → parse-UTC-sDrt.js} +2 -2
  194. package/dist/{parse-local-manifest-DEiCF4ah.js → parse-local-manifest-CxcSMQgl.js} +2 -2
  195. package/dist/{parse-local-manifest-CCmbhnxP.d.ts → parse-local-manifest-DvjTQNuO.d.ts} +1 -1
  196. package/dist/{parse-request-CwCZpyjV.js → parse-request-DOBVaeiQ.js} +1 -1
  197. package/dist/pdp/index.d.ts +3 -3
  198. package/dist/pdp/index.js +3 -3
  199. package/dist/{peer-Q0fuZ6hx.js → peer-BuK9F53f.js} +1 -1
  200. package/dist/{peer-C9LvBCcb.js → peer-n-swIV4H.js} +1 -1
  201. package/dist/{permdock-BvjivVb9.js → permdock-D-_WrdKu.js} +205 -102
  202. package/dist/{permdock-CprAPN3w.d.ts → permdock-ffY4CMd9.d.ts} +101 -131
  203. package/dist/{permissions-CYcHj_w7.js → permissions-B3ggI88M.js} +2 -2
  204. package/dist/{permissions-CVXmRILq.js → permissions-BaoLxy66.js} +1 -13
  205. package/dist/{pg-DQTqRrou.js → pg-Ddxsd5ZB.js} +2 -2
  206. package/dist/{policy-BycVKnXv.d.ts → policy-BtKSApSt.d.ts} +1 -1
  207. package/dist/{policy-CLQ8__GF.js → policy-cV_wwPb8.js} +5 -4
  208. package/dist/{policy-from-catalog-CU3An8uP.js → policy-from-catalog-B68hGC0S.js} +9 -8
  209. package/dist/{policy-types-DGIO_gxq.d.ts → policy-types-D-GwfQTc.d.ts} +72 -19
  210. package/dist/{postgrest-DAxFltvO.js → postgrest-BrjrckDG.js} +74 -19
  211. package/dist/{postgrest-D5nUGm-c.d.ts → postgrest-D84p5dbA.d.ts} +12 -7
  212. package/dist/{powersync-CBhTBhG2.js → powersync-9PYOE1wt.js} +158 -21
  213. package/dist/{powersync-DAfo0EL5.js → powersync-DStC_g0B.js} +3 -3
  214. package/dist/powersync-xNRlC4jN.js +1 -0
  215. package/dist/preset/index.js +1 -1
  216. package/dist/{preset-BjLzeFpp.js → preset-pPrVyGU5.js} +74 -7
  217. package/dist/prisma/index.d.ts +2 -2
  218. package/dist/prisma/index.js +1 -1
  219. package/dist/{protected-action-QEA8arRB.js → protected-action-B40tU3yP.js} +15 -5
  220. package/dist/{protected-action-D8x73IGm.d.ts → protected-action-Ds_EUY8B.d.ts} +14 -7
  221. package/dist/{protected-action-DUYqb-Ma.js → protected-action-OpOxtTsN.js} +1 -1
  222. package/dist/{provider-C55OGXJ7.js → provider-CY4TSSJo.js} +2 -2
  223. package/dist/{provider-DfLeek9O.d.ts → provider-OtnIiFWm.d.ts} +1 -1
  224. package/dist/{provider-store-CaTv00tr.js → provider-store-BQP_pp8s.js} +2 -2
  225. package/dist/{pull-CQCGy1gv.js → pull-DLP4I1Kl.js} +7 -7
  226. package/dist/pull-UBjDnf4b.js +1 -0
  227. package/dist/{push-Dq_ca4-j.js → push-BSb8j1EW.js} +8 -8
  228. package/dist/{pushed-policy-CDuOL2de.js → pushed-policy-BecMsTtM.js} +1 -1
  229. package/dist/{pushed-policy-CryQheKq.d.ts → pushed-policy-Ck3FZcoy.d.ts} +1 -1
  230. package/dist/react/index.d.ts +8 -8
  231. package/dist/react/index.js +6 -6
  232. package/dist/react/provider-client.d.ts +1 -1
  233. package/dist/react/provider-client.js +1 -1
  234. package/dist/react-native/index.d.ts +104 -39
  235. package/dist/react-native/index.js +199 -40
  236. package/dist/refresh-on-L9UOwATg.d.ts +49 -0
  237. package/dist/{replay-Bs9Df2fQ.d.ts → replay-E5X9E1lC.d.ts} +1 -1
  238. package/dist/{request-context-Duzdf0cd.js → request-context-DM6_jY1n.js} +2 -2
  239. package/dist/{request-schema-DhX7UbfQ.js → request-schema-CMP8Cmxd.js} +5 -0
  240. package/dist/resend/index.d.ts +4 -4
  241. package/dist/{resolve-names-Y1Cb22cp.js → resolve-names-CBl4r4_r.js} +6 -6
  242. package/dist/{rls-tHu7N_Pe.js → rls-DGBL-jDY.js} +20 -20
  243. package/dist/{rls-C5ZGzR_B.js → rls-pAHGYgTb.js} +4 -4
  244. package/dist/{role-builder-BK2-T6oD.js → role-builder-CMW4wWzn.js} +3 -157
  245. package/dist/{rpc-vHIwyXCp.js → rpc-KwX_Jcxz.js} +2 -2
  246. package/dist/{run-DUq1xU4K.js → run-B7lv3NuK.js} +8 -40
  247. package/dist/run-UPbacxPg.js +1 -0
  248. package/dist/{run-ticket-DfnZCh-u.js → run-ticket-CjvXr6wj.js} +1 -1
  249. package/dist/{run-ticket-ylovhyFQ.d.ts → run-ticket-DPaD27_r.d.ts} +2 -2
  250. package/dist/{runtime-BGnrOkVH.js → runtime-rf0ZuyF3.js} +1 -1
  251. package/dist/{saas-DK4V-3Is.js → saas-B8H1MsQ3.js} +13 -10
  252. package/dist/{scan-C3HRH9Fs.js → scan-0r3OZqqK.js} +1 -1
  253. package/dist/{schema-DvXvxPhQ.js → schema-B_9tXrbG.js} +1 -1
  254. package/dist/{schema-BOJjqlWL.js → schema-CuX70xgH.js} +15 -2
  255. package/dist/scim/index.d.ts +1 -1
  256. package/dist/scim/index.js +1 -1
  257. package/dist/{scim-jJBJ7g1Z.js → scim-C30QBBoF.js} +2 -1
  258. package/dist/{scim-D8YupzX1.js → scim-CovliQUg.js} +2 -2
  259. package/dist/{scopes-0Up_UA2t.js → scopes-BSdYaGHs.js} +9 -40
  260. package/dist/server/index.d.ts +11 -11
  261. package/dist/server/index.js +8 -8
  262. package/dist/{server-3cVlTLde.js → server-D0PW6ZCw.js} +2 -2
  263. package/dist/{server-types-CyRN0-Cd.d.ts → server-types-3OnXjZ2D.d.ts} +8 -8
  264. package/dist/{shared-l0oGGetg.js → shared-BRmCJxDK.js} +2 -2
  265. package/dist/{shared-DrGLwM3s.js → shared-DyYVEjKC.js} +2 -2
  266. package/dist/{sink-B5zoUW_O.d.ts → sink-ogbVkyeo.d.ts} +2 -2
  267. package/dist/{skills-Celu2W6v.js → skills-B4MPRxQd.js} +2 -2
  268. package/dist/{skills-B2qTbaQa.js → skills-C9sTD70r.js} +2 -2
  269. package/dist/{snapshot-CXlzi69u.js → snapshot-DN_8J27z.js} +6 -2
  270. package/dist/{snapshot-cache-BjAWkchD.d.ts → snapshot-cache-B4YvlGG_.d.ts} +20 -6
  271. package/dist/{snapshot-cache-Bx_4xC_6.js → snapshot-cache-B66h7FBK.js} +25 -8
  272. package/dist/solid/index.d.ts +7 -7
  273. package/dist/solid/index.js +6 -6
  274. package/dist/solid-start/index.d.ts +4 -4
  275. package/dist/solid-start/index.js +3 -3
  276. package/dist/{sources-oB1Hg1Fm.d.ts → sources-xdQShLDU.d.ts} +1 -1
  277. package/dist/{src-C_pi2Rnh.js → src-Brzq_0in.js} +193 -128
  278. package/dist/ssf/index.d.ts +3 -3
  279. package/dist/ssf/index.js +1 -1
  280. package/dist/{standard-webhooks-DOYEuOLx.d.ts → standard-webhooks-BfPaZ6T1.d.ts} +2 -2
  281. package/dist/{types-tQB2CEnY.d.ts → store-DYeB-_U3.d.ts} +114 -113
  282. package/dist/{store-RNFvaJJv.js → store-DmVqy74I.js} +13 -7
  283. package/dist/{store-options-Dil3lraY.js → store-options--zWn48PK.js} +76 -7
  284. package/dist/{stores-DxZWDXCs.js → stores-BYFopOm1.js} +3 -3
  285. package/dist/{stores-DZJvxFIZ.d.ts → stores-EPul_8MN.d.ts} +5 -6
  286. package/dist/{stream-9y9qw51m.d.ts → stream-W2RuUYly.d.ts} +1 -1
  287. package/dist/{subject-BGoM5o8B.js → subject-C7RddW0G.js} +8 -1
  288. package/dist/supabase/client.d.ts +2 -0
  289. package/dist/supabase/client.js +21 -0
  290. package/dist/supabase/index.d.ts +37 -6
  291. package/dist/supabase/index.js +6 -5
  292. package/dist/supabase/middleware.d.ts +8 -7
  293. package/dist/supabase/middleware.js +6 -6
  294. package/dist/{supabase-CDHMsDD0.js → supabase-BiViJpQ4.js} +31 -8
  295. package/dist/{supabase-DYWnT800.js → supabase-CogTyJH2.js} +3 -3
  296. package/dist/supabase-hook-BN46IrVI.js +1 -0
  297. package/dist/{supabase-hook-HPgwYb9V.js → supabase-hook-DX38Hj8h.js} +393 -32
  298. package/dist/{supautils-SwE642N1.js → supautils-BGf6zRvM.js} +12 -12
  299. package/dist/svelte/index.d.ts +7 -7
  300. package/dist/svelte/index.js +8 -8
  301. package/dist/svelte/runtime.d.ts +3 -3
  302. package/dist/svelte/runtime.js +3 -3
  303. package/dist/svelte/source.d.ts +7 -7
  304. package/dist/svelte/source.js +5 -5
  305. package/dist/sveltekit/index.d.ts +4 -4
  306. package/dist/sveltekit/index.js +2 -2
  307. package/dist/{tables-DimBcVWY.js → tables-BfOk0ymL.js} +7 -7
  308. package/dist/tanstack-start/index.d.ts +4 -4
  309. package/dist/tanstack-start/index.js +2 -2
  310. package/dist/{tenancy-5d1zVBvK.js → tenancy-DvOHHk3-.js} +1 -1
  311. package/dist/terminal/index.d.ts +5 -5
  312. package/dist/terminal/index.js +6 -6
  313. package/dist/testing/core.d.ts +1 -1
  314. package/dist/testing/core.js +1 -1
  315. package/dist/testing/fixtures/index.d.ts +1 -1
  316. package/dist/testing/fixtures/index.js +2 -2
  317. package/dist/testing/index.d.ts +29 -22
  318. package/dist/testing/index.js +120 -48
  319. package/dist/testing/saas/index.d.ts +3 -3
  320. package/dist/testing/saas/index.js +2 -2
  321. package/dist/testing/saas/permissions.js +1 -1
  322. package/dist/token-D6pWn8Uj.d.ts +11 -0
  323. package/dist/{token-DC9EQiet.js → token-DaMnIU9O.js} +24 -8
  324. package/dist/{tool-refusal-Qpjs_W6M.js → tool-refusal-D4spOJ7I.js} +1 -1
  325. package/dist/trpc/index.d.ts +5 -5
  326. package/dist/trpc/index.js +3 -3
  327. package/dist/{type-helpers-c7Xo_2Cu.d.ts → type-helpers-i1EJ3Eb1.d.ts} +1 -1
  328. package/dist/{types-Cklw5hJo.d.ts → types-3Y8UpFkF.d.ts} +40 -1
  329. package/dist/{types-DlelvQk4.d.ts → types-B8qUkGja.d.ts} +2 -2
  330. package/dist/{types-CN0LsqbK.d.ts → types-CCEeSCMB.d.ts} +3 -3
  331. package/dist/{types-B2efzoSX.d.ts → types-CDVXR6YD.d.ts} +1 -1
  332. package/dist/{types-DsHGPtkR.d.ts → types-Ck1KOfug.d.ts} +2 -2
  333. package/dist/{types-DLvhVm1r.d.ts → types-CqcsNCaN.d.ts} +16 -7
  334. package/dist/{types-BB-zWDcR.d.ts → types-D-JO7lh8.d.ts} +5 -5
  335. package/dist/{types-CEinc15V.d.ts → types-D19MK4t-.d.ts} +3 -4
  336. package/dist/{types-B6ExllNo.d.ts → types-DGf_cpKF.d.ts} +2 -2
  337. package/dist/{types-rCRV4Ge-.d.ts → types-DmbfLu2p.d.ts} +4 -4
  338. package/dist/{types-ZzRGoViD.d.ts → types-NYoj8JBm.d.ts} +2 -2
  339. package/dist/{types-CWBsAwqn.d.ts → types-o1vu6Ks3.d.ts} +4 -4
  340. package/dist/unplugin/index.d.ts +1 -1
  341. package/dist/unplugin/index.js +2 -2
  342. package/dist/usage-Cl5eb-e1.js +1 -0
  343. package/dist/{usage-CPXeuAdT.js → usage-DC0UKe6C.js} +6 -6
  344. package/dist/{usage-CfZCQd0F.js → usage-DYtRVkcN.js} +2 -2
  345. package/dist/{validation-error-uvp-kyfO.d.ts → validation-error-Dx8PipbO.d.ts} +1 -1
  346. package/dist/{verify-DfT0QYNh.js → verify-Bpj0hauG.js} +19 -19
  347. package/dist/{version-cache-Df11C2Qp.d.ts → version-cache-DzNKWiI6.d.ts} +9 -3
  348. package/dist/{views-CD8wuL4Z.js → views-MWmJ6Y4P.js} +1 -1
  349. package/dist/vue/index.d.ts +7 -7
  350. package/dist/vue/index.js +6 -6
  351. package/dist/{waiter-CqUKX6CY.d.ts → waiter-NK_UuZbb.d.ts} +2 -2
  352. package/dist/{watch-DAkjm75Y.js → watch-CBHADqBH.js} +3 -3
  353. package/dist/watch-OYwAPCzx.js +1 -0
  354. package/dist/webmcp/index.d.ts +1 -1
  355. package/dist/webmcp/index.js +1 -1
  356. package/dist/{where-scope-DlCdCM_8.js → where-scope-BKrqUDVk.js} +5 -5
  357. package/dist/{who-can-BoDJm0Nc.js → who-can-KhVWMxtf.js} +4 -4
  358. package/dist/workflow/index.d.ts +3 -3
  359. package/dist/workflow/index.js +5 -4
  360. package/dist/workflow-sdk/index.d.ts +4 -4
  361. package/dist/{wrap-DxXB54Wu.d.ts → wrap-BHGA-SMM.d.ts} +2 -2
  362. package/dist/{wrap-B2wziJI_.js → wrap-C5PWzgkq.js} +1 -1
  363. package/package.json +8 -5
  364. package/schemas/approval-request-v1.json +5 -0
  365. package/schemas/catalog-v1.json +18 -2
  366. package/schemas/cli-result-v1.json +0 -2
  367. package/schemas/snapshot-v1.json +9 -0
  368. package/schemas/supabase-manifest-v1.json +1 -1
  369. package/skills/permdock-approvals/SKILL.md +8 -8
  370. package/skills/permdock-approvals/references/stores-and-resume.md +7 -3
  371. package/skills/permdock-audit/SKILL.md +1 -1
  372. package/skills/permdock-wire/references/adapters.md +3 -1
  373. package/dist/action-result-BcudBQOF.d.ts +0 -19
  374. package/dist/catalog-D3oS2GH3.js +0 -1
  375. package/dist/collect-D-eroIfV.js +0 -1
  376. package/dist/load-Dm0pSYH3.js +0 -1
  377. package/dist/output-files-BHOIlrfD.js +0 -1
  378. package/dist/powersync-0QVP_DuR.js +0 -1
  379. package/dist/pull-CCAChKuy.js +0 -1
  380. package/dist/renames-CGj7YwcQ.js +0 -175
  381. package/dist/run-C5P3x1EI.js +0 -1
  382. package/dist/supabase-hook-qsewAVZY.js +0 -1
  383. package/dist/usage-DmmO_xjJ.js +0 -1
  384. package/dist/watch-CuPz0D2M.js +0 -1
@@ -1,5 +1,5 @@
1
- import { j as PolicyVocabulary, on as DecisionEvent } from "./policy-types-DGIO_gxq.js";
2
- import { a as PermDock } from "./permdock-CprAPN3w.js";
1
+ import { M as PolicyVocabulary, cn as DecisionEvent } from "./policy-types-D-GwfQTc.js";
2
+ import { a as PermDock } from "./permdock-ffY4CMd9.js";
3
3
  //#region src/otel/types.d.ts
4
4
  declare const GENAI_SEMCONV_PIN = "1.37.0";
5
5
  declare const GEN_AI_TOOL_NAME = "gen_ai.tool.name";
@@ -1,8 +1,8 @@
1
- import { Hn as ApprovalRequiredDecision, Un as Decision, Yn as GrantedDecision, Zt as Snapshot, ht as TokenVerifier } from "./policy-types-DGIO_gxq.js";
1
+ import { $n as GrantedDecision, $t as Snapshot, Kn as ApprovalRequiredDecision, _t as TokenVerifier, qn as Decision } from "./policy-types-D-GwfQTc.js";
2
2
  import { u as Permission } from "./permission-types-CAY-GU7e.js";
3
- import { s as RowData } from "./permdock-CprAPN3w.js";
4
- import { n as DescribeMessages } from "./describe-BbFPBSms.js";
5
- import { _ as ClientStoreOptions } from "./types-tQB2CEnY.js";
3
+ import { s as RowData } from "./permdock-ffY4CMd9.js";
4
+ import { n as DescribeMessages } from "./describe-BKtC_8PG.js";
5
+ import { n as ClientStoreOptions } from "./store-DYeB-_U3.js";
6
6
  import { ReactNode } from "react";
7
7
  //#region src/react/types.d.ts
8
8
  type PermDockProviderProps = ({
@@ -56,12 +56,12 @@ type CatalogBreakGlass = {
56
56
  };
57
57
  type CatalogApproval = "human" | {
58
58
  readonly by?: unknown;
59
- readonly mode?: "any" | "all" | "sequential";
59
+ readonly combine?: "any" | "all" | "sequential";
60
60
  readonly stages?: readonly {
61
61
  readonly by: unknown;
62
62
  readonly quorum?: number;
63
63
  }[];
64
- readonly distinct?: boolean;
64
+ readonly mode?: "confirm" | "authorize";
65
65
  readonly staleOn?: "resource-change";
66
66
  readonly quorum?: number;
67
67
  /** Seconds. */
@@ -1,7 +1,7 @@
1
- import { Zt as Snapshot, ct as SnapshotSource, ht as TokenVerifier } from "./policy-types-DGIO_gxq.js";
2
- import { n as DescribeMessages } from "./describe-BbFPBSms.js";
3
- import { _ as ClientStoreOptions } from "./types-tQB2CEnY.js";
4
- import { t as PermDockDefaults } from "./types-rCRV4Ge-.js";
1
+ import { $t as Snapshot, _t as TokenVerifier, lt as SnapshotSource } from "./policy-types-D-GwfQTc.js";
2
+ import { n as DescribeMessages } from "./describe-BKtC_8PG.js";
3
+ import { n as ClientStoreOptions } from "./store-DYeB-_U3.js";
4
+ import { t as PermDockDefaults } from "./types-DmbfLu2p.js";
5
5
  import { ReactNode } from "react";
6
6
  //#region src/react-native/types.d.ts
7
7
  type SnapshotStorage = {
@@ -1,4 +1,4 @@
1
- import { s as PermDockPluginOptions } from "../types-Cklw5hJo.js";
1
+ import { s as PermDockPluginOptions } from "../types-3Y8UpFkF.js";
2
2
  import { createUnplugin } from "unplugin";
3
3
  //#region src/unplugin/index.d.ts
4
4
  type CreateUnplugin = typeof createUnplugin<PermDockPluginOptions | undefined>;
@@ -1,5 +1,5 @@
1
- import { n as createCollectScheduler, r as report } from "../watch-DAkjm75Y.js";
2
- import { r as peerHint } from "../peer-Q0fuZ6hx.js";
1
+ import { n as createCollectScheduler, r as report } from "../watch-CBHADqBH.js";
2
+ import { r as peerHint } from "../peer-BuK9F53f.js";
3
3
  import { createRequire } from "node:module";
4
4
  //#region src/unplugin/index.ts
5
5
  function loadCreateUnplugin() {
@@ -0,0 +1 @@
1
+ export { t as runUsage } from "./usage-DC0UKe6C.js";
@@ -1,13 +1,13 @@
1
1
  import { a as getResource } from "./permission-registry-B8tYxPIt.js";
2
- import { u as usageResult } from "./errors-Vpu6rKHl.js";
2
+ import { u as usageResult } from "./errors-BhRkoNS7.js";
3
3
  import { a as rel, r as listSourceFiles } from "./files-BSjrtIHw.js";
4
4
  import { o as USAGE_REPORT_SCHEMA } from "./version-DMQ0dnN5.js";
5
- import { c as jsonSchemaOf } from "./catalog-doc-DjMKzJp9.js";
6
- import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-DjSU5KXO.js";
7
- import { r as runCollect } from "./collect-WCl8cJQV.js";
5
+ import { c as jsonSchemaOf } from "./catalog-doc-C4DGfJCO.js";
6
+ import { a as loadModule, n as asPolicy, s as pickNamed } from "./load-BaEamml-.js";
7
+ import { r as runCollect } from "./collect-D878zLDP.js";
8
8
  import { t as beforeFirst } from "./text-BMFRfBqc.js";
9
- import { t as DOCS_BASE } from "./manifest-Cft51TLK.js";
10
- import { r as findingOf } from "./output-DlICTjBh.js";
9
+ import { t as DOCS_BASE } from "./manifest-wclLWBVH.js";
10
+ import { r as findingOf } from "./output-BFWLER4r.js";
11
11
  import { existsSync, readFileSync, realpathSync } from "node:fs";
12
12
  import { dirname, resolve } from "node:path";
13
13
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -1,5 +1,5 @@
1
1
  import { t as defineLeaf } from "./command-L8EstFNm.js";
2
- import { a as failOnFlag } from "./flags-DXjoTVbS.js";
2
+ import { a as failOnFlag } from "./flags-BlmpmXoY.js";
3
3
  //#region src/cli/commands/usage.ts
4
4
  const usage = defineLeaf({
5
5
  flags: {
@@ -16,7 +16,7 @@ const usage = defineLeaf({
16
16
  }
17
17
  },
18
18
  async run(ctx, { flags }) {
19
- return (await import("./usage-DmmO_xjJ.js")).runUsage({
19
+ return (await import("./usage-Cl5eb-e1.js")).runUsage({
20
20
  cwd: ctx.cwd,
21
21
  config: ctx.config,
22
22
  ignore: flags.ignore,
@@ -1,4 +1,4 @@
1
- import { a as ProblemDetails } from "./errors-BIM4MFsJ.js";
1
+ import { a as ProblemDetails } from "./errors-TpzkEKgJ.js";
2
2
  import { StandardSchemaV1 } from "@standard-schema/spec";
3
3
  //#region src/core/validation-error.d.ts
4
4
  /**
@@ -1,35 +1,35 @@
1
1
  import { a as sole, r as isRecord } from "./compact-CAf557ZB.js";
2
2
  import { l as isConditionRef, o as hasConditionOp } from "./refs-C8BKxc_e.js";
3
- import { j as memoryCustomRoleSource, x as memoryRelationSource } from "./src-C_pi2Rnh.js";
3
+ import { A as memoryCustomRoleSource, S as memoryRelationSource } from "./src-Brzq_0in.js";
4
4
  import { c as listPermissions, h as formerKeys, n as findPermission } from "./permission-registry-B8tYxPIt.js";
5
5
  import { c as isEdgeRelation, l as isFieldRelation, u as isPrincipalRelation } from "./resource-relations-8-pCScBO.js";
6
6
  import { f as nowMillis, u as isoAt } from "./time-nR1JesoH.js";
7
7
  import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
8
- import { f as scopeList, l as rootScope, o as normalizeMemberships } from "./scopes-0Up_UA2t.js";
9
- import { o as requiresStandIn } from "./delegation-CDB6_keF.js";
10
- import { p as scopeField } from "./tenancy-5d1zVBvK.js";
11
- import { l as policyLevels, t as coveredLevels } from "./policy-CLQ8__GF.js";
8
+ import { c as rootScope, d as scopeList, o as normalizeMemberships } from "./scopes-BSdYaGHs.js";
9
+ import { o as requiresStandIn } from "./delegation-aK4T_5WU.js";
10
+ import { p as scopeField } from "./tenancy-DvOHHk3-.js";
11
+ import { l as policyLevels, t as coveredLevels } from "./policy-cV_wwPb8.js";
12
12
  import { t as requiresApproval } from "./approval-required-TzNB9oQA.js";
13
- import { c as andWhere, m as customRoleScope, v as leveled, y as membershipsClaim } from "./evaluate-BAmf_AQd.js";
14
- import { t as getPermDock } from "./permdock-BvjivVb9.js";
15
- import { a as describeError, i as configError, u as usageResult } from "./errors-Vpu6rKHl.js";
13
+ import { c as andWhere, m as customRoleScope, v as leveled, y as membershipsClaim } from "./evaluate-Czbj7thS.js";
14
+ import { t as getPermDock } from "./permdock-D-_WrdKu.js";
15
+ import { a as describeError, i as configError, u as usageResult } from "./errors-BhRkoNS7.js";
16
16
  import { t as policyRowConditionKeys } from "./row-conditions-BAGHOmVq.js";
17
17
  import { s as writeFileEnsuringDir } from "./files-BSjrtIHw.js";
18
- import { c as jsonSchemaOf } from "./catalog-doc-DjMKzJp9.js";
19
- import { o as loadPolicyAt } from "./load-DjSU5KXO.js";
20
- import "./budget-BELja5A9.js";
18
+ import { c as jsonSchemaOf } from "./catalog-doc-C4DGfJCO.js";
19
+ import { o as loadPolicyAt } from "./load-BaEamml-.js";
20
+ import "./budget-BBCPDOGP.js";
21
21
  import { i as qualifySqlTable, n as defaultSqlCommand, t as SQL_IDENT } from "./sql-0WjxIp9g.js";
22
- import { a as scopeMembershipTable, i as scopeColumn } from "./compile-EzEMB-7v.js";
22
+ import { a as scopeMembershipTable, i as scopeColumn } from "./compile-B_oJqmIg.js";
23
23
  import "./sources-C4vkzZJV.js";
24
24
  import { t as beforeFirst } from "./text-BMFRfBqc.js";
25
- import { t as DOCS_BASE } from "./manifest-Cft51TLK.js";
26
- import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-Bm4_K1ke.js";
27
- import { A as quoteQualified, N as arrayColumnsOf, O as quoteIdent, P as columnTypesOf, _ as subjectClaimJsonSql, a as customRolesOn, j as quoteTable, k as quoteLiteral, r as HELPERS, v as subjectClaimSql } from "./shared-DrGLwM3s.js";
28
- import { C as accessSql, D as tokenScopeAllowsCall, S as requiresSql, ht as scopeTable, k as capabilityAccessSql, n as tableNameOf, o as graphPlan, q as apiKeyAllowsCall, r as tableNames } from "./tables-DimBcVWY.js";
29
- import { c as breakGlassKey, f as compileConditionSql, l as collectGrants, m as sqlFunctionNames, p as contextRefs, s as breakGlassHolder } from "./ownership-qqBuGJXr.js";
25
+ import { t as DOCS_BASE } from "./manifest-wclLWBVH.js";
26
+ import { n as fixtureSubject, r as loadFixtures, t as fixtureRow } from "./fixtures-Cemqurt8.js";
27
+ import { A as quoteQualified, N as arrayColumnsOf, O as quoteIdent, P as columnTypesOf, _ as subjectClaimJsonSql, a as customRolesOn, j as quoteTable, k as quoteLiteral, r as HELPERS, v as subjectClaimSql } from "./shared-DyYVEjKC.js";
28
+ import { C as accessSql, D as tokenScopeAllowsCall, S as requiresSql, ht as scopeTable, k as capabilityAccessSql, n as tableNameOf, o as graphPlan, q as apiKeyAllowsCall, r as tableNames } from "./tables-BfOk0ymL.js";
29
+ import { c as breakGlassKey, f as compileConditionSql, l as collectGrants, m as sqlFunctionNames, p as contextRefs, s as breakGlassHolder } from "./ownership-D-mIt-w0.js";
30
30
  import { t as membershipSourcesOf } from "./sources-qoIJQrJv.js";
31
- import { n as pgConnector, t as connectPgPool } from "./pg-DQTqRrou.js";
32
- import { _ as wrapSql, g as validitySql, m as andSql, s as viewName, t as FIELD_VIEWS } from "./fields-DI8s3cPl.js";
31
+ import { n as pgConnector, t as connectPgPool } from "./pg-Ddxsd5ZB.js";
32
+ import { _ as wrapSql, g as validitySql, m as andSql, s as viewName, t as FIELD_VIEWS } from "./fields-CrjL6A49.js";
33
33
  import { resolve } from "node:path";
34
34
  import { createHash, randomUUID } from "node:crypto";
35
35
  //#region src/cli/rls/indexes.ts
@@ -1,4 +1,4 @@
1
- import { Wt as Instant, yt as VersionQuery } from "./policy-types-DGIO_gxq.js";
1
+ import { Kt as Instant, xt as VersionQuery } from "./policy-types-D-GwfQTc.js";
2
2
  //#region src/core/version-cache.d.ts
3
3
  type VersionCacheStats = {
4
4
  /** Version reads the cache started. */
@@ -20,12 +20,18 @@ type VersionCache = {
20
20
  readonly maxStaleMs: number;
21
21
  /**
22
22
  * The current version of `principal`. With `live: false`, an entry at most
23
- * `maxStaleMs` old answers, a read in flight is shared, and a token claim
24
- * newer than the entry raises it; with `live: true`, `read` runs.
23
+ * `maxStaleMs` old answers and a read in flight is shared; with `live: true`,
24
+ * `read` runs.
25
25
  */
26
26
  current: (principal: VersionQuery, read: () => number | undefined | Promise<number | undefined>, options: {
27
27
  readonly live: boolean;
28
28
  }) => number | undefined | Promise<number | undefined>;
29
+ /**
30
+ * Stores a version read at `at` (default now): `bsb.bootstrap()`'s
31
+ * `authz_ver`, or a token claim dated by its `iat`. A seed never lowers a
32
+ * cached version, and one dated in the future is ignored.
33
+ */
34
+ seed: (principal: string, version: number, at?: Instant) => void;
29
35
  /** Drops `principal`'s entry, so the next instance reads the version. */
30
36
  evict: (principal: string) => void;
31
37
  stats: () => VersionCacheStats;
@@ -1,5 +1,5 @@
1
1
  import { r as requiredPlans } from "./problem-details-CLDgX1KV.js";
2
- import { n as describe } from "./describe-Bb4hGK5d.js";
2
+ import { n as describe } from "./describe-BZAlPHxT.js";
3
3
  //#region src/client/views.ts
4
4
  function permissionSet(store, permissions, data) {
5
5
  const granted = [];
@@ -1,13 +1,13 @@
1
- import { Hn as ApprovalRequiredDecision, Un as Decision, Zt as Snapshot, fr as Membership, ht as TokenVerifier, j as PolicyVocabulary } from "../policy-types-DGIO_gxq.js";
1
+ import { $t as Snapshot, Kn as ApprovalRequiredDecision, M as PolicyVocabulary, _t as TokenVerifier, gr as Membership, qn as Decision } from "../policy-types-D-GwfQTc.js";
2
2
  import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
3
  import { r as Role } from "../vocabulary-DEJ5j4mR.js";
4
- import { d as UncheckedData, s as RowData } from "../permdock-CprAPN3w.js";
5
- import { c as requiredPlans } from "../errors-BIM4MFsJ.js";
6
- import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-BbFPBSms.js";
4
+ import { d as UncheckedData, s as RowData } from "../permdock-ffY4CMd9.js";
5
+ import { c as requiredPlans } from "../errors-TpzkEKgJ.js";
6
+ import { i as describe, r as DescribeOptions, t as DecisionDescription } from "../describe-BKtC_8PG.js";
7
7
  import { t as PermissionBoundaryState } from "../boundary-C9ck-3uK.js";
8
- import { n as ProtectedAction, t as ActionResult } from "../action-result-BcudBQOF.js";
8
+ import { _ as TenantView, a as ClientPermDock, c as GateMode, d as PermissionState, g as SubjectView, h as RolesOptions, i as ApprovalState, l as GateView, m as ProviderOptionsBase, o as ClientStatus, p as ProtectedActionView, r as ApprovalHandle, s as FilterResult, u as PermissionSet, v as ActionResult, y as ProtectedAction } from "../store-DYeB-_U3.js";
9
+ import { a as broadcastChannelRefresh, c as visibilityRefresh, i as authzChangeRefresh, n as EventSourceRefreshOptions, o as eventSourceRefresh, r as RefreshTrigger, s as focusRefresh, t as AuthzChangeRefresh } from "../refresh-on-L9UOwATg.js";
9
10
  import { t as approvalHeaders } from "../headers-B9jQxjtW.js";
10
- import { a as FilterResult, b as eventSourceRefresh, c as PermissionSet, d as ProtectedActionView, f as ProviderOptionsBase, h as TenantView, i as ClientStatus, l as PermissionState, m as SubjectView, n as ApprovalState, o as GateMode, p as RolesOptions, r as ClientPermDock, s as GateView, t as ApprovalHandle, v as EventSourceRefreshOptions, y as RefreshTrigger } from "../types-tQB2CEnY.js";
11
11
  import { ComputedRef, DefineComponent, MaybeRefOrGetter, Plugin, VNode } from "vue";
12
12
  //#region src/vue/types.d.ts
13
13
  type PermDockPluginOptions = ProviderOptionsBase & {
@@ -130,4 +130,4 @@ type ProtectedProps = {
130
130
  };
131
131
  export declare const Protected: DefineComponent<ProtectedProps>;
132
132
  //#endregion
133
- export { type ActionResult, type ApprovalHandle, type ApprovalState, type ClientPermDock, type ClientStatus, type EventSourceRefreshOptions, type FilterResult, type GateMode, type GateView, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedAction, type ProtectedActionRefs, type ProtectedActionView, type ProtectedProps, type RefreshTrigger, type RolesOptions, type SubjectView, type TenantView, approvalHeaders, describe, eventSourceRefresh, requiredPlans };
133
+ export { type ActionResult, type ApprovalHandle, type ApprovalState, type AuthzChangeRefresh, type ClientPermDock, type ClientStatus, type EventSourceRefreshOptions, type FilterResult, type GateMode, type GateView, type PermDockDefaults, type PermDockPluginOptions, type PermissionBoundaryState, type PermissionSet, type PermissionState, type ProtectedAction, type ProtectedActionRefs, type ProtectedActionView, type ProtectedProps, type RefreshTrigger, type RolesOptions, type SubjectView, type TenantView, approvalHeaders, authzChangeRefresh, broadcastChannelRefresh, describe, eventSourceRefresh, focusRefresh, requiredPlans, visibilityRefresh };
package/dist/vue/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { r as requiredPlans } from "../problem-details-CLDgX1KV.js";
2
- import { n as describe } from "../describe-Bb4hGK5d.js";
2
+ import { n as describe } from "../describe-BZAlPHxT.js";
3
3
  import { n as boundaryFallback, t as boundaryDigest } from "../boundary-BV3O1eud.js";
4
- import { n as actionRunner, r as approvalHeaders, t as actionApproval } from "../protected-action-DUYqb-Ma.js";
5
- import { a as livePermDock, 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-CD8wuL4Z.js";
6
- import { a as isPromiseLike, r as eventSourceRefresh } from "../store-options-Dil3lraY.js";
7
- import { n as switchTenant, t as providerStore } from "../provider-store-CaTv00tr.js";
4
+ import { n as actionRunner, r as approvalHeaders, t as actionApproval } from "../protected-action-OpOxtTsN.js";
5
+ import { a as livePermDock, 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-MWmJ6Y4P.js";
6
+ import { a as eventSourceRefresh, i as broadcastChannelRefresh, l as isPromiseLike, o as focusRefresh, r as authzChangeRefresh, s as visibilityRefresh } from "../store-options--zWn48PK.js";
7
+ import { n as switchTenant, t as providerStore } from "../provider-store-BQP_pp8s.js";
8
8
  import { computed, defineComponent, effectScope, getCurrentScope, inject, isRef, onErrorCaptured, onScopeDispose, provide, shallowRef, toValue, watch } from "vue";
9
9
  //#region src/vue/context.ts
10
10
  const permDockKey = Symbol("permdock");
@@ -246,4 +246,4 @@ const Protected = defineComponent({
246
246
  }
247
247
  });
248
248
  //#endregion
249
- export { PermissionBoundary, Protected, approvalHeaders, describe, eventSourceRefresh, permdockPlugin, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useProtectedAction, useRoles, useSubject, useTenant };
249
+ export { PermissionBoundary, Protected, approvalHeaders, authzChangeRefresh, broadcastChannelRefresh, describe, eventSourceRefresh, focusRefresh, permdockPlugin, requiredPlans, useApproval, useAssignablePermissions, useAssignableRoles, useDescribe, useFilter, useGate, useMemberships, usePermDock, usePermission, usePermissionBoundary, usePermissions, useProtectedAction, useRoles, useSubject, useTenant, visibilityRefresh };
@@ -1,5 +1,5 @@
1
- import { Wt as Instant } from "./policy-types-DGIO_gxq.js";
2
- import { m as ApprovalStore } from "./types-DLvhVm1r.js";
1
+ import { Kt as Instant } from "./policy-types-D-GwfQTc.js";
2
+ import { m as ApprovalStore } from "./types-CqcsNCaN.js";
3
3
  //#region src/workflow/waiter.d.ts
4
4
  type ApprovalWaitOptions = {
5
5
  /**
@@ -1,8 +1,8 @@
1
1
  import { i as dateAt } from "./time-nR1JesoH.js";
2
- import { a as describeError } from "./errors-Vpu6rKHl.js";
2
+ import { a as describeError } from "./errors-BhRkoNS7.js";
3
3
  import { t as defaultSrcPath } from "./files-BSjrtIHw.js";
4
- import { r as runCollect } from "./collect-WCl8cJQV.js";
5
- import { n as isConfigFile, r as loadConfig } from "./config-CcLlvEYW.js";
4
+ import { r as runCollect } from "./collect-D878zLDP.js";
5
+ import { n as isConfigFile, r as loadConfig } from "./config-COHmivz9.js";
6
6
  import { watch } from "node:fs";
7
7
  import { basename, dirname, relative, resolve, sep } from "node:path";
8
8
  //#region src/cli/watch.ts
@@ -0,0 +1 @@
1
+ export { i as watchCollect } from "./watch-CBHADqBH.js";
@@ -1,4 +1,4 @@
1
- import { Un as Decision, Zt as Snapshot } from "../policy-types-DGIO_gxq.js";
1
+ import { $t as Snapshot, qn as Decision } from "../policy-types-D-GwfQTc.js";
2
2
  import { f as PermissionTree, u as Permission } from "../permission-types-CAY-GU7e.js";
3
3
  import { StandardSchemaV1 } from "@standard-schema/spec";
4
4
  //#region src/webmcp/types.d.ts
@@ -3,7 +3,7 @@ import { n as PermDockValidationError } from "../validation-error-CYg2kJEw.js";
3
3
  import { c as listPermissions, f as resourceOfNode, i as getRegistry, m as annotationsFor, s as isRegistryTree } from "../permission-registry-B8tYxPIt.js";
4
4
  import { n as isThenable, t as ignoreRejection } from "../thenable-BNSM1U2R.js";
5
5
  import { n as resourceRef } from "../resource-ref-CaS9yVPi.js";
6
- import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-Qpjs_W6M.js";
6
+ import { n as deniedToolRefusal, r as toolErrorResult, t as approvalToolRefusal } from "../tool-refusal-D4spOJ7I.js";
7
7
  //#region src/webmcp/register.ts
8
8
  const MISSING_CONTEXT = "permdock/webmcp: document.modelContext is absent; registerTools is a no-op.";
9
9
  const CURRENT = Symbol.for("permdock.current");
@@ -2,12 +2,12 @@ import { a as sole, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
2
  import { n as freezeDeep } from "./freeze-jjan0lCv.js";
3
3
  import { t as loadPrincipal } from "./principal-source-C6N60GtM.js";
4
4
  import { g as secondsOf, m as rfc3339 } from "./time-nR1JesoH.js";
5
- import { d as scopeIdOf, f as scopeList, h as tenantOf, r as findScope, s as resolveScope, t as activeFor, u as scopeChain } from "./scopes-0Up_UA2t.js";
6
- import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-CDB6_keF.js";
5
+ import { d as scopeList, l as scopeChain, p as tenantOf, r as findScope, s as resolveScope, t as activeFor, u as scopeIdOf } from "./scopes-BSdYaGHs.js";
6
+ import { a as readOnlyActorRefuses, n as coveredByDelegation } from "./delegation-aK4T_5WU.js";
7
7
  import { r as readWireValidity, t as isActive } from "./validity-Buc7w8E9.js";
8
- import { o as resourceRoleCondition } from "./grantee-conditions-BrYPe-w0.js";
9
- import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-5d1zVBvK.js";
10
- import { a as bindConditionRefs, n as parseSnapshot } from "./snapshot-CXlzi69u.js";
8
+ import { o as resourceRoleCondition } from "./grantee-conditions-DX4K_gGI.js";
9
+ import { c as nowSeconds, n as inTeam, o as membershipField, r as isMembershipExpired } from "./tenancy-DvOHHk3-.js";
10
+ import { a as bindConditionRefs, n as parseSnapshot } from "./snapshot-DN_8J27z.js";
11
11
  //#region src/core/snapshot-sign.ts
12
12
  /**
13
13
  * The claims `signSnapshot` signs for `snapshot`. `issuedAt` and `expiresAt`
@@ -5,12 +5,12 @@ import { n as internalsOf } from "./internals-B3IgHrvo.js";
5
5
  import { a as getResource } from "./permission-registry-B8tYxPIt.js";
6
6
  import { a as expandRelation, c as isEdgeRelation, l as isFieldRelation, u as isPrincipalRelation } from "./resource-relations-8-pCScBO.js";
7
7
  import { s as instantAt } from "./time-nR1JesoH.js";
8
- import { f as scopeList, l as rootScope, o as normalizeMemberships, s as resolveScope } from "./scopes-0Up_UA2t.js";
8
+ import { c as rootScope, d as scopeList, o as normalizeMemberships, s as resolveScope } from "./scopes-BSdYaGHs.js";
9
9
  import { o as flattenGrantee } from "./grantee-Dke-9rd1.js";
10
10
  import { t as byCodePoint } from "./compare-DTfyUunF.js";
11
- import { r as relationCondition } from "./grantee-conditions-BrYPe-w0.js";
12
- import { c as nowSeconds, p as scopeField } from "./tenancy-5d1zVBvK.js";
13
- import { D as emptyListeners, t as evaluate } from "./evaluate-BAmf_AQd.js";
11
+ import { r as relationCondition } from "./grantee-conditions-DX4K_gGI.js";
12
+ import { c as nowSeconds, p as scopeField } from "./tenancy-DvOHHk3-.js";
13
+ import { D as emptyListeners, t as evaluate } from "./evaluate-Czbj7thS.js";
14
14
  import { n as relationId, t as pendingRelations } from "./relations-BxvRvDHK.js";
15
15
  import { t as relationWalk } from "./relation-walk-DK_gkgL7.js";
16
16
  //#region src/core/who-can.ts
@@ -1,5 +1,5 @@
1
- import { a as AutomationSource, i as AutomationRequest, l as memoryAutomationSource, n as AutomationDecision, r as AutomationMode, s as MemoryAutomationSource, t as Automation, u as parseAutomation } from "../automation-C6Jg75xq.js";
2
- import { i as pollingApprovalWaiter, n as ApprovalWaiter, r as PollingApprovalWaiterOptions, t as ApprovalWaitOptions } from "../waiter-CqUKX6CY.js";
3
- import { a as WorkflowPermDockOptions, i as WorkflowPermDock, n as AwaitApprovalOptions, o as createPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-CDd9c22W.js";
1
+ import { a as AutomationSource, i as AutomationRequest, l as memoryAutomationSource, n as AutomationDecision, r as AutomationMode, s as MemoryAutomationSource, t as Automation, u as parseAutomation } from "../automation-Bfa_wD1h.js";
2
+ import { i as pollingApprovalWaiter, n as ApprovalWaiter, r as PollingApprovalWaiterOptions, t as ApprovalWaitOptions } from "../waiter-NK_UuZbb.js";
3
+ import { a as WorkflowPermDockOptions, i as WorkflowPermDock, n as AwaitApprovalOptions, o as createPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-BrQXL-Wt.js";
4
4
  import "../index-CaxrMD1A.js";
5
5
  export { type ApprovalWaitOptions, type ApprovalWaiter, type Automation, type AutomationDecision, type AutomationMode, type AutomationOptions, type AutomationRequest, type AutomationSource, type AwaitApprovalOptions, type MemoryAutomationSource, type PollingApprovalWaiterOptions, type StartAutomationResult, type WorkflowPermDock, type WorkflowPermDockOptions, createPermDock, memoryAutomationSource, parseAutomation, pollingApprovalWaiter };
@@ -4,10 +4,10 @@ import { a as isId } from "../expiry-6XByK0dm.js";
4
4
  import { n as findPermission } from "../permission-registry-B8tYxPIt.js";
5
5
  import { n as isThenable } from "../thenable-BNSM1U2R.js";
6
6
  import { n as memoryAutomationSource, r as parseAutomation } from "../automation-x3KEUusw.js";
7
- import { l as withApp, t as getPermDock } from "../permdock-BvjivVb9.js";
7
+ import { l as withApp, t as getPermDock } from "../permdock-D-_WrdKu.js";
8
8
  import { o as automationEvent } from "../sink-D9_vh372.js";
9
- import { a as requestApproval, s as resumeDecision } from "../helpers-DJicaG6f.js";
10
- import { i as subjectFromRunTicket, r as signRunTicket } from "../run-ticket-DfnZCh-u.js";
9
+ import { a as requestApproval, s as resumeDecision } from "../helpers-DmqGy63f.js";
10
+ import { i as subjectFromRunTicket, r as signRunTicket } from "../run-ticket-CjvXr6wj.js";
11
11
  import { t as pollingApprovalWaiter } from "../waiter-aBLM63_f.js";
12
12
  //#region src/workflow/create.ts
13
13
  function writeQuietly(sink, event) {
@@ -83,7 +83,8 @@ function createPermDock(policy, given) {
83
83
  kind: "service",
84
84
  tenant: current.tenant,
85
85
  memberships: [{
86
- tenant: current.tenant,
86
+ scope: "tenant",
87
+ id: current.tenant,
87
88
  roles: current.roles ?? []
88
89
  }]
89
90
  });
@@ -1,8 +1,8 @@
1
- import { Un as Decision } from "../policy-types-DGIO_gxq.js";
1
+ import { qn as Decision } from "../policy-types-D-GwfQTc.js";
2
2
  import { u as Permission } from "../permission-types-CAY-GU7e.js";
3
- import { a as PermDock } from "../permdock-CprAPN3w.js";
4
- import { n as ApprovalWaiter } from "../waiter-CqUKX6CY.js";
5
- import { i as WorkflowPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-CDd9c22W.js";
3
+ import { a as PermDock } from "../permdock-ffY4CMd9.js";
4
+ import { n as ApprovalWaiter } from "../waiter-NK_UuZbb.js";
5
+ import { i as WorkflowPermDock, r as StartAutomationResult, t as AutomationOptions } from "../create-BrQXL-Wt.js";
6
6
  //#region src/workflow-sdk/index.d.ts
7
7
  /**
8
8
  * The part of a Workflow SDK `Hook` the waiter reads: awaiting it suspends the
@@ -1,5 +1,5 @@
1
- import { j as PolicyVocabulary } from "./policy-types-DGIO_gxq.js";
2
- import { a as PermDock } from "./permdock-CprAPN3w.js";
1
+ import { M as PolicyVocabulary } from "./policy-types-D-GwfQTc.js";
2
+ import { a as PermDock } from "./permdock-ffY4CMd9.js";
3
3
  //#region src/core/wrap.d.ts
4
4
  /** A wrapper an adapter applies to each instance it builds, as `withOtel` does. */
5
5
  type PermDockWrap = <V extends PolicyVocabulary>(permdock: PermDock<V>) => PermDock<V>;
@@ -1,5 +1,5 @@
1
1
  import { n as internalsOf, t as attachInternals } from "./internals-B3IgHrvo.js";
2
- import { i as decideAllWith, n as canAllWith } from "./checks-CGkP3Z7A.js";
2
+ import { i as decideAllWith, n as canAllWith } from "./checks-fyDOhcz0.js";
3
3
  //#region src/core/wrap.ts
4
4
  /**
5
5
  * A frozen copy of `permdock` with the members `overrides` returns replaced.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "permdock",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "description": "Typed permissions for TypeScript apps, APIs, databases, and AI agents, with the permdock CLI and test runners.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -243,6 +243,10 @@
243
243
  "types": "./dist/supabase/middleware.d.ts",
244
244
  "default": "./dist/supabase/middleware.js"
245
245
  },
246
+ "./supabase/client": {
247
+ "types": "./dist/supabase/client.d.ts",
248
+ "default": "./dist/supabase/client.js"
249
+ },
246
250
  "./ssf": {
247
251
  "types": "./dist/ssf/index.d.ts",
248
252
  "default": "./dist/ssf/index.js"
@@ -333,7 +337,6 @@
333
337
  "@orpc/contract": "2.0.0-beta.44",
334
338
  "@orpc/openapi": "2.0.0-beta.44",
335
339
  "@orpc/server": "2.0.0-beta.44",
336
- "@permdock/ox-config": "0.0.0",
337
340
  "@permdock/typescript-config": "0.0.0",
338
341
  "@solidjs/start": "2.0.6",
339
342
  "@supabase/middleware": "1.0.0",
@@ -353,8 +356,8 @@
353
356
  "ajv": "8.20.0",
354
357
  "astro": "7.4.0",
355
358
  "babel-plugin-react-compiler": "1.0.0",
356
- "better-supabase": "0.29.0",
357
- "better-supabase-floor": "npm:better-supabase@0.29.0",
359
+ "better-supabase": "0.39.0",
360
+ "better-supabase-floor": "npm:better-supabase@0.39.0",
358
361
  "chat": "4.42.0",
359
362
  "diff": "9.0.0",
360
363
  "drizzle-orm": "1.0.0-rc.5-5935859",
@@ -411,7 +414,7 @@
411
414
  "@trpc/server": ">=11",
412
415
  "ai": ">=5",
413
416
  "astro": ">=5",
414
- "better-supabase": ">=0.29.0",
417
+ "better-supabase": ">=0.39.0",
415
418
  "chat": ">=4",
416
419
  "drizzle-orm": ">=0.40 || >=1.0.0-rc.0",
417
420
  "elysia": ">=1",
@@ -102,6 +102,11 @@
102
102
  "consumedAt": {
103
103
  "$ref": "#/$defs/instant"
104
104
  },
105
+ "fingerprint": {
106
+ "type": "string",
107
+ "pattern": "^[0-9a-f]{64}$",
108
+ "description": "The approvalFingerprint the request was opened under; a resume under another one is refused."
109
+ },
105
110
  "x": {
106
111
  "type": "object",
107
112
  "description": "The application's own data, set when the request opens: plain JSON, never read by a decision."
@@ -294,9 +294,19 @@
294
294
  "type": "object",
295
295
  "properties": {
296
296
  "by": {},
297
- "mode": {
297
+ "combine": {
298
298
  "enum": ["any", "all", "sequential"]
299
299
  },
300
+ "mode": {
301
+ "description": "confirm or authorize; a catalog written before 0.17 holds any, all or sequential here, read as combine.",
302
+ "enum": [
303
+ "confirm",
304
+ "authorize",
305
+ "any",
306
+ "all",
307
+ "sequential"
308
+ ]
309
+ },
300
310
  "stages": {
301
311
  "type": "array",
302
312
  "items": {
@@ -312,6 +322,7 @@
312
322
  }
313
323
  },
314
324
  "distinct": {
325
+ "description": "Written before 0.17; false reads as mode: confirm.",
315
326
  "type": "boolean"
316
327
  },
317
328
  "staleOn": {
@@ -425,9 +436,13 @@
425
436
  "type": "object",
426
437
  "properties": {
427
438
  "by": {},
428
- "mode": {
439
+ "combine": {
429
440
  "enum": ["any", "all", "sequential"]
430
441
  },
442
+ "mode": {
443
+ "description": "confirm or authorize; a catalog written before 0.17 holds any, all or sequential here, read as combine.",
444
+ "enum": ["confirm", "authorize", "any", "all", "sequential"]
445
+ },
431
446
  "stages": {
432
447
  "type": "array",
433
448
  "items": {
@@ -443,6 +458,7 @@
443
458
  }
444
459
  },
445
460
  "distinct": {
461
+ "description": "Written before 0.17; false reads as mode: confirm.",
446
462
  "type": "boolean"
447
463
  },
448
464
  "staleOn": {
@@ -64,8 +64,6 @@
64
64
  "unknown_command",
65
65
  "unknown_flag",
66
66
  "invalid_value",
67
- "command_moved",
68
- "flag_renamed",
69
67
  "missing_value",
70
68
  "config_not_found",
71
69
  "config_invalid",
@@ -9,6 +9,15 @@
9
9
  "v": { "const": 1 },
10
10
  "issuedAt": { "$ref": "#/$defs/instant" },
11
11
  "expiresAt": { "$ref": "#/$defs/instant" },
12
+ "authzVersion": {
13
+ "type": "integer",
14
+ "minimum": 0,
15
+ "description": "The token's authz_ver the snapshot was built from."
16
+ },
17
+ "sessionId": {
18
+ "type": "string",
19
+ "description": "The Auth session_id the snapshot was built for."
20
+ },
12
21
  "subject": {
13
22
  "type": "object",
14
23
  "required": ["principal", "context"],
@@ -510,7 +510,7 @@
510
510
  },
511
511
  "helperName": {
512
512
  "type": "string",
513
- "pattern": "^(permdock_has(_for)?|permitted_[a-z][a-z0-9_]*_(ids|permission_keys)(_for)?|permitted_[a-z][a-z0-9_]*_users|member_[a-z][a-z0-9_]*_ids(_for|_of)?|permdock_can_assign(_any|_custom_role)?(_for)?|permdock_api_key_allows|permdock_token_scope_allows|permdock_actor_may_write|permdock_is_approver|permdock_user_id)$"
513
+ "pattern": "^(permdock_has(_for)?|permitted_[a-z][a-z0-9_]*_(ids|permission_keys)(_for)?|permitted_[a-z][a-z0-9_]*_users|member_[a-z][a-z0-9_]*_ids(_for|_of)?|permdock_can_assign(_any|_custom_role)?(_for)?|permdock_api_key_allows|permdock_token_scope_allows|permdock_actor_may_write|permdock_is_approver|permdock_manages|permdock_user_id)$"
514
514
  },
515
515
  "column": {
516
516
  "type": "object",