@openclaw/matrix 2026.9.3 → 2026.9.5

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 (938) 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-5koohRSQ.mjs} +2 -2
  4. package/dist/{accounts-GwSAk9vY.js → .setup/accounts-BF5hyc-1.mjs} +3 -3
  5. package/dist/{approval-handler.runtime-tJLn5JFB.js → .setup/approval-handler.runtime-CoZCYGUH.mjs} +14 -13
  6. package/dist/{approval-ids-DJZ9ZTuS.js → .setup/approval-ids-CZOcdJ-5.mjs} +1 -1
  7. package/dist/{approval-reaction-auth-Cd0sKHFc.js → .setup/approval-reaction-auth-B51E4ZDa.mjs} +2 -2
  8. package/dist/{approval-reactions-1fwEhoK9.js → .setup/approval-reactions-B0hfA6qz.mjs} +6 -6
  9. package/dist/{channel-BpYiqmx-.js → .setup/channel-q6TBKEiG.mjs} +28 -180
  10. package/dist/{channel.runtime-dfEvRdLQ.js → .setup/channel.runtime-DcDBdxe6.mjs} +6 -6
  11. package/dist/{channel.setup-oxd8RsIr.js → .setup/channel.setup-DZQ5rf9k.mjs} +9 -5
  12. package/dist/{cli-_49Vsqs4.js → .setup/cli-Cx_cNaXN.mjs} +16 -16
  13. package/dist/{cli-metadata-D19lmKmz.js → .setup/cli-metadata-DHU1H-Vr.mjs} +1 -1
  14. package/dist/{client-BXQCQDfY.js → .setup/client-By2B3Wz4.mjs} +5 -3
  15. package/dist/{client-COLiUdWe.js → .setup/client-DsJUnWlV.mjs} +95 -93
  16. package/dist/{client-bootstrap-CQwf9qrm.js → .setup/client-bootstrap-DGX0f-4x.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-DQXAZjTw.mjs +61 -0
  20. package/dist/{credentials-DysXbkv2.js → .setup/credentials-CeRipapZ.mjs} +40 -17
  21. package/dist/{credentials-read-WWpqi88V.js → .setup/credentials-read-Dp7BoEdm.mjs} +22 -9
  22. package/dist/{credentials-write.runtime-D22lPwRO.js → .setup/credentials-write.runtime-M_bUf3rL.mjs} +1 -1
  23. package/dist/{crypto-runtime-BvunIYVn.js → .setup/crypto-runtime-9oxuU30y.mjs} +6 -29
  24. package/dist/{crypto-snapshot-doctor.runtime-DxgUMXUy.js → .setup/crypto-snapshot-doctor.runtime-DXpLbQ7y.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-DABCxf8j.js → .setup/directory-live-CatwztQc.mjs} +8 -6
  28. package/dist/{doctor-CJE8wO6y.js → .setup/doctor-BLCvdOFo.mjs} +1 -1
  29. package/dist/{draft-stream-DSwgyyBi.js → .setup/draft-stream-DIFZDNrb.mjs} +2 -2
  30. package/dist/{encryption-guidance-mDyxJV9U.js → .setup/encryption-guidance-DYEbeYj-.mjs} +2 -2
  31. package/dist/{http-client-BfPeF4CE.js → .setup/http-client-BJjo-iw5.mjs} +75 -9
  32. package/dist/{idb-persistence-DBdwHSWg.js → .setup/idb-persistence-CIfFUjP3.mjs} +12 -8
  33. package/dist/{inbound-dedupe-Ch33GU06.js → .setup/inbound-dedupe-BSlv35xl.mjs} +1 -1
  34. package/dist/.setup/joined-room-encryption-BCtxQ3hR.mjs +67 -0
  35. package/dist/{logger-B_71hN6W.js → .setup/logger-xBjiRIp1.mjs} +1 -1
  36. package/dist/{logging-DRjvUOIh.js → .setup/logging-rgm8ep9H.mjs} +2 -2
  37. package/dist/{messages-H4mi9Cap.js → .setup/messages-SW0NPYnR.mjs} +4 -4
  38. package/dist/{monitor-3Fw96uiE.js → .setup/monitor-DQfYX5rA.mjs} +118 -264
  39. package/dist/{outbound-UPI45TD_.js → .setup/outbound-DRWtSUe-.mjs} +12 -4
  40. package/dist/.setup/probe.runtime-qPRZE3Yf.mjs +2 -0
  41. package/dist/{profile-vmjsmhh4.js → .setup/profile-ClrB3IgR.mjs} +1 -1
  42. package/dist/{profile-update-DWEg8Ylt.js → .setup/profile-update-DPttQz3-.mjs} +4 -4
  43. package/dist/{reaction-events-D-iSW0iM.js → .setup/reaction-events-CdAk_rh_.mjs} +7 -7
  44. package/dist/{resolve-targets-BpnALDzR.js → .setup/resolve-targets-drjgAdIe.mjs} +3 -3
  45. package/dist/{resolver.runtime-B83WkznZ.js → .setup/resolver.runtime-Ci6ddcPh.mjs} +1 -1
  46. package/dist/{room-info-CjnbX52D.js → .setup/room-info-DHd1j3qM.mjs} +4 -4
  47. package/dist/.setup/runtime-1kn1P6io.mjs +29 -0
  48. package/dist/.setup/runtime-setter-api-DtxDAM-x.mjs +3 -0
  49. package/dist/{sdk-CX9b0N8Q.js → .setup/sdk-BkKE4ANj.mjs} +524 -285
  50. package/dist/{secret-contract-CufozuyJ.js → .setup/secret-contract-JlB6VmI3.mjs} +1 -1
  51. package/dist/.setup/secret-contract-api-B-iJoQEv.mjs +3 -0
  52. package/dist/{reaction-common-DkrQdBSZ.js → .setup/send-currentness-BrGXL7b8.mjs} +20 -1
  53. package/dist/{send-B9l1lKau.js → .setup/send-h0gZ_-qk.mjs} +212 -462
  54. package/dist/{setup-bootstrap-CSI1L1lm.js → .setup/setup-bootstrap-BYgBD504.mjs} +3 -3
  55. package/dist/{setup-core-DuTlyqRz.js → .setup/setup-core-BUcDAM7q.mjs} +18 -33
  56. package/dist/.setup/setup-plugin-api-DoTm4v2q.mjs +3 -0
  57. package/dist/{setup-surface-fZing1WZ.js → .setup/setup-surface-V_Q-enq-.mjs} +14 -23
  58. package/dist/{startup-verification-BTSf31hS.js → .setup/startup-verification-Bq5qeEGn.mjs} +3 -3
  59. package/dist/{storage-CV-pfV_2.js → .setup/storage-DJ-oUgmX.mjs} +42 -27
  60. package/dist/{storage-metadata-DYArLcq1.js → .setup/storage-metadata-BQJjHC_i.mjs} +58 -51
  61. package/dist/{subagent-hooks-DeICLbU5.js → .setup/subagent-hooks-jFgft_Mr.mjs} +1 -1
  62. package/dist/{sync-cache-state-C-mhj3xb.js → .setup/sync-cache-state-CFiZIPhA.mjs} +2 -2
  63. package/dist/{thread-binding-api-CzkeLZCU.js → .setup/thread-binding-api-DRMC62cs.mjs} +1 -1
  64. package/dist/{thread-bindings-CRyf5on_.js → .setup/thread-bindings-Hy96ujd3.mjs} +6 -6
  65. package/dist/{tool-actions.runtime-D5-hTkDu.js → .setup/tool-actions.runtime-Dckttu43.mjs} +306 -260
  66. package/dist/{verification-B_aqtbx-.js → .setup/verification-CKqBZ9mI.mjs} +4 -3
  67. package/dist/api.js +8 -8
  68. package/dist/auth-presence.js +1 -1
  69. package/dist/channel-plugin-api.js +1 -1
  70. package/dist/cli-metadata.js +1 -1
  71. package/dist/contract-api.js +2 -2
  72. package/dist/doctor-contract-api.js +8 -8
  73. package/dist/helper-api.js +3 -3
  74. package/dist/index.js +4 -1
  75. package/dist/plugin-entry.handlers.runtime.js +1 -1
  76. package/dist/runtime-api.js +6 -6
  77. package/dist/runtime-setter-api.js +2 -2
  78. package/dist/secret-contract-api.js +1 -1
  79. package/dist/session-binding-contract-api.js +2 -2
  80. package/dist/setup-entry.js +4 -3
  81. package/dist/setup-plugin-api.js +1 -1
  82. package/dist/subagent-hooks-api.js +1 -1
  83. package/dist/thread-binding-api.js +1 -1
  84. package/dist/thread-bindings-runtime.js +1 -1
  85. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json +1 -1
  86. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs +17 -17
  87. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js +17 -17
  88. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm +0 -0
  89. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts +5 -5
  90. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs +442 -434
  91. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs.map +1 -1
  92. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js +2 -2
  93. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js.map +1 -1
  94. package/node_modules/markdown-it/dist/markdown-it.cjs.js +32 -16
  95. package/node_modules/markdown-it/dist/markdown-it.cjs.js.map +1 -1
  96. package/node_modules/markdown-it/dist/markdown-it.mjs +32 -16
  97. package/node_modules/markdown-it/dist/markdown-it.mjs.map +1 -1
  98. package/node_modules/markdown-it/node_modules/argparse/LICENSE +1 -208
  99. package/node_modules/markdown-it/node_modules/argparse/package.json +2 -2
  100. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts +23 -3
  101. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts.map +1 -1
  102. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js +52 -37
  103. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js.map +1 -1
  104. package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts +61 -28
  105. package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts.map +1 -1
  106. package/node_modules/markdown-it/node_modules/entities/dist/decode.js +789 -201
  107. package/node_modules/markdown-it/node_modules/entities/dist/decode.js.map +1 -1
  108. package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts +4 -2
  109. package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts.map +1 -1
  110. package/node_modules/markdown-it/node_modules/entities/dist/encode.js +249 -44
  111. package/node_modules/markdown-it/node_modules/entities/dist/encode.js.map +1 -1
  112. package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts +19 -7
  113. package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts.map +1 -1
  114. package/node_modules/markdown-it/node_modules/entities/dist/escape.js +104 -64
  115. package/node_modules/markdown-it/node_modules/entities/dist/escape.js.map +1 -1
  116. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.d.ts.map +1 -1
  117. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js +2 -2
  118. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js.map +1 -1
  119. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.d.ts.map +1 -1
  120. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js +4 -2
  121. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js.map +1 -1
  122. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts +2 -4
  123. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts.map +1 -1
  124. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js +1 -10
  125. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js.map +1 -1
  126. package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts +2 -2
  127. package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts.map +1 -1
  128. package/node_modules/markdown-it/node_modules/entities/dist/index.js +2 -6
  129. package/node_modules/markdown-it/node_modules/entities/dist/index.js.map +1 -1
  130. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts +39 -8
  131. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts.map +1 -1
  132. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js +37 -6
  133. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js.map +1 -1
  134. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts +35 -4
  135. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts.map +1 -1
  136. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js +189 -11
  137. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js.map +1 -1
  138. package/node_modules/markdown-it/node_modules/entities/package.json +14 -14
  139. package/node_modules/markdown-it/node_modules/entities/src/decode-codepoint.ts +58 -39
  140. package/node_modules/markdown-it/node_modules/entities/src/decode.ts +942 -245
  141. package/node_modules/markdown-it/node_modules/entities/src/encode.ts +289 -47
  142. package/node_modules/markdown-it/node_modules/entities/src/escape.ts +110 -83
  143. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-html.ts +8 -3
  144. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-xml.ts +4 -4
  145. package/node_modules/markdown-it/node_modules/entities/src/generated/encode-html.ts +1 -16
  146. package/node_modules/markdown-it/node_modules/entities/src/index.ts +6 -8
  147. package/node_modules/markdown-it/node_modules/entities/src/internal/bin-trie-flags.ts +38 -7
  148. package/node_modules/markdown-it/node_modules/entities/src/internal/decode-shared.ts +203 -12
  149. package/node_modules/markdown-it/package.json +1 -1
  150. package/node_modules/matrix-js-sdk/CHANGELOG.md +15 -0
  151. package/node_modules/matrix-js-sdk/lib/client.d.ts +1 -2
  152. package/node_modules/matrix-js-sdk/lib/client.d.ts.map +1 -1
  153. package/node_modules/matrix-js-sdk/lib/client.js +16 -8
  154. package/node_modules/matrix-js-sdk/lib/client.js.map +1 -1
  155. package/node_modules/matrix-js-sdk/lib/http-api/errors.d.ts +8 -0
  156. package/node_modules/matrix-js-sdk/lib/http-api/errors.d.ts.map +1 -1
  157. package/node_modules/matrix-js-sdk/lib/http-api/errors.js +12 -0
  158. package/node_modules/matrix-js-sdk/lib/http-api/errors.js.map +1 -1
  159. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts +5 -0
  160. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
  161. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js +2 -1
  162. package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
  163. package/node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts +2 -4
  164. package/node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts.map +1 -1
  165. package/node_modules/matrix-js-sdk/lib/oauth/authorize.js.map +1 -1
  166. package/node_modules/matrix-js-sdk/lib/oauth/error.d.ts +44 -0
  167. package/node_modules/matrix-js-sdk/lib/oauth/error.d.ts.map +1 -1
  168. package/node_modules/matrix-js-sdk/lib/oauth/error.js +53 -0
  169. package/node_modules/matrix-js-sdk/lib/oauth/error.js.map +1 -1
  170. package/node_modules/matrix-js-sdk/lib/oauth/index.d.ts.map +1 -1
  171. package/node_modules/matrix-js-sdk/lib/oauth/index.js +19 -2
  172. package/node_modules/matrix-js-sdk/lib/oauth/index.js.map +1 -1
  173. package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.d.ts.map +1 -1
  174. package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js +4 -2
  175. package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js.map +1 -1
  176. package/node_modules/matrix-js-sdk/lib/secret-storage.d.ts +1 -1
  177. package/node_modules/matrix-js-sdk/lib/secret-storage.d.ts.map +1 -1
  178. package/node_modules/matrix-js-sdk/lib/secret-storage.js +9 -32
  179. package/node_modules/matrix-js-sdk/lib/secret-storage.js.map +1 -1
  180. package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.d.ts.map +1 -1
  181. package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.js +54 -1
  182. package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.js.map +1 -1
  183. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/dist/api.js +556 -311
  184. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/dist/api.min.js +1 -1
  185. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.d.ts +2 -0
  186. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.js +221 -129
  187. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.js.map +1 -1
  188. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/Symbols.js.map +1 -1
  189. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.d.ts +37 -0
  190. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.js +182 -63
  191. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.js.map +1 -1
  192. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.d.ts +20 -1
  193. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.js +49 -20
  194. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.js.map +1 -1
  195. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/index.d.ts +1 -0
  196. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/index.js.map +1 -1
  197. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.d.ts +2 -1
  198. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.js +3 -2
  199. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.js.map +1 -1
  200. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.d.ts +9 -1
  201. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.js +2 -0
  202. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.js.map +1 -1
  203. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/CapabilitiesAction.js.map +1 -1
  204. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ContentLoadedAction.js.map +1 -1
  205. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/DownloadFileAction.js.map +1 -1
  206. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/GetMediaConfigAction.js.map +1 -1
  207. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/GetOpenIDAction.js.map +1 -1
  208. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ICustomWidgetData.js.map +1 -1
  209. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IJitsiWidgetData.js.map +1 -1
  210. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IRoomAccountData.js.map +1 -1
  211. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IRoomEvent.js.map +1 -1
  212. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IStickerpickerWidgetData.js.map +1 -1
  213. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IToDeviceMessage.js.map +1 -1
  214. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidget.js.map +1 -1
  215. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiErrorResponse.js +1 -1
  216. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiErrorResponse.js.map +1 -1
  217. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiRequest.js.map +1 -1
  218. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiResponse.js.map +1 -1
  219. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/LanguageChangeAction.js.map +1 -1
  220. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ModalButtonKind.js.map +1 -1
  221. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ModalWidgetActions.js.map +1 -1
  222. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/NavigateAction.js.map +1 -1
  223. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/OpenIDCredentialsAction.js.map +1 -1
  224. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadEventAction.js.map +1 -1
  225. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadRelationsAction.js.map +1 -1
  226. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadRoomAccountDataAction.js.map +1 -1
  227. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.d.ts +53 -0
  228. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.js +6 -0
  229. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.js.map +1 -0
  230. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcTransportsAction.js.map +1 -1
  231. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ScreenshotAction.js.map +1 -1
  232. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SendEventAction.js.map +1 -1
  233. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SendToDeviceAction.js.map +1 -1
  234. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SetModalButtonEnabledAction.js.map +1 -1
  235. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/StickerAction.js.map +1 -1
  236. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/StickyAction.js.map +1 -1
  237. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SupportedVersionsAction.js.map +1 -1
  238. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ThemeChangeAction.js.map +1 -1
  239. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/TurnServerActions.js.map +1 -1
  240. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UpdateDelayedEventAction.js.map +1 -1
  241. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UpdateStateAction.js.map +1 -1
  242. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UploadFileAction.js.map +1 -1
  243. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UserDirectorySearchAction.js.map +1 -1
  244. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/VisibilityAction.js.map +1 -1
  245. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.d.ts +9 -1
  246. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.js +2 -0
  247. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.js.map +1 -1
  248. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiDirection.js.map +1 -1
  249. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetConfigAction.js.map +1 -1
  250. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetKind.js.map +1 -1
  251. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetType.js.map +1 -1
  252. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/Widget.js +20 -20
  253. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/Widget.js.map +1 -1
  254. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetEventCapability.js +9 -9
  255. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetEventCapability.js.map +1 -1
  256. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetParser.js +23 -23
  257. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetParser.js.map +1 -1
  258. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/validation/url.js.map +1 -1
  259. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/validation/utils.js.map +1 -1
  260. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/templating/url-template.js.map +1 -1
  261. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/ITransport.js.map +1 -1
  262. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/PostmessageTransport.js +32 -32
  263. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/PostmessageTransport.js.map +1 -1
  264. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/util/SimpleObservable.js +10 -10
  265. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/util/SimpleObservable.js.map +1 -1
  266. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/package.json +2 -2
  267. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/ClientWidgetApi.ts +48 -0
  268. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/WidgetApi.ts +75 -1
  269. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/driver/WidgetDriver.ts +33 -0
  270. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/index.ts +1 -0
  271. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/ApiVersion.ts +2 -0
  272. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts +8 -0
  273. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/RtcLivekitActions.ts +80 -0
  274. package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/WidgetApiAction.ts +10 -0
  275. package/node_modules/matrix-js-sdk/node_modules/p-retry/index.d.ts +1 -1
  276. package/node_modules/matrix-js-sdk/node_modules/p-retry/index.js +4 -0
  277. package/node_modules/matrix-js-sdk/node_modules/p-retry/package.json +1 -1
  278. package/node_modules/matrix-js-sdk/node_modules/p-retry/readme.md +1 -1
  279. package/node_modules/matrix-js-sdk/package.json +2 -2
  280. package/node_modules/matrix-js-sdk/src/client.ts +19 -11
  281. package/node_modules/matrix-js-sdk/src/http-api/errors.ts +16 -0
  282. package/node_modules/matrix-js-sdk/src/matrixrtc/MatrixRTCSession.ts +8 -1
  283. package/node_modules/matrix-js-sdk/src/oauth/authorize.ts +2 -5
  284. package/node_modules/matrix-js-sdk/src/oauth/error.ts +69 -0
  285. package/node_modules/matrix-js-sdk/src/oauth/index.ts +19 -2
  286. package/node_modules/matrix-js-sdk/src/oauth/tokenRefresher.ts +9 -2
  287. package/node_modules/matrix-js-sdk/src/secret-storage.ts +8 -31
  288. package/node_modules/matrix-js-sdk/src/sliding-sync-sdk.ts +74 -0
  289. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  290. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  291. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  292. package/node_modules/typebox/build/format/iri.mjs +5 -1
  293. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  294. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  295. package/node_modules/typebox/build/guard/string.mjs +16 -24
  296. package/node_modules/typebox/build/schema/build.mjs +2 -2
  297. package/node_modules/typebox/build/schema/check.mjs +1 -1
  298. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  299. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  300. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  301. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  302. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  303. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  304. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  305. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  306. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  307. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  308. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  309. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  310. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  311. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  312. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  313. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  314. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  315. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  316. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  317. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  318. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  319. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  320. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  321. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  322. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  323. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  324. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  325. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  326. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  327. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  328. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  329. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  330. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  331. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  332. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  333. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  334. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  335. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  336. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  337. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  338. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  339. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  340. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  341. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  342. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  343. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  344. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  345. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  346. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  347. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  348. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  349. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  350. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  351. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  352. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  353. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  354. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  355. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  356. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  357. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  358. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  359. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  360. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  361. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  362. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  363. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  364. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  365. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  366. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  367. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  368. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  369. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  370. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  371. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  372. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  373. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  374. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  375. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  376. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  377. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  378. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  379. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  380. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  381. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  382. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  383. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  384. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  385. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  386. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  387. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  388. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  389. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  390. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  391. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  392. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  393. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  394. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  395. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  396. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  397. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  398. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  399. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  400. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  401. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  402. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  403. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  404. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  405. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  406. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  407. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  408. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  409. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  410. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  411. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  412. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  413. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  414. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  415. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  416. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  417. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  418. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  419. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  420. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  421. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  422. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  423. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  424. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  425. package/node_modules/typebox/package.json +1 -1
  426. package/node_modules/typebox/readme.md +59 -89
  427. package/node_modules/zod/README.md +27 -0
  428. package/node_modules/zod/compile.cjs +77 -0
  429. package/node_modules/zod/compile.d.cts +1 -0
  430. package/node_modules/zod/compile.d.ts +1 -0
  431. package/node_modules/zod/compile.js +52 -0
  432. package/node_modules/zod/index.cjs +2 -2
  433. package/node_modules/zod/index.d.cts +1 -2
  434. package/node_modules/zod/index.d.ts +1 -2
  435. package/node_modules/zod/index.js +5 -2
  436. package/node_modules/zod/package.json +13 -2
  437. package/node_modules/zod/src/compile.ts +56 -0
  438. package/node_modules/zod/src/index.ts +5 -2
  439. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  440. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  441. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  442. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  443. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  444. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  445. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  446. package/node_modules/zod/src/v3/types.ts +5 -5
  447. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  448. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  449. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  450. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  451. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  452. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  453. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  454. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  455. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  456. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  457. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  458. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  459. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  460. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  461. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  462. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  463. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  464. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  465. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  466. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  467. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  468. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  469. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  470. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  471. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  472. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  473. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  474. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  475. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  476. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  477. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  478. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  479. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  480. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  481. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  482. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  483. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  484. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  485. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  486. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  487. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  488. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  489. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  490. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  491. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  492. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  493. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  494. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  495. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  496. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  497. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  498. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  499. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  500. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  501. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  502. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  503. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  504. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  505. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  506. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  507. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  508. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  509. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  510. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  511. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  512. package/node_modules/zod/src/v4/core/api.ts +48 -12
  513. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  514. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  515. package/node_modules/zod/src/v4/core/core.ts +98 -19
  516. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  517. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  518. package/node_modules/zod/src/v4/core/index.ts +3 -0
  519. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  520. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  521. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  522. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  523. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  524. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  525. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  526. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  527. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  528. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  529. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  530. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  531. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  532. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  533. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  534. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  535. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  536. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  537. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  538. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  539. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  540. package/node_modules/zod/src/v4/core/util.ts +268 -42
  541. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  542. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  543. package/node_modules/zod/src/v4/index.ts +3 -3
  544. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  545. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  546. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  547. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  548. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  549. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  550. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  551. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  552. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  553. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  554. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  555. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  556. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  557. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  558. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  559. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  560. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  561. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  562. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  563. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  564. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  565. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  566. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  567. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  568. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  569. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  570. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  571. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  572. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  573. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  574. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  575. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  576. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  577. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  578. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  579. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  580. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  581. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  582. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  583. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  584. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  585. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  586. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  587. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  588. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  589. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  590. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  591. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  592. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  593. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  594. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  595. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  596. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  597. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  598. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  599. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  600. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  601. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  602. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  603. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  604. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  605. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  606. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  607. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  608. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  609. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  610. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  611. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  612. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  613. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  614. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  615. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  616. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  617. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  618. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  619. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  620. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  621. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  622. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  623. package/node_modules/zod/v3/ZodError.cjs +22 -12
  624. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  625. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  626. package/node_modules/zod/v3/ZodError.js +22 -12
  627. package/node_modules/zod/v3/types.cjs +7 -5
  628. package/node_modules/zod/v3/types.js +7 -5
  629. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  630. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  631. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  632. package/node_modules/zod/v4/classic/checks.js +1 -1
  633. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  634. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  635. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  636. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  637. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  638. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  639. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  640. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  641. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  642. package/node_modules/zod/v4/classic/errors.js +43 -34
  643. package/node_modules/zod/v4/classic/external.cjs +30 -27
  644. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  645. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  646. package/node_modules/zod/v4/classic/external.js +5 -8
  647. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  648. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  649. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  650. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  651. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  652. package/node_modules/zod/v4/classic/in-out.js +36 -0
  653. package/node_modules/zod/v4/classic/index.cjs +2 -2
  654. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  655. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  656. package/node_modules/zod/v4/classic/index.js +2 -2
  657. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  658. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  659. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  660. package/node_modules/zod/v4/classic/iso.js +2 -17
  661. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  662. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  663. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  664. package/node_modules/zod/v4/classic/parse.js +1 -0
  665. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  666. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  667. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  668. package/node_modules/zod/v4/classic/schemas.js +492 -396
  669. package/node_modules/zod/v4/core/api.cjs +23 -4
  670. package/node_modules/zod/v4/core/api.d.cts +13 -9
  671. package/node_modules/zod/v4/core/api.d.ts +13 -9
  672. package/node_modules/zod/v4/core/api.js +21 -4
  673. package/node_modules/zod/v4/core/checks.cjs +37 -31
  674. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  675. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  676. package/node_modules/zod/v4/core/checks.js +37 -31
  677. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  678. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  679. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  680. package/node_modules/zod/v4/core/compile.js +1783 -0
  681. package/node_modules/zod/v4/core/core.cjs +81 -18
  682. package/node_modules/zod/v4/core/core.d.cts +16 -4
  683. package/node_modules/zod/v4/core/core.d.ts +16 -4
  684. package/node_modules/zod/v4/core/core.js +82 -19
  685. package/node_modules/zod/v4/core/doc.cjs +5 -7
  686. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  687. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  688. package/node_modules/zod/v4/core/doc.js +5 -7
  689. package/node_modules/zod/v4/core/errors.cjs +110 -25
  690. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  691. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  692. package/node_modules/zod/v4/core/errors.js +110 -25
  693. package/node_modules/zod/v4/core/index.cjs +5 -1
  694. package/node_modules/zod/v4/core/index.d.cts +3 -0
  695. package/node_modules/zod/v4/core/index.d.ts +3 -0
  696. package/node_modules/zod/v4/core/index.js +3 -0
  697. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  698. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  699. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  700. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  701. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  702. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  703. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  704. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  705. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  706. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  707. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  708. package/node_modules/zod/v4/core/memoizer.js +265 -0
  709. package/node_modules/zod/v4/core/parse.cjs +96 -34
  710. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  711. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  712. package/node_modules/zod/v4/core/parse.js +94 -33
  713. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  714. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  715. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  716. package/node_modules/zod/v4/core/regexes.js +24 -13
  717. package/node_modules/zod/v4/core/registries.js +2 -2
  718. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  719. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  720. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  721. package/node_modules/zod/v4/core/schemas.js +526 -325
  722. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  723. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  724. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  725. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  726. package/node_modules/zod/v4/core/util.cjs +212 -31
  727. package/node_modules/zod/v4/core/util.d.cts +58 -1
  728. package/node_modules/zod/v4/core/util.d.ts +58 -1
  729. package/node_modules/zod/v4/core/util.js +202 -30
  730. package/node_modules/zod/v4/core/versions.cjs +2 -2
  731. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  732. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  733. package/node_modules/zod/v4/core/versions.js +2 -2
  734. package/node_modules/zod/v4/core/visit.cjs +195 -0
  735. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  736. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  737. package/node_modules/zod/v4/core/visit.js +169 -0
  738. package/node_modules/zod/v4/index.cjs +15 -5
  739. package/node_modules/zod/v4/index.d.cts +2 -2
  740. package/node_modules/zod/v4/index.d.ts +2 -2
  741. package/node_modules/zod/v4/index.js +3 -2
  742. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  743. package/node_modules/zod/v4/locales/ar.js +3 -0
  744. package/node_modules/zod/v4/locales/az.cjs +3 -0
  745. package/node_modules/zod/v4/locales/az.js +3 -0
  746. package/node_modules/zod/v4/locales/be.cjs +10 -0
  747. package/node_modules/zod/v4/locales/be.js +10 -0
  748. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  749. package/node_modules/zod/v4/locales/bg.js +3 -0
  750. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  751. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  752. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  753. package/node_modules/zod/v4/locales/bn.js +111 -0
  754. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  755. package/node_modules/zod/v4/locales/ca.js +3 -0
  756. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  757. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  758. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  759. package/node_modules/zod/v4/locales/ckb.js +131 -0
  760. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  761. package/node_modules/zod/v4/locales/cs.js +3 -0
  762. package/node_modules/zod/v4/locales/da.cjs +5 -2
  763. package/node_modules/zod/v4/locales/da.js +5 -2
  764. package/node_modules/zod/v4/locales/de.cjs +3 -0
  765. package/node_modules/zod/v4/locales/de.js +3 -0
  766. package/node_modules/zod/v4/locales/el.cjs +1 -0
  767. package/node_modules/zod/v4/locales/el.js +1 -0
  768. package/node_modules/zod/v4/locales/en.cjs +14 -4
  769. package/node_modules/zod/v4/locales/en.js +14 -4
  770. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  771. package/node_modules/zod/v4/locales/eo.js +3 -0
  772. package/node_modules/zod/v4/locales/es.cjs +2 -0
  773. package/node_modules/zod/v4/locales/es.js +2 -0
  774. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  775. package/node_modules/zod/v4/locales/fa.js +3 -0
  776. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  777. package/node_modules/zod/v4/locales/fi.js +3 -0
  778. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  779. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  780. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  781. package/node_modules/zod/v4/locales/fr.js +16 -14
  782. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  783. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  784. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  785. package/node_modules/zod/v4/locales/gu.js +111 -0
  786. package/node_modules/zod/v4/locales/he.cjs +5 -0
  787. package/node_modules/zod/v4/locales/he.js +5 -0
  788. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  789. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  790. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  791. package/node_modules/zod/v4/locales/hi.js +109 -0
  792. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  793. package/node_modules/zod/v4/locales/hr.js +2 -0
  794. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  795. package/node_modules/zod/v4/locales/hu.js +3 -0
  796. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  797. package/node_modules/zod/v4/locales/hy.js +9 -0
  798. package/node_modules/zod/v4/locales/id.cjs +3 -0
  799. package/node_modules/zod/v4/locales/id.js +3 -0
  800. package/node_modules/zod/v4/locales/index.cjs +22 -2
  801. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  802. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  803. package/node_modules/zod/v4/locales/index.js +10 -0
  804. package/node_modules/zod/v4/locales/is.cjs +3 -0
  805. package/node_modules/zod/v4/locales/is.js +3 -0
  806. package/node_modules/zod/v4/locales/it.cjs +3 -0
  807. package/node_modules/zod/v4/locales/it.js +3 -0
  808. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  809. package/node_modules/zod/v4/locales/ja.js +3 -0
  810. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  811. package/node_modules/zod/v4/locales/ka.js +3 -0
  812. package/node_modules/zod/v4/locales/km.cjs +3 -0
  813. package/node_modules/zod/v4/locales/km.js +3 -0
  814. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  815. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  816. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  817. package/node_modules/zod/v4/locales/kn.js +114 -0
  818. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  819. package/node_modules/zod/v4/locales/ko.js +3 -0
  820. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  821. package/node_modules/zod/v4/locales/lt.js +2 -0
  822. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  823. package/node_modules/zod/v4/locales/mk.js +3 -0
  824. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  825. package/node_modules/zod/v4/locales/ms.js +3 -0
  826. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  827. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  828. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  829. package/node_modules/zod/v4/locales/ne.js +109 -0
  830. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  831. package/node_modules/zod/v4/locales/nl.js +3 -0
  832. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  833. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  834. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  835. package/node_modules/zod/v4/locales/nn.js +111 -0
  836. package/node_modules/zod/v4/locales/no.cjs +5 -2
  837. package/node_modules/zod/v4/locales/no.js +5 -2
  838. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  839. package/node_modules/zod/v4/locales/ota.js +3 -0
  840. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  841. package/node_modules/zod/v4/locales/pl.js +3 -0
  842. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  843. package/node_modules/zod/v4/locales/ps.js +3 -0
  844. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  845. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  846. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  847. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  848. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  849. package/node_modules/zod/v4/locales/pt.js +87 -55
  850. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  851. package/node_modules/zod/v4/locales/ro.js +1 -0
  852. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  853. package/node_modules/zod/v4/locales/ru.js +10 -0
  854. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  855. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  856. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  857. package/node_modules/zod/v4/locales/sk.js +114 -0
  858. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  859. package/node_modules/zod/v4/locales/sl.js +3 -0
  860. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  861. package/node_modules/zod/v4/locales/sv.js +5 -2
  862. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  863. package/node_modules/zod/v4/locales/ta.js +3 -0
  864. package/node_modules/zod/v4/locales/th.cjs +3 -0
  865. package/node_modules/zod/v4/locales/th.js +3 -0
  866. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  867. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  868. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  869. package/node_modules/zod/v4/locales/tk.js +105 -0
  870. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  871. package/node_modules/zod/v4/locales/tr.js +3 -0
  872. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  873. package/node_modules/zod/v4/locales/uk.js +3 -0
  874. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  875. package/node_modules/zod/v4/locales/ur.js +3 -0
  876. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  877. package/node_modules/zod/v4/locales/uz.js +1 -0
  878. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  879. package/node_modules/zod/v4/locales/vi.js +3 -0
  880. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  881. package/node_modules/zod/v4/locales/yo.js +3 -0
  882. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  883. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  884. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  885. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  886. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  887. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  888. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  889. package/node_modules/zod/v4/mini/checks.js +1 -1
  890. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  891. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  892. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  893. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  894. package/node_modules/zod/v4/mini/external.cjs +12 -1
  895. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  896. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  897. package/node_modules/zod/v4/mini/external.js +3 -1
  898. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  899. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  900. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  901. package/node_modules/zod/v4/mini/in-out.js +36 -0
  902. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  903. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  904. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  905. package/node_modules/zod/v4/mini/parse.js +1 -1
  906. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  907. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  908. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  909. package/node_modules/zod/v4/mini/schemas.js +71 -45
  910. package/openclaw.plugin.json +224 -43
  911. package/package.json +12 -10
  912. package/dist/direct-room-RinHjtqX.js +0 -71
  913. package/dist/probe.runtime-DdXTrrmo.js +0 -2
  914. package/dist/runtime-6S3DNFNv.js +0 -8
  915. package/dist/types-DzSc7Sqm.js +0 -32
  916. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts +0 -33
  917. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts.map +0 -1
  918. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js +0 -93
  919. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js.map +0 -1
  920. package/node_modules/markdown-it/node_modules/entities/src/internal/encode-shared.ts +0 -123
  921. package/node_modules/zod/src/v4/core/config.ts +0 -15
  922. /package/dist/{account-config-CRsKoMqJ.js → .setup/account-config-CRsKoMqJ.mjs} +0 -0
  923. /package/dist/{backup-health-Dm_YMVFT.js → .setup/backup-health-Dm_YMVFT.mjs} +0 -0
  924. /package/dist/{config-paths-CnREYb1Y.js → .setup/config-paths-CnREYb1Y.mjs} +0 -0
  925. /package/dist/{config-secret-input.runtime-CwsP3--c.js → .setup/config-secret-input.runtime-CwsP3--c.mjs} +0 -0
  926. /package/dist/{credentials-state-B3cuUFwZ.js → .setup/credentials-state-B3cuUFwZ.mjs} +0 -0
  927. /package/dist/{crypto-node.runtime-6Aj_ltHQ.js → .setup/crypto-node.runtime-6Aj_ltHQ.mjs} +0 -0
  928. /package/dist/{deps-mtxF2mHI.js → .setup/deps-mtxF2mHI.mjs} +0 -0
  929. /package/dist/{doctor-contract-HyWFZQVG.js → .setup/doctor-contract-HyWFZQVG.mjs} +0 -0
  930. /package/dist/{env-vars-dGqak9dN.js → .setup/env-vars-dGqak9dN.mjs} +0 -0
  931. /package/dist/{errors-DKVS3_DO.js → .setup/errors-DKVS3_DO.mjs} +0 -0
  932. /package/dist/{event-helpers-CspuhE9k.js → .setup/event-helpers-CspuhE9k.mjs} +0 -0
  933. /package/dist/{idb-persistence-lock-B3fZXyF_.js → .setup/idb-persistence-lock-B3fZXyF_.mjs} +0 -0
  934. /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
  935. /package/dist/{storage-paths-DVCANXTc.js → .setup/storage-paths-DVCANXTc.mjs} +0 -0
  936. /package/dist/{target-ids-Nwx7cMVE.js → .setup/target-ids-Nwx7cMVE.mjs} +0 -0
  937. /package/dist/{thread-bindings-shared-oNPiyMWY.js → .setup/thread-bindings-shared-oNPiyMWY.mjs} +0 -0
  938. /package/dist/{url-validation-GRHde6lq.js → .setup/url-validation-GRHde6lq.mjs} +0 -0
@@ -1,31 +1,34 @@
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-COLiUdWe.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 { D as writeMatrixRecoveryKeyStateForPathAsync, S as readMatrixRecoveryKeyStateForPathAsync, f as migrateLegacyMatrixRecoveryKeyFilePathToStoreAsync, v as readLegacyMatrixRecoveryKeyFile } from "./storage-metadata-BQJjHC_i.mjs";
4
+ import { t as claimCurrentTokenStorageState } from "./storage-DJ-oUgmX.mjs";
5
+ import { r as withoutMatrixSendCurrentness, t as captureMatrixSendCurrentness } from "./send-currentness-BrGXL7b8.mjs";
6
+ import { i as parseMxc, r as matrixEventToRaw } from "./event-helpers-CspuhE9k.mjs";
7
+ import { i as openMatrixSyncCacheStoreOptions, l as writeMatrixSyncCacheStateToSyncStore, n as deleteMatrixSyncCacheStateFromSyncStore, o as readPersistedStoreFromSyncStore } from "./sync-cache-state-CFiZIPhA.mjs";
8
+ import { n as isMatrixNotFoundError, t as formatMatrixErrorReason } from "./errors-DKVS3_DO.mjs";
9
+ import { a as createMatrixStartupAbortError, i as awaitMatrixStartupWithAbort, s as throwIfMatrixStartupAborted } from "./client-DsJUnWlV.mjs";
10
+ import { n as createMatrixGuardedFetch, t as MatrixAuthedHttpClient } from "./http-client-BJjo-iw5.mjs";
11
+ import { n as resolveMatrixRoomKeyBackupReadinessError } from "./backup-health-Dm_YMVFT.mjs";
12
+ import { n as LogService, r as noop, t as ConsoleLogger } from "./logger-xBjiRIp1.mjs";
13
+ import { t as createMatrixJsSdkClientLogger } from "./logging-rgm8ep9H.mjs";
14
+ import { t as MATRIX_IDB_PERSIST_INTERVAL_MS } from "./idb-persistence-lock-B3fZXyF_.mjs";
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-Bn9Bk0-H.mjs";
16
16
  import { createRequire } from "node:module";
17
17
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
18
18
  import { normalizeNullableString, normalizeStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
19
19
  import { createHash } from "node:crypto";
20
20
  import path from "node:path";
21
21
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
22
+ import { AsyncLocalStorage } from "node:async_hooks";
22
23
  import { KeyedAsyncQueue } from "openclaw/plugin-sdk/keyed-async-queue";
24
+ import { captureChannelReadAuthority } from "openclaw/plugin-sdk/fetch-runtime";
23
25
  import { EventEmitter } from "node:events";
24
26
  import { ClientEvent, EventType, Filter, MatrixError, MatrixEventEvent, MemoryStore, MsgType, Preset, SyncAccumulator, createClient } from "matrix-js-sdk/lib/matrix.js";
25
27
  import { RoomEvent } from "matrix-js-sdk/lib/models/room.js";
26
28
  import { VerificationMethod } from "matrix-js-sdk/lib/types.js";
27
29
  import { SyncApi, SyncState } from "matrix-js-sdk/lib/sync.js";
28
30
  import { decodeRecoveryKey } from "matrix-js-sdk/lib/crypto-api/recovery-key.js";
31
+ import { MatrixScheduler } from "matrix-js-sdk/lib/scheduler.js";
29
32
  import { EventStatus } from "matrix-js-sdk/lib/models/event-status.js";
30
33
  //#region extensions/matrix/src/matrix/sdk/client-device-info.ts
31
34
  async function resolveMatrixCrossSigningPublicationStatus(params) {
@@ -326,7 +329,7 @@ var SqliteBackedMatrixSyncStore = class extends MemoryStore {
326
329
  payload,
327
330
  store: this.store
328
331
  });
329
- claimCurrentTokenStorageState({ rootDir: this.storageRootDir });
332
+ await claimCurrentTokenStorageState({ rootDir: this.storageRootDir });
330
333
  });
331
334
  } catch (err) {
332
335
  this.dirty = true;
@@ -359,7 +362,7 @@ function openMatrixSyncCacheStore(storageRootDir) {
359
362
  //#endregion
360
363
  //#region extensions/matrix/src/matrix/sdk/client-sync-quiesce.ts
361
364
  const MATRIX_SYNC_QUIESCE_TIMEOUT_MS = 5e3;
362
- const MATRIX_JS_SDK_SYNC_VERSION = "42.2.0";
365
+ const MATRIX_JS_SDK_SYNC_VERSION = "42.3.0";
363
366
  const matrixJsSdkPackage = createRequire(import.meta.url)("matrix-js-sdk/package.json");
364
367
  function requireMatrixClassicSyncInternals(syncApi) {
365
368
  return syncApi;
@@ -426,6 +429,124 @@ async function quiesceMatrixClientSync(params) {
426
429
  });
427
430
  }
428
431
  //#endregion
432
+ //#region extensions/matrix/src/matrix/sdk/client-sync-ready.ts
433
+ async function waitForMatrixInitialSyncReady(params) {
434
+ const timeoutMs = params.timeoutMs ?? 3e4;
435
+ if (isMatrixReadySyncState(params.state)) return;
436
+ if (isMatrixAccessTokenInvalidatedError(params.error)) throw params.error instanceof Error ? params.error : new Error("Matrix access token invalidated", { cause: params.error });
437
+ if (isMatrixTerminalSyncState(params.state)) throw new Error(`Matrix sync entered ${params.state} during startup`);
438
+ await new Promise((resolve, reject) => {
439
+ let settled = false;
440
+ let timeoutId;
441
+ const abortSignal = params.abortSignal;
442
+ const cleanup = () => {
443
+ params.emitter.off("sync.state", onSyncState);
444
+ params.emitter.off("sync.unexpected_error", onUnexpectedError);
445
+ abortSignal?.removeEventListener("abort", onAbort);
446
+ if (timeoutId) {
447
+ clearTimeout(timeoutId);
448
+ timeoutId = void 0;
449
+ }
450
+ };
451
+ const settleResolve = () => {
452
+ if (settled) return;
453
+ settled = true;
454
+ cleanup();
455
+ resolve();
456
+ };
457
+ const settleReject = (error) => {
458
+ if (settled) return;
459
+ settled = true;
460
+ cleanup();
461
+ reject(error);
462
+ };
463
+ const onSyncState = (state, _prevState, error) => {
464
+ if (isMatrixReadySyncState(state)) {
465
+ settleResolve();
466
+ return;
467
+ }
468
+ if (isMatrixAccessTokenInvalidatedError(error)) {
469
+ settleReject(error instanceof Error ? error : /* @__PURE__ */ new Error("Matrix access token invalidated"));
470
+ return;
471
+ }
472
+ if (isMatrixTerminalSyncState(state)) settleReject(new Error(error instanceof Error && error.message ? error.message : `Matrix sync entered ${state} during startup`));
473
+ };
474
+ const onUnexpectedError = (error) => {
475
+ settleReject(error);
476
+ };
477
+ const onAbort = () => {
478
+ settleReject(createMatrixStartupAbortError());
479
+ };
480
+ params.emitter.on("sync.state", onSyncState);
481
+ params.emitter.on("sync.unexpected_error", onUnexpectedError);
482
+ if (abortSignal?.aborted) {
483
+ onAbort();
484
+ return;
485
+ }
486
+ abortSignal?.addEventListener("abort", onAbort, { once: true });
487
+ timeoutId = setTimeout(() => {
488
+ settleReject(/* @__PURE__ */ new Error(`Matrix client did not reach a ready sync state within ${timeoutMs}ms`));
489
+ }, timeoutMs);
490
+ timeoutId.unref?.();
491
+ });
492
+ }
493
+ //#endregion
494
+ //#region extensions/matrix/src/matrix/sdk/message-wire-dispatch.ts
495
+ function resolveMessageWireDispatch(resource, init) {
496
+ if ((init?.method ?? (resource instanceof Request ? resource.method : "GET")).toUpperCase() !== "PUT") return null;
497
+ const rawUrl = typeof resource === "string" ? resource : resource instanceof URL ? resource.href : resource.url;
498
+ const segments = new URL(rawUrl).pathname.split("/").filter(Boolean);
499
+ const roomsIndex = segments.lastIndexOf("rooms");
500
+ if (roomsIndex < 0 || segments[roomsIndex + 2] !== "send" || segments.length !== roomsIndex + 5) return null;
501
+ const eventType = decodeURIComponent(segments[roomsIndex + 3] ?? "");
502
+ if (eventType !== "m.room.message" && eventType !== "m.room.encrypted") return null;
503
+ return {
504
+ roomId: decodeURIComponent(segments[roomsIndex + 1] ?? ""),
505
+ eventType,
506
+ transactionId: decodeURIComponent(segments[roomsIndex + 4] ?? ""),
507
+ requestPath: new URL(rawUrl).pathname
508
+ };
509
+ }
510
+ var MatrixMessageWireDispatchGuards = class {
511
+ constructor() {
512
+ this.guards = /* @__PURE__ */ new Map();
513
+ }
514
+ captureCurrentness(resource, init, fallback) {
515
+ const dispatch = resolveMessageWireDispatch(resource, init);
516
+ const entry = dispatch ? this.guards.get(dispatch.transactionId) : void 0;
517
+ if (!entry) return fallback;
518
+ const assertCurrent = entry.assertCurrent;
519
+ return assertCurrent ? () => {
520
+ try {
521
+ assertCurrent();
522
+ } catch (error) {
523
+ entry.currentnessRejected = true;
524
+ throw error;
525
+ }
526
+ } : void 0;
527
+ }
528
+ wasCurrentnessRejected(transactionId) {
529
+ return transactionId !== void 0 && this.guards.get(transactionId)?.currentnessRejected === true;
530
+ }
531
+ beforeRequest(resource, init) {
532
+ const dispatch = resolveMessageWireDispatch(resource, init);
533
+ return dispatch ? Promise.resolve(this.guards.get(dispatch.transactionId)?.guard?.(dispatch)) : void 0;
534
+ }
535
+ async run(params) {
536
+ if (!params.transactionId || !params.guard && !params.assertCurrent) return await params.run();
537
+ if (this.guards.has(params.transactionId)) throw new Error(`Matrix transaction ${params.transactionId} already has a dispatch guard`);
538
+ this.guards.set(params.transactionId, {
539
+ guard: params.guard,
540
+ assertCurrent: params.assertCurrent
541
+ });
542
+ try {
543
+ return await params.run();
544
+ } finally {
545
+ this.guards.delete(params.transactionId);
546
+ }
547
+ }
548
+ };
549
+ //#endregion
429
550
  //#region extensions/matrix/src/matrix/sdk/recovery-key-store.ts
430
551
  function isRepairableSecretStorageAccessError(err) {
431
552
  const message = formatMatrixErrorReason(err);
@@ -435,63 +556,95 @@ function isRepairableSecretStorageAccessError(err) {
435
556
  return false;
436
557
  }
437
558
  var MatrixRecoveryKeyStore = class {
438
- constructor(recoveryKeyPath) {
559
+ constructor(recoveryKeyPath, stateRuntime) {
439
560
  this.secretStorageKeyCache = /* @__PURE__ */ new Map();
440
561
  this.stagedRecoveryKey = null;
441
562
  this.stagedRecoveryKeyUsed = false;
442
563
  this.stagedCacheKeyIds = /* @__PURE__ */ new Set();
564
+ this.pendingPersistence = Promise.resolve();
565
+ this.closed = false;
443
566
  this.recoveryKeyPath = recoveryKeyPath;
444
567
  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);
568
+ if (recoveryKeyPath) {
569
+ this.stateRuntime = stateRuntime ?? getMatrixRuntime().state;
570
+ const runtime = this.stateRuntime;
571
+ this.enqueuePersistence(async () => {
572
+ try {
573
+ await migrateLegacyMatrixRecoveryKeyFilePathToStoreAsync(recoveryKeyPath, runtime);
574
+ } catch (err) {
575
+ this.legacyRecoveryKeyPathOnMigrationFailure = recoveryKeyPath;
576
+ LogService.warn("MatrixClientLite", "Failed to migrate Matrix recovery key state:", err);
577
+ }
578
+ });
579
+ }
580
+ }
581
+ enqueuePersistence(run) {
582
+ if (this.closed) return Promise.reject(/* @__PURE__ */ new Error("Matrix recovery key store is closed"));
583
+ const pending = this.pendingPersistence.then(run);
584
+ this.pendingPersistence = pending.then(() => {}, () => {});
585
+ return pending;
586
+ }
587
+ async afterPersistence(read) {
588
+ for (;;) {
589
+ const pending = this.pendingPersistence;
590
+ await pending;
591
+ if (pending === this.pendingPersistence) return read();
450
592
  }
451
593
  }
594
+ async drainPendingPersistence() {
595
+ await this.afterPersistence(() => {});
596
+ }
597
+ async close() {
598
+ this.closed = true;
599
+ await this.drainPendingPersistence();
600
+ }
452
601
  buildCryptoCallbacks() {
602
+ const getSecretStorageKey = ({ keys }) => this.afterPersistence(async () => {
603
+ if (this.closed) return null;
604
+ const requestedKeyIds = Object.keys(keys ?? {});
605
+ if (requestedKeyIds.length === 0) return null;
606
+ const staged = this.resolveStagedSecretStorageKey(requestedKeyIds);
607
+ if (staged) return staged;
608
+ for (const keyId of requestedKeyIds) {
609
+ const cached = this.secretStorageKeyCache.get(keyId);
610
+ if (cached) return [keyId, new Uint8Array(cached.key)];
611
+ }
612
+ const pending = this.pendingPersistence;
613
+ const stored = await this.loadStoredRecoveryKey();
614
+ if (this.closed) return null;
615
+ if (pending !== this.pendingPersistence) return getSecretStorageKey({ keys });
616
+ if (!stored?.privateKeyBase64) return null;
617
+ const privateKey = new Uint8Array(Buffer.from(stored.privateKeyBase64, "base64"));
618
+ if (privateKey.length === 0) return null;
619
+ if (stored.keyId && requestedKeyIds.includes(stored.keyId)) {
620
+ this.rememberSecretStorageKey(stored.keyId, privateKey, stored.keyInfo);
621
+ return [stored.keyId, privateKey];
622
+ }
623
+ const firstRequestedKeyId = requestedKeyIds[0];
624
+ if (!firstRequestedKeyId) return null;
625
+ this.rememberSecretStorageKey(firstRequestedKeyId, privateKey, stored.keyInfo);
626
+ return [firstRequestedKeyId, privateKey];
627
+ });
453
628
  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
- },
629
+ getSecretStorageKey,
476
630
  cacheSecretStorageKey: (keyId, keyInfo, key) => {
631
+ if (this.closed) return;
477
632
  const privateKey = new Uint8Array(key);
478
633
  const normalizedKeyInfo = {
479
634
  passphrase: keyInfo?.passphrase,
480
635
  name: typeof keyInfo?.name === "string" ? keyInfo.name : void 0
481
636
  };
482
637
  this.rememberSecretStorageKey(keyId, privateKey, normalizedKeyInfo);
483
- const stored = this.loadStoredRecoveryKey();
484
638
  this.saveRecoveryKeyToDisk({
485
639
  keyId,
486
640
  keyInfo: normalizedKeyInfo,
487
- privateKey,
488
- encodedPrivateKey: stored?.encodedPrivateKey
489
- });
641
+ privateKey
642
+ }, true);
490
643
  }
491
644
  };
492
645
  }
493
- getRecoveryKeySummary() {
494
- const stored = this.loadStoredRecoveryKey();
646
+ async getRecoveryKeySummary() {
647
+ const stored = await this.afterPersistence(() => this.loadStoredRecoveryKey());
495
648
  if (!stored) return null;
496
649
  return {
497
650
  encodedPrivateKey: stored.encodedPrivateKey,
@@ -500,16 +653,22 @@ var MatrixRecoveryKeyStore = class {
500
653
  };
501
654
  }
502
655
  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;
656
+ return this.afterPersistence(async () => {
657
+ if (this.closed) return null;
658
+ const normalizedKeyId = keyId.trim();
659
+ if (!normalizedKeyId) return null;
660
+ const staged = this.resolveStagedSecretStorageKey([normalizedKeyId]);
661
+ if (staged) return staged[1];
662
+ const pending = this.pendingPersistence;
663
+ const stored = await this.loadStoredRecoveryKey();
664
+ if (this.closed) return null;
665
+ if (pending !== this.pendingPersistence) return this.getSecretStorageKeyCandidate(keyId);
666
+ if (!stored?.privateKeyBase64) return null;
667
+ const privateKey = new Uint8Array(Buffer.from(stored.privateKeyBase64, "base64"));
668
+ if (privateKey.length === 0) return null;
669
+ this.rememberSecretStorageKey(normalizedKeyId, privateKey, stored.keyInfo);
670
+ return privateKey;
671
+ });
513
672
  }
514
673
  resolveEncodedRecoveryKeyInput(params) {
515
674
  const encodedPrivateKey = params.encodedPrivateKey.trim();
@@ -525,54 +684,52 @@ var MatrixRecoveryKeyStore = class {
525
684
  encodedPrivateKey,
526
685
  privateKey,
527
686
  keyId,
528
- keyInfo: params.keyInfo ?? this.loadStoredRecoveryKey()?.keyInfo
687
+ keyInfo: params.keyInfo
529
688
  };
530
689
  }
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
690
  stageEncodedRecoveryKey(params) {
543
691
  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
- };
692
+ return this.enqueuePersistence(async () => {
693
+ const keyInfo = prepared.keyInfo ?? (await this.loadStoredRecoveryKey())?.keyInfo;
694
+ this.clearStagedCache();
695
+ this.stagedRecoveryKey = {
696
+ version: 1,
697
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
698
+ keyId: prepared.keyId,
699
+ encodedPrivateKey: prepared.encodedPrivateKey,
700
+ privateKeyBase64: Buffer.from(prepared.privateKey).toString("base64"),
701
+ keyInfo
702
+ };
703
+ });
553
704
  }
554
705
  hasStagedRecoveryKeyBeenUsed() {
555
706
  return this.stagedRecoveryKeyUsed;
556
707
  }
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
708
+ async commitStagedRecoveryKey(params) {
709
+ await this.enqueuePersistence(async () => {
710
+ if (!this.stagedRecoveryKey) return;
711
+ const staged = this.stagedRecoveryKey;
712
+ const privateKey = new Uint8Array(Buffer.from(staged.privateKeyBase64, "base64"));
713
+ const keyId = typeof params?.keyId === "string" && params.keyId.trim() ? params.keyId.trim() : staged.keyId;
714
+ await this.persistRecoveryKey({
715
+ keyId,
716
+ keyInfo: params?.keyInfo ?? staged.keyInfo,
717
+ privateKey,
718
+ encodedPrivateKey: staged.encodedPrivateKey
719
+ });
720
+ this.clearStagedRecoveryKeyTracking();
567
721
  });
568
- this.clearStagedRecoveryKeyTracking();
569
722
  return this.getRecoveryKeySummary();
570
723
  }
571
724
  discardStagedRecoveryKey() {
725
+ return this.enqueuePersistence(async () => this.clearStagedCache());
726
+ }
727
+ clearStagedCache() {
572
728
  for (const keyId of this.stagedCacheKeyIds) this.secretStorageKeyCache.delete(keyId);
573
729
  this.clearStagedRecoveryKeyTracking();
574
730
  }
575
731
  async bootstrapSecretStorageWithRecoveryKey(crypto, options = {}) {
732
+ await this.drainPendingPersistence();
576
733
  let status = null;
577
734
  const getSecretStorageStatus = crypto.getSecretStorageStatus;
578
735
  if (typeof getSecretStorageStatus === "function") try {
@@ -583,7 +740,7 @@ var MatrixRecoveryKeyStore = class {
583
740
  const hasDefaultSecretStorageKey = Boolean(status?.defaultKeyId);
584
741
  const hasKnownInvalidSecrets = Object.values(status?.secretStorageKeyValidityMap ?? {}).some((valid) => !valid);
585
742
  let generatedRecoveryKey = false;
586
- const storedRecovery = this.loadStoredRecoveryKey();
743
+ const storedRecovery = await this.afterPersistence(() => this.loadStoredRecoveryKey());
587
744
  const stagedRecovery = this.stagedRecoveryKey;
588
745
  const sourceRecovery = options.forceNewRecoveryKey === true ? null : stagedRecovery ?? storedRecovery;
589
746
  let recoveryKey = sourceRecovery ? {
@@ -595,7 +752,7 @@ var MatrixRecoveryKeyStore = class {
595
752
  const defaultKeyId = status.defaultKeyId;
596
753
  if (!stagedRecovery) {
597
754
  this.rememberSecretStorageKey(defaultKeyId, recoveryKey.privateKey, recoveryKey.keyInfo);
598
- if (storedRecovery && storedRecovery.keyId !== defaultKeyId) this.saveRecoveryKeyToDisk({
755
+ if (storedRecovery && storedRecovery.keyId !== defaultKeyId) await this.saveRecoveryKeyToDisk({
599
756
  keyId: defaultKeyId,
600
757
  keyInfo: recoveryKey.keyInfo,
601
758
  privateKey: recoveryKey.privateKey,
@@ -610,7 +767,7 @@ var MatrixRecoveryKeyStore = class {
610
767
  }
611
768
  if (typeof crypto.createRecoveryKeyFromPassphrase !== "function") throw new Error("Matrix crypto backend does not support recovery key generation (createRecoveryKeyFromPassphrase missing)");
612
769
  recoveryKey = await crypto.createRecoveryKeyFromPassphrase();
613
- this.saveRecoveryKeyToDisk(recoveryKey);
770
+ await this.saveRecoveryKeyToDisk(recoveryKey);
614
771
  generatedRecoveryKey = true;
615
772
  return recoveryKey;
616
773
  };
@@ -622,16 +779,24 @@ var MatrixRecoveryKeyStore = class {
622
779
  secretStorageOptions.createSecretStorageKey = ensureRecoveryKey;
623
780
  }
624
781
  try {
625
- await crypto.bootstrapSecretStorage(secretStorageOptions);
782
+ try {
783
+ await crypto.bootstrapSecretStorage(secretStorageOptions);
784
+ } finally {
785
+ await this.drainPendingPersistence();
786
+ }
626
787
  } catch (err) {
627
788
  if (!(options.allowSecretStorageRecreateWithoutRecoveryKey === true && hasDefaultSecretStorageKey && isRepairableSecretStorageAccessError(err))) throw err;
628
789
  recoveryKey = null;
629
790
  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
- });
791
+ try {
792
+ await crypto.bootstrapSecretStorage({
793
+ setupNewSecretStorage: true,
794
+ setupNewKeyBackup: options.setupNewKeyBackup === true,
795
+ createSecretStorageKey: ensureRecoveryKey
796
+ });
797
+ } finally {
798
+ await this.drainPendingPersistence();
799
+ }
635
800
  }
636
801
  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
802
  }
@@ -662,17 +827,20 @@ var MatrixRecoveryKeyStore = class {
662
827
  keyInfo
663
828
  });
664
829
  }
665
- loadStoredRecoveryKey() {
666
- if (!this.recoveryKeyPath) return null;
830
+ async loadStoredRecoveryKey() {
831
+ if (!this.recoveryKeyPath || !this.stateRuntime) return null;
667
832
  try {
668
- const stored = readMatrixRecoveryKeyStateForPath(this.recoveryKeyPath);
833
+ const stored = await readMatrixRecoveryKeyStateForPathAsync(this.recoveryKeyPath, this.stateRuntime);
669
834
  if (stored) return stored;
670
835
  } catch {}
671
836
  if (this.legacyRecoveryKeyPathOnMigrationFailure) return readLegacyMatrixRecoveryKeyFile(this.legacyRecoveryKeyPathOnMigrationFailure);
672
837
  return null;
673
838
  }
674
- saveRecoveryKeyToDisk(params) {
675
- if (!this.recoveryKeyPath) return;
839
+ saveRecoveryKeyToDisk(params, preserveEncodedPrivateKey = false) {
840
+ return this.enqueuePersistence(() => this.persistRecoveryKey(params, preserveEncodedPrivateKey));
841
+ }
842
+ async persistRecoveryKey(params, preserveEncodedPrivateKey = false) {
843
+ if (!this.recoveryKeyPath || !this.stateRuntime) return;
676
844
  try {
677
845
  const payload = {
678
846
  version: 1,
@@ -685,9 +853,11 @@ var MatrixRecoveryKeyStore = class {
685
853
  name: params.keyInfo.name
686
854
  } : void 0
687
855
  };
688
- writeMatrixRecoveryKeyStateForPath({
856
+ await writeMatrixRecoveryKeyStateForPathAsync({
689
857
  recoveryKeyPath: this.recoveryKeyPath,
690
- payload
858
+ payload,
859
+ stateRuntime: this.stateRuntime,
860
+ preserveEncodedPrivateKey
691
861
  });
692
862
  } catch (err) {
693
863
  LogService.warn("MatrixClientLite", "Failed to persist recovery key:", err);
@@ -695,28 +865,60 @@ var MatrixRecoveryKeyStore = class {
695
865
  }
696
866
  };
697
867
  //#endregion
868
+ //#region extensions/matrix/src/matrix/sdk/send-scheduler.ts
869
+ /** Keep SDK FIFO/backoff while settling a caller's pre-request rejection only for its event. */
870
+ var MatrixSendScheduler = class extends MatrixScheduler {
871
+ constructor(wasCurrentnessRejected) {
872
+ super();
873
+ this.wasCurrentnessRejected = wasCurrentnessRejected;
874
+ this.queue = new MatrixScheduler();
875
+ }
876
+ setProcessFunction(processEvent) {
877
+ this.queue.setProcessFunction(async (event) => {
878
+ try {
879
+ return {
880
+ kind: "sent",
881
+ result: await withoutMatrixSendCurrentness(() => processEvent(event))
882
+ };
883
+ } catch (error) {
884
+ if (!this.wasCurrentnessRejected(event)) throw error;
885
+ return {
886
+ kind: "rejected",
887
+ error
888
+ };
889
+ }
890
+ });
891
+ }
892
+ queueEvent(event) {
893
+ const queued = this.queue.queueEvent(event);
894
+ return queued ? queued.then((outcome) => {
895
+ if (outcome.kind === "rejected") throw outcome.error;
896
+ return outcome.result;
897
+ }) : null;
898
+ }
899
+ getQueueForEvent(event) {
900
+ return this.queue.getQueueForEvent(event);
901
+ }
902
+ removeEventFromQueue(event) {
903
+ return this.queue.removeEventFromQueue(event);
904
+ }
905
+ };
906
+ //#endregion
698
907
  //#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
- }
908
+ const MATRIX_ENCRYPTED_STARTUP_TIMEOUT_MS = 6e4;
714
909
  let loadedMatrixCryptoRuntime = null;
715
- const loadMatrixCryptoRuntime = createLazyRuntimeModule(() => import("./crypto-runtime-BvunIYVn.js").then((runtime) => {
910
+ const loadMatrixCryptoRuntime = createLazyRuntimeModule(() => import("./crypto-runtime-9oxuU30y.mjs").then((runtime) => {
716
911
  loadedMatrixCryptoRuntime = runtime;
717
912
  return runtime;
718
913
  }));
719
914
  var MatrixClientBase = class {
915
+ withClientCryptoWork(run, requestSignal) {
916
+ this.assertClientActive();
917
+ return withoutMatrixSendCurrentness(() => this.cryptoRequestOwner.run({
918
+ callerAuthority: captureChannelReadAuthority(),
919
+ requestSignal
920
+ }, run));
921
+ }
720
922
  constructor(homeserver, accessToken, opts = {}) {
721
923
  this.emitter = new EventEmitter();
722
924
  this.bridgeRegistered = false;
@@ -732,11 +934,23 @@ var MatrixClientBase = class {
732
934
  this.currentSyncError = void 0;
733
935
  this.transactionScopeId = null;
734
936
  this.transactionScopePromise = null;
735
- this.messageWireDispatchGuards = /* @__PURE__ */ new Map();
937
+ this.messageWireDispatchGuards = new MatrixMessageWireDispatchGuards();
938
+ this.requestAbortController = new AbortController();
939
+ this.cryptoRequestOwner = new AsyncLocalStorage();
940
+ this.startupPromise = null;
941
+ this.cryptoInitializationPromise = null;
736
942
  this.sdkStopped = false;
737
943
  this.stopDiscardPromise = null;
738
944
  this.idbPersistPromise = null;
739
945
  this.idbPersistAbortController = null;
946
+ this.assertClientActive = () => {
947
+ this.requestAbortController.signal.throwIfAborted();
948
+ };
949
+ this.captureRequestAuthority = () => {
950
+ const readAuthority = captureChannelReadAuthority();
951
+ const cryptoOwner = this.cryptoRequestOwner.getStore();
952
+ return cryptoOwner && cryptoOwner.callerAuthority === readAuthority ? this.assertClientActive : readAuthority;
953
+ };
740
954
  this.dms = {
741
955
  update: async () => {
742
956
  return await this.refreshDmCache();
@@ -751,7 +965,10 @@ var MatrixClientBase = class {
751
965
  homeserver,
752
966
  accessToken,
753
967
  ssrfPolicy: opts.ssrfPolicy,
754
- dispatcherPolicy: opts.dispatcherPolicy
968
+ dispatcherPolicy: opts.dispatcherPolicy,
969
+ captureRequestAuthority: this.captureRequestAuthority,
970
+ captureSendCurrentness: () => captureMatrixSendCurrentness(this),
971
+ signal: this.requestAbortController.signal
755
972
  });
756
973
  this.localTimeoutMs = resolveMatrixLocalTimeoutMs(opts.localTimeoutMs);
757
974
  this.initialSyncLimit = opts.initialSyncLimit;
@@ -762,13 +979,22 @@ var MatrixClientBase = class {
762
979
  this.syncStore = opts.storageRootDir ? new SqliteBackedMatrixSyncStore(opts.storageRootDir) : void 0;
763
980
  this.idbSnapshotPath = opts.idbSnapshotPath;
764
981
  this.cryptoDatabasePrefix = opts.cryptoDatabasePrefix;
982
+ this.stateRuntime = opts.stateRuntime;
765
983
  this.selfUserId = opts.userId?.trim() || null;
766
984
  this.autoBootstrapCrypto = opts.autoBootstrapCrypto !== false;
767
- this.recoveryKeyStore = new MatrixRecoveryKeyStore(opts.recoveryKeyPath);
985
+ this.recoveryKeyStore = new MatrixRecoveryKeyStore(opts.recoveryKeyPath, opts.stateRuntime);
768
986
  const cryptoCallbacks = this.encryptionEnabled ? this.recoveryKeyStore.buildCryptoCallbacks() : void 0;
769
987
  const guardedFetch = createMatrixGuardedFetch({
988
+ captureRequestSignal: () => this.cryptoRequestOwner.getStore()?.requestSignal,
770
989
  ssrfPolicy: opts.ssrfPolicy,
771
- dispatcherPolicy: opts.dispatcherPolicy
990
+ dispatcherPolicy: opts.dispatcherPolicy,
991
+ captureRequestAuthority: this.captureRequestAuthority,
992
+ captureSendCurrentness: (resource, init) => this.messageWireDispatchGuards.captureCurrentness(resource, init, captureMatrixSendCurrentness(this)),
993
+ signal: this.requestAbortController.signal,
994
+ beforeRequest: async (resource, init) => {
995
+ await this.recoveryKeyStore.drainPendingPersistence();
996
+ await this.messageWireDispatchGuards.beforeRequest(resource, init);
997
+ }
772
998
  });
773
999
  this.client = createClient({
774
1000
  baseUrl: homeserver,
@@ -777,11 +1003,8 @@ var MatrixClientBase = class {
777
1003
  deviceId: opts.deviceId,
778
1004
  logger: createMatrixJsSdkClientLogger("MatrixClient"),
779
1005
  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
- }),
1006
+ fetchFn: guardedFetch,
1007
+ scheduler: new MatrixSendScheduler((event) => this.messageWireDispatchGuards.wasCurrentnessRejected(event.getTxnId())),
785
1008
  store: this.syncStore,
786
1009
  cryptoCallbacks,
787
1010
  verificationMethods: [
@@ -791,16 +1014,11 @@ var MatrixClientBase = class {
791
1014
  VerificationMethod.Reciprocate
792
1015
  ]
793
1016
  });
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
- }
1017
+ const decryptEventIfNeeded = this.client.decryptEventIfNeeded.bind(this.client);
1018
+ this.client.decryptEventIfNeeded = (event, options) => {
1019
+ this.captureRequestAuthority()?.();
1020
+ return this.withClientCryptoWork(() => decryptEventIfNeeded(event, options));
1021
+ };
804
1022
  }
805
1023
  on(eventName, listener) {
806
1024
  this.emitter.on(eventName, listener);
@@ -841,7 +1059,7 @@ var MatrixClientBase = class {
841
1059
  const defaultKeyId = await secretStorage.getDefaultKeyId();
842
1060
  if (!defaultKeyId) return false;
843
1061
  const keyTuple = await secretStorage.getKey(defaultKeyId);
844
- const key = this.recoveryKeyStore.getSecretStorageKeyCandidate(defaultKeyId);
1062
+ const key = await this.recoveryKeyStore.getSecretStorageKeyCandidate(defaultKeyId);
845
1063
  if (!keyTuple || !key) return false;
846
1064
  const keyInfo = keyTuple[1];
847
1065
  if (!keyInfo.iv?.trim() || !keyInfo.mac?.trim()) return false;
@@ -874,98 +1092,84 @@ var MatrixClientBase = class {
874
1092
  });
875
1093
  }
876
1094
  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?.();
1095
+ await waitForMatrixInitialSyncReady({
1096
+ ...params,
1097
+ emitter: this.emitter,
1098
+ state: this.currentSyncState,
1099
+ error: this.currentSyncError
934
1100
  });
935
1101
  }
936
1102
  async startSyncSession(opts) {
937
1103
  if (this.started) return;
938
1104
  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);
1105
+ const assertCurrent = this.captureRequestAuthority();
1106
+ assertCurrent?.();
1107
+ this.assertClientActive();
1108
+ if (this.startupPromise) {
1109
+ await awaitMatrixStartupWithAbort(this.startupPromise, opts.abortSignal);
1110
+ return;
1111
+ }
1112
+ const deadline = new AbortController();
1113
+ const signal = AbortSignal.any([
1114
+ this.requestAbortController.signal,
1115
+ deadline.signal,
1116
+ ...opts.abortSignal ? [opts.abortSignal] : []
1117
+ ]);
1118
+ const timeout = this.encryptionEnabled ? setTimeout(() => deadline.abort(), opts.readyTimeoutMs ?? MATRIX_ENCRYPTED_STARTUP_TIMEOUT_MS) : void 0;
1119
+ timeout?.unref?.();
1120
+ const checkActive = () => {
1121
+ throwIfMatrixStartupAborted(signal);
1122
+ assertCurrent?.();
1123
+ this.assertClientActive();
1124
+ };
1125
+ const startup = (async () => {
1126
+ throwIfMatrixStartupAborted(signal);
1127
+ await this.ensureCryptoSupportInitialized();
1128
+ checkActive();
1129
+ throwIfMatrixStartupAborted(signal);
1130
+ this.registerBridge();
1131
+ await this.withClientCryptoWork(() => this.initializeCryptoIfNeeded(signal), signal);
1132
+ checkActive();
1133
+ throwIfMatrixStartupAborted(signal);
1134
+ await this.withClientCryptoWork(() => this.client.startClient({
1135
+ initialSyncLimit: this.initialSyncLimit,
1136
+ ...this.syncFilter ? { filter: Filter.fromJson(this.selfUserId, "", this.syncFilter) } : {}
1137
+ }));
1138
+ await this.waitForInitialSyncReady({
1139
+ abortSignal: signal,
1140
+ timeoutMs: opts.readyTimeoutMs
1141
+ });
1142
+ checkActive();
1143
+ throwIfMatrixStartupAborted(signal);
1144
+ if (this.encryptionEnabled && this.cryptoInitialized) {
1145
+ const { reconcileJoinedRoomEncryption } = await import("./joined-room-encryption-BCtxQ3hR.mjs");
1146
+ checkActive();
1147
+ await this.withClientCryptoWork(() => reconcileJoinedRoomEncryption(this.client, signal, checkActive), signal);
1148
+ checkActive();
1149
+ }
1150
+ clearTimeout(timeout);
1151
+ if (opts.bootstrapCrypto && this.autoBootstrapCrypto) await this.bootstrapCryptoIfNeeded(signal);
1152
+ throwIfMatrixStartupAborted(signal);
1153
+ this.started = true;
1154
+ this.emitOutstandingInviteEvents();
1155
+ await this.refreshDmCache().catch(noop);
1156
+ })();
1157
+ this.startupPromise = startup;
1158
+ startup.finally(() => {
1159
+ clearTimeout(timeout);
1160
+ if (this.startupPromise === startup) this.startupPromise = null;
1161
+ }).catch(noop);
1162
+ await awaitMatrixStartupWithAbort(startup, signal);
959
1163
  }
960
1164
  async prepareForOneOff() {
1165
+ const assertCurrent = this.captureRequestAuthority();
1166
+ assertCurrent?.();
1167
+ this.assertClientActive();
961
1168
  if (!this.encryptionEnabled) return;
962
1169
  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 {}
1170
+ assertCurrent?.();
1171
+ await this.withClientCryptoWork(() => this.initializeCryptoIfNeeded());
1172
+ assertCurrent?.();
969
1173
  }
970
1174
  hasPersistedSyncState() {
971
1175
  return this.syncStore?.hasSavedSyncFromCleanShutdown() === true;
@@ -978,8 +1182,8 @@ var MatrixClientBase = class {
978
1182
  if (this.sdkStopped) return;
979
1183
  this.currentSyncState = null;
980
1184
  this.currentSyncError = void 0;
981
- this.client.stopClient();
982
1185
  this.sdkStopped = true;
1186
+ this.client.stopClient();
983
1187
  this.started = false;
984
1188
  }
985
1189
  async quiesceSync() {
@@ -995,34 +1199,44 @@ var MatrixClientBase = class {
995
1199
  await this.syncQuiescePromise;
996
1200
  }
997
1201
  async drainPendingDecryptions(reason = "matrix client shutdown") {
998
- await this.decryptBridge?.drainPendingDecryptions(reason);
1202
+ await this.withClientCryptoWork(() => this.decryptBridge?.drainPendingDecryptions(reason));
999
1203
  }
1000
1204
  stop() {
1001
1205
  this.stopAndPersist().catch(() => this.stopWithoutPersist()).catch(noop);
1002
1206
  }
1003
1207
  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);
1208
+ try {
1209
+ if (persist) await this.quiesceSync();
1210
+ else {
1211
+ await this.quiesceSync().catch(noop);
1212
+ this.syncStore?.discardPendingSyncCursorPersistence();
1213
+ }
1214
+ this.requestAbortController.abort(/* @__PURE__ */ new Error("Matrix client generation is no longer active."));
1215
+ await this.startupPromise?.catch(noop);
1216
+ await this.cryptoInitializationPromise?.catch(noop);
1217
+ clearInterval(this.idbPersistTimer ?? void 0);
1011
1218
  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();
1219
+ this.idbPersistAbortController?.abort();
1220
+ const activePeriodicPersist = this.idbPersistPromise;
1221
+ try {
1222
+ this.stopSdkClient();
1223
+ this.decryptBridge?.stop();
1224
+ } finally {
1225
+ this.cryptoRequestOwner.disable();
1226
+ }
1227
+ await Promise.all([this.recoveryKeyStore.close(), activePeriodicPersist]);
1228
+ if (persist) {
1229
+ await (loadedMatrixCryptoRuntime ?? await loadMatrixCryptoRuntime()).persistIdbToDisk({
1230
+ snapshotPath: this.idbSnapshotPath,
1231
+ databasePrefix: this.cryptoDatabasePrefix,
1232
+ strict: true,
1233
+ stateRuntime: this.stateRuntime
1234
+ });
1235
+ this.syncStore?.markCleanShutdown();
1236
+ await this.syncStore?.flush();
1237
+ }
1238
+ } finally {
1239
+ await this.recoveryKeyStore.close();
1026
1240
  }
1027
1241
  }
1028
1242
  async stopAndPersist() {
@@ -1056,10 +1270,25 @@ var MatrixClientBase = class {
1056
1270
  this.cryptoBootstrapped = true;
1057
1271
  }
1058
1272
  async initializeCryptoIfNeeded(abortSignal) {
1059
- if (!this.encryptionEnabled || this.cryptoInitialized) return;
1273
+ if (!this.encryptionEnabled) return;
1274
+ if (this.cryptoInitializationPromise) {
1275
+ await this.cryptoInitializationPromise;
1276
+ throwIfMatrixStartupAborted(abortSignal);
1277
+ return;
1278
+ }
1279
+ if (this.cryptoInitialized) return;
1280
+ const initialization = this.initializeCrypto(abortSignal ? AbortSignal.any([abortSignal, this.requestAbortController.signal]) : this.requestAbortController.signal);
1281
+ this.cryptoInitializationPromise = initialization;
1282
+ try {
1283
+ await initialization;
1284
+ } finally {
1285
+ if (this.cryptoInitializationPromise === initialization) this.cryptoInitializationPromise = null;
1286
+ }
1287
+ }
1288
+ async initializeCrypto(abortSignal) {
1060
1289
  throwIfMatrixStartupAborted(abortSignal);
1061
1290
  const { persistIdbToDisk, restoreIdbFromDisk } = await loadMatrixCryptoRuntime();
1062
- await restoreIdbFromDisk(this.idbSnapshotPath);
1291
+ await restoreIdbFromDisk(this.idbSnapshotPath, this.stateRuntime);
1063
1292
  throwIfMatrixStartupAborted(abortSignal);
1064
1293
  try {
1065
1294
  await this.client.initRustCrypto({ cryptoDatabasePrefix: this.cryptoDatabasePrefix });
@@ -1068,7 +1297,8 @@ var MatrixClientBase = class {
1068
1297
  await persistIdbToDisk({
1069
1298
  snapshotPath: this.idbSnapshotPath,
1070
1299
  databasePrefix: this.cryptoDatabasePrefix,
1071
- abortSignal
1300
+ abortSignal,
1301
+ stateRuntime: this.stateRuntime
1072
1302
  });
1073
1303
  throwIfMatrixStartupAborted(abortSignal);
1074
1304
  this.idbPersistTimer = setInterval(() => {
@@ -1078,7 +1308,8 @@ var MatrixClientBase = class {
1078
1308
  this.idbPersistPromise = persistIdbToDisk({
1079
1309
  snapshotPath: this.idbSnapshotPath,
1080
1310
  databasePrefix: this.cryptoDatabasePrefix,
1081
- abortSignal: abortController.signal
1311
+ abortSignal: abortController.signal,
1312
+ stateRuntime: this.stateRuntime
1082
1313
  }).catch(noop).finally(() => {
1083
1314
  this.idbPersistPromise = null;
1084
1315
  this.idbPersistAbortController = null;
@@ -1117,8 +1348,9 @@ var MatrixClientCore = class extends MatrixClientBase {
1117
1348
  return Array.isArray(joined.joined_rooms) ? joined.joined_rooms : [];
1118
1349
  }
1119
1350
  async getTransactionScopeId() {
1351
+ captureMatrixSendCurrentness(this)?.();
1120
1352
  if (this.transactionScopeId) return this.transactionScopeId;
1121
- const active = this.transactionScopePromise ?? (async () => {
1353
+ const active = this.transactionScopePromise ?? withoutMatrixSendCurrentness(async () => {
1122
1354
  const configuredUserId = this.client.getUserId()?.trim() || this.selfUserId;
1123
1355
  const configuredDeviceId = this.transactionScopeDeviceId || this.client.getDeviceId()?.trim() || null;
1124
1356
  const whoami = await this.doRequest("GET", "/_matrix/client/v3/account/whoami");
@@ -1130,7 +1362,7 @@ var MatrixClientCore = class extends MatrixClientBase {
1130
1362
  this.selfUserId = userId;
1131
1363
  this.transactionScopeDeviceId = deviceId;
1132
1364
  return createHash("sha256").update(this.transactionScopeHomeserver).update("\0").update(userId).update("\0").update(deviceId ?? "").update("\0").update(this.transactionScopeAccessTokenHash).digest("hex");
1133
- })();
1365
+ });
1134
1366
  this.transactionScopePromise = active;
1135
1367
  try {
1136
1368
  const resolved = await active;
@@ -1181,14 +1413,17 @@ var MatrixClientCore = class extends MatrixClientBase {
1181
1413
  })).room_id;
1182
1414
  }
1183
1415
  async sendMessage(roomId, content, transactionId, beforeWireDispatch) {
1416
+ const assertCurrent = captureMatrixSendCurrentness(this);
1417
+ const wireTransactionId = transactionId ?? (beforeWireDispatch || assertCurrent ? this.client.makeTxnId() : void 0);
1184
1418
  return await this.runSerializedRoomSend(roomId, async () => {
1185
- return await this.withMessageWireDispatchGuard({
1186
- transactionId,
1419
+ return await this.messageWireDispatchGuards.run({
1420
+ transactionId: wireTransactionId,
1187
1421
  guard: beforeWireDispatch,
1422
+ assertCurrent,
1188
1423
  run: async () => {
1189
- if (transactionId) {
1424
+ if (wireTransactionId) {
1190
1425
  const room = this.client.getRoom(roomId);
1191
- const existing = room?.getEventForTxnId?.(transactionId);
1426
+ const existing = room?.getEventForTxnId?.(wireTransactionId);
1192
1427
  if (existing) {
1193
1428
  const existingId = existing.getId();
1194
1429
  if (existing.status === EventStatus.SENT && existingId && !existingId.startsWith("~")) return existingId;
@@ -1196,11 +1431,11 @@ var MatrixClientCore = class extends MatrixClientBase {
1196
1431
  await this.prepareRoomForMessageSend(roomId, existing.getContent());
1197
1432
  return (await this.client.resendEvent(existing, room)).event_id;
1198
1433
  }
1199
- throw new Error(`Matrix transaction ${transactionId} is already active with status ${existing.status ?? "unknown"}`);
1434
+ throw new Error(`Matrix transaction ${wireTransactionId} is already active with status ${existing.status ?? "unknown"}`);
1200
1435
  }
1201
1436
  }
1202
1437
  await this.prepareRoomForMessageSend(roomId, content);
1203
- return (await this.client.sendMessage(roomId, content, transactionId)).event_id;
1438
+ return (await this.client.sendMessage(roomId, content, wireTransactionId)).event_id;
1204
1439
  }
1205
1440
  });
1206
1441
  });
@@ -1348,6 +1583,9 @@ var MatrixClientCore = class extends MatrixClientBase {
1348
1583
  //#region extensions/matrix/src/matrix/sdk/client-verification.ts
1349
1584
  const normalizeNullableVerificationString = normalizeNullableString;
1350
1585
  var MatrixClientVerification = class extends MatrixClientCore {
1586
+ async refreshOwnDeviceKeys() {
1587
+ await this.client.getCrypto()?.userHasCrossSigningKeys(await this.getUserId(), true);
1588
+ }
1351
1589
  async getRoomKeyBackupStatus() {
1352
1590
  if (!this.encryptionEnabled) return {
1353
1591
  serverVersion: null,
@@ -1427,7 +1665,7 @@ var MatrixClientVerification = class extends MatrixClientCore {
1427
1665
  };
1428
1666
  }
1429
1667
  async getOwnDeviceVerificationStatus() {
1430
- const recoveryKey = this.recoveryKeyStore.getRecoveryKeySummary();
1668
+ const recoveryKey = await this.recoveryKeyStore.getRecoveryKeySummary();
1431
1669
  const userId = this.client.getUserId() ?? this.selfUserId ?? null;
1432
1670
  const deviceId = this.client.getDeviceId()?.trim() || null;
1433
1671
  const diagnosticTimeoutMs = Math.min(this.localTimeoutMs, MATRIX_STATUS_DIAGNOSTIC_TIMEOUT_MS);
@@ -1582,22 +1820,22 @@ var MatrixClient = class extends MatrixClientVerification {
1582
1820
  let stagedKeyId;
1583
1821
  try {
1584
1822
  stagedKeyId = await this.resolveDefaultSecretStorageKeyId(crypto) ?? null;
1585
- this.recoveryKeyStore.stageEncodedRecoveryKey({
1823
+ await this.recoveryKeyStore.stageEncodedRecoveryKey({
1586
1824
  encodedPrivateKey: trimmedRecoveryKey,
1587
1825
  keyId: stagedKeyId
1588
1826
  });
1589
1827
  } catch (err) {
1590
1828
  return await fail(formatErrorMessage(err));
1591
1829
  }
1592
- const storedRecoveryKeyMatches = this.recoveryKeyStore.getRecoveryKeySummary()?.encodedPrivateKey?.trim() === trimmedRecoveryKey;
1830
+ const storedRecoveryKeyMatches = (await this.recoveryKeyStore.getRecoveryKeySummary())?.encodedPrivateKey?.trim() === trimmedRecoveryKey;
1593
1831
  if (backupUsableBeforeStagedRecovery && storedRecoveryKeyMatches) {
1594
1832
  const status = await this.getOwnDeviceVerificationStatus();
1595
1833
  const backupUsable = resolveMatrixRoomKeyBackupReadinessError(status.backup, { requireServerBackup: true }) === null;
1596
1834
  const backupError = resolveMatrixRoomKeyBackupReadinessError(status.backup, { requireServerBackup: false });
1597
1835
  const recoveryKeyAccepted = backupUsable;
1598
1836
  if (!status.verified) {
1599
- if (recoveryKeyAccepted) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1600
- else this.recoveryKeyStore.discardStagedRecoveryKey();
1837
+ if (recoveryKeyAccepted) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1838
+ else await this.recoveryKeyStore.discardStagedRecoveryKey();
1601
1839
  return {
1602
1840
  success: false,
1603
1841
  recoveryKeyAccepted,
@@ -1608,7 +1846,7 @@ var MatrixClient = class extends MatrixClientVerification {
1608
1846
  };
1609
1847
  }
1610
1848
  if (backupError) {
1611
- this.recoveryKeyStore.discardStagedRecoveryKey();
1849
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1612
1850
  return {
1613
1851
  success: false,
1614
1852
  recoveryKeyAccepted,
@@ -1618,7 +1856,7 @@ var MatrixClient = class extends MatrixClientVerification {
1618
1856
  ...status
1619
1857
  };
1620
1858
  }
1621
- this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1859
+ await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1622
1860
  return {
1623
1861
  success: true,
1624
1862
  recoveryKeyAccepted: true,
@@ -1643,8 +1881,8 @@ var MatrixClient = class extends MatrixClientVerification {
1643
1881
  const stagedRecoveryKeyValidated = stagedRecoveryKeyUsed && (stagedRecoveryKeyConfirmedBySecretStorage || stagedRecoveryKeyUsed && !stagedRecoveryKeyRejectedBySecretStorage && !stagedRecoveryKeyConfirmedBySecretStorage && !backupUsableBeforeStagedRecovery && backupUsable) || storedRecoveryKeyMatches && backupUsable;
1644
1882
  const recoveryKeyAccepted = stagedRecoveryKeyValidated && (status.verified || backupUsable);
1645
1883
  if (!status.verified) {
1646
- if (backupUsable && stagedRecoveryKeyValidated) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1647
- else this.recoveryKeyStore.discardStagedRecoveryKey();
1884
+ if (backupUsable && stagedRecoveryKeyValidated) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1885
+ else await this.recoveryKeyStore.discardStagedRecoveryKey();
1648
1886
  return {
1649
1887
  success: false,
1650
1888
  recoveryKeyAccepted,
@@ -1655,7 +1893,7 @@ var MatrixClient = class extends MatrixClientVerification {
1655
1893
  };
1656
1894
  }
1657
1895
  if (backupError) {
1658
- this.recoveryKeyStore.discardStagedRecoveryKey();
1896
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1659
1897
  return {
1660
1898
  success: false,
1661
1899
  recoveryKeyAccepted,
@@ -1666,7 +1904,7 @@ var MatrixClient = class extends MatrixClientVerification {
1666
1904
  };
1667
1905
  }
1668
1906
  if (!stagedRecoveryKeyValidated) {
1669
- this.recoveryKeyStore.discardStagedRecoveryKey();
1907
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1670
1908
  return {
1671
1909
  success: false,
1672
1910
  recoveryKeyAccepted: false,
@@ -1676,7 +1914,7 @@ var MatrixClient = class extends MatrixClientVerification {
1676
1914
  ...status
1677
1915
  };
1678
1916
  }
1679
- this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1917
+ await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: stagedKeyId });
1680
1918
  const committedStatus = await this.getOwnDeviceVerificationStatus();
1681
1919
  return {
1682
1920
  success: true,
@@ -1687,7 +1925,7 @@ var MatrixClient = class extends MatrixClientVerification {
1687
1925
  ...committedStatus
1688
1926
  };
1689
1927
  } catch (err) {
1690
- this.recoveryKeyStore.discardStagedRecoveryKey();
1928
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1691
1929
  return await fail(formatErrorMessage(err));
1692
1930
  }
1693
1931
  }
@@ -1711,7 +1949,7 @@ var MatrixClient = class extends MatrixClientVerification {
1711
1949
  if (!crypto) return await fail("Matrix crypto is not available (start client with encryption enabled)");
1712
1950
  try {
1713
1951
  const rawRecoveryKey = params.recoveryKey?.trim();
1714
- if (rawRecoveryKey) this.recoveryKeyStore.stageEncodedRecoveryKey({
1952
+ if (rawRecoveryKey) await this.recoveryKeyStore.stageEncodedRecoveryKey({
1715
1953
  encodedPrivateKey: rawRecoveryKey,
1716
1954
  keyId: await this.resolveDefaultSecretStorageKeyId(crypto)
1717
1955
  });
@@ -1722,15 +1960,15 @@ var MatrixClient = class extends MatrixClientVerification {
1722
1960
  requireServerBackup: true
1723
1961
  });
1724
1962
  if (backupError) {
1725
- this.recoveryKeyStore.discardStagedRecoveryKey();
1963
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1726
1964
  return await fail(backupError);
1727
1965
  }
1728
1966
  if (typeof crypto.restoreKeyBackup !== "function") {
1729
- this.recoveryKeyStore.discardStagedRecoveryKey();
1967
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1730
1968
  return await fail("Matrix crypto backend does not support full key backup restore");
1731
1969
  }
1732
1970
  const restore = await crypto.restoreKeyBackup();
1733
- if (rawRecoveryKey) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(crypto) });
1971
+ if (rawRecoveryKey) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(crypto) });
1734
1972
  const finalBackup = await this.getRoomKeyBackupStatus();
1735
1973
  return {
1736
1974
  success: true,
@@ -1742,7 +1980,7 @@ var MatrixClient = class extends MatrixClientVerification {
1742
1980
  backup: finalBackup
1743
1981
  };
1744
1982
  } catch (err) {
1745
- this.recoveryKeyStore.discardStagedRecoveryKey();
1983
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1746
1984
  return await fail(formatErrorMessage(err));
1747
1985
  }
1748
1986
  }
@@ -1764,6 +2002,7 @@ var MatrixClient = class extends MatrixClientVerification {
1764
2002
  await this.ensureStartedForCryptoControlPlane();
1765
2003
  const crypto = this.client.getCrypto();
1766
2004
  if (!crypto) return await fail("Matrix crypto is not available (start client with encryption enabled)");
2005
+ await this.recoveryKeyStore.drainPendingPersistence();
1767
2006
  previousVersion = await this.resolveRoomKeyBackupVersion();
1768
2007
  const forceNewSecretStorage = options.rotateRecoveryKey === true || await this.shouldForceSecretStorageRecreationForBackupReset(crypto);
1769
2008
  try {
@@ -1827,7 +2066,7 @@ var MatrixClient = class extends MatrixClientVerification {
1827
2066
  const crypto = this.client.getCrypto();
1828
2067
  if (!crypto) throw new Error("Matrix crypto is not available (start client with encryption enabled)");
1829
2068
  rawRecoveryKey = params?.recoveryKey?.trim();
1830
- if (rawRecoveryKey) this.recoveryKeyStore.stageEncodedRecoveryKey({
2069
+ if (rawRecoveryKey) await this.recoveryKeyStore.stageEncodedRecoveryKey({
1831
2070
  encodedPrivateKey: rawRecoveryKey,
1832
2071
  keyId: await this.resolveDefaultSecretStorageKeyId(crypto)
1833
2072
  });
@@ -1839,7 +2078,7 @@ var MatrixClient = class extends MatrixClientVerification {
1839
2078
  }));
1840
2079
  await this.ensureRoomKeyBackupEnabled(crypto);
1841
2080
  } catch (err) {
1842
- this.recoveryKeyStore.discardStagedRecoveryKey();
2081
+ await this.recoveryKeyStore.discardStagedRecoveryKey();
1843
2082
  bootstrapError = formatErrorMessage(err);
1844
2083
  }
1845
2084
  const verification = await this.getOwnDeviceVerificationStatus();
@@ -1850,8 +2089,8 @@ var MatrixClient = class extends MatrixClientVerification {
1850
2089
  requireServerBackup: true
1851
2090
  }) : null;
1852
2091
  const success = verificationError === null && backupError === null;
1853
- if (success) this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(this.client.getCrypto()) });
1854
- else this.recoveryKeyStore.discardStagedRecoveryKey();
2092
+ if (success) await this.recoveryKeyStore.commitStagedRecoveryKey({ keyId: await this.resolveDefaultSecretStorageKeyId(this.client.getCrypto()) });
2093
+ else await this.recoveryKeyStore.discardStagedRecoveryKey();
1855
2094
  return {
1856
2095
  success,
1857
2096
  error: success ? void 0 : backupError ?? verificationError ?? void 0,