@openclaw/matrix 2026.9.4 → 2026.9.6

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 (986) hide show
  1. package/assets/activity.svg +40 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{account-selection-Bbtc483D.js → .setup/account-selection-BHkfU1eC.mjs} +12 -3
  4. package/dist/{accounts-GwSAk9vY.js → .setup/accounts-iThMol10.mjs} +39 -38
  5. package/dist/{approval-handler.runtime-6I3IpyeX.js → .setup/approval-handler.runtime-9W7R2ZMq.mjs} +16 -15
  6. package/dist/{approval-ids-C4NdeXNz.js → .setup/approval-ids-j08q8LEG.mjs} +1 -1
  7. package/dist/{approval-reaction-auth-cbltZAUQ.js → .setup/approval-reaction-auth-DMVE7VSp.mjs} +7 -3
  8. package/dist/{approval-reactions-1fwEhoK9.js → .setup/approval-reactions-B0hfA6qz.mjs} +6 -6
  9. package/dist/{channel-Cg97H4c1.js → .setup/channel-ConuJfxT.mjs} +59 -38
  10. package/dist/{channel.runtime-Bhpfa1qc.js → .setup/channel.runtime-CnxR2JUK.mjs} +6 -6
  11. package/dist/{channel.setup-DmS7m7aT.js → .setup/channel.setup-C6KvBV8l.mjs} +9 -5
  12. package/dist/{cli-CLexRrQw.js → .setup/cli-O196sg8g.mjs} +19 -19
  13. package/dist/{cli-metadata-zRyVmUOL.js → .setup/cli-metadata-DFHQj5XR.mjs} +1 -1
  14. package/dist/{client-C0nZFCTj.js → .setup/client-C2yVkVdw.mjs} +5 -3
  15. package/dist/{client-CPcRv6ab.js → .setup/client-ChrXpxos.mjs} +170 -109
  16. package/dist/{client-bootstrap-DLN-K8Xb.js → .setup/client-bootstrap-BSnUAoz1.mjs} +17 -8
  17. package/dist/{client-support-DLj4vDeu.js → .setup/client-support-Bn9Bk0-H.mjs} +1 -1
  18. package/dist/{config-update-BnX26jCO.js → .setup/config-update-B_4qZ5bV.mjs} +3 -3
  19. package/dist/.setup/create-client-CHxcron_.mjs +67 -0
  20. package/dist/{credentials-DysXbkv2.js → .setup/credentials-BGKfiaJW.mjs} +40 -17
  21. package/dist/{credentials-read-WWpqi88V.js → .setup/credentials-read-Q5sHkkHv.mjs} +30 -9
  22. package/dist/{credentials-write.runtime-D22lPwRO.js → .setup/credentials-write.runtime-DxbXh-pK.mjs} +1 -1
  23. package/dist/{crypto-runtime-DiyH4R3D.js → .setup/crypto-runtime-D9qn_Pbj.mjs} +6 -7
  24. package/dist/{crypto-snapshot-doctor.runtime-DxgUMXUy.js → .setup/crypto-snapshot-doctor.runtime-CMWa1d9Y.mjs} +3 -3
  25. package/dist/{device-health-B4-YXtJR.js → .setup/device-health-CWOuIirq.mjs} +1 -1
  26. package/dist/.setup/direct-management-B2Bno2xL.mjs +346 -0
  27. package/dist/{directory-live-B8-GAVcc.js → .setup/directory-live-CxqkcYbT.mjs} +8 -6
  28. package/dist/{doctor-CJE8wO6y.js → .setup/doctor-BLCvdOFo.mjs} +1 -1
  29. package/dist/{draft-stream--NdEtnZ8.js → .setup/draft-stream-y0Vq5f38.mjs} +22 -6
  30. package/dist/{encryption-guidance-mDyxJV9U.js → .setup/encryption-guidance-CMWXiBzJ.mjs} +2 -2
  31. package/dist/.setup/file-sync-store-CsalA4yI.mjs +213 -0
  32. package/dist/{http-client-BfPeF4CE.js → .setup/http-client-Bi6uKmzh.mjs} +90 -9
  33. package/dist/{idb-persistence-DBdwHSWg.js → .setup/idb-persistence-c8uxcofH.mjs} +12 -8
  34. package/dist/{inbound-dedupe-Ch33GU06.js → .setup/inbound-dedupe-BSlv35xl.mjs} +1 -1
  35. package/dist/.setup/joined-room-encryption-BCtxQ3hR.mjs +67 -0
  36. package/dist/{logger-B_71hN6W.js → .setup/logger-xBjiRIp1.mjs} +1 -1
  37. package/dist/{logging-DRjvUOIh.js → .setup/logging-rgm8ep9H.mjs} +2 -2
  38. package/dist/{messages-CpZfiQO0.js → .setup/messages-COuAcrz-.mjs} +12 -5
  39. package/dist/{monitor-BUek91SW.js → .setup/monitor-CzE3myC_.mjs} +224 -476
  40. package/dist/{outbound-D91JinYa.js → .setup/outbound-B508VPBM.mjs} +12 -4
  41. package/dist/.setup/probe.runtime-C-NMeYk2.mjs +2 -0
  42. package/dist/{profile-vmjsmhh4.js → .setup/profile-ClrB3IgR.mjs} +1 -1
  43. package/dist/{profile-update-vnhxwjEt.js → .setup/profile-update-DrblJttE.mjs} +4 -4
  44. package/dist/{reaction-events-2WM2nJe_.js → .setup/reaction-events-BvZmhjLC.mjs} +8 -7
  45. package/dist/{resolve-targets-K8D0HWPX.js → .setup/resolve-targets-BLz748lX.mjs} +3 -3
  46. package/dist/{resolver.runtime-C88GwQCx.js → .setup/resolver.runtime-CuLQ2uHe.mjs} +1 -1
  47. package/dist/{room-info-BPVJkXnp.js → .setup/room-info-DTyP1k5g.mjs} +4 -4
  48. package/dist/.setup/runtime-1kn1P6io.mjs +29 -0
  49. package/dist/.setup/runtime-setter-api-DtxDAM-x.mjs +3 -0
  50. package/dist/{sdk-B4By16Bt.js → .setup/sdk-rqFjgltR.mjs} +523 -503
  51. package/dist/{secret-contract-CufozuyJ.js → .setup/secret-contract-JlB6VmI3.mjs} +1 -1
  52. package/dist/.setup/secret-contract-api-B-iJoQEv.mjs +3 -0
  53. package/dist/{send-UWLIQ0bG.js → .setup/send-aVdC5NJO.mjs} +218 -439
  54. package/dist/{reaction-common-DkrQdBSZ.js → .setup/send-currentness-BrGXL7b8.mjs} +20 -1
  55. package/dist/{setup-bootstrap-sVqkwtSY.js → .setup/setup-bootstrap-A_WGFq1Y.mjs} +3 -3
  56. package/dist/{setup-core-8keb-Yre.js → .setup/setup-core-D2hMbIi3.mjs} +7 -7
  57. package/dist/.setup/setup-plugin-api-JiRgm8s6.mjs +3 -0
  58. package/dist/{setup-surface-bcluelBI.js → .setup/setup-surface-BL3ha1l-.mjs} +12 -12
  59. package/dist/{startup-verification-BTSf31hS.js → .setup/startup-verification-Cp1Gf7pM.mjs} +8 -8
  60. package/dist/{storage-CV-pfV_2.js → .setup/storage-BXaFc0S4.mjs} +97 -93
  61. package/dist/{storage-metadata-DYArLcq1.js → .setup/storage-metadata-fHN6Df2m.mjs} +74 -83
  62. package/dist/{subagent-hooks-DeICLbU5.js → .setup/subagent-hooks-jFgft_Mr.mjs} +1 -1
  63. package/dist/{sync-cache-state-C-mhj3xb.js → .setup/sync-cache-state-BMtGMxU1.mjs} +31 -44
  64. package/dist/{thread-binding-api-CzkeLZCU.js → .setup/thread-binding-api-DRMC62cs.mjs} +1 -1
  65. package/dist/{thread-bindings-Bwv87Gve.js → .setup/thread-bindings-JlnLDfPM.mjs} +8 -8
  66. package/dist/{tool-actions.runtime-Bf98Juk6.js → .setup/tool-actions.runtime-REzYTNxm.mjs} +29 -14
  67. package/dist/{verification-BbG-VC9S.js → .setup/verification-0o8MOW9T.mjs} +4 -3
  68. package/dist/api.js +8 -8
  69. package/dist/auth-presence.js +1 -1
  70. package/dist/channel-plugin-api.js +1 -1
  71. package/dist/cli-metadata.js +1 -1
  72. package/dist/contract-api.js +2 -2
  73. package/dist/doctor-contract-api.js +10 -10
  74. package/dist/helper-api.js +4 -4
  75. package/dist/index.js +4 -1
  76. package/dist/plugin-entry.handlers.runtime.js +1 -1
  77. package/dist/runtime-api.js +6 -6
  78. package/dist/runtime-setter-api.js +2 -2
  79. package/dist/secret-contract-api.js +1 -1
  80. package/dist/session-binding-contract-api.js +2 -2
  81. package/dist/setup-entry.js +4 -3
  82. package/dist/setup-plugin-api.js +1 -1
  83. package/dist/subagent-hooks-api.js +1 -1
  84. package/dist/thread-binding-api.js +1 -1
  85. package/dist/thread-bindings-runtime.js +1 -1
  86. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json +1 -1
  87. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs +17 -17
  88. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js +17 -17
  89. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm +0 -0
  90. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts +5 -5
  91. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs +442 -434
  92. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs.map +1 -1
  93. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js +2 -2
  94. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js.map +1 -1
  95. package/node_modules/markdown-it/dist/markdown-it.cjs.js +32 -16
  96. package/node_modules/markdown-it/dist/markdown-it.cjs.js.map +1 -1
  97. package/node_modules/markdown-it/dist/markdown-it.mjs +32 -16
  98. package/node_modules/markdown-it/dist/markdown-it.mjs.map +1 -1
  99. package/node_modules/markdown-it/node_modules/argparse/LICENSE +1 -208
  100. package/node_modules/markdown-it/node_modules/argparse/lib/argparse.js +18 -2
  101. package/node_modules/markdown-it/node_modules/argparse/package.json +2 -2
  102. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts +23 -3
  103. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts.map +1 -1
  104. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js +52 -37
  105. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js.map +1 -1
  106. package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts +61 -28
  107. package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts.map +1 -1
  108. package/node_modules/markdown-it/node_modules/entities/dist/decode.js +789 -201
  109. package/node_modules/markdown-it/node_modules/entities/dist/decode.js.map +1 -1
  110. package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts +4 -2
  111. package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts.map +1 -1
  112. package/node_modules/markdown-it/node_modules/entities/dist/encode.js +249 -44
  113. package/node_modules/markdown-it/node_modules/entities/dist/encode.js.map +1 -1
  114. package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts +19 -7
  115. package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts.map +1 -1
  116. package/node_modules/markdown-it/node_modules/entities/dist/escape.js +104 -64
  117. package/node_modules/markdown-it/node_modules/entities/dist/escape.js.map +1 -1
  118. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.d.ts.map +1 -1
  119. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js +2 -2
  120. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js.map +1 -1
  121. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.d.ts.map +1 -1
  122. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js +4 -2
  123. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js.map +1 -1
  124. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts +2 -4
  125. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts.map +1 -1
  126. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js +1 -10
  127. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js.map +1 -1
  128. package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts +2 -2
  129. package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts.map +1 -1
  130. package/node_modules/markdown-it/node_modules/entities/dist/index.js +2 -6
  131. package/node_modules/markdown-it/node_modules/entities/dist/index.js.map +1 -1
  132. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts +39 -8
  133. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts.map +1 -1
  134. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js +37 -6
  135. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js.map +1 -1
  136. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts +35 -4
  137. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts.map +1 -1
  138. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js +189 -11
  139. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js.map +1 -1
  140. package/node_modules/markdown-it/node_modules/entities/package.json +14 -14
  141. package/node_modules/markdown-it/node_modules/entities/src/decode-codepoint.ts +58 -39
  142. package/node_modules/markdown-it/node_modules/entities/src/decode.ts +942 -245
  143. package/node_modules/markdown-it/node_modules/entities/src/encode.ts +289 -47
  144. package/node_modules/markdown-it/node_modules/entities/src/escape.ts +110 -83
  145. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-html.ts +8 -3
  146. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-xml.ts +4 -4
  147. package/node_modules/markdown-it/node_modules/entities/src/generated/encode-html.ts +1 -16
  148. package/node_modules/markdown-it/node_modules/entities/src/index.ts +6 -8
  149. package/node_modules/markdown-it/node_modules/entities/src/internal/bin-trie-flags.ts +38 -7
  150. package/node_modules/markdown-it/node_modules/entities/src/internal/decode-shared.ts +203 -12
  151. package/node_modules/markdown-it/package.json +1 -1
  152. package/node_modules/matrix-js-sdk/CHANGELOG.md +15 -0
  153. package/node_modules/matrix-js-sdk/lib/client.d.ts +1 -2
  154. package/node_modules/matrix-js-sdk/lib/client.d.ts.map +1 -1
  155. package/node_modules/matrix-js-sdk/lib/client.js +16 -8
  156. package/node_modules/matrix-js-sdk/lib/client.js.map +1 -1
  157. package/node_modules/matrix-js-sdk/lib/http-api/errors.d.ts +8 -0
  158. package/node_modules/matrix-js-sdk/lib/http-api/errors.d.ts.map +1 -1
  159. package/node_modules/matrix-js-sdk/lib/http-api/errors.js +12 -0
  160. package/node_modules/matrix-js-sdk/lib/http-api/errors.js.map +1 -1
  161. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts +5 -0
  162. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
  163. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js +2 -1
  164. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
  165. package/node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts +2 -4
  166. package/node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts.map +1 -1
  167. package/node_modules/matrix-js-sdk/lib/oauth/authorize.js.map +1 -1
  168. package/node_modules/matrix-js-sdk/lib/oauth/error.d.ts +44 -0
  169. package/node_modules/matrix-js-sdk/lib/oauth/error.d.ts.map +1 -1
  170. package/node_modules/matrix-js-sdk/lib/oauth/error.js +53 -0
  171. package/node_modules/matrix-js-sdk/lib/oauth/error.js.map +1 -1
  172. package/node_modules/matrix-js-sdk/lib/oauth/index.d.ts.map +1 -1
  173. package/node_modules/matrix-js-sdk/lib/oauth/index.js +19 -2
  174. package/node_modules/matrix-js-sdk/lib/oauth/index.js.map +1 -1
  175. package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.d.ts.map +1 -1
  176. package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js +4 -2
  177. package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js.map +1 -1
  178. package/node_modules/matrix-js-sdk/lib/secret-storage.d.ts +1 -1
  179. package/node_modules/matrix-js-sdk/lib/secret-storage.d.ts.map +1 -1
  180. package/node_modules/matrix-js-sdk/lib/secret-storage.js +9 -32
  181. package/node_modules/matrix-js-sdk/lib/secret-storage.js.map +1 -1
  182. package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.d.ts.map +1 -1
  183. package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.js +54 -1
  184. package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.js.map +1 -1
  185. package/node_modules/matrix-js-sdk/node_modules/@babel/runtime/package.json +1 -1
  186. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/dist/api.js +556 -311
  187. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/dist/api.min.js +1 -1
  188. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.d.ts +2 -0
  189. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.js +221 -129
  190. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.js.map +1 -1
  191. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/Symbols.js.map +1 -1
  192. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.d.ts +37 -0
  193. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.js +182 -63
  194. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.js.map +1 -1
  195. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.d.ts +20 -1
  196. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.js +49 -20
  197. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.js.map +1 -1
  198. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/index.d.ts +1 -0
  199. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/index.js.map +1 -1
  200. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.d.ts +2 -1
  201. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.js +3 -2
  202. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.js.map +1 -1
  203. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.d.ts +9 -1
  204. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.js +2 -0
  205. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.js.map +1 -1
  206. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/CapabilitiesAction.js.map +1 -1
  207. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ContentLoadedAction.js.map +1 -1
  208. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/DownloadFileAction.js.map +1 -1
  209. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/GetMediaConfigAction.js.map +1 -1
  210. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/GetOpenIDAction.js.map +1 -1
  211. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ICustomWidgetData.js.map +1 -1
  212. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IJitsiWidgetData.js.map +1 -1
  213. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IRoomAccountData.js.map +1 -1
  214. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IRoomEvent.js.map +1 -1
  215. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IStickerpickerWidgetData.js.map +1 -1
  216. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IToDeviceMessage.js.map +1 -1
  217. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidget.js.map +1 -1
  218. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiErrorResponse.js +1 -1
  219. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiErrorResponse.js.map +1 -1
  220. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiRequest.js.map +1 -1
  221. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiResponse.js.map +1 -1
  222. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/LanguageChangeAction.js.map +1 -1
  223. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ModalButtonKind.js.map +1 -1
  224. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ModalWidgetActions.js.map +1 -1
  225. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/NavigateAction.js.map +1 -1
  226. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/OpenIDCredentialsAction.js.map +1 -1
  227. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadEventAction.js.map +1 -1
  228. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadRelationsAction.js.map +1 -1
  229. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadRoomAccountDataAction.js.map +1 -1
  230. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.d.ts +53 -0
  231. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.js +6 -0
  232. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.js.map +1 -0
  233. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcTransportsAction.js.map +1 -1
  234. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ScreenshotAction.js.map +1 -1
  235. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SendEventAction.js.map +1 -1
  236. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SendToDeviceAction.js.map +1 -1
  237. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SetModalButtonEnabledAction.js.map +1 -1
  238. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/StickerAction.js.map +1 -1
  239. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/StickyAction.js.map +1 -1
  240. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SupportedVersionsAction.js.map +1 -1
  241. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ThemeChangeAction.js.map +1 -1
  242. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/TurnServerActions.js.map +1 -1
  243. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UpdateDelayedEventAction.js.map +1 -1
  244. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UpdateStateAction.js.map +1 -1
  245. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UploadFileAction.js.map +1 -1
  246. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UserDirectorySearchAction.js.map +1 -1
  247. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/VisibilityAction.js.map +1 -1
  248. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.d.ts +9 -1
  249. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.js +2 -0
  250. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.js.map +1 -1
  251. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiDirection.js.map +1 -1
  252. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetConfigAction.js.map +1 -1
  253. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetKind.js.map +1 -1
  254. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetType.js.map +1 -1
  255. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/Widget.js +20 -20
  256. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/Widget.js.map +1 -1
  257. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetEventCapability.js +9 -9
  258. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetEventCapability.js.map +1 -1
  259. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetParser.js +23 -23
  260. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetParser.js.map +1 -1
  261. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/validation/url.js.map +1 -1
  262. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/validation/utils.js.map +1 -1
  263. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/templating/url-template.js.map +1 -1
  264. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/ITransport.js.map +1 -1
  265. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/PostmessageTransport.js +32 -32
  266. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/PostmessageTransport.js.map +1 -1
  267. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/util/SimpleObservable.js +10 -10
  268. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/util/SimpleObservable.js.map +1 -1
  269. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/package.json +2 -2
  270. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/ClientWidgetApi.ts +48 -0
  271. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/WidgetApi.ts +75 -1
  272. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/driver/WidgetDriver.ts +33 -0
  273. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/index.ts +1 -0
  274. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/ApiVersion.ts +2 -0
  275. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts +8 -0
  276. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/RtcLivekitActions.ts +80 -0
  277. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/WidgetApiAction.ts +10 -0
  278. package/node_modules/matrix-js-sdk/node_modules/p-retry/index.d.ts +1 -1
  279. package/node_modules/matrix-js-sdk/node_modules/p-retry/index.js +4 -0
  280. package/node_modules/matrix-js-sdk/node_modules/p-retry/package.json +1 -1
  281. package/node_modules/matrix-js-sdk/node_modules/p-retry/readme.md +1 -1
  282. package/node_modules/matrix-js-sdk/package.json +2 -2
  283. package/node_modules/matrix-js-sdk/src/client.ts +19 -11
  284. package/node_modules/matrix-js-sdk/src/http-api/errors.ts +16 -0
  285. package/node_modules/matrix-js-sdk/src/matrixrtc/MatrixRTCSession.ts +8 -1
  286. package/node_modules/matrix-js-sdk/src/oauth/authorize.ts +2 -5
  287. package/node_modules/matrix-js-sdk/src/oauth/error.ts +69 -0
  288. package/node_modules/matrix-js-sdk/src/oauth/index.ts +19 -2
  289. package/node_modules/matrix-js-sdk/src/oauth/tokenRefresher.ts +9 -2
  290. package/node_modules/matrix-js-sdk/src/secret-storage.ts +8 -31
  291. package/node_modules/matrix-js-sdk/src/sliding-sync-sdk.ts +74 -0
  292. package/node_modules/music-metadata/node_modules/file-type/package.json +3 -2
  293. package/node_modules/music-metadata/node_modules/file-type/readme.md +3 -0
  294. package/node_modules/music-metadata/node_modules/file-type/source/index.js +28 -1
  295. package/node_modules/music-metadata/node_modules/file-type/source/supported.js +2 -0
  296. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  297. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  298. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  299. package/node_modules/typebox/build/format/iri.mjs +5 -1
  300. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  301. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  302. package/node_modules/typebox/build/guard/string.mjs +16 -24
  303. package/node_modules/typebox/build/schema/build.mjs +2 -2
  304. package/node_modules/typebox/build/schema/check.mjs +1 -1
  305. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  306. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  307. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  308. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  309. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  310. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  311. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  312. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  313. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  314. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  315. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  316. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  317. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  318. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  319. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  320. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  321. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  322. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  323. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  324. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  325. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  326. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  327. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  328. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  329. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  330. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  331. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  332. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  333. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  334. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  335. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  336. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  337. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  338. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  339. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  340. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  341. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  342. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  343. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  344. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  345. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  346. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  347. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  348. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  349. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  350. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  351. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  352. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  353. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  354. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  355. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  356. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  357. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  358. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  359. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  360. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  361. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  362. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  363. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  364. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  365. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  366. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  367. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  368. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  369. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  370. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  371. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  372. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  373. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  374. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  375. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  376. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  377. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  378. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  379. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  380. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  381. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  382. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  383. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  384. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  385. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  386. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  387. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  388. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  389. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  390. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  391. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  392. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  393. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  394. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  395. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  396. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  397. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  398. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  399. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  400. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  401. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  402. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  403. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  404. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  405. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  406. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  407. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  408. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  409. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  410. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  411. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  412. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  413. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  414. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  415. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  416. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  417. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  418. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  419. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  420. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  421. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  422. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  423. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  424. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  425. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  426. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  427. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  428. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  429. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  430. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  431. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  432. package/node_modules/typebox/package.json +1 -1
  433. package/node_modules/typebox/readme.md +59 -89
  434. package/node_modules/zod/README.md +29 -2
  435. package/node_modules/zod/compile.cjs +96 -0
  436. package/node_modules/zod/compile.d.cts +1 -0
  437. package/node_modules/zod/compile.d.ts +1 -0
  438. package/node_modules/zod/compile.js +52 -0
  439. package/node_modules/zod/index.cjs +21 -2
  440. package/node_modules/zod/index.d.cts +1 -2
  441. package/node_modules/zod/index.d.ts +1 -2
  442. package/node_modules/zod/index.js +5 -2
  443. package/node_modules/zod/locales/index.cjs +19 -0
  444. package/node_modules/zod/mini/index.cjs +19 -0
  445. package/node_modules/zod/package.json +20 -8
  446. package/node_modules/zod/src/compile.ts +56 -0
  447. package/node_modules/zod/src/index.ts +5 -2
  448. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  449. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  450. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  451. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  452. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  453. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  454. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  455. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  456. package/node_modules/zod/src/v3/types.ts +5 -5
  457. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  458. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  459. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  460. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  461. package/node_modules/zod/src/v4/classic/external.ts +14 -9
  462. package/node_modules/zod/src/v4/classic/from-json-schema.ts +363 -78
  463. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  464. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  465. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  466. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  467. package/node_modules/zod/src/v4/classic/schemas.ts +640 -375
  468. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  469. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  470. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +186 -0
  471. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +36 -1
  472. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  473. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  474. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  475. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +3 -3
  476. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  477. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +985 -0
  478. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  479. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  480. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  481. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  482. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  483. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  484. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +261 -13
  485. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +20 -0
  486. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  487. package/node_modules/zod/src/v4/classic/tests/error.test.ts +403 -6
  488. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +582 -10
  489. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  490. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  491. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  492. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  493. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  494. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  495. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +319 -0
  496. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +67 -0
  497. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  498. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
  499. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  500. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  501. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  502. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  503. package/node_modules/zod/src/v4/classic/tests/number.test.ts +85 -9
  504. package/node_modules/zod/src/v4/classic/tests/object.test.ts +301 -12
  505. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
  506. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  507. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  508. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  509. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  510. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  511. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  512. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  513. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +79 -3
  514. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  515. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  516. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  517. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  518. package/node_modules/zod/src/v4/classic/tests/string.test.ts +222 -6
  519. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  520. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +44 -3
  521. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1812 -204
  522. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  523. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  524. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
  525. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  526. package/node_modules/zod/src/v4/core/api.ts +87 -35
  527. package/node_modules/zod/src/v4/core/checks.ts +119 -146
  528. package/node_modules/zod/src/v4/core/compile.ts +2313 -0
  529. package/node_modules/zod/src/v4/core/core.ts +99 -22
  530. package/node_modules/zod/src/v4/core/doc.ts +17 -9
  531. package/node_modules/zod/src/v4/core/errors.ts +113 -25
  532. package/node_modules/zod/src/v4/core/index.ts +3 -0
  533. package/node_modules/zod/src/v4/core/json-schema-generator.ts +8 -3
  534. package/node_modules/zod/src/v4/core/json-schema-processors.ts +424 -156
  535. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  536. package/node_modules/zod/src/v4/core/memoizer.ts +331 -0
  537. package/node_modules/zod/src/v4/core/parse.ts +164 -50
  538. package/node_modules/zod/src/v4/core/regexes.ts +42 -15
  539. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  540. package/node_modules/zod/src/v4/core/schemas.ts +1000 -538
  541. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  542. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +1004 -0
  543. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  544. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  545. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  546. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  547. package/node_modules/zod/src/v4/core/tests/compile.test.ts +2036 -0
  548. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  549. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  550. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  551. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  552. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  553. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  554. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  555. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  556. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  557. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +133 -0
  558. package/node_modules/zod/src/v4/core/to-json-schema.ts +283 -48
  559. package/node_modules/zod/src/v4/core/util.ts +454 -157
  560. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  561. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  562. package/node_modules/zod/src/v4/index.ts +3 -3
  563. package/node_modules/zod/src/v4/locales/ar.ts +5 -0
  564. package/node_modules/zod/src/v4/locales/az.ts +5 -0
  565. package/node_modules/zod/src/v4/locales/be.ts +12 -0
  566. package/node_modules/zod/src/v4/locales/bg.ts +5 -0
  567. package/node_modules/zod/src/v4/locales/bn.ts +123 -0
  568. package/node_modules/zod/src/v4/locales/ca.ts +5 -0
  569. package/node_modules/zod/src/v4/locales/ckb.ts +140 -0
  570. package/node_modules/zod/src/v4/locales/cs.ts +5 -0
  571. package/node_modules/zod/src/v4/locales/da.ts +7 -2
  572. package/node_modules/zod/src/v4/locales/de.ts +5 -0
  573. package/node_modules/zod/src/v4/locales/el.ts +3 -0
  574. package/node_modules/zod/src/v4/locales/en.ts +17 -4
  575. package/node_modules/zod/src/v4/locales/eo.ts +5 -0
  576. package/node_modules/zod/src/v4/locales/es.ts +4 -0
  577. package/node_modules/zod/src/v4/locales/fa.ts +5 -0
  578. package/node_modules/zod/src/v4/locales/fi.ts +5 -0
  579. package/node_modules/zod/src/v4/locales/fr-CA.ts +5 -0
  580. package/node_modules/zod/src/v4/locales/fr.ts +21 -14
  581. package/node_modules/zod/src/v4/locales/gu.ts +123 -0
  582. package/node_modules/zod/src/v4/locales/he.ts +8 -1
  583. package/node_modules/zod/src/v4/locales/hi.ts +126 -0
  584. package/node_modules/zod/src/v4/locales/hr.ts +4 -0
  585. package/node_modules/zod/src/v4/locales/hu.ts +5 -0
  586. package/node_modules/zod/src/v4/locales/hy.ts +11 -0
  587. package/node_modules/zod/src/v4/locales/id.ts +5 -0
  588. package/node_modules/zod/src/v4/locales/index.ts +11 -0
  589. package/node_modules/zod/src/v4/locales/is.ts +5 -0
  590. package/node_modules/zod/src/v4/locales/it.ts +5 -0
  591. package/node_modules/zod/src/v4/locales/ja.ts +5 -0
  592. package/node_modules/zod/src/v4/locales/ka.ts +5 -0
  593. package/node_modules/zod/src/v4/locales/km.ts +5 -0
  594. package/node_modules/zod/src/v4/locales/kn.ts +126 -0
  595. package/node_modules/zod/src/v4/locales/ko.ts +5 -0
  596. package/node_modules/zod/src/v4/locales/lt.ts +4 -0
  597. package/node_modules/zod/src/v4/locales/mk.ts +5 -0
  598. package/node_modules/zod/src/v4/locales/ms.ts +5 -0
  599. package/node_modules/zod/src/v4/locales/ne.ts +128 -0
  600. package/node_modules/zod/src/v4/locales/nl.ts +5 -0
  601. package/node_modules/zod/src/v4/locales/nn.ts +121 -0
  602. package/node_modules/zod/src/v4/locales/no.ts +7 -2
  603. package/node_modules/zod/src/v4/locales/ota.ts +5 -0
  604. package/node_modules/zod/src/v4/locales/pl.ts +5 -0
  605. package/node_modules/zod/src/v4/locales/ps.ts +5 -0
  606. package/node_modules/zod/src/v4/locales/pt-BR.ts +161 -0
  607. package/node_modules/zod/src/v4/locales/pt.ts +101 -58
  608. package/node_modules/zod/src/v4/locales/ro.ts +3 -0
  609. package/node_modules/zod/src/v4/locales/ru.ts +12 -0
  610. package/node_modules/zod/src/v4/locales/sk.ts +123 -0
  611. package/node_modules/zod/src/v4/locales/sl.ts +5 -0
  612. package/node_modules/zod/src/v4/locales/sv.ts +7 -2
  613. package/node_modules/zod/src/v4/locales/ta.ts +5 -0
  614. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  615. package/node_modules/zod/src/v4/locales/th.ts +5 -0
  616. package/node_modules/zod/src/v4/locales/tk.ts +113 -0
  617. package/node_modules/zod/src/v4/locales/tr.ts +5 -0
  618. package/node_modules/zod/src/v4/locales/uk.ts +5 -0
  619. package/node_modules/zod/src/v4/locales/ur.ts +5 -0
  620. package/node_modules/zod/src/v4/locales/uz.ts +3 -0
  621. package/node_modules/zod/src/v4/locales/vi.ts +5 -0
  622. package/node_modules/zod/src/v4/locales/yo.ts +5 -0
  623. package/node_modules/zod/src/v4/locales/zh-CN.ts +5 -0
  624. package/node_modules/zod/src/v4/locales/zh-TW.ts +5 -0
  625. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  626. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  627. package/node_modules/zod/src/v4/mini/external.ts +12 -1
  628. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  629. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  630. package/node_modules/zod/src/v4/mini/schemas.ts +167 -63
  631. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  632. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  633. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  634. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  635. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  636. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  637. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  638. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  639. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  640. package/node_modules/zod/src/v4/mini/tests/index.test.ts +158 -5
  641. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  642. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  643. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  644. package/node_modules/zod/src/v4/mini/tests/string.test.ts +44 -0
  645. package/node_modules/zod/v3/ZodError.cjs +41 -12
  646. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  647. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  648. package/node_modules/zod/v3/ZodError.js +22 -12
  649. package/node_modules/zod/v3/errors.cjs +19 -0
  650. package/node_modules/zod/v3/external.cjs +19 -0
  651. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  652. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  653. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  654. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  655. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  656. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  657. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  658. package/node_modules/zod/v3/index.cjs +19 -0
  659. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  660. package/node_modules/zod/v3/types.cjs +26 -5
  661. package/node_modules/zod/v3/types.js +7 -5
  662. package/node_modules/zod/v4/classic/checks.cjs +21 -1
  663. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  664. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  665. package/node_modules/zod/v4/classic/checks.js +1 -1
  666. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  667. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  668. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  669. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  670. package/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
  671. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  672. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  673. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  674. package/node_modules/zod/v4/classic/errors.cjs +62 -34
  675. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  676. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  677. package/node_modules/zod/v4/classic/errors.js +43 -34
  678. package/node_modules/zod/v4/classic/external.cjs +51 -27
  679. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  680. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  681. package/node_modules/zod/v4/classic/external.js +5 -8
  682. package/node_modules/zod/v4/classic/from-json-schema.cjs +376 -75
  683. package/node_modules/zod/v4/classic/from-json-schema.js +357 -75
  684. package/node_modules/zod/v4/classic/in-out.cjs +82 -0
  685. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  686. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  687. package/node_modules/zod/v4/classic/in-out.js +36 -0
  688. package/node_modules/zod/v4/classic/index.cjs +21 -2
  689. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  690. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  691. package/node_modules/zod/v4/classic/index.js +2 -2
  692. package/node_modules/zod/v4/classic/iso.cjs +30 -22
  693. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  694. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  695. package/node_modules/zod/v4/classic/iso.js +2 -17
  696. package/node_modules/zod/v4/classic/parse.cjs +23 -1
  697. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  698. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  699. package/node_modules/zod/v4/classic/parse.js +1 -0
  700. package/node_modules/zod/v4/classic/schemas.cjs +591 -426
  701. package/node_modules/zod/v4/classic/schemas.d.cts +68 -19
  702. package/node_modules/zod/v4/classic/schemas.d.ts +68 -19
  703. package/node_modules/zod/v4/classic/schemas.js +564 -424
  704. package/node_modules/zod/v4/core/api.cjs +66 -24
  705. package/node_modules/zod/v4/core/api.d.cts +22 -12
  706. package/node_modules/zod/v4/core/api.d.ts +22 -12
  707. package/node_modules/zod/v4/core/api.js +44 -24
  708. package/node_modules/zod/v4/core/checks.cjs +88 -128
  709. package/node_modules/zod/v4/core/checks.d.cts +29 -13
  710. package/node_modules/zod/v4/core/checks.d.ts +29 -13
  711. package/node_modules/zod/v4/core/checks.js +68 -127
  712. package/node_modules/zod/v4/core/compile.cjs +1908 -0
  713. package/node_modules/zod/v4/core/compile.d.cts +65 -0
  714. package/node_modules/zod/v4/core/compile.d.ts +65 -0
  715. package/node_modules/zod/v4/core/compile.js +1858 -0
  716. package/node_modules/zod/v4/core/core.cjs +101 -19
  717. package/node_modules/zod/v4/core/core.d.cts +16 -4
  718. package/node_modules/zod/v4/core/core.d.ts +16 -4
  719. package/node_modules/zod/v4/core/core.js +83 -20
  720. package/node_modules/zod/v4/core/doc.cjs +31 -9
  721. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  722. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  723. package/node_modules/zod/v4/core/doc.js +12 -9
  724. package/node_modules/zod/v4/core/errors.cjs +126 -25
  725. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  726. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  727. package/node_modules/zod/v4/core/errors.js +107 -25
  728. package/node_modules/zod/v4/core/index.cjs +24 -1
  729. package/node_modules/zod/v4/core/index.d.cts +3 -0
  730. package/node_modules/zod/v4/core/index.d.ts +3 -0
  731. package/node_modules/zod/v4/core/index.js +3 -0
  732. package/node_modules/zod/v4/core/json-schema-generator.cjs +24 -1
  733. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  734. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  735. package/node_modules/zod/v4/core/json-schema-generator.js +6 -2
  736. package/node_modules/zod/v4/core/json-schema-processors.cjs +441 -156
  737. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  738. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  739. package/node_modules/zod/v4/core/json-schema-processors.js +400 -158
  740. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  741. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  742. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  743. package/node_modules/zod/v4/core/memoizer.cjs +360 -0
  744. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  745. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  746. package/node_modules/zod/v4/core/memoizer.js +311 -0
  747. package/node_modules/zod/v4/core/parse.cjs +148 -46
  748. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  749. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  750. package/node_modules/zod/v4/core/parse.js +127 -45
  751. package/node_modules/zod/v4/core/regexes.cjs +54 -17
  752. package/node_modules/zod/v4/core/regexes.d.cts +5 -0
  753. package/node_modules/zod/v4/core/regexes.d.ts +5 -0
  754. package/node_modules/zod/v4/core/regexes.js +32 -15
  755. package/node_modules/zod/v4/core/registries.cjs +19 -0
  756. package/node_modules/zod/v4/core/registries.js +2 -2
  757. package/node_modules/zod/v4/core/schemas.cjs +785 -386
  758. package/node_modules/zod/v4/core/schemas.d.cts +123 -34
  759. package/node_modules/zod/v4/core/schemas.d.ts +123 -34
  760. package/node_modules/zod/v4/core/schemas.js +753 -386
  761. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  762. package/node_modules/zod/v4/core/to-json-schema.cjs +269 -45
  763. package/node_modules/zod/v4/core/to-json-schema.d.cts +45 -5
  764. package/node_modules/zod/v4/core/to-json-schema.d.ts +45 -5
  765. package/node_modules/zod/v4/core/to-json-schema.js +247 -44
  766. package/node_modules/zod/v4/core/util.cjs +372 -157
  767. package/node_modules/zod/v4/core/util.d.cts +79 -1
  768. package/node_modules/zod/v4/core/util.d.ts +79 -1
  769. package/node_modules/zod/v4/core/util.js +341 -156
  770. package/node_modules/zod/v4/core/versions.cjs +21 -2
  771. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  772. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  773. package/node_modules/zod/v4/core/versions.js +2 -2
  774. package/node_modules/zod/v4/core/visit.cjs +214 -0
  775. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  776. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  777. package/node_modules/zod/v4/core/visit.js +169 -0
  778. package/node_modules/zod/v4/index.cjs +34 -5
  779. package/node_modules/zod/v4/index.d.cts +2 -2
  780. package/node_modules/zod/v4/index.d.ts +2 -2
  781. package/node_modules/zod/v4/index.js +3 -2
  782. package/node_modules/zod/v4/locales/ar.cjs +5 -0
  783. package/node_modules/zod/v4/locales/ar.js +5 -0
  784. package/node_modules/zod/v4/locales/az.cjs +5 -0
  785. package/node_modules/zod/v4/locales/az.js +5 -0
  786. package/node_modules/zod/v4/locales/be.cjs +12 -0
  787. package/node_modules/zod/v4/locales/be.js +12 -0
  788. package/node_modules/zod/v4/locales/bg.cjs +5 -0
  789. package/node_modules/zod/v4/locales/bg.js +5 -0
  790. package/node_modules/zod/v4/locales/bn.cjs +140 -0
  791. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  792. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  793. package/node_modules/zod/v4/locales/bn.js +113 -0
  794. package/node_modules/zod/v4/locales/ca.cjs +5 -0
  795. package/node_modules/zod/v4/locales/ca.js +5 -0
  796. package/node_modules/zod/v4/locales/ckb.cjs +160 -0
  797. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  798. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  799. package/node_modules/zod/v4/locales/ckb.js +133 -0
  800. package/node_modules/zod/v4/locales/cs.cjs +5 -0
  801. package/node_modules/zod/v4/locales/cs.js +5 -0
  802. package/node_modules/zod/v4/locales/da.cjs +7 -2
  803. package/node_modules/zod/v4/locales/da.js +7 -2
  804. package/node_modules/zod/v4/locales/de.cjs +5 -0
  805. package/node_modules/zod/v4/locales/de.js +5 -0
  806. package/node_modules/zod/v4/locales/el.cjs +3 -0
  807. package/node_modules/zod/v4/locales/el.js +3 -0
  808. package/node_modules/zod/v4/locales/en.cjs +16 -4
  809. package/node_modules/zod/v4/locales/en.js +16 -4
  810. package/node_modules/zod/v4/locales/eo.cjs +5 -0
  811. package/node_modules/zod/v4/locales/eo.js +5 -0
  812. package/node_modules/zod/v4/locales/es.cjs +4 -0
  813. package/node_modules/zod/v4/locales/es.js +4 -0
  814. package/node_modules/zod/v4/locales/fa.cjs +5 -0
  815. package/node_modules/zod/v4/locales/fa.js +5 -0
  816. package/node_modules/zod/v4/locales/fi.cjs +5 -0
  817. package/node_modules/zod/v4/locales/fi.js +5 -0
  818. package/node_modules/zod/v4/locales/fr-CA.cjs +5 -0
  819. package/node_modules/zod/v4/locales/fr-CA.js +5 -0
  820. package/node_modules/zod/v4/locales/fr.cjs +18 -14
  821. package/node_modules/zod/v4/locales/fr.js +18 -14
  822. package/node_modules/zod/v4/locales/gu.cjs +140 -0
  823. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  824. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  825. package/node_modules/zod/v4/locales/gu.js +113 -0
  826. package/node_modules/zod/v4/locales/he.cjs +7 -0
  827. package/node_modules/zod/v4/locales/he.js +7 -0
  828. package/node_modules/zod/v4/locales/hi.cjs +138 -0
  829. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  830. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  831. package/node_modules/zod/v4/locales/hi.js +111 -0
  832. package/node_modules/zod/v4/locales/hr.cjs +4 -0
  833. package/node_modules/zod/v4/locales/hr.js +4 -0
  834. package/node_modules/zod/v4/locales/hu.cjs +5 -0
  835. package/node_modules/zod/v4/locales/hu.js +5 -0
  836. package/node_modules/zod/v4/locales/hy.cjs +11 -0
  837. package/node_modules/zod/v4/locales/hy.js +11 -0
  838. package/node_modules/zod/v4/locales/id.cjs +5 -0
  839. package/node_modules/zod/v4/locales/id.js +5 -0
  840. package/node_modules/zod/v4/locales/index.cjs +43 -2
  841. package/node_modules/zod/v4/locales/index.d.cts +11 -0
  842. package/node_modules/zod/v4/locales/index.d.ts +11 -0
  843. package/node_modules/zod/v4/locales/index.js +11 -0
  844. package/node_modules/zod/v4/locales/is.cjs +5 -0
  845. package/node_modules/zod/v4/locales/is.js +5 -0
  846. package/node_modules/zod/v4/locales/it.cjs +5 -0
  847. package/node_modules/zod/v4/locales/it.js +5 -0
  848. package/node_modules/zod/v4/locales/ja.cjs +5 -0
  849. package/node_modules/zod/v4/locales/ja.js +5 -0
  850. package/node_modules/zod/v4/locales/ka.cjs +5 -0
  851. package/node_modules/zod/v4/locales/ka.js +5 -0
  852. package/node_modules/zod/v4/locales/km.cjs +5 -0
  853. package/node_modules/zod/v4/locales/km.js +5 -0
  854. package/node_modules/zod/v4/locales/kn.cjs +143 -0
  855. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  856. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  857. package/node_modules/zod/v4/locales/kn.js +116 -0
  858. package/node_modules/zod/v4/locales/ko.cjs +5 -0
  859. package/node_modules/zod/v4/locales/ko.js +5 -0
  860. package/node_modules/zod/v4/locales/lt.cjs +4 -0
  861. package/node_modules/zod/v4/locales/lt.js +4 -0
  862. package/node_modules/zod/v4/locales/mk.cjs +5 -0
  863. package/node_modules/zod/v4/locales/mk.js +5 -0
  864. package/node_modules/zod/v4/locales/ms.cjs +5 -0
  865. package/node_modules/zod/v4/locales/ms.js +5 -0
  866. package/node_modules/zod/v4/locales/ne.cjs +138 -0
  867. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  868. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  869. package/node_modules/zod/v4/locales/ne.js +111 -0
  870. package/node_modules/zod/v4/locales/nl.cjs +5 -0
  871. package/node_modules/zod/v4/locales/nl.js +5 -0
  872. package/node_modules/zod/v4/locales/nn.cjs +140 -0
  873. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  874. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  875. package/node_modules/zod/v4/locales/nn.js +113 -0
  876. package/node_modules/zod/v4/locales/no.cjs +7 -2
  877. package/node_modules/zod/v4/locales/no.js +7 -2
  878. package/node_modules/zod/v4/locales/ota.cjs +5 -0
  879. package/node_modules/zod/v4/locales/ota.js +5 -0
  880. package/node_modules/zod/v4/locales/pl.cjs +5 -0
  881. package/node_modules/zod/v4/locales/pl.js +5 -0
  882. package/node_modules/zod/v4/locales/ps.cjs +5 -0
  883. package/node_modules/zod/v4/locales/ps.js +5 -0
  884. package/node_modules/zod/v4/locales/pt-BR.cjs +170 -0
  885. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  886. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  887. package/node_modules/zod/v4/locales/pt-BR.js +143 -0
  888. package/node_modules/zod/v4/locales/pt.cjs +89 -55
  889. package/node_modules/zod/v4/locales/pt.js +89 -55
  890. package/node_modules/zod/v4/locales/ro.cjs +3 -0
  891. package/node_modules/zod/v4/locales/ro.js +3 -0
  892. package/node_modules/zod/v4/locales/ru.cjs +12 -0
  893. package/node_modules/zod/v4/locales/ru.js +12 -0
  894. package/node_modules/zod/v4/locales/sk.cjs +143 -0
  895. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  896. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  897. package/node_modules/zod/v4/locales/sk.js +116 -0
  898. package/node_modules/zod/v4/locales/sl.cjs +5 -0
  899. package/node_modules/zod/v4/locales/sl.js +5 -0
  900. package/node_modules/zod/v4/locales/sv.cjs +7 -2
  901. package/node_modules/zod/v4/locales/sv.js +7 -2
  902. package/node_modules/zod/v4/locales/ta.cjs +5 -0
  903. package/node_modules/zod/v4/locales/ta.js +5 -0
  904. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  905. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  906. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  907. package/node_modules/zod/v4/locales/tg.js +117 -0
  908. package/node_modules/zod/v4/locales/th.cjs +5 -0
  909. package/node_modules/zod/v4/locales/th.js +5 -0
  910. package/node_modules/zod/v4/locales/tk.cjs +134 -0
  911. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  912. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  913. package/node_modules/zod/v4/locales/tk.js +107 -0
  914. package/node_modules/zod/v4/locales/tr.cjs +5 -0
  915. package/node_modules/zod/v4/locales/tr.js +5 -0
  916. package/node_modules/zod/v4/locales/uk.cjs +5 -0
  917. package/node_modules/zod/v4/locales/uk.js +5 -0
  918. package/node_modules/zod/v4/locales/ur.cjs +5 -0
  919. package/node_modules/zod/v4/locales/ur.js +5 -0
  920. package/node_modules/zod/v4/locales/uz.cjs +3 -0
  921. package/node_modules/zod/v4/locales/uz.js +3 -0
  922. package/node_modules/zod/v4/locales/vi.cjs +5 -0
  923. package/node_modules/zod/v4/locales/vi.js +5 -0
  924. package/node_modules/zod/v4/locales/yo.cjs +5 -0
  925. package/node_modules/zod/v4/locales/yo.js +5 -0
  926. package/node_modules/zod/v4/locales/zh-CN.cjs +5 -0
  927. package/node_modules/zod/v4/locales/zh-CN.js +5 -0
  928. package/node_modules/zod/v4/locales/zh-TW.cjs +5 -0
  929. package/node_modules/zod/v4/locales/zh-TW.js +5 -0
  930. package/node_modules/zod/v4/mini/checks.cjs +21 -1
  931. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  932. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  933. package/node_modules/zod/v4/mini/checks.js +1 -1
  934. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  935. package/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
  936. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  937. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  938. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  939. package/node_modules/zod/v4/mini/external.cjs +33 -1
  940. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  941. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  942. package/node_modules/zod/v4/mini/external.js +3 -1
  943. package/node_modules/zod/v4/mini/in-out.cjs +82 -0
  944. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  945. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  946. package/node_modules/zod/v4/mini/in-out.js +36 -0
  947. package/node_modules/zod/v4/mini/index.cjs +19 -0
  948. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  949. package/node_modules/zod/v4/mini/parse.cjs +22 -1
  950. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  951. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  952. package/node_modules/zod/v4/mini/parse.js +1 -1
  953. package/node_modules/zod/v4/mini/schemas.cjs +117 -53
  954. package/node_modules/zod/v4/mini/schemas.d.cts +49 -14
  955. package/node_modules/zod/v4/mini/schemas.d.ts +49 -14
  956. package/node_modules/zod/v4/mini/schemas.js +92 -51
  957. package/node_modules/zod/v4-mini/index.cjs +19 -0
  958. package/openclaw.plugin.json +222 -45
  959. package/package.json +14 -11
  960. package/dist/direct-room-RinHjtqX.js +0 -71
  961. package/dist/probe.runtime-DWdw74_H.js +0 -2
  962. package/dist/runtime-6S3DNFNv.js +0 -8
  963. package/dist/types-DzSc7Sqm.js +0 -32
  964. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts +0 -33
  965. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts.map +0 -1
  966. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js +0 -93
  967. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js.map +0 -1
  968. package/node_modules/markdown-it/node_modules/entities/src/internal/encode-shared.ts +0 -123
  969. package/node_modules/zod/src/v4/core/config.ts +0 -15
  970. /package/dist/{account-config-CRsKoMqJ.js → .setup/account-config-CRsKoMqJ.mjs} +0 -0
  971. /package/dist/{backup-health-Dm_YMVFT.js → .setup/backup-health-Dm_YMVFT.mjs} +0 -0
  972. /package/dist/{config-paths-CnREYb1Y.js → .setup/config-paths-CnREYb1Y.mjs} +0 -0
  973. /package/dist/{config-secret-input.runtime-CwsP3--c.js → .setup/config-secret-input.runtime-CwsP3--c.mjs} +0 -0
  974. /package/dist/{credentials-state-B3cuUFwZ.js → .setup/credentials-state-B3cuUFwZ.mjs} +0 -0
  975. /package/dist/{crypto-node.runtime-6Aj_ltHQ.js → .setup/crypto-node.runtime-6Aj_ltHQ.mjs} +0 -0
  976. /package/dist/{deps-mtxF2mHI.js → .setup/deps-mtxF2mHI.mjs} +0 -0
  977. /package/dist/{doctor-contract-HyWFZQVG.js → .setup/doctor-contract-HyWFZQVG.mjs} +0 -0
  978. /package/dist/{env-vars-dGqak9dN.js → .setup/env-vars-dGqak9dN.mjs} +0 -0
  979. /package/dist/{errors-DKVS3_DO.js → .setup/errors-DKVS3_DO.mjs} +0 -0
  980. /package/dist/{event-helpers-CspuhE9k.js → .setup/event-helpers-CspuhE9k.mjs} +0 -0
  981. /package/dist/{idb-persistence-lock-B3fZXyF_.js → .setup/idb-persistence-lock-B3fZXyF_.mjs} +0 -0
  982. /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
  983. /package/dist/{storage-paths-DVCANXTc.js → .setup/storage-paths-DVCANXTc.mjs} +0 -0
  984. /package/dist/{target-ids-Nwx7cMVE.js → .setup/target-ids-Nwx7cMVE.mjs} +0 -0
  985. /package/dist/{thread-bindings-shared-oNPiyMWY.js → .setup/thread-bindings-shared-oNPiyMWY.mjs} +0 -0
  986. /package/dist/{url-validation-GRHde6lq.js → .setup/url-validation-GRHde6lq.mjs} +0 -0
@@ -1,31 +1,32 @@
1
- import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
3
- import { D as writeMatrixRecoveryKeyStateForPath, S as readMatrixRecoveryKeyStateForPath, f as migrateLegacyMatrixRecoveryKeyFilePathToStore, v as readLegacyMatrixRecoveryKeyFile } from "./storage-metadata-DYArLcq1.js";
4
- import { t as claimCurrentTokenStorageState } from "./storage-CV-pfV_2.js";
5
- import "./reaction-common-DkrQdBSZ.js";
6
- import { i as parseMxc, r as matrixEventToRaw } from "./event-helpers-CspuhE9k.js";
7
- import { i as openMatrixSyncCacheStoreOptions, l as writeMatrixSyncCacheStateToSyncStore, n as deleteMatrixSyncCacheStateFromSyncStore, o as readPersistedStoreFromSyncStore } from "./sync-cache-state-C-mhj3xb.js";
8
- import { n as isMatrixNotFoundError, t as formatMatrixErrorReason } from "./errors-DKVS3_DO.js";
9
- import { a as throwIfMatrixStartupAborted, r as createMatrixStartupAbortError } from "./client-CPcRv6ab.js";
10
- import { n as LogService, r as noop, t as ConsoleLogger } from "./logger-B_71hN6W.js";
11
- import { n as createMatrixGuardedFetch, t as MatrixAuthedHttpClient } from "./http-client-BfPeF4CE.js";
12
- import { n as resolveMatrixRoomKeyBackupReadinessError } from "./backup-health-Dm_YMVFT.js";
13
- import { t as createMatrixJsSdkClientLogger } from "./logging-DRjvUOIh.js";
14
- import { t as MATRIX_IDB_PERSIST_INTERVAL_MS } from "./idb-persistence-lock-B3fZXyF_.js";
15
- import { a as isMatrixAccessTokenInvalidatedError, c as resolveMatrixLocalTimeoutMs, f as isMatrixReadySyncState, i as createMatrixExplicitBootstrapOptions, l as unresolvedMatrixDeviceVerificationStatus, n as MATRIX_INITIAL_CRYPTO_BOOTSTRAP_OPTIONS, o as resolveMatrixDiagnostic, p as isMatrixTerminalSyncState, r as MATRIX_STATUS_DIAGNOSTIC_TIMEOUT_MS, s as resolveMatrixDiagnosticResult, t as MATRIX_AUTOMATIC_REPAIR_BOOTSTRAP_OPTIONS, u as unresolvedMatrixRoomKeyBackupStatus } from "./client-support-DLj4vDeu.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.mjs";
2
+ import { t as getMatrixRuntime } from "./runtime-1kn1P6io.mjs";
3
+ import { E as writeMatrixRecoveryKeyStateForPathAsync, _ as readLegacyMatrixRecoveryKeyFile, f as migrateLegacyMatrixRecoveryKeyFilePathToStoreAsync, x as readMatrixRecoveryKeyStateForPathAsync } from "./storage-metadata-fHN6Df2m.mjs";
4
+ import { r as withoutMatrixSendCurrentness, t as captureMatrixSendCurrentness } from "./send-currentness-BrGXL7b8.mjs";
5
+ import { i as parseMxc, r as matrixEventToRaw } from "./event-helpers-CspuhE9k.mjs";
6
+ import { n as isMatrixNotFoundError, t as formatMatrixErrorReason } from "./errors-DKVS3_DO.mjs";
7
+ import { a as createMatrixStartupAbortError, i as awaitMatrixStartupWithAbort, s as throwIfMatrixStartupAborted } from "./client-ChrXpxos.mjs";
8
+ import { n as createMatrixGuardedFetch, t as MatrixAuthedHttpClient } from "./http-client-Bi6uKmzh.mjs";
9
+ import { n as resolveMatrixRoomKeyBackupReadinessError } from "./backup-health-Dm_YMVFT.mjs";
10
+ import { n as LogService, r as noop, t as ConsoleLogger } from "./logger-xBjiRIp1.mjs";
11
+ import { t as createMatrixJsSdkClientLogger } from "./logging-rgm8ep9H.mjs";
12
+ import { t as MATRIX_IDB_PERSIST_INTERVAL_MS } from "./idb-persistence-lock-B3fZXyF_.mjs";
13
+ import { a as isMatrixAccessTokenInvalidatedError, c as resolveMatrixLocalTimeoutMs, f as isMatrixReadySyncState, i as createMatrixExplicitBootstrapOptions, l as unresolvedMatrixDeviceVerificationStatus, n as MATRIX_INITIAL_CRYPTO_BOOTSTRAP_OPTIONS, o as resolveMatrixDiagnostic, p as isMatrixTerminalSyncState, r as MATRIX_STATUS_DIAGNOSTIC_TIMEOUT_MS, s as resolveMatrixDiagnosticResult, t as MATRIX_AUTOMATIC_REPAIR_BOOTSTRAP_OPTIONS, u as unresolvedMatrixRoomKeyBackupStatus } from "./client-support-Bn9Bk0-H.mjs";
16
14
  import { createRequire } from "node:module";
17
15
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
18
16
  import { normalizeNullableString, normalizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
19
17
  import { createHash } from "node:crypto";
20
18
  import path from "node:path";
21
19
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
20
+ import { AsyncLocalStorage } from "node:async_hooks";
22
21
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
22
+ import { captureChannelReadAuthority } from "openclaw/plugin-sdk/fetch-runtime";
23
+ import { ClientEvent, EventType, Filter, MatrixError, MatrixEventEvent, MsgType, Preset, createClient } from "matrix-js-sdk/lib/matrix.js";
23
24
  import { EventEmitter } from "node:events";
24
- import { ClientEvent, EventType, Filter, MatrixError, MatrixEventEvent, MemoryStore, MsgType, Preset, SyncAccumulator, createClient } from "matrix-js-sdk/lib/matrix.js";
25
25
  import { RoomEvent } from "matrix-js-sdk/lib/models/room.js";
26
26
  import { VerificationMethod } from "matrix-js-sdk/lib/types.js";
27
27
  import { SyncApi, SyncState } from "matrix-js-sdk/lib/sync.js";
28
28
  import { decodeRecoveryKey } from "matrix-js-sdk/lib/crypto-api/recovery-key.js";
29
+ import { MatrixScheduler } from "matrix-js-sdk/lib/scheduler.js";
29
30
  import { EventStatus } from "matrix-js-sdk/lib/models/event-status.js";
30
31
  //#region extensions/matrix/src/matrix/sdk/client-device-info.ts
31
32
  async function resolveMatrixCrossSigningPublicationStatus(params) {
@@ -140,226 +141,9 @@ function refreshMatrixDmRoomIds(direct, dmRoomIds) {
140
141
  return true;
141
142
  }
142
143
  //#endregion
143
- //#region extensions/matrix/src/matrix/async-lock.ts
144
- function createAsyncLock() {
145
- let lock = Promise.resolve();
146
- return async function withLock(fn) {
147
- const previous = lock;
148
- let release;
149
- lock = new Promise((resolve) => {
150
- release = resolve;
151
- });
152
- await previous;
153
- try {
154
- return await fn();
155
- } finally {
156
- release?.();
157
- }
158
- };
159
- }
160
- //#endregion
161
- //#region extensions/matrix/src/matrix/client/file-sync-store.ts
162
- const PERSIST_DEBOUNCE_MS = 250;
163
- function cloneJson(value) {
164
- return structuredClone(value);
165
- }
166
- function syncDataToSyncResponse(syncData) {
167
- return {
168
- next_batch: syncData.nextBatch,
169
- rooms: syncData.roomsData,
170
- account_data: { events: syncData.accountData }
171
- };
172
- }
173
- var SqliteBackedMatrixSyncStore = class extends MemoryStore {
174
- constructor(storageRootDir) {
175
- super();
176
- this.storageRootDir = storageRootDir;
177
- this.persistLock = createAsyncLock();
178
- this.accumulator = new SyncAccumulator();
179
- this.savedSync = null;
180
- this.cleanShutdown = false;
181
- this.dirty = false;
182
- this.frozen = false;
183
- this.persistTimer = null;
184
- this.persistPromise = null;
185
- let restoredSavedSync = null;
186
- let restoredClientOptions;
187
- let restoredCleanShutdown = false;
188
- let syncCacheStore = createNoopMatrixSyncCacheStore();
189
- let syncCacheStoreUnavailableError;
190
- try {
191
- syncCacheStore = openMatrixSyncCacheStore(storageRootDir);
192
- const persisted = readPersistedStoreFromSyncStore(syncCacheStore);
193
- if (persisted) {
194
- restoredSavedSync = persisted.savedSync;
195
- restoredClientOptions = persisted.clientOptions;
196
- restoredCleanShutdown = persisted.cleanShutdown === true;
197
- }
198
- } catch (err) {
199
- syncCacheStoreUnavailableError = err;
200
- LogService.warn("MatrixSyncCacheStore", "Failed to load Matrix sync cache:", err);
201
- }
202
- this.store = syncCacheStore;
203
- this.storeUnavailableError = syncCacheStoreUnavailableError;
204
- this.savedSync = restoredSavedSync;
205
- this.savedClientOptions = restoredClientOptions;
206
- this.hadSavedSyncOnLoad = restoredSavedSync !== null;
207
- this.hadCleanShutdownOnLoad = this.hadSavedSyncOnLoad && restoredCleanShutdown;
208
- this.cleanShutdown = this.hadCleanShutdownOnLoad;
209
- if (this.savedSync) {
210
- this.accumulator.accumulate(syncDataToSyncResponse(this.savedSync), true);
211
- super.setSyncToken(this.savedSync.nextBatch);
212
- }
213
- if (this.savedClientOptions) super.storeClientOptions(this.savedClientOptions);
214
- }
215
- hasSavedSync() {
216
- return this.hadSavedSyncOnLoad;
217
- }
218
- hasSavedSyncFromCleanShutdown() {
219
- return this.hadCleanShutdownOnLoad;
220
- }
221
- getSavedSync() {
222
- return Promise.resolve(this.savedSync ? cloneJson(this.savedSync) : null);
223
- }
224
- getSavedSyncToken() {
225
- return Promise.resolve(this.savedSync?.nextBatch ?? null);
226
- }
227
- setSyncData(syncData) {
228
- if (this.frozen) return Promise.resolve();
229
- this.accumulator.accumulate(syncData);
230
- this.savedSync = this.accumulator.getJSON();
231
- this.markDirtyAndSchedulePersist();
232
- return Promise.resolve();
233
- }
234
- getClientOptions() {
235
- return Promise.resolve(this.savedClientOptions ? cloneJson(this.savedClientOptions) : void 0);
236
- }
237
- storeClientOptions(options) {
238
- if (this.frozen) return Promise.resolve();
239
- this.savedClientOptions = cloneJson(options);
240
- super.storeClientOptions(options);
241
- this.markDirtyAndSchedulePersist();
242
- return Promise.resolve();
243
- }
244
- save(force = false) {
245
- if (force) return this.flush();
246
- return Promise.resolve();
247
- }
248
- wantsSave() {
249
- return false;
250
- }
251
- async deleteAllData() {
252
- this.assertStoreAvailable();
253
- if (this.persistTimer) {
254
- clearTimeout(this.persistTimer);
255
- this.persistTimer = null;
256
- }
257
- this.dirty = false;
258
- await this.persistPromise?.catch(() => void 0);
259
- await super.deleteAllData();
260
- this.savedSync = null;
261
- this.savedClientOptions = void 0;
262
- this.cleanShutdown = false;
263
- await deleteMatrixSyncCacheStateFromSyncStore({
264
- storageRootDir: this.storageRootDir,
265
- store: this.store
266
- });
267
- }
268
- markCleanShutdown() {
269
- this.cleanShutdown = true;
270
- this.dirty = true;
271
- }
272
- async freezeSyncCursorPersistence() {
273
- this.frozen = true;
274
- if (this.persistTimer) {
275
- clearTimeout(this.persistTimer);
276
- this.persistTimer = null;
277
- }
278
- await this.persistPromise;
279
- }
280
- discardPendingSyncCursorPersistence() {
281
- this.frozen = true;
282
- if (this.persistTimer) {
283
- clearTimeout(this.persistTimer);
284
- this.persistTimer = null;
285
- }
286
- this.cleanShutdown = false;
287
- this.dirty = false;
288
- }
289
- async flush() {
290
- if (this.persistTimer) {
291
- clearTimeout(this.persistTimer);
292
- this.persistTimer = null;
293
- }
294
- while (this.dirty || this.persistPromise) {
295
- if (this.dirty && !this.persistPromise) this.persistPromise = this.persist().finally(() => {
296
- this.persistPromise = null;
297
- });
298
- await this.persistPromise;
299
- }
300
- }
301
- markDirtyAndSchedulePersist() {
302
- if (this.frozen) return;
303
- this.cleanShutdown = false;
304
- this.dirty = true;
305
- if (this.persistTimer) return;
306
- this.persistTimer = setTimeout(() => {
307
- this.persistTimer = null;
308
- this.flush().catch((err) => {
309
- LogService.warn("MatrixSyncCacheStore", "Failed to persist Matrix sync store:", err);
310
- });
311
- }, PERSIST_DEBOUNCE_MS);
312
- this.persistTimer.unref?.();
313
- }
314
- async persist() {
315
- this.assertStoreAvailable();
316
- this.dirty = false;
317
- const payload = {
318
- version: 1,
319
- savedSync: this.savedSync ? cloneJson(this.savedSync) : null,
320
- cleanShutdown: this.cleanShutdown,
321
- ...this.savedClientOptions ? { clientOptions: cloneJson(this.savedClientOptions) } : {}
322
- };
323
- try {
324
- await this.persistLock(async () => {
325
- writeMatrixSyncCacheStateToSyncStore({
326
- payload,
327
- store: this.store
328
- });
329
- claimCurrentTokenStorageState({ rootDir: this.storageRootDir });
330
- });
331
- } catch (err) {
332
- this.dirty = true;
333
- throw err;
334
- }
335
- }
336
- assertStoreAvailable() {
337
- if (this.storeUnavailableError == null) return;
338
- throw new Error("Matrix sync cache SQLite store is unavailable; cannot persist sync state", { cause: this.storeUnavailableError });
339
- }
340
- };
341
- function createNoopMatrixSyncCacheStore() {
342
- return {
343
- register: () => {},
344
- registerIfAbsent: () => false,
345
- lookup: () => void 0,
346
- lookupMany: (keys) => keys.map(() => ({
347
- ok: true,
348
- value: void 0
349
- })),
350
- consume: () => void 0,
351
- delete: () => false,
352
- entries: () => [],
353
- clear: () => {}
354
- };
355
- }
356
- function openMatrixSyncCacheStore(storageRootDir) {
357
- return getMatrixRuntime().state.openSyncKeyedStore(openMatrixSyncCacheStoreOptions(storageRootDir));
358
- }
359
- //#endregion
360
144
  //#region extensions/matrix/src/matrix/sdk/client-sync-quiesce.ts
361
145
  const MATRIX_SYNC_QUIESCE_TIMEOUT_MS = 5e3;
362
- const MATRIX_JS_SDK_SYNC_VERSION = "42.2.0";
146
+ const MATRIX_JS_SDK_SYNC_VERSION = "42.3.0";
363
147
  const matrixJsSdkPackage = createRequire(import.meta.url)("matrix-js-sdk/package.json");
364
148
  function requireMatrixClassicSyncInternals(syncApi) {
365
149
  return syncApi;
@@ -426,6 +210,124 @@ async function quiesceMatrixClientSync(params) {
426
210
  });
427
211
  }
428
212
  //#endregion
213
+ //#region extensions/matrix/src/matrix/sdk/client-sync-ready.ts
214
+ async function waitForMatrixInitialSyncReady(params) {
215
+ const timeoutMs = params.timeoutMs ?? 3e4;
216
+ if (isMatrixReadySyncState(params.state)) return;
217
+ if (isMatrixAccessTokenInvalidatedError(params.error)) throw params.error instanceof Error ? params.error : new Error("Matrix access token invalidated", { cause: params.error });
218
+ if (isMatrixTerminalSyncState(params.state)) throw new Error(`Matrix sync entered ${params.state} during startup`);
219
+ await new Promise((resolve, reject) => {
220
+ let settled = false;
221
+ let timeoutId;
222
+ const abortSignal = params.abortSignal;
223
+ const cleanup = () => {
224
+ params.emitter.off("sync.state", onSyncState);
225
+ params.emitter.off("sync.unexpected_error", onUnexpectedError);
226
+ abortSignal?.removeEventListener("abort", onAbort);
227
+ if (timeoutId) {
228
+ clearTimeout(timeoutId);
229
+ timeoutId = void 0;
230
+ }
231
+ };
232
+ const settleResolve = () => {
233
+ if (settled) return;
234
+ settled = true;
235
+ cleanup();
236
+ resolve();
237
+ };
238
+ const settleReject = (error) => {
239
+ if (settled) return;
240
+ settled = true;
241
+ cleanup();
242
+ reject(error);
243
+ };
244
+ const onSyncState = (state, _prevState, error) => {
245
+ if (isMatrixReadySyncState(state)) {
246
+ settleResolve();
247
+ return;
248
+ }
249
+ if (isMatrixAccessTokenInvalidatedError(error)) {
250
+ settleReject(error instanceof Error ? error : /* @__PURE__ */ new Error("Matrix access token invalidated"));
251
+ return;
252
+ }
253
+ if (isMatrixTerminalSyncState(state)) settleReject(new Error(error instanceof Error && error.message ? error.message : `Matrix sync entered ${state} during startup`));
254
+ };
255
+ const onUnexpectedError = (error) => {
256
+ settleReject(error);
257
+ };
258
+ const onAbort = () => {
259
+ settleReject(createMatrixStartupAbortError());
260
+ };
261
+ params.emitter.on("sync.state", onSyncState);
262
+ params.emitter.on("sync.unexpected_error", onUnexpectedError);
263
+ if (abortSignal?.aborted) {
264
+ onAbort();
265
+ return;
266
+ }
267
+ abortSignal?.addEventListener("abort", onAbort, { once: true });
268
+ timeoutId = setTimeout(() => {
269
+ settleReject(/* @__PURE__ */ new Error(`Matrix client did not reach a ready sync state within ${timeoutMs}ms`));
270
+ }, timeoutMs);
271
+ timeoutId.unref?.();
272
+ });
273
+ }
274
+ //#endregion
275
+ //#region extensions/matrix/src/matrix/sdk/message-wire-dispatch.ts
276
+ function resolveMessageWireDispatch(resource, init) {
277
+ if ((init?.method ?? (resource instanceof Request ? resource.method : "GET")).toUpperCase() !== "PUT") return null;
278
+ const rawUrl = typeof resource === "string" ? resource : resource instanceof URL ? resource.href : resource.url;
279
+ const segments = new URL(rawUrl).pathname.split("/").filter(Boolean);
280
+ const roomsIndex = segments.lastIndexOf("rooms");
281
+ if (roomsIndex < 0 || segments[roomsIndex + 2] !== "send" || segments.length !== roomsIndex + 5) return null;
282
+ const eventType = decodeURIComponent(segments[roomsIndex + 3] ?? "");
283
+ if (eventType !== "m.room.message" && eventType !== "m.room.encrypted") return null;
284
+ return {
285
+ roomId: decodeURIComponent(segments[roomsIndex + 1] ?? ""),
286
+ eventType,
287
+ transactionId: decodeURIComponent(segments[roomsIndex + 4] ?? ""),
288
+ requestPath: new URL(rawUrl).pathname
289
+ };
290
+ }
291
+ var MatrixMessageWireDispatchGuards = class {
292
+ constructor() {
293
+ this.guards = /* @__PURE__ */ new Map();
294
+ }
295
+ captureCurrentness(resource, init, fallback) {
296
+ const dispatch = resolveMessageWireDispatch(resource, init);
297
+ const entry = dispatch ? this.guards.get(dispatch.transactionId) : void 0;
298
+ if (!entry) return fallback;
299
+ const assertCurrent = entry.assertCurrent;
300
+ return assertCurrent ? () => {
301
+ try {
302
+ assertCurrent();
303
+ } catch (error) {
304
+ entry.currentnessRejected = true;
305
+ throw error;
306
+ }
307
+ } : void 0;
308
+ }
309
+ wasCurrentnessRejected(transactionId) {
310
+ return transactionId !== void 0 && this.guards.get(transactionId)?.currentnessRejected === true;
311
+ }
312
+ beforeRequest(resource, init) {
313
+ const dispatch = resolveMessageWireDispatch(resource, init);
314
+ return dispatch ? Promise.resolve(this.guards.get(dispatch.transactionId)?.guard?.(dispatch)) : void 0;
315
+ }
316
+ async run(params) {
317
+ if (!params.transactionId || !params.guard && !params.assertCurrent) return await params.run();
318
+ if (this.guards.has(params.transactionId)) throw new Error(`Matrix transaction ${params.transactionId} already has a dispatch guard`);
319
+ this.guards.set(params.transactionId, {
320
+ guard: params.guard,
321
+ assertCurrent: params.assertCurrent
322
+ });
323
+ try {
324
+ return await params.run();
325
+ } finally {
326
+ this.guards.delete(params.transactionId);
327
+ }
328
+ }
329
+ };
330
+ //#endregion
429
331
  //#region extensions/matrix/src/matrix/sdk/recovery-key-store.ts
430
332
  function isRepairableSecretStorageAccessError(err) {
431
333
  const message = formatMatrixErrorReason(err);
@@ -435,63 +337,95 @@ function isRepairableSecretStorageAccessError(err) {
435
337
  return false;
436
338
  }
437
339
  var MatrixRecoveryKeyStore = class {
438
- constructor(recoveryKeyPath) {
340
+ constructor(recoveryKeyPath, stateRuntime) {
439
341
  this.secretStorageKeyCache = /* @__PURE__ */ new Map();
440
342
  this.stagedRecoveryKey = null;
441
343
  this.stagedRecoveryKeyUsed = false;
442
344
  this.stagedCacheKeyIds = /* @__PURE__ */ new Set();
345
+ this.pendingPersistence = Promise.resolve();
346
+ this.closed = false;
443
347
  this.recoveryKeyPath = recoveryKeyPath;
444
348
  this.storageRootDir = recoveryKeyPath ? path.dirname(recoveryKeyPath) : void 0;
445
- if (this.recoveryKeyPath) try {
446
- migrateLegacyMatrixRecoveryKeyFilePathToStore(this.recoveryKeyPath);
447
- } catch (err) {
448
- this.legacyRecoveryKeyPathOnMigrationFailure = this.recoveryKeyPath;
449
- LogService.warn("MatrixClientLite", "Failed to migrate Matrix recovery key state:", err);
349
+ if (recoveryKeyPath) {
350
+ this.stateRuntime = stateRuntime ?? getMatrixRuntime().state;
351
+ const runtime = this.stateRuntime;
352
+ this.enqueuePersistence(async () => {
353
+ try {
354
+ await migrateLegacyMatrixRecoveryKeyFilePathToStoreAsync(recoveryKeyPath, runtime);
355
+ } catch (err) {
356
+ this.legacyRecoveryKeyPathOnMigrationFailure = recoveryKeyPath;
357
+ LogService.warn("MatrixClientLite", "Failed to migrate Matrix recovery key state:", err);
358
+ }
359
+ });
450
360
  }
451
361
  }
362
+ enqueuePersistence(run) {
363
+ if (this.closed) return Promise.reject(/* @__PURE__ */ new Error("Matrix recovery key store is closed"));
364
+ const pending = this.pendingPersistence.then(run);
365
+ this.pendingPersistence = pending.then(() => {}, () => {});
366
+ return pending;
367
+ }
368
+ async afterPersistence(read) {
369
+ for (;;) {
370
+ const pending = this.pendingPersistence;
371
+ await pending;
372
+ if (pending === this.pendingPersistence) return read();
373
+ }
374
+ }
375
+ async drainPendingPersistence() {
376
+ await this.afterPersistence(() => {});
377
+ }
378
+ async close() {
379
+ this.closed = true;
380
+ await this.drainPendingPersistence();
381
+ }
452
382
  buildCryptoCallbacks() {
383
+ const getSecretStorageKey = ({ keys }) => this.afterPersistence(async () => {
384
+ if (this.closed) return null;
385
+ const requestedKeyIds = Object.keys(keys ?? {});
386
+ if (requestedKeyIds.length === 0) return null;
387
+ const staged = this.resolveStagedSecretStorageKey(requestedKeyIds);
388
+ if (staged) return staged;
389
+ for (const keyId of requestedKeyIds) {
390
+ const cached = this.secretStorageKeyCache.get(keyId);
391
+ if (cached) return [keyId, new Uint8Array(cached.key)];
392
+ }
393
+ const pending = this.pendingPersistence;
394
+ const stored = await this.loadStoredRecoveryKey();
395
+ if (this.closed) return null;
396
+ if (pending !== this.pendingPersistence) return getSecretStorageKey({ keys });
397
+ if (!stored?.privateKeyBase64) return null;
398
+ const privateKey = new Uint8Array(Buffer.from(stored.privateKeyBase64, "base64"));
399
+ if (privateKey.length === 0) return null;
400
+ if (stored.keyId && requestedKeyIds.includes(stored.keyId)) {
401
+ this.rememberSecretStorageKey(stored.keyId, privateKey, stored.keyInfo);
402
+ return [stored.keyId, privateKey];
403
+ }
404
+ const firstRequestedKeyId = requestedKeyIds[0];
405
+ if (!firstRequestedKeyId) return null;
406
+ this.rememberSecretStorageKey(firstRequestedKeyId, privateKey, stored.keyInfo);
407
+ return [firstRequestedKeyId, privateKey];
408
+ });
453
409
  return {
454
- getSecretStorageKey: async ({ keys }) => {
455
- const requestedKeyIds = Object.keys(keys ?? {});
456
- if (requestedKeyIds.length === 0) return null;
457
- const staged = this.resolveStagedSecretStorageKey(requestedKeyIds);
458
- if (staged) return staged;
459
- for (const keyId of requestedKeyIds) {
460
- const cached = this.secretStorageKeyCache.get(keyId);
461
- if (cached) return [keyId, new Uint8Array(cached.key)];
462
- }
463
- const stored = this.loadStoredRecoveryKey();
464
- if (!stored?.privateKeyBase64) return null;
465
- const privateKey = new Uint8Array(Buffer.from(stored.privateKeyBase64, "base64"));
466
- if (privateKey.length === 0) return null;
467
- if (stored.keyId && requestedKeyIds.includes(stored.keyId)) {
468
- this.rememberSecretStorageKey(stored.keyId, privateKey, stored.keyInfo);
469
- return [stored.keyId, privateKey];
470
- }
471
- const firstRequestedKeyId = requestedKeyIds[0];
472
- if (!firstRequestedKeyId) return null;
473
- this.rememberSecretStorageKey(firstRequestedKeyId, privateKey, stored.keyInfo);
474
- return [firstRequestedKeyId, privateKey];
475
- },
410
+ getSecretStorageKey,
476
411
  cacheSecretStorageKey: (keyId, keyInfo, key) => {
412
+ if (this.closed) return;
477
413
  const privateKey = new Uint8Array(key);
478
414
  const normalizedKeyInfo = {
479
415
  passphrase: keyInfo?.passphrase,
480
416
  name: typeof keyInfo?.name === "string" ? keyInfo.name : void 0
481
417
  };
482
418
  this.rememberSecretStorageKey(keyId, privateKey, normalizedKeyInfo);
483
- const stored = this.loadStoredRecoveryKey();
484
419
  this.saveRecoveryKeyToDisk({
485
420
  keyId,
486
421
  keyInfo: normalizedKeyInfo,
487
- privateKey,
488
- encodedPrivateKey: stored?.encodedPrivateKey
489
- });
422
+ privateKey
423
+ }, true);
490
424
  }
491
425
  };
492
426
  }
493
- getRecoveryKeySummary() {
494
- const stored = this.loadStoredRecoveryKey();
427
+ async getRecoveryKeySummary() {
428
+ const stored = await this.afterPersistence(() => this.loadStoredRecoveryKey());
495
429
  if (!stored) return null;
496
430
  return {
497
431
  encodedPrivateKey: stored.encodedPrivateKey,
@@ -500,16 +434,22 @@ var MatrixRecoveryKeyStore = class {
500
434
  };
501
435
  }
502
436
  getSecretStorageKeyCandidate(keyId) {
503
- const normalizedKeyId = keyId.trim();
504
- if (!normalizedKeyId) return null;
505
- const staged = this.resolveStagedSecretStorageKey([normalizedKeyId]);
506
- if (staged) return staged[1];
507
- const stored = this.loadStoredRecoveryKey();
508
- if (!stored?.privateKeyBase64) return null;
509
- const privateKey = new Uint8Array(Buffer.from(stored.privateKeyBase64, "base64"));
510
- if (privateKey.length === 0) return null;
511
- this.rememberSecretStorageKey(normalizedKeyId, privateKey, stored.keyInfo);
512
- return privateKey;
437
+ return this.afterPersistence(async () => {
438
+ if (this.closed) return null;
439
+ const normalizedKeyId = keyId.trim();
440
+ if (!normalizedKeyId) return null;
441
+ const staged = this.resolveStagedSecretStorageKey([normalizedKeyId]);
442
+ if (staged) return staged[1];
443
+ const pending = this.pendingPersistence;
444
+ const stored = await this.loadStoredRecoveryKey();
445
+ if (this.closed) return null;
446
+ if (pending !== this.pendingPersistence) return this.getSecretStorageKeyCandidate(keyId);
447
+ if (!stored?.privateKeyBase64) return null;
448
+ const privateKey = new Uint8Array(Buffer.from(stored.privateKeyBase64, "base64"));
449
+ if (privateKey.length === 0) return null;
450
+ this.rememberSecretStorageKey(normalizedKeyId, privateKey, stored.keyInfo);
451
+ return privateKey;
452
+ });
513
453
  }
514
454
  resolveEncodedRecoveryKeyInput(params) {
515
455
  const encodedPrivateKey = params.encodedPrivateKey.trim();
@@ -525,54 +465,52 @@ var MatrixRecoveryKeyStore = class {
525
465
  encodedPrivateKey,
526
466
  privateKey,
527
467
  keyId,
528
- keyInfo: params.keyInfo ?? this.loadStoredRecoveryKey()?.keyInfo
468
+ keyInfo: params.keyInfo
529
469
  };
530
470
  }
531
- storeEncodedRecoveryKey(params) {
532
- const prepared = this.resolveEncodedRecoveryKeyInput(params);
533
- this.saveRecoveryKeyToDisk({
534
- keyId: prepared.keyId,
535
- keyInfo: prepared.keyInfo,
536
- privateKey: prepared.privateKey,
537
- encodedPrivateKey: prepared.encodedPrivateKey
538
- });
539
- if (prepared.keyId) this.rememberSecretStorageKey(prepared.keyId, prepared.privateKey, prepared.keyInfo);
540
- return this.getRecoveryKeySummary() ?? {};
541
- }
542
471
  stageEncodedRecoveryKey(params) {
543
472
  const prepared = this.resolveEncodedRecoveryKeyInput(params);
544
- this.discardStagedRecoveryKey();
545
- this.stagedRecoveryKey = {
546
- version: 1,
547
- createdAt: (/* @__PURE__ */ new Date()).toISOString(),
548
- keyId: prepared.keyId,
549
- encodedPrivateKey: prepared.encodedPrivateKey,
550
- privateKeyBase64: Buffer.from(prepared.privateKey).toString("base64"),
551
- keyInfo: prepared.keyInfo
552
- };
473
+ return this.enqueuePersistence(async () => {
474
+ const keyInfo = prepared.keyInfo ?? (await this.loadStoredRecoveryKey())?.keyInfo;
475
+ this.clearStagedCache();
476
+ this.stagedRecoveryKey = {
477
+ version: 1,
478
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
479
+ keyId: prepared.keyId,
480
+ encodedPrivateKey: prepared.encodedPrivateKey,
481
+ privateKeyBase64: Buffer.from(prepared.privateKey).toString("base64"),
482
+ keyInfo
483
+ };
484
+ });
553
485
  }
554
486
  hasStagedRecoveryKeyBeenUsed() {
555
487
  return this.stagedRecoveryKeyUsed;
556
488
  }
557
- commitStagedRecoveryKey(params) {
558
- if (!this.stagedRecoveryKey) return this.getRecoveryKeySummary();
559
- const staged = this.stagedRecoveryKey;
560
- const privateKey = new Uint8Array(Buffer.from(staged.privateKeyBase64, "base64"));
561
- const keyId = typeof params?.keyId === "string" && params.keyId.trim() ? params.keyId.trim() : staged.keyId;
562
- this.saveRecoveryKeyToDisk({
563
- keyId,
564
- keyInfo: params?.keyInfo ?? staged.keyInfo,
565
- privateKey,
566
- encodedPrivateKey: staged.encodedPrivateKey
489
+ async commitStagedRecoveryKey(params) {
490
+ await this.enqueuePersistence(async () => {
491
+ if (!this.stagedRecoveryKey) return;
492
+ const staged = this.stagedRecoveryKey;
493
+ const privateKey = new Uint8Array(Buffer.from(staged.privateKeyBase64, "base64"));
494
+ const keyId = typeof params?.keyId === "string" && params.keyId.trim() ? params.keyId.trim() : staged.keyId;
495
+ await this.persistRecoveryKey({
496
+ keyId,
497
+ keyInfo: params?.keyInfo ?? staged.keyInfo,
498
+ privateKey,
499
+ encodedPrivateKey: staged.encodedPrivateKey
500
+ });
501
+ this.clearStagedRecoveryKeyTracking();
567
502
  });
568
- this.clearStagedRecoveryKeyTracking();
569
503
  return this.getRecoveryKeySummary();
570
504
  }
571
505
  discardStagedRecoveryKey() {
506
+ return this.enqueuePersistence(async () => this.clearStagedCache());
507
+ }
508
+ clearStagedCache() {
572
509
  for (const keyId of this.stagedCacheKeyIds) this.secretStorageKeyCache.delete(keyId);
573
510
  this.clearStagedRecoveryKeyTracking();
574
511
  }
575
512
  async bootstrapSecretStorageWithRecoveryKey(crypto, options = {}) {
513
+ await this.drainPendingPersistence();
576
514
  let status = null;
577
515
  const getSecretStorageStatus = crypto.getSecretStorageStatus;
578
516
  if (typeof getSecretStorageStatus === "function") try {
@@ -583,7 +521,7 @@ var MatrixRecoveryKeyStore = class {
583
521
  const hasDefaultSecretStorageKey = Boolean(status?.defaultKeyId);
584
522
  const hasKnownInvalidSecrets = Object.values(status?.secretStorageKeyValidityMap ?? {}).some((valid) => !valid);
585
523
  let generatedRecoveryKey = false;
586
- const storedRecovery = this.loadStoredRecoveryKey();
524
+ const storedRecovery = await this.afterPersistence(() => this.loadStoredRecoveryKey());
587
525
  const stagedRecovery = this.stagedRecoveryKey;
588
526
  const sourceRecovery = options.forceNewRecoveryKey === true ? null : stagedRecovery ?? storedRecovery;
589
527
  let recoveryKey = sourceRecovery ? {
@@ -595,7 +533,7 @@ var MatrixRecoveryKeyStore = class {
595
533
  const defaultKeyId = status.defaultKeyId;
596
534
  if (!stagedRecovery) {
597
535
  this.rememberSecretStorageKey(defaultKeyId, recoveryKey.privateKey, recoveryKey.keyInfo);
598
- if (storedRecovery && storedRecovery.keyId !== defaultKeyId) this.saveRecoveryKeyToDisk({
536
+ if (storedRecovery && storedRecovery.keyId !== defaultKeyId) await this.saveRecoveryKeyToDisk({
599
537
  keyId: defaultKeyId,
600
538
  keyInfo: recoveryKey.keyInfo,
601
539
  privateKey: recoveryKey.privateKey,
@@ -610,7 +548,7 @@ var MatrixRecoveryKeyStore = class {
610
548
  }
611
549
  if (typeof crypto.createRecoveryKeyFromPassphrase !== "function") throw new Error("Matrix crypto backend does not support recovery key generation (createRecoveryKeyFromPassphrase missing)");
612
550
  recoveryKey = await crypto.createRecoveryKeyFromPassphrase();
613
- this.saveRecoveryKeyToDisk(recoveryKey);
551
+ await this.saveRecoveryKeyToDisk(recoveryKey);
614
552
  generatedRecoveryKey = true;
615
553
  return recoveryKey;
616
554
  };
@@ -622,16 +560,24 @@ var MatrixRecoveryKeyStore = class {
622
560
  secretStorageOptions.createSecretStorageKey = ensureRecoveryKey;
623
561
  }
624
562
  try {
625
- await crypto.bootstrapSecretStorage(secretStorageOptions);
563
+ try {
564
+ await crypto.bootstrapSecretStorage(secretStorageOptions);
565
+ } finally {
566
+ await this.drainPendingPersistence();
567
+ }
626
568
  } catch (err) {
627
569
  if (!(options.allowSecretStorageRecreateWithoutRecoveryKey === true && hasDefaultSecretStorageKey && isRepairableSecretStorageAccessError(err))) throw err;
628
570
  recoveryKey = null;
629
571
  LogService.warn("MatrixClientLite", "Secret storage exists on the server but local recovery material cannot unlock it; recreating secret storage during explicit bootstrap.");
630
- await crypto.bootstrapSecretStorage({
631
- setupNewSecretStorage: true,
632
- setupNewKeyBackup: options.setupNewKeyBackup === true,
633
- createSecretStorageKey: ensureRecoveryKey
634
- });
572
+ try {
573
+ await crypto.bootstrapSecretStorage({
574
+ setupNewSecretStorage: true,
575
+ setupNewKeyBackup: options.setupNewKeyBackup === true,
576
+ createSecretStorageKey: ensureRecoveryKey
577
+ });
578
+ } finally {
579
+ await this.drainPendingPersistence();
580
+ }
635
581
  }
636
582
  if (generatedRecoveryKey && this.storageRootDir) LogService.warn("MatrixClientLite", "Generated Matrix recovery key and saved it to Matrix SQLite state. Keep the displayed recovery key secure.");
637
583
  }
@@ -662,17 +608,20 @@ var MatrixRecoveryKeyStore = class {
662
608
  keyInfo
663
609
  });
664
610
  }
665
- loadStoredRecoveryKey() {
666
- if (!this.recoveryKeyPath) return null;
611
+ async loadStoredRecoveryKey() {
612
+ if (!this.recoveryKeyPath || !this.stateRuntime) return null;
667
613
  try {
668
- const stored = readMatrixRecoveryKeyStateForPath(this.recoveryKeyPath);
614
+ const stored = await readMatrixRecoveryKeyStateForPathAsync(this.recoveryKeyPath, this.stateRuntime);
669
615
  if (stored) return stored;
670
616
  } catch {}
671
617
  if (this.legacyRecoveryKeyPathOnMigrationFailure) return readLegacyMatrixRecoveryKeyFile(this.legacyRecoveryKeyPathOnMigrationFailure);
672
618
  return null;
673
619
  }
674
- saveRecoveryKeyToDisk(params) {
675
- if (!this.recoveryKeyPath) return;
620
+ saveRecoveryKeyToDisk(params, preserveEncodedPrivateKey = false) {
621
+ return this.enqueuePersistence(() => this.persistRecoveryKey(params, preserveEncodedPrivateKey));
622
+ }
623
+ async persistRecoveryKey(params, preserveEncodedPrivateKey = false) {
624
+ if (!this.recoveryKeyPath || !this.stateRuntime) return;
676
625
  try {
677
626
  const payload = {
678
627
  version: 1,
@@ -685,9 +634,11 @@ var MatrixRecoveryKeyStore = class {
685
634
  name: params.keyInfo.name
686
635
  } : void 0
687
636
  };
688
- writeMatrixRecoveryKeyStateForPath({
637
+ await writeMatrixRecoveryKeyStateForPathAsync({
689
638
  recoveryKeyPath: this.recoveryKeyPath,
690
- payload
639
+ payload,
640
+ stateRuntime: this.stateRuntime,
641
+ preserveEncodedPrivateKey
691
642
  });
692
643
  } catch (err) {
693
644
  LogService.warn("MatrixClientLite", "Failed to persist recovery key:", err);
@@ -695,28 +646,60 @@ var MatrixRecoveryKeyStore = class {
695
646
  }
696
647
  };
697
648
  //#endregion
649
+ //#region extensions/matrix/src/matrix/sdk/send-scheduler.ts
650
+ /** Keep SDK FIFO/backoff while settling a caller's pre-request rejection only for its event. */
651
+ var MatrixSendScheduler = class extends MatrixScheduler {
652
+ constructor(wasCurrentnessRejected) {
653
+ super();
654
+ this.wasCurrentnessRejected = wasCurrentnessRejected;
655
+ this.queue = new MatrixScheduler();
656
+ }
657
+ setProcessFunction(processEvent) {
658
+ this.queue.setProcessFunction(async (event) => {
659
+ try {
660
+ return {
661
+ kind: "sent",
662
+ result: await withoutMatrixSendCurrentness(() => processEvent(event))
663
+ };
664
+ } catch (error) {
665
+ if (!this.wasCurrentnessRejected(event)) throw error;
666
+ return {
667
+ kind: "rejected",
668
+ error
669
+ };
670
+ }
671
+ });
672
+ }
673
+ queueEvent(event) {
674
+ const queued = this.queue.queueEvent(event);
675
+ return queued ? queued.then((outcome) => {
676
+ if (outcome.kind === "rejected") throw outcome.error;
677
+ return outcome.result;
678
+ }) : null;
679
+ }
680
+ getQueueForEvent(event) {
681
+ return this.queue.getQueueForEvent(event);
682
+ }
683
+ removeEventFromQueue(event) {
684
+ return this.queue.removeEventFromQueue(event);
685
+ }
686
+ };
687
+ //#endregion
698
688
  //#region extensions/matrix/src/matrix/sdk/client-base.ts
699
- function resolveMessageWireDispatch(resource, init) {
700
- if ((init?.method ?? (resource instanceof Request ? resource.method : "GET")).toUpperCase() !== "PUT") return null;
701
- const rawUrl = typeof resource === "string" ? resource : resource instanceof URL ? resource.href : resource.url;
702
- const segments = new URL(rawUrl).pathname.split("/").filter(Boolean);
703
- const roomsIndex = segments.lastIndexOf("rooms");
704
- if (roomsIndex < 0 || segments[roomsIndex + 2] !== "send" || segments.length !== roomsIndex + 5) return null;
705
- const eventType = decodeURIComponent(segments[roomsIndex + 3] ?? "");
706
- if (eventType !== "m.room.message" && eventType !== "m.room.encrypted") return null;
707
- return {
708
- roomId: decodeURIComponent(segments[roomsIndex + 1] ?? ""),
709
- eventType,
710
- transactionId: decodeURIComponent(segments[roomsIndex + 4] ?? ""),
711
- requestPath: new URL(rawUrl).pathname
712
- };
713
- }
689
+ const MATRIX_ENCRYPTED_STARTUP_TIMEOUT_MS = 6e4;
714
690
  let loadedMatrixCryptoRuntime = null;
715
- const loadMatrixCryptoRuntime = createLazyRuntimeModule(() => import("./crypto-runtime-DiyH4R3D.js").then((runtime) => {
691
+ const loadMatrixCryptoRuntime = createLazyRuntimeModule(() => import("./crypto-runtime-D9qn_Pbj.mjs").then((runtime) => {
716
692
  loadedMatrixCryptoRuntime = runtime;
717
693
  return runtime;
718
694
  }));
719
695
  var MatrixClientBase = class {
696
+ withClientCryptoWork(run, requestSignal) {
697
+ this.assertClientActive();
698
+ return withoutMatrixSendCurrentness(() => this.cryptoRequestOwner.run({
699
+ callerAuthority: captureChannelReadAuthority(),
700
+ requestSignal
701
+ }, run));
702
+ }
720
703
  constructor(homeserver, accessToken, opts = {}) {
721
704
  this.emitter = new EventEmitter();
722
705
  this.bridgeRegistered = false;
@@ -732,11 +715,23 @@ var MatrixClientBase = class {
732
715
  this.currentSyncError = void 0;
733
716
  this.transactionScopeId = null;
734
717
  this.transactionScopePromise = null;
735
- this.messageWireDispatchGuards = /* @__PURE__ */ new Map();
718
+ this.messageWireDispatchGuards = new MatrixMessageWireDispatchGuards();
719
+ this.requestAbortController = new AbortController();
720
+ this.cryptoRequestOwner = new AsyncLocalStorage();
721
+ this.startupPromise = null;
722
+ this.cryptoInitializationPromise = null;
736
723
  this.sdkStopped = false;
737
724
  this.stopDiscardPromise = null;
738
725
  this.idbPersistPromise = null;
739
726
  this.idbPersistAbortController = null;
727
+ this.assertClientActive = () => {
728
+ this.requestAbortController.signal.throwIfAborted();
729
+ };
730
+ this.captureRequestAuthority = () => {
731
+ const readAuthority = captureChannelReadAuthority();
732
+ const cryptoOwner = this.cryptoRequestOwner.getStore();
733
+ return cryptoOwner && cryptoOwner.callerAuthority === readAuthority ? this.assertClientActive : readAuthority;
734
+ };
740
735
  this.dms = {
741
736
  update: async () => {
742
737
  return await this.refreshDmCache();
@@ -751,7 +746,10 @@ var MatrixClientBase = class {
751
746
  homeserver,
752
747
  accessToken,
753
748
  ssrfPolicy: opts.ssrfPolicy,
754
- dispatcherPolicy: opts.dispatcherPolicy
749
+ dispatcherPolicy: opts.dispatcherPolicy,
750
+ captureRequestAuthority: this.captureRequestAuthority,
751
+ captureSendCurrentness: () => captureMatrixSendCurrentness(this),
752
+ signal: this.requestAbortController.signal
755
753
  });
756
754
  this.localTimeoutMs = resolveMatrixLocalTimeoutMs(opts.localTimeoutMs);
757
755
  this.initialSyncLimit = opts.initialSyncLimit;
@@ -759,16 +757,25 @@ var MatrixClientBase = class {
759
757
  this.encryptionEnabled = opts.encryption === true;
760
758
  const { password: loginPassword } = opts;
761
759
  this.password = loginPassword;
762
- this.syncStore = opts.storageRootDir ? new SqliteBackedMatrixSyncStore(opts.storageRootDir) : void 0;
760
+ this.syncStore = opts.syncStore;
763
761
  this.idbSnapshotPath = opts.idbSnapshotPath;
764
762
  this.cryptoDatabasePrefix = opts.cryptoDatabasePrefix;
763
+ this.stateRuntime = opts.stateRuntime;
765
764
  this.selfUserId = opts.userId?.trim() || null;
766
765
  this.autoBootstrapCrypto = opts.autoBootstrapCrypto !== false;
767
- this.recoveryKeyStore = new MatrixRecoveryKeyStore(opts.recoveryKeyPath);
766
+ this.recoveryKeyStore = new MatrixRecoveryKeyStore(opts.recoveryKeyPath, opts.stateRuntime);
768
767
  const cryptoCallbacks = this.encryptionEnabled ? this.recoveryKeyStore.buildCryptoCallbacks() : void 0;
769
768
  const guardedFetch = createMatrixGuardedFetch({
769
+ captureRequestSignal: () => this.cryptoRequestOwner.getStore()?.requestSignal,
770
770
  ssrfPolicy: opts.ssrfPolicy,
771
- dispatcherPolicy: opts.dispatcherPolicy
771
+ dispatcherPolicy: opts.dispatcherPolicy,
772
+ captureRequestAuthority: this.captureRequestAuthority,
773
+ captureSendCurrentness: (resource, init) => this.messageWireDispatchGuards.captureCurrentness(resource, init, captureMatrixSendCurrentness(this)),
774
+ signal: this.requestAbortController.signal,
775
+ beforeRequest: async (resource, init) => {
776
+ await this.recoveryKeyStore.drainPendingPersistence();
777
+ await this.messageWireDispatchGuards.beforeRequest(resource, init);
778
+ }
772
779
  });
773
780
  this.client = createClient({
774
781
  baseUrl: homeserver,
@@ -777,11 +784,8 @@ var MatrixClientBase = class {
777
784
  deviceId: opts.deviceId,
778
785
  logger: createMatrixJsSdkClientLogger("MatrixClient"),
779
786
  localTimeoutMs: this.localTimeoutMs,
780
- fetchFn: (async (resource, init) => {
781
- const dispatch = resolveMessageWireDispatch(resource, init);
782
- if (dispatch) await this.messageWireDispatchGuards.get(dispatch.transactionId)?.(dispatch);
783
- return await guardedFetch(resource, init);
784
- }),
787
+ fetchFn: guardedFetch,
788
+ scheduler: new MatrixSendScheduler((event) => this.messageWireDispatchGuards.wasCurrentnessRejected(event.getTxnId())),
785
789
  store: this.syncStore,
786
790
  cryptoCallbacks,
787
791
  verificationMethods: [
@@ -791,16 +795,11 @@ var MatrixClientBase = class {
791
795
  VerificationMethod.Reciprocate
792
796
  ]
793
797
  });
794
- }
795
- async withMessageWireDispatchGuard(params) {
796
- if (!params.transactionId || !params.guard) return await params.run();
797
- if (this.messageWireDispatchGuards.has(params.transactionId)) throw new Error(`Matrix transaction ${params.transactionId} already has a dispatch guard`);
798
- this.messageWireDispatchGuards.set(params.transactionId, params.guard);
799
- try {
800
- return await params.run();
801
- } finally {
802
- this.messageWireDispatchGuards.delete(params.transactionId);
803
- }
798
+ const decryptEventIfNeeded = this.client.decryptEventIfNeeded.bind(this.client);
799
+ this.client.decryptEventIfNeeded = (event, options) => {
800
+ this.captureRequestAuthority()?.();
801
+ return this.withClientCryptoWork(() => decryptEventIfNeeded(event, options));
802
+ };
804
803
  }
805
804
  on(eventName, listener) {
806
805
  this.emitter.on(eventName, listener);
@@ -841,7 +840,7 @@ var MatrixClientBase = class {
841
840
  const defaultKeyId = await secretStorage.getDefaultKeyId();
842
841
  if (!defaultKeyId) return false;
843
842
  const keyTuple = await secretStorage.getKey(defaultKeyId);
844
- const key = this.recoveryKeyStore.getSecretStorageKeyCandidate(defaultKeyId);
843
+ const key = await this.recoveryKeyStore.getSecretStorageKeyCandidate(defaultKeyId);
845
844
  if (!keyTuple || !key) return false;
846
845
  const keyInfo = keyTuple[1];
847
846
  if (!keyInfo.iv?.trim() || !keyInfo.mac?.trim()) return false;
@@ -874,98 +873,84 @@ var MatrixClientBase = class {
874
873
  });
875
874
  }
876
875
  async waitForInitialSyncReady(params = {}) {
877
- const timeoutMs = params.timeoutMs ?? 3e4;
878
- if (isMatrixReadySyncState(this.currentSyncState)) return;
879
- if (isMatrixAccessTokenInvalidatedError(this.currentSyncError)) throw this.currentSyncError instanceof Error ? this.currentSyncError : new Error("Matrix access token invalidated", { cause: this.currentSyncError });
880
- if (isMatrixTerminalSyncState(this.currentSyncState)) throw new Error(`Matrix sync entered ${this.currentSyncState} during startup`);
881
- await new Promise((resolve, reject) => {
882
- let settled = false;
883
- let timeoutId;
884
- const abortSignal = params.abortSignal;
885
- const cleanup = () => {
886
- this.off("sync.state", onSyncState);
887
- this.off("sync.unexpected_error", onUnexpectedError);
888
- abortSignal?.removeEventListener("abort", onAbort);
889
- if (timeoutId) {
890
- clearTimeout(timeoutId);
891
- timeoutId = void 0;
892
- }
893
- };
894
- const settleResolve = () => {
895
- if (settled) return;
896
- settled = true;
897
- cleanup();
898
- resolve();
899
- };
900
- const settleReject = (error) => {
901
- if (settled) return;
902
- settled = true;
903
- cleanup();
904
- reject(error);
905
- };
906
- const onSyncState = (state, _prevState, error) => {
907
- if (isMatrixReadySyncState(state)) {
908
- settleResolve();
909
- return;
910
- }
911
- if (isMatrixAccessTokenInvalidatedError(error)) {
912
- settleReject(error instanceof Error ? error : /* @__PURE__ */ new Error("Matrix access token invalidated"));
913
- return;
914
- }
915
- if (isMatrixTerminalSyncState(state)) settleReject(new Error(error instanceof Error && error.message ? error.message : `Matrix sync entered ${state} during startup`));
916
- };
917
- const onUnexpectedError = (error) => {
918
- settleReject(error);
919
- };
920
- const onAbort = () => {
921
- settleReject(createMatrixStartupAbortError());
922
- };
923
- this.on("sync.state", onSyncState);
924
- this.on("sync.unexpected_error", onUnexpectedError);
925
- if (abortSignal?.aborted) {
926
- onAbort();
927
- return;
928
- }
929
- abortSignal?.addEventListener("abort", onAbort, { once: true });
930
- timeoutId = setTimeout(() => {
931
- settleReject(/* @__PURE__ */ new Error(`Matrix client did not reach a ready sync state within ${timeoutMs}ms`));
932
- }, timeoutMs);
933
- timeoutId.unref?.();
876
+ await waitForMatrixInitialSyncReady({
877
+ ...params,
878
+ emitter: this.emitter,
879
+ state: this.currentSyncState,
880
+ error: this.currentSyncError
934
881
  });
935
882
  }
936
883
  async startSyncSession(opts) {
937
884
  if (this.started) return;
938
885
  if (this.sdkStopped) throw new Error("Matrix client has been fully stopped and cannot be restarted; acquire a new shared client generation");
939
- throwIfMatrixStartupAborted(opts.abortSignal);
940
- await this.ensureCryptoSupportInitialized();
941
- throwIfMatrixStartupAborted(opts.abortSignal);
942
- this.registerBridge();
943
- await this.initializeCryptoIfNeeded(opts.abortSignal);
944
- throwIfMatrixStartupAborted(opts.abortSignal);
945
- await this.client.startClient({
946
- initialSyncLimit: this.initialSyncLimit,
947
- ...this.syncFilter ? { filter: Filter.fromJson(this.selfUserId, "", this.syncFilter) } : {}
948
- });
949
- await this.waitForInitialSyncReady({
950
- abortSignal: opts.abortSignal,
951
- timeoutMs: opts.readyTimeoutMs
952
- });
953
- throwIfMatrixStartupAborted(opts.abortSignal);
954
- if (opts.bootstrapCrypto && this.autoBootstrapCrypto) await this.bootstrapCryptoIfNeeded(opts.abortSignal);
955
- throwIfMatrixStartupAborted(opts.abortSignal);
956
- this.started = true;
957
- this.emitOutstandingInviteEvents();
958
- await this.refreshDmCache().catch(noop);
886
+ const assertCurrent = this.captureRequestAuthority();
887
+ assertCurrent?.();
888
+ this.assertClientActive();
889
+ if (this.startupPromise) {
890
+ await awaitMatrixStartupWithAbort(this.startupPromise, opts.abortSignal);
891
+ return;
892
+ }
893
+ const deadline = new AbortController();
894
+ const signal = AbortSignal.any([
895
+ this.requestAbortController.signal,
896
+ deadline.signal,
897
+ ...opts.abortSignal ? [opts.abortSignal] : []
898
+ ]);
899
+ const timeout = this.encryptionEnabled ? setTimeout(() => deadline.abort(), opts.readyTimeoutMs ?? MATRIX_ENCRYPTED_STARTUP_TIMEOUT_MS) : void 0;
900
+ timeout?.unref?.();
901
+ const checkActive = () => {
902
+ throwIfMatrixStartupAborted(signal);
903
+ assertCurrent?.();
904
+ this.assertClientActive();
905
+ };
906
+ const startup = (async () => {
907
+ throwIfMatrixStartupAborted(signal);
908
+ await this.ensureCryptoSupportInitialized();
909
+ checkActive();
910
+ throwIfMatrixStartupAborted(signal);
911
+ this.registerBridge();
912
+ await this.withClientCryptoWork(() => this.initializeCryptoIfNeeded(signal), signal);
913
+ checkActive();
914
+ throwIfMatrixStartupAborted(signal);
915
+ await this.withClientCryptoWork(() => this.client.startClient({
916
+ initialSyncLimit: this.initialSyncLimit,
917
+ ...this.syncFilter ? { filter: Filter.fromJson(this.selfUserId, "", this.syncFilter) } : {}
918
+ }));
919
+ await this.waitForInitialSyncReady({
920
+ abortSignal: signal,
921
+ timeoutMs: opts.readyTimeoutMs
922
+ });
923
+ checkActive();
924
+ throwIfMatrixStartupAborted(signal);
925
+ if (this.encryptionEnabled && this.cryptoInitialized) {
926
+ const { reconcileJoinedRoomEncryption } = await import("./joined-room-encryption-BCtxQ3hR.mjs");
927
+ checkActive();
928
+ await this.withClientCryptoWork(() => reconcileJoinedRoomEncryption(this.client, signal, checkActive), signal);
929
+ checkActive();
930
+ }
931
+ clearTimeout(timeout);
932
+ if (opts.bootstrapCrypto && this.autoBootstrapCrypto) await this.bootstrapCryptoIfNeeded(signal);
933
+ throwIfMatrixStartupAborted(signal);
934
+ this.started = true;
935
+ this.emitOutstandingInviteEvents();
936
+ await this.refreshDmCache().catch(noop);
937
+ })();
938
+ this.startupPromise = startup;
939
+ startup.finally(() => {
940
+ clearTimeout(timeout);
941
+ if (this.startupPromise === startup) this.startupPromise = null;
942
+ }).catch(noop);
943
+ await awaitMatrixStartupWithAbort(startup, signal);
959
944
  }
960
945
  async prepareForOneOff() {
946
+ const assertCurrent = this.captureRequestAuthority();
947
+ assertCurrent?.();
948
+ this.assertClientActive();
961
949
  if (!this.encryptionEnabled) return;
962
950
  await this.ensureCryptoSupportInitialized();
963
- await this.initializeCryptoIfNeeded();
964
- if (!this.crypto) return;
965
- try {
966
- const joinedRooms = await this.getJoinedRooms();
967
- await this.crypto.prepare(joinedRooms);
968
- } catch {}
951
+ assertCurrent?.();
952
+ await this.withClientCryptoWork(() => this.initializeCryptoIfNeeded());
953
+ assertCurrent?.();
969
954
  }
970
955
  hasPersistedSyncState() {
971
956
  return this.syncStore?.hasSavedSyncFromCleanShutdown() === true;
@@ -978,8 +963,8 @@ var MatrixClientBase = class {
978
963
  if (this.sdkStopped) return;
979
964
  this.currentSyncState = null;
980
965
  this.currentSyncError = void 0;
981
- this.client.stopClient();
982
966
  this.sdkStopped = true;
967
+ this.client.stopClient();
983
968
  this.started = false;
984
969
  }
985
970
  async quiesceSync() {
@@ -995,34 +980,44 @@ var MatrixClientBase = class {
995
980
  await this.syncQuiescePromise;
996
981
  }
997
982
  async drainPendingDecryptions(reason = "matrix client shutdown") {
998
- await this.decryptBridge?.drainPendingDecryptions(reason);
983
+ await this.withClientCryptoWork(() => this.decryptBridge?.drainPendingDecryptions(reason));
999
984
  }
1000
985
  stop() {
1001
986
  this.stopAndPersist().catch(() => this.stopWithoutPersist()).catch(noop);
1002
987
  }
1003
988
  async stopClientGeneration(persist) {
1004
- if (persist) await this.quiesceSync();
1005
- else {
1006
- await this.quiesceSync().catch(noop);
1007
- this.syncStore?.discardPendingSyncCursorPersistence();
1008
- }
1009
- if (this.idbPersistTimer) {
1010
- clearInterval(this.idbPersistTimer);
989
+ try {
990
+ if (persist) await this.quiesceSync();
991
+ else {
992
+ await this.quiesceSync().catch(noop);
993
+ this.syncStore?.discardPendingSyncCursorPersistence();
994
+ }
995
+ this.requestAbortController.abort(/* @__PURE__ */ new Error("Matrix client generation is no longer active."));
996
+ await this.startupPromise?.catch(noop);
997
+ await this.cryptoInitializationPromise?.catch(noop);
998
+ clearInterval(this.idbPersistTimer ?? void 0);
1011
999
  this.idbPersistTimer = null;
1012
- }
1013
- this.idbPersistAbortController?.abort();
1014
- const activePeriodicPersist = this.idbPersistPromise;
1015
- this.stopSdkClient();
1016
- this.decryptBridge?.stop();
1017
- await activePeriodicPersist;
1018
- if (persist) {
1019
- await (loadedMatrixCryptoRuntime ?? await loadMatrixCryptoRuntime()).persistIdbToDisk({
1020
- snapshotPath: this.idbSnapshotPath,
1021
- databasePrefix: this.cryptoDatabasePrefix,
1022
- strict: true
1023
- });
1024
- this.syncStore?.markCleanShutdown();
1025
- await this.syncStore?.flush();
1000
+ this.idbPersistAbortController?.abort();
1001
+ const activePeriodicPersist = this.idbPersistPromise;
1002
+ try {
1003
+ this.stopSdkClient();
1004
+ this.decryptBridge?.stop();
1005
+ } finally {
1006
+ this.cryptoRequestOwner.disable();
1007
+ }
1008
+ await Promise.all([this.recoveryKeyStore.close(), activePeriodicPersist]);
1009
+ if (persist) {
1010
+ await (loadedMatrixCryptoRuntime ?? await loadMatrixCryptoRuntime()).persistIdbToDisk({
1011
+ snapshotPath: this.idbSnapshotPath,
1012
+ databasePrefix: this.cryptoDatabasePrefix,
1013
+ strict: true,
1014
+ stateRuntime: this.stateRuntime
1015
+ });
1016
+ this.syncStore?.markCleanShutdown();
1017
+ await this.syncStore?.flush();
1018
+ }
1019
+ } finally {
1020
+ await this.recoveryKeyStore.close();
1026
1021
  }
1027
1022
  }
1028
1023
  async stopAndPersist() {
@@ -1056,10 +1051,25 @@ var MatrixClientBase = class {
1056
1051
  this.cryptoBootstrapped = true;
1057
1052
  }
1058
1053
  async initializeCryptoIfNeeded(abortSignal) {
1059
- if (!this.encryptionEnabled || this.cryptoInitialized) return;
1054
+ if (!this.encryptionEnabled) return;
1055
+ if (this.cryptoInitializationPromise) {
1056
+ await this.cryptoInitializationPromise;
1057
+ throwIfMatrixStartupAborted(abortSignal);
1058
+ return;
1059
+ }
1060
+ if (this.cryptoInitialized) return;
1061
+ const initialization = this.initializeCrypto(abortSignal ? AbortSignal.any([abortSignal, this.requestAbortController.signal]) : this.requestAbortController.signal);
1062
+ this.cryptoInitializationPromise = initialization;
1063
+ try {
1064
+ await initialization;
1065
+ } finally {
1066
+ if (this.cryptoInitializationPromise === initialization) this.cryptoInitializationPromise = null;
1067
+ }
1068
+ }
1069
+ async initializeCrypto(abortSignal) {
1060
1070
  throwIfMatrixStartupAborted(abortSignal);
1061
1071
  const { persistIdbToDisk, restoreIdbFromDisk } = await loadMatrixCryptoRuntime();
1062
- await restoreIdbFromDisk(this.idbSnapshotPath);
1072
+ await restoreIdbFromDisk(this.idbSnapshotPath, this.stateRuntime);
1063
1073
  throwIfMatrixStartupAborted(abortSignal);
1064
1074
  try {
1065
1075
  await this.client.initRustCrypto({ cryptoDatabasePrefix: this.cryptoDatabasePrefix });
@@ -1068,7 +1078,8 @@ var MatrixClientBase = class {
1068
1078
  await persistIdbToDisk({
1069
1079
  snapshotPath: this.idbSnapshotPath,
1070
1080
  databasePrefix: this.cryptoDatabasePrefix,
1071
- abortSignal
1081
+ abortSignal,
1082
+ stateRuntime: this.stateRuntime
1072
1083
  });
1073
1084
  throwIfMatrixStartupAborted(abortSignal);
1074
1085
  this.idbPersistTimer = setInterval(() => {
@@ -1078,7 +1089,8 @@ var MatrixClientBase = class {
1078
1089
  this.idbPersistPromise = persistIdbToDisk({
1079
1090
  snapshotPath: this.idbSnapshotPath,
1080
1091
  databasePrefix: this.cryptoDatabasePrefix,
1081
- abortSignal: abortController.signal
1092
+ abortSignal: abortController.signal,
1093
+ stateRuntime: this.stateRuntime
1082
1094
  }).catch(noop).finally(() => {
1083
1095
  this.idbPersistPromise = null;
1084
1096
  this.idbPersistAbortController = null;
@@ -1117,8 +1129,9 @@ var MatrixClientCore = class extends MatrixClientBase {
1117
1129
  return Array.isArray(joined.joined_rooms) ? joined.joined_rooms : [];
1118
1130
  }
1119
1131
  async getTransactionScopeId() {
1132
+ captureMatrixSendCurrentness(this)?.();
1120
1133
  if (this.transactionScopeId) return this.transactionScopeId;
1121
- const active = this.transactionScopePromise ?? (async () => {
1134
+ const active = this.transactionScopePromise ?? withoutMatrixSendCurrentness(async () => {
1122
1135
  const configuredUserId = this.client.getUserId()?.trim() || this.selfUserId;
1123
1136
  const configuredDeviceId = this.transactionScopeDeviceId || this.client.getDeviceId()?.trim() || null;
1124
1137
  const whoami = await this.doRequest("GET", "/_matrix/client/v3/account/whoami");
@@ -1130,7 +1143,7 @@ var MatrixClientCore = class extends MatrixClientBase {
1130
1143
  this.selfUserId = userId;
1131
1144
  this.transactionScopeDeviceId = deviceId;
1132
1145
  return createHash("sha256").update(this.transactionScopeHomeserver).update("\0").update(userId).update("\0").update(deviceId ?? "").update("\0").update(this.transactionScopeAccessTokenHash).digest("hex");
1133
- })();
1146
+ });
1134
1147
  this.transactionScopePromise = active;
1135
1148
  try {
1136
1149
  const resolved = await active;
@@ -1181,14 +1194,17 @@ var MatrixClientCore = class extends MatrixClientBase {
1181
1194
  })).room_id;
1182
1195
  }
1183
1196
  async sendMessage(roomId, content, transactionId, beforeWireDispatch) {
1197
+ const assertCurrent = captureMatrixSendCurrentness(this);
1198
+ const wireTransactionId = transactionId ?? (beforeWireDispatch || assertCurrent ? this.client.makeTxnId() : void 0);
1184
1199
  return await this.runSerializedRoomSend(roomId, async () => {
1185
- return await this.withMessageWireDispatchGuard({
1186
- transactionId,
1200
+ return await this.messageWireDispatchGuards.run({
1201
+ transactionId: wireTransactionId,
1187
1202
  guard: beforeWireDispatch,
1203
+ assertCurrent,
1188
1204
  run: async () => {
1189
- if (transactionId) {
1205
+ if (wireTransactionId) {
1190
1206
  const room = this.client.getRoom(roomId);
1191
- const existing = room?.getEventForTxnId?.(transactionId);
1207
+ const existing = room?.getEventForTxnId?.(wireTransactionId);
1192
1208
  if (existing) {
1193
1209
  const existingId = existing.getId();
1194
1210
  if (existing.status === EventStatus.SENT && existingId && !existingId.startsWith("~")) return existingId;
@@ -1196,11 +1212,11 @@ var MatrixClientCore = class extends MatrixClientBase {
1196
1212
  await this.prepareRoomForMessageSend(roomId, existing.getContent());
1197
1213
  return (await this.client.resendEvent(existing, room)).event_id;
1198
1214
  }
1199
- throw new Error(`Matrix transaction ${transactionId} is already active with status ${existing.status ?? "unknown"}`);
1215
+ throw new Error(`Matrix transaction ${wireTransactionId} is already active with status ${existing.status ?? "unknown"}`);
1200
1216
  }
1201
1217
  }
1202
1218
  await this.prepareRoomForMessageSend(roomId, content);
1203
- return (await this.client.sendMessage(roomId, content, transactionId)).event_id;
1219
+ return (await this.client.sendMessage(roomId, content, wireTransactionId)).event_id;
1204
1220
  }
1205
1221
  });
1206
1222
  });
@@ -1348,6 +1364,9 @@ var MatrixClientCore = class extends MatrixClientBase {
1348
1364
  //#region extensions/matrix/src/matrix/sdk/client-verification.ts
1349
1365
  const normalizeNullableVerificationString = normalizeNullableString;
1350
1366
  var MatrixClientVerification = class extends MatrixClientCore {
1367
+ async refreshOwnDeviceKeys() {
1368
+ await this.client.getCrypto()?.userHasCrossSigningKeys(await this.getUserId(), true);
1369
+ }
1351
1370
  async getRoomKeyBackupStatus() {
1352
1371
  if (!this.encryptionEnabled) return {
1353
1372
  serverVersion: null,
@@ -1427,7 +1446,7 @@ var MatrixClientVerification = class extends MatrixClientCore {
1427
1446
  };
1428
1447
  }
1429
1448
  async getOwnDeviceVerificationStatus() {
1430
- const recoveryKey = this.recoveryKeyStore.getRecoveryKeySummary();
1449
+ const recoveryKey = await this.recoveryKeyStore.getRecoveryKeySummary();
1431
1450
  const userId = this.client.getUserId() ?? this.selfUserId ?? null;
1432
1451
  const deviceId = this.client.getDeviceId()?.trim() || null;
1433
1452
  const diagnosticTimeoutMs = Math.min(this.localTimeoutMs, MATRIX_STATUS_DIAGNOSTIC_TIMEOUT_MS);
@@ -1582,22 +1601,22 @@ var MatrixClient = class extends MatrixClientVerification {
1582
1601
  let stagedKeyId;
1583
1602
  try {
1584
1603
  stagedKeyId = await this.resolveDefaultSecretStorageKeyId(crypto) ?? null;
1585
- this.recoveryKeyStore.stageEncodedRecoveryKey({
1604
+ await this.recoveryKeyStore.stageEncodedRecoveryKey({
1586
1605
  encodedPrivateKey: trimmedRecoveryKey,
1587
1606
  keyId: stagedKeyId
1588
1607
  });
1589
1608
  } catch (err) {
1590
1609
  return await fail(formatErrorMessage(err));
1591
1610
  }
1592
- const storedRecoveryKeyMatches = this.recoveryKeyStore.getRecoveryKeySummary()?.encodedPrivateKey?.trim() === trimmedRecoveryKey;
1611
+ const storedRecoveryKeyMatches = (await this.recoveryKeyStore.getRecoveryKeySummary())?.encodedPrivateKey?.trim() === trimmedRecoveryKey;
1593
1612
  if (backupUsableBeforeStagedRecovery && storedRecoveryKeyMatches) {
1594
1613
  const status = await this.getOwnDeviceVerificationStatus();
1595
1614
  const backupUsable = resolveMatrixRoomKeyBackupReadinessError(status.backup, { requireServerBackup: true }) === null;
1596
1615
  const backupError = resolveMatrixRoomKeyBackupReadinessError(status.backup, { requireServerBackup: false });
1597
1616
  const recoveryKeyAccepted = backupUsable;
1598
1617
  if (!status.verified) {
1599
- if (recoveryKeyAccepted) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1600
- else this.recoveryKeyStore.discardStagedRecoveryKey();
1618
+ if (recoveryKeyAccepted) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1619
+ else await this.recoveryKeyStore.discardStagedRecoveryKey();
1601
1620
  return {
1602
1621
  success: false,
1603
1622
  recoveryKeyAccepted,
@@ -1608,7 +1627,7 @@ var MatrixClient = class extends MatrixClientVerification {
1608
1627
  };
1609
1628
  }
1610
1629
  if (backupError) {
1611
- this.recoveryKeyStore.discardStagedRecoveryKey();
1630
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1612
1631
  return {
1613
1632
  success: false,
1614
1633
  recoveryKeyAccepted,
@@ -1618,7 +1637,7 @@ var MatrixClient = class extends MatrixClientVerification {
1618
1637
  ...status
1619
1638
  };
1620
1639
  }
1621
- this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1640
+ await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1622
1641
  return {
1623
1642
  success: true,
1624
1643
  recoveryKeyAccepted: true,
@@ -1643,8 +1662,8 @@ var MatrixClient = class extends MatrixClientVerification {
1643
1662
  const stagedRecoveryKeyValidated = stagedRecoveryKeyUsed && (stagedRecoveryKeyConfirmedBySecretStorage || stagedRecoveryKeyUsed && !stagedRecoveryKeyRejectedBySecretStorage && !stagedRecoveryKeyConfirmedBySecretStorage && !backupUsableBeforeStagedRecovery && backupUsable) || storedRecoveryKeyMatches && backupUsable;
1644
1663
  const recoveryKeyAccepted = stagedRecoveryKeyValidated && (status.verified || backupUsable);
1645
1664
  if (!status.verified) {
1646
- if (backupUsable && stagedRecoveryKeyValidated) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1647
- else this.recoveryKeyStore.discardStagedRecoveryKey();
1665
+ if (backupUsable && stagedRecoveryKeyValidated) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1666
+ else await this.recoveryKeyStore.discardStagedRecoveryKey();
1648
1667
  return {
1649
1668
  success: false,
1650
1669
  recoveryKeyAccepted,
@@ -1655,7 +1674,7 @@ var MatrixClient = class extends MatrixClientVerification {
1655
1674
  };
1656
1675
  }
1657
1676
  if (backupError) {
1658
- this.recoveryKeyStore.discardStagedRecoveryKey();
1677
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1659
1678
  return {
1660
1679
  success: false,
1661
1680
  recoveryKeyAccepted,
@@ -1666,7 +1685,7 @@ var MatrixClient = class extends MatrixClientVerification {
1666
1685
  };
1667
1686
  }
1668
1687
  if (!stagedRecoveryKeyValidated) {
1669
- this.recoveryKeyStore.discardStagedRecoveryKey();
1688
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1670
1689
  return {
1671
1690
  success: false,
1672
1691
  recoveryKeyAccepted: false,
@@ -1676,7 +1695,7 @@ var MatrixClient = class extends MatrixClientVerification {
1676
1695
  ...status
1677
1696
  };
1678
1697
  }
1679
- this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1698
+ await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1680
1699
  const committedStatus = await this.getOwnDeviceVerificationStatus();
1681
1700
  return {
1682
1701
  success: true,
@@ -1687,7 +1706,7 @@ var MatrixClient = class extends MatrixClientVerification {
1687
1706
  ...committedStatus
1688
1707
  };
1689
1708
  } catch (err) {
1690
- this.recoveryKeyStore.discardStagedRecoveryKey();
1709
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1691
1710
  return await fail(formatErrorMessage(err));
1692
1711
  }
1693
1712
  }
@@ -1711,7 +1730,7 @@ var MatrixClient = class extends MatrixClientVerification {
1711
1730
  if (!crypto) return await fail("Matrix crypto is not available (start client with encryption enabled)");
1712
1731
  try {
1713
1732
  const rawRecoveryKey = params.recoveryKey?.trim();
1714
- if (rawRecoveryKey) this.recoveryKeyStore.stageEncodedRecoveryKey({
1733
+ if (rawRecoveryKey) await this.recoveryKeyStore.stageEncodedRecoveryKey({
1715
1734
  encodedPrivateKey: rawRecoveryKey,
1716
1735
  keyId: await this.resolveDefaultSecretStorageKeyId(crypto)
1717
1736
  });
@@ -1722,15 +1741,15 @@ var MatrixClient = class extends MatrixClientVerification {
1722
1741
  requireServerBackup: true
1723
1742
  });
1724
1743
  if (backupError) {
1725
- this.recoveryKeyStore.discardStagedRecoveryKey();
1744
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1726
1745
  return await fail(backupError);
1727
1746
  }
1728
1747
  if (typeof crypto.restoreKeyBackup !== "function") {
1729
- this.recoveryKeyStore.discardStagedRecoveryKey();
1748
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1730
1749
  return await fail("Matrix crypto backend does not support full key backup restore");
1731
1750
  }
1732
1751
  const restore = await crypto.restoreKeyBackup();
1733
- if (rawRecoveryKey) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(crypto) });
1752
+ if (rawRecoveryKey) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(crypto) });
1734
1753
  const finalBackup = await this.getRoomKeyBackupStatus();
1735
1754
  return {
1736
1755
  success: true,
@@ -1742,7 +1761,7 @@ var MatrixClient = class extends MatrixClientVerification {
1742
1761
  backup: finalBackup
1743
1762
  };
1744
1763
  } catch (err) {
1745
- this.recoveryKeyStore.discardStagedRecoveryKey();
1764
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1746
1765
  return await fail(formatErrorMessage(err));
1747
1766
  }
1748
1767
  }
@@ -1764,6 +1783,7 @@ var MatrixClient = class extends MatrixClientVerification {
1764
1783
  await this.ensureStartedForCryptoControlPlane();
1765
1784
  const crypto = this.client.getCrypto();
1766
1785
  if (!crypto) return await fail("Matrix crypto is not available (start client with encryption enabled)");
1786
+ await this.recoveryKeyStore.drainPendingPersistence();
1767
1787
  previousVersion = await this.resolveRoomKeyBackupVersion();
1768
1788
  const forceNewSecretStorage = options.rotateRecoveryKey === true || await this.shouldForceSecretStorageRecreationForBackupReset(crypto);
1769
1789
  try {
@@ -1827,7 +1847,7 @@ var MatrixClient = class extends MatrixClientVerification {
1827
1847
  const crypto = this.client.getCrypto();
1828
1848
  if (!crypto) throw new Error("Matrix crypto is not available (start client with encryption enabled)");
1829
1849
  rawRecoveryKey = params?.recoveryKey?.trim();
1830
- if (rawRecoveryKey) this.recoveryKeyStore.stageEncodedRecoveryKey({
1850
+ if (rawRecoveryKey) await this.recoveryKeyStore.stageEncodedRecoveryKey({
1831
1851
  encodedPrivateKey: rawRecoveryKey,
1832
1852
  keyId: await this.resolveDefaultSecretStorageKeyId(crypto)
1833
1853
  });
@@ -1839,7 +1859,7 @@ var MatrixClient = class extends MatrixClientVerification {
1839
1859
  }));
1840
1860
  await this.ensureRoomKeyBackupEnabled(crypto);
1841
1861
  } catch (err) {
1842
- this.recoveryKeyStore.discardStagedRecoveryKey();
1862
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1843
1863
  bootstrapError = formatErrorMessage(err);
1844
1864
  }
1845
1865
  const verification = await this.getOwnDeviceVerificationStatus();
@@ -1850,8 +1870,8 @@ var MatrixClient = class extends MatrixClientVerification {
1850
1870
  requireServerBackup: true
1851
1871
  }) : null;
1852
1872
  const success = verificationError === null && backupError === null;
1853
- if (success) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(this.client.getCrypto()) });
1854
- else this.recoveryKeyStore.discardStagedRecoveryKey();
1873
+ if (success) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(this.client.getCrypto()) });
1874
+ else await this.recoveryKeyStore.discardStagedRecoveryKey();
1855
1875
  return {
1856
1876
  success,
1857
1877
  error: success ? void 0 : backupError ?? verificationError ?? void 0,