permdock 0.6.0 → 0.8.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 (507) hide show
  1. package/README.md +2 -3
  2. package/dist/{2020-C9VN-x8c.js → 2020-CJbO8Bvz.js} +1 -3
  3. package/dist/a2a/index.d.ts +7 -7
  4. package/dist/a2a/index.js +9 -9
  5. package/dist/action-result-CL-QCITA.d.ts +19 -0
  6. package/dist/{adapter-context-CRhqyzCk.js → adapter-context-CIQpQxbE.js} +8 -2
  7. package/dist/{adoption-scan-DCYe60Pi.js → adoption-scan-BLs67P1l.js} +5 -5
  8. package/dist/agent/index.d.ts +3 -3
  9. package/dist/agent/index.js +1 -1
  10. package/dist/ai-sdk/index.d.ts +31 -10
  11. package/dist/ai-sdk/index.js +22 -12
  12. package/dist/{app-data-MuyzVqX8.js → app-data-UNNm07jV.js} +10 -7
  13. package/dist/{approval-header-CJACtHkv.js → approval-header-8QV6MU4H.js} +6 -3
  14. package/dist/{approval-prompt-Dg5LeAcT.js → approval-prompt-B8hQY69x.js} +5 -6
  15. package/dist/{approval-prompt-DvSSPQJX.d.ts → approval-prompt-PYagyQUj.d.ts} +13 -11
  16. package/dist/approvals/index.d.ts +5 -5
  17. package/dist/approvals/index.js +7 -7
  18. package/dist/{approvals-p1PGoVjb.js → approvals-DnIBTuXE.js} +128 -78
  19. package/dist/{approvers-CqPOLD-o.js → approvers-B4r0N_Uz.js} +8 -2
  20. package/dist/{arazzo-41WuzHou.js → arazzo-3RhGfkAK.js} +2 -2
  21. package/dist/{arazzo-CaUVBn7D.js → arazzo-B5-ulWif.js} +6 -6
  22. package/dist/{args-IIolxxKA.js → args-0FrVs5EH.js} +125 -8
  23. package/dist/astro/index.d.ts +30 -12
  24. package/dist/astro/index.js +2 -2
  25. package/dist/{audience-DabClFLQ.js → audience-BAkBDMqn.js} +8 -8
  26. package/dist/{auth-DRLEizbL.js → auth--yPyZNgr.js} +21 -10
  27. package/dist/authzen/index.d.ts +171 -25
  28. package/dist/authzen/index.js +321 -149
  29. package/dist/{automation-BNM3TtDo.d.ts → automation-DqEoWHBc.d.ts} +42 -32
  30. package/dist/{automation-DVjOckjV.js → automation-x3KEUusw.js} +22 -21
  31. package/dist/base-url-BQbddZO5.js +9 -0
  32. package/dist/better-auth/index.d.ts +2 -2
  33. package/dist/better-auth/index.js +13 -7
  34. package/dist/better-supabase/index.d.ts +392 -220
  35. package/dist/better-supabase/index.js +293 -152
  36. package/dist/{bind-DOyrv6zi.d.ts → bind-Cp2hBHzP.d.ts} +27 -12
  37. package/dist/{bind-CAvgUuKs.js → bind-D_sZSVA3.js} +22 -10
  38. package/dist/{body-CH5of8Ne.js → body-CJQwYVa8.js} +3 -3
  39. package/dist/{body-text-QcXok_SI.js → body-text-DQhcmqdY.js} +8 -4
  40. package/dist/{boundary-BM8a_P6E.js → boundary-BV3O1eud.js} +8 -2
  41. package/dist/{boundary-BmHxVH1J.d.ts → boundary-C9ck-3uK.d.ts} +13 -4
  42. package/dist/{budget-NbEtbJC_.js → budget-BELja5A9.js} +6 -3
  43. package/dist/{budget-JqcRqyhK.d.ts → budget-hYsPz_yE.d.ts} +6 -3
  44. package/dist/{build-instance-Bu_eDqYw.js → build-instance-CNWaYJyr.js} +3 -3
  45. package/dist/{canonical-json-BC8_nMTw.js → canonical-json-DwilZ1iB.js} +6 -3
  46. package/dist/{capability-N1K9IpqS.js → capability-BqX94r07.js} +31 -25
  47. package/dist/{capability-Drg-1YhL.d.ts → capability-ChuiONQU.d.ts} +41 -29
  48. package/dist/{casbin-Dyu2gnUD.js → casbin-H0rKxBx2.js} +16 -8
  49. package/dist/{casbin-Cr7RLtA3.js → casbin-cbSbhT_k.js} +2 -2
  50. package/dist/{casl-64gpT-8x.js → casl-C4OINZHI.js} +2 -2
  51. package/dist/{casl-DjEDhTCP.js → casl-CHHoCldP.js} +19 -10
  52. package/dist/catalog/index.d.ts +104 -23
  53. package/dist/catalog/index.js +117 -8
  54. package/dist/{catalog-HD2gf5mY.js → catalog-BFpz2EmT.js} +57 -26
  55. package/dist/{catalog-DZVbrF-z.js → catalog-DCspHDc8.js} +3 -3
  56. package/dist/{catalog-doc-Cdn7-0pQ.js → catalog-doc-DjMKzJp9.js} +53 -16
  57. package/dist/{catalog-fingerprint-CCP0-yQS.js → catalog-fingerprint-e6aCWosn.js} +19 -15
  58. package/dist/catalog-mRQQQhNK.js +1 -0
  59. package/dist/catalog-operations-Dadrl7Z-.js +60 -0
  60. package/dist/{create-CQWIpUG-.js → challenge-DImNcR7B.js} +157 -39
  61. package/dist/chat/index.d.ts +1 -1
  62. package/dist/chat/index.js +13 -10
  63. package/dist/chat-sdk/index.d.ts +44 -26
  64. package/dist/chat-sdk/index.js +17 -17
  65. package/dist/checks-CGkP3Z7A.js +40 -0
  66. package/dist/{claims-map-7oQ3ue4X.js → claims-map-CKkoAAYF.js} +5 -2
  67. package/dist/{claims-map-Ca-QX8C6.d.ts → claims-map-D1Pb5oRq.d.ts} +8 -5
  68. package/dist/claude-agent/index.d.ts +6 -6
  69. package/dist/claude-agent/index.js +6 -3
  70. package/dist/clerk/index.d.ts +11 -7
  71. package/dist/clerk/index.js +6 -6
  72. package/dist/cli/bin.js +4 -4
  73. package/dist/cli/index.d.ts +82 -7
  74. package/dist/cli/index.js +6 -6
  75. package/dist/{clients-C7zLFuWT.d.ts → clients-C_NOET3z.d.ts} +5 -5
  76. package/dist/{clients-DjU5ABMy.js → clients-DYr3U86j.js} +3 -3
  77. package/dist/cloud/index.d.ts +186 -38
  78. package/dist/cloud/index.js +293 -31
  79. package/dist/{cloud-ytQ3uviA.js → cloud-BFlGMaak.js} +5 -6
  80. package/dist/{codemod-5mpSpnUY.js → codemod-DLQ9Zpo4.js} +3 -4
  81. package/dist/{codemod-ua2hHy7w.js → codemod-DWSN2erG.js} +523 -201
  82. package/dist/collect-B5BL3klN.js +1 -0
  83. package/dist/{collect-mLTY4nwb.js → collect-B7ZFAJU3.js} +36 -64
  84. package/dist/{collect-Ci6akVwH.js → collect-Bzv3le0A.js} +6 -6
  85. package/dist/{compare-pfyVnBjE.js → compare-DTfyUunF.js} +2 -2
  86. package/dist/compile/index.d.ts +2 -2
  87. package/dist/compile/index.js +1 -1
  88. package/dist/{compile-1bsAezL0.d.ts → compile-BFzysW3o.d.ts} +36 -12
  89. package/dist/{compile-CMqMx_IN.js → compile-EzEMB-7v.js} +77 -33
  90. package/dist/{completion-BTFrHZhX.js → completion-saoYiRFO.js} +17 -8
  91. package/dist/config-BwPBfN0t.js +108 -0
  92. package/dist/{config-Bj2Ixq3d.js → config-DBeXXmBF.js} +2 -2
  93. package/dist/{config-report-DSpsLpCE.js → config-report-BipSWA6V.js} +9 -6
  94. package/dist/config-shape-ykV0Vm2n.js +134 -0
  95. package/dist/{connection-DjhIJSs2.js → connection-B72dg5Q2.js} +23 -22
  96. package/dist/connector-schema-CYLQNMYq.js +434 -0
  97. package/dist/{context-B_u3_bDJ.js → context-BnIzxTNE.js} +4 -3
  98. package/dist/convex/index.d.ts +13 -7
  99. package/dist/convex/index.js +9 -6
  100. package/dist/core-H-mbhpZc.js +341 -0
  101. package/dist/core-hWIARPDz.d.ts +206 -0
  102. package/dist/{create-CBMmFie-.d.ts → create-BSNrVuxh.d.ts} +87 -34
  103. package/dist/{create-B30OMUOJ.d.ts → create-BVq1lNQE.d.ts} +49 -28
  104. package/dist/{create-D_NmPOdH.d.ts → create-CM1FciYG.d.ts} +37 -29
  105. package/dist/{create-CGm28gyI.js → create-Cq4Uox0f.js} +13 -9
  106. package/dist/{create-DCF2SvoT.js → create-_noSrY1T.js} +15 -21
  107. package/dist/{credential-BcoiejpY.js → credential-CyyyvCsL.js} +42 -39
  108. package/dist/{credentials-DPyHmYz5.js → credentials-CdDxp7jN.js} +6 -6
  109. package/dist/{deciding-columns-Sq12mEA6.js → deciding-columns-NB4wcyBf.js} +13 -2
  110. package/dist/{delegation-j6-rc37o.js → delegation-CDB6_keF.js} +31 -22
  111. package/dist/delivery/index.d.ts +5 -5
  112. package/dist/delivery/index.js +6 -5
  113. package/dist/{delivery-DCAgNyCn.js → delivery-BupfvJIV.js} +81 -20
  114. package/dist/{delivery-event-xX4obB8F.js → delivery-event-JioK5YbS.js} +6 -6
  115. package/dist/denied-text-CHNlVInN.d.ts +22 -0
  116. package/dist/{describe-BybMRY7A.js → describe-Bb4hGK5d.js} +6 -5
  117. package/dist/{describe-B5qgDvEW.d.ts → describe-ByS9LgHK.d.ts} +5 -5
  118. package/dist/{device-BARQ8eYG.js → device-BwbJNmb2.js} +11 -8
  119. package/dist/{diff-CmuSD3vc.js → diff-CN8IYhC_.js} +2 -2
  120. package/dist/{diff-3jbx6Rm4.js → diff-iZWV65nC.js} +23 -14
  121. package/dist/{digest-B3kc_PgQ.d.ts → digest-8Yx2CchM.d.ts} +3 -3
  122. package/dist/{doctor-BdZw53-k.js → doctor-CHD1M9R5.js} +485 -141
  123. package/dist/{doctor-3ZqNHX_G.js → doctor-D3wo-yuz.js} +4 -4
  124. package/dist/drizzle/index.d.ts +33 -19
  125. package/dist/drizzle/index.js +17 -9
  126. package/dist/elysia/index.d.ts +17 -11
  127. package/dist/elysia/index.js +5 -5
  128. package/dist/{errors-BKy0EfhN.js → errors-B6R_lg2a.js} +13 -4
  129. package/dist/{errors-BWXBMaKK.d.ts → errors-CHwoRRpB.d.ts} +4 -1
  130. package/dist/{errors-CWTY6uih.js → errors-Vpu6rKHl.js} +14 -10
  131. package/dist/{errors-DH5QEGXh.d.ts → errors-zi_4T-rx.d.ts} +22 -6
  132. package/dist/{evaluate-CNClBvcj.js → evaluate-Dd8Ta0Ie.js} +185 -80
  133. package/dist/{evaluations-beAooV0n.js → evaluations-IBceAeKT.js} +41 -20
  134. package/dist/{evaluations-C_1vdSZc.d.ts → evaluations-z8dQFDaN.d.ts} +12 -6
  135. package/dist/eve/index.d.ts +9 -6
  136. package/dist/eve/index.js +4 -4
  137. package/dist/{event-time-CsegxXxB.js → event-time-BGy48400.js} +8 -4
  138. package/dist/{expiry-D4_YKRKD.js → expiry-6XByK0dm.js} +8 -5
  139. package/dist/express/index.d.ts +9 -6
  140. package/dist/express/index.js +9 -6
  141. package/dist/fastify/index.d.ts +16 -10
  142. package/dist/fastify/index.js +8 -5
  143. package/dist/{fetch-adapter-Dw0MTS3D.d.ts → fetch-adapter-C1DCvpqV.d.ts} +9 -6
  144. package/dist/{fetch-adapter-DD_gfmrC.js → fetch-adapter-JL43jD3E.js} +14 -11
  145. package/dist/fields-D0vUI6dq.js +498 -0
  146. package/dist/{files-C5ZI27eV.js → files-B3AA05f1.js} +21 -5
  147. package/dist/{files-D_JIzUrP.js → files-BSjrtIHw.js} +11 -4
  148. package/dist/{fixtures-B7XrLeY7.js → fixtures-A1_sp_tR.js} +15 -6
  149. package/dist/{flags-C3DktBDY.js → flags-DXjoTVbS.js} +2 -2
  150. package/dist/{freeze-CrU8nQeX.js → freeze-jjan0lCv.js} +4 -1
  151. package/dist/{from-snapshot-CTCMsFZk.js → from-snapshot-DCakWRsr.js} +26 -16
  152. package/dist/gen-B5kvbAoZ.js +58 -0
  153. package/dist/gen-DWCYcMQM.js +827 -0
  154. package/dist/generate-CRVV5V7l.js +165 -0
  155. package/dist/generate-CezbCaTI.js +275 -0
  156. package/dist/{grantee-hxrUsbpM.js → grantee-Dke-9rd1.js} +4 -4
  157. package/dist/{grantee-conditions-CcXf8hMM.js → grantee-conditions-BrYPe-w0.js} +12 -12
  158. package/dist/{grantee-match-DbENBHLB.js → grantee-match-7RZZvoT_.js} +12 -6
  159. package/dist/{graph-sql-B-dsAT6j.d.ts → graph-sql-BwFC4Qjs.d.ts} +3 -3
  160. package/dist/h3/index.d.ts +10 -7
  161. package/dist/h3/index.js +3 -3
  162. package/dist/headers-B9jQxjtW.d.ts +10 -0
  163. package/dist/{helpers-CBYVMjwh.js → helpers-DJicaG6f.js} +40 -28
  164. package/dist/hono/index.d.ts +16 -10
  165. package/dist/hono/index.js +5 -5
  166. package/dist/{hosted-BPk51-kX.d.ts → hosted-Cmtxogd0.d.ts} +44 -20
  167. package/dist/{hosted-B46-5LYE.js → hosted-D0IzESu_.js} +68 -25
  168. package/dist/{http-ujKm0JXE.js → http-DH94eh6f.js} +4 -4
  169. package/dist/{http-BBoKefeS.js → http-DKLXrFGk.js} +13 -7
  170. package/dist/{http-DXJ37RDA.js → http-DOL33cO0.js} +11 -8
  171. package/dist/{import-wyqXUyjm.js → import-CST57XLp.js} +64 -51
  172. package/dist/{import-CNV7I2Dw.js → import-_YqhhwvX.js} +6 -6
  173. package/dist/{index-B8YjkEZ4.d.ts → index-B8s204GL.d.ts} +64 -52
  174. package/dist/{index-Ch8LpNDp.d.ts → index-BT5-1VsX.d.ts} +64 -25
  175. package/dist/{index-DuWxc5dt.d.ts → index-BW_0MZOS.d.ts} +388 -149
  176. package/dist/index-BhxEUY9J.d.ts +233 -0
  177. package/dist/index-Bv5iXPqU.d.ts +210 -0
  178. package/dist/{index-C-6Letxg.d.ts → index-_9UiQIkt.d.ts} +164 -77
  179. package/dist/index.d.ts +22 -21
  180. package/dist/index.js +35 -33
  181. package/dist/{init-GG6Jh8HD.js → init-Dz_PsHdv.js} +5 -5
  182. package/dist/{init-DeMYsnYJ.js → init-cE3A8aXq.js} +10 -10
  183. package/dist/{instance-options-BsVpyGIk.d.ts → instance-options-B0KXqTrJ.d.ts} +4 -4
  184. package/dist/{instance-snapshot-BOEhcqIF.js → instance-snapshot--JWiTrvO.js} +81 -56
  185. package/dist/{instant-BluqDvyS.js → instant-DK3Iz83e.js} +2 -2
  186. package/dist/{internals-Dk8A8fX3.js → internals-B3IgHrvo.js} +6 -3
  187. package/dist/{json-schema-B-vAwlde.js → json-schema-BPGa-RjQ.js} +9 -3
  188. package/dist/{json-schema-CN_iLFH2.d.ts → json-schema-BfXgnRNT.d.ts} +4 -4
  189. package/dist/jwt/index.d.ts +125 -17
  190. package/dist/jwt/index.js +157 -16
  191. package/dist/{kernel-D0NVb1cK.js → kernel-C-fYydV2.js} +151 -16
  192. package/dist/kysely/index.d.ts +49 -33
  193. package/dist/kysely/index.js +9 -7
  194. package/dist/{live-options-BaAFCIiu.js → live-options-BBIT68le.js} +2 -2
  195. package/dist/{load-DFS_ry0W.js → load-DjSU5KXO.js} +6 -6
  196. package/dist/load-Dm0pSYH3.js +1 -0
  197. package/dist/{login-Dfe5RlYk.js → login-D-8tMqzo.js} +4 -4
  198. package/dist/{login-imhuwvn3.js → login-DplQ0s84.js} +18 -15
  199. package/dist/{manifest-dvL2XEe1.js → manifest-Cgiq5oqc.js} +67 -37
  200. package/dist/{manifest-mx5ghSFM.d.ts → manifest-CzzWtnAb.d.ts} +144 -28
  201. package/dist/{manifest-schema-C0kK_8V0.js → manifest-schema-2r37XRhD.js} +80 -9
  202. package/dist/{manifest-C8IzW3Do.js → manifest-wg8WkkpD.js} +11 -7
  203. package/dist/{map-claims-D3oRmTk0.js → map-claims-BNWCJtmP.js} +27 -18
  204. package/dist/{map-error-Dr70oA_3.js → map-error-pasIGqMT.js} +7 -7
  205. package/dist/{markers-C6joDI3o.js → markers-BeHZ4x9Q.js} +20 -5
  206. package/dist/mcp/index.d.ts +154 -47
  207. package/dist/mcp/index.js +200 -41
  208. package/dist/{migrate-CIq4-E9F.js → migrate-B7oP_sQU.js} +102 -31
  209. package/dist/module-values-BJTBdo6y.js +107 -0
  210. package/dist/nest/index.d.ts +23 -13
  211. package/dist/nest/index.js +18 -11
  212. package/dist/next/client.d.ts +5 -2
  213. package/dist/next/client.js +1 -1
  214. package/dist/next/index.d.ts +72 -26
  215. package/dist/next/index.js +110 -6
  216. package/dist/next/plugin.d.ts +1 -1
  217. package/dist/next/plugin.js +4 -3
  218. package/dist/node/index.d.ts +5 -5
  219. package/dist/node/index.js +3 -3
  220. package/dist/{ocsf-BFp-PZZA.js → ocsf-TcjRBgIs.js} +15 -5
  221. package/dist/openai/index.d.ts +13 -7
  222. package/dist/openai/index.js +3 -3
  223. package/dist/openapi/index.d.ts +61 -30
  224. package/dist/openapi/index.js +2 -2
  225. package/dist/{openapi-B7HZ0f-r.js → openapi-BOsx0xn9.js} +34 -24
  226. package/dist/{openapi-C4dDTVEd.js → openapi-CBZUhA3l.js} +4 -5
  227. package/dist/{openapi-DD1SV-5-.js → openapi-VeHHU2l9.js} +23 -14
  228. package/dist/{operation-findings-DgATDpvh.js → operation-findings-CXtFzlKJ.js} +3 -3
  229. package/dist/{operations-X0VM7F3m.d.ts → operations-Ci_rT6Uo.d.ts} +10 -7
  230. package/dist/orpc/index.d.ts +68 -14
  231. package/dist/orpc/index.js +62 -13
  232. package/dist/otel/index.d.ts +7 -4
  233. package/dist/otel/index.js +8 -5
  234. package/dist/output-files-BHOIlrfD.js +1 -0
  235. package/dist/{output-files-DhRBBE4n.js → output-files-BIQ_9pIs.js} +29 -17
  236. package/dist/{output-1im__-08.js → output-tkju6U7R.js} +15 -7
  237. package/dist/ownership-B4L59T9u.js +1054 -0
  238. package/dist/parse-1_ZheTW5.js +151 -0
  239. package/dist/parse-local-manifest-BQhTlLQS.d.ts +10 -0
  240. package/dist/parse-local-manifest-DEiCF4ah.js +69 -0
  241. package/dist/{parse-request-D_tUXG6M.js → parse-request-CwCZpyjV.js} +7 -8
  242. package/dist/{paths-DXSHAMIa.js → paths-CUvURzHp.js} +4 -1
  243. package/dist/pdp/index.d.ts +9 -6
  244. package/dist/pdp/index.js +23 -12
  245. package/dist/{peer-CRvC7Hg1.js → peer-C9LvBCcb.js} +1 -1
  246. package/dist/peer-Q0fuZ6hx.js +982 -0
  247. package/dist/{permdock-SV8ZINYT.d.ts → permdock-B6Sf4T_S.d.ts} +270 -117
  248. package/dist/{permdock-BrAscV28.js → permdock-L-_I_3zP.js} +226 -74
  249. package/dist/{permission-registry-Br4jSNVi.js → permission-registry-B8tYxPIt.js} +24 -11
  250. package/dist/{vocabulary-CN8H_9UF.d.ts → permission-types-CAY-GU7e.d.ts} +130 -104
  251. package/dist/{permissions-u_KHg-sN.d.ts → permissions-Bx6UI8n1.d.ts} +6 -2
  252. package/dist/{permissions-B-wCP5ZC.js → permissions-CVXmRILq.js} +3 -3
  253. package/dist/{permissions-BPxlwVhN.js → permissions-mDcTWoBs.js} +8 -5
  254. package/dist/pg-DQTqRrou.js +60 -0
  255. package/dist/{pins-8ILTftC9.js → pins-nqarl3oE.js} +4 -1
  256. package/dist/pkce-CnmmYqUZ.js +21 -0
  257. package/dist/{policy-77FSAq_V.d.ts → policy-Ba4bDhaj.d.ts} +5 -5
  258. package/dist/{policy-DbM5YYtV.js → policy-CLQ8__GF.js} +49 -20
  259. package/dist/{policy-from-catalog-C2gMa2Dj.js → policy-from-catalog-CJgOm6aq.js} +28 -25
  260. package/dist/{policy-module-CTlwMvLI.js → policy-module-xym9fnSq.js} +12 -6
  261. package/dist/{policy-types-n0uRTsW8.d.ts → policy-types-CCiDRZBH.d.ts} +802 -334
  262. package/dist/postgres-store-DcyrPS-r.js +1028 -0
  263. package/dist/{postgrest-DAjUkF9w.js → postgrest-D4nuPXIQ.js} +88 -36
  264. package/dist/{postgrest-CEgRbefE.d.ts → postgrest-DicQyqm-.d.ts} +60 -30
  265. package/dist/powersync-DHNQX06W.js +1117 -0
  266. package/dist/{powersync-DISt6SUe.js → powersync-DXqGuq9A.js} +3 -3
  267. package/dist/powersync-Djf-zCpB.js +1 -0
  268. package/dist/preset/index.d.ts +38 -28
  269. package/dist/preset/index.js +1 -1
  270. package/dist/{preset-DZdU0tne.js → preset-BjLzeFpp.js} +58 -34
  271. package/dist/{principal-source-pHneukrx.js → principal-source-C6N60GtM.js} +10 -10
  272. package/dist/prisma/index.d.ts +69 -41
  273. package/dist/prisma/index.js +21 -17
  274. package/dist/{problem-CTviyH5L.js → problem-BVLHFK33.js} +41 -21
  275. package/dist/{problem-details-cn5X30gZ.js → problem-details-CLDgX1KV.js} +13 -4
  276. package/dist/{problem-types-CJ2325SZ.js → problem-types-DSsRfONQ.js} +4 -1
  277. package/dist/prompt-BYc6drYW.js +938 -0
  278. package/dist/protected-action-BE7N_Luo.d.ts +58 -0
  279. package/dist/protected-action-DUYqb-Ma.js +80 -0
  280. package/dist/{protected-BlF0F6wL.js → protected-action-QEA8arRB.js} +48 -14
  281. package/dist/{provider-B1al-AZz.js → provider-C55OGXJ7.js} +5 -4
  282. package/dist/{provider-DILL9oPK.d.ts → provider-DXfq5c2d.d.ts} +1 -1
  283. package/dist/{provider-store-DM6DNcta.js → provider-store-CaTv00tr.js} +13 -9
  284. package/dist/pull-B65ndFNZ.js +1 -0
  285. package/dist/{pull-jEwbf80J.js → pull-CwpGaQSi.js} +12 -11
  286. package/dist/{push-BD4f15co.js → push-DgssgzkK.js} +62 -16
  287. package/dist/{pushed-policy-DCW91KQU.d.ts → pushed-policy-D1Eoi6NM.d.ts} +12 -6
  288. package/dist/{pushed-policy-CqtxkV4G.js → pushed-policy-ITwYKvvH.js} +10 -7
  289. package/dist/react/index.d.ts +9 -8
  290. package/dist/react/index.js +7 -6
  291. package/dist/react/provider-client.d.ts +1 -1
  292. package/dist/react/provider-client.js +1 -1
  293. package/dist/react-native/index.d.ts +104 -51
  294. package/dist/react-native/index.js +394 -67
  295. package/dist/{refs-K6eWUJ0H.js → refs-C8BKxc_e.js} +17 -3
  296. package/dist/{relation-walk-3OyDBF0S.js → relation-walk-DK_gkgL7.js} +12 -9
  297. package/dist/{relations-BnCWnJGI.js → relations-BxvRvDHK.js} +3 -3
  298. package/dist/{replay-Du1tJjG7.js → replay-BU09ad4L.js} +1 -1
  299. package/dist/{replay-Bkm-Ne4l.d.ts → replay-DNftIb_R.d.ts} +1 -1
  300. package/dist/{request-context-C81Pip9n.js → request-context-C25ilqiJ.js} +8 -8
  301. package/dist/{request-schema-CMreVuFM.js → request-schema-DhX7UbfQ.js} +4 -1
  302. package/dist/resend/index.d.ts +34 -28
  303. package/dist/resend/index.js +29 -29
  304. package/dist/resolve-names-CF7xXLSG.js +201 -0
  305. package/dist/{resource-relations-D_jw0BFx.js → resource-relations-8-pCScBO.js} +18 -9
  306. package/dist/{retire-CALjIQ7e.js → retire-B2xffQgY.js} +15 -6
  307. package/dist/{revocations-R07lFBnX.d.ts → revocations-BaUXHM1N.d.ts} +6 -3
  308. package/dist/{rls-DTvYd-lI.js → rls-CNEH2_BG.js} +743 -624
  309. package/dist/{rls-BAqP4q66.js → rls-Ca8Jz9b5.js} +41 -10
  310. package/dist/{role-builder-uWQZ4v84.js → role-builder-BK2-T6oD.js} +41 -20
  311. package/dist/rolldown-runtime-C3I60J0A.js +4 -0
  312. package/dist/{row-conditions-h2HythXQ.js → row-conditions-BAGHOmVq.js} +4 -3
  313. package/dist/{rpc-VSl5ylaQ.js → rpc-fNqAIqQk.js} +8 -5
  314. package/dist/{run-CUKuz0A8.js → run-Bz26OTfO.js} +26 -23
  315. package/dist/run-D-JE8QWb.js +1 -0
  316. package/dist/{run-ticket-DocwaTKn.d.ts → run-ticket-DbWI9f99.d.ts} +33 -13
  317. package/dist/{run-ticket-sxFI6LAk.js → run-ticket-Dv7aF7Dk.js} +29 -8
  318. package/dist/{runtime-D3VTAiCA.js → runtime-BGnrOkVH.js} +5 -2
  319. package/dist/{saas-BCXRuXca.js → saas-iWnUdwCt.js} +42 -29
  320. package/dist/{scan-qvOe0hS3.js → scan-DCj1KQfn.js} +1 -1
  321. package/dist/{schema-B4v0Qrac.js → schema-BOJjqlWL.js} +3 -2
  322. package/dist/{schema-yLuBWWsh.js → schema-Dst9I9Gs.js} +9 -5
  323. package/dist/scim/index.d.ts +3 -2
  324. package/dist/scim/index.js +3 -1
  325. package/dist/scim-D8YupzX1.js +44 -0
  326. package/dist/{scim-ClHtpyV3.js → scim-jJBJ7g1Z.js} +35 -551
  327. package/dist/{scopes-CUPSjo9q.js → scopes-0Up_UA2t.js} +42 -24
  328. package/dist/server/index.d.ts +12 -12
  329. package/dist/server/index.js +13 -13
  330. package/dist/{server-C3WXAHZj.js → server-3cVlTLde.js} +31 -31
  331. package/dist/{server-types-CKQiCnON.d.ts → server-types-CIlpSA2G.d.ts} +81 -46
  332. package/dist/{sha256-D9ihqmvd.js → sha256-C-4WXKIu.js} +4 -3
  333. package/dist/{shared-BAK8t4Uo.js → shared-Afctg7B0.js} +100 -61
  334. package/dist/{shared-DvvFzYXe.js → shared-l0oGGetg.js} +9 -6
  335. package/dist/{signals-D3NcTKUS.js → signals-B1vHR3fN.js} +2 -2
  336. package/dist/{sink-BEZSlMS_.js → sink-D9_vh372.js} +32 -21
  337. package/dist/{sink-4-eQIRWf.d.ts → sink-Dvi7YZG_.d.ts} +44 -20
  338. package/dist/{skills-B6lVdD_W.js → skills-Bjj7BNEQ.js} +16 -12
  339. package/dist/{skills-CTYwkl44.js → skills-OuoMR49L.js} +3 -3
  340. package/dist/{snapshot-B7DkYg6g.js → snapshot-CXlzi69u.js} +21 -18
  341. package/dist/{snapshot-cache-PXI-vGpY.d.ts → snapshot-cache-BAXZ0KOp.d.ts} +21 -12
  342. package/dist/{snapshot-cache-DZHQ0KF6.js → snapshot-cache-Bx_4xC_6.js} +14 -11
  343. package/dist/solid/index.d.ts +55 -15
  344. package/dist/solid/index.js +46 -12
  345. package/dist/solid-start/index.d.ts +30 -12
  346. package/dist/solid-start/index.js +3 -3
  347. package/dist/sources-B1Os_YUu.d.ts +312 -0
  348. package/dist/{sources-vs5dGOsS.js → sources-CMAM-2A3.js} +156 -51
  349. package/dist/sources-qoIJQrJv.js +11 -0
  350. package/dist/{sql-B5T1IL83.js → sql-0WjxIp9g.js} +32 -7
  351. package/dist/sql-B80DFdpG.d.ts +10 -0
  352. package/dist/{src-Cu2m75uo.js → src-DZ0l9UAg.js} +305 -123
  353. package/dist/ssf/index.d.ts +4 -4
  354. package/dist/ssf/index.js +665 -224
  355. package/dist/{standard-webhooks-rbD7LS6h.d.ts → standard-webhooks-C-qX4mJW.d.ts} +7 -7
  356. package/dist/{standard-webhooks-DgFFD-Ga.js → standard-webhooks-D67a3nzk.js} +5 -5
  357. package/dist/{store-BDutJkDL.js → store-RNFvaJJv.js} +43 -29
  358. package/dist/{store-options-u0ycEe8s.js → store-options-Dil3lraY.js} +105 -15
  359. package/dist/stores-C0Kta5Ft.d.ts +59 -0
  360. package/dist/{stores-CGhM8BN_.js → stores-DxZWDXCs.js} +42 -5
  361. package/dist/{stream-CvdUS9V1.js → stream-CDvF0sJm.js} +5 -5
  362. package/dist/{stream-CeCMJmBB.d.ts → stream-ltuLdtTG.d.ts} +4 -3
  363. package/dist/{style-DiKWnAvn.js → style-DblOtSga.js} +1 -1
  364. package/dist/{style-Uao76wO7.js → style-Ds11Hmk4.js} +3 -1
  365. package/dist/{subject-settings-CkEwrw3W.js → subject-settings-8sH5HlII.js} +8 -4
  366. package/dist/{row-check-Dt35czLy.d.ts → subject-settings-vNW8qmUH.d.ts} +30 -18
  367. package/dist/supabase/index.d.ts +48 -37
  368. package/dist/supabase/index.js +6 -6
  369. package/dist/supabase/middleware.d.ts +19 -13
  370. package/dist/supabase/middleware.js +7 -7
  371. package/dist/{supabase-x5JtR2tc.js → supabase-BL1qJzzY.js} +82 -36
  372. package/dist/{supabase-By_frk3U.js → supabase-D39cuGPt.js} +3 -3
  373. package/dist/{supabase-hook-BMoEhZir.js → supabase-hook-B-yXnzUl.js} +1206 -286
  374. package/dist/supabase-hook-H-MtE9Wd.js +1 -0
  375. package/dist/supautils-BU-pAEpf.js +808 -0
  376. package/dist/{support-session-C6xJQYut.js → support-session-BsmPCbz8.js} +22 -22
  377. package/dist/svelte/PermissionBoundary.svelte +2 -6
  378. package/dist/svelte/Protected.svelte +2 -8
  379. package/dist/svelte/index.d.ts +9 -8
  380. package/dist/svelte/index.js +10 -9
  381. package/dist/svelte/runtime.d.ts +4 -4
  382. package/dist/svelte/runtime.js +4 -4
  383. package/dist/svelte/source.d.ts +9 -8
  384. package/dist/svelte/source.js +6 -5
  385. package/dist/sveltekit/index.d.ts +30 -12
  386. package/dist/sveltekit/index.js +2 -2
  387. package/dist/{ownership-DqaJNJPn.js → tables-DeMNEy6V.js} +1025 -1085
  388. package/dist/tanstack-start/index.d.ts +22 -10
  389. package/dist/tanstack-start/index.js +2 -2
  390. package/dist/{target-Bw37TFNA.js → target-qdEAnnhU.js} +6 -6
  391. package/dist/{tenancy-DN2QAx9z.js → tenancy-5d1zVBvK.js} +36 -21
  392. package/dist/terminal/index.d.ts +23 -14
  393. package/dist/terminal/index.js +17 -20
  394. package/dist/testing/core.d.ts +2 -0
  395. package/dist/testing/core.js +1 -0
  396. package/dist/testing/fixtures/index.d.ts +15 -0
  397. package/dist/testing/fixtures/index.js +831 -0
  398. package/dist/testing/index.d.ts +235 -285
  399. package/dist/testing/index.js +502 -927
  400. package/dist/testing/saas/index.d.ts +43 -27
  401. package/dist/testing/saas/index.js +2 -2
  402. package/dist/testing/saas/permissions.d.ts +1 -1
  403. package/dist/testing/saas/permissions.js +1 -1
  404. package/dist/text-diff-BtfSmdUo.js +444 -0
  405. package/dist/{thenable-yD7SabqG.js → thenable-BNSM1U2R.js} +12 -3
  406. package/dist/{time-DkWjdL98.js → time-nR1JesoH.js} +32 -8
  407. package/dist/{token-BLZcjQgt.js → token-DC9EQiet.js} +15 -13
  408. package/dist/{tool-refusal-CMLN5xhn.js → tool-refusal-Qpjs_W6M.js} +5 -2
  409. package/dist/trpc/index.d.ts +11 -8
  410. package/dist/trpc/index.js +15 -9
  411. package/dist/type-helpers-BIPIDa6a.d.ts +50 -0
  412. package/dist/{types-8RnwUAvE.d.ts → types-AMJ5qoU_.d.ts} +49 -30
  413. package/dist/{types-C_IiEs64.d.ts → types-B2mlGuhW.d.ts} +14 -11
  414. package/dist/{types-_WhUP7ud.d.ts → types-B4uqKDnp.d.ts} +25 -12
  415. package/dist/{types-CX7AvRqP.d.ts → types-BJk0BKRX.d.ts} +24 -14
  416. package/dist/types-B_d_g7T3.d.ts +262 -0
  417. package/dist/{types-BdtSDbBO.d.ts → types-B_tiYvk8.d.ts} +59 -32
  418. package/dist/{types-DqzsnlSA.js → types-CcUXciSj.js} +17 -5
  419. package/dist/{types-Dfv0aTER.d.ts → types-DC1Loeh3.d.ts} +449 -168
  420. package/dist/{types-lUlG3TVd.d.ts → types-DHKPcqzr.d.ts} +2 -2
  421. package/dist/{types-C791HFu9.d.ts → types-DjuMBNF9.d.ts} +68 -32
  422. package/dist/{types-C863OQiR.d.ts → types-HzqOtvsJ.d.ts} +23 -12
  423. package/dist/{types-Druu9wLM.d.ts → types-ZzRGoViD.d.ts} +77 -24
  424. package/dist/{types-BzzaHxt3.d.ts → types-ah9NlU6j.d.ts} +137 -48
  425. package/dist/{types-CVZSNocA.d.ts → types-djVzLlIV.d.ts} +31 -14
  426. package/dist/{types-BtHtcKMr.d.ts → types-yUuPR5Hy.d.ts} +47 -24
  427. package/dist/unplugin/index.d.ts +1 -1
  428. package/dist/unplugin/index.js +2 -2
  429. package/dist/usage-CYeXek0p.js +1 -0
  430. package/dist/{usage-SveTRTyr.js → usage-CxEzS4ey.js} +50 -26
  431. package/dist/{usage-CRVl9V3t.js → usage-ab0PdusX.js} +2 -2
  432. package/dist/{validation-error-ZfUHbKvf.js → validation-error-CYg2kJEw.js} +4 -1
  433. package/dist/{validation-error-DHUrAkku.d.ts → validation-error-YGg2mXyH.d.ts} +5 -2
  434. package/dist/{validity-CZ7-y0Cj.js → validity-Buc7w8E9.js} +13 -10
  435. package/dist/{verifier-DHuh-okk.js → verifier-DUV6pLqZ.js} +10 -4
  436. package/dist/{verify-BaAKx7t6.js → verify-DZeqoWu5.js} +417 -489
  437. package/dist/version-DMQ0dnN5.js +48 -0
  438. package/dist/version-DizhmD72.js +1 -0
  439. package/dist/{views-DTIIO-oQ.js → views-CD8wuL4Z.js} +19 -6
  440. package/dist/vocabulary-DEJ5j4mR.d.ts +70 -0
  441. package/dist/vue/index.d.ts +71 -21
  442. package/dist/vue/index.js +50 -13
  443. package/dist/{waiter-B986w1oK.d.ts → waiter-Bu9zAlE0.d.ts} +13 -10
  444. package/dist/{waiter-BGUtGYoU.js → waiter-aBLM63_f.js} +1 -1
  445. package/dist/{watch-vea54PRw.js → watch-Cx_WciLE.js} +8 -8
  446. package/dist/watch-DB42U1ib.js +1 -0
  447. package/dist/webmcp/index.d.ts +11 -11
  448. package/dist/webmcp/index.js +8 -5
  449. package/dist/{where-scope-C9vfEphl.js → where-scope-DlCdCM_8.js} +56 -30
  450. package/dist/{who-can-DWBAcaCQ.js → who-can-rI7dCR9Q.js} +23 -20
  451. package/dist/workflow/index.d.ts +3 -3
  452. package/dist/workflow/index.js +13 -13
  453. package/dist/workflow-sdk/index.d.ts +19 -13
  454. package/dist/workflow-sdk/index.js +6 -6
  455. package/dist/{wrap-gX61EtpB.js → wrap-B2wziJI_.js} +11 -5
  456. package/dist/{wrap-C5jC6sKI.d.ts → wrap-DlJE3gS_.d.ts} +8 -5
  457. package/package.json +25 -14
  458. package/schemas/catalog-v1.json +3 -0
  459. package/schemas/cli-result-v1.json +1 -0
  460. package/schemas/cloud-api-v1.json +152 -7
  461. package/schemas/connector-v1.json +8 -0
  462. package/schemas/supabase-claims-v1.json +5 -0
  463. package/schemas/supabase-manifest-v1.json +308 -75
  464. package/skills/permdock/SKILL.md +1 -0
  465. package/skills/permdock-agents/references/runtimes.md +3 -1
  466. package/skills/permdock-approvals/references/stores-and-resume.md +2 -1
  467. package/skills/permdock-credentials/references/tokens-keys-links.md +8 -6
  468. package/skills/permdock-data/references/queries-and-rls.md +6 -2
  469. package/skills/permdock-tenancy/SKILL.md +1 -1
  470. package/skills/permdock-tenancy/references/ownership-and-custom-roles.md +2 -1
  471. package/skills/permdock-wire/references/adapters.md +28 -22
  472. package/skills/permdock-wire/references/policy-options.md +1 -0
  473. package/dist/catalog-BoWglDPI.js +0 -1
  474. package/dist/collect-D7eQDffE.js +0 -1
  475. package/dist/config-bs_kZeYq.js +0 -162
  476. package/dist/denied-text-CiFQNuMV.d.ts +0 -19
  477. package/dist/fields-OYG_JR78.js +0 -203
  478. package/dist/generate-CNU1pIOo.js +0 -171
  479. package/dist/headers-BIjfMaoC.js +0 -8
  480. package/dist/headers-CIbDTUTK.d.ts +0 -7
  481. package/dist/index-Cp_ilKi1.d.ts +0 -91
  482. package/dist/index-CueFnxQc.d.ts +0 -110
  483. package/dist/load-BxEtwlBS.js +0 -1
  484. package/dist/output-files-B3IZJksC.js +0 -1
  485. package/dist/package-root-Dk_ETdkp.js +0 -31
  486. package/dist/parse-Cxq0WxrA.js +0 -53
  487. package/dist/parse-local-manifest-5ODwqu8b.d.ts +0 -10
  488. package/dist/parse-local-manifest-CVSs6J9I.js +0 -34
  489. package/dist/peer-C8swJ2GH.js +0 -50
  490. package/dist/policies-DP2nqRoF.js +0 -295
  491. package/dist/powersync-BkWWCS1K.js +0 -538
  492. package/dist/powersync-MMJ2mI2q.js +0 -1
  493. package/dist/problem-details-B45V5d2b.d.ts +0 -7
  494. package/dist/prompt-DfZLJLIn.js +0 -32
  495. package/dist/protected-RFGpakN9.d.ts +0 -38
  496. package/dist/pull-CvpINcMK.js +0 -1
  497. package/dist/run-DDwUaJDU.js +0 -1
  498. package/dist/sources-Xc4zkszI.d.ts +0 -190
  499. package/dist/stores-BUGNbJTt.d.ts +0 -30
  500. package/dist/supabase-hook-CCw5m35C.js +0 -1
  501. package/dist/supautils-B6HYL9eL.js +0 -91
  502. package/dist/text-diff-BQcUapOb.js +0 -15
  503. package/dist/types-B3_ooZgZ.d.ts +0 -172
  504. package/dist/usage-CZpSQP6L.js +0 -1
  505. package/dist/version-CEbQ5UeM.js +0 -18
  506. package/dist/version-DXkYUISx.js +0 -1
  507. package/dist/watch--ovlPOc0.js +0 -1
@@ -1,12 +1,12 @@
1
1
  import { n as isReadonlyArray, r as isRecord, t as compact } from "./compact-CAf557ZB.js";
2
- import { n as freezeDeep } from "./freeze-CrU8nQeX.js";
3
- import { i as readAppData } from "./app-data-MuyzVqX8.js";
4
- import { d as isoNow } from "./time-DkWjdL98.js";
5
- import { t as canonicalJson } from "./canonical-json-BC8_nMTw.js";
6
- import { n as sha256, r as sha256Digest } from "./sha256-D9ihqmvd.js";
7
- import { d as membershipEvent, f as memoryDecisionSink } from "./sink-BEZSlMS_.js";
8
- import { n as readBodyText, t as MAX_BODY_BYTES } from "./body-text-QcXok_SI.js";
9
- import { t as readClaim } from "./claims-map-7oQ3ue4X.js";
2
+ import { i as readAppData } from "./app-data-UNNm07jV.js";
3
+ import { d as isoNow } from "./time-nR1JesoH.js";
4
+ import { t as canonicalJson } from "./canonical-json-DwilZ1iB.js";
5
+ import { n as sha256, r as sha256Digest } from "./sha256-C-4WXKIu.js";
6
+ import { d as membershipEvent, f as memoryDecisionSink } from "./sink-D9_vh372.js";
7
+ import { n as readBodyText, t as MAX_BODY_BYTES } from "./body-text-DQhcmqdY.js";
8
+ import { t as readClaim } from "./claims-map-CKkoAAYF.js";
9
+ import { _ as SCIM_CONTENT_TYPE, b as isDirectoryUniquenessError, c as parseScimFilter, f as ERROR_SCHEMA, g as ROLES_EXTENSION, l as APP_DATA_EXTENSION, m as LIST_SCHEMA, o as filterSupported, p as GROUP_SCHEMA, v as USER_SCHEMA, y as isDirectoryNotFoundError } from "./postgres-store-DcyrPS-r.js";
10
10
  //#region src/scim/auth.ts
11
11
  function hexToBytes(hex) {
12
12
  if (hex.length % 2 !== 0) return;
@@ -85,43 +85,6 @@ function sha256Hex(value) {
85
85
  return hex;
86
86
  }
87
87
  //#endregion
88
- //#region src/scim/types.ts
89
- const SCIM_CONTENT_TYPE = "application/scim+json";
90
- const USER_SCHEMA = "urn:ietf:params:scim:schemas:core:2.0:User";
91
- const GROUP_SCHEMA = "urn:ietf:params:scim:schemas:core:2.0:Group";
92
- const LIST_SCHEMA = "urn:ietf:params:scim:api:messages:2.0:ListResponse";
93
- const ERROR_SCHEMA = "urn:ietf:params:scim:api:messages:2.0:Error";
94
- const PATCH_SCHEMA = "urn:ietf:params:scim:api:messages:2.0:PatchOp";
95
- /** The RFC 7643 section 3.3 Group extension that carries PermDock roles. */
96
- const ROLES_EXTENSION = "urn:ietf:params:scim:schemas:extension:permdock:2.0:Group";
97
- /** The extension that carries the application's own data (`x`) on a User or a Group. */
98
- const APP_DATA_EXTENSION = "urn:ietf:params:scim:schemas:extension:permdock:2.0:AppData";
99
- var DirectoryUniquenessError = class extends Error {
100
- name = "DirectoryUniquenessError";
101
- code = "uniqueness";
102
- constructor(message = "uniqueness") {
103
- super(message);
104
- }
105
- };
106
- var DirectoryNotFoundError = class extends Error {
107
- name = "DirectoryNotFoundError";
108
- code = "not-found";
109
- constructor(message = "not found") {
110
- super(message);
111
- }
112
- };
113
- function isNamedError(error, name, code) {
114
- return error instanceof Error && error.name === name && Reflect.get(error, "code") === code;
115
- }
116
- /** Matches by `name` and `code`, so an error from another copy of the module still maps. */
117
- function isDirectoryUniquenessError(error) {
118
- return isNamedError(error, "DirectoryUniquenessError", "uniqueness");
119
- }
120
- /** Matches by `name` and `code`, so an error from another copy of the module still maps. */
121
- function isDirectoryNotFoundError(error) {
122
- return isNamedError(error, "DirectoryNotFoundError", "not-found");
123
- }
124
- //#endregion
125
88
  //#region src/scim/discovery.ts
126
89
  const SCHEMA_SCHEMA = "urn:ietf:params:scim:schemas:core:2.0:Schema";
127
90
  function serviceProviderConfig() {
@@ -240,240 +203,11 @@ function schemas() {
240
203
  ];
241
204
  }
242
205
  //#endregion
243
- //#region src/scim/filter.ts
244
- const COMPARE = /* @__PURE__ */ new Set([
245
- "eq",
246
- "ne",
247
- "co",
248
- "sw"
249
- ]);
250
- function skipSpace(input, index) {
251
- let cursor = index;
252
- while (cursor < input.length && input[cursor] === " ") cursor += 1;
253
- return cursor;
254
- }
255
- function readIdent(input, index) {
256
- const start = skipSpace(input, index);
257
- if (!/[A-Za-z]/u.test(input[start] ?? "")) return;
258
- let cursor = start;
259
- while (cursor < input.length && /[A-Za-z0-9._]/u.test(input[cursor] ?? "")) cursor += 1;
260
- return {
261
- value: input.slice(start, cursor),
262
- next: cursor
263
- };
264
- }
265
- function readString(input, index) {
266
- const start = skipSpace(input, index);
267
- if (input[start] !== "\"") return;
268
- let cursor = start + 1;
269
- let value = "";
270
- while (cursor < input.length) {
271
- const char = input[cursor];
272
- if (char === "\\") {
273
- value += input[cursor + 1] ?? "";
274
- cursor += 2;
275
- continue;
276
- }
277
- if (char === "\"") return {
278
- value,
279
- next: cursor + 1
280
- };
281
- value += char;
282
- cursor += 1;
283
- }
284
- }
285
- function readLiteral(input, index) {
286
- const quoted = readString(input, index);
287
- if (quoted !== void 0) return quoted;
288
- const ident = readIdent(input, index);
289
- if (ident === void 0) return;
290
- if (ident.value.toLowerCase() === "true") return {
291
- value: true,
292
- next: ident.next
293
- };
294
- if (ident.value.toLowerCase() === "false") return {
295
- value: false,
296
- next: ident.next
297
- };
298
- return {
299
- value: ident.value,
300
- next: ident.next
301
- };
302
- }
303
- function parsePrimary(input, index) {
304
- const start = skipSpace(input, index);
305
- if (input[start] === "(") {
306
- const inner = parseOr(input, start + 1);
307
- if (inner === void 0) return;
308
- const close = skipSpace(input, inner.next);
309
- if (input[close] !== ")") return;
310
- return {
311
- filter: inner.filter,
312
- next: close + 1
313
- };
314
- }
315
- const attribute = readIdent(input, start);
316
- if (attribute === void 0) return;
317
- const opToken = readIdent(input, attribute.next);
318
- if (opToken === void 0) return;
319
- const op = opToken.value.toLowerCase();
320
- if (op === "pr") return {
321
- filter: {
322
- op: "pr",
323
- attribute: attribute.value
324
- },
325
- next: opToken.next
326
- };
327
- if (!COMPARE.has(op)) return;
328
- const value = readLiteral(input, opToken.next);
329
- if (value === void 0) return;
330
- return {
331
- filter: {
332
- op,
333
- attribute: attribute.value,
334
- value: value.value
335
- },
336
- next: value.next
337
- };
338
- }
339
- function parseAnd(input, index) {
340
- const first = parsePrimary(input, index);
341
- if (first === void 0) return;
342
- const filters = [first.filter];
343
- let cursor = first.next;
344
- for (;;) {
345
- const nextOp = readIdent(input, cursor);
346
- if (nextOp?.value.toLowerCase() !== "and") break;
347
- const next = parsePrimary(input, nextOp.next);
348
- if (next === void 0) return;
349
- filters.push(next.filter);
350
- cursor = next.next;
351
- }
352
- if (filters.length === 1) return {
353
- filter: first.filter,
354
- next: cursor
355
- };
356
- return {
357
- filter: {
358
- op: "and",
359
- filters
360
- },
361
- next: cursor
362
- };
363
- }
364
- function parseOr(input, index) {
365
- const first = parseAnd(input, index);
366
- if (first === void 0) return;
367
- const filters = [first.filter];
368
- let cursor = first.next;
369
- for (;;) {
370
- const nextOp = readIdent(input, cursor);
371
- if (nextOp?.value.toLowerCase() !== "or") break;
372
- const next = parseAnd(input, nextOp.next);
373
- if (next === void 0) return;
374
- filters.push(next.filter);
375
- cursor = next.next;
376
- }
377
- if (filters.length === 1) return {
378
- filter: first.filter,
379
- next: cursor
380
- };
381
- return {
382
- filter: {
383
- op: "or",
384
- filters
385
- },
386
- next: cursor
387
- };
388
- }
389
- function parseScimFilter(input) {
390
- const trimmed = input.trim();
391
- if (trimmed === "") return;
392
- const parsed = parseOr(trimmed, 0);
393
- if (parsed === void 0) return;
394
- if (skipSpace(trimmed, parsed.next) !== trimmed.length) return;
395
- return parsed.filter;
396
- }
397
- function readAttribute(target, attribute) {
398
- if (attribute === "members.value") {
399
- const members = target["members"];
400
- if (!Array.isArray(members)) return;
401
- return members.map((member) => {
402
- if (member !== null && typeof member === "object" && "value" in member) return member.value;
403
- });
404
- }
405
- const parts = attribute.split(".");
406
- let current = target;
407
- for (const part of parts) {
408
- if (current === null || typeof current !== "object") return;
409
- current = current[part];
410
- }
411
- return current;
412
- }
413
- function asString(value) {
414
- if (typeof value === "boolean") return value ? "true" : "false";
415
- return String(value);
416
- }
417
- function matchCompare(actual, op, expected) {
418
- if (Array.isArray(actual)) return actual.some((item) => matchCompare(item, op, expected));
419
- if (actual === void 0 || actual === null) return op === "ne";
420
- if (typeof expected === "boolean" || typeof actual === "boolean") {
421
- const left = asString(actual).toLowerCase();
422
- const right = asString(expected).toLowerCase();
423
- return op === "eq" ? left === right : op === "ne" ? left !== right : false;
424
- }
425
- const left = asString(actual);
426
- const right = asString(expected);
427
- switch (op) {
428
- case "eq": return left === right;
429
- case "ne": return left !== right;
430
- case "co": return left.includes(right);
431
- case "sw": return left.startsWith(right);
432
- default: return op;
433
- }
434
- }
435
- /** RFC 7644 §3.4.2.2: `pr` needs a non-empty value; a multi-valued one needs an item. */
436
- function present(value) {
437
- if (Array.isArray(value)) return value.some(present);
438
- return value !== void 0 && value !== null && value !== "";
439
- }
440
- function matchFilter(target, filter) {
441
- if (filter === void 0) return true;
442
- const record = target;
443
- switch (filter.op) {
444
- case "and": return filter.filters.every((item) => matchFilter(target, item));
445
- case "or": return filter.filters.some((item) => matchFilter(target, item));
446
- case "pr": return present(readAttribute(record, filter.attribute));
447
- case "eq":
448
- case "ne":
449
- case "co":
450
- case "sw": return matchCompare(readAttribute(record, filter.attribute), filter.op, filter.value);
451
- default: return filter;
452
- }
453
- }
454
- const SUPPORTED_FILTER_ATTRIBUTES = /* @__PURE__ */ new Set([
455
- "id",
456
- "userName",
457
- "externalId",
458
- "active",
459
- "displayName",
460
- "members.value"
461
- ]);
462
- function filterSupported(filter) {
463
- switch (filter.op) {
464
- case "and":
465
- case "or": return filter.filters.every(filterSupported);
466
- case "pr":
467
- case "eq":
468
- case "ne":
469
- case "co":
470
- case "sw": return SUPPORTED_FILTER_ATTRIBUTES.has(filter.attribute);
471
- default: return filter;
472
- }
473
- }
474
- //#endregion
475
206
  //#region src/scim/body.ts
476
- /** The parsed body; `undefined` for an empty or unreadable one. Invalid JSON throws a `SyntaxError`. */
207
+ /**
208
+ * The parsed body; `undefined` for an empty or unreadable one. Invalid JSON
209
+ * throws a `SyntaxError`.
210
+ */
477
211
  async function readJson(request) {
478
212
  const read = await readBodyText(request);
479
213
  if (!read.ok) return read.cause === "too-large" ? { tooLarge: true } : {
@@ -499,7 +233,10 @@ function readRoles(body) {
499
233
  if (!isRecord(extension) || !Array.isArray(extension["roles"])) return;
500
234
  return extension["roles"].filter((item) => typeof item === "string");
501
235
  }
502
- /** `x` from the `AppData` extension; a value that is not a plain JSON object is dropped. */
236
+ /**
237
+ * `x` from the `AppData` extension; a value that is not a plain JSON object is
238
+ * dropped.
239
+ */
503
240
  function readX(body) {
504
241
  const extension = body[APP_DATA_EXTENSION];
505
242
  return isRecord(extension) && extension["x"] !== void 0 ? readAppData(void 0, extension["x"]) : void 0;
@@ -782,7 +519,10 @@ function scimResponse(status, body, extra) {
782
519
  }
783
520
  });
784
521
  }
785
- /** RFC 7644 section 3.12: `scimType` is defined for `400` and `409` only, so other statuses omit it. */
522
+ /**
523
+ * RFC 7644 section 3.12: `scimType` is defined for `400` and `409` only, so
524
+ * other statuses omit it.
525
+ */
786
526
  function scimError(status, scimType, detail, extra) {
787
527
  return scimResponse(status, compact({
788
528
  schemas: [ERROR_SCHEMA],
@@ -798,8 +538,8 @@ function forbidden() {
798
538
  return scimError(403, "", "the credential may not provision this tenant", { "www-authenticate": "Bearer error=\"insufficient_scope\"" });
799
539
  }
800
540
  /**
801
- * RFC 7644 section 3.14 `meta.version`: a weak entity tag over the
802
- * resource as rendered, `meta.location` excluded so every URL agrees.
541
+ * RFC 7644 section 3.14 `meta.version`: a weak entity tag over the resource as
542
+ * rendered, `meta.location` excluded so every URL agrees.
803
543
  */
804
544
  function withVersion(resource, meta) {
805
545
  const { location: _location, ...stable } = meta;
@@ -823,14 +563,20 @@ function versionOf(rendered) {
823
563
  function entityTags(field) {
824
564
  return field.split(",").map((tag) => tag.trim().replace(/^W\//u, "")).filter((tag) => tag !== "");
825
565
  }
826
- /** RFC 9110 section 13.1.1 `If-Match` against a weak `meta.version`: `true` when the request may proceed. */
566
+ /**
567
+ * RFC 9110 section 13.1.1 `If-Match` against a weak `meta.version`: `true` when
568
+ * the request may proceed.
569
+ */
827
570
  function ifMatchHolds(request, version) {
828
571
  const field = request.headers.get("if-match");
829
572
  if (field === null) return true;
830
573
  const tags = entityTags(field);
831
574
  return tags.includes("*") || tags.includes(version.replace(/^W\//u, ""));
832
575
  }
833
- /** RFC 9110 section 13.1.2 `If-None-Match`: `true` when the client holds `version`. */
576
+ /**
577
+ * RFC 9110 section 13.1.2 `If-None-Match`: `true` when the client holds
578
+ * `version`.
579
+ */
834
580
  function ifNoneMatchHolds(request, version) {
835
581
  const field = request.headers.get("if-none-match");
836
582
  if (field === null) return false;
@@ -989,7 +735,10 @@ function resourceResponse(status, rendered, location) {
989
735
  function renderedOf(request, resource) {
990
736
  return "userName" in resource ? renderUser(resource, locationOf(request, "Users", resource.id)) : renderGroup(resource, locationOf(request, "Groups", resource.id));
991
737
  }
992
- /** `false` when `If-Match` names a version other than `current`'s; a missing resource passes to the store. */
738
+ /**
739
+ * `false` when `If-Match` names a version other than `current`'s; a missing
740
+ * resource passes to the store.
741
+ */
993
742
  function matches(request, current) {
994
743
  return current === null || ifMatchHolds(request, versionOf(renderedOf(request, current)));
995
744
  }
@@ -1303,269 +1052,4 @@ function directoryMembershipSource(store, options = {}) {
1303
1052
  } };
1304
1053
  }
1305
1054
  //#endregion
1306
- //#region src/scim/store.ts
1307
- const DEFAULT_COUNT = 100;
1308
- function now() {
1309
- return isoNow();
1310
- }
1311
- function createdAt(at, ...candidates) {
1312
- return candidates.find((value) => value !== void 0 && value !== "") ?? at;
1313
- }
1314
- function randomId(prefix) {
1315
- const bytes = /* @__PURE__ */ new Uint8Array(8);
1316
- crypto.getRandomValues(bytes);
1317
- let hex = "";
1318
- for (const byte of bytes) hex += byte.toString(16).padStart(2, "0");
1319
- return `${prefix}${hex}`;
1320
- }
1321
- function directoryKey(tenant, id) {
1322
- return `${tenant}\0${id}`;
1323
- }
1324
- function asError(error) {
1325
- return error instanceof Error ? error : new Error(String(error));
1326
- }
1327
- function pageOf(items, page) {
1328
- const count = page.count ?? DEFAULT_COUNT;
1329
- let start = 0;
1330
- if (page.cursor !== void 0 && page.cursor !== "") {
1331
- const decoded = Math.trunc(Number(page.cursor));
1332
- start = Number.isFinite(decoded) && decoded > 0 ? decoded : 0;
1333
- } else if (page.startIndex !== void 0 && page.startIndex > 0) start = page.startIndex - 1;
1334
- const slice = items.slice(start, start + count);
1335
- const nextIndex = start + slice.length;
1336
- return compact({
1337
- Resources: slice,
1338
- totalResults: items.length,
1339
- startIndex: start + 1,
1340
- itemsPerPage: slice.length,
1341
- nextCursor: nextIndex < items.length ? String(nextIndex) : void 0
1342
- });
1343
- }
1344
- function emailsOf(value) {
1345
- if (!Array.isArray(value)) return;
1346
- return value.flatMap((item) => {
1347
- if (item === null || typeof item !== "object") return [];
1348
- const record = item;
1349
- if (typeof record.value !== "string") return [];
1350
- return [compact({
1351
- value: record.value,
1352
- primary: typeof record.primary === "boolean" ? record.primary : void 0,
1353
- type: typeof record.type === "string" ? record.type : void 0
1354
- })];
1355
- });
1356
- }
1357
- function membersOf(value) {
1358
- if (!Array.isArray(value)) return [];
1359
- return value.flatMap((item) => {
1360
- if (item === null || typeof item !== "object") return [];
1361
- const record = item;
1362
- return typeof record.value === "string" ? [{ value: record.value }] : [];
1363
- });
1364
- }
1365
- function rolesOf(value) {
1366
- if (!Array.isArray(value)) return;
1367
- return value.filter((item) => typeof item === "string");
1368
- }
1369
- function memberValues(value) {
1370
- return membersOf(value).map((member) => member.value);
1371
- }
1372
- function applyUserOp(user, op) {
1373
- const path = op.path ?? "";
1374
- if (path === "active" && typeof op.value === "boolean") return {
1375
- ...user,
1376
- active: op.value
1377
- };
1378
- if (path === "userName" && typeof op.value === "string") return {
1379
- ...user,
1380
- userName: op.value
1381
- };
1382
- if (path === "externalId") return compact({
1383
- ...user,
1384
- externalId: typeof op.value === "string" ? op.value : void 0
1385
- });
1386
- if (path === "emails") return compact({
1387
- ...user,
1388
- emails: emailsOf(op.value)
1389
- });
1390
- return user;
1391
- }
1392
- function applyGroupOp(group, op) {
1393
- const path = op.path ?? "";
1394
- if (path === "displayName" && typeof op.value === "string") return {
1395
- ...group,
1396
- displayName: op.value
1397
- };
1398
- if (path === "externalId") return compact({
1399
- ...group,
1400
- externalId: typeof op.value === "string" ? op.value : void 0
1401
- });
1402
- if (path === "roles") return compact({
1403
- ...group,
1404
- roles: rolesOf(op.value)
1405
- });
1406
- if (path !== "members") return group;
1407
- const incoming = memberValues(op.value);
1408
- const current = group.members.map((member) => member.value);
1409
- if (op.op === "replace") return {
1410
- ...group,
1411
- members: incoming.map((value) => ({ value }))
1412
- };
1413
- if (op.op === "add") {
1414
- const next = [...current];
1415
- for (const value of incoming) if (!next.includes(value)) next.push(value);
1416
- return {
1417
- ...group,
1418
- members: next.map((value) => ({ value }))
1419
- };
1420
- }
1421
- return {
1422
- ...group,
1423
- members: current.filter((value) => !incoming.includes(value)).map((value) => ({ value }))
1424
- };
1425
- }
1426
- function stampUser(user, created) {
1427
- const at = now();
1428
- return freezeDeep({
1429
- ...user,
1430
- meta: compact({
1431
- created: createdAt(at, created, user.meta.created),
1432
- lastModified: at,
1433
- resourceType: "User",
1434
- location: user.meta.location
1435
- })
1436
- });
1437
- }
1438
- function stampGroup(group, created) {
1439
- const at = now();
1440
- return freezeDeep({
1441
- ...group,
1442
- meta: compact({
1443
- created: createdAt(at, created, group.meta.created),
1444
- lastModified: at,
1445
- resourceType: "Group",
1446
- location: group.meta.location
1447
- })
1448
- });
1449
- }
1450
- function memoryDirectoryStore() {
1451
- const users = /* @__PURE__ */ new Map();
1452
- const groups = /* @__PURE__ */ new Map();
1453
- function usersIn(tenant) {
1454
- const found = [];
1455
- for (const [key, user] of users) if (key.startsWith(`${tenant}\0`)) found.push(user);
1456
- return found;
1457
- }
1458
- function groupsIn(tenant) {
1459
- const found = [];
1460
- for (const [key, group] of groups) if (key.startsWith(`${tenant}\0`)) found.push(group);
1461
- return found;
1462
- }
1463
- function assertUserUnique(tenant, user, ignoreId) {
1464
- for (const existing of usersIn(tenant)) {
1465
- if (existing.id === ignoreId) continue;
1466
- if (existing.userName === user.userName) throw new DirectoryUniquenessError("userName");
1467
- if (user.externalId !== void 0 && existing.externalId === user.externalId) throw new DirectoryUniquenessError("externalId");
1468
- }
1469
- }
1470
- function assertGroupUnique(tenant, group, ignoreId) {
1471
- for (const existing of groupsIn(tenant)) {
1472
- if (existing.id === ignoreId) continue;
1473
- if (group.externalId !== void 0 && existing.externalId === group.externalId) throw new DirectoryUniquenessError("externalId");
1474
- }
1475
- }
1476
- return {
1477
- getUser(tenant, id) {
1478
- return Promise.resolve(users.get(directoryKey(tenant, id)) ?? null);
1479
- },
1480
- findUsers(tenant, filter, page) {
1481
- const matched = usersIn(tenant).filter((user) => matchFilter(user, filter));
1482
- return Promise.resolve(pageOf(matched, page));
1483
- },
1484
- putUser(tenant, user) {
1485
- try {
1486
- const id = user.id === "" ? randomId("u_") : user.id;
1487
- const existing = users.get(directoryKey(tenant, id));
1488
- const next = stampUser({
1489
- ...user,
1490
- id
1491
- }, existing?.meta.created);
1492
- assertUserUnique(tenant, next, id);
1493
- users.set(directoryKey(tenant, id), next);
1494
- return Promise.resolve(next);
1495
- } catch (error) {
1496
- return Promise.reject(asError(error));
1497
- }
1498
- },
1499
- patchUser(tenant, id, ops) {
1500
- try {
1501
- const existing = users.get(directoryKey(tenant, id));
1502
- if (existing === void 0) throw new DirectoryNotFoundError();
1503
- let next = existing;
1504
- for (const op of ops) next = applyUserOp(next, op);
1505
- next = stampUser(next, existing.meta.created);
1506
- assertUserUnique(tenant, next, id);
1507
- users.set(directoryKey(tenant, id), next);
1508
- return Promise.resolve(next);
1509
- } catch (error) {
1510
- return Promise.reject(asError(error));
1511
- }
1512
- },
1513
- deleteUser(tenant, id) {
1514
- if (!users.delete(directoryKey(tenant, id))) return Promise.reject(new DirectoryNotFoundError());
1515
- for (const group of groupsIn(tenant)) {
1516
- if (!group.members.some((member) => member.value === id)) continue;
1517
- groups.set(directoryKey(tenant, group.id), stampGroup({
1518
- ...group,
1519
- members: group.members.filter((member) => member.value !== id)
1520
- }, group.meta.created));
1521
- }
1522
- return Promise.resolve();
1523
- },
1524
- getGroup(tenant, id) {
1525
- return Promise.resolve(groups.get(directoryKey(tenant, id)) ?? null);
1526
- },
1527
- findGroups(tenant, filter, page) {
1528
- const matched = groupsIn(tenant).filter((group) => matchFilter(group, filter));
1529
- return Promise.resolve(pageOf(matched, page));
1530
- },
1531
- putGroup(tenant, group) {
1532
- try {
1533
- const id = group.id === "" ? randomId("g_") : group.id;
1534
- const existing = groups.get(directoryKey(tenant, id));
1535
- const next = stampGroup({
1536
- ...group,
1537
- id,
1538
- members: group.members
1539
- }, existing?.meta.created);
1540
- assertGroupUnique(tenant, next, id);
1541
- groups.set(directoryKey(tenant, id), next);
1542
- return Promise.resolve(next);
1543
- } catch (error) {
1544
- return Promise.reject(asError(error));
1545
- }
1546
- },
1547
- patchGroup(tenant, id, ops) {
1548
- try {
1549
- const existing = groups.get(directoryKey(tenant, id));
1550
- if (existing === void 0) throw new DirectoryNotFoundError();
1551
- let next = existing;
1552
- for (const op of ops) next = applyGroupOp(next, op);
1553
- next = stampGroup(next, existing.meta.created);
1554
- assertGroupUnique(tenant, next, id);
1555
- groups.set(directoryKey(tenant, id), next);
1556
- return Promise.resolve(next);
1557
- } catch (error) {
1558
- return Promise.reject(asError(error));
1559
- }
1560
- },
1561
- deleteGroup(tenant, id) {
1562
- if (!groups.delete(directoryKey(tenant, id))) return Promise.reject(new DirectoryNotFoundError());
1563
- return Promise.resolve();
1564
- },
1565
- groupsFor(tenant, userId) {
1566
- return Promise.resolve(groupsIn(tenant).filter((group) => group.members.some((member) => member.value === userId)));
1567
- }
1568
- };
1569
- }
1570
- //#endregion
1571
- export { isDirectoryUniquenessError as C, isDirectoryNotFoundError as S, sha256Hex as T, LIST_SCHEMA as _, normalizePatchOps as a, SCIM_CONTENT_TYPE as b, parseScimFilter as c, serviceProviderConfig as d, APP_DATA_EXTENSION as f, GROUP_SCHEMA as g, ERROR_SCHEMA as h, tenantFromPath as i, resourceTypes as l, DirectoryUniquenessError as m, directoryMembershipSource as n, filterSupported as o, DirectoryNotFoundError as p, scimHandler as r, matchFilter as s, memoryDirectoryStore as t, schemas as u, PATCH_SCHEMA as v, authenticateScim as w, USER_SCHEMA as x, ROLES_EXTENSION as y };
1055
+ export { resourceTypes as a, authenticateScim as c, normalizePatchOps as i, sha256Hex as l, scimHandler as n, schemas as o, tenantFromPath as r, serviceProviderConfig as s, directoryMembershipSource as t };