@openclaw/matrix 2026.9.4 → 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.
- package/assets/activity.svg +40 -0
- package/assets/icon.png +0 -0
- package/dist/{account-selection-Bbtc483D.js → .setup/account-selection-5koohRSQ.mjs} +2 -2
- package/dist/{accounts-GwSAk9vY.js → .setup/accounts-BF5hyc-1.mjs} +3 -3
- package/dist/{approval-handler.runtime-6I3IpyeX.js → .setup/approval-handler.runtime-CoZCYGUH.mjs} +14 -13
- package/dist/{approval-ids-C4NdeXNz.js → .setup/approval-ids-CZOcdJ-5.mjs} +1 -1
- package/dist/{approval-reaction-auth-cbltZAUQ.js → .setup/approval-reaction-auth-B51E4ZDa.mjs} +2 -2
- package/dist/{approval-reactions-1fwEhoK9.js → .setup/approval-reactions-B0hfA6qz.mjs} +6 -6
- package/dist/{channel-Cg97H4c1.js → .setup/channel-q6TBKEiG.mjs} +25 -17
- package/dist/{channel.runtime-Bhpfa1qc.js → .setup/channel.runtime-DcDBdxe6.mjs} +6 -6
- package/dist/{channel.setup-DmS7m7aT.js → .setup/channel.setup-DZQ5rf9k.mjs} +9 -5
- package/dist/{cli-CLexRrQw.js → .setup/cli-Cx_cNaXN.mjs} +16 -16
- package/dist/{cli-metadata-zRyVmUOL.js → .setup/cli-metadata-DHU1H-Vr.mjs} +1 -1
- package/dist/{client-C0nZFCTj.js → .setup/client-By2B3Wz4.mjs} +5 -3
- package/dist/{client-CPcRv6ab.js → .setup/client-DsJUnWlV.mjs} +95 -93
- package/dist/{client-bootstrap-DLN-K8Xb.js → .setup/client-bootstrap-DGX0f-4x.mjs} +17 -8
- package/dist/{client-support-DLj4vDeu.js → .setup/client-support-Bn9Bk0-H.mjs} +1 -1
- package/dist/{config-update-BnX26jCO.js → .setup/config-update-B_4qZ5bV.mjs} +3 -3
- package/dist/.setup/create-client-DQXAZjTw.mjs +61 -0
- package/dist/{credentials-DysXbkv2.js → .setup/credentials-CeRipapZ.mjs} +40 -17
- package/dist/{credentials-read-WWpqi88V.js → .setup/credentials-read-Dp7BoEdm.mjs} +22 -9
- package/dist/{credentials-write.runtime-D22lPwRO.js → .setup/credentials-write.runtime-M_bUf3rL.mjs} +1 -1
- package/dist/{crypto-runtime-DiyH4R3D.js → .setup/crypto-runtime-9oxuU30y.mjs} +5 -6
- package/dist/{crypto-snapshot-doctor.runtime-DxgUMXUy.js → .setup/crypto-snapshot-doctor.runtime-DXpLbQ7y.mjs} +3 -3
- package/dist/{device-health-B4-YXtJR.js → .setup/device-health-CWOuIirq.mjs} +1 -1
- package/dist/.setup/direct-management-B2Bno2xL.mjs +346 -0
- package/dist/{directory-live-B8-GAVcc.js → .setup/directory-live-CatwztQc.mjs} +8 -6
- package/dist/{doctor-CJE8wO6y.js → .setup/doctor-BLCvdOFo.mjs} +1 -1
- package/dist/{draft-stream--NdEtnZ8.js → .setup/draft-stream-DIFZDNrb.mjs} +2 -2
- package/dist/{encryption-guidance-mDyxJV9U.js → .setup/encryption-guidance-DYEbeYj-.mjs} +2 -2
- package/dist/{http-client-BfPeF4CE.js → .setup/http-client-BJjo-iw5.mjs} +75 -9
- package/dist/{idb-persistence-DBdwHSWg.js → .setup/idb-persistence-CIfFUjP3.mjs} +12 -8
- package/dist/{inbound-dedupe-Ch33GU06.js → .setup/inbound-dedupe-BSlv35xl.mjs} +1 -1
- package/dist/.setup/joined-room-encryption-BCtxQ3hR.mjs +67 -0
- package/dist/{logger-B_71hN6W.js → .setup/logger-xBjiRIp1.mjs} +1 -1
- package/dist/{logging-DRjvUOIh.js → .setup/logging-rgm8ep9H.mjs} +2 -2
- package/dist/{messages-CpZfiQO0.js → .setup/messages-SW0NPYnR.mjs} +4 -4
- package/dist/{monitor-BUek91SW.js → .setup/monitor-DQfYX5rA.mjs} +118 -264
- package/dist/{outbound-D91JinYa.js → .setup/outbound-DRWtSUe-.mjs} +12 -4
- package/dist/.setup/probe.runtime-qPRZE3Yf.mjs +2 -0
- package/dist/{profile-vmjsmhh4.js → .setup/profile-ClrB3IgR.mjs} +1 -1
- package/dist/{profile-update-vnhxwjEt.js → .setup/profile-update-DPttQz3-.mjs} +4 -4
- package/dist/{reaction-events-2WM2nJe_.js → .setup/reaction-events-CdAk_rh_.mjs} +7 -7
- package/dist/{resolve-targets-K8D0HWPX.js → .setup/resolve-targets-drjgAdIe.mjs} +3 -3
- package/dist/{resolver.runtime-C88GwQCx.js → .setup/resolver.runtime-Ci6ddcPh.mjs} +1 -1
- package/dist/{room-info-BPVJkXnp.js → .setup/room-info-DHd1j3qM.mjs} +4 -4
- package/dist/.setup/runtime-1kn1P6io.mjs +29 -0
- package/dist/.setup/runtime-setter-api-DtxDAM-x.mjs +3 -0
- package/dist/{sdk-B4By16Bt.js → .setup/sdk-BkKE4ANj.mjs} +524 -285
- package/dist/{secret-contract-CufozuyJ.js → .setup/secret-contract-JlB6VmI3.mjs} +1 -1
- package/dist/.setup/secret-contract-api-B-iJoQEv.mjs +3 -0
- package/dist/{reaction-common-DkrQdBSZ.js → .setup/send-currentness-BrGXL7b8.mjs} +20 -1
- package/dist/{send-UWLIQ0bG.js → .setup/send-h0gZ_-qk.mjs} +197 -415
- package/dist/{setup-bootstrap-sVqkwtSY.js → .setup/setup-bootstrap-BYgBD504.mjs} +3 -3
- package/dist/{setup-core-8keb-Yre.js → .setup/setup-core-BUcDAM7q.mjs} +7 -7
- package/dist/.setup/setup-plugin-api-DoTm4v2q.mjs +3 -0
- package/dist/{setup-surface-bcluelBI.js → .setup/setup-surface-V_Q-enq-.mjs} +12 -12
- package/dist/{startup-verification-BTSf31hS.js → .setup/startup-verification-Bq5qeEGn.mjs} +3 -3
- package/dist/{storage-CV-pfV_2.js → .setup/storage-DJ-oUgmX.mjs} +42 -27
- package/dist/{storage-metadata-DYArLcq1.js → .setup/storage-metadata-BQJjHC_i.mjs} +58 -51
- package/dist/{subagent-hooks-DeICLbU5.js → .setup/subagent-hooks-jFgft_Mr.mjs} +1 -1
- package/dist/{sync-cache-state-C-mhj3xb.js → .setup/sync-cache-state-CFiZIPhA.mjs} +2 -2
- package/dist/{thread-binding-api-CzkeLZCU.js → .setup/thread-binding-api-DRMC62cs.mjs} +1 -1
- package/dist/{thread-bindings-Bwv87Gve.js → .setup/thread-bindings-Hy96ujd3.mjs} +6 -6
- package/dist/{tool-actions.runtime-Bf98Juk6.js → .setup/tool-actions.runtime-Dckttu43.mjs} +21 -14
- package/dist/{verification-BbG-VC9S.js → .setup/verification-CKqBZ9mI.mjs} +4 -3
- package/dist/api.js +8 -8
- package/dist/auth-presence.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/contract-api.js +2 -2
- package/dist/doctor-contract-api.js +8 -8
- package/dist/helper-api.js +3 -3
- package/dist/index.js +4 -1
- package/dist/plugin-entry.handlers.runtime.js +1 -1
- package/dist/runtime-api.js +6 -6
- package/dist/runtime-setter-api.js +2 -2
- package/dist/secret-contract-api.js +1 -1
- package/dist/session-binding-contract-api.js +2 -2
- package/dist/setup-entry.js +4 -3
- package/dist/setup-plugin-api.js +1 -1
- package/dist/subagent-hooks-api.js +1 -1
- package/dist/thread-binding-api.js +1 -1
- package/dist/thread-bindings-runtime.js +1 -1
- package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json +1 -1
- package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs +17 -17
- package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js +17 -17
- package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm +0 -0
- package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts +5 -5
- package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs +442 -434
- package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs.map +1 -1
- package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js +2 -2
- package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js.map +1 -1
- package/node_modules/markdown-it/dist/markdown-it.cjs.js +32 -16
- package/node_modules/markdown-it/dist/markdown-it.cjs.js.map +1 -1
- package/node_modules/markdown-it/dist/markdown-it.mjs +32 -16
- package/node_modules/markdown-it/dist/markdown-it.mjs.map +1 -1
- package/node_modules/markdown-it/node_modules/argparse/LICENSE +1 -208
- package/node_modules/markdown-it/node_modules/argparse/package.json +2 -2
- package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts +23 -3
- package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js +52 -37
- package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts +61 -28
- package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/decode.js +789 -201
- package/node_modules/markdown-it/node_modules/entities/dist/decode.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts +4 -2
- package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/encode.js +249 -44
- package/node_modules/markdown-it/node_modules/entities/dist/encode.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts +19 -7
- package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/escape.js +104 -64
- package/node_modules/markdown-it/node_modules/entities/dist/escape.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js +2 -2
- package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js +4 -2
- package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts +2 -4
- package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js +1 -10
- package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts +2 -2
- package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/index.js +2 -6
- package/node_modules/markdown-it/node_modules/entities/dist/index.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts +39 -8
- package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js +37 -6
- package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts +35 -4
- package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js +189 -11
- package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js.map +1 -1
- package/node_modules/markdown-it/node_modules/entities/package.json +14 -14
- package/node_modules/markdown-it/node_modules/entities/src/decode-codepoint.ts +58 -39
- package/node_modules/markdown-it/node_modules/entities/src/decode.ts +942 -245
- package/node_modules/markdown-it/node_modules/entities/src/encode.ts +289 -47
- package/node_modules/markdown-it/node_modules/entities/src/escape.ts +110 -83
- package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-html.ts +8 -3
- package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-xml.ts +4 -4
- package/node_modules/markdown-it/node_modules/entities/src/generated/encode-html.ts +1 -16
- package/node_modules/markdown-it/node_modules/entities/src/index.ts +6 -8
- package/node_modules/markdown-it/node_modules/entities/src/internal/bin-trie-flags.ts +38 -7
- package/node_modules/markdown-it/node_modules/entities/src/internal/decode-shared.ts +203 -12
- package/node_modules/markdown-it/package.json +1 -1
- package/node_modules/matrix-js-sdk/CHANGELOG.md +15 -0
- package/node_modules/matrix-js-sdk/lib/client.d.ts +1 -2
- package/node_modules/matrix-js-sdk/lib/client.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/client.js +16 -8
- package/node_modules/matrix-js-sdk/lib/client.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/http-api/errors.d.ts +8 -0
- package/node_modules/matrix-js-sdk/lib/http-api/errors.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/http-api/errors.js +12 -0
- package/node_modules/matrix-js-sdk/lib/http-api/errors.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts +5 -0
- package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js +2 -1
- package/node_modules/matrix-js-sdk/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts +2 -4
- package/node_modules/matrix-js-sdk/lib/oauth/authorize.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/authorize.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/error.d.ts +44 -0
- package/node_modules/matrix-js-sdk/lib/oauth/error.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/error.js +53 -0
- package/node_modules/matrix-js-sdk/lib/oauth/error.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/index.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/index.js +19 -2
- package/node_modules/matrix-js-sdk/lib/oauth/index.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js +4 -2
- package/node_modules/matrix-js-sdk/lib/oauth/tokenRefresher.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/secret-storage.d.ts +1 -1
- package/node_modules/matrix-js-sdk/lib/secret-storage.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/secret-storage.js +9 -32
- package/node_modules/matrix-js-sdk/lib/secret-storage.js.map +1 -1
- package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.js +54 -1
- package/node_modules/matrix-js-sdk/lib/sliding-sync-sdk.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/dist/api.js +556 -311
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/dist/api.min.js +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.d.ts +2 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.js +221 -129
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/ClientWidgetApi.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/Symbols.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.d.ts +37 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.js +182 -63
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/WidgetApi.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.d.ts +20 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.js +49 -20
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/driver/WidgetDriver.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/index.d.ts +1 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/index.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.d.ts +2 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.js +3 -2
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ApiVersion.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.d.ts +9 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.js +2 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/Capabilities.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/CapabilitiesAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ContentLoadedAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/DownloadFileAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/GetMediaConfigAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/GetOpenIDAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ICustomWidgetData.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IJitsiWidgetData.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IRoomAccountData.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IRoomEvent.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IStickerpickerWidgetData.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IToDeviceMessage.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidget.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiErrorResponse.js +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiErrorResponse.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiRequest.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/IWidgetApiResponse.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/LanguageChangeAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ModalButtonKind.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ModalWidgetActions.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/NavigateAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/OpenIDCredentialsAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadEventAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadRelationsAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ReadRoomAccountDataAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.d.ts +53 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.js +6 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcLivekitActions.js.map +1 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/RtcTransportsAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ScreenshotAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SendEventAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SendToDeviceAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SetModalButtonEnabledAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/StickerAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/StickyAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/SupportedVersionsAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/ThemeChangeAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/TurnServerActions.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UpdateDelayedEventAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UpdateStateAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UploadFileAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/UserDirectorySearchAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/VisibilityAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.d.ts +9 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.js +2 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetApiDirection.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetConfigAction.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetKind.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/interfaces/WidgetType.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/Widget.js +20 -20
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/Widget.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetEventCapability.js +9 -9
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetEventCapability.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetParser.js +23 -23
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/WidgetParser.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/validation/url.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/models/validation/utils.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/templating/url-template.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/ITransport.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/PostmessageTransport.js +32 -32
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/transport/PostmessageTransport.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/util/SimpleObservable.js +10 -10
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/lib/util/SimpleObservable.js.map +1 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/package.json +2 -2
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/ClientWidgetApi.ts +48 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/WidgetApi.ts +75 -1
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/driver/WidgetDriver.ts +33 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/index.ts +1 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/ApiVersion.ts +2 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts +8 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/RtcLivekitActions.ts +80 -0
- package/node_modules/matrix-js-sdk/node_modules/matrix-widget-api/src/interfaces/WidgetApiAction.ts +10 -0
- package/node_modules/matrix-js-sdk/node_modules/p-retry/index.d.ts +1 -1
- package/node_modules/matrix-js-sdk/node_modules/p-retry/index.js +4 -0
- package/node_modules/matrix-js-sdk/node_modules/p-retry/package.json +1 -1
- package/node_modules/matrix-js-sdk/node_modules/p-retry/readme.md +1 -1
- package/node_modules/matrix-js-sdk/package.json +2 -2
- package/node_modules/matrix-js-sdk/src/client.ts +19 -11
- package/node_modules/matrix-js-sdk/src/http-api/errors.ts +16 -0
- package/node_modules/matrix-js-sdk/src/matrixrtc/MatrixRTCSession.ts +8 -1
- package/node_modules/matrix-js-sdk/src/oauth/authorize.ts +2 -5
- package/node_modules/matrix-js-sdk/src/oauth/error.ts +69 -0
- package/node_modules/matrix-js-sdk/src/oauth/index.ts +19 -2
- package/node_modules/matrix-js-sdk/src/oauth/tokenRefresher.ts +9 -2
- package/node_modules/matrix-js-sdk/src/secret-storage.ts +8 -31
- package/node_modules/matrix-js-sdk/src/sliding-sync-sdk.ts +74 -0
- package/node_modules/typebox/build/compile/validator.d.mts +1 -1
- package/node_modules/typebox/build/compile/validator.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
- package/node_modules/typebox/build/format/iri.mjs +5 -1
- package/node_modules/typebox/build/guard/emit.mjs +2 -4
- package/node_modules/typebox/build/guard/guard.mjs +6 -18
- package/node_modules/typebox/build/guard/string.mjs +16 -24
- package/node_modules/typebox/build/schema/build.mjs +2 -2
- package/node_modules/typebox/build/schema/check.mjs +1 -1
- package/node_modules/typebox/build/schema/compile.d.mts +3 -2
- package/node_modules/typebox/build/schema/compile.mjs +8 -8
- package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
- package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
- package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
- package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
- package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
- package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
- package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
- package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
- package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
- package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
- package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
- package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
- package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
- package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
- package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
- package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
- package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
- package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
- package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
- package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
- package/node_modules/typebox/build/schema/errors.d.mts +2 -2
- package/node_modules/typebox/build/schema/errors.mjs +8 -14
- package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
- package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
- package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
- package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
- package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
- package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
- package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
- package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
- package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
- package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
- package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
- package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
- package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
- package/node_modules/typebox/build/schema/parse.d.mts +1 -0
- package/node_modules/typebox/build/schema/parse.mjs +10 -5
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
- package/node_modules/typebox/build/schema/schema.d.mts +2 -0
- package/node_modules/typebox/build/schema/schema.mjs +2 -0
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
- package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +59 -89
- package/node_modules/zod/README.md +27 -0
- package/node_modules/zod/compile.cjs +77 -0
- package/node_modules/zod/compile.d.cts +1 -0
- package/node_modules/zod/compile.d.ts +1 -0
- package/node_modules/zod/compile.js +52 -0
- package/node_modules/zod/index.cjs +2 -2
- package/node_modules/zod/index.d.cts +1 -2
- package/node_modules/zod/index.d.ts +1 -2
- package/node_modules/zod/index.js +5 -2
- package/node_modules/zod/package.json +13 -2
- package/node_modules/zod/src/compile.ts +56 -0
- package/node_modules/zod/src/index.ts +5 -2
- package/node_modules/zod/src/v3/ZodError.ts +22 -12
- package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
- package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
- package/node_modules/zod/src/v3/types.ts +5 -5
- package/node_modules/zod/src/v4/classic/checks.ts +1 -0
- package/node_modules/zod/src/v4/classic/compat.ts +26 -18
- package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
- package/node_modules/zod/src/v4/classic/errors.ts +59 -44
- package/node_modules/zod/src/v4/classic/external.ts +12 -9
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
- package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
- package/node_modules/zod/src/v4/classic/index.ts +2 -2
- package/node_modules/zod/src/v4/classic/iso.ts +2 -72
- package/node_modules/zod/src/v4/classic/parse.ts +10 -4
- package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
- package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
- package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
- package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
- package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
- package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
- package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
- package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
- package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
- package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
- package/node_modules/zod/src/v4/core/api.ts +48 -12
- package/node_modules/zod/src/v4/core/checks.ts +57 -44
- package/node_modules/zod/src/v4/core/compile.ts +2188 -0
- package/node_modules/zod/src/v4/core/core.ts +98 -19
- package/node_modules/zod/src/v4/core/doc.ts +11 -7
- package/node_modules/zod/src/v4/core/errors.ts +115 -24
- package/node_modules/zod/src/v4/core/index.ts +3 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
- package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
- package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
- package/node_modules/zod/src/v4/core/parse.ts +131 -38
- package/node_modules/zod/src/v4/core/regexes.ts +30 -13
- package/node_modules/zod/src/v4/core/registries.ts +2 -2
- package/node_modules/zod/src/v4/core/schemas.ts +759 -461
- package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
- package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
- package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
- package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
- package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
- package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
- package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
- package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
- package/node_modules/zod/src/v4/core/util.ts +268 -42
- package/node_modules/zod/src/v4/core/versions.ts +2 -2
- package/node_modules/zod/src/v4/core/visit.ts +193 -0
- package/node_modules/zod/src/v4/index.ts +3 -3
- package/node_modules/zod/src/v4/locales/ar.ts +3 -0
- package/node_modules/zod/src/v4/locales/az.ts +3 -0
- package/node_modules/zod/src/v4/locales/be.ts +10 -0
- package/node_modules/zod/src/v4/locales/bg.ts +3 -0
- package/node_modules/zod/src/v4/locales/bn.ts +121 -0
- package/node_modules/zod/src/v4/locales/ca.ts +3 -0
- package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
- package/node_modules/zod/src/v4/locales/cs.ts +3 -0
- package/node_modules/zod/src/v4/locales/da.ts +5 -2
- package/node_modules/zod/src/v4/locales/de.ts +3 -0
- package/node_modules/zod/src/v4/locales/el.ts +1 -0
- package/node_modules/zod/src/v4/locales/en.ts +15 -4
- package/node_modules/zod/src/v4/locales/eo.ts +3 -0
- package/node_modules/zod/src/v4/locales/es.ts +2 -0
- package/node_modules/zod/src/v4/locales/fa.ts +3 -0
- package/node_modules/zod/src/v4/locales/fi.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
- package/node_modules/zod/src/v4/locales/fr.ts +19 -14
- package/node_modules/zod/src/v4/locales/gu.ts +121 -0
- package/node_modules/zod/src/v4/locales/he.ts +6 -1
- package/node_modules/zod/src/v4/locales/hi.ts +124 -0
- package/node_modules/zod/src/v4/locales/hr.ts +2 -0
- package/node_modules/zod/src/v4/locales/hu.ts +3 -0
- package/node_modules/zod/src/v4/locales/hy.ts +9 -0
- package/node_modules/zod/src/v4/locales/id.ts +3 -0
- package/node_modules/zod/src/v4/locales/index.ts +10 -0
- package/node_modules/zod/src/v4/locales/is.ts +3 -0
- package/node_modules/zod/src/v4/locales/it.ts +3 -0
- package/node_modules/zod/src/v4/locales/ja.ts +3 -0
- package/node_modules/zod/src/v4/locales/ka.ts +3 -0
- package/node_modules/zod/src/v4/locales/km.ts +3 -0
- package/node_modules/zod/src/v4/locales/kn.ts +124 -0
- package/node_modules/zod/src/v4/locales/ko.ts +3 -0
- package/node_modules/zod/src/v4/locales/lt.ts +2 -0
- package/node_modules/zod/src/v4/locales/mk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ms.ts +3 -0
- package/node_modules/zod/src/v4/locales/ne.ts +126 -0
- package/node_modules/zod/src/v4/locales/nl.ts +3 -0
- package/node_modules/zod/src/v4/locales/nn.ts +119 -0
- package/node_modules/zod/src/v4/locales/no.ts +5 -2
- package/node_modules/zod/src/v4/locales/ota.ts +3 -0
- package/node_modules/zod/src/v4/locales/pl.ts +3 -0
- package/node_modules/zod/src/v4/locales/ps.ts +3 -0
- package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
- package/node_modules/zod/src/v4/locales/pt.ts +99 -58
- package/node_modules/zod/src/v4/locales/ro.ts +1 -0
- package/node_modules/zod/src/v4/locales/ru.ts +10 -0
- package/node_modules/zod/src/v4/locales/sk.ts +121 -0
- package/node_modules/zod/src/v4/locales/sl.ts +3 -0
- package/node_modules/zod/src/v4/locales/sv.ts +5 -2
- package/node_modules/zod/src/v4/locales/ta.ts +3 -0
- package/node_modules/zod/src/v4/locales/th.ts +3 -0
- package/node_modules/zod/src/v4/locales/tk.ts +111 -0
- package/node_modules/zod/src/v4/locales/tr.ts +3 -0
- package/node_modules/zod/src/v4/locales/uk.ts +3 -0
- package/node_modules/zod/src/v4/locales/ur.ts +3 -0
- package/node_modules/zod/src/v4/locales/uz.ts +1 -0
- package/node_modules/zod/src/v4/locales/vi.ts +3 -0
- package/node_modules/zod/src/v4/locales/yo.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
- package/node_modules/zod/src/v4/mini/checks.ts +1 -0
- package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
- package/node_modules/zod/src/v4/mini/external.ts +10 -1
- package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
- package/node_modules/zod/src/v4/mini/parse.ts +2 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
- package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
- package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
- package/node_modules/zod/v3/ZodError.cjs +22 -12
- package/node_modules/zod/v3/ZodError.d.cts +1 -1
- package/node_modules/zod/v3/ZodError.d.ts +1 -1
- package/node_modules/zod/v3/ZodError.js +22 -12
- package/node_modules/zod/v3/types.cjs +7 -5
- package/node_modules/zod/v3/types.js +7 -5
- package/node_modules/zod/v4/classic/checks.cjs +2 -1
- package/node_modules/zod/v4/classic/checks.d.cts +1 -1
- package/node_modules/zod/v4/classic/checks.d.ts +1 -1
- package/node_modules/zod/v4/classic/checks.js +1 -1
- package/node_modules/zod/v4/classic/compat.d.cts +9 -11
- package/node_modules/zod/v4/classic/compat.d.ts +9 -11
- package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/classic/deep-partial.js +13 -0
- package/node_modules/zod/v4/classic/errors.cjs +43 -34
- package/node_modules/zod/v4/classic/errors.d.cts +3 -4
- package/node_modules/zod/v4/classic/errors.d.ts +3 -4
- package/node_modules/zod/v4/classic/errors.js +43 -34
- package/node_modules/zod/v4/classic/external.cjs +30 -27
- package/node_modules/zod/v4/classic/external.d.cts +5 -2
- package/node_modules/zod/v4/classic/external.d.ts +5 -2
- package/node_modules/zod/v4/classic/external.js +5 -8
- package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
- package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
- package/node_modules/zod/v4/classic/in-out.cjs +63 -0
- package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
- package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
- package/node_modules/zod/v4/classic/in-out.js +36 -0
- package/node_modules/zod/v4/classic/index.cjs +2 -2
- package/node_modules/zod/v4/classic/index.d.cts +1 -2
- package/node_modules/zod/v4/classic/index.d.ts +1 -2
- package/node_modules/zod/v4/classic/index.js +2 -2
- package/node_modules/zod/v4/classic/iso.cjs +11 -22
- package/node_modules/zod/v4/classic/iso.d.cts +2 -17
- package/node_modules/zod/v4/classic/iso.d.ts +2 -17
- package/node_modules/zod/v4/classic/iso.js +2 -17
- package/node_modules/zod/v4/classic/parse.cjs +4 -1
- package/node_modules/zod/v4/classic/parse.d.cts +17 -4
- package/node_modules/zod/v4/classic/parse.d.ts +17 -4
- package/node_modules/zod/v4/classic/parse.js +1 -0
- package/node_modules/zod/v4/classic/schemas.cjs +498 -398
- package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
- package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
- package/node_modules/zod/v4/classic/schemas.js +492 -396
- package/node_modules/zod/v4/core/api.cjs +23 -4
- package/node_modules/zod/v4/core/api.d.cts +13 -9
- package/node_modules/zod/v4/core/api.d.ts +13 -9
- package/node_modules/zod/v4/core/api.js +21 -4
- package/node_modules/zod/v4/core/checks.cjs +37 -31
- package/node_modules/zod/v4/core/checks.d.cts +13 -13
- package/node_modules/zod/v4/core/checks.d.ts +13 -13
- package/node_modules/zod/v4/core/checks.js +37 -31
- package/node_modules/zod/v4/core/compile.cjs +1813 -0
- package/node_modules/zod/v4/core/compile.d.cts +51 -0
- package/node_modules/zod/v4/core/compile.d.ts +51 -0
- package/node_modules/zod/v4/core/compile.js +1783 -0
- package/node_modules/zod/v4/core/core.cjs +81 -18
- package/node_modules/zod/v4/core/core.d.cts +16 -4
- package/node_modules/zod/v4/core/core.d.ts +16 -4
- package/node_modules/zod/v4/core/core.js +82 -19
- package/node_modules/zod/v4/core/doc.cjs +5 -7
- package/node_modules/zod/v4/core/doc.d.cts +3 -1
- package/node_modules/zod/v4/core/doc.d.ts +3 -1
- package/node_modules/zod/v4/core/doc.js +5 -7
- package/node_modules/zod/v4/core/errors.cjs +110 -25
- package/node_modules/zod/v4/core/errors.d.cts +4 -0
- package/node_modules/zod/v4/core/errors.d.ts +4 -0
- package/node_modules/zod/v4/core/errors.js +110 -25
- package/node_modules/zod/v4/core/index.cjs +5 -1
- package/node_modules/zod/v4/core/index.d.cts +3 -0
- package/node_modules/zod/v4/core/index.d.ts +3 -0
- package/node_modules/zod/v4/core/index.js +3 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
- package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
- package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
- package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
- package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
- package/node_modules/zod/v4/core/memoizer.cjs +272 -0
- package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
- package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
- package/node_modules/zod/v4/core/memoizer.js +265 -0
- package/node_modules/zod/v4/core/parse.cjs +96 -34
- package/node_modules/zod/v4/core/parse.d.cts +14 -11
- package/node_modules/zod/v4/core/parse.d.ts +14 -11
- package/node_modules/zod/v4/core/parse.js +94 -33
- package/node_modules/zod/v4/core/regexes.cjs +27 -15
- package/node_modules/zod/v4/core/regexes.d.cts +2 -0
- package/node_modules/zod/v4/core/regexes.d.ts +2 -0
- package/node_modules/zod/v4/core/regexes.js +24 -13
- package/node_modules/zod/v4/core/registries.js +2 -2
- package/node_modules/zod/v4/core/schemas.cjs +537 -326
- package/node_modules/zod/v4/core/schemas.d.cts +100 -31
- package/node_modules/zod/v4/core/schemas.d.ts +100 -31
- package/node_modules/zod/v4/core/schemas.js +526 -325
- package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
- package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
- package/node_modules/zod/v4/core/to-json-schema.js +241 -39
- package/node_modules/zod/v4/core/util.cjs +212 -31
- package/node_modules/zod/v4/core/util.d.cts +58 -1
- package/node_modules/zod/v4/core/util.d.ts +58 -1
- package/node_modules/zod/v4/core/util.js +202 -30
- package/node_modules/zod/v4/core/versions.cjs +2 -2
- package/node_modules/zod/v4/core/versions.d.cts +1 -1
- package/node_modules/zod/v4/core/versions.d.ts +1 -1
- package/node_modules/zod/v4/core/versions.js +2 -2
- package/node_modules/zod/v4/core/visit.cjs +195 -0
- package/node_modules/zod/v4/core/visit.d.cts +30 -0
- package/node_modules/zod/v4/core/visit.d.ts +30 -0
- package/node_modules/zod/v4/core/visit.js +169 -0
- package/node_modules/zod/v4/index.cjs +15 -5
- package/node_modules/zod/v4/index.d.cts +2 -2
- package/node_modules/zod/v4/index.d.ts +2 -2
- package/node_modules/zod/v4/index.js +3 -2
- package/node_modules/zod/v4/locales/ar.cjs +3 -0
- package/node_modules/zod/v4/locales/ar.js +3 -0
- package/node_modules/zod/v4/locales/az.cjs +3 -0
- package/node_modules/zod/v4/locales/az.js +3 -0
- package/node_modules/zod/v4/locales/be.cjs +10 -0
- package/node_modules/zod/v4/locales/be.js +10 -0
- package/node_modules/zod/v4/locales/bg.cjs +3 -0
- package/node_modules/zod/v4/locales/bg.js +3 -0
- package/node_modules/zod/v4/locales/bn.cjs +138 -0
- package/node_modules/zod/v4/locales/bn.d.cts +5 -0
- package/node_modules/zod/v4/locales/bn.d.ts +4 -0
- package/node_modules/zod/v4/locales/bn.js +111 -0
- package/node_modules/zod/v4/locales/ca.cjs +3 -0
- package/node_modules/zod/v4/locales/ca.js +3 -0
- package/node_modules/zod/v4/locales/ckb.cjs +158 -0
- package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
- package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
- package/node_modules/zod/v4/locales/ckb.js +131 -0
- package/node_modules/zod/v4/locales/cs.cjs +3 -0
- package/node_modules/zod/v4/locales/cs.js +3 -0
- package/node_modules/zod/v4/locales/da.cjs +5 -2
- package/node_modules/zod/v4/locales/da.js +5 -2
- package/node_modules/zod/v4/locales/de.cjs +3 -0
- package/node_modules/zod/v4/locales/de.js +3 -0
- package/node_modules/zod/v4/locales/el.cjs +1 -0
- package/node_modules/zod/v4/locales/el.js +1 -0
- package/node_modules/zod/v4/locales/en.cjs +14 -4
- package/node_modules/zod/v4/locales/en.js +14 -4
- package/node_modules/zod/v4/locales/eo.cjs +3 -0
- package/node_modules/zod/v4/locales/eo.js +3 -0
- package/node_modules/zod/v4/locales/es.cjs +2 -0
- package/node_modules/zod/v4/locales/es.js +2 -0
- package/node_modules/zod/v4/locales/fa.cjs +3 -0
- package/node_modules/zod/v4/locales/fa.js +3 -0
- package/node_modules/zod/v4/locales/fi.cjs +3 -0
- package/node_modules/zod/v4/locales/fi.js +3 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
- package/node_modules/zod/v4/locales/fr-CA.js +3 -0
- package/node_modules/zod/v4/locales/fr.cjs +16 -14
- package/node_modules/zod/v4/locales/fr.js +16 -14
- package/node_modules/zod/v4/locales/gu.cjs +138 -0
- package/node_modules/zod/v4/locales/gu.d.cts +5 -0
- package/node_modules/zod/v4/locales/gu.d.ts +4 -0
- package/node_modules/zod/v4/locales/gu.js +111 -0
- package/node_modules/zod/v4/locales/he.cjs +5 -0
- package/node_modules/zod/v4/locales/he.js +5 -0
- package/node_modules/zod/v4/locales/hi.cjs +136 -0
- package/node_modules/zod/v4/locales/hi.d.cts +5 -0
- package/node_modules/zod/v4/locales/hi.d.ts +4 -0
- package/node_modules/zod/v4/locales/hi.js +109 -0
- package/node_modules/zod/v4/locales/hr.cjs +2 -0
- package/node_modules/zod/v4/locales/hr.js +2 -0
- package/node_modules/zod/v4/locales/hu.cjs +3 -0
- package/node_modules/zod/v4/locales/hu.js +3 -0
- package/node_modules/zod/v4/locales/hy.cjs +9 -0
- package/node_modules/zod/v4/locales/hy.js +9 -0
- package/node_modules/zod/v4/locales/id.cjs +3 -0
- package/node_modules/zod/v4/locales/id.js +3 -0
- package/node_modules/zod/v4/locales/index.cjs +22 -2
- package/node_modules/zod/v4/locales/index.d.cts +10 -0
- package/node_modules/zod/v4/locales/index.d.ts +10 -0
- package/node_modules/zod/v4/locales/index.js +10 -0
- package/node_modules/zod/v4/locales/is.cjs +3 -0
- package/node_modules/zod/v4/locales/is.js +3 -0
- package/node_modules/zod/v4/locales/it.cjs +3 -0
- package/node_modules/zod/v4/locales/it.js +3 -0
- package/node_modules/zod/v4/locales/ja.cjs +3 -0
- package/node_modules/zod/v4/locales/ja.js +3 -0
- package/node_modules/zod/v4/locales/ka.cjs +3 -0
- package/node_modules/zod/v4/locales/ka.js +3 -0
- package/node_modules/zod/v4/locales/km.cjs +3 -0
- package/node_modules/zod/v4/locales/km.js +3 -0
- package/node_modules/zod/v4/locales/kn.cjs +141 -0
- package/node_modules/zod/v4/locales/kn.d.cts +5 -0
- package/node_modules/zod/v4/locales/kn.d.ts +4 -0
- package/node_modules/zod/v4/locales/kn.js +114 -0
- package/node_modules/zod/v4/locales/ko.cjs +3 -0
- package/node_modules/zod/v4/locales/ko.js +3 -0
- package/node_modules/zod/v4/locales/lt.cjs +2 -0
- package/node_modules/zod/v4/locales/lt.js +2 -0
- package/node_modules/zod/v4/locales/mk.cjs +3 -0
- package/node_modules/zod/v4/locales/mk.js +3 -0
- package/node_modules/zod/v4/locales/ms.cjs +3 -0
- package/node_modules/zod/v4/locales/ms.js +3 -0
- package/node_modules/zod/v4/locales/ne.cjs +136 -0
- package/node_modules/zod/v4/locales/ne.d.cts +5 -0
- package/node_modules/zod/v4/locales/ne.d.ts +4 -0
- package/node_modules/zod/v4/locales/ne.js +109 -0
- package/node_modules/zod/v4/locales/nl.cjs +3 -0
- package/node_modules/zod/v4/locales/nl.js +3 -0
- package/node_modules/zod/v4/locales/nn.cjs +138 -0
- package/node_modules/zod/v4/locales/nn.d.cts +5 -0
- package/node_modules/zod/v4/locales/nn.d.ts +4 -0
- package/node_modules/zod/v4/locales/nn.js +111 -0
- package/node_modules/zod/v4/locales/no.cjs +5 -2
- package/node_modules/zod/v4/locales/no.js +5 -2
- package/node_modules/zod/v4/locales/ota.cjs +3 -0
- package/node_modules/zod/v4/locales/ota.js +3 -0
- package/node_modules/zod/v4/locales/pl.cjs +3 -0
- package/node_modules/zod/v4/locales/pl.js +3 -0
- package/node_modules/zod/v4/locales/ps.cjs +3 -0
- package/node_modules/zod/v4/locales/ps.js +3 -0
- package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
- package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt-BR.js +141 -0
- package/node_modules/zod/v4/locales/pt.cjs +87 -55
- package/node_modules/zod/v4/locales/pt.js +87 -55
- package/node_modules/zod/v4/locales/ro.cjs +1 -0
- package/node_modules/zod/v4/locales/ro.js +1 -0
- package/node_modules/zod/v4/locales/ru.cjs +10 -0
- package/node_modules/zod/v4/locales/ru.js +10 -0
- package/node_modules/zod/v4/locales/sk.cjs +141 -0
- package/node_modules/zod/v4/locales/sk.d.cts +5 -0
- package/node_modules/zod/v4/locales/sk.d.ts +4 -0
- package/node_modules/zod/v4/locales/sk.js +114 -0
- package/node_modules/zod/v4/locales/sl.cjs +3 -0
- package/node_modules/zod/v4/locales/sl.js +3 -0
- package/node_modules/zod/v4/locales/sv.cjs +5 -2
- package/node_modules/zod/v4/locales/sv.js +5 -2
- package/node_modules/zod/v4/locales/ta.cjs +3 -0
- package/node_modules/zod/v4/locales/ta.js +3 -0
- package/node_modules/zod/v4/locales/th.cjs +3 -0
- package/node_modules/zod/v4/locales/th.js +3 -0
- package/node_modules/zod/v4/locales/tk.cjs +132 -0
- package/node_modules/zod/v4/locales/tk.d.cts +5 -0
- package/node_modules/zod/v4/locales/tk.d.ts +4 -0
- package/node_modules/zod/v4/locales/tk.js +105 -0
- package/node_modules/zod/v4/locales/tr.cjs +3 -0
- package/node_modules/zod/v4/locales/tr.js +3 -0
- package/node_modules/zod/v4/locales/uk.cjs +3 -0
- package/node_modules/zod/v4/locales/uk.js +3 -0
- package/node_modules/zod/v4/locales/ur.cjs +3 -0
- package/node_modules/zod/v4/locales/ur.js +3 -0
- package/node_modules/zod/v4/locales/uz.cjs +1 -0
- package/node_modules/zod/v4/locales/uz.js +1 -0
- package/node_modules/zod/v4/locales/vi.cjs +3 -0
- package/node_modules/zod/v4/locales/vi.js +3 -0
- package/node_modules/zod/v4/locales/yo.cjs +3 -0
- package/node_modules/zod/v4/locales/yo.js +3 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-CN.js +3 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
- package/node_modules/zod/v4/locales/zh-TW.js +3 -0
- package/node_modules/zod/v4/mini/checks.cjs +2 -1
- package/node_modules/zod/v4/mini/checks.d.cts +1 -1
- package/node_modules/zod/v4/mini/checks.d.ts +1 -1
- package/node_modules/zod/v4/mini/checks.js +1 -1
- package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
- package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
- package/node_modules/zod/v4/mini/deep-partial.js +13 -0
- package/node_modules/zod/v4/mini/external.cjs +12 -1
- package/node_modules/zod/v4/mini/external.d.cts +5 -2
- package/node_modules/zod/v4/mini/external.d.ts +5 -2
- package/node_modules/zod/v4/mini/external.js +3 -1
- package/node_modules/zod/v4/mini/in-out.cjs +63 -0
- package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
- package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
- package/node_modules/zod/v4/mini/in-out.js +36 -0
- package/node_modules/zod/v4/mini/parse.cjs +3 -1
- package/node_modules/zod/v4/mini/parse.d.cts +1 -1
- package/node_modules/zod/v4/mini/parse.d.ts +1 -1
- package/node_modules/zod/v4/mini/parse.js +1 -1
- package/node_modules/zod/v4/mini/schemas.cjs +75 -47
- package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
- package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
- package/node_modules/zod/v4/mini/schemas.js +71 -45
- package/openclaw.plugin.json +222 -45
- package/package.json +12 -10
- package/dist/direct-room-RinHjtqX.js +0 -71
- package/dist/probe.runtime-DWdw74_H.js +0 -2
- package/dist/runtime-6S3DNFNv.js +0 -8
- package/dist/types-DzSc7Sqm.js +0 -32
- package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts +0 -33
- package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts.map +0 -1
- package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js +0 -93
- package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js.map +0 -1
- package/node_modules/markdown-it/node_modules/entities/src/internal/encode-shared.ts +0 -123
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- /package/dist/{account-config-CRsKoMqJ.js → .setup/account-config-CRsKoMqJ.mjs} +0 -0
- /package/dist/{backup-health-Dm_YMVFT.js → .setup/backup-health-Dm_YMVFT.mjs} +0 -0
- /package/dist/{config-paths-CnREYb1Y.js → .setup/config-paths-CnREYb1Y.mjs} +0 -0
- /package/dist/{config-secret-input.runtime-CwsP3--c.js → .setup/config-secret-input.runtime-CwsP3--c.mjs} +0 -0
- /package/dist/{credentials-state-B3cuUFwZ.js → .setup/credentials-state-B3cuUFwZ.mjs} +0 -0
- /package/dist/{crypto-node.runtime-6Aj_ltHQ.js → .setup/crypto-node.runtime-6Aj_ltHQ.mjs} +0 -0
- /package/dist/{deps-mtxF2mHI.js → .setup/deps-mtxF2mHI.mjs} +0 -0
- /package/dist/{doctor-contract-HyWFZQVG.js → .setup/doctor-contract-HyWFZQVG.mjs} +0 -0
- /package/dist/{env-vars-dGqak9dN.js → .setup/env-vars-dGqak9dN.mjs} +0 -0
- /package/dist/{errors-DKVS3_DO.js → .setup/errors-DKVS3_DO.mjs} +0 -0
- /package/dist/{event-helpers-CspuhE9k.js → .setup/event-helpers-CspuhE9k.mjs} +0 -0
- /package/dist/{idb-persistence-lock-B3fZXyF_.js → .setup/idb-persistence-lock-B3fZXyF_.mjs} +0 -0
- /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
- /package/dist/{storage-paths-DVCANXTc.js → .setup/storage-paths-DVCANXTc.mjs} +0 -0
- /package/dist/{target-ids-Nwx7cMVE.js → .setup/target-ids-Nwx7cMVE.mjs} +0 -0
- /package/dist/{thread-bindings-shared-oNPiyMWY.js → .setup/thread-bindings-shared-oNPiyMWY.mjs} +0 -0
- /package/dist/{url-validation-GRHde6lq.js → .setup/url-validation-GRHde6lq.mjs} +0 -0
|
@@ -156,10 +156,7 @@ test("catch/prefault/default", () => {
|
|
|
156
156
|
f: z.string().prefault("prefault value"),
|
|
157
157
|
});
|
|
158
158
|
|
|
159
|
-
// Catch (d) and default/prefault (b, c, e, f) handle absent keys gracefully.
|
|
160
|
-
// `a: catch().optional()` short-circuits to undefined when the original
|
|
161
|
-
// input was undefined, so the property is omitted from the output. All
|
|
162
|
-
// other catch/default/prefault keys produce their fallback values.
|
|
159
|
+
// Catch (d) and default/prefault (b, c, e, f) handle absent keys gracefully. `a: catch().optional()` short-circuits to undefined when the original input was undefined, so the property is omitted from the output. All other catch/default/prefault keys produce their fallback values.
|
|
163
160
|
expect(mySchema.parse({})).toMatchInlineSnapshot(`
|
|
164
161
|
{
|
|
165
162
|
"b": "default value",
|
|
@@ -448,3 +445,53 @@ test("required - refinement is executed on required schema", () => {
|
|
|
448
445
|
const validResult = requiredSchema.safeParse({ password: "abc", confirmPassword: "abc" });
|
|
449
446
|
expect(validResult.success).toBe(true);
|
|
450
447
|
});
|
|
448
|
+
|
|
449
|
+
test("exactPartial - shallow inference", () => {
|
|
450
|
+
const shallow = nested.exactPartial();
|
|
451
|
+
type shallow = z.infer<typeof shallow>;
|
|
452
|
+
expectTypeOf<shallow>().toEqualTypeOf<{
|
|
453
|
+
name?: string;
|
|
454
|
+
age?: number;
|
|
455
|
+
outer?: { inner: string };
|
|
456
|
+
array?: { asdf: string }[];
|
|
457
|
+
}>();
|
|
458
|
+
|
|
459
|
+
// The point of exactPartial: unlike partial(), this matches TypeScript's Partial<> under exactOptionalPropertyTypes.
|
|
460
|
+
expectTypeOf<shallow>().toEqualTypeOf<Partial<z.infer<typeof nested>>>();
|
|
461
|
+
});
|
|
462
|
+
|
|
463
|
+
test("exactPartial - wraps fields in ZodExactOptional", () => {
|
|
464
|
+
const object = z.object({ name: z.string(), age: z.number() });
|
|
465
|
+
const exact = object.exactPartial();
|
|
466
|
+
expect(exact.shape.name).toBeInstanceOf(z.ZodExactOptional);
|
|
467
|
+
expect(exact.shape.age).toBeInstanceOf(z.ZodExactOptional);
|
|
468
|
+
expect(exact.shape.name.unwrap()).toBeInstanceOf(z.ZodString);
|
|
469
|
+
});
|
|
470
|
+
|
|
471
|
+
test("exactPartial - absent keys pass, explicit undefined rejected", () => {
|
|
472
|
+
const exact = z.object({ name: z.string(), age: z.number() }).exactPartial();
|
|
473
|
+
expect(exact.parse({})).toEqual({});
|
|
474
|
+
expect(exact.parse({ name: "asdf" })).toEqual({ name: "asdf" });
|
|
475
|
+
expect(exact.safeParse({ name: undefined }).success).toBe(false);
|
|
476
|
+
});
|
|
477
|
+
|
|
478
|
+
test("exactPartial with mask", () => {
|
|
479
|
+
const object = z.object({ name: z.string(), age: z.number(), country: z.string() });
|
|
480
|
+
const masked = object.exactPartial({ name: true, age: true });
|
|
481
|
+
expect(masked.shape.name).toBeInstanceOf(z.ZodExactOptional);
|
|
482
|
+
expect(masked.shape.age).toBeInstanceOf(z.ZodExactOptional);
|
|
483
|
+
expect(masked.shape.country).toBeInstanceOf(z.ZodString);
|
|
484
|
+
|
|
485
|
+
type masked = z.infer<typeof masked>;
|
|
486
|
+
expectTypeOf<masked>().toEqualTypeOf<{ name?: string; age?: number; country: string }>();
|
|
487
|
+
|
|
488
|
+
expect(masked.parse({ country: "US" })).toEqual({ country: "US" });
|
|
489
|
+
expect(masked.safeParse({ country: "US", name: undefined }).success).toBe(false);
|
|
490
|
+
});
|
|
491
|
+
|
|
492
|
+
test("exactPartial - throws on schema with refinements", () => {
|
|
493
|
+
const refined = z.object({ name: z.string() }).refine(() => true);
|
|
494
|
+
expect(() => refined.exactPartial()).toThrow(
|
|
495
|
+
".exactPartial() cannot be used on object schemas containing refinements"
|
|
496
|
+
);
|
|
497
|
+
});
|
|
@@ -11,11 +11,11 @@ test("ZodPreprocess<B> assignable to ZodPipe<$ZodTransform, B>", () => {
|
|
|
11
11
|
|
|
12
12
|
test("ZodPreprocess optin/optout defer to B", () => {
|
|
13
13
|
const optionalInside = z.preprocess((v) => v, z.string().optional());
|
|
14
|
-
expectTypeOf<(typeof optionalInside)["_zod"]["optin"]>().toEqualTypeOf<"optional">();
|
|
14
|
+
expectTypeOf<(typeof optionalInside)["_zod"]["optin"]>().toEqualTypeOf<"optional" | "defaulted">();
|
|
15
15
|
expectTypeOf<(typeof optionalInside)["_zod"]["optout"]>().toEqualTypeOf<"optional">();
|
|
16
16
|
|
|
17
17
|
const required = z.preprocess((v) => v, z.string());
|
|
18
|
-
expectTypeOf<(typeof required)["_zod"]["optin"]>().toEqualTypeOf<"optional" | undefined>();
|
|
18
|
+
expectTypeOf<(typeof required)["_zod"]["optin"]>().toEqualTypeOf<"optional" | "defaulted" | undefined>();
|
|
19
19
|
expectTypeOf<(typeof required)["_zod"]["optout"]>().toEqualTypeOf<"optional" | undefined>();
|
|
20
20
|
});
|
|
21
21
|
|
|
@@ -24,3 +24,21 @@ test("ZodPreprocess input/output inference", () => {
|
|
|
24
24
|
expectTypeOf<z.output<typeof pre>>().toEqualTypeOf<number | undefined>();
|
|
25
25
|
expectTypeOf<z.input<typeof pre>>().toEqualTypeOf<unknown>();
|
|
26
26
|
});
|
|
27
|
+
|
|
28
|
+
test("ZodPreprocess narrows input from an annotated preprocessor arg", () => {
|
|
29
|
+
const trimmed = z.preprocess((val: string | null | undefined) => val?.trim() ?? "", z.string());
|
|
30
|
+
expectTypeOf<z.input<typeof trimmed>>().toEqualTypeOf<string | null | undefined>();
|
|
31
|
+
expectTypeOf<z.output<typeof trimmed>>().toEqualTypeOf<string>();
|
|
32
|
+
|
|
33
|
+
const obj = z.object({ a: z.preprocess((v: string | number) => String(v), z.string()) });
|
|
34
|
+
expectTypeOf<z.input<typeof obj>>().toEqualTypeOf<{ a: string | number }>();
|
|
35
|
+
expectTypeOf<z.output<typeof obj>>().toEqualTypeOf<{ a: string }>();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// The narrowing must ride on the transform's input only. Binding its output too makes $ZodPipeDef's codec-only `transform?` field contravariant in the preprocessor's return type, which drops the bare-type assignability below.
|
|
39
|
+
test("narrowed ZodPreprocess still assignable to the bare type", () => {
|
|
40
|
+
const pre = z.preprocess((v: string) => v.length, z.number());
|
|
41
|
+
const _bare: z.ZodPreprocess<z.ZodNumber> = pre;
|
|
42
|
+
const _bareCore: z.core.$ZodPreprocess = pre;
|
|
43
|
+
expectTypeOf<(typeof pre)["_zod"]["optin"]>().toEqualTypeOf<"optional" | "defaulted" | undefined>();
|
|
44
|
+
});
|
|
@@ -50,74 +50,6 @@ test("flat inference", () => {
|
|
|
50
50
|
expectTypeOf<typeof readonlyPromise._output>().toEqualTypeOf<Promise<string>>();
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
// test("deep inference", () => {
|
|
54
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[0]>>().toEqualTypeOf<string>();
|
|
55
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[1]>>().toEqualTypeOf<number>();
|
|
56
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[2]>>().toEqualTypeOf<number>();
|
|
57
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[3]>>().toEqualTypeOf<bigint>();
|
|
58
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[4]>>().toEqualTypeOf<boolean>();
|
|
59
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[5]>>().toEqualTypeOf<Date>();
|
|
60
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[6]>>().toEqualTypeOf<undefined>();
|
|
61
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[7]>>().toEqualTypeOf<null>();
|
|
62
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[8]>>().toEqualTypeOf<any>();
|
|
63
|
-
// expectTypeOf<
|
|
64
|
-
// z.infer<(typeof deepReadonlySchemas_0)[9]>
|
|
65
|
-
// >().toEqualTypeOf<Readonly<unknown>>();
|
|
66
|
-
// expectTypeOf<z.infer<(typeof deepReadonlySchemas_0)[10]>>().toEqualTypeOf<void>();
|
|
67
|
-
// expectTypeOf<
|
|
68
|
-
// z.infer<(typeof deepReadonlySchemas_0)[11]>
|
|
69
|
-
// >().toEqualTypeOf<(args_0: string, args_1: number, ...args_2: unknown[]) => unknown>();
|
|
70
|
-
// expectTypeOf<
|
|
71
|
-
// z.infer<(typeof deepReadonlySchemas_0)[12]>
|
|
72
|
-
// >().toEqualTypeOf<readonly string[]>();
|
|
73
|
-
// expectTypeOf<
|
|
74
|
-
// z.infer<(typeof deepReadonlySchemas_0)[13]>
|
|
75
|
-
// >().toEqualTypeOf<readonly [string, number]>();
|
|
76
|
-
// expectTypeOf<
|
|
77
|
-
// z.infer<(typeof deepReadonlySchemas_0)[14]>
|
|
78
|
-
// >().toEqualTypeOf<ReadonlyMap<string, Date>>();
|
|
79
|
-
// expectTypeOf<
|
|
80
|
-
// z.infer<(typeof deepReadonlySchemas_0)[15]>
|
|
81
|
-
// >().toEqualTypeOf<ReadonlySet<Promise<string>>>();
|
|
82
|
-
// expectTypeOf<
|
|
83
|
-
// z.infer<(typeof deepReadonlySchemas_0)[16]>
|
|
84
|
-
// >().toEqualTypeOf<Readonly<Record<string, string>>>();
|
|
85
|
-
// expectTypeOf<
|
|
86
|
-
// z.infer<(typeof deepReadonlySchemas_0)[17]>
|
|
87
|
-
// >().toEqualTypeOf<Readonly<Record<string, number>>>();
|
|
88
|
-
// expectTypeOf<
|
|
89
|
-
// z.infer<(typeof deepReadonlySchemas_0)[18]>
|
|
90
|
-
// >().toEqualTypeOf<{ readonly a: string; readonly 1: number }>();
|
|
91
|
-
// expectTypeOf<
|
|
92
|
-
// z.infer<(typeof deepReadonlySchemas_0)[19]>
|
|
93
|
-
// >().toEqualTypeOf<Readonly<testEnum>>();
|
|
94
|
-
// expectTypeOf<
|
|
95
|
-
// z.infer<(typeof deepReadonlySchemas_0)[20]>
|
|
96
|
-
// >().toEqualTypeOf<Promise<string>>();
|
|
97
|
-
|
|
98
|
-
// expectTypeOf<
|
|
99
|
-
// z.infer<typeof crazyDeepReadonlySchema>
|
|
100
|
-
// >().toEqualTypeOf<ReadonlyMap<
|
|
101
|
-
// ReadonlySet<readonly [string, number]>,
|
|
102
|
-
// {
|
|
103
|
-
// readonly a: {
|
|
104
|
-
// readonly [x: string]: readonly any[];
|
|
105
|
-
// };
|
|
106
|
-
// readonly b: {
|
|
107
|
-
// readonly c: {
|
|
108
|
-
// readonly d: {
|
|
109
|
-
// readonly e: {
|
|
110
|
-
// readonly f: {
|
|
111
|
-
// readonly g?: {};
|
|
112
|
-
// };
|
|
113
|
-
// };
|
|
114
|
-
// };
|
|
115
|
-
// };
|
|
116
|
-
// };
|
|
117
|
-
// }
|
|
118
|
-
// >>();
|
|
119
|
-
// });
|
|
120
|
-
|
|
121
53
|
test("object freezing", async () => {
|
|
122
54
|
expect(Object.isFrozen(z.array(z.string()).readonly().parse(["a"]))).toBe(true);
|
|
123
55
|
expect(Object.isFrozen(z.tuple([z.string(), z.number()]).readonly().parse(["a", 1]))).toBe(true);
|
|
@@ -76,6 +76,37 @@ test("enum exhaustiveness", () => {
|
|
|
76
76
|
`);
|
|
77
77
|
});
|
|
78
78
|
|
|
79
|
+
test("optional-in value type", () => {
|
|
80
|
+
const defaulted = z.record(z.enum(["Tuna", "Salmon"]), z.string().default("unknown"));
|
|
81
|
+
expectTypeOf<z.input<typeof defaulted>>().toEqualTypeOf<Partial<Record<"Tuna" | "Salmon", string | undefined>>>();
|
|
82
|
+
expectTypeOf<z.output<typeof defaulted>>().toEqualTypeOf<Record<"Tuna" | "Salmon", string>>();
|
|
83
|
+
expect(defaulted.parse({ Tuna: "asdf" })).toEqual({ Tuna: "asdf", Salmon: "unknown" });
|
|
84
|
+
|
|
85
|
+
const prefaulted = z.record(z.enum(["Tuna", "Salmon"]), z.string().prefault("unknown"));
|
|
86
|
+
expectTypeOf<z.input<typeof prefaulted>>().toEqualTypeOf<Partial<Record<"Tuna" | "Salmon", string | undefined>>>();
|
|
87
|
+
expect(prefaulted.parse({ Tuna: "asdf" })).toEqual({ Tuna: "asdf", Salmon: "unknown" });
|
|
88
|
+
|
|
89
|
+
const optional = z.record(z.enum(["Tuna", "Salmon"]), z.string().optional());
|
|
90
|
+
expectTypeOf<z.input<typeof optional>>().toEqualTypeOf<Partial<Record<"Tuna" | "Salmon", string | undefined>>>();
|
|
91
|
+
// toStrictEqual, not toEqual: an exhaustive record assigns every key, and toEqual cannot tell an absent key from one holding undefined.
|
|
92
|
+
expect(optional.parse({ Tuna: "asdf" })).toStrictEqual({ Tuna: "asdf", Salmon: undefined });
|
|
93
|
+
|
|
94
|
+
// A value that needs a slot keeps the key required, and a non-enumerable key stays an index signature either way.
|
|
95
|
+
const required = z.record(z.enum(["Tuna", "Salmon"]), z.string());
|
|
96
|
+
expectTypeOf<z.input<typeof required>>().toEqualTypeOf<Record<"Tuna" | "Salmon", string>>();
|
|
97
|
+
const indexed = z.record(z.string(), z.string().default("unknown"));
|
|
98
|
+
expectTypeOf<z.input<typeof indexed>>().toEqualTypeOf<Record<string, string | undefined>>();
|
|
99
|
+
|
|
100
|
+
// A catch and a preprocess pipe declare no static optin, so the key stays required even where the parser can fill it. The static predicate and the one the JSON Schema emitter uses resolve these differently, and the two have to keep agreeing.
|
|
101
|
+
const caught = z.record(z.enum(["Tuna", "Salmon"]), z.string().catch("unknown"));
|
|
102
|
+
expectTypeOf<z.input<typeof caught>>().toEqualTypeOf<Record<"Tuna" | "Salmon", string>>();
|
|
103
|
+
const preprocessed = z.record(
|
|
104
|
+
z.enum(["Tuna", "Salmon"]),
|
|
105
|
+
z.preprocess((v) => v, z.string())
|
|
106
|
+
);
|
|
107
|
+
expectTypeOf<z.input<typeof preprocessed>>().toEqualTypeOf<Record<"Tuna" | "Salmon", unknown>>();
|
|
108
|
+
});
|
|
109
|
+
|
|
79
110
|
test("typescript enum exhaustiveness", () => {
|
|
80
111
|
enum BigFish {
|
|
81
112
|
Tuna = 0,
|
|
@@ -402,6 +433,44 @@ test("is not vulnerable to prototype pollution", async () => {
|
|
|
402
433
|
}
|
|
403
434
|
});
|
|
404
435
|
|
|
436
|
+
test("key schema cannot normalize an input key into __proto__", async () => {
|
|
437
|
+
const value = z.object({ a: z.string() });
|
|
438
|
+
const payload = { a: "evil" };
|
|
439
|
+
const wire = (key: string) => JSON.parse(JSON.stringify({ [key]: payload }));
|
|
440
|
+
|
|
441
|
+
const cases = [
|
|
442
|
+
[z.record(z.string().toLowerCase(), value), wire("__PROTO__")],
|
|
443
|
+
[z.record(z.string().trim(), value), wire(" __proto__ ")],
|
|
444
|
+
[z.record(z.string().normalize("NFKC"), value), wire("__proto__")],
|
|
445
|
+
[
|
|
446
|
+
z.record(
|
|
447
|
+
z.string().transform((s) => s.slice(2)),
|
|
448
|
+
value
|
|
449
|
+
),
|
|
450
|
+
wire("x:__proto__"),
|
|
451
|
+
],
|
|
452
|
+
] as const;
|
|
453
|
+
|
|
454
|
+
for (const [schema, data] of cases) {
|
|
455
|
+
const result = schema.parse(data);
|
|
456
|
+
expect(Object.getPrototypeOf(result)).toBe(Object.prototype);
|
|
457
|
+
expect(Object.keys(result)).toEqual([]);
|
|
458
|
+
expect((result as any).a).toBeUndefined();
|
|
459
|
+
|
|
460
|
+
expect(Object.getPrototypeOf(await schema.parseAsync(data))).toBe(Object.prototype);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
// an async value schema takes the promise write path
|
|
464
|
+
const asyncValue = z.record(
|
|
465
|
+
z.string().toLowerCase(),
|
|
466
|
+
value.refine(async () => true)
|
|
467
|
+
);
|
|
468
|
+
expect(Object.getPrototypeOf(await asyncValue.parseAsync(wire("__PROTO__")))).toBe(Object.prototype);
|
|
469
|
+
|
|
470
|
+
// ordinary normalization still lands as an own key
|
|
471
|
+
expect(z.record(z.string().toLowerCase(), value).parse({ KEY: payload })).toEqual({ key: payload });
|
|
472
|
+
});
|
|
473
|
+
|
|
405
474
|
test("dont remove undefined values", () => {
|
|
406
475
|
const result1 = z.record(z.string(), z.any()).parse({ foo: undefined });
|
|
407
476
|
|
|
@@ -523,24 +592,12 @@ test("partialRecord with z.literal([key, ...])", () => {
|
|
|
523
592
|
{
|
|
524
593
|
"error": [ZodError: [
|
|
525
594
|
{
|
|
526
|
-
"code": "
|
|
527
|
-
"
|
|
528
|
-
"issues": [
|
|
529
|
-
{
|
|
530
|
-
"code": "invalid_value",
|
|
531
|
-
"values": [
|
|
532
|
-
"id",
|
|
533
|
-
"name",
|
|
534
|
-
"email"
|
|
535
|
-
],
|
|
536
|
-
"path": [],
|
|
537
|
-
"message": "Invalid option: expected one of \\"id\\"|\\"name\\"|\\"email\\""
|
|
538
|
-
}
|
|
539
|
-
],
|
|
540
|
-
"path": [
|
|
595
|
+
"code": "unrecognized_keys",
|
|
596
|
+
"keys": [
|
|
541
597
|
"foo"
|
|
542
598
|
],
|
|
543
|
-
"
|
|
599
|
+
"path": [],
|
|
600
|
+
"message": "Unrecognized key: \\"foo\\""
|
|
544
601
|
}
|
|
545
602
|
]],
|
|
546
603
|
"success": false,
|
|
@@ -593,6 +650,45 @@ test("looseRecord passes through non-matching keys", () => {
|
|
|
593
650
|
expect(schema.parse({ other: "value" })).toEqual({ other: "value" });
|
|
594
651
|
});
|
|
595
652
|
|
|
653
|
+
test("looseRecord with closed key schema passes through unrecognized keys", () => {
|
|
654
|
+
const enumSchema = z.looseRecord(z.enum(["foo", "bar"]), z.any());
|
|
655
|
+
expect(enumSchema.parse({ foo: 123, bar: {}, baz: null })).toEqual({
|
|
656
|
+
foo: 123,
|
|
657
|
+
bar: {},
|
|
658
|
+
baz: null,
|
|
659
|
+
});
|
|
660
|
+
|
|
661
|
+
const literalSchema = z.looseRecord(z.literal(["foo", "bar"]), z.any());
|
|
662
|
+
expect(literalSchema.parse({ foo: 123, bar: {}, baz: null })).toEqual({
|
|
663
|
+
foo: 123,
|
|
664
|
+
bar: {},
|
|
665
|
+
baz: null,
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
// Recognized keys are still validated
|
|
669
|
+
const validated = z.looseRecord(z.enum(["foo", "bar"]), z.string());
|
|
670
|
+
expect(validated.parse({ foo: "ok", bar: "ok", baz: 123 })).toEqual({
|
|
671
|
+
foo: "ok",
|
|
672
|
+
bar: "ok",
|
|
673
|
+
baz: 123,
|
|
674
|
+
});
|
|
675
|
+
expect(() => validated.parse({ foo: 123 })).toThrow();
|
|
676
|
+
});
|
|
677
|
+
|
|
678
|
+
test("record with closed key schema still rejects unrecognized keys", () => {
|
|
679
|
+
const schema = z.record(z.enum(["foo", "bar"]), z.any());
|
|
680
|
+
expect(schema.safeParse({ foo: 123, bar: {}, baz: null }).success).toBe(false);
|
|
681
|
+
});
|
|
682
|
+
|
|
683
|
+
// __proto__ in input must not replace the prototype of the parsed object via the assignment setter on the result {}. https://github.com/colinhacks/zod/security/advisories/GHSA-r34p-xfmx-58wv
|
|
684
|
+
test("looseRecord with closed key schema drops __proto__", () => {
|
|
685
|
+
const schema = z.looseRecord(z.enum(["foo", "bar"]), z.any());
|
|
686
|
+
const parsed = schema.parse(JSON.parse('{"foo":1,"bar":2,"__proto__":{"isAdmin":true}}'));
|
|
687
|
+
expect(Object.keys(parsed)).toEqual(["foo", "bar"]);
|
|
688
|
+
expect((parsed as any).isAdmin).toBeUndefined();
|
|
689
|
+
expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
|
|
690
|
+
});
|
|
691
|
+
|
|
596
692
|
test("intersection of loose records", () => {
|
|
597
693
|
const schema = z.intersection(
|
|
598
694
|
z.object({ name: z.string() }).passthrough(),
|
|
@@ -706,8 +802,7 @@ test("v3-compat single-arg form: z.record(valueType)", () => {
|
|
|
706
802
|
expect(withMessage.keyType._zod.def.type).toEqual("string");
|
|
707
803
|
expect(withMessage.valueType._zod.def.type).toEqual("number");
|
|
708
804
|
|
|
709
|
-
// toJSONSchema should produce a well-formed schema (regression: previously produced
|
|
710
|
-
// additionalProperties from undefined valueType, crashing process())
|
|
805
|
+
// toJSONSchema should produce a well-formed schema (regression: previously produced additionalProperties from undefined valueType, crashing process())
|
|
711
806
|
const json = z.toJSONSchema(schema);
|
|
712
807
|
expect(json).toMatchObject({
|
|
713
808
|
type: "object",
|
|
@@ -715,3 +810,76 @@ test("v3-compat single-arg form: z.record(valueType)", () => {
|
|
|
715
810
|
additionalProperties: { type: "number" },
|
|
716
811
|
});
|
|
717
812
|
});
|
|
813
|
+
|
|
814
|
+
test("__proto__ in a finite key set is stripped", () => {
|
|
815
|
+
const data = JSON.parse('{"__proto__":{"a":"declared"},"b":{"a":"good"}}');
|
|
816
|
+
|
|
817
|
+
for (const schema of [
|
|
818
|
+
z.record(z.enum(["__proto__", "b"]), z.object({ a: z.string() })),
|
|
819
|
+
z.record(z.literal(["__proto__", "b"]), z.object({ a: z.string() })),
|
|
820
|
+
]) {
|
|
821
|
+
const parsed: any = schema.parse(data);
|
|
822
|
+
expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
|
|
823
|
+
expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
|
|
824
|
+
expect(Object.keys(parsed)).toEqual(["b"]);
|
|
825
|
+
expect(parsed.a).toBeUndefined();
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
expect(({} as any).a).toBeUndefined();
|
|
829
|
+
});
|
|
830
|
+
|
|
831
|
+
test("a raw __proto__ input key stays skipped in loose mode", () => {
|
|
832
|
+
const parsed: any = z.looseRecord(z.iso.datetime(), z.unknown()).parse(JSON.parse('{"__proto__":{"a":1}}'));
|
|
833
|
+
|
|
834
|
+
expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
|
|
835
|
+
expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
|
|
836
|
+
});
|
|
837
|
+
|
|
838
|
+
test("partialRecord strips a declared __proto__ key", () => {
|
|
839
|
+
const schema = z.partialRecord(z.enum(["__proto__", "b"]), z.string());
|
|
840
|
+
const parsed: any = schema.parse(Object.fromEntries([["__proto__", "declared"]]));
|
|
841
|
+
|
|
842
|
+
expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
|
|
843
|
+
expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
|
|
844
|
+
expect(parsed).toEqual({});
|
|
845
|
+
expect(schema.parse({})).toEqual({});
|
|
846
|
+
expect(schema.safeParse({ other: "x" }).success).toBe(false);
|
|
847
|
+
});
|
|
848
|
+
|
|
849
|
+
test("partialRecord strips a declared __proto__ key in loose mode", () => {
|
|
850
|
+
const key = z.enum(["__proto__"]).refine(() => false);
|
|
851
|
+
const schema = z.partialRecord(key, z.unknown(), { mode: "loose" });
|
|
852
|
+
const value = { marker: true };
|
|
853
|
+
const parsed: any = schema.parse(Object.fromEntries([["__proto__", value]]));
|
|
854
|
+
|
|
855
|
+
expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
|
|
856
|
+
expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
|
|
857
|
+
expect(parsed).toEqual({});
|
|
858
|
+
expect(parsed.marker).toBeUndefined();
|
|
859
|
+
});
|
|
860
|
+
|
|
861
|
+
test("partial is internal to partialRecord", () => {
|
|
862
|
+
// @ts-expect-error partial is not a public record parameter
|
|
863
|
+
z.record(z.enum(["a"]), z.string(), { partial: true });
|
|
864
|
+
|
|
865
|
+
const schema = z.partialRecord(z.enum(["a"]), z.string(), { partial: false } as any);
|
|
866
|
+
expect(schema.parse({})).toEqual({});
|
|
867
|
+
});
|
|
868
|
+
|
|
869
|
+
test("partialRecord strips a declared __proto__ key before transforms", () => {
|
|
870
|
+
const schema = z.partialRecord(
|
|
871
|
+
z.literal("__proto__").transform(() => "safe" as const),
|
|
872
|
+
z.string()
|
|
873
|
+
);
|
|
874
|
+
|
|
875
|
+
expect(schema.parse(Object.fromEntries([["__proto__", "value"]]))).toEqual({});
|
|
876
|
+
});
|
|
877
|
+
|
|
878
|
+
test("a finite __proto__ key is ignored whether present or missing", () => {
|
|
879
|
+
const schema = z.record(z.enum(["__proto__"]), z.string());
|
|
880
|
+
const parsed: any = schema.parse({});
|
|
881
|
+
|
|
882
|
+
expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
|
|
883
|
+
expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
|
|
884
|
+
expect(schema.parse(Object.fromEntries([["__proto__", 123]]))).toEqual({});
|
|
885
|
+
});
|
|
@@ -135,8 +135,7 @@ test("pick and omit with getter", () => {
|
|
|
135
135
|
}
|
|
136
136
|
expectTypeOf<Category>().toEqualTypeOf<_Category>();
|
|
137
137
|
|
|
138
|
-
// Shape should not surface `readonly` modifiers from getter-defined keys.
|
|
139
|
-
// object/strictObject/looseObject all pass shape through util.Writeable<T>.
|
|
138
|
+
// Shape should not surface `readonly` modifiers from getter-defined keys. object/strictObject/looseObject all pass shape through util.Writeable<T>.
|
|
140
139
|
type Shape = (typeof Category)["shape"];
|
|
141
140
|
expectTypeOf<Shape>().toEqualTypeOf<{ name: z.ZodString; subcategories: z.ZodArray<typeof Category> }>();
|
|
142
141
|
|
|
@@ -629,3 +628,35 @@ test("recursive type with `id` meta", () => {
|
|
|
629
628
|
},
|
|
630
629
|
});
|
|
631
630
|
});
|
|
631
|
+
|
|
632
|
+
test("mutual recursion through discriminatedUnion getter", () => {
|
|
633
|
+
const variantA = z.object({
|
|
634
|
+
kind: z.literal("a"),
|
|
635
|
+
get child() {
|
|
636
|
+
return tree.optional();
|
|
637
|
+
},
|
|
638
|
+
});
|
|
639
|
+
|
|
640
|
+
const variantB = z.object({
|
|
641
|
+
kind: z.literal("b"),
|
|
642
|
+
get sibling() {
|
|
643
|
+
return tree.optional();
|
|
644
|
+
},
|
|
645
|
+
});
|
|
646
|
+
|
|
647
|
+
const tree = z.discriminatedUnion("kind", [variantA, variantB]);
|
|
648
|
+
|
|
649
|
+
type _Tree = { kind: "a"; child?: _Tree | undefined } | { kind: "b"; sibling?: _Tree | undefined };
|
|
650
|
+
|
|
651
|
+
const treeUnion = z.union([variantA, variantB]);
|
|
652
|
+
|
|
653
|
+
expectTypeOf<z.input<typeof tree>>().toEqualTypeOf<_Tree>();
|
|
654
|
+
expectTypeOf<z.input<typeof tree>>().not.toBeAny();
|
|
655
|
+
expectTypeOf<z.input<typeof tree>>().toEqualTypeOf<z.input<typeof treeUnion>>();
|
|
656
|
+
|
|
657
|
+
expect(tree.parse({ kind: "a", child: { kind: "b", sibling: { kind: "a" } } })).toEqual({
|
|
658
|
+
kind: "a",
|
|
659
|
+
child: { kind: "b", sibling: { kind: "a" } },
|
|
660
|
+
});
|
|
661
|
+
expect(() => tree.parse({ kind: "c" })).toThrow();
|
|
662
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { checkSync } from "recheck";
|
|
2
|
+
import { expect, test } from "vitest";
|
|
3
|
+
import * as z from "zod/v4";
|
|
4
|
+
|
|
5
|
+
const { regexes } = z.core;
|
|
6
|
+
|
|
7
|
+
/** Every pattern `core/regexes.ts` ships, with the parameterized ones materialized across their argument space. */
|
|
8
|
+
function allPatterns(): [string, RegExp][] {
|
|
9
|
+
const patterns: [string, RegExp][] = [];
|
|
10
|
+
for (const [name, value] of Object.entries(regexes)) {
|
|
11
|
+
if (value instanceof RegExp) patterns.push([name, value]);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
patterns.push(
|
|
15
|
+
["emoji()", regexes.emoji()],
|
|
16
|
+
["mac()", regexes.mac()],
|
|
17
|
+
["mac('-')", regexes.mac("-")],
|
|
18
|
+
["uuid()", regexes.uuid()],
|
|
19
|
+
["string()", regexes.string()],
|
|
20
|
+
["string({min,max})", regexes.string({ minimum: 1, maximum: 10 })]
|
|
21
|
+
);
|
|
22
|
+
for (const version of [1, 2, 3, 4, 5, 6, 7, 8]) patterns.push([`uuid(${version})`, regexes.uuid(version)]);
|
|
23
|
+
for (const precision of [null, -1, 0, 3, 6]) {
|
|
24
|
+
patterns.push([`time(${precision})`, regexes.time({ precision })]);
|
|
25
|
+
for (const local of [false, true]) {
|
|
26
|
+
for (const offset of [false, true]) {
|
|
27
|
+
patterns.push([`datetime(${precision},${local},${offset})`, regexes.datetime({ precision, local, offset })]);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return patterns;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
test("no built-in pattern is ReDoS-vulnerable", () => {
|
|
35
|
+
const patterns = allPatterns();
|
|
36
|
+
// Guards against the reflection above silently going empty if the module layout changes.
|
|
37
|
+
expect(patterns.length).toBeGreaterThan(80);
|
|
38
|
+
|
|
39
|
+
const vulnerable: string[] = [];
|
|
40
|
+
for (const [name, pattern] of patterns) {
|
|
41
|
+
// Flags are load-bearing. Without "u" the checker reads `\p{...}` as a literal `p{...}` and reports an exponential pattern as safe.
|
|
42
|
+
const result = checkSync(pattern.source, pattern.flags);
|
|
43
|
+
// "unknown" means the checker gave up, not that the pattern is vulnerable.
|
|
44
|
+
if (result.status !== "vulnerable") continue;
|
|
45
|
+
// The fuzz checker derives "vulnerable" from how long an attack string runs, so CPU contention from parallel test files can flip a safe pattern. Confirm with a budget large enough that only real backtracking can exhaust it.
|
|
46
|
+
const confirmed = checkSync(pattern.source, pattern.flags, { attackTimeout: 10_000 });
|
|
47
|
+
if (confirmed.status === "vulnerable") vulnerable.push(`${name}: ${pattern.source}`);
|
|
48
|
+
}
|
|
49
|
+
expect(vulnerable).toEqual([]);
|
|
50
|
+
}, 60000);
|
|
51
|
+
|
|
52
|
+
test("emoji rejects a backtracking payload in linear time", () => {
|
|
53
|
+
// U+1F9B0-U+1F9B3 are the only code points in both \p{Extended_Pictographic} and \p{Emoji_Component}. A failing match over them used to backtrack exponentially: 26 of them took ~1.9s, and each additional character roughly doubled it.
|
|
54
|
+
const schema = z.emoji();
|
|
55
|
+
const payload = `${"🦰".repeat(26)} `;
|
|
56
|
+
|
|
57
|
+
// Warm up first, then take the best of three: a cold first call is dominated by JIT and can cost hundreds of times the steady-state match on a loaded machine.
|
|
58
|
+
expect(schema.safeParse(payload).success).toBe(false);
|
|
59
|
+
let best = Number.POSITIVE_INFINITY;
|
|
60
|
+
for (let i = 0; i < 3; i++) {
|
|
61
|
+
const start = performance.now();
|
|
62
|
+
schema.safeParse(payload);
|
|
63
|
+
best = Math.min(best, performance.now() - start);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// The linear pattern matches in well under a millisecond, so this budget leaves three orders of magnitude of headroom for CPU contention while still catching the exponential regression.
|
|
67
|
+
expect(best).toBeLessThan(500);
|
|
68
|
+
});
|
|
@@ -338,6 +338,66 @@ describe("superRefine functionality", () => {
|
|
|
338
338
|
}
|
|
339
339
|
});
|
|
340
340
|
|
|
341
|
+
test("should preserve explicit nullish issue input", () => {
|
|
342
|
+
const schema = z.string().superRefine((_, ctx) => {
|
|
343
|
+
ctx.addIssue({ code: "custom", message: "default" });
|
|
344
|
+
ctx.addIssue({ code: "custom", message: "null", input: null });
|
|
345
|
+
ctx.addIssue({ code: "custom", message: "undefined", input: undefined });
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
const result = schema.safeParse("sensitive", { reportInput: true });
|
|
349
|
+
expect(result.success).toEqual(false);
|
|
350
|
+
if (!result.success) {
|
|
351
|
+
expect(result.error.issues).toHaveLength(3);
|
|
352
|
+
expect(result.error.issues[0].input).toEqual("sensitive");
|
|
353
|
+
expect(result.error.issues[1].input).toEqual(null);
|
|
354
|
+
expect(result.error.issues[2]).toHaveProperty("input");
|
|
355
|
+
expect(result.error.issues[2].input).toEqual(undefined);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
test("should keep issue input aligned with the issue path", () => {
|
|
360
|
+
const nested = z.object({ a: z.string().nullable() }).superRefine((val, ctx) => {
|
|
361
|
+
if (val.a === null) ctx.addIssue({ code: "custom", path: ["a"], input: val.a, message: "no null" });
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
const direct = nested.safeParse({ a: null }, { reportInput: true });
|
|
365
|
+
expect(direct.success).toEqual(false);
|
|
366
|
+
if (!direct.success) {
|
|
367
|
+
expect(direct.error.issues[0].path).toEqual(["a"]);
|
|
368
|
+
expect(direct.error.issues[0].input).toEqual(null);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// Forwarding a nested parse's issues must not overwrite their input with the outer payload.
|
|
372
|
+
const inner = z.object({ x: z.string() });
|
|
373
|
+
const forwarding = z.unknown().superRefine((val, ctx) => {
|
|
374
|
+
const result = inner.safeParse(val, { reportInput: true });
|
|
375
|
+
if (!result.success) {
|
|
376
|
+
for (const iss of result.error.issues) {
|
|
377
|
+
ctx.addIssue({ code: "custom", path: iss.path, input: iss.input, message: iss.message });
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
});
|
|
381
|
+
|
|
382
|
+
const forwarded = forwarding.safeParse({}, { reportInput: true });
|
|
383
|
+
expect(forwarded.success).toEqual(false);
|
|
384
|
+
if (!forwarded.success) {
|
|
385
|
+
expect(forwarded.error.issues[0].path).toEqual(["x"]);
|
|
386
|
+
expect(forwarded.error.issues[0]).toHaveProperty("input");
|
|
387
|
+
expect(forwarded.error.issues[0].input).toEqual(undefined);
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
|
|
391
|
+
test("should surface an explicit undefined input to the error map", () => {
|
|
392
|
+
const schema = z.object({ a: z.string().optional() }).superRefine((val, ctx) => {
|
|
393
|
+
if (!val.a) ctx.addIssue({ code: "custom", path: ["a"], input: val.a });
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
const result = schema.safeParse({}, { error: (iss) => (iss.input === undefined ? "Required" : "Invalid") });
|
|
397
|
+
expect(result.success).toEqual(false);
|
|
398
|
+
if (!result.success) expect(result.error.issues[0].message).toEqual("Required");
|
|
399
|
+
});
|
|
400
|
+
|
|
341
401
|
test("should respect fatal flag in superRefine", () => {
|
|
342
402
|
const schema = z
|
|
343
403
|
.string()
|
|
@@ -85,6 +85,15 @@ test("failing when set is bigger than max() ", () => {
|
|
|
85
85
|
expect(result.error!.issues[0].code).toEqual("too_big");
|
|
86
86
|
});
|
|
87
87
|
|
|
88
|
+
test("failing when set does not match size() ", () => {
|
|
89
|
+
expect(justTwo.safeParse(new Set(["one"])).error!.issues[0].message).toEqual(
|
|
90
|
+
"Too small: expected set to have exactly 2 items"
|
|
91
|
+
);
|
|
92
|
+
expect(justTwo.safeParse(new Set(["one", "two", "three"])).error!.issues[0].message).toEqual(
|
|
93
|
+
"Too big: expected set to have exactly 2 items"
|
|
94
|
+
);
|
|
95
|
+
});
|
|
96
|
+
|
|
88
97
|
test("doesn’t throw when an empty set is given", () => {
|
|
89
98
|
const result = stringSet.safeParse(new Set([]));
|
|
90
99
|
expect(result.success).toEqual(true);
|