{"version":3,"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ignore/7.0.5/d6411cd18dd20fbb425503c2ba0ac12fc6b5c7b2b2481cbdc797c212eb8be050/node_modules/ignore/index.js","../../memory/dist/chunk-PZ5AY32C.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/async-mutex/0.5.0/4b32f2ae13cd0d7acb694455f7c2810d59202098580506b1730c21c7ab02798f/node_modules/async-mutex/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/lru-cache/11.3.6/b7aabe11dec4a323f2bc5d1c0cb6506e78e455e0fb196778ec2463783722b801/node_modules/lru-cache/src/diagnostics-channel-node.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/lru-cache/11.3.6/b7aabe11dec4a323f2bc5d1c0cb6506e78e455e0fb196778ec2463783722b801/node_modules/lru-cache/src/perf.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/lru-cache/11.3.6/b7aabe11dec4a323f2bc5d1c0cb6506e78e455e0fb196778ec2463783722b801/node_modules/lru-cache/src/index.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/secure-json-parse/2.7.0/1f65efb0c6ff2d0f745ac6dfe22202b559993ceecd896afead5fc2c075b2d349/node_modules/secure-json-parse/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/1.1.3/7d8eaddb7973e5820d04ac18a887c85cc63f173732e3c66432ceefbff819b4ac/node_modules/@ai-sdk/provider/src/errors/ai-sdk-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/1.1.3/7d8eaddb7973e5820d04ac18a887c85cc63f173732e3c66432ceefbff819b4ac/node_modules/@ai-sdk/provider/src/errors/api-call-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/1.1.3/7d8eaddb7973e5820d04ac18a887c85cc63f173732e3c66432ceefbff819b4ac/node_modules/@ai-sdk/provider/src/errors/get-error-message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/1.1.3/7d8eaddb7973e5820d04ac18a887c85cc63f173732e3c66432ceefbff819b4ac/node_modules/@ai-sdk/provider/src/errors/invalid-argument-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/1.1.3/7d8eaddb7973e5820d04ac18a887c85cc63f173732e3c66432ceefbff819b4ac/node_modules/@ai-sdk/provider/src/errors/json-parse-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/1.1.3/7d8eaddb7973e5820d04ac18a887c85cc63f173732e3c66432ceefbff819b4ac/node_modules/@ai-sdk/provider/src/errors/type-validation-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/nanoid/3.3.12/d3cc005612b7a8092b0a69165d914c0ba90a6688b989e338761a671f4e42c3ea/node_modules/nanoid/non-secure/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/parse-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/convert-async-iterator-to-readable-stream.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/delay.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/generate-id.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/get-error-message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/is-abort-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/validator.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/2.2.8/5d01f07c1135cda39361d88ef78836678671b589ef7570e018de43f4760e595c/node_modules/@ai-sdk/provider-utils/src/validate-types.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/external.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/helpers/util.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/ZodError.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/locales/en.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/errors.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/helpers/parseUtil.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/helpers/errorUtil.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v3/types.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/Options.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/Refs.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/errorMessages.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/any.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/array.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/date.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/default.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/string.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/record.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/map.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/never.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/null.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/union.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/number.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/object.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/set.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/selectParser.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/parseDef.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod-to-json-schema/3.25.1/337cb207c66d48e6fa61936b69e8322163cd8ec62973d6a7f5e682eec382f4e2/node_modules/zod-to-json-schema/dist/esm/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/ui-utils/1.2.11/f374dccd3a16a287df45222b3686b58f3578b106d81ff3ec04cd7f23acbeda34/node_modules/@ai-sdk/ui-utils/src/fix-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/ui-utils/1.2.11/f374dccd3a16a287df45222b3686b58f3578b106d81ff3ec04cd7f23acbeda34/node_modules/@ai-sdk/ui-utils/src/parse-partial-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/ui-utils/1.2.11/f374dccd3a16a287df45222b3686b58f3578b106d81ff3ec04cd7f23acbeda34/node_modules/@ai-sdk/ui-utils/src/data-stream-parts.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/ui-utils/1.2.11/f374dccd3a16a287df45222b3686b58f3578b106d81ff3ec04cd7f23acbeda34/node_modules/@ai-sdk/ui-utils/src/zod-schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/ui-utils/1.2.11/f374dccd3a16a287df45222b3686b58f3578b106d81ff3ec04cd7f23acbeda34/node_modules/@ai-sdk/ui-utils/src/schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/platform/node/globalThis.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/version.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/internal/semver.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/internal/global-utils.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/diag/ComponentLogger.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/diag/types.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/diag/internal/logLevelLogger.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/api/diag.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/context/context.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/context/NoopContextManager.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/api/context.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/trace_flags.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/invalid-span-constants.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/NonRecordingSpan.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/context-utils.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/spancontext-utils.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/NoopTracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/ProxyTracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/NoopTracerProvider.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/ProxyTracerProvider.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace/status.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/api/trace.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/trace-api.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/util/prepare-response-headers.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/errors/unsupported-model-version-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/errors/invalid-argument-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/util/retry-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/util/retry-with-exponential-backoff.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/prompt/prepare-retries.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/telemetry/assemble-operation-name.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/telemetry/get-base-telemetry-attributes.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/telemetry/noop-tracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/telemetry/get-tracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/telemetry/record-span.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/telemetry/select-telemetry-attributes.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/util/split-array.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/embed/embed-many.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/errors/no-object-generated-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/prompt/data-content.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/types/json-value.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/types/provider-metadata.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/prompt/tool-result-content.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/prompt/content-part.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/prompt/message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/generate-object/inject-json-instruction.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/generate-object/generate-object.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/generate-object/stream-object.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/generate-text/generate-text.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/generate-text/output.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/util/merge-streams.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/generate-text/stream-text.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/tool/mcp/types.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/core/tool/mcp/json-rpc-message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/streams/langchain-adapter.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/streams/stream-callbacks.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/4.3.19/df6196f76425ef057f060dd3acec36b109ea79cf3497eb218972ae68bfee3f98/node_modules/ai/streams/llamaindex-adapter.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/external.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/core.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/util.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/errors.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/parse.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/regexes.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/checks.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/doc.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/versions.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/schemas.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ar.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/az.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/be.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/bg.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ca.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/cs.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/da.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/de.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/el.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/en.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/eo.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/es.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/fa.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/fi.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/fr.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/fr-CA.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/he.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/hr.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/hu.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/hy.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/id.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/is.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/it.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ja.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ka.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/km.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/kh.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ko.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/lt.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/mk.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ms.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/nl.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/no.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ota.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ps.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/pl.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/pt.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ro.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ru.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/sl.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/sv.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ta.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/th.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/tr.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/uk.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ua.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/ur.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/uz.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/vi.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/zh-CN.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/zh-TW.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/locales/yo.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/registries.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/api.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/to-json-schema.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/json-schema-processors.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/json-schema-generator.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/core/json-schema.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/schemas.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/checks.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/iso.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/errors.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/parse.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/compat.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/from-json-schema.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v4/classic/coerce.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v3/helpers/util.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v3/ZodError.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v3/helpers/errorUtil.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/4.4.3/09b4e1f4024540142723f154808f0d43eb14b44b685c1085d435a20f90e89165/node_modules/zod/v3/types.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/src/errors/ai-sdk-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/src/errors/api-call-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/src/errors/empty-response-body-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/src/errors/get-error-message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/src/errors/invalid-argument-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/src/errors/json-parse-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/src/errors/type-validation-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/eventsource-parser/3.0.8/353c45c343d0acc1586e9cb9ff7be48ebf30a434bf7b8c9762d411b79278d167/node_modules/eventsource-parser/src/errors.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/eventsource-parser/3.0.8/353c45c343d0acc1586e9cb9ff7be48ebf30a434bf7b8c9762d411b79278d167/node_modules/eventsource-parser/src/parse.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/eventsource-parser/3.0.8/353c45c343d0acc1586e9cb9ff7be48ebf30a434bf7b8c9762d411b79278d167/node_modules/eventsource-parser/src/stream.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/combine-headers.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/delay.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/extract-response-headers.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/generate-id.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/get-error-message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/is-abort-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/handle-fetch-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/get-runtime-environment-user-agent.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/normalize-headers.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/with-user-agent-suffix.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/version.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/get-from-api.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/load-optional-setting.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/secure-json-parse.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/validator.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/validate-types.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/parse-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/parse-json-event-stream.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/types/tool.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/provider-defined-tool-factory.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/resolve.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/response-handler.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/add-additional-properties-to-json-schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/options.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/any.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/array.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/bigint.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/boolean.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/branded.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/catch.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/date.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/default.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/effects.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/enum.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/intersection.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/literal.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/string.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/record.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/map.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/native-enum.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/never.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/null.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/union.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/nullable.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/number.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/object.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/optional.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/pipeline.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/promise.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/set.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/tuple.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/undefined.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/unknown.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parsers/readonly.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/select-parser.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/get-relative-path.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/parse-def.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/refs.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/zod-to-json-schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-to-json-schema/index.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/zod-schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/as-schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.25/cc56c205d8774fccdb74f9980b192c7b03ce3165d238ea24e5d9df2ea7e58d5c/node_modules/@ai-sdk/provider-utils/src/without-trailing-slash.ts","../../_vendored/oidc-stub.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-authentication-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-invalid-request-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-rate-limit-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-model-not-found-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-internal-server-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-response-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/create-gateway-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/extract-api-call-response.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/gateway-timeout-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/as-gateway-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/errors/parse-auth-method.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-model-entry.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-fetch-metadata.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-spend-report.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-generation-info.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-language-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-embedding-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-image-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/tool/parallel-search.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/tool/perplexity-search.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-tools.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/vercel-environment.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/version.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.88/ed969664593dc6178740d59c2198f0010a55c3c4c851473a1d2f16c876f28f11/node_modules/@ai-sdk/gateway/src/gateway-provider.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/error/invalid-argument-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/error/no-object-generated-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/error/unsupported-model-version-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/util/retry-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/model/resolve-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/version.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/prompt/data-content.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/types/json-value.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/types/provider-metadata.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/prompt/content-part.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/prompt/message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/telemetry/assemble-operation-name.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/telemetry/get-base-telemetry-attributes.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/telemetry/noop-tracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/telemetry/get-tracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/telemetry/record-span.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/telemetry/select-telemetry-attributes.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/util/retry-with-exponential-backoff.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/util/prepare-retries.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/generate-text/generate-text.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/util/fix-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/util/parse-partial-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/generate-text/stream-text.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/util/split-array.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/embed/embed-many.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/generate-object/generate-object.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/generate-object/stream-object.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/generate-text/output.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/classic/external.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/core.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/util.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/errors.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/parse.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/regexes.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/checks.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/doc.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/versions.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/schemas.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ar.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/az.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/be.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ca.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/cs.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/de.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/en.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/eo.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/es.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/fa.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/fi.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/fr.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/fr-CA.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/he.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/hu.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/id.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/it.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ja.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/kh.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ko.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/mk.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ms.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/nl.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/no.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ota.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ps.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/pl.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/pt.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ru.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/sl.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/sv.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ta.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/th.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/tr.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ua.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/ur.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/vi.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/zh-CN.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/locales/zh-TW.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/registries.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/api.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/function.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/to-json-schema.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/core/json-schema.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/classic/iso.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/classic/errors.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/classic/parse.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/classic/schemas.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/classic/compat.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/zod/3.25.76/7137186c3790243b593612573154eb5e6c6084f41028ee5828258e8c91251cd6/node_modules/zod/v4/classic/coerce.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.10/0a7346fe2d918129694b7a3854f60556297703876a7eb06af86e8f8dfed8a65f/node_modules/@ai-sdk/provider/src/errors/ai-sdk-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.10/0a7346fe2d918129694b7a3854f60556297703876a7eb06af86e8f8dfed8a65f/node_modules/@ai-sdk/provider/src/errors/api-call-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.10/0a7346fe2d918129694b7a3854f60556297703876a7eb06af86e8f8dfed8a65f/node_modules/@ai-sdk/provider/src/errors/empty-response-body-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.10/0a7346fe2d918129694b7a3854f60556297703876a7eb06af86e8f8dfed8a65f/node_modules/@ai-sdk/provider/src/errors/get-error-message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.10/0a7346fe2d918129694b7a3854f60556297703876a7eb06af86e8f8dfed8a65f/node_modules/@ai-sdk/provider/src/errors/invalid-argument-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.10/0a7346fe2d918129694b7a3854f60556297703876a7eb06af86e8f8dfed8a65f/node_modules/@ai-sdk/provider/src/errors/json-parse-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/3.0.10/0a7346fe2d918129694b7a3854f60556297703876a7eb06af86e8f8dfed8a65f/node_modules/@ai-sdk/provider/src/errors/type-validation-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/combine-headers.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/delay.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/extract-response-headers.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/uint8-utils.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/generate-id.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/get-error-message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/is-abort-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/handle-fetch-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/get-runtime-environment-user-agent.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/normalize-headers.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/with-user-agent-suffix.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/version.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/get-from-api.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/load-optional-setting.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/secure-json-parse.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/add-additional-properties-to-json-schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/options.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/any.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/array.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/bigint.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/boolean.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/branded.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/catch.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/date.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/default.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/effects.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/enum.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/intersection.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/literal.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/string.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/record.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/map.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/native-enum.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/never.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/null.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/union.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/nullable.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/number.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/object.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/optional.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/pipeline.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/promise.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/set.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/tuple.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/undefined.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/unknown.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parsers/readonly.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/select-parser.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/get-relative-path.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/parse-def.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/refs.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/to-json-schema/zod3-to-json-schema/zod3-to-json-schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/schema.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/validate-types.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/parse-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/parse-json-event-stream.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/types/tool.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/provider-tool-factory.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/resolve.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/response-handler.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/4.0.27/8fc6a0e0ec47dbbe757bd2f31febb1f5793bde1fb82dd7502ad7bdca74847565/node_modules/@ai-sdk/provider-utils/src/without-trailing-slash.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-authentication-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-invalid-request-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-rate-limit-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-model-not-found-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-internal-server-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-response-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/create-gateway-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/extract-api-call-response.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/gateway-timeout-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/as-gateway-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/errors/parse-auth-method.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-model-entry.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-fetch-metadata.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-spend-report.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-generation-info.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-language-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-embedding-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-image-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-video-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-reranking-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/tool/parallel-search.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/tool/perplexity-search.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-tools.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/vercel-environment.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/version.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/3.0.112/ee6fd7033799dc1080c1b88fcd8352e09c9a867fa4b85cb3757c85fb2ffeee40/node_modules/@ai-sdk/gateway/src/gateway-provider.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/src/context-api.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/error/invalid-argument-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/error/no-object-generated-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/error/unsupported-model-version-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/util/retry-error.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/logger/log-warnings.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/util/log-v2-compatibility-warning.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/model/as-embedding-model-v3.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/model/resolve-model.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/prompt/call-settings.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/version.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/prompt/data-content.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/types/json-value.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/types/provider-metadata.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/prompt/content-part.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/prompt/message.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/telemetry/assemble-operation-name.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/telemetry/get-base-telemetry-attributes.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/telemetry/noop-tracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/telemetry/get-tracer.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/telemetry/record-span.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/telemetry/select-telemetry-attributes.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/util/retry-with-exponential-backoff.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/util/prepare-retries.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/generate-text/output.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/util/fix-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/util/parse-partial-json.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/generate-text/generate-text.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/ui-message-stream/ui-message-chunks.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/generate-text/stream-text.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/ui/validate-ui-messages.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/util/split-array.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/embed/embed-many.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/generate-object/generate-object.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/6.0.177/849a472421cbf4688024bd2b34c4c3abb4127a393a49d0c450fc312c2f1f1265/node_modules/ai/src/generate-object/stream-object.ts","../../memory/src/tools/om-tools.ts","../../memory/src/tools/working-memory.ts","../../memory/src/index.ts","../../agent-builder/src/types.ts","../../agent-builder/src/utils.ts","../../agent-builder/src/defaults.ts","../../agent-builder/src/processors/tool-summary.ts","../../agent-builder/src/agent/index.ts","../../agent-builder/src/workflows/template-builder/template-builder.ts","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.186/e654bd51ace23cc312269fe13cc642c74ffb9a34f822aa72b658ed1ce2b7f01d/node_modules/ai/src/generate-text/stop-condition.ts","../../agent-builder/src/workflows/shared/schema.ts","../../agent-builder/src/workflows/task-planning/prompts.ts","../../agent-builder/src/workflows/workflow-builder/schema.ts","../../agent-builder/src/workflows/task-planning/schema.ts","../../agent-builder/src/workflows/task-planning/task-planning.ts","../../agent-builder/src/workflows/workflow-builder/prompts.ts","../../agent-builder/src/workflows/workflow-builder/tools.ts","../../agent-builder/src/workflows/workflow-builder/workflow-builder.ts","../../agent-builder/src/workflows/workflow-map.ts"],"names":["__commonJS","SPACE","object","name","P","resolve","e","metrics","channel","tracing","tracingChannel","defaultPerf","hasSubscribers","warned","PROCESS","emitWarning","msg","type","code","fn","shouldWarn","isPosInt","n","getUintArray","max","ZeroArray","size","Stack","_Stack","#constructing","HeapCls","s","LRUCache","_LRUCache","#max","#maxSize","#dispose","#onInsert","#disposeAfter","#fetchMethod","#memoMethod","#perf","#size","#calculatedSize","#keyMap","#keyList","#valList","#next","#prev","#head","#tail","#free","#disposed","#sizes","#starts","#ttls","#autopurgeTimers","#hasDispose","#hasFetchMethod","#hasDisposeAfter","#hasOnInsert","c","p","#isBackgroundFetch","k","index","options","context","#backgroundFetch","#moveToTail","#indexes","#rindexes","#isStale","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","dispose","onInsert","disposeAfter","noDisposeOnSet","noUpdateTTL","maxSize","maxEntrySize","sizeCalculation","fetchMethod","memoMethod","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchRejection","allowStaleOnFetchAbort","ignoreFetchAbort","perf","UintArray","#initializeSizeTracking","#initializeTTLTracking","key","ttls","starts","purgeTimers","#setItemTTL","start","setPurgetTimer","#updateItemAge","t","#delete","#statusTTL","status","cachedNow","getNow","age","sizes","#removeItemSize","#requireSize","v","#addItemSize","#evict","_i","_s","_st","_k","_v","i","#isValidIndex","getOptions","value","#get","thisp","deleted","entry","remain","arr","#set","setOptions","result","oldVal","oldValue","dt","task","val","free","head","hasOptions","#has","peekOptions","#peek","ac","signal","fetchOpts","cb","updateCache","aborted","ignoreAbort","proceed","fetchFail","bf","vl","eb","er","allowStaleAborted","noDelete","pcall","res","rej","fmp","b","fetchOptions","ths","#fetch","forceRefresh","stale","isStale","staleVal","#forceFetch","memoOptions","#memo","refresh","vv","fetching","#connect","reason","#clear","pi","ni","suspectProtoRx","suspectConstructorRx","_parse","text","filter","parse","safeParse","_AISDKError","error","marker","symbol","_a","url","_TypeValidationError","__toESM","getErrorMessage","zodSchema","validator","SecureJSON","util","assertIs","assertNever","joinValues","array","objectUtil","json","issue","map","errorUtil","errorMap","check","transform","version","jwt","base64","_ZodString","parsedType","ctx","issues","elements","lazySchema","processed","preprocess","r","ZodFirstPartyTypeKind","emojiRegex","literal","types","x","base","required","jsonSchema","schema","textStreamPart","errorStreamPart","isCompatible","_b","DiagComponentLogger","DiagLogLevel","DiagAPI","__spreadArray","__read","BaseContext","NoopContextManager","API_NAME","ContextAPI","TraceFlags","NonRecordingSpan","NoopTracer","ProxyTracer","NoopTracerProvider","ProxyTracerProvider","SpanStatusCode","TraceAPI","success","InvalidArgumentError","AISDKError","attributes","embeddings","usage","z","createIdGenerator","__export","asSchema","parsePartialJson","safeParseJSON","safeValidateTypes","formatDataStreamPart","mergeIntoDataStream","toDataStream","toDataStreamResponse","toDataStreamInternal","external_exports","NEVER","ZodAny","ZodArray","ZodBigInt","ZodBoolean","ZodCatch","ZodDate","ZodDefault","ZodDiscriminatedUnion","ZodEnum","ZodError","ZodFunction","ZodIntersection","ZodIssueCode","ZodLazy","ZodLiteral","ZodMap","ZodNaN","ZodNever","ZodNull","ZodNullable","ZodNumber","ZodObject","ZodOptional","ZodPromise","ZodReadonly","ZodRecord","ZodSet","ZodString","ZodSymbol","ZodTuple","ZodType","ZodUndefined","ZodUnion","ZodUnknown","ZodVoid","_default","base64url","bigint","boolean","_catch","cidrv4","cidrv6","core_exports","cuid","cuid2","custom","date","decode","decodeAsync","describe","e164","email","emoji","encode","encodeAsync","_enum","getErrorMap","guid","hex","hostname","ipv4","ipv6","ksuid","mac","meta","nanoid","_null","nullish","number","parseAsync","safeDecode","safeDecodeAsync","safeEncode","safeEncodeAsync","safeParseAsync","setErrorMap","string","ulid","_undefined","uuid","_void","xid","_emoji","isValidJWT","process","initializer","floatSafeRemainder","getParsedType","F","Class","config","time","timeRegex","inst","checks","isAborted","checkResult","canary","_","isObject","allowsEval","results","left","right","mergeValues","keyResult","valueResult","output","en_default","codec","id","file","registry","schemas_exports","checks_exports","datetime","duration","def","objectSchema","_ZodError","APICallError","JSONParseError","TypeValidationError","trailing","line","delay","isAbortError","VERSION","fetch","validatorSymbol","isValidator","asValidator","standardSchema","getOriginalFetch","tool","outputSchema","schemaSymbol","ignoreOverride","defaultOptions","getDefaultOptions","parseAnyDef","parseArrayDef","parseDef","parseBigintDef","parseBooleanDef","parseBrandedDef","parseCatchDef","parseDateDef","integerDateParser","parseDefaultDef","parseEffectsDef","parseEnumDef","isJsonSchema7AllOfType","parseIntersectionDef","parseLiteralDef","zodPatterns","parseStringDef","addFormat","addPattern","escapeLiteralCheckValue","escapeNonAlphaNumeric","ALPHA_NUMERIC","stringifyRegExpWithFlags","parseRecordDef","parseMapDef","parseNativeEnumDef","parseNeverDef","parseNullDef","primitiveMappings","parseUnionDef","asAnyOf","parseNullableDef","parseNumberDef","parseObjectDef","safeIsOptional","decideAdditionalProperties","parseOptionalDef","parsePipelineDef","parsePromiseDef","parseSetDef","parseTupleDef","parseUndefinedDef","parseUnknownDef","parseReadonlyDef","selectParser","getRelativePath","get$ref","addMeta","getRefs","zodToJsonSchema","isSchema","lazyValidator","getFromApi","createJsonResponseHandler","createJsonErrorResponseHandler","postJsonToApi","combineHeaders","createProviderDefinedToolFactoryWithOutputSchema","now","_globalThis","re","_makeCompatibilityCheck","major","GLOBAL_OPENTELEMETRY_API_KEY","_global","registerGlobal","getGlobal","unregisterGlobal","logProxy","createLogLevelDiagLogger","createContextKey","ROOT_CONTEXT","NOOP_CONTEXT_MANAGER","INVALID_SPANID","INVALID_TRACEID","INVALID_SPAN_CONTEXT","SPAN_KEY","getSpan","getActiveSpan","setSpan","deleteSpan","setSpanContext","getSpanContext","VALID_TRACEID_REGEX","VALID_SPANID_REGEX","isValidTraceId","isValidSpanId","isSpanContextValid","wrapSpanContext","contextApi","isSpanContext","NOOP_TRACER","NOOP_TRACER_PROVIDER","trace","NoObjectGeneratedError","UnsupportedModelVersionError","RetryError","dataContentSchema","jsonValueSchema","providerMetadataSchema","textPartSchema","imagePartSchema","filePartSchema","reasoningPartSchema","toolCallPartSchema","toolResultPartSchema","assembleOperationName","getBaseTelemetryAttributes","noopTracer","noopSpan","noopSpanContext","getTracer","recordSpan","recordErrorOnSpan","selectTelemetryAttributes","_retryWithExponentialBackoff","prepareRetries","fixJson","splitArray","embedMany","withUserAgentSuffix","providerMetadata","DefaultEmbedManyResult","output_exports","$brand","$input","$output","TimePrecision","ZodBase64","ZodBase64URL","ZodBigIntFormat","ZodCIDRv4","ZodCIDRv6","ZodCUID","ZodCUID2","ZodCustom","ZodCustomStringFormat","ZodE164","ZodEmail","ZodEmoji","ZodFile","ZodGUID","ZodIPv4","ZodIPv6","ZodISODate","ZodISODateTime","ZodISODuration","ZodISOTime","ZodJWT","ZodKSUID","ZodNanoID","ZodNonOptional","ZodNumberFormat","ZodPipe","ZodPrefault","ZodRealError","ZodStringFormat","ZodSuccess","ZodTemplateLiteral","ZodTransform","ZodULID","ZodURL","ZodUUID","ZodXID","any","clone","coerce_exports","discriminatedUnion","_endsWith","flattenError","float32","float64","formatError","_function","globalRegistry","_gt","_gte","_includes","_instanceof","int","int32","int64","intersection","iso_exports","keyof","lazy","_length","locales_exports","looseObject","_lowercase","_lt","_lte","_maxLength","_maxSize","_mime","_minLength","_minSize","_multipleOf","nan","nativeEnum","_negative","never","_nonnegative","nonoptional","_nonpositive","_normalize","nullable","optional","_overwrite","partialRecord","pipe","_positive","prefault","prettifyError","promise","_property","readonly","record","refine","_regex","regexes_exports","set","_size","_startsWith","strictObject","stringFormat","stringbool","superRefine","templateLiteral","toJSONSchema","_toLowerCase","_toUpperCase","treeifyError","_trim","tuple","uint32","uint64","union","unknown","_uppercase","uuidv4","uuidv6","uuidv7","$ZodAny","$ZodArray","$ZodAsyncError","$ZodBase64","$ZodBase64URL","$ZodBigInt","$ZodBigIntFormat","$ZodBoolean","$ZodCIDRv4","$ZodCIDRv6","$ZodCUID","$ZodCUID2","$ZodCatch","$ZodCheck","$ZodCheckBigIntFormat","$ZodCheckEndsWith","$ZodCheckGreaterThan","$ZodCheckIncludes","$ZodCheckLengthEquals","$ZodCheckLessThan","$ZodCheckLowerCase","$ZodCheckMaxLength","$ZodCheckMaxSize","$ZodCheckMimeType","$ZodCheckMinLength","$ZodCheckMinSize","$ZodCheckMultipleOf","$ZodCheckNumberFormat","$ZodCheckOverwrite","$ZodCheckProperty","$ZodCheckRegex","$ZodCheckSizeEquals","$ZodCheckStartsWith","$ZodCheckStringFormat","$ZodCheckUpperCase","$ZodCustom","$ZodCustomStringFormat","$ZodDate","$ZodDefault","$ZodDiscriminatedUnion","$ZodE164","$ZodEmail","$ZodEmoji","$ZodEnum","$ZodError","$ZodFile","$ZodFunction","$ZodGUID","$ZodIPv4","$ZodIPv6","$ZodISODate","$ZodISODateTime","$ZodISODuration","$ZodISOTime","$ZodIntersection","$ZodJWT","$ZodKSUID","$ZodLazy","$ZodLiteral","$ZodMap","$ZodNaN","$ZodNanoID","$ZodNever","$ZodNonOptional","$ZodNull","$ZodNullable","$ZodNumber","$ZodNumberFormat","$ZodObject","$ZodOptional","$ZodPipe","$ZodPrefault","$ZodPromise","$ZodReadonly","$ZodRealError","$ZodRecord","$ZodRegistry","$ZodSet","$ZodString","$ZodStringFormat","$ZodSuccess","$ZodSymbol","$ZodTemplateLiteral","$ZodTransform","$ZodTuple","$ZodType","$ZodULID","$ZodURL","$ZodUUID","$ZodUndefined","$ZodUnion","$ZodUnknown","$ZodVoid","$ZodXID","$constructor","Doc","json_schema_exports","JSONSchemaGenerator","_any","_array","_base64","_base64url","_bigint","_boolean","_cidrv4","_cidrv6","_coercedBigint","_coercedBoolean","_coercedDate","_coercedNumber","_coercedString","_cuid","_cuid2","_custom","_date","_discriminatedUnion","_e164","_email","_file","_float32","_float64","_guid","_int","_int32","_int64","_intersection","_ipv4","_ipv6","_isoDate","_isoDateTime","_isoDuration","_isoTime","_jwt","_ksuid","_lazy","_literal","_map","_nan","_nanoid","_nativeEnum","_never","_nonoptional","_nullable","_number","_optional","_parseAsync","_pipe","_promise","_readonly","_record","_refine","_safeParse","_safeParseAsync","_set","_string","_stringFormat","_stringbool","_success","_symbol","_templateLiteral","_transform","_tuple","_uint32","_uint64","_ulid","_union","_unknown","_url","_uuid","_uuidv4","_uuidv6","_uuidv7","_xid","globalConfig","isValidBase64","isValidBase64URL","toDotPath","util_exports","BIGINT_FORMAT_RANGES","NUMBER_FORMAT_RANGES","assert","assertEqual","assertNotEqual","assignProp","cached","captureStackTrace","cleanEnum","cleanRegex","createTransparentProxy","defineLazy","esc","escapeRegex","extend","finalizeIssue","getElementAtPath","getEnumValues","getLengthableOrigin","getSizableOrigin","isPlainObject","jsonStringifyReplacer","merge","normalizeParams","numKeys","omit","optionalKeys","partial","pick","prefixIssues","primitiveTypes","promiseAllObject","propertyKeyTypes","randomString","stringifyPrimitive","unwrapMessage","browserEmail","domain","extendedDuration","html5Email","integer","lowercase","rfc5322Email","unicodeEmail","uppercase","uuid4","uuid6","uuid7","dateSource","timeSource","numericOriginMap","handleCheckPropertyResult","handleArrayResult","handleUnionResults","handleIntersectionResults","handleTupleResult","handleMapResult","handleSetResult","handleDefaultResult","handleNonOptionalResult","handlePipeResult","handleReadonlyResult","handleRefineResult","ar_default","az_default","be_default","ca_default","cs_default","de_default","eo_default","es_default","fa_default","fi_default","fr_default","fr_CA_default","he_default","hu_default","id_default","it_default","ja_default","kh_default","ko_default","mk_default","ms_default","nl_default","no_default","ota_default","pl_default","ps_default","pt_default","ru_default","sl_default","sv_default","ta_default","th_default","tr_default","ua_default","ur_default","vi_default","zh_CN_default","zh_TW_default","getBelarusianPlural","getRussianPlural","formatMap","isTransforming","params","gen","EmptyResponseBodyError","ParseError","LF","CR","noop","createParser","isDataPrefix","isEventPrefix","EventSourceParserStream","createAbortError","extractResponseHeaders","btoa","convertUint8ArrayToBase64","FETCH_FAILED_ERROR_MESSAGES","handleFetchError","getRuntimeEnvironmentUserAgent","normalizeHeaders","loadOptionalSetting","secureJsonParse","addAdditionalPropertiesToJsonSchema","zod3Schema","zod4Schema","isZod4Schema","validateTypes","parseJSON","parseJsonEventStream","postToApi","createEventSourceResponseHandler","withoutTrailingSlash","getContext","getVercelOidcToken","GatewayError","_GatewayError","GatewayAuthenticationError","_GatewayAuthenticationError","GatewayInvalidRequestError","GatewayRateLimitError","modelNotFoundParamSchema","GatewayModelNotFoundError","GatewayInternalServerError","GatewayResponseError","createGatewayErrorFromResponse","gatewayErrorResponseSchema","extractApiCallResponse","GatewayTimeoutError","_GatewayTimeoutError","isTimeoutError","asGatewayError","GATEWAY_AUTH_METHOD_HEADER","parseAuthMethod","gatewayAuthMethodSchema","KNOWN_MODEL_TYPES","GatewayFetchMetadata","gatewayAvailableModelsResponseSchema","gatewayCreditsResponseSchema","GatewaySpendReport","gatewaySpendReportResponseSchema","GatewayGenerationInfoFetcher","gatewayGenerationInfoResponseSchema","GatewayLanguageModel","GatewayEmbeddingModel","gatewayEmbeddingResponseSchema","GatewayImageModel","gatewayImageResponseSchema","providerMetadataEntrySchema","gatewayImageUsageSchema","parallelSearchInputSchema","parallelSearchOutputSchema","parallelSearchToolFactory","parallelSearch","perplexitySearchInputSchema","perplexitySearchOutputSchema","perplexitySearchToolFactory","createProviderToolFactoryWithOutputSchema","perplexitySearch","gatewayTools","getVercelRequestId","AI_GATEWAY_PROTOCOL_VERSION","createGatewayProvider","getGatewayAuthToken","gateway","resolveEmbeddingModel","getGlobalProvider","systemModelMessageSchema","userModelMessageSchema","assistantModelMessageSchema","toolModelMessageSchema","getRetryDelayInMs","retryWithExponentialBackoffRespectingRetryHeaders","warnings","message","estimateTokenCount","truncateStringByTokens","resolveToolResultValue","formatToolResultForObserver","expanded","truncatedText","wasTruncated","rendered","createTool","isStandardSchemaWithJSON","toStandardSchema","standardSchemaToJSONSchema","MastraMemory","SpanType","EntityType","MessageList","coreFeatures","generateEmptyFromSchema","WORKING_MEMORY_STATE_PROCESSOR_ID","WorkingMemoryStateProcessor","promisify","execNodejs","execFileNodejs","existsSync","dirname","readFileSync","nodeSpawn","createRequire","copyFile","basename","extname","join","readFile","openai","ModelRouterLanguageModel","isAbsolute","isValid","writeFile","stat","mkdir","path","ignore","relative","readdir","Agent","InMemoryStore","createStep","mkdtemp","tmpdir","rm","agent","isSupportedLanguageModel","tryGenerateWithJsonFallback","tryStreamWithJsonFallback","createWorkflow","standardSchemaValidator","zod_to_json_schema_default","z4"],"mappings":"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","file":"dist-V3SVSSXI.cjs","sourcesContent":["// A simple implementation of make-array\nfunction makeArray (subject) {\n return Array.isArray(subject)\n ? subject\n : [subject]\n}\n\nconst UNDEFINED = undefined\nconst EMPTY = ''\nconst SPACE = ' '\nconst ESCAPE = '\\\\'\nconst REGEX_TEST_BLANK_LINE = /^\\s+$/\nconst REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\\\]|^)\\\\$/\nconst REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/\nconst REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/\nconst REGEX_SPLITALL_CRLF = /\\r?\\n/g\n\n// Invalid:\n// - /foo,\n// - ./foo,\n// - ../foo,\n// - .\n// - ..\n// Valid:\n// - .foo\nconst REGEX_TEST_INVALID_PATH = /^\\.{0,2}\\/|^\\.{1,2}$/\n\nconst REGEX_TEST_TRAILING_SLASH = /\\/$/\n\nconst SLASH = '/'\n\n// Do not use ternary expression here, since \"istanbul ignore next\" is buggy\nlet TMP_KEY_IGNORE = 'node-ignore'\n/* istanbul ignore else */\nif (typeof Symbol !== 'undefined') {\n TMP_KEY_IGNORE = Symbol.for('node-ignore')\n}\nconst KEY_IGNORE = TMP_KEY_IGNORE\n\nconst define = (object, key, value) => {\n Object.defineProperty(object, key, {value})\n return value\n}\n\nconst REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g\n\nconst RETURN_FALSE = () => false\n\n// Sanitize the range of a regular expression\n// The cases are complicated, see test cases for details\nconst sanitizeRange = range => range.replace(\n REGEX_REGEXP_RANGE,\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0)\n ? match\n // Invalid range (out of order) which is ok for gitignore rules but\n // fatal for JavaScript regular expression, so eliminate it.\n : EMPTY\n)\n\n// See fixtures #59\nconst cleanRangeBackSlash = slashes => {\n const {length} = slashes\n return slashes.slice(0, length - length % 2)\n}\n\n// > If the pattern ends with a slash,\n// > it is removed for the purpose of the following description,\n// > but it would only find a match with a directory.\n// > In other words, foo/ will match a directory foo and paths underneath it,\n// > but will not match a regular file or a symbolic link foo\n// > (this is consistent with the way how pathspec works in general in Git).\n// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`'\n// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call\n// you could use option `mark: true` with `glob`\n\n// '`foo/`' should not continue with the '`..`'\nconst REPLACERS = [\n\n [\n // Remove BOM\n // TODO:\n // Other similar zero-width characters?\n /^\\uFEFF/,\n () => EMPTY\n ],\n\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\n [\n // (a\\ ) -> (a )\n // (a ) -> (a)\n // (a ) -> (a)\n // (a \\ ) -> (a )\n /((?:\\\\\\\\)*?)(\\\\?\\s+)$/,\n (_, m1, m2) => m1 + (\n m2.indexOf('\\\\') === 0\n ? SPACE\n : EMPTY\n )\n ],\n\n // Replace (\\ ) with ' '\n // (\\ ) -> ' '\n // (\\\\ ) -> '\\\\ '\n // (\\\\\\ ) -> '\\\\ '\n [\n /(\\\\+?)\\s/g,\n (_, m1) => {\n const {length} = m1\n return m1.slice(0, length - length % 2) + SPACE\n }\n ],\n\n // Escape metacharacters\n // which is written down by users but means special for regular expressions.\n\n // > There are 12 characters with special meanings:\n // > - the backslash \\,\n // > - the caret ^,\n // > - the dollar sign $,\n // > - the period or dot .,\n // > - the vertical bar or pipe symbol |,\n // > - the question mark ?,\n // > - the asterisk or star *,\n // > - the plus sign +,\n // > - the opening parenthesis (,\n // > - the closing parenthesis ),\n // > - and the opening square bracket [,\n // > - the opening curly brace {,\n // > These special characters are often called \"metacharacters\".\n [\n /[\\\\$.|*+(){^]/g,\n match => `\\\\${match}`\n ],\n\n [\n // > a question mark (?) matches a single character\n /(?!\\\\)\\?/g,\n () => '[^/]'\n ],\n\n // leading slash\n [\n\n // > A leading slash matches the beginning of the pathname.\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\n // A leading slash matches the beginning of the pathname\n /^\\//,\n () => '^'\n ],\n\n // replace special metacharacter slash after the leading slash\n [\n /\\//g,\n () => '\\\\/'\n ],\n\n [\n // > A leading \"**\" followed by a slash means match in all directories.\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\n // > the same as pattern \"foo\".\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\n // > under directory \"foo\".\n // Notice that the '*'s have been replaced as '\\\\*'\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\n\n // '**/foo' <-> 'foo'\n () => '^(?:.*\\\\/)?'\n ],\n\n // starting\n [\n // there will be no leading '/'\n // (which has been replaced by section \"leading slash\")\n // If starts with '**', adding a '^' to the regular expression also works\n /^(?=[^^])/,\n function startingReplacer () {\n // If has a slash `/` at the beginning or middle\n return !/\\/(?!$)/.test(this)\n // > Prior to 2.22.1\n // > If the pattern does not contain a slash /,\n // > Git treats it as a shell glob pattern\n // Actually, if there is only a trailing slash,\n // git also treats it as a shell glob pattern\n\n // After 2.22.1 (compatible but clearer)\n // > If there is a separator at the beginning or middle (or both)\n // > of the pattern, then the pattern is relative to the directory\n // > level of the particular .gitignore file itself.\n // > Otherwise the pattern may also match at any level below\n // > the .gitignore level.\n ? '(?:^|\\\\/)'\n\n // > Otherwise, Git treats the pattern as a shell glob suitable for\n // > consumption by fnmatch(3)\n : '^'\n }\n ],\n\n // two globstars\n [\n // Use lookahead assertions so that we could match more than one `'/**'`\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\n\n // Zero, one or several directories\n // should not use '*', or it will be replaced by the next replacer\n\n // Check if it is not the last `'/**'`\n (_, index, str) => index + 6 < str.length\n\n // case: /**/\n // > A slash followed by two consecutive asterisks then a slash matches\n // > zero or more directories.\n // > For example, \"a/**/b\" matches \"a/b\", \"a/x/b\", \"a/x/y/b\" and so on.\n // '/**/'\n ? '(?:\\\\/[^\\\\/]+)*'\n\n // case: /**\n // > A trailing `\"/**\"` matches everything inside.\n\n // #21: everything inside but it should not include the current folder\n : '\\\\/.+'\n ],\n\n // normal intermediate wildcards\n [\n // Never replace escaped '*'\n // ignore rule '\\*' will match the path '*'\n\n // 'abc.*/' -> go\n // 'abc.*' -> skip this rule,\n // coz trailing single wildcard will be handed by [trailing wildcard]\n /(^|[^\\\\]+)(\\\\\\*)+(?=.+)/g,\n\n // '*.js' matches '.js'\n // '*.js' doesn't match 'abc'\n (_, p1, p2) => {\n // 1.\n // > An asterisk \"*\" matches anything except a slash.\n // 2.\n // > Other consecutive asterisks are considered regular asterisks\n // > and will match according to the previous rules.\n const unescaped = p2.replace(/\\\\\\*/g, '[^\\\\/]*')\n return p1 + unescaped\n }\n ],\n\n [\n // unescape, revert step 3 except for back slash\n // For example, if a user escape a '\\\\*',\n // after step 3, the result will be '\\\\\\\\\\\\*'\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\n () => ESCAPE\n ],\n\n [\n // '\\\\\\\\' -> '\\\\'\n /\\\\\\\\/g,\n () => ESCAPE\n ],\n\n [\n // > The range notation, e.g. [a-zA-Z],\n // > can be used to match one of the characters in a range.\n\n // `\\` is escaped by step 3\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE\n // '\\\\[bar]' -> '\\\\\\\\[bar\\\\]'\n ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}`\n : close === ']'\n ? endEscape.length % 2 === 0\n // A normal case, and it is a range notation\n // '[bar]'\n // '[bar\\\\\\\\]'\n ? `[${sanitizeRange(range)}${endEscape}]`\n // Invalid range notaton\n // '[bar\\\\]' -> '[bar\\\\\\\\]'\n : '[]'\n : '[]'\n ],\n\n // ending\n [\n // 'js' will not match 'js.'\n // 'ab' will not match 'abc'\n /(?:[^*])$/,\n\n // WTF!\n // https://git-scm.com/docs/gitignore\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\n // which re-fixes #24, #38\n\n // > If there is a separator at the end of the pattern then the pattern\n // > will only match directories, otherwise the pattern can match both\n // > files and directories.\n\n // 'js*' will not match 'a.js'\n // 'js/' will not match 'a.js'\n // 'js' will match 'a.js' and 'a.js/'\n match => /\\/$/.test(match)\n // foo/ will not match 'foo'\n ? `${match}$`\n // foo matches 'foo' and 'foo/'\n : `${match}(?=$|\\\\/$)`\n ]\n]\n\nconst REGEX_REPLACE_TRAILING_WILDCARD = /(^|\\\\\\/)?\\\\\\*$/\nconst MODE_IGNORE = 'regex'\nconst MODE_CHECK_IGNORE = 'checkRegex'\nconst UNDERSCORE = '_'\n\nconst TRAILING_WILD_CARD_REPLACERS = {\n [MODE_IGNORE] (_, p1) {\n const prefix = p1\n // '\\^':\n // '/*' does not match EMPTY\n // '/*' does not match everything\n\n // '\\\\\\/':\n // 'abc/*' does not match 'abc/'\n ? `${p1}[^/]+`\n\n // 'a*' matches 'a'\n // 'a*' matches 'aa'\n : '[^/]*'\n\n return `${prefix}(?=$|\\\\/$)`\n },\n\n [MODE_CHECK_IGNORE] (_, p1) {\n // When doing `git check-ignore`\n const prefix = p1\n // '\\\\\\/':\n // 'abc/*' DOES match 'abc/' !\n ? `${p1}[^/]*`\n\n // 'a*' matches 'a'\n // 'a*' matches 'aa'\n : '[^/]*'\n\n return `${prefix}(?=$|\\\\/$)`\n }\n}\n\n// @param {pattern}\nconst makeRegexPrefix = pattern => REPLACERS.reduce(\n (prev, [matcher, replacer]) =>\n prev.replace(matcher, replacer.bind(pattern)),\n pattern\n)\n\nconst isString = subject => typeof subject === 'string'\n\n// > A blank line matches no files, so it can serve as a separator for readability.\nconst checkPattern = pattern => pattern\n && isString(pattern)\n && !REGEX_TEST_BLANK_LINE.test(pattern)\n && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern)\n\n // > A line starting with # serves as a comment.\n && pattern.indexOf('#') !== 0\n\nconst splitPattern = pattern => pattern\n.split(REGEX_SPLITALL_CRLF)\n.filter(Boolean)\n\nclass IgnoreRule {\n constructor (\n pattern,\n mark,\n body,\n ignoreCase,\n negative,\n prefix\n ) {\n this.pattern = pattern\n this.mark = mark\n this.negative = negative\n\n define(this, 'body', body)\n define(this, 'ignoreCase', ignoreCase)\n define(this, 'regexPrefix', prefix)\n }\n\n get regex () {\n const key = UNDERSCORE + MODE_IGNORE\n\n if (this[key]) {\n return this[key]\n }\n\n return this._make(MODE_IGNORE, key)\n }\n\n get checkRegex () {\n const key = UNDERSCORE + MODE_CHECK_IGNORE\n\n if (this[key]) {\n return this[key]\n }\n\n return this._make(MODE_CHECK_IGNORE, key)\n }\n\n _make (mode, key) {\n const str = this.regexPrefix.replace(\n REGEX_REPLACE_TRAILING_WILDCARD,\n\n // It does not need to bind pattern\n TRAILING_WILD_CARD_REPLACERS[mode]\n )\n\n const regex = this.ignoreCase\n ? new RegExp(str, 'i')\n : new RegExp(str)\n\n return define(this, key, regex)\n }\n}\n\nconst createRule = ({\n pattern,\n mark\n}, ignoreCase) => {\n let negative = false\n let body = pattern\n\n // > An optional prefix \"!\" which negates the pattern;\n if (body.indexOf('!') === 0) {\n negative = true\n body = body.substr(1)\n }\n\n body = body\n // > Put a backslash (\"\\\") in front of the first \"!\" for patterns that\n // > begin with a literal \"!\", for example, `\"\\!important!.txt\"`.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!')\n // > Put a backslash (\"\\\") in front of the first hash for patterns that\n // > begin with a hash.\n .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#')\n\n const regexPrefix = makeRegexPrefix(body)\n\n return new IgnoreRule(\n pattern,\n mark,\n body,\n ignoreCase,\n negative,\n regexPrefix\n )\n}\n\nclass RuleManager {\n constructor (ignoreCase) {\n this._ignoreCase = ignoreCase\n this._rules = []\n }\n\n _add (pattern) {\n // #32\n if (pattern && pattern[KEY_IGNORE]) {\n this._rules = this._rules.concat(pattern._rules._rules)\n this._added = true\n return\n }\n\n if (isString(pattern)) {\n pattern = {\n pattern\n }\n }\n\n if (checkPattern(pattern.pattern)) {\n const rule = createRule(pattern, this._ignoreCase)\n this._added = true\n this._rules.push(rule)\n }\n }\n\n // @param {Array | string | Ignore} pattern\n add (pattern) {\n this._added = false\n\n makeArray(\n isString(pattern)\n ? splitPattern(pattern)\n : pattern\n ).forEach(this._add, this)\n\n return this._added\n }\n\n // Test one single path without recursively checking parent directories\n //\n // - checkUnignored `boolean` whether should check if the path is unignored,\n // setting `checkUnignored` to `false` could reduce additional\n // path matching.\n // - check `string` either `MODE_IGNORE` or `MODE_CHECK_IGNORE`\n\n // @returns {TestResult} true if a file is ignored\n test (path, checkUnignored, mode) {\n let ignored = false\n let unignored = false\n let matchedRule\n\n this._rules.forEach(rule => {\n const {negative} = rule\n\n // | ignored : unignored\n // -------- | ---------------------------------------\n // negative | 0:0 | 0:1 | 1:0 | 1:1\n // -------- | ------- | ------- | ------- | --------\n // 0 | TEST | TEST | SKIP | X\n // 1 | TESTIF | SKIP | TEST | X\n\n // - SKIP: always skip\n // - TEST: always test\n // - TESTIF: only test if checkUnignored\n // - X: that never happen\n if (\n unignored === negative && ignored !== unignored\n || negative && !ignored && !unignored && !checkUnignored\n ) {\n return\n }\n\n const matched = rule[mode].test(path)\n\n if (!matched) {\n return\n }\n\n ignored = !negative\n unignored = negative\n\n matchedRule = negative\n ? UNDEFINED\n : rule\n })\n\n const ret = {\n ignored,\n unignored\n }\n\n if (matchedRule) {\n ret.rule = matchedRule\n }\n\n return ret\n }\n}\n\nconst throwError = (message, Ctor) => {\n throw new Ctor(message)\n}\n\nconst checkPath = (path, originalPath, doThrow) => {\n if (!isString(path)) {\n return doThrow(\n `path must be a string, but got \\`${originalPath}\\``,\n TypeError\n )\n }\n\n // We don't know if we should ignore EMPTY, so throw\n if (!path) {\n return doThrow(`path must not be empty`, TypeError)\n }\n\n // Check if it is a relative path\n if (checkPath.isNotRelative(path)) {\n const r = '`path.relative()`d'\n return doThrow(\n `path should be a ${r} string, but got \"${originalPath}\"`,\n RangeError\n )\n }\n\n return true\n}\n\nconst isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path)\n\ncheckPath.isNotRelative = isNotRelative\n\n// On windows, the following function will be replaced\n/* istanbul ignore next */\ncheckPath.convert = p => p\n\n\nclass Ignore {\n constructor ({\n ignorecase = true,\n ignoreCase = ignorecase,\n allowRelativePaths = false\n } = {}) {\n define(this, KEY_IGNORE, true)\n\n this._rules = new RuleManager(ignoreCase)\n this._strictPathCheck = !allowRelativePaths\n this._initCache()\n }\n\n _initCache () {\n // A cache for the result of `.ignores()`\n this._ignoreCache = Object.create(null)\n\n // A cache for the result of `.test()`\n this._testCache = Object.create(null)\n }\n\n add (pattern) {\n if (this._rules.add(pattern)) {\n // Some rules have just added to the ignore,\n // making the behavior changed,\n // so we need to re-initialize the result cache\n this._initCache()\n }\n\n return this\n }\n\n // legacy\n addPattern (pattern) {\n return this.add(pattern)\n }\n\n // @returns {TestResult}\n _test (originalPath, cache, checkUnignored, slices) {\n const path = originalPath\n // Supports nullable path\n && checkPath.convert(originalPath)\n\n checkPath(\n path,\n originalPath,\n this._strictPathCheck\n ? throwError\n : RETURN_FALSE\n )\n\n return this._t(path, cache, checkUnignored, slices)\n }\n\n checkIgnore (path) {\n // If the path doest not end with a slash, `.ignores()` is much equivalent\n // to `git check-ignore`\n if (!REGEX_TEST_TRAILING_SLASH.test(path)) {\n return this.test(path)\n }\n\n const slices = path.split(SLASH).filter(Boolean)\n slices.pop()\n\n if (slices.length) {\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n this._testCache,\n true,\n slices\n )\n\n if (parent.ignored) {\n return parent\n }\n }\n\n return this._rules.test(path, false, MODE_CHECK_IGNORE)\n }\n\n _t (\n // The path to be tested\n path,\n\n // The cache for the result of a certain checking\n cache,\n\n // Whether should check if the path is unignored\n checkUnignored,\n\n // The path slices\n slices\n ) {\n if (path in cache) {\n return cache[path]\n }\n\n if (!slices) {\n // path/to/a.js\n // ['path', 'to', 'a.js']\n slices = path.split(SLASH).filter(Boolean)\n }\n\n slices.pop()\n\n // If the path has no parent directory, just test it\n if (!slices.length) {\n return cache[path] = this._rules.test(path, checkUnignored, MODE_IGNORE)\n }\n\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n cache,\n checkUnignored,\n slices\n )\n\n // If the path contains a parent directory, check the parent first\n return cache[path] = parent.ignored\n // > It is not possible to re-include a file if a parent directory of\n // > that file is excluded.\n ? parent\n : this._rules.test(path, checkUnignored, MODE_IGNORE)\n }\n\n ignores (path) {\n return this._test(path, this._ignoreCache, false).ignored\n }\n\n createFilter () {\n return path => !this.ignores(path)\n }\n\n filter (paths) {\n return makeArray(paths).filter(this.createFilter())\n }\n\n // @returns {TestResult}\n test (path) {\n return this._test(path, this._testCache, true)\n }\n}\n\nconst factory = options => new Ignore(options)\n\nconst isPathValid = path =>\n checkPath(path && checkPath.convert(path), path, RETURN_FALSE)\n\n/* istanbul ignore next */\nconst setupWindows = () => {\n /* eslint no-control-regex: \"off\" */\n const makePosix = str => /^\\\\\\\\\\?\\\\/.test(str)\n || /[\"<>|\\u0000-\\u001F]+/u.test(str)\n ? str\n : str.replace(/\\\\/g, '/')\n\n checkPath.convert = makePosix\n\n // 'C:\\\\foo' <- 'C:\\\\foo' has been converted to 'C:/'\n // 'd:\\\\foo'\n const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i\n checkPath.isNotRelative = path =>\n REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path)\n || isNotRelative(path)\n}\n\n\n// Windows\n// --------------------------------------------------------------\n/* istanbul ignore next */\nif (\n // Detect `process` so that it can run in browsers.\n typeof process !== 'undefined'\n && process.platform === 'win32'\n) {\n setupWindows()\n}\n\n// COMMONJS_EXPORTS ////////////////////////////////////////////////////////////\n\nmodule.exports = factory\n\n// Although it is an anti-pattern,\n// it is still widely misused by a lot of libraries in github\n// Ref: https://github.com/search?q=ignore.default%28%29&type=code\nfactory.default = factory\n\nmodule.exports.isPathValid = isPathValid\n\n// For testing purposes\ndefine(module.exports, Symbol.for('setupWindows'), setupWindows)\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\nexport { __export };\n//# sourceMappingURL=chunk-PZ5AY32C.js.map\n//# sourceMappingURL=chunk-PZ5AY32C.js.map","const E_TIMEOUT = new Error('timeout while waiting for mutex to become available');\nconst E_ALREADY_LOCKED = new Error('mutex already locked');\nconst E_CANCELED = new Error('request for lock canceled');\n\nvar __awaiter$2 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nclass Semaphore {\n constructor(_value, _cancelError = E_CANCELED) {\n this._value = _value;\n this._cancelError = _cancelError;\n this._queue = [];\n this._weightedWaiters = [];\n }\n acquire(weight = 1, priority = 0) {\n if (weight <= 0)\n throw new Error(`invalid weight ${weight}: must be positive`);\n return new Promise((resolve, reject) => {\n const task = { resolve, reject, weight, priority };\n const i = findIndexFromEnd(this._queue, (other) => priority <= other.priority);\n if (i === -1 && weight <= this._value) {\n // Needs immediate dispatch, skip the queue\n this._dispatchItem(task);\n }\n else {\n this._queue.splice(i + 1, 0, task);\n }\n });\n }\n runExclusive(callback_1) {\n return __awaiter$2(this, arguments, void 0, function* (callback, weight = 1, priority = 0) {\n const [value, release] = yield this.acquire(weight, priority);\n try {\n return yield callback(value);\n }\n finally {\n release();\n }\n });\n }\n waitForUnlock(weight = 1, priority = 0) {\n if (weight <= 0)\n throw new Error(`invalid weight ${weight}: must be positive`);\n if (this._couldLockImmediately(weight, priority)) {\n return Promise.resolve();\n }\n else {\n return new Promise((resolve) => {\n if (!this._weightedWaiters[weight - 1])\n this._weightedWaiters[weight - 1] = [];\n insertSorted(this._weightedWaiters[weight - 1], { resolve, priority });\n });\n }\n }\n isLocked() {\n return this._value <= 0;\n }\n getValue() {\n return this._value;\n }\n setValue(value) {\n this._value = value;\n this._dispatchQueue();\n }\n release(weight = 1) {\n if (weight <= 0)\n throw new Error(`invalid weight ${weight}: must be positive`);\n this._value += weight;\n this._dispatchQueue();\n }\n cancel() {\n this._queue.forEach((entry) => entry.reject(this._cancelError));\n this._queue = [];\n }\n _dispatchQueue() {\n this._drainUnlockWaiters();\n while (this._queue.length > 0 && this._queue[0].weight <= this._value) {\n this._dispatchItem(this._queue.shift());\n this._drainUnlockWaiters();\n }\n }\n _dispatchItem(item) {\n const previousValue = this._value;\n this._value -= item.weight;\n item.resolve([previousValue, this._newReleaser(item.weight)]);\n }\n _newReleaser(weight) {\n let called = false;\n return () => {\n if (called)\n return;\n called = true;\n this.release(weight);\n };\n }\n _drainUnlockWaiters() {\n if (this._queue.length === 0) {\n for (let weight = this._value; weight > 0; weight--) {\n const waiters = this._weightedWaiters[weight - 1];\n if (!waiters)\n continue;\n waiters.forEach((waiter) => waiter.resolve());\n this._weightedWaiters[weight - 1] = [];\n }\n }\n else {\n const queuedPriority = this._queue[0].priority;\n for (let weight = this._value; weight > 0; weight--) {\n const waiters = this._weightedWaiters[weight - 1];\n if (!waiters)\n continue;\n const i = waiters.findIndex((waiter) => waiter.priority <= queuedPriority);\n (i === -1 ? waiters : waiters.splice(0, i))\n .forEach((waiter => waiter.resolve()));\n }\n }\n }\n _couldLockImmediately(weight, priority) {\n return (this._queue.length === 0 || this._queue[0].priority < priority) &&\n weight <= this._value;\n }\n}\nfunction insertSorted(a, v) {\n const i = findIndexFromEnd(a, (other) => v.priority <= other.priority);\n a.splice(i + 1, 0, v);\n}\nfunction findIndexFromEnd(a, predicate) {\n for (let i = a.length - 1; i >= 0; i--) {\n if (predicate(a[i])) {\n return i;\n }\n }\n return -1;\n}\n\nvar __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nclass Mutex {\n constructor(cancelError) {\n this._semaphore = new Semaphore(1, cancelError);\n }\n acquire() {\n return __awaiter$1(this, arguments, void 0, function* (priority = 0) {\n const [, releaser] = yield this._semaphore.acquire(1, priority);\n return releaser;\n });\n }\n runExclusive(callback, priority = 0) {\n return this._semaphore.runExclusive(() => callback(), 1, priority);\n }\n isLocked() {\n return this._semaphore.isLocked();\n }\n waitForUnlock(priority = 0) {\n return this._semaphore.waitForUnlock(1, priority);\n }\n release() {\n if (this._semaphore.isLocked())\n this._semaphore.release();\n }\n cancel() {\n return this._semaphore.cancel();\n }\n}\n\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nfunction withTimeout(sync, timeout, timeoutError = E_TIMEOUT) {\n return {\n acquire: (weightOrPriority, priority) => {\n let weight;\n if (isSemaphore(sync)) {\n weight = weightOrPriority;\n }\n else {\n weight = undefined;\n priority = weightOrPriority;\n }\n if (weight !== undefined && weight <= 0) {\n throw new Error(`invalid weight ${weight}: must be positive`);\n }\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n let isTimeout = false;\n const handle = setTimeout(() => {\n isTimeout = true;\n reject(timeoutError);\n }, timeout);\n try {\n const ticket = yield (isSemaphore(sync)\n ? sync.acquire(weight, priority)\n : sync.acquire(priority));\n if (isTimeout) {\n const release = Array.isArray(ticket) ? ticket[1] : ticket;\n release();\n }\n else {\n clearTimeout(handle);\n resolve(ticket);\n }\n }\n catch (e) {\n if (!isTimeout) {\n clearTimeout(handle);\n reject(e);\n }\n }\n }));\n },\n runExclusive(callback, weight, priority) {\n return __awaiter(this, void 0, void 0, function* () {\n let release = () => undefined;\n try {\n const ticket = yield this.acquire(weight, priority);\n if (Array.isArray(ticket)) {\n release = ticket[1];\n return yield callback(ticket[0]);\n }\n else {\n release = ticket;\n return yield callback();\n }\n }\n finally {\n release();\n }\n });\n },\n release(weight) {\n sync.release(weight);\n },\n cancel() {\n return sync.cancel();\n },\n waitForUnlock: (weightOrPriority, priority) => {\n let weight;\n if (isSemaphore(sync)) {\n weight = weightOrPriority;\n }\n else {\n weight = undefined;\n priority = weightOrPriority;\n }\n if (weight !== undefined && weight <= 0) {\n throw new Error(`invalid weight ${weight}: must be positive`);\n }\n return new Promise((resolve, reject) => {\n const handle = setTimeout(() => reject(timeoutError), timeout);\n (isSemaphore(sync)\n ? sync.waitForUnlock(weight, priority)\n : sync.waitForUnlock(priority)).then(() => {\n clearTimeout(handle);\n resolve();\n });\n });\n },\n isLocked: () => sync.isLocked(),\n getValue: () => sync.getValue(),\n setValue: (value) => sync.setValue(value),\n };\n}\nfunction isSemaphore(sync) {\n return sync.getValue !== undefined;\n}\n\n// eslint-disable-next-lisne @typescript-eslint/explicit-module-boundary-types\nfunction tryAcquire(sync, alreadyAcquiredError = E_ALREADY_LOCKED) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return withTimeout(sync, 0, alreadyAcquiredError);\n}\n\nexport { E_ALREADY_LOCKED, E_CANCELED, E_TIMEOUT, Mutex, Semaphore, tryAcquire, withTimeout };\n","// simple node version that imports from node builtin\n// this is built to both ESM and CommonJS on the 'node' import path\nimport { tracingChannel, channel } from 'node:diagnostics_channel'\nimport type { TracingChannel, Channel } from 'node:diagnostics_channel'\nexport type { TracingChannel, Channel }\nexport const metrics: Channel = channel('lru-cache:metrics')\nexport const tracing: TracingChannel = tracingChannel('lru-cache')\n","/**\n * this provides the default Perf object source, either the\n * `performance` global, or the `Date` constructor.\n *\n * it can be passed in via configuration to override it\n * for a single LRU object.\n */\nexport type Perf = { now: () => number }\nexport const defaultPerf: Perf =\n (\n typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ) ?\n /* c8 ignore start - this gets covered, but c8 gets confused */\n performance\n : /* c8 ignore stop */\n Date\n","/**\n * @module LRUCache\n */\n\nimport { metrics, tracing } from './diagnostics-channel.js'\nimport { defaultPerf } from './perf.js'\nimport type { Perf } from './perf.js'\nexport type { Perf } from './perf.js'\n\nconst hasSubscribers = () =>\n metrics.hasSubscribers || tracing.hasSubscribers\n\nconst warned = new Set()\n\n// either a function or a class\n// oxlint-disable-next-line no-explicit-any\ntype ForC = ((...a: any[]) => any) | { new (...a: any[]): any }\n\n/* c8 ignore start */\nconst PROCESS = (\n typeof process === 'object' && !!process ?\n process\n : {}) as { [k: string]: unknown }\n/* c8 ignore stop */\n\nconst emitWarning = (\n msg: string,\n type: string,\n code: string,\n fn: ForC,\n) => {\n if (typeof PROCESS.emitWarning === 'function') {\n PROCESS.emitWarning(msg, type, code, fn)\n } else {\n //oxlint-disable-next-line no-console\n console.error(`[${code}] ${type}: ${msg}`)\n }\n}\nconst shouldWarn = (code: string) => !warned.has(code)\n\nconst TYPE = Symbol('type')\nexport type PosInt = number & { [TYPE]: 'Positive Integer' }\nexport type Index = number & { [TYPE]: 'LRUCache Index' }\n\nconst isPosInt = (n: unknown): n is PosInt =>\n !!n && n === Math.floor(n as number) && n > 0 && isFinite(n)\n\nexport type UintArray = Uint8Array | Uint16Array | Uint32Array\nexport type NumberArray = UintArray | number[]\n\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\n/* c8 ignore start */\nconst getUintArray = (max: number) =>\n !isPosInt(max) ? null\n : max <= Math.pow(2, 8) ? Uint8Array\n : max <= Math.pow(2, 16) ? Uint16Array\n : max <= Math.pow(2, 32) ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER ? ZeroArray\n : null\n/* c8 ignore stop */\n\nclass ZeroArray extends Array {\n constructor(size: number) {\n super(size)\n this.fill(0)\n }\n}\nexport type { ZeroArray }\nexport type { Stack }\n\nexport type StackLike = Stack | Index[]\nclass Stack {\n /* c8 ignore start - not sure why this is showing up uncovered?? */\n heap: NumberArray\n /* c8 ignore stop */\n length: number\n // private constructor\n static #constructing: boolean = false\n static create(max: number): StackLike {\n const HeapCls = getUintArray(max)\n if (!HeapCls) return []\n Stack.#constructing = true\n const s = new Stack(max, HeapCls)\n Stack.#constructing = false\n return s\n }\n constructor(max: number, HeapCls: { new (n: number): NumberArray }) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)')\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max)\n this.length = 0\n }\n push(n: Index) {\n this.heap[this.length++] = n\n }\n pop(): Index {\n return this.heap[--this.length] as Index\n }\n}\n\n/**\n * Promise representing an in-progress {@link LRUCache#fetch} call\n */\nexport type BackgroundFetch = Promise & {\n __returned: BackgroundFetch | undefined\n __abortController: AbortController\n __staleWhileFetching: V | undefined\n}\n\nexport type DisposeTask = [\n value: V,\n key: K,\n reason: LRUCache.DisposeReason,\n]\n\nexport namespace LRUCache {\n /**\n * An integer greater than 0, reflecting the calculated size of items\n */\n export type Size = number\n\n /**\n * Integer greater than 0, representing some number of milliseconds, or the\n * time at which a TTL started counting from.\n */\n export type Milliseconds = number\n\n /**\n * An integer greater than 0, reflecting a number of items\n */\n export type Count = number\n\n /**\n * The reason why an item was removed from the cache, passed\n * to the {@link Disposer} methods.\n *\n * - `evict`: The item was evicted because it is the least recently used,\n * and the cache is full.\n * - `set`: A new value was set, overwriting the old value being disposed.\n * - `delete`: The item was explicitly deleted, either by calling\n * {@link LRUCache#delete}, {@link LRUCache#clear}, or\n * {@link LRUCache#set} with an undefined value.\n * - `expire`: The item was removed due to exceeding its TTL.\n * - `fetch`: A {@link OptionsBase#fetchMethod} operation returned\n * `undefined` or was aborted, causing the item to be deleted.\n */\n export type DisposeReason =\n | 'evict'\n | 'set'\n | 'delete'\n | 'expire'\n | 'fetch'\n /**\n * A method called upon item removal, passed as the\n * {@link OptionsBase.dispose} and/or\n * {@link OptionsBase.disposeAfter} options.\n */\n export type Disposer = (\n value: V,\n key: K,\n reason: DisposeReason,\n ) => void\n\n /**\n * The reason why an item was added to the cache, passed\n * to the {@link Inserter} methods.\n *\n * - `add`: the item was not found in the cache, and was added\n * - `update`: the item was in the cache, with the same value provided\n * - `replace`: the item was in the cache, and replaced\n */\n export type InsertReason = 'add' | 'update' | 'replace'\n\n /**\n * A method called upon item insertion, passed as the\n * {@link OptionsBase.insert}\n */\n export type Inserter = (\n value: V,\n key: K,\n reason: InsertReason,\n ) => void\n\n /**\n * A function that returns the effective calculated size\n * of an entry in the cache.\n */\n export type SizeCalculator = (value: V, key: K) => Size\n\n /**\n * Options provided to the\n * {@link OptionsBase.fetchMethod} function.\n */\n export interface FetcherOptions {\n signal: AbortSignal\n options: FetcherFetchOptions\n /**\n * Object provided in the {@link FetchOptions.context} option to\n * {@link LRUCache#fetch}\n */\n context: FC\n }\n\n /**\n * Occasionally, it may be useful to track the internal behavior of the\n * cache, particularly for logging, debugging, or for behavior within the\n * `fetchMethod`. To do this, you can pass a `status` object to the\n * {@link LRUCache#fetch}, {@link LRUCache#get}, {@link LRUCache#set},\n * {@link LRUCache#memo}, and {@link LRUCache#has} methods.\n *\n * The `status` option should be a plain JavaScript object. The following\n * fields will be set on it appropriately, depending on the situation.\n *\n * These objects are also the context objects passed to listeners on the\n * `lru-cache:metrics` diagnostic channel, and the `lru-cache` tracing\n * channels, in platforms that support them.\n */\n export interface Status {\n /**\n * The operation being performed\n */\n op?: 'get' | 'set' | 'memo' | 'fetch' | 'delete' | 'has' | 'peek'\n /**\n * The status of a set() operation.\n *\n * - add: the item was not found in the cache, and was added\n * - update: the item was in the cache, with the same value provided\n * - replace: the item was in the cache, and replaced\n * - miss: the item was not added to the cache for some reason\n */\n set?: 'add' | 'update' | 'replace' | 'miss' | 'deleted'\n\n /**\n * The status of a delete() operation.\n */\n delete?: LRUCache.DisposeReason\n\n /**\n * The result of a peek() operation\n *\n * - hit: the item was found and returned\n * - stale: the item is in the cache, but past its ttl and not returned\n * - miss: item not in the cache\n */\n peek?: 'hit' | 'miss' | 'stale'\n\n /**\n * The status of a memo() operation.\n *\n * - 'hit': the item was found in the cache and returned\n * - 'miss': the `memoMethod` function was called\n */\n memo?: 'hit' | 'miss'\n\n /**\n * The `context` option provided to a memo or fetch operation\n *\n * In practice, of course, this will be the same type as the `FC`\n * fetch context param used to instantiate the LRUCache, but the\n * convolutions of threading that through would get quite complicated,\n * and preclude forcing/forbidding the passing of a `context` param\n * where it is/isn't expected, which is more valuable for error\n * prevention.\n */\n context?: unknown\n\n /**\n * the ttl stored for the item, or undefined if ttls are not used.\n */\n ttl?: Milliseconds\n\n /**\n * the start time for the item, or undefined if ttls are not used.\n */\n start?: Milliseconds\n\n /**\n * The timestamp used for TTL calculation\n */\n now?: Milliseconds\n\n /**\n * the remaining ttl for the item, or undefined if ttls are not used.\n */\n remainingTTL?: Milliseconds\n\n /**\n * The calculated size for the item, if sizes are used.\n */\n entrySize?: Size\n\n /**\n * The total calculated size of the cache, if sizes are used.\n */\n totalCalculatedSize?: Size\n\n /**\n * A flag indicating that the item was not stored, due to exceeding the\n * {@link OptionsBase.maxEntrySize}\n */\n maxEntrySizeExceeded?: true\n\n /**\n * The key that was set or retrieved\n */\n key?: K\n\n /**\n * The value that was set\n */\n value?: V\n\n /**\n * The old value, specified in the case of `set:'replace'`\n */\n oldValue?: V\n\n /**\n * The results of a {@link LRUCache#has} operation\n *\n * - hit: the item was found in the cache\n * - stale: the item was found in the cache, but is stale\n * - miss: the item was not found in the cache\n */\n has?: 'hit' | 'stale' | 'miss'\n\n /**\n * The status of a {@link LRUCache#fetch} operation.\n * Note that this can change as the underlying fetch() moves through\n * various states.\n *\n * - inflight: there is another fetch() for this key which is in process\n * - get: there is no {@link OptionsBase.fetchMethod}, so\n * {@link LRUCache#get} was called.\n * - miss: the item is not in cache, and will be fetched.\n * - hit: the item is in the cache, and was resolved immediately.\n * - stale: the item is in the cache, but stale.\n * - refresh: the item is in the cache, and not stale, but\n * {@link FetchOptions.forceRefresh} was specified.\n */\n fetch?: 'get' | 'inflight' | 'miss' | 'hit' | 'stale' | 'refresh'\n\n /**\n * `forceRefresh` option was used for either a fetch or memo operation\n */\n forceRefresh?: boolean\n\n /**\n * The {@link OptionsBase.fetchMethod} was called\n */\n fetchDispatched?: true\n\n /**\n * The cached value was updated after a successful call to\n * {@link OptionsBase.fetchMethod}\n */\n fetchUpdated?: true\n\n /**\n * The reason for a fetch() rejection. Either the error raised by the\n * {@link OptionsBase.fetchMethod}, or the reason for an\n * AbortSignal.\n */\n fetchError?: Error\n\n /**\n * The fetch received an abort signal\n */\n fetchAborted?: true\n\n /**\n * The abort signal received was ignored, and the fetch was allowed to\n * continue in the background.\n */\n fetchAbortIgnored?: true\n\n /**\n * The fetchMethod promise resolved successfully\n */\n fetchResolved?: true\n\n /**\n * The fetchMethod promise was rejected\n */\n fetchRejected?: true\n\n /**\n * The status of a {@link LRUCache#get} operation.\n *\n * - fetching: The item is currently being fetched. If a previous value\n * is present and allowed, that will be returned.\n * - stale: The item is in the cache, and is stale. If it was returned,\n * then the `returnedStale` flag will be set.\n * - stale-fetching: The value is being fetched in the background, but is\n * currently stale. If the stale value was returned, then the\n * `returnedStale` flag will be set.\n * - hit: the item is in the cache\n * - miss: the item is not in the cache\n */\n get?: 'stale' | 'hit' | 'miss' | 'fetching' | 'stale-fetching'\n\n /**\n * A fetch or get operation returned a stale value.\n */\n returnedStale?: true\n\n /**\n * A tracingChannel trace was started for this operation\n */\n trace?: boolean\n }\n\n /**\n * options which override the options set in the LRUCache constructor\n * when calling {@link LRUCache#fetch}.\n *\n * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n * {@link OptionsBase.noDeleteOnFetchRejection},\n * {@link OptionsBase.allowStaleOnFetchRejection},\n * {@link FetchOptions.forceRefresh}, and\n * {@link FetcherOptions.context}\n *\n * Any of these may be modified in the {@link OptionsBase.fetchMethod}\n * function, but the {@link GetOptions} fields will of course have no\n * effect, as the {@link LRUCache#get} call already happened by the time\n * the fetchMethod is called.\n */\n export interface FetcherFetchOptions extends Pick<\n OptionsBase,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n | 'noDeleteOnFetchRejection'\n | 'allowStaleOnFetchRejection'\n | 'ignoreFetchAbort'\n | 'allowStaleOnFetchAbort'\n > {\n status?: Status\n size?: Size\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#fetch} method.\n */\n export interface FetchOptions extends FetcherFetchOptions<\n K,\n V,\n FC\n > {\n /**\n * Set to true to force a re-load of the existing data, even if it\n * is not yet stale.\n */\n forceRefresh?: boolean\n /**\n * Context provided to the {@link OptionsBase.fetchMethod} as\n * the {@link FetcherOptions.context} param.\n *\n * If the FC type is specified as unknown (the default),\n * undefined or void, then this is optional. Otherwise, it will\n * be required.\n */\n context?: FC\n signal?: AbortSignal\n status?: Status\n }\n /**\n * Options provided to {@link LRUCache#fetch} when the FC type is something\n * other than `unknown`, `undefined`, or `void`\n */\n export interface FetchOptionsWithContext extends FetchOptions<\n K,\n V,\n FC\n > {\n context: FC\n }\n /**\n * Options provided to {@link LRUCache#fetch} when the FC type is\n * `undefined` or `void`\n */\n export interface FetchOptionsNoContext extends FetchOptions<\n K,\n V,\n undefined\n > {\n context?: undefined\n }\n\n export interface MemoOptions extends Pick<\n OptionsBase,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n | 'noDeleteOnFetchRejection'\n | 'allowStaleOnFetchRejection'\n | 'ignoreFetchAbort'\n | 'allowStaleOnFetchAbort'\n > {\n /**\n * Set to true to force a re-load of the existing data, even if it\n * is not yet stale.\n */\n forceRefresh?: boolean\n /**\n * Context provided to the {@link OptionsBase.memoMethod} as\n * the {@link MemoizerOptions.context} param.\n *\n * If the FC type is specified as unknown (the default),\n * undefined or void, then this is optional. Otherwise, it will\n * be required.\n */\n context?: FC\n status?: Status\n }\n /**\n * Options provided to {@link LRUCache#memo} when the FC type is something\n * other than `unknown`, `undefined`, or `void`\n */\n export interface MemoOptionsWithContext extends MemoOptions<\n K,\n V,\n FC\n > {\n context: FC\n }\n /**\n * Options provided to {@link LRUCache#memo} when the FC type is\n * `undefined` or `void`\n */\n export interface MemoOptionsNoContext extends MemoOptions<\n K,\n V,\n undefined\n > {\n context?: undefined\n }\n\n /**\n * Options provided to the\n * {@link OptionsBase.memoMethod} function.\n */\n export interface MemoizerOptions {\n options: MemoizerMemoOptions\n /**\n * Object provided in the {@link MemoOptions.context} option to\n * {@link LRUCache#memo}\n */\n context: FC\n }\n\n /**\n * options which override the options set in the LRUCache constructor\n * when calling {@link LRUCache#memo}.\n *\n * This is the union of {@link GetOptions} and {@link SetOptions}, plus\n * {@link MemoOptions.forceRefresh}, and\n * {@link MemoOptions.context}\n *\n * Any of these may be modified in the {@link OptionsBase.memoMethod}\n * function, but the {@link GetOptions} fields will of course have no\n * effect, as the {@link LRUCache#get} call already happened by the time\n * the memoMethod is called.\n */\n export interface MemoizerMemoOptions extends Pick<\n OptionsBase,\n | 'allowStale'\n | 'updateAgeOnGet'\n | 'noDeleteOnStaleGet'\n | 'sizeCalculation'\n | 'ttl'\n | 'noDisposeOnSet'\n | 'noUpdateTTL'\n > {\n status?: Status\n size?: Size\n start?: Milliseconds\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#has} method.\n */\n export interface HasOptions extends Pick<\n OptionsBase,\n 'updateAgeOnHas'\n > {\n status?: Status\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#get} method.\n */\n export interface GetOptions extends Pick<\n OptionsBase,\n 'allowStale' | 'updateAgeOnGet' | 'noDeleteOnStaleGet'\n > {\n status?: Status\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#peek} method.\n */\n export interface PeekOptions extends Pick<\n OptionsBase,\n 'allowStale'\n > {\n status?: Status\n }\n\n /**\n * Options that may be passed to the {@link LRUCache#set} method.\n */\n export interface SetOptions extends Pick<\n OptionsBase,\n 'sizeCalculation' | 'ttl' | 'noDisposeOnSet' | 'noUpdateTTL'\n > {\n /**\n * If size tracking is enabled, then setting an explicit size\n * in the {@link LRUCache#set} call will prevent calling the\n * {@link OptionsBase.sizeCalculation} function.\n */\n size?: Size\n /**\n * If TTL tracking is enabled, then setting an explicit start\n * time in the {@link LRUCache#set} call will override the\n * default time from `performance.now()` or `Date.now()`.\n *\n * Note that it must be a valid value for whichever time-tracking\n * method is in use.\n */\n start?: Milliseconds\n status?: Status\n }\n\n /**\n * The type signature for the {@link OptionsBase.fetchMethod} option.\n */\n export type Fetcher = (\n key: K,\n staleValue: V | undefined,\n options: FetcherOptions,\n ) => Promise | V | undefined | void\n\n /**\n * the type signature for the {@link OptionsBase.memoMethod} option.\n */\n export type Memoizer = (\n key: K,\n staleValue: V | undefined,\n options: MemoizerOptions,\n ) => V\n\n /**\n * Options which may be passed to the {@link LRUCache} constructor.\n *\n * Most of these may be overridden in the various options that use\n * them.\n *\n * Despite all being technically optional, the constructor requires that\n * a cache is at minimum limited by one or more of {@link OptionsBase.max},\n * {@link OptionsBase.ttl}, or {@link OptionsBase.maxSize}.\n *\n * If {@link OptionsBase.ttl} is used alone, then it is strongly advised\n * (and in fact required by the type definitions here) that the cache\n * also set {@link OptionsBase.ttlAutopurge}, to prevent potentially\n * unbounded storage.\n *\n * All options are also available on the {@link LRUCache} instance, making\n * it safe to pass an LRUCache instance as the options argumemnt to\n * make another empty cache of the same type.\n *\n * Some options are marked as read-only, because changing them after\n * instantiation is not safe. Changing any of the other options will of\n * course only have an effect on subsequent method calls.\n */\n export interface OptionsBase {\n /**\n * The maximum number of items to store in the cache before evicting\n * old entries. This is read-only on the {@link LRUCache} instance,\n * and may not be overridden.\n *\n * If set, then storage space will be pre-allocated at construction\n * time, and the cache will perform significantly faster.\n *\n * Note that significantly fewer items may be stored, if\n * {@link OptionsBase.maxSize} and/or {@link OptionsBase.ttl} are also\n * set.\n *\n * **It is strongly recommended to set a `max` to prevent unbounded growth\n * of the cache.**\n */\n max?: Count\n\n /**\n * Max time in milliseconds for items to live in cache before they are\n * considered stale. Note that stale items are NOT preemptively removed by\n * default, and MAY live in the cache, contributing to its LRU max, long\n * after they have expired, unless {@link OptionsBase.ttlAutopurge} is\n * set.\n *\n * If set to `0` (the default value), then that means \"do not track\n * TTL\", not \"expire immediately\".\n *\n * Also, as this cache is optimized for LRU/MRU operations, some of\n * the staleness/TTL checks will reduce performance, as they will incur\n * overhead by deleting items.\n *\n * This is not primarily a TTL cache, and does not make strong TTL\n * guarantees. There is no pre-emptive pruning of expired items, but you\n * _may_ set a TTL on the cache, and it will treat expired items as missing\n * when they are fetched, and delete them.\n *\n * Optional, but must be a non-negative integer in ms if specified.\n *\n * This may be overridden by passing an options object to `cache.set()`.\n *\n * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n * positive integer if set.\n *\n * Even if ttl tracking is enabled, **it is strongly recommended to set a\n * `max` to prevent unbounded growth of the cache.**\n *\n * If ttl tracking is enabled, and `max` and `maxSize` are not set,\n * and `ttlAutopurge` is not set, then a warning will be emitted\n * cautioning about the potential for unbounded memory consumption.\n * (The TypeScript definitions will also discourage this.)\n */\n ttl?: Milliseconds\n\n /**\n * Minimum amount of time in ms in which to check for staleness.\n * Defaults to 1, which means that the current time is checked\n * at most once per millisecond.\n *\n * Set to 0 to check the current time every time staleness is tested.\n * (This reduces performance, and is theoretically unnecessary.)\n *\n * Setting this to a higher value will improve performance somewhat\n * while using ttl tracking, albeit at the expense of keeping stale\n * items around a bit longer than their TTLs would indicate.\n *\n * @default 1\n */\n ttlResolution?: Milliseconds\n\n /**\n * Preemptively remove stale items from the cache.\n *\n * Note that this may *significantly* degrade performance, especially if\n * the cache is storing a large number of items. It is almost always best\n * to just leave the stale items in the cache, and let them fall out as new\n * items are added.\n *\n * Note that this means that {@link OptionsBase.allowStale} is a bit\n * pointless, as stale items will be deleted almost as soon as they\n * expire.\n *\n * Use with caution!\n */\n ttlAutopurge?: boolean\n\n /**\n * When using time-expiring entries with `ttl`, setting this to `true` will\n * make each item's age reset to 0 whenever it is retrieved from cache with\n * {@link LRUCache#get}, causing it to not expire. (It can still fall out\n * of cache based on recency of use, of course.)\n *\n * Has no effect if {@link OptionsBase.ttl} is not set.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n */\n updateAgeOnGet?: boolean\n\n /**\n * When using time-expiring entries with `ttl`, setting this to `true` will\n * make each item's age reset to 0 whenever its presence in the cache is\n * checked with {@link LRUCache#has}, causing it to not expire. (It can\n * still fall out of cache based on recency of use, of course.)\n *\n * Has no effect if {@link OptionsBase.ttl} is not set.\n */\n updateAgeOnHas?: boolean\n\n /**\n * Allow {@link LRUCache#get} and {@link LRUCache#fetch} calls to return\n * stale data, if available.\n *\n * By default, if you set `ttl`, stale items will only be deleted from the\n * cache when you `get(key)`. That is, it's not preemptively pruning items,\n * unless {@link OptionsBase.ttlAutopurge} is set.\n *\n * If you set `allowStale:true`, it'll return the stale value *as well as*\n * deleting it. If you don't set this, then it'll return `undefined` when\n * you try to get a stale entry.\n *\n * Note that when a stale entry is fetched, _even if it is returned due to\n * `allowStale` being set_, it is removed from the cache immediately. You\n * can suppress this behavior by setting\n * {@link OptionsBase.noDeleteOnStaleGet}, either in the constructor, or in\n * the options provided to {@link LRUCache#get}.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n * The `cache.has()` method will always return `false` for stale items.\n *\n * Only relevant if a ttl is set.\n */\n allowStale?: boolean\n\n /**\n * Function that is called on items when they are dropped from the\n * cache, as `dispose(value, key, reason)`.\n *\n * This can be handy if you want to close file descriptors or do\n * other cleanup tasks when items are no longer stored in the cache.\n *\n * **NOTE**: It is called _before_ the item has been fully removed\n * from the cache, so if you want to put it right back in, you need\n * to wait until the next tick. If you try to add it back in during\n * the `dispose()` function call, it will break things in subtle and\n * weird ways.\n *\n * Unlike several other options, this may _not_ be overridden by\n * passing an option to `set()`, for performance reasons.\n *\n * The `reason` will be one of the following strings, corresponding\n * to the reason for the item's deletion:\n *\n * - `evict` Item was evicted to make space for a new addition\n * - `set` Item was overwritten by a new value\n * - `expire` Item expired its TTL\n * - `fetch` Item was deleted due to a failed or aborted fetch, or a\n * fetchMethod returning `undefined.\n * - `delete` Item was removed by explicit `cache.delete(key)`,\n * `cache.clear()`, or `cache.set(key, undefined)`.\n */\n dispose?: Disposer\n\n /**\n * Function that is called when new items are inserted into the cache,\n * as `onInsert(value, key, reason)`.\n *\n * This can be useful if you need to perform actions when an item is\n * added, such as logging or tracking insertions.\n *\n * Unlike some other options, this may _not_ be overridden by passing\n * an option to `set()`, for performance and consistency reasons.\n */\n onInsert?: Inserter\n\n /**\n * The same as {@link OptionsBase.dispose}, but called *after* the entry\n * is completely removed and the cache is once again in a clean state.\n *\n * It is safe to add an item right back into the cache at this point.\n * However, note that it is *very* easy to inadvertently create infinite\n * recursion this way.\n */\n disposeAfter?: Disposer\n\n /**\n * Set to true to suppress calling the\n * {@link OptionsBase.dispose} function if the entry key is\n * still accessible within the cache.\n *\n * This may be overridden by passing an options object to\n * {@link LRUCache#set}.\n *\n * Only relevant if `dispose` or `disposeAfter` are set.\n */\n noDisposeOnSet?: boolean\n\n /**\n * Boolean flag to tell the cache to not update the TTL when setting a new\n * value for an existing key (ie, when updating a value rather than\n * inserting a new value). Note that the TTL value is _always_ set (if\n * provided) when adding a new entry into the cache.\n *\n * Has no effect if a {@link OptionsBase.ttl} is not set.\n *\n * May be passed as an option to {@link LRUCache#set}.\n */\n noUpdateTTL?: boolean\n\n /**\n * Set to a positive integer to track the sizes of items added to the\n * cache, and automatically evict items in order to stay below this size.\n * Note that this may result in fewer than `max` items being stored.\n *\n * Attempting to add an item to the cache whose calculated size is greater\n * that this amount will be a no-op. The item will not be cached, and no\n * other items will be evicted.\n *\n * Optional, must be a positive integer if provided.\n *\n * Sets `maxEntrySize` to the same value, unless a different value is\n * provided for `maxEntrySize`.\n *\n * At least one of `max`, `maxSize`, or `TTL` is required. This must be a\n * positive integer if set.\n *\n * Even if size tracking is enabled, **it is strongly recommended to set a\n * `max` to prevent unbounded growth of the cache.**\n *\n * Note also that size tracking can negatively impact performance,\n * though for most cases, only minimally.\n */\n maxSize?: Size\n\n /**\n * The maximum allowed size for any single item in the cache.\n *\n * If a larger item is passed to {@link LRUCache#set} or returned by a\n * {@link OptionsBase.fetchMethod} or {@link OptionsBase.memoMethod}, then\n * it will not be stored in the cache.\n *\n * Attempting to add an item whose calculated size is greater than\n * this amount will not cache the item or evict any old items, but\n * WILL delete an existing value if one is already present.\n *\n * Optional, must be a positive integer if provided. Defaults to\n * the value of `maxSize` if provided.\n */\n maxEntrySize?: Size\n\n /**\n * A function that returns a number indicating the item's size.\n *\n * Requires {@link OptionsBase.maxSize} to be set.\n *\n * If not provided, and {@link OptionsBase.maxSize} or\n * {@link OptionsBase.maxEntrySize} are set, then all\n * {@link LRUCache#set} calls **must** provide an explicit\n * {@link SetOptions.size} or sizeCalculation param.\n */\n sizeCalculation?: SizeCalculator\n\n /**\n * Method that provides the implementation for {@link LRUCache#fetch}\n *\n * ```ts\n * fetchMethod(key, staleValue, { signal, options, context })\n * ```\n *\n * If `fetchMethod` is not provided, then `cache.fetch(key)` is equivalent\n * to `Promise.resolve(cache.get(key))`.\n *\n * If at any time, `signal.aborted` is set to `true`, or if the\n * `signal.onabort` method is called, or if it emits an `'abort'` event\n * which you can listen to with `addEventListener`, then that means that\n * the fetch should be abandoned. This may be passed along to async\n * functions aware of AbortController/AbortSignal behavior.\n *\n * The `fetchMethod` should **only** return `undefined` or a Promise\n * resolving to `undefined` if the AbortController signaled an `abort`\n * event. In all other cases, it should return or resolve to a value\n * suitable for adding to the cache.\n *\n * The `options` object is a union of the options that may be provided to\n * `set()` and `get()`. If they are modified, then that will result in\n * modifying the settings to `cache.set()` when the value is resolved, and\n * in the case of\n * {@link OptionsBase.noDeleteOnFetchRejection} and\n * {@link OptionsBase.allowStaleOnFetchRejection}, the handling of\n * `fetchMethod` failures.\n *\n * For example, a DNS cache may update the TTL based on the value returned\n * from a remote DNS server by changing `options.ttl` in the `fetchMethod`.\n */\n fetchMethod?: Fetcher\n\n /**\n * Method that provides the implementation for {@link LRUCache#memo}\n */\n memoMethod?: Memoizer\n\n /**\n * Set to true to suppress the deletion of stale data when a\n * {@link OptionsBase.fetchMethod} returns a rejected promise.\n */\n noDeleteOnFetchRejection?: boolean\n\n /**\n * Do not delete stale items when they are retrieved with\n * {@link LRUCache#get}.\n *\n * Note that the `get` return value will still be `undefined`\n * unless {@link OptionsBase.allowStale} is true.\n *\n * When using time-expiring entries with `ttl`, by default stale\n * items will be removed from the cache when the key is accessed\n * with `cache.get()`.\n *\n * Setting this option will cause stale items to remain in the cache, until\n * they are explicitly deleted with `cache.delete(key)`, or retrieved with\n * `noDeleteOnStaleGet` set to `false`.\n *\n * This may be overridden by passing an options object to `cache.get()`.\n *\n * Only relevant if a ttl is used.\n */\n noDeleteOnStaleGet?: boolean\n\n /**\n * Set to true to allow returning stale data when a\n * {@link OptionsBase.fetchMethod} throws an error or returns a rejected\n * promise.\n *\n * This differs from using {@link OptionsBase.allowStale} in that stale\n * data will ONLY be returned in the case that the {@link LRUCache#fetch}\n * fails, not any other times.\n *\n * If a `fetchMethod` fails, and there is no stale value available, the\n * `fetch()` will resolve to `undefined`. Ie, all `fetchMethod` errors are\n * suppressed.\n *\n * Implies `noDeleteOnFetchRejection`.\n *\n * This may be set in calls to `fetch()`, or defaulted on the constructor,\n * or overridden by modifying the options object in the `fetchMethod`.\n */\n allowStaleOnFetchRejection?: boolean\n\n /**\n * Set to true to return a stale value from the cache when the\n * `AbortSignal` passed to the {@link OptionsBase.fetchMethod} dispatches\n * an `'abort'` event, whether user-triggered, or due to internal cache\n * behavior.\n *\n * Unless {@link OptionsBase.ignoreFetchAbort} is also set, the underlying\n * {@link OptionsBase.fetchMethod} will still be considered canceled, and\n * any value it returns will be ignored and not cached.\n *\n * Caveat: since fetches are aborted when a new value is explicitly\n * set in the cache, this can lead to fetch returning a stale value,\n * since that was the fallback value _at the moment the `fetch()` was\n * initiated_, even though the new updated value is now present in\n * the cache.\n *\n * For example:\n *\n * ```ts\n * const cache = new LRUCache({\n * ttl: 100,\n * fetchMethod: async (url, oldValue, { signal }) => {\n * const res = await fetch(url, { signal })\n * return await res.json()\n * }\n * })\n * cache.set('https://example.com/', { some: 'data' })\n * // 100ms go by...\n * const result = cache.fetch('https://example.com/')\n * cache.set('https://example.com/', { other: 'thing' })\n * console.log(await result) // { some: 'data' }\n * console.log(cache.get('https://example.com/')) // { other: 'thing' }\n * ```\n */\n allowStaleOnFetchAbort?: boolean\n\n /**\n * Set to true to ignore the `abort` event emitted by the `AbortSignal`\n * object passed to {@link OptionsBase.fetchMethod}, and still cache the\n * resulting resolution value, as long as it is not `undefined`.\n *\n * When used on its own, this means aborted {@link LRUCache#fetch} calls\n * are not immediately resolved or rejected when they are aborted, and\n * instead take the full time to await.\n *\n * When used with {@link OptionsBase.allowStaleOnFetchAbort}, aborted\n * {@link LRUCache#fetch} calls will resolve immediately to their stale\n * cached value or `undefined`, and will continue to process and eventually\n * update the cache when they resolve, as long as the resulting value is\n * not `undefined`, thus supporting a \"return stale on timeout while\n * refreshing\" mechanism by passing `AbortSignal.timeout(n)` as the signal.\n *\n * For example:\n *\n * ```ts\n * const c = new LRUCache({\n * ttl: 100,\n * ignoreFetchAbort: true,\n * allowStaleOnFetchAbort: true,\n * fetchMethod: async (key, oldValue, { signal }) => {\n * // note: do NOT pass the signal to fetch()!\n * // let's say this fetch can take a long time.\n * const res = await fetch(`https://slow-backend-server/${key}`)\n * return await res.json()\n * },\n * })\n *\n * // this will return the stale value after 100ms, while still\n * // updating in the background for next time.\n * const val = await c.fetch('key', { signal: AbortSignal.timeout(100) })\n * ```\n *\n * **Note**: regardless of this setting, an `abort` event _is still\n * emitted on the `AbortSignal` object_, so may result in invalid results\n * when passed to other underlying APIs that use AbortSignals.\n *\n * This may be overridden in the {@link OptionsBase.fetchMethod} or the\n * call to {@link LRUCache#fetch}.\n */\n ignoreFetchAbort?: boolean\n\n /**\n * In some cases, you may want to swap out the performance/Date object\n * used for TTL tracking. This should almost certainly NOT be done in\n * production environments!\n *\n * This value defaults to `global.performance` if it has a `now()` method,\n * or the `global.Date` object otherwise.\n */\n perf?: Perf\n }\n\n export interface OptionsMaxLimit extends OptionsBase<\n K,\n V,\n FC\n > {\n max: Count\n }\n export interface OptionsTTLLimit extends OptionsBase<\n K,\n V,\n FC\n > {\n ttl: Milliseconds\n ttlAutopurge: boolean\n }\n export interface OptionsSizeLimit extends OptionsBase<\n K,\n V,\n FC\n > {\n maxSize: Size\n }\n\n /**\n * The valid safe options for the {@link LRUCache} constructor\n */\n export type Options =\n | OptionsMaxLimit\n | OptionsSizeLimit\n | OptionsTTLLimit\n\n /**\n * Entry objects used by {@link LRUCache#load} and {@link LRUCache#dump},\n * and returned by {@link LRUCache#info}.\n */\n export interface Entry {\n value: V\n ttl?: Milliseconds\n size?: Size\n start?: Milliseconds\n }\n}\n\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache {\n // options that cannot be changed without disaster\n readonly #max: LRUCache.Count\n readonly #maxSize: LRUCache.Size\n readonly #dispose?: LRUCache.Disposer\n readonly #onInsert?: LRUCache.Inserter\n readonly #disposeAfter?: LRUCache.Disposer\n readonly #fetchMethod?: LRUCache.Fetcher\n readonly #memoMethod?: LRUCache.Memoizer\n readonly #perf: Perf\n\n /**\n * {@link LRUCache.OptionsBase.perf}\n */\n get perf() {\n return this.#perf\n }\n\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl: LRUCache.Milliseconds\n\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution: LRUCache.Milliseconds\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge: boolean\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet: boolean\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale: boolean\n\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet: boolean\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL: boolean\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize: LRUCache.Size\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation?: LRUCache.SizeCalculator\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection: boolean\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort: boolean\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection: boolean\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort: boolean\n\n // computed properties\n #size: LRUCache.Count\n #calculatedSize: LRUCache.Size\n #keyMap: Map\n #keyList: (K | undefined)[]\n #valList: (V | BackgroundFetch | undefined)[]\n #next: NumberArray\n #prev: NumberArray\n #head: Index\n #tail: Index\n #free: StackLike\n #disposed?: DisposeTask[]\n #sizes?: ZeroArray\n #starts?: ZeroArray\n #ttls?: ZeroArray\n #autopurgeTimers?: (undefined | ReturnType)[]\n\n #hasDispose: boolean\n #hasFetchMethod: boolean\n #hasDisposeAfter: boolean\n #hasOnInsert: boolean\n\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals<\n K extends {},\n V extends {},\n FC extends unknown = unknown,\n >(c: LRUCache) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n autopurgeTimers: c.#autopurgeTimers,\n sizes: c.#sizes,\n keyMap: c.#keyMap as Map,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head\n },\n get tail() {\n return c.#tail\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p: unknown) => c.#isBackgroundFetch(p),\n backgroundFetch: (\n k: K,\n index: number | undefined,\n options: LRUCache.FetchOptions,\n context: unknown,\n ): BackgroundFetch =>\n c.#backgroundFetch(\n k,\n index as Index | undefined,\n options,\n context as FC,\n ),\n moveToTail: (index: number): void => c.#moveToTail(index as Index),\n indexes: (options?: { allowStale: boolean }) => c.#indexes(options),\n rindexes: (options?: { allowStale: boolean }) =>\n c.#rindexes(options),\n isStale: (index: number | undefined) => c.#isStale(index as Index),\n }\n }\n\n // Protected read-only members\n\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max(): LRUCache.Count {\n return this.#max\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize(): LRUCache.Count {\n return this.#maxSize\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize(): LRUCache.Size {\n return this.#calculatedSize\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size(): LRUCache.Count {\n return this.#size\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod(): LRUCache.Fetcher | undefined {\n return this.#fetchMethod\n }\n get memoMethod(): LRUCache.Memoizer | undefined {\n return this.#memoMethod\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose\n }\n /**\n * {@link LRUCache.OptionsBase.onInsert} (read-only)\n */\n get onInsert() {\n return this.#onInsert\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter\n }\n\n constructor(options: LRUCache.Options | LRUCache) {\n const {\n max = 0,\n ttl,\n ttlResolution = 1,\n ttlAutopurge,\n updateAgeOnGet,\n updateAgeOnHas,\n allowStale,\n dispose,\n onInsert,\n disposeAfter,\n noDisposeOnSet,\n noUpdateTTL,\n maxSize = 0,\n maxEntrySize = 0,\n sizeCalculation,\n fetchMethod,\n memoMethod,\n noDeleteOnFetchRejection,\n noDeleteOnStaleGet,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n perf,\n } = options\n\n if (perf !== undefined) {\n if (typeof perf?.now !== 'function') {\n throw new TypeError(\n 'perf option must have a now() method if specified',\n )\n }\n }\n\n this.#perf = perf ?? defaultPerf\n\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer')\n }\n\n const UintArray = max ? getUintArray(max) : Array\n if (!UintArray) {\n throw new Error('invalid max value: ' + max)\n }\n\n this.#max = max\n this.#maxSize = maxSize\n this.maxEntrySize = maxEntrySize || this.#maxSize\n this.sizeCalculation = sizeCalculation\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError(\n 'cannot set sizeCalculation without setting maxSize or maxEntrySize',\n )\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function')\n }\n }\n\n if (memoMethod !== undefined && typeof memoMethod !== 'function') {\n throw new TypeError('memoMethod must be a function if defined')\n }\n this.#memoMethod = memoMethod\n\n if (fetchMethod !== undefined && typeof fetchMethod !== 'function') {\n throw new TypeError('fetchMethod must be a function if specified')\n }\n this.#fetchMethod = fetchMethod\n this.#hasFetchMethod = !!fetchMethod\n\n this.#keyMap = new Map()\n this.#keyList = Array.from({ length: max }).fill(undefined) as (\n | K\n | undefined\n )[]\n this.#valList = Array.from({ length: max }).fill(undefined) as (\n | V\n | undefined\n )[]\n this.#next = new UintArray(max)\n this.#prev = new UintArray(max)\n this.#head = 0 as Index\n this.#tail = 0 as Index\n this.#free = Stack.create(max)\n this.#size = 0\n this.#calculatedSize = 0\n\n if (typeof dispose === 'function') {\n this.#dispose = dispose\n }\n if (typeof onInsert === 'function') {\n this.#onInsert = onInsert\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter\n this.#disposed = []\n } else {\n this.#disposeAfter = undefined\n this.#disposed = undefined\n }\n this.#hasDispose = !!this.#dispose\n this.#hasOnInsert = !!this.#onInsert\n this.#hasDisposeAfter = !!this.#disposeAfter\n\n this.noDisposeOnSet = !!noDisposeOnSet\n this.noUpdateTTL = !!noUpdateTTL\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort\n this.ignoreFetchAbort = !!ignoreFetchAbort\n\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError(\n 'maxSize must be a positive integer if specified',\n )\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError(\n 'maxEntrySize must be a positive integer if specified',\n )\n }\n this.#initializeSizeTracking()\n }\n\n this.allowStale = !!allowStale\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet\n this.updateAgeOnGet = !!updateAgeOnGet\n this.updateAgeOnHas = !!updateAgeOnHas\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1\n this.ttlAutopurge = !!ttlAutopurge\n this.ttl = ttl || 0\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError('ttl must be a positive integer if specified')\n }\n this.#initializeTTLTracking()\n }\n\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError(\n 'At least one of max, maxSize, or ttl is required',\n )\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED'\n if (shouldWarn(code)) {\n warned.add(code)\n const msg =\n 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.'\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache)\n }\n }\n }\n\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key: K) {\n return this.#keyMap.has(key) ? Infinity : 0\n }\n\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max)\n const starts = new ZeroArray(this.#max)\n this.#ttls = ttls\n this.#starts = starts\n const purgeTimers =\n this.ttlAutopurge ?\n Array.from>({\n length: this.#max,\n })\n : undefined\n this.#autopurgeTimers = purgeTimers\n\n this.#setItemTTL = (index, ttl, start = this.#perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0\n ttls[index] = ttl\n setPurgetTimer(index, ttl)\n }\n\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? this.#perf.now() : 0\n setPurgetTimer(index, ttls[index])\n }\n\n // clear out the purge timer if we're setting TTL to 0, and\n // previously had a ttl purge timer running, so it doesn't\n // fire unnecessarily. Don't need to do this if we're not doing\n // autopurge.\n const setPurgetTimer =\n !this.ttlAutopurge ?\n () => {}\n : (index: Index, ttl?: number) => {\n if (purgeTimers?.[index]) {\n clearTimeout(purgeTimers[index])\n purgeTimers[index] = undefined\n }\n if (ttl && ttl !== 0 && purgeTimers) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index] as K, 'expire')\n }\n }, ttl + 1)\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref()\n }\n /* c8 ignore stop */\n purgeTimers[index] = t\n }\n }\n\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index]\n const start = starts[index]\n /* c8 ignore start */\n if (!ttl || !start) {\n return\n }\n /* c8 ignore stop */\n status.ttl = ttl\n status.start = start\n status.now = cachedNow || getNow()\n const age = status.now - start\n status.remainingTTL = ttl - age\n }\n }\n\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0\n const getNow = () => {\n const n = this.#perf.now()\n if (this.ttlResolution > 0) {\n cachedNow = n\n const t = setTimeout(() => (cachedNow = 0), this.ttlResolution)\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref()\n }\n /* c8 ignore stop */\n }\n return n\n }\n\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key)\n if (index === undefined) {\n return 0\n }\n const ttl = ttls[index]\n const start = starts[index]\n if (!ttl || !start) {\n return Infinity\n }\n const age = (cachedNow || getNow()) - start\n return ttl - age\n }\n\n this.#isStale = index => {\n const s = starts[index]\n const t = ttls[index]\n return !!t && !!s && (cachedNow || getNow()) - s > t\n }\n }\n\n // conditionally set private methods related to TTL\n #updateItemAge: (index: Index) => void = () => {}\n #statusTTL: (status: LRUCache.Status, index: Index) => void =\n () => {}\n #setItemTTL: (\n index: Index,\n ttl: LRUCache.Milliseconds,\n start?: LRUCache.Milliseconds,\n // ignore because we never call this if we're not already in TTL mode\n /* c8 ignore start */\n ) => void = () => {}\n /* c8 ignore stop */\n\n #isStale: (index: Index) => boolean = () => false\n\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max)\n this.#calculatedSize = 0\n this.#sizes = sizes\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index] as number\n sizes[index] = 0\n }\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function')\n }\n size = sizeCalculation(v, k)\n if (!isPosInt(size)) {\n throw new TypeError(\n 'sizeCalculation return invalid (expect positive integer)',\n )\n }\n } else {\n throw new TypeError(\n 'invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.',\n )\n }\n }\n return size\n }\n\n this.#addItemSize = (\n index: Index,\n size: LRUCache.Size,\n status?: LRUCache.Status,\n ) => {\n sizes[index] = size\n if (this.#maxSize) {\n const maxSize = this.#maxSize - (sizes[index] as number)\n while (this.#calculatedSize > maxSize) {\n this.#evict(true)\n }\n }\n this.#calculatedSize += sizes[index] as number\n if (status) {\n status.entrySize = size\n status.totalCalculatedSize = this.#calculatedSize\n }\n }\n }\n\n #removeItemSize: (index: Index) => void = _i => {}\n\n #addItemSize: (\n index: Index,\n size: LRUCache.Size,\n status?: LRUCache.Status,\n ) => void = (_i, _s, _st) => {}\n\n #requireSize: (\n k: K,\n v: V | BackgroundFetch,\n size?: LRUCache.Size,\n sizeCalculation?: LRUCache.SizeCalculator,\n status?: LRUCache.Status,\n ) => LRUCache.Size = (\n _k: K,\n _v: V | BackgroundFetch,\n size?: LRUCache.Size,\n sizeCalculation?: LRUCache.SizeCalculator,\n ) => {\n if (size || sizeCalculation) {\n throw new TypeError(\n 'cannot set size without setting maxSize or maxEntrySize on cache',\n )\n }\n return 0\n };\n\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; this.#isValidIndex(i); ) {\n if (allowStale || !this.#isStale(i)) {\n yield i\n }\n if (i === this.#head) {\n break\n } else {\n i = this.#prev[i] as Index\n }\n }\n }\n }\n\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; this.#isValidIndex(i); ) {\n if (allowStale || !this.#isStale(i)) {\n yield i\n }\n if (i === this.#tail) {\n break\n } else {\n i = this.#next[i] as Index\n }\n }\n }\n }\n\n #isValidIndex(index: Index) {\n return (\n index !== undefined &&\n this.#keyMap.get(this.#keyList[index] as K) === index\n )\n }\n\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (\n this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield [this.#keyList[i], this.#valList[i]] as [K, V]\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (\n this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])\n ) {\n yield [this.#keyList[i], this.#valList[i]]\n }\n }\n }\n\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i]\n if (k !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield k\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i]\n if (k !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield k\n }\n }\n }\n\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n if (v !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i] as V\n }\n }\n }\n\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i]\n if (v !== undefined && !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i]\n }\n }\n }\n\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries()\n }\n\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache'\n\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(\n fn: (v: V, k: K, self: LRUCache) => boolean,\n getOptions: LRUCache.GetOptions = {},\n ) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) continue\n if (fn(value, this.#keyList[i] as K, this)) {\n return this.#get(this.#keyList[i] as K, getOptions)\n }\n }\n }\n\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(\n fn: (v: V, k: K, self: LRUCache) => unknown,\n thisp: unknown = this,\n ) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) continue\n fn.call(thisp, value, this.#keyList[i] as K, this)\n }\n }\n\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(\n fn: (v: V, k: K, self: LRUCache) => unknown,\n thisp: unknown = this,\n ) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i]\n const value = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) continue\n fn.call(thisp, value, this.#keyList[i] as K, this)\n }\n }\n\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i] as K, 'expire')\n deleted = true\n }\n }\n return deleted\n }\n\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key: K): LRUCache.Entry | undefined {\n const i = this.#keyMap.get(key)\n if (i === undefined) return undefined\n const v = this.#valList[i]\n /* c8 ignore start - this isn't tested for the info function,\n * but it's the same logic as found in other places. */\n const value: V | undefined =\n this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined) return undefined\n /* c8 ignore stop */\n const entry: LRUCache.Entry = { value }\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i]\n const start = this.#starts[i]\n if (ttl && start) {\n const remain = ttl - (this.#perf.now() - start)\n entry.ttl = remain\n entry.start = Date.now()\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i]\n }\n return entry\n }\n\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr: [K, LRUCache.Entry][] = []\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i]\n const v = this.#valList[i]\n const value: V | undefined =\n this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (value === undefined || key === undefined) continue\n const entry: LRUCache.Entry = { value }\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i]\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = this.#perf.now() - (this.#starts[i] as number)\n entry.start = Math.floor(Date.now() - age)\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i]\n }\n arr.unshift([key, entry])\n }\n return arr\n }\n\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr: [K, LRUCache.Entry][]) {\n this.clear()\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start\n entry.start = this.#perf.now() - age\n }\n this.#set(key, entry.value, entry)\n }\n }\n\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(\n k: K,\n v: V | undefined,\n setOptions: LRUCache.SetOptions = {},\n ) {\n const { status = metrics.hasSubscribers ? {} : undefined } = setOptions\n setOptions.status = status\n if (status) {\n status.op = 'set'\n status.key = k\n if (v !== undefined) status.value = v\n }\n const result = this.#set(k, v, setOptions)\n if (status && metrics.hasSubscribers) {\n metrics.publish(status)\n }\n return result\n }\n\n #set(\n k: K,\n v: V | BackgroundFetch | undefined,\n setOptions: LRUCache.SetOptions = {},\n ) {\n const {\n ttl = this.ttl,\n start,\n noDisposeOnSet = this.noDisposeOnSet,\n sizeCalculation = this.sizeCalculation,\n status,\n } = setOptions\n\n if (v === undefined) {\n if (status) status.set = 'deleted'\n this.delete(k)\n return this\n }\n let { noUpdateTTL = this.noUpdateTTL } = setOptions\n\n if (status && !this.#isBackgroundFetch(v)) status.value = v\n\n const size = this.#requireSize(\n k,\n v,\n setOptions.size || 0,\n sizeCalculation,\n status,\n )\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n // have to delete, in case something is there already.\n this.#delete(k, 'set')\n if (status) {\n status.set = 'miss'\n status.maxEntrySizeExceeded = true\n }\n return this\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k)\n if (index === undefined) {\n // addition\n index = (\n this.#size === 0 ? this.#tail\n : this.#free.length !== 0 ? this.#free.pop()\n : this.#size === this.#max ? this.#evict(false)\n : this.#size) as Index\n this.#keyList[index] = k\n this.#valList[index] = v\n this.#keyMap.set(k, index)\n this.#next[this.#tail] = index\n this.#prev[index] = this.#tail\n this.#tail = index\n this.#size++\n this.#addItemSize(index, size, status)\n if (status) status.set = 'add'\n noUpdateTTL = false\n if (this.#hasOnInsert) {\n this.#onInsert?.(v as V, k, 'add')\n }\n } else {\n // update\n this.#moveToTail(index)\n const oldVal = this.#valList[index] as V | BackgroundFetch\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'))\n const { __staleWhileFetching: s } = oldVal\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s as V, k, 'set')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s as V, k, 'set'])\n }\n }\n } else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal as V, k, 'set')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal as V, k, 'set'])\n }\n }\n this.#removeItemSize(index)\n this.#addItemSize(index, size, status)\n this.#valList[index] = v\n if (status) {\n status.set = 'replace'\n const oldValue =\n oldVal && this.#isBackgroundFetch(oldVal) ?\n oldVal.__staleWhileFetching\n : oldVal\n if (oldValue !== undefined) status.oldValue = oldValue\n }\n } else if (status) {\n status.set = 'update'\n }\n\n if (this.#hasOnInsert) {\n this.onInsert?.(v as V, k, v === oldVal ? 'update' : 'replace')\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking()\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start)\n }\n if (status) this.#statusTTL(status, index)\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n return this\n }\n\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop(): V | undefined {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head]\n this.#evict(true)\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching\n }\n } else if (val !== undefined) {\n return val\n }\n }\n } finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n }\n }\n\n #evict(free: boolean) {\n const head = this.#head\n const k = this.#keyList[head] as K\n const v = this.#valList[head] as V\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'))\n } else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict')\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict'])\n }\n }\n this.#removeItemSize(head)\n if (this.#autopurgeTimers?.[head]) {\n clearTimeout(this.#autopurgeTimers[head])\n this.#autopurgeTimers[head] = undefined\n }\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined\n this.#valList[head] = undefined\n this.#free.push(head)\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0 as Index\n this.#free.length = 0\n } else {\n this.#head = this.#next[head] as Index\n }\n this.#keyMap.delete(k)\n this.#size--\n return head\n }\n\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k: K, hasOptions: LRUCache.HasOptions = {}) {\n const { status = metrics.hasSubscribers ? {} : undefined } = hasOptions\n hasOptions.status = status\n if (status) {\n status.op = 'has'\n status.key = k\n }\n const result = this.#has(k, hasOptions)\n if (metrics.hasSubscribers) metrics.publish(status)\n return result\n }\n #has(k: K, hasOptions: LRUCache.HasOptions = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n const v = this.#valList[index]\n if (\n this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined\n ) {\n return false\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index)\n }\n if (status) {\n status.has = 'hit'\n this.#statusTTL(status, index)\n }\n return true\n } else if (status) {\n status.has = 'stale'\n this.#statusTTL(status, index)\n }\n } else if (status) {\n status.has = 'miss'\n }\n return false\n }\n\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k: K, peekOptions: LRUCache.PeekOptions = {}) {\n const { status = hasSubscribers() ? {} : undefined } = peekOptions\n if (status) {\n status.op = 'peek'\n status.key = k\n }\n peekOptions.status = status\n const result = this.#peek(k, peekOptions)\n if (metrics.hasSubscribers) {\n metrics.publish(status)\n }\n return result\n }\n #peek(k: K, peekOptions: LRUCache.PeekOptions) {\n const { status, allowStale = this.allowStale } = peekOptions\n const index = this.#keyMap.get(k)\n if (index === undefined || (!allowStale && this.#isStale(index))) {\n if (status) status.peek = index === undefined ? 'miss' : 'stale'\n return undefined\n }\n const v = this.#valList[index]\n const val = this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v\n if (status) {\n if (val !== undefined) {\n status.peek = 'hit'\n status.value = val\n } else {\n status.peek = 'miss'\n }\n }\n return val\n }\n\n #backgroundFetch(\n k: K,\n index: Index | undefined,\n options: LRUCache.FetchOptions,\n context: FC,\n ): BackgroundFetch {\n const v = index === undefined ? undefined : this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n return v\n }\n\n const ac = new AbortController()\n const { signal } = options\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n })\n\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n }\n\n const cb = (v: V | undefined, updateCache = false): V | undefined => {\n const { aborted } = ac.signal\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined\n const proceed =\n options.ignoreFetchAbort ||\n !!(options.allowStaleOnFetchAbort && v !== undefined)\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true\n options.status.fetchError = ac.signal.reason\n if (ignoreAbort) options.status.fetchAbortIgnored = true\n } else {\n options.status.fetchResolved = true\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason, proceed)\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p as BackgroundFetch\n // if nothing else has been written there but we're set to update the\n // cache and ignore the abort, or if it's still pending on this specific\n // background request, then write it to the cache.\n const vl = this.#valList[index as Index]\n if (vl === p || (vl === undefined && ignoreAbort && updateCache)) {\n if (v === undefined) {\n if (bf.__staleWhileFetching !== undefined) {\n this.#valList[index as Index] = bf.__staleWhileFetching\n } else {\n this.#delete(k, 'fetch')\n }\n } else {\n if (options.status) options.status.fetchUpdated = true\n this.#set(k, v, fetchOpts.options)\n }\n }\n return v\n }\n\n const eb = (er: unknown) => {\n if (options.status) {\n options.status.fetchRejected = true\n options.status.fetchError = er as Error\n }\n // do not pass go, do not collect $200\n return fetchFail(er, false)\n }\n\n const fetchFail = (er: unknown, proceed: boolean): V | undefined => {\n const { aborted } = ac.signal\n const allowStaleAborted = aborted && options.allowStaleOnFetchAbort\n const allowStale =\n allowStaleAborted || options.allowStaleOnFetchRejection\n const noDelete = allowStale || options.noDeleteOnFetchRejection\n const bf = p as BackgroundFetch\n if (this.#valList[index as Index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del =\n !noDelete || (!proceed && bf.__staleWhileFetching === undefined)\n if (del) {\n this.#delete(k, 'fetch')\n } else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index as Index] = bf.__staleWhileFetching\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true\n }\n return bf.__staleWhileFetching\n } else if (bf.__returned === bf) {\n throw er\n }\n }\n\n const pcall = (\n res: (v: V | undefined) => void,\n rej: (e: unknown) => void,\n ) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts)\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej)\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (!options.ignoreFetchAbort || options.allowStaleOnFetchAbort) {\n res(undefined)\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true)\n }\n }\n })\n }\n\n if (options.status) options.status.fetchDispatched = true\n const p = new Promise(pcall).then(cb, eb)\n const bf: BackgroundFetch = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n })\n\n if (index === undefined) {\n // internal, don't expose status.\n this.#set(k, bf, { ...fetchOpts.options, status: undefined })\n index = this.#keyMap.get(k)\n } else {\n this.#valList[index] = bf\n }\n return bf\n }\n\n #isBackgroundFetch(p: unknown): p is BackgroundFetch {\n if (!this.#hasFetchMethod) return false\n const b = p as BackgroundFetch\n return (\n !!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AbortController\n )\n }\n\n /**\n * Make an asynchronous cached fetch using the\n * {@link LRUCache.OptionsBase.fetchMethod} function.\n *\n * If the value is in the cache and not stale, then the returned\n * Promise resolves to the value.\n *\n * If not in the cache, or beyond its TTL staleness, then\n * `fetchMethod(key, staleValue, { options, signal, context })` is\n * called, and the value returned will be added to the cache once\n * resolved.\n *\n * If called with `allowStale`, and an asynchronous fetch is\n * currently in progress to reload a stale value, then the former\n * stale value will be returned.\n *\n * If called with `forceRefresh`, then the cached item will be\n * re-fetched, even if it is not stale. However, if `allowStale` is also\n * set, then the old value will still be returned. This is useful\n * in cases where you want to force a reload of a cached value. If\n * a background fetch is already in progress, then `forceRefresh`\n * has no effect.\n *\n * If multiple fetches for the same key are issued, then they will all be\n * coalesced into a single call to fetchMethod.\n *\n * Note that this means that handling options such as\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort},\n * {@link LRUCache.FetchOptions.signal},\n * and {@link LRUCache.OptionsBase.allowStaleOnFetchRejection} will be\n * determined by the FIRST fetch() call for a given key.\n *\n * This is a known (fixable) shortcoming which will be addresed on when\n * someone complains about it, as the fix would involve added complexity and\n * may not be worth the costs for this edge case.\n *\n * If {@link LRUCache.OptionsBase.fetchMethod} is not specified, then this is\n * effectively an alias for `Promise.resolve(cache.get(key))`.\n *\n * When the fetch method resolves to a value, if the fetch has not\n * been aborted due to deletion, eviction, or being overwritten,\n * then it is added to the cache using the options provided.\n *\n * If the key is evicted or deleted before the `fetchMethod`\n * resolves, then the AbortSignal passed to the `fetchMethod` will\n * receive an `abort` event, and the promise returned by `fetch()`\n * will reject with the reason for the abort.\n *\n * If a `signal` is passed to the `fetch()` call, then aborting the\n * signal will abort the fetch and cause the `fetch()` promise to\n * reject with the reason provided.\n *\n * **Setting `context`**\n *\n * If an `FC` type is set to a type other than `unknown`, `void`, or\n * `undefined` in the {@link LRUCache} constructor, then all\n * calls to `cache.fetch()` _must_ provide a `context` option. If\n * set to `undefined` or `void`, then calls to fetch _must not_\n * provide a `context` option.\n *\n * The `context` param allows you to provide arbitrary data that\n * might be relevant in the course of fetching the data. It is only\n * relevant for the course of a single `fetch()` operation, and\n * discarded afterwards.\n *\n * **Note: `fetch()` calls are inflight-unique**\n *\n * If you call `fetch()` multiple times with the same key value,\n * then every call after the first will resolve on the same\n * promise1,\n * _even if they have different settings that would otherwise change\n * the behavior of the fetch_, such as `noDeleteOnFetchRejection`\n * or `ignoreFetchAbort`.\n *\n * In most cases, this is not a problem (in fact, only fetching\n * something once is what you probably want, if you're caching in\n * the first place). If you are changing the fetch() options\n * dramatically between runs, there's a good chance that you might\n * be trying to fit divergent semantics into a single object, and\n * would be better off with multiple cache instances.\n *\n * **1**: Ie, they're not the \"same Promise\", but they resolve at\n * the same time, because they're both waiting on the same\n * underlying fetchMethod response.\n */\n\n fetch(\n k: K,\n fetchOptions: unknown extends FC ? LRUCache.FetchOptions\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext\n : LRUCache.FetchOptionsWithContext,\n ): Promise\n\n // this overload not allowed if context is required\n fetch(\n k: unknown extends FC ? K\n : FC extends undefined | void ? K\n : never,\n fetchOptions?: unknown extends FC ? LRUCache.FetchOptions\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext\n : never,\n ): Promise\n fetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions = {},\n ): Promise {\n const ths = tracing.hasSubscribers\n const { status = hasSubscribers() ? {} : undefined } = fetchOptions\n fetchOptions.status = status\n if (status && fetchOptions.context) {\n status.context = fetchOptions.context\n }\n const p = this.#fetch(k, fetchOptions)\n if (status && ths) {\n status.trace = true\n tracing.tracePromise(() => p, status).catch(() => {})\n }\n return p\n }\n\n async #fetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions = {},\n ): Promise {\n const {\n // get options\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n // set options\n ttl = this.ttl,\n noDisposeOnSet = this.noDisposeOnSet,\n size = 0,\n sizeCalculation = this.sizeCalculation,\n noUpdateTTL = this.noUpdateTTL,\n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,\n allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,\n ignoreFetchAbort = this.ignoreFetchAbort,\n allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,\n context,\n forceRefresh = false,\n status,\n signal,\n } = fetchOptions\n if (status) {\n status.op = 'fetch'\n status.key = k\n if (forceRefresh) status.forceRefresh = true\n }\n\n if (!this.#hasFetchMethod) {\n if (status) status.fetch = 'get'\n return this.#get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n })\n }\n\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n }\n\n let index = this.#keyMap.get(k)\n if (index === undefined) {\n if (status) status.fetch = 'miss'\n const p = this.#backgroundFetch(k, index, options, context as FC)\n return (p.__returned = p)\n } else {\n // in cache, maybe already fetching\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n const stale = allowStale && v.__staleWhileFetching !== undefined\n if (status) {\n status.fetch = 'inflight'\n if (stale) status.returnedStale = true\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v)\n }\n\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index)\n if (!forceRefresh && !isStale) {\n if (status) status.fetch = 'hit'\n this.#moveToTail(index)\n if (updateAgeOnGet) {\n this.#updateItemAge(index)\n }\n if (status) this.#statusTTL(status, index)\n return v\n }\n\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context as FC)\n const hasStale = p.__staleWhileFetching !== undefined\n const staleVal = hasStale && allowStale\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh'\n if (staleVal && isStale) status.returnedStale = true\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p)\n }\n }\n\n /**\n * In some cases, `cache.fetch()` may resolve to `undefined`, either because\n * a {@link LRUCache.OptionsBase#fetchMethod} was not provided (turning\n * `cache.fetch(k)` into just an async wrapper around `cache.get(k)`) or\n * because `ignoreFetchAbort` was specified (either to the constructor or\n * in the {@link LRUCache.FetchOptions}). Also, the\n * {@link LRUCache.OptionsBase.fetchMethod} may return `undefined` or `void`, making\n * the test even more complicated.\n *\n * Because inferring the cases where `undefined` might be returned are so\n * cumbersome, but testing for `undefined` can also be annoying, this method\n * can be used, which will reject if `this.fetch()` resolves to undefined.\n */\n forceFetch(\n k: K,\n fetchOptions: unknown extends FC ? LRUCache.FetchOptions\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext\n : LRUCache.FetchOptionsWithContext,\n ): Promise\n // this overload not allowed if context is required\n forceFetch(\n k: unknown extends FC ? K\n : FC extends undefined | void ? K\n : never,\n fetchOptions?: unknown extends FC ? LRUCache.FetchOptions\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext\n : never,\n ): Promise\n forceFetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions = {},\n ): Promise {\n const ths = tracing.hasSubscribers\n const { status = hasSubscribers() ? {} : undefined } = fetchOptions\n fetchOptions.status = status\n if (status && fetchOptions.context) {\n status.context = fetchOptions.context\n }\n const p = this.#forceFetch(k, fetchOptions)\n if (status && ths) {\n status.trace = true\n tracing.tracePromise(() => p, status).catch(() => {})\n }\n return p\n }\n\n async #forceFetch(\n k: K,\n fetchOptions: LRUCache.FetchOptions = {},\n ) {\n const v = await this.#fetch(\n k,\n fetchOptions as unknown extends FC ? LRUCache.FetchOptions\n : FC extends undefined | void ? LRUCache.FetchOptionsNoContext\n : LRUCache.FetchOptionsWithContext,\n )\n if (v === undefined) throw new Error('fetch() returned undefined')\n return v\n }\n\n /**\n * If the key is found in the cache, then this is equivalent to\n * {@link LRUCache#get}. If not, in the cache, then calculate the value using\n * the {@link LRUCache.OptionsBase.memoMethod}, and add it to the cache.\n *\n * If an `FC` type is set to a type other than `unknown`, `void`, or\n * `undefined` in the LRUCache constructor, then all calls to `cache.memo()`\n * _must_ provide a `context` option. If set to `undefined` or `void`, then\n * calls to memo _must not_ provide a `context` option.\n *\n * The `context` param allows you to provide arbitrary data that might be\n * relevant in the course of fetching the data. It is only relevant for the\n * course of a single `memo()` operation, and discarded afterwards.\n */\n memo(\n k: K,\n memoOptions: unknown extends FC ? LRUCache.MemoOptions\n : FC extends undefined | void ? LRUCache.MemoOptionsNoContext\n : LRUCache.MemoOptionsWithContext,\n ): V\n // this overload not allowed if context is required\n memo(\n k: unknown extends FC ? K\n : FC extends undefined | void ? K\n : never,\n memoOptions?: unknown extends FC ? LRUCache.MemoOptions\n : FC extends undefined | void ? LRUCache.MemoOptionsNoContext\n : never,\n ): V\n memo(k: K, memoOptions: LRUCache.MemoOptions = {}) {\n const { status = metrics.hasSubscribers ? {} : undefined } =\n memoOptions\n memoOptions.status = status\n if (status) {\n status.op = 'memo'\n status.key = k\n if (memoOptions.context) {\n status.context = memoOptions.context\n }\n }\n const result = this.#memo(k, memoOptions)\n if (status) status.value = result\n if (metrics.hasSubscribers) metrics.publish(status)\n return result\n }\n #memo(k: K, memoOptions: LRUCache.MemoOptions = {}) {\n const memoMethod = this.#memoMethod\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor')\n }\n const { context, status, forceRefresh, ...options } = memoOptions\n if (status && forceRefresh) status.forceRefresh = true\n const v = this.#get(k, options)\n const refresh = forceRefresh || v === undefined\n if (status) {\n status.memo = refresh ? 'miss' : 'hit'\n if (!refresh) status.value = v\n }\n if (!refresh) return v\n const vv = memoMethod(k, v, {\n options,\n context,\n } as LRUCache.MemoizerOptions)\n if (status) status.value = vv\n this.#set(k, vv, options)\n return vv\n }\n\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k: K, getOptions: LRUCache.GetOptions = {}) {\n const { status = metrics.hasSubscribers ? {} : undefined } = getOptions\n getOptions.status = status\n if (status) {\n status.op = 'get'\n status.key = k\n }\n const result = this.#get(k, getOptions)\n if (status) {\n if (result !== undefined) status.value = result\n if (metrics.hasSubscribers) metrics.publish(status)\n }\n return result\n }\n\n #get(k: K, getOptions: LRUCache.GetOptions = {}) {\n const {\n allowStale = this.allowStale,\n updateAgeOnGet = this.updateAgeOnGet,\n noDeleteOnStaleGet = this.noDeleteOnStaleGet,\n status,\n } = getOptions\n const index = this.#keyMap.get(k)\n if (index === undefined) {\n if (status) status.get = 'miss'\n return undefined\n }\n const value = this.#valList[index]\n const fetching = this.#isBackgroundFetch(value)\n if (status) this.#statusTTL(status, index)\n if (this.#isStale(index)) {\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire')\n }\n if (status) status.get = 'stale'\n if (allowStale) {\n if (status) status.returnedStale = true\n return value\n }\n return undefined\n }\n if (status) status.get = 'stale-fetching'\n if (allowStale && value.__staleWhileFetching !== undefined) {\n if (status) status.returnedStale = true\n return value.__staleWhileFetching\n }\n return undefined\n }\n // not stale\n if (status) status.get = fetching ? 'fetching' : 'hit'\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n this.#moveToTail(index)\n if (updateAgeOnGet) {\n this.#updateItemAge(index)\n }\n return fetching ? value.__staleWhileFetching : value\n }\n\n #connect(p: Index, n: Index) {\n this.#prev[n] = p\n this.#next[p] = n\n }\n\n #moveToTail(index: Index): void {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index] as Index\n } else {\n this.#connect(\n this.#prev[index] as Index,\n this.#next[index] as Index,\n )\n }\n this.#connect(this.#tail, index)\n this.#tail = index\n }\n }\n\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k: K) {\n return this.#delete(k, 'delete')\n }\n\n #delete(k: K, reason: LRUCache.DisposeReason) {\n if (metrics.hasSubscribers) {\n metrics.publish({\n op: 'delete',\n delete: reason,\n key: k,\n })\n }\n let deleted = false\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k)\n if (index !== undefined) {\n if (this.#autopurgeTimers?.[index]) {\n clearTimeout(this.#autopurgeTimers?.[index])\n this.#autopurgeTimers[index] = undefined\n }\n deleted = true\n if (this.#size === 1) {\n this.#clear(reason)\n } else {\n this.#removeItemSize(index)\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v as V, k, reason)\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v as V, k, reason])\n }\n }\n this.#keyMap.delete(k)\n this.#keyList[index] = undefined\n this.#valList[index] = undefined\n if (index === this.#tail) {\n this.#tail = this.#prev[index] as Index\n } else if (index === this.#head) {\n this.#head = this.#next[index] as Index\n } else {\n const pi = this.#prev[index] as number\n this.#next[pi] = this.#next[index] as number\n const ni = this.#next[index] as number\n this.#prev[ni] = this.#prev[index] as number\n }\n this.#size--\n this.#free.push(index)\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n return deleted\n }\n\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete')\n }\n #clear(reason: LRUCache.DisposeReason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index]\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'))\n } else {\n const k = this.#keyList[index]\n if (this.#hasDispose) {\n this.#dispose?.(v as V, k as K, reason)\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v as V, k as K, reason])\n }\n }\n }\n\n this.#keyMap.clear()\n this.#valList.fill(undefined)\n this.#keyList.fill(undefined)\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0)\n this.#starts.fill(0)\n for (const t of this.#autopurgeTimers ?? []) {\n if (t !== undefined) clearTimeout(t)\n }\n this.#autopurgeTimers?.fill(undefined)\n }\n if (this.#sizes) {\n this.#sizes.fill(0)\n }\n this.#head = 0 as Index\n this.#tail = 0 as Index\n this.#free.length = 0\n this.#calculatedSize = 0\n this.#size = 0\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed\n let task: DisposeTask | undefined\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task)\n }\n }\n }\n}\n","'use strict'\n\nconst hasBuffer = typeof Buffer !== 'undefined'\nconst suspectProtoRx = /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/\nconst suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/\n\nfunction _parse (text, reviver, options) {\n // Normalize arguments\n if (options == null) {\n if (reviver !== null && typeof reviver === 'object') {\n options = reviver\n reviver = undefined\n }\n }\n\n if (hasBuffer && Buffer.isBuffer(text)) {\n text = text.toString()\n }\n\n // BOM checker\n if (text && text.charCodeAt(0) === 0xFEFF) {\n text = text.slice(1)\n }\n\n // Parse normally, allowing exceptions\n const obj = JSON.parse(text, reviver)\n\n // Ignore null and non-objects\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n const protoAction = (options && options.protoAction) || 'error'\n const constructorAction = (options && options.constructorAction) || 'error'\n\n // options: 'error' (default) / 'remove' / 'ignore'\n if (protoAction === 'ignore' && constructorAction === 'ignore') {\n return obj\n }\n\n if (protoAction !== 'ignore' && constructorAction !== 'ignore') {\n if (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) {\n return obj\n }\n } else if (protoAction !== 'ignore' && constructorAction === 'ignore') {\n if (suspectProtoRx.test(text) === false) {\n return obj\n }\n } else {\n if (suspectConstructorRx.test(text) === false) {\n return obj\n }\n }\n\n // Scan result for proto keys\n return filter(obj, { protoAction, constructorAction, safe: options && options.safe })\n}\n\nfunction filter (obj, { protoAction = 'error', constructorAction = 'error', safe } = {}) {\n let next = [obj]\n\n while (next.length) {\n const nodes = next\n next = []\n\n for (const node of nodes) {\n if (protoAction !== 'ignore' && Object.prototype.hasOwnProperty.call(node, '__proto__')) { // Avoid calling node.hasOwnProperty directly\n if (safe === true) {\n return null\n } else if (protoAction === 'error') {\n throw new SyntaxError('Object contains forbidden prototype property')\n }\n\n delete node.__proto__ // eslint-disable-line no-proto\n }\n\n if (constructorAction !== 'ignore' &&\n Object.prototype.hasOwnProperty.call(node, 'constructor') &&\n Object.prototype.hasOwnProperty.call(node.constructor, 'prototype')) { // Avoid calling node.hasOwnProperty directly\n if (safe === true) {\n return null\n } else if (constructorAction === 'error') {\n throw new SyntaxError('Object contains forbidden prototype property')\n }\n\n delete node.constructor\n }\n\n for (const key in node) {\n const value = node[key]\n if (value && typeof value === 'object') {\n next.push(value)\n }\n }\n }\n }\n return obj\n}\n\nfunction parse (text, reviver, options) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n return _parse(text, reviver, options)\n } finally {\n Error.stackTraceLimit = stackTraceLimit\n }\n}\n\nfunction safeParse (text, reviver) {\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 0\n try {\n return _parse(text, reviver, { safe: true })\n } catch (_e) {\n return null\n } finally {\n Error.stackTraceLimit = stackTraceLimit\n }\n}\n\nmodule.exports = parse\nmodule.exports.default = parse\nmodule.exports.parse = parse\nmodule.exports.safeParse = safeParse\nmodule.exports.scan = filter\n","/**\n * Symbol used for identifying AI SDK Error instances.\n * Enables checking if an error is an instance of AISDKError across package versions.\n */\nconst marker = 'vercel.ai.error';\nconst symbol = Symbol.for(marker);\n\n/**\n * Custom error class for AI SDK related errors.\n * @extends Error\n */\nexport class AISDKError extends Error {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n * The underlying cause of the error, if any.\n */\n readonly cause?: unknown;\n\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name,\n message,\n cause,\n }: {\n name: string;\n message: string;\n cause?: unknown;\n }) {\n super(message);\n\n this.name = name;\n this.cause = cause;\n }\n\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error: unknown): error is AISDKError {\n return AISDKError.hasMarker(error, marker);\n }\n\n protected static hasMarker(error: unknown, marker: string): boolean {\n const markerSymbol = Symbol.for(marker);\n return (\n error != null &&\n typeof error === 'object' &&\n markerSymbol in error &&\n typeof error[markerSymbol] === 'boolean' &&\n error[markerSymbol] === true\n );\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_APICallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class APICallError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly url: string;\n readonly requestBodyValues: unknown;\n readonly statusCode?: number;\n\n readonly responseHeaders?: Record;\n readonly responseBody?: string;\n\n readonly isRetryable: boolean;\n readonly data?: unknown;\n\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null &&\n (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500), // server error\n data,\n }: {\n message: string;\n url: string;\n requestBodyValues: unknown;\n statusCode?: number;\n responseHeaders?: Record;\n responseBody?: string;\n cause?: unknown;\n isRetryable?: boolean;\n data?: unknown;\n }) {\n super({ name, message, cause });\n\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n\n static isInstance(error: unknown): error is APICallError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A function argument is invalid.\n */\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly argument: string;\n\n constructor({\n message,\n cause,\n argument,\n }: {\n argument: string;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message, cause });\n\n this.argument = argument;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_JSONParseError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n// TODO v5: rename to ParseError\nexport class JSONParseError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly text: string;\n\n constructor({ text, cause }: { text: string; cause: unknown }) {\n super({\n name,\n message:\n `JSON parsing failed: ` +\n `Text: ${text}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.text = text;\n }\n\n static isInstance(error: unknown): error is JSONParseError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_TypeValidationError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TypeValidationError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly value: unknown;\n\n constructor({ value, cause }: { value: unknown; cause: unknown }) {\n super({\n name,\n message:\n `Type validation failed: ` +\n `Value: ${JSON.stringify(value)}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.value = value;\n }\n\n static isInstance(error: unknown): error is TypeValidationError {\n return AISDKError.hasMarker(error, marker);\n }\n\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n }: {\n value: unknown;\n cause: unknown;\n }): TypeValidationError {\n return TypeValidationError.isInstance(cause) && cause.value === value\n ? cause\n : new TypeValidationError({ value, cause });\n }\n}\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","import {\n JSONParseError,\n JSONValue,\n TypeValidationError,\n} from '@ai-sdk/provider';\nimport SecureJSON from 'secure-json-parse';\nimport { ZodSchema } from 'zod';\nimport { safeValidateTypes, validateTypes } from './validate-types';\nimport { Validator } from './validator';\n\n/**\n * Parses a JSON string into an unknown object.\n *\n * @param text - The JSON string to parse.\n * @returns {JSONValue} - The parsed JSON object.\n */\nexport function parseJSON(options: {\n text: string;\n schema?: undefined;\n}): JSONValue;\n/**\n * Parses a JSON string into a strongly-typed object using the provided schema.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns {T} - The parsed object.\n */\nexport function parseJSON(options: {\n text: string;\n schema: ZodSchema | Validator;\n}): T;\nexport function parseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema | Validator;\n}): T {\n try {\n const value = SecureJSON.parse(text);\n\n if (schema == null) {\n return value;\n }\n\n return validateTypes({ value, schema });\n } catch (error) {\n if (\n JSONParseError.isInstance(error) ||\n TypeValidationError.isInstance(error)\n ) {\n throw error;\n }\n\n throw new JSONParseError({ text, cause: error });\n }\n}\n\nexport type ParseResult =\n | { success: true; value: T; rawValue: unknown }\n | { success: false; error: JSONParseError | TypeValidationError };\n\n/**\n * Safely parses a JSON string and returns the result as an object of type `unknown`.\n *\n * @param text - The JSON string to parse.\n * @returns {object} Either an object with `success: true` and the parsed data, or an object with `success: false` and the error that occurred.\n */\nexport function safeParseJSON(options: {\n text: string;\n schema?: undefined;\n}): ParseResult;\n/**\n * Safely parses a JSON string into a strongly-typed object, using a provided schema to validate the object.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport function safeParseJSON(options: {\n text: string;\n schema: ZodSchema | Validator;\n}): ParseResult;\nexport function safeParseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: ZodSchema | Validator;\n}): ParseResult {\n try {\n const value = SecureJSON.parse(text);\n\n if (schema == null) {\n return { success: true, value: value as T, rawValue: value };\n }\n\n const validationResult = safeValidateTypes({ value, schema });\n\n return validationResult.success\n ? { ...validationResult, rawValue: value }\n : validationResult;\n } catch (error) {\n return {\n success: false,\n error: JSONParseError.isInstance(error)\n ? error\n : new JSONParseError({ text, cause: error }),\n };\n }\n}\n\nexport function isParsableJson(input: string): boolean {\n try {\n SecureJSON.parse(input);\n return true;\n } catch {\n return false;\n }\n}\n","/**\n * Converts an AsyncIterator to a ReadableStream.\n *\n * @template T - The type of elements produced by the AsyncIterator.\n * @param { } iterator - The AsyncIterator to convert.\n * @returns {ReadableStream} - A ReadableStream that provides the same data as the AsyncIterator.\n */\nexport function convertAsyncIteratorToReadableStream(\n iterator: AsyncIterator,\n): ReadableStream {\n return new ReadableStream({\n /**\n * Called when the consumer wants to pull more data from the stream.\n *\n * @param {ReadableStreamDefaultController} controller - The controller to enqueue data into the stream.\n * @returns {Promise}\n */\n async pull(controller) {\n try {\n const { value, done } = await iterator.next();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n }\n },\n /**\n * Called when the consumer cancels the stream.\n */\n cancel() {},\n });\n}\n","/**\n * Creates a Promise that resolves after a specified delay\n * @param delayInMs - The delay duration in milliseconds. If null or undefined, resolves immediately.\n * @returns A Promise that resolves after the specified delay\n */\nexport async function delay(delayInMs?: number | null): Promise {\n return delayInMs == null\n ? Promise.resolve()\n : new Promise(resolve => setTimeout(resolve, delayInMs));\n}\n","import { InvalidArgumentError } from '@ai-sdk/provider';\nimport { customAlphabet } from 'nanoid/non-secure';\n\n/**\nCreates an ID generator.\nThe total length of the ID is the sum of the prefix, separator, and random part length.\nNon-secure.\n\n@param alphabet - The alphabet to use for the ID. Default: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.\n@param prefix - The prefix of the ID to generate. Default: ''.\n@param separator - The separator between the prefix and the random part of the ID. Default: '-'.\n@param size - The size of the random part of the ID to generate. Default: 16.\n */\n// TODO 5.0 breaking change: change the return type to IDGenerator\nexport const createIdGenerator = ({\n prefix,\n size: defaultSize = 16,\n alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n separator = '-',\n}: {\n prefix?: string;\n separator?: string;\n size?: number;\n alphabet?: string;\n} = {}): ((size?: number) => string) => {\n const generator = customAlphabet(alphabet, defaultSize);\n\n if (prefix == null) {\n return generator;\n }\n\n // check that the prefix is not part of the alphabet (otherwise prefix checking can fail randomly)\n if (alphabet.includes(separator)) {\n throw new InvalidArgumentError({\n argument: 'separator',\n message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`,\n });\n }\n\n return size => `${prefix}${separator}${generator(size)}`;\n};\n\n/**\nA function that generates an ID.\n */\nexport type IDGenerator = () => string;\n\n/**\nGenerates a 16-character random string to use for IDs. Not secure.\n\n@param size - The size of the ID to generate. Default: 16.\n */\nexport const generateId = createIdGenerator();\n","export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n","export function isAbortError(error: unknown): error is Error {\n return (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'TimeoutError')\n );\n}\n","import { z } from 'zod';\n\n/**\n * Used to mark validator functions so we can support both Zod and custom schemas.\n */\nexport const validatorSymbol = Symbol.for('vercel.ai.validator');\n\nexport type ValidationResult =\n | { success: true; value: OBJECT }\n | { success: false; error: Error };\n\nexport type Validator = {\n /**\n * Used to mark validator functions so we can support both Zod and custom schemas.\n */\n [validatorSymbol]: true;\n\n /**\n * Optional. Validates that the structure of a value matches this schema,\n * and returns a typed version of the value if it does.\n */\n readonly validate?: (value: unknown) => ValidationResult;\n};\n\n/**\n * Create a validator.\n *\n * @param validate A validation function for the schema.\n */\nexport function validator(\n validate?: undefined | ((value: unknown) => ValidationResult),\n): Validator {\n return { [validatorSymbol]: true, validate };\n}\n\nexport function isValidator(value: unknown): value is Validator {\n return (\n typeof value === 'object' &&\n value !== null &&\n validatorSymbol in value &&\n value[validatorSymbol] === true &&\n 'validate' in value\n );\n}\n\nexport function asValidator(\n value: Validator | z.Schema,\n): Validator {\n return isValidator(value) ? value : zodValidator(value);\n}\n\nexport function zodValidator(\n zodSchema: z.Schema,\n): Validator {\n return validator(value => {\n const result = zodSchema.safeParse(value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n });\n}\n","import { TypeValidationError } from '@ai-sdk/provider';\nimport { z } from 'zod';\nimport { Validator, asValidator } from './validator';\n\n/**\n * Validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @returns {T} - The typed object.\n */\nexport function validateTypes({\n value,\n schema: inputSchema,\n}: {\n value: unknown;\n schema: z.Schema | Validator;\n}): T {\n const result = safeValidateTypes({ value, schema: inputSchema });\n\n if (!result.success) {\n throw TypeValidationError.wrap({ value, cause: result.error });\n }\n\n return result.value;\n}\n\n/**\n * Safely validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The JSON object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport function safeValidateTypes({\n value,\n schema,\n}: {\n value: unknown;\n schema: z.Schema | Validator;\n}):\n | { success: true; value: T }\n | { success: false; error: TypeValidationError } {\n const validator = asValidator(schema);\n\n try {\n if (validator.validate == null) {\n return { success: true, value: value as T };\n }\n\n const result = validator.validate(value);\n\n if (result.success) {\n return result;\n }\n\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: result.error }),\n };\n } catch (error) {\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: error }),\n };\n }\n}\n","export * from \"./errors.js\";\nexport * from \"./helpers/parseUtil.js\";\nexport * from \"./helpers/typeAliases.js\";\nexport * from \"./helpers/util.js\";\nexport * from \"./types.js\";\nexport * from \"./ZodError.js\";\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","export const ignoreOverride = Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nexport const jsonDescription = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n }\n catch { }\n }\n return jsonSchema;\n};\nexport const defaultOptions = {\n name: undefined,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n target: \"jsonSchema7\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n markdownDescription: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\",\n openAiAnyTypeName: \"OpenAiAnyType\"\n};\nexport const getDefaultOptions = (options) => (typeof options === \"string\"\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n });\n","import { getDefaultOptions } from \"./Options.js\";\nexport const getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n flags: { hasReferencedOpenAiAnyType: false },\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ])),\n };\n};\n","export function addErrorMessage(res, key, errorMessage, refs) {\n if (!refs?.errorMessages)\n return;\n if (errorMessage) {\n res.errorMessage = {\n ...res.errorMessage,\n [key]: errorMessage,\n };\n }\n}\nexport function setResponseValueAndErrors(res, key, value, errorMessage, refs) {\n res[key] = value;\n addErrorMessage(res, key, errorMessage, refs);\n}\n","export const getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i])\n break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\n","import { getRelativePath } from \"../getRelativePath.js\";\nexport function parseAnyDef(refs) {\n if (refs.target !== \"openAi\") {\n return {};\n }\n const anyDefinitionPath = [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ];\n refs.flags.hasReferencedOpenAiAnyType = true;\n return {\n $ref: refs.$refStrategy === \"relative\"\n ? getRelativePath(anyDefinitionPath, refs.currentPath)\n : anyDefinitionPath.join(\"/\"),\n };\n}\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseArrayDef(def, refs) {\n const res = {\n type: \"array\",\n };\n if (def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n }\n if (def.minLength) {\n setResponseValueAndErrors(res, \"minItems\", def.minLength.value, def.minLength.message, refs);\n }\n if (def.maxLength) {\n setResponseValueAndErrors(res, \"maxItems\", def.maxLength.value, def.maxLength.message, refs);\n }\n if (def.exactLength) {\n setResponseValueAndErrors(res, \"minItems\", def.exactLength.value, def.exactLength.message, refs);\n setResponseValueAndErrors(res, \"maxItems\", def.exactLength.value, def.exactLength.message, refs);\n }\n return res;\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseBigintDef(def, refs) {\n const res = {\n type: \"integer\",\n format: \"int64\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","export function parseBooleanDef() {\n return {\n type: \"boolean\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nexport function parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\",\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\",\n };\n case \"integer\":\n return integerDateParser(def, refs);\n }\n}\nconst integerDateParser = (def, refs) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\",\n };\n if (refs.target === \"openApi3\") {\n return res;\n }\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minimum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maximum\", check.value, // This is in milliseconds\n check.message, refs);\n break;\n }\n }\n return res;\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parseDefaultDef(_def, refs) {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\"\n ? parseDef(_def.schema._def, refs)\n : parseAnyDef(refs);\n}\n","export function parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values),\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nconst isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\")\n return false;\n return \"allOf\" in type;\n};\nexport function parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"1\"],\n }),\n ].filter((x) => !!x);\n let unevaluatedProperties = refs.target === \"jsonSchema2019-09\"\n ? { unevaluatedProperties: false }\n : undefined;\n const mergedAllOf = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n if (schema.unevaluatedProperties === undefined) {\n // If one of the schemas has no unevaluatedProperties set,\n // the merged schema should also have no unevaluatedProperties set\n unevaluatedProperties = undefined;\n }\n }\n else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema &&\n schema.additionalProperties === false) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n else {\n // As soon as one of the schemas has additionalProperties set not to false, we allow unevaluatedProperties\n unevaluatedProperties = undefined;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length\n ? {\n allOf: mergedAllOf,\n ...unevaluatedProperties,\n }\n : undefined;\n}\n","export function parseLiteralDef(def, refs) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" &&\n parsedType !== \"number\" &&\n parsedType !== \"boolean\" &&\n parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\",\n };\n }\n if (refs.target === \"openApi3\") {\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n enum: [def.value],\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value,\n };\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nlet emojiRegex = undefined;\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n};\nexport function parseStringDef(def, refs) {\n const res = {\n type: \"string\",\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"max\":\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n break;\n case \"endsWith\":\n addPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n setResponseValueAndErrors(res, \"minLength\", typeof res.minLength === \"number\"\n ? Math.max(res.minLength, check.value)\n : check.value, check.message, refs);\n setResponseValueAndErrors(res, \"maxLength\", typeof res.maxLength === \"number\"\n ? Math.min(res.maxLength, check.value)\n : check.value, check.message, refs);\n break;\n case \"includes\": {\n addPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n setResponseValueAndErrors(res, \"contentEncoding\", \"base64\", check.message, refs);\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n ((_) => { })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\"\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\nconst ALPHA_NUMERIC = new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(schema, value, message, refs) {\n if (schema.format || schema.anyOf?.some((x) => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { format: schema.errorMessage.format },\n }),\n });\n delete schema.format;\n if (schema.errorMessage) {\n delete schema.errorMessage.format;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.anyOf.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"format\", value, message, refs);\n }\n}\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(schema, regex, message, refs) {\n if (schema.pattern || schema.allOf?.some((x) => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern,\n ...(schema.errorMessage &&\n refs.errorMessages && {\n errorMessage: { pattern: schema.errorMessage.pattern },\n }),\n });\n delete schema.pattern;\n if (schema.errorMessage) {\n delete schema.errorMessage.pattern;\n if (Object.keys(schema.errorMessage).length === 0) {\n delete schema.errorMessage;\n }\n }\n }\n schema.allOf.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n }\n else {\n setResponseValueAndErrors(schema, \"pattern\", stringifyRegExpWithFlags(regex, refs), message, refs);\n }\n}\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex, refs) {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n // Currently handled flags\n const flags = {\n i: regex.flags.includes(\"i\"),\n m: regex.flags.includes(\"m\"),\n s: regex.flags.includes(\"s\"), // `.` matches newlines\n };\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n }\n else if (source[i + 1] === \"-\" && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n }\n else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n }\n else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n }\n else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n }\n else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n }\n else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n }\n catch {\n console.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n return regex.source;\n }\n return pattern;\n}\n","import { ZodFirstPartyTypeKind, } from \"zod/v3\";\nimport { parseDef } from \"../parseDef.js\";\nimport { parseStringDef } from \"./string.js\";\nimport { parseBrandedDef } from \"./branded.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseRecordDef(def, refs) {\n if (refs.target === \"openAi\") {\n console.warn(\"Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead.\");\n }\n if (refs.target === \"openApi3\" &&\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n type: \"object\",\n required: def.keyType._def.values,\n properties: def.keyType._def.values.reduce((acc, key) => ({\n ...acc,\n [key]: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", key],\n }) ?? parseAnyDef(refs),\n }), {}),\n additionalProperties: refs.rejectedAdditionalProperties,\n };\n }\n const schema = {\n type: \"object\",\n additionalProperties: parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n }) ?? refs.allowedAdditionalProperties,\n };\n if (refs.target === \"openApi3\") {\n return schema;\n }\n if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n }\n else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length) {\n const { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseRecordDef } from \"./record.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport function parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"],\n }) || parseAnyDef(refs);\n const values = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"],\n }) || parseAnyDef(refs);\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n","export function parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n return {\n type: parsedTypes.length === 1\n ? parsedTypes[0] === \"string\"\n ? \"string\"\n : \"number\"\n : [\"string\", \"number\"],\n enum: actualValues,\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseNeverDef(refs) {\n return refs.target === \"openAi\"\n ? undefined\n : {\n not: parseAnyDef({\n ...refs,\n currentPath: [...refs.currentPath, \"not\"],\n }),\n };\n}\n","export function parseNullDef(refs) {\n return refs.target === \"openApi3\"\n ? {\n enum: [\"null\"],\n nullable: true,\n }\n : {\n type: \"null\",\n };\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\",\n};\nexport function parseUnionDef(def, refs) {\n if (refs.target === \"openApi3\")\n return asAnyOf(def, refs);\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (options.every((x) => x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length))) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n const types = options.reduce((types, x) => {\n const type = primitiveMappings[x._def.typeName]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n return {\n type: types.length > 1 ? types : types[0],\n };\n }\n else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n // all options literals\n const types = options.reduce((acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null)\n return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n }, []);\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce((acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n }, []),\n };\n }\n }\n else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce((acc, x) => [\n ...acc,\n ...x._def.values.filter((x) => !acc.includes(x)),\n ], []),\n };\n }\n return asAnyOf(def, refs);\n}\nconst asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options)\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`],\n }))\n .filter((x) => !!x &&\n (!refs.strictUnions ||\n (typeof x === \"object\" && Object.keys(x).length > 0)));\n return anyOf.length ? { anyOf } : undefined;\n};\n","import { parseDef } from \"../parseDef.js\";\nimport { primitiveMappings } from \"./union.js\";\nexport function parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(def.innerType._def.typeName) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n if (refs.target === \"openApi3\") {\n return {\n type: primitiveMappings[def.innerType._def.typeName],\n nullable: true,\n };\n }\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\",\n ],\n };\n }\n if (refs.target === \"openApi3\") {\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath],\n });\n if (base && \"$ref\" in base)\n return { allOf: [base], nullable: true };\n return base && { ...base, nullable: true };\n }\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"],\n });\n return base && { anyOf: [base, { type: \"null\" }] };\n}\n","import { addErrorMessage, setResponseValueAndErrors, } from \"../errorMessages.js\";\nexport function parseNumberDef(def, refs) {\n const res = {\n type: \"number\",\n };\n if (!def.checks)\n return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n addErrorMessage(res, \"type\", check.message, refs);\n break;\n case \"min\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMinimum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMinimum = true;\n }\n setResponseValueAndErrors(res, \"minimum\", check.value, check.message, refs);\n }\n break;\n case \"max\":\n if (refs.target === \"jsonSchema7\") {\n if (check.inclusive) {\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n else {\n setResponseValueAndErrors(res, \"exclusiveMaximum\", check.value, check.message, refs);\n }\n }\n else {\n if (!check.inclusive) {\n res.exclusiveMaximum = true;\n }\n setResponseValueAndErrors(res, \"maximum\", check.value, check.message, refs);\n }\n break;\n case \"multipleOf\":\n setResponseValueAndErrors(res, \"multipleOf\", check.value, check.message, refs);\n break;\n }\n }\n return res;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseObjectDef(def, refs) {\n const forceOptionalIntoNullable = refs.target === \"openAi\";\n const result = {\n type: \"object\",\n properties: {},\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n let propOptional = safeIsOptional(propDef);\n if (propOptional && forceOptionalIntoNullable) {\n if (propDef._def.typeName === \"ZodOptional\") {\n propDef = propDef._def.innerType;\n }\n if (!propDef.isNullable()) {\n propDef = propDef.nullable();\n }\n propOptional = false;\n }\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName],\n });\n if (parsedDef === undefined) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalProperties\"],\n });\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\"\n ? refs.allowedAdditionalProperties\n : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n }\n catch {\n return true;\n }\n}\n","import { parseDef } from \"../parseDef.js\";\nimport { parseAnyDef } from \"./any.js\";\nexport const parseOptionalDef = (def, refs) => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"],\n });\n return innerSchema\n ? {\n anyOf: [\n {\n not: parseAnyDef(refs),\n },\n innerSchema,\n ],\n }\n : parseAnyDef(refs);\n};\n","import { parseDef } from \"../parseDef.js\";\nexport const parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n }\n else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", \"0\"],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"],\n });\n return {\n allOf: [a, b].filter((x) => x !== undefined),\n };\n};\n","import { parseDef } from \"../parseDef.js\";\nexport function parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\n","import { setResponseValueAndErrors } from \"../errorMessages.js\";\nimport { parseDef } from \"../parseDef.js\";\nexport function parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\"],\n });\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items,\n };\n if (def.minSize) {\n setResponseValueAndErrors(schema, \"minItems\", def.minSize.value, def.minSize.message, refs);\n }\n if (def.maxSize) {\n setResponseValueAndErrors(schema, \"maxItems\", def.maxSize.value, def.maxSize.message, refs);\n }\n return schema;\n}\n","import { parseDef } from \"../parseDef.js\";\nexport function parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"additionalItems\"],\n }),\n };\n }\n else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) => parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, \"items\", `${i}`],\n }))\n .reduce((acc, x) => (x === undefined ? acc : [...acc, x]), []),\n };\n }\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUndefinedDef(refs) {\n return {\n not: parseAnyDef(refs),\n };\n}\n","import { parseAnyDef } from \"./any.js\";\nexport function parseUnknownDef(refs) {\n return parseAnyDef(refs);\n}\n","import { parseDef } from \"../parseDef.js\";\nexport const parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nimport { parseArrayDef } from \"./parsers/array.js\";\nimport { parseBigintDef } from \"./parsers/bigint.js\";\nimport { parseBooleanDef } from \"./parsers/boolean.js\";\nimport { parseBrandedDef } from \"./parsers/branded.js\";\nimport { parseCatchDef } from \"./parsers/catch.js\";\nimport { parseDateDef } from \"./parsers/date.js\";\nimport { parseDefaultDef } from \"./parsers/default.js\";\nimport { parseEffectsDef } from \"./parsers/effects.js\";\nimport { parseEnumDef } from \"./parsers/enum.js\";\nimport { parseIntersectionDef } from \"./parsers/intersection.js\";\nimport { parseLiteralDef } from \"./parsers/literal.js\";\nimport { parseMapDef } from \"./parsers/map.js\";\nimport { parseNativeEnumDef } from \"./parsers/nativeEnum.js\";\nimport { parseNeverDef } from \"./parsers/never.js\";\nimport { parseNullDef } from \"./parsers/null.js\";\nimport { parseNullableDef } from \"./parsers/nullable.js\";\nimport { parseNumberDef } from \"./parsers/number.js\";\nimport { parseObjectDef } from \"./parsers/object.js\";\nimport { parseOptionalDef } from \"./parsers/optional.js\";\nimport { parsePipelineDef } from \"./parsers/pipeline.js\";\nimport { parsePromiseDef } from \"./parsers/promise.js\";\nimport { parseRecordDef } from \"./parsers/record.js\";\nimport { parseSetDef } from \"./parsers/set.js\";\nimport { parseStringDef } from \"./parsers/string.js\";\nimport { parseTupleDef } from \"./parsers/tuple.js\";\nimport { parseUndefinedDef } from \"./parsers/undefined.js\";\nimport { parseUnionDef } from \"./parsers/union.js\";\nimport { parseUnknownDef } from \"./parsers/unknown.js\";\nimport { parseReadonlyDef } from \"./parsers/readonly.js\";\nexport const selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def, refs);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef(refs);\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef(refs);\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def, refs);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef(refs);\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef(refs);\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef(refs);\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n return ((_) => undefined)(typeName);\n }\n};\n","import { ignoreOverride } from \"./Options.js\";\nimport { selectParser } from \"./selectParser.js\";\nimport { getRelativePath } from \"./getRelativePath.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nexport function parseDef(def, refs, forceResolution = false) {\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = refs.override?.(def, refs, seenItem, forceResolution);\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: undefined };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema = typeof jsonSchemaOrGetter === \"function\"\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n newItem.jsonSchema = jsonSchema;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema;\n return jsonSchema;\n}\nconst get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n return parseAnyDef(refs);\n }\n return refs.$refStrategy === \"seen\" ? parseAnyDef(refs) : undefined;\n }\n }\n};\nconst addMeta = (def, refs, jsonSchema) => {\n if (def.description) {\n jsonSchema.description = def.description;\n if (refs.markdownDescription) {\n jsonSchema.markdownDescription = def.description;\n }\n }\n return jsonSchema;\n};\n","import { parseDef } from \"./parseDef.js\";\nimport { getRefs } from \"./Refs.js\";\nimport { parseAnyDef } from \"./parsers/any.js\";\nconst zodToJsonSchema = (schema, options) => {\n const refs = getRefs(options);\n let definitions = typeof options === \"object\" && options.definitions\n ? Object.entries(options.definitions).reduce((acc, [name, schema]) => ({\n ...acc,\n [name]: parseDef(schema._def, {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, true) ?? parseAnyDef(refs),\n }), {})\n : undefined;\n const name = typeof options === \"string\"\n ? options\n : options?.nameStrategy === \"title\"\n ? undefined\n : options?.name;\n const main = parseDef(schema._def, name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n }, false) ?? parseAnyDef(refs);\n const title = typeof options === \"object\" &&\n options.name !== undefined &&\n options.nameStrategy === \"title\"\n ? options.name\n : undefined;\n if (title !== undefined) {\n main.title = title;\n }\n if (refs.flags.hasReferencedOpenAiAnyType) {\n if (!definitions) {\n definitions = {};\n }\n if (!definitions[refs.openAiAnyTypeName]) {\n definitions[refs.openAiAnyTypeName] = {\n // Skipping \"object\" as no properties can be defined and additionalProperties must be \"false\"\n type: [\"string\", \"number\", \"integer\", \"boolean\", \"array\", \"null\"],\n items: {\n $ref: refs.$refStrategy === \"relative\"\n ? \"1\"\n : [\n ...refs.basePath,\n refs.definitionPath,\n refs.openAiAnyTypeName,\n ].join(\"/\"),\n },\n };\n }\n }\n const combined = name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === \"relative\" ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join(\"/\"),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n if (refs.target === \"jsonSchema7\") {\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (refs.target === \"jsonSchema2019-09\" || refs.target === \"openAi\") {\n combined.$schema = \"https://json-schema.org/draft/2019-09/schema#\";\n }\n if (refs.target === \"openAi\" &&\n (\"anyOf\" in combined ||\n \"oneOf\" in combined ||\n \"allOf\" in combined ||\n (\"type\" in combined && Array.isArray(combined.type)))) {\n console.warn(\"Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property.\");\n }\n return combined;\n};\nexport { zodToJsonSchema };\n","export * from \"./Options.js\";\nexport * from \"./Refs.js\";\nexport * from \"./errorMessages.js\";\nexport * from \"./getRelativePath.js\";\nexport * from \"./parseDef.js\";\nexport * from \"./parseTypes.js\";\nexport * from \"./parsers/any.js\";\nexport * from \"./parsers/array.js\";\nexport * from \"./parsers/bigint.js\";\nexport * from \"./parsers/boolean.js\";\nexport * from \"./parsers/branded.js\";\nexport * from \"./parsers/catch.js\";\nexport * from \"./parsers/date.js\";\nexport * from \"./parsers/default.js\";\nexport * from \"./parsers/effects.js\";\nexport * from \"./parsers/enum.js\";\nexport * from \"./parsers/intersection.js\";\nexport * from \"./parsers/literal.js\";\nexport * from \"./parsers/map.js\";\nexport * from \"./parsers/nativeEnum.js\";\nexport * from \"./parsers/never.js\";\nexport * from \"./parsers/null.js\";\nexport * from \"./parsers/nullable.js\";\nexport * from \"./parsers/number.js\";\nexport * from \"./parsers/object.js\";\nexport * from \"./parsers/optional.js\";\nexport * from \"./parsers/pipeline.js\";\nexport * from \"./parsers/promise.js\";\nexport * from \"./parsers/readonly.js\";\nexport * from \"./parsers/record.js\";\nexport * from \"./parsers/set.js\";\nexport * from \"./parsers/string.js\";\nexport * from \"./parsers/tuple.js\";\nexport * from \"./parsers/undefined.js\";\nexport * from \"./parsers/union.js\";\nexport * from \"./parsers/unknown.js\";\nexport * from \"./selectParser.js\";\nexport * from \"./zodToJsonSchema.js\";\nimport { zodToJsonSchema } from \"./zodToJsonSchema.js\";\nexport default zodToJsonSchema;\n","type State =\n | 'ROOT'\n | 'FINISH'\n | 'INSIDE_STRING'\n | 'INSIDE_STRING_ESCAPE'\n | 'INSIDE_LITERAL'\n | 'INSIDE_NUMBER'\n | 'INSIDE_OBJECT_START'\n | 'INSIDE_OBJECT_KEY'\n | 'INSIDE_OBJECT_AFTER_KEY'\n | 'INSIDE_OBJECT_BEFORE_VALUE'\n | 'INSIDE_OBJECT_AFTER_VALUE'\n | 'INSIDE_OBJECT_AFTER_COMMA'\n | 'INSIDE_ARRAY_START'\n | 'INSIDE_ARRAY_AFTER_VALUE'\n | 'INSIDE_ARRAY_AFTER_COMMA';\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = ['ROOT'];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_STRING');\n break;\n }\n\n case 'f':\n case 't':\n case 'n': {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_LITERAL');\n break;\n }\n\n case '-': {\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n\n case '{': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_OBJECT_START');\n break;\n }\n\n case '[': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_ARRAY_START');\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_COMMA');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case 'ROOT':\n processValueStart(char, i, 'FINISH');\n break;\n\n case 'INSIDE_OBJECT_START': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_COMMA': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_KEY': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_KEY': {\n switch (char) {\n case ':': {\n stack.pop();\n stack.push('INSIDE_OBJECT_BEFORE_VALUE');\n\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_BEFORE_VALUE': {\n processValueStart(char, i, 'INSIDE_OBJECT_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n processAfterObjectValue(char, i);\n break;\n }\n\n case 'INSIDE_STRING': {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case '\\\\': {\n stack.push('INSIDE_STRING_ESCAPE');\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_START': {\n switch (char) {\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_COMMA': {\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_STRING_ESCAPE': {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case 'INSIDE_NUMBER': {\n switch (char) {\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n break;\n }\n\n case 'e':\n case 'E':\n case '-':\n case '.': {\n break;\n }\n\n case ',': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case '}': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case ']': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !'false'.startsWith(partialLiteral) &&\n !'true'.startsWith(partialLiteral) &&\n !'null'.startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case 'INSIDE_STRING': {\n result += '\"';\n break;\n }\n\n case 'INSIDE_OBJECT_KEY':\n case 'INSIDE_OBJECT_AFTER_KEY':\n case 'INSIDE_OBJECT_AFTER_COMMA':\n case 'INSIDE_OBJECT_START':\n case 'INSIDE_OBJECT_BEFORE_VALUE':\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n result += '}';\n break;\n }\n\n case 'INSIDE_ARRAY_START':\n case 'INSIDE_ARRAY_AFTER_COMMA':\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n result += ']';\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if ('true'.startsWith(partialLiteral)) {\n result += 'true'.slice(partialLiteral.length);\n } else if ('false'.startsWith(partialLiteral)) {\n result += 'false'.slice(partialLiteral.length);\n } else if ('null'.startsWith(partialLiteral)) {\n result += 'null'.slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n","import { JSONValue } from '@ai-sdk/provider';\nimport { safeParseJSON } from '@ai-sdk/provider-utils';\nimport { fixJson } from './fix-json';\n\nexport function parsePartialJson(jsonText: string | undefined): {\n value: JSONValue | undefined;\n state:\n | 'undefined-input'\n | 'successful-parse'\n | 'repaired-parse'\n | 'failed-parse';\n} {\n if (jsonText === undefined) {\n return { value: undefined, state: 'undefined-input' };\n }\n\n let result = safeParseJSON({ text: jsonText });\n\n if (result.success) {\n return { value: result.value, state: 'successful-parse' };\n }\n\n result = safeParseJSON({ text: fixJson(jsonText) });\n\n if (result.success) {\n return { value: result.value, state: 'repaired-parse' };\n }\n\n return { value: undefined, state: 'failed-parse' };\n}\n","import {\n LanguageModelV1FinishReason,\n LanguageModelV1Source,\n} from '@ai-sdk/provider';\nimport { ToolCall, ToolResult } from '@ai-sdk/provider-utils';\nimport { JSONValue } from './types';\n\nexport type DataStreamString =\n `${(typeof DataStreamStringPrefixes)[keyof typeof DataStreamStringPrefixes]}:${string}\\n`;\n\nexport interface DataStreamPart<\n CODE extends string,\n NAME extends string,\n TYPE,\n> {\n code: CODE;\n name: NAME;\n parse: (value: JSONValue) => { type: NAME; value: TYPE };\n}\n\nconst textStreamPart: DataStreamPart<'0', 'text', string> = {\n code: '0',\n name: 'text',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"text\" parts expect a string value.');\n }\n return { type: 'text', value };\n },\n};\n\nconst dataStreamPart: DataStreamPart<'2', 'data', Array> = {\n code: '2',\n name: 'data',\n parse: (value: JSONValue) => {\n if (!Array.isArray(value)) {\n throw new Error('\"data\" parts expect an array value.');\n }\n\n return { type: 'data', value };\n },\n};\n\nconst errorStreamPart: DataStreamPart<'3', 'error', string> = {\n code: '3',\n name: 'error',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"error\" parts expect a string value.');\n }\n return { type: 'error', value };\n },\n};\n\nconst messageAnnotationsStreamPart: DataStreamPart<\n '8',\n 'message_annotations',\n Array\n> = {\n code: '8',\n name: 'message_annotations',\n parse: (value: JSONValue) => {\n if (!Array.isArray(value)) {\n throw new Error('\"message_annotations\" parts expect an array value.');\n }\n\n return { type: 'message_annotations', value };\n },\n};\n\nconst toolCallStreamPart: DataStreamPart<\n '9',\n 'tool_call',\n ToolCall\n> = {\n code: '9',\n name: 'tool_call',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('toolName' in value) ||\n typeof value.toolName !== 'string' ||\n !('args' in value) ||\n typeof value.args !== 'object'\n ) {\n throw new Error(\n '\"tool_call\" parts expect an object with a \"toolCallId\", \"toolName\", and \"args\" property.',\n );\n }\n\n return {\n type: 'tool_call',\n value: value as unknown as ToolCall,\n };\n },\n};\n\nconst toolResultStreamPart: DataStreamPart<\n 'a',\n 'tool_result',\n Omit, 'args' | 'toolName'>\n> = {\n code: 'a',\n name: 'tool_result',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('result' in value)\n ) {\n throw new Error(\n '\"tool_result\" parts expect an object with a \"toolCallId\" and a \"result\" property.',\n );\n }\n\n return {\n type: 'tool_result',\n value: value as unknown as Omit<\n ToolResult,\n 'args' | 'toolName'\n >,\n };\n },\n};\n\nconst toolCallStreamingStartStreamPart: DataStreamPart<\n 'b',\n 'tool_call_streaming_start',\n { toolCallId: string; toolName: string }\n> = {\n code: 'b',\n name: 'tool_call_streaming_start',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('toolName' in value) ||\n typeof value.toolName !== 'string'\n ) {\n throw new Error(\n '\"tool_call_streaming_start\" parts expect an object with a \"toolCallId\" and \"toolName\" property.',\n );\n }\n\n return {\n type: 'tool_call_streaming_start',\n value: value as unknown as { toolCallId: string; toolName: string },\n };\n },\n};\n\nconst toolCallDeltaStreamPart: DataStreamPart<\n 'c',\n 'tool_call_delta',\n { toolCallId: string; argsTextDelta: string }\n> = {\n code: 'c',\n name: 'tool_call_delta',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('toolCallId' in value) ||\n typeof value.toolCallId !== 'string' ||\n !('argsTextDelta' in value) ||\n typeof value.argsTextDelta !== 'string'\n ) {\n throw new Error(\n '\"tool_call_delta\" parts expect an object with a \"toolCallId\" and \"argsTextDelta\" property.',\n );\n }\n\n return {\n type: 'tool_call_delta',\n value: value as unknown as {\n toolCallId: string;\n argsTextDelta: string;\n },\n };\n },\n};\n\nconst finishMessageStreamPart: DataStreamPart<\n 'd',\n 'finish_message',\n {\n finishReason: LanguageModelV1FinishReason;\n // TODO v5 remove usage from finish event (only on step-finish)\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n }\n> = {\n code: 'd',\n name: 'finish_message',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('finishReason' in value) ||\n typeof value.finishReason !== 'string'\n ) {\n throw new Error(\n '\"finish_message\" parts expect an object with a \"finishReason\" property.',\n );\n }\n\n const result: {\n finishReason: LanguageModelV1FinishReason;\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n } = {\n finishReason: value.finishReason as LanguageModelV1FinishReason,\n };\n\n if (\n 'usage' in value &&\n value.usage != null &&\n typeof value.usage === 'object' &&\n 'promptTokens' in value.usage &&\n 'completionTokens' in value.usage\n ) {\n result.usage = {\n promptTokens:\n typeof value.usage.promptTokens === 'number'\n ? value.usage.promptTokens\n : Number.NaN,\n completionTokens:\n typeof value.usage.completionTokens === 'number'\n ? value.usage.completionTokens\n : Number.NaN,\n };\n }\n\n return {\n type: 'finish_message',\n value: result,\n };\n },\n};\n\nconst finishStepStreamPart: DataStreamPart<\n 'e',\n 'finish_step',\n {\n isContinued: boolean;\n finishReason: LanguageModelV1FinishReason;\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n }\n> = {\n code: 'e',\n name: 'finish_step',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('finishReason' in value) ||\n typeof value.finishReason !== 'string'\n ) {\n throw new Error(\n '\"finish_step\" parts expect an object with a \"finishReason\" property.',\n );\n }\n\n const result: {\n isContinued: boolean;\n finishReason: LanguageModelV1FinishReason;\n usage?: {\n promptTokens: number;\n completionTokens: number;\n };\n } = {\n finishReason: value.finishReason as LanguageModelV1FinishReason,\n isContinued: false,\n };\n\n if (\n 'usage' in value &&\n value.usage != null &&\n typeof value.usage === 'object' &&\n 'promptTokens' in value.usage &&\n 'completionTokens' in value.usage\n ) {\n result.usage = {\n promptTokens:\n typeof value.usage.promptTokens === 'number'\n ? value.usage.promptTokens\n : Number.NaN,\n completionTokens:\n typeof value.usage.completionTokens === 'number'\n ? value.usage.completionTokens\n : Number.NaN,\n };\n }\n\n if ('isContinued' in value && typeof value.isContinued === 'boolean') {\n result.isContinued = value.isContinued;\n }\n\n return {\n type: 'finish_step',\n value: result,\n };\n },\n};\n\nconst startStepStreamPart: DataStreamPart<\n 'f',\n 'start_step',\n {\n messageId: string;\n }\n> = {\n code: 'f',\n name: 'start_step',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('messageId' in value) ||\n typeof value.messageId !== 'string'\n ) {\n throw new Error(\n '\"start_step\" parts expect an object with an \"id\" property.',\n );\n }\n\n return {\n type: 'start_step',\n value: {\n messageId: value.messageId,\n },\n };\n },\n};\n\nconst reasoningStreamPart: DataStreamPart<'g', 'reasoning', string> = {\n code: 'g',\n name: 'reasoning',\n parse: (value: JSONValue) => {\n if (typeof value !== 'string') {\n throw new Error('\"reasoning\" parts expect a string value.');\n }\n return { type: 'reasoning', value };\n },\n};\n\nconst sourcePart: DataStreamPart<'h', 'source', LanguageModelV1Source> = {\n code: 'h',\n name: 'source',\n parse: (value: JSONValue) => {\n if (value == null || typeof value !== 'object') {\n throw new Error('\"source\" parts expect a Source object.');\n }\n\n return {\n type: 'source',\n value: value as LanguageModelV1Source,\n };\n },\n};\n\nconst redactedReasoningStreamPart: DataStreamPart<\n 'i',\n 'redacted_reasoning',\n { data: string }\n> = {\n code: 'i',\n name: 'redacted_reasoning',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('data' in value) ||\n typeof value.data !== 'string'\n ) {\n throw new Error(\n '\"redacted_reasoning\" parts expect an object with a \"data\" property.',\n );\n }\n return { type: 'redacted_reasoning', value: { data: value.data } };\n },\n};\n\nconst reasoningSignatureStreamPart: DataStreamPart<\n 'j',\n 'reasoning_signature',\n { signature: string }\n> = {\n code: 'j',\n name: 'reasoning_signature',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('signature' in value) ||\n typeof value.signature !== 'string'\n ) {\n throw new Error(\n '\"reasoning_signature\" parts expect an object with a \"signature\" property.',\n );\n }\n return {\n type: 'reasoning_signature',\n value: { signature: value.signature },\n };\n },\n};\n\nconst fileStreamPart: DataStreamPart<\n 'k',\n 'file',\n {\n data: string; // base64 encoded data\n mimeType: string;\n }\n> = {\n code: 'k',\n name: 'file',\n parse: (value: JSONValue) => {\n if (\n value == null ||\n typeof value !== 'object' ||\n !('data' in value) ||\n typeof value.data !== 'string' ||\n !('mimeType' in value) ||\n typeof value.mimeType !== 'string'\n ) {\n throw new Error(\n '\"file\" parts expect an object with a \"data\" and \"mimeType\" property.',\n );\n }\n return { type: 'file', value: value as { data: string; mimeType: string } };\n },\n};\n\nconst dataStreamParts = [\n textStreamPart,\n dataStreamPart,\n errorStreamPart,\n messageAnnotationsStreamPart,\n toolCallStreamPart,\n toolResultStreamPart,\n toolCallStreamingStartStreamPart,\n toolCallDeltaStreamPart,\n finishMessageStreamPart,\n finishStepStreamPart,\n startStepStreamPart,\n reasoningStreamPart,\n sourcePart,\n redactedReasoningStreamPart,\n reasoningSignatureStreamPart,\n fileStreamPart,\n] as const;\n\nexport const dataStreamPartsByCode = Object.fromEntries(\n dataStreamParts.map(part => [part.code, part]),\n) as {\n [K in (typeof dataStreamParts)[number]['code']]: (typeof dataStreamParts)[number];\n};\n\ntype DataStreamParts = (typeof dataStreamParts)[number];\n\n/**\n * Maps the type of a stream part to its value type.\n */\ntype DataStreamPartValueType = {\n [P in DataStreamParts as P['name']]: ReturnType['value'];\n};\n\nexport type DataStreamPartType = ReturnType;\n\n/**\n * The map of prefixes for data in the stream\n *\n * - 0: Text from the LLM response\n * - 1: (OpenAI) function_call responses\n * - 2: custom JSON added by the user using `Data`\n * - 6: (OpenAI) tool_call responses\n *\n * Example:\n * ```\n * 0:Vercel\n * 0:'s\n * 0: AI\n * 0: AI\n * 0: SDK\n * 0: is great\n * 0:!\n * 2: { \"someJson\": \"value\" }\n * 1: {\"function_call\": {\"name\": \"get_current_weather\", \"arguments\": \"{\\\\n\\\\\"location\\\\\": \\\\\"Charlottesville, Virginia\\\\\",\\\\n\\\\\"format\\\\\": \\\\\"celsius\\\\\"\\\\n}\"}}\n * 6: {\"tool_call\": {\"id\": \"tool_0\", \"type\": \"function\", \"function\": {\"name\": \"get_current_weather\", \"arguments\": \"{\\\\n\\\\\"location\\\\\": \\\\\"Charlottesville, Virginia\\\\\",\\\\n\\\\\"format\\\\\": \\\\\"celsius\\\\\"\\\\n}\"}}}\n *```\n */\nexport const DataStreamStringPrefixes = Object.fromEntries(\n dataStreamParts.map(part => [part.name, part.code]),\n) as {\n [K in DataStreamParts['name']]: (typeof dataStreamParts)[number]['code'];\n};\n\nexport const validCodes = dataStreamParts.map(part => part.code);\n\n/**\nParses a stream part from a string.\n\n@param line The string to parse.\n@returns The parsed stream part.\n@throws An error if the string cannot be parsed.\n */\nexport const parseDataStreamPart = (line: string): DataStreamPartType => {\n const firstSeparatorIndex = line.indexOf(':');\n\n if (firstSeparatorIndex === -1) {\n throw new Error('Failed to parse stream string. No separator found.');\n }\n\n const prefix = line.slice(0, firstSeparatorIndex);\n\n if (!validCodes.includes(prefix as keyof typeof dataStreamPartsByCode)) {\n throw new Error(`Failed to parse stream string. Invalid code ${prefix}.`);\n }\n\n const code = prefix as keyof typeof dataStreamPartsByCode;\n\n const textValue = line.slice(firstSeparatorIndex + 1);\n const jsonValue: JSONValue = JSON.parse(textValue);\n\n return dataStreamPartsByCode[code].parse(jsonValue);\n};\n\n/**\nPrepends a string with a prefix from the `StreamChunkPrefixes`, JSON-ifies it,\nand appends a new line.\n\nIt ensures type-safety for the part type and value.\n */\nexport function formatDataStreamPart(\n type: T,\n value: DataStreamPartValueType[T],\n): DataStreamString {\n const streamPart = dataStreamParts.find(part => part.name === type);\n\n if (!streamPart) {\n throw new Error(`Invalid stream part type: ${type}`);\n }\n\n return `${streamPart.code}:${JSON.stringify(value)}\\n`;\n}\n","import { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\nimport { jsonSchema, Schema } from './schema';\n\nexport function zodSchema(\n zodSchema: z.Schema,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n // default to no references (to support openapi conversion for google)\n const useReferences = options?.useReferences ?? false;\n\n return jsonSchema(\n zodToJsonSchema(zodSchema, {\n $refStrategy: useReferences ? 'root' : 'none',\n target: 'jsonSchema7', // note: openai mode breaks various gemini conversions\n }) as JSONSchema7,\n {\n validate: value => {\n const result = zodSchema.safeParse(value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n },\n },\n );\n}\n","import { Validator, validatorSymbol } from '@ai-sdk/provider-utils';\nimport { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport { zodSchema } from './zod-schema';\n\n/**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\nconst schemaSymbol = Symbol.for('vercel.ai.schema');\n\nexport type Schema = Validator & {\n /**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\n [schemaSymbol]: true;\n\n /**\n * Schema type for inference.\n */\n _type: OBJECT;\n\n /**\n * The JSON Schema for the schema. It is passed to the providers.\n */\n readonly jsonSchema: JSONSchema7;\n};\n\n/**\n * Create a schema using a JSON Schema.\n *\n * @param jsonSchema The JSON Schema for the schema.\n * @param options.validate Optional. A validation function for the schema.\n */\nexport function jsonSchema(\n jsonSchema: JSONSchema7,\n {\n validate,\n }: {\n validate?: (\n value: unknown,\n ) => { success: true; value: OBJECT } | { success: false; error: Error };\n } = {},\n): Schema {\n return {\n [schemaSymbol]: true,\n _type: undefined as OBJECT, // should never be used directly\n [validatorSymbol]: true,\n jsonSchema,\n validate,\n };\n}\n\nfunction isSchema(value: unknown): value is Schema {\n return (\n typeof value === 'object' &&\n value !== null &&\n schemaSymbol in value &&\n value[schemaSymbol] === true &&\n 'jsonSchema' in value &&\n 'validate' in value\n );\n}\n\nexport function asSchema(\n schema: z.Schema | Schema,\n): Schema {\n return isSchema(schema) ? schema : zodSchema(schema);\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line node/no-unsupported-features/es-builtins\nexport const _globalThis = typeof globalThis === 'object' ? globalThis : global;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.9.0';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set([ownVersion]);\n const rejectedVersions = new Set();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { MeterProvider } from '../metrics/MeterProvider';\nimport { ContextManager } from '../context/types';\nimport { DiagLogger } from '../diag/types';\nimport { _globalThis } from '../platform';\nimport { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\nconst _global = _globalThis as OTelGlobal;\n\nexport function registerGlobal(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n `@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n metrics?: MeterProvider;\n propagation?: TextMapPropagator;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport { ComponentLoggerOptions, DiagLogger, DiagLogFunction } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: any[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: any[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: any[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: any[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: any[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: any\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n args.unshift(namespace);\n return logger[funcName](...(args as Parameters));\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n\nexport interface DiagLoggerOptions {\n /**\n * The {@link DiagLogLevel} used to filter logs sent to the logger.\n *\n * @defaultValue DiagLogLevel.INFO\n */\n logLevel?: DiagLogLevel;\n\n /**\n * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered.\n */\n suppressOverrideMessage?: boolean;\n}\n\nexport interface DiagLoggerApi {\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean;\n\n /**\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagLogFunction, DiagLogger, DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLoggerApi,\n DiagLogLevel,\n} from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n */\nexport class DiagAPI implements DiagLogger, DiagLoggerApi {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n const setLogger: DiagLoggerApi['setLogger'] = (\n logger,\n optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(\n optionsOrLogLevel.logLevel ?? DiagLogLevel.INFO,\n logger\n );\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n const stack = new Error().stack ?? '';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.setLogger = setLogger;\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n public setLogger!: DiagLoggerApi['setLogger'];\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from './types';\n\n/** Get a key to uniquely identify a context value */\nexport function createContextKey(description: string) {\n // The specification states that for the same input, multiple calls should\n // return different keys. Due to the nature of the JS dependency management\n // system, this creates problems where multiple versions of some package\n // could hold different keys for the same property.\n //\n // Therefore, we use Symbol.for which returns the same key for the same input.\n return Symbol.for(description);\n}\n\nclass BaseContext implements Context {\n private _currentContext!: Map;\n\n /**\n * Construct a new context which inherits values from an optional parent context.\n *\n * @param parentContext a context from which to inherit values\n */\n constructor(parentContext?: Map) {\n // for minification\n const self = this;\n\n self._currentContext = parentContext ? new Map(parentContext) : new Map();\n\n self.getValue = (key: symbol) => self._currentContext.get(key);\n\n self.setValue = (key: symbol, value: unknown): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.set(key, value);\n return context;\n };\n\n self.deleteValue = (key: symbol): Context => {\n const context = new BaseContext(self._currentContext);\n context._currentContext.delete(key);\n return context;\n };\n }\n\n /**\n * Get a value from the context.\n *\n * @param key key which identifies a context value\n */\n public getValue!: (key: symbol) => unknown;\n\n /**\n * Create a new context which inherits from this context and has\n * the given key set to the given value.\n *\n * @param key context key for which to set the value\n * @param value value to set for the given key\n */\n public setValue!: (key: symbol, value: unknown) => Context;\n\n /**\n * Return a new context which inherits from this context but does\n * not contain a value for the given key.\n *\n * @param key context key for which to clear a value\n */\n public deleteValue!: (key: symbol) => Context;\n}\n\n/** The root context is used as the default parent context when there is no active context */\nexport const ROOT_CONTEXT: Context = new BaseContext();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ROOT_CONTEXT } from './context';\nimport * as types from './types';\n\nexport class NoopContextManager implements types.ContextManager {\n active(): types.Context {\n return ROOT_CONTEXT;\n }\n\n with ReturnType>(\n _context: types.Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return fn.call(thisArg, ...args);\n }\n\n bind(_context: types.Context, target: T): T {\n return target;\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n return this;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopContextManager } from '../context/NoopContextManager';\nimport { Context, ContextManager } from '../context/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'context';\nconst NOOP_CONTEXT_MANAGER = new NoopContextManager();\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Context API\n */\nexport class ContextAPI {\n private static _instance?: ContextAPI;\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Context API */\n public static getInstance(): ContextAPI {\n if (!this._instance) {\n this._instance = new ContextAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current context manager.\n *\n * @returns true if the context manager was successfully registered, else false\n */\n public setGlobalContextManager(contextManager: ContextManager): boolean {\n return registerGlobal(API_NAME, contextManager, DiagAPI.instance());\n }\n\n /**\n * Get the currently active context\n */\n public active(): Context {\n return this._getContextManager().active();\n }\n\n /**\n * Execute a function with an active context\n *\n * @param context context to be active during function execution\n * @param fn function to execute in a context\n * @param thisArg optional receiver to be used for calling fn\n * @param args optional arguments forwarded to fn\n */\n public with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n return this._getContextManager().with(context, fn, thisArg, ...args);\n }\n\n /**\n * Bind a context to a target function or event emitter\n *\n * @param context context to bind to the event emitter or function. Defaults to the currently active context\n * @param target function or event emitter to bind\n */\n public bind(context: Context, target: T): T {\n return this._getContextManager().bind(context, target);\n }\n\n private _getContextManager(): ContextManager {\n return getGlobal(API_NAME) || NOOP_CONTEXT_MANAGER;\n }\n\n /** Disable and remove the global context manager */\n public disable() {\n this._getContextManager().disable();\n unregisterGlobal(API_NAME, DiagAPI.instance());\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum TraceFlags {\n /** Represents no flag set. */\n NONE = 0x0,\n /** Bit to represent whether trace is sampled in trace flags. */\n SAMPLED = 0x1 << 0,\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SpanContext } from './span_context';\nimport { TraceFlags } from './trace_flags';\n\nexport const INVALID_SPANID = '0000000000000000';\nexport const INVALID_TRACEID = '00000000000000000000000000000000';\nexport const INVALID_SPAN_CONTEXT: SpanContext = {\n traceId: INVALID_TRACEID,\n spanId: INVALID_SPANID,\n traceFlags: TraceFlags.NONE,\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '../common/Exception';\nimport { TimeInput } from '../common/Time';\nimport { SpanAttributes } from './attributes';\nimport { INVALID_SPAN_CONTEXT } from './invalid-span-constants';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { SpanStatus } from './status';\nimport { Link } from './link';\n\n/**\n * The NonRecordingSpan is the default {@link Span} that is used when no Span\n * implementation is available. All operations are no-op including context\n * propagation.\n */\nexport class NonRecordingSpan implements Span {\n constructor(\n private readonly _spanContext: SpanContext = INVALID_SPAN_CONTEXT\n ) {}\n\n // Returns a SpanContext.\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n // By default does nothing\n setAttribute(_key: string, _value: unknown): this {\n return this;\n }\n\n // By default does nothing\n setAttributes(_attributes: SpanAttributes): this {\n return this;\n }\n\n // By default does nothing\n addEvent(_name: string, _attributes?: SpanAttributes): this {\n return this;\n }\n\n addLink(_link: Link): this {\n return this;\n }\n\n addLinks(_links: Link[]): this {\n return this;\n }\n\n // By default does nothing\n setStatus(_status: SpanStatus): this {\n return this;\n }\n\n // By default does nothing\n updateName(_name: string): this {\n return this;\n }\n\n // By default does nothing\n end(_endTime?: TimeInput): void {}\n\n // isRecording always returns false for NonRecordingSpan.\n isRecording(): boolean {\n return false;\n }\n\n // By default does nothing\n recordException(_exception: Exception, _time?: TimeInput): void {}\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createContextKey } from '../context/context';\nimport { Context } from '../context/types';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { ContextAPI } from '../api/context';\n\n/**\n * span key\n */\nconst SPAN_KEY = createContextKey('OpenTelemetry Context Key SPAN');\n\n/**\n * Return the span if one exists\n *\n * @param context context to get span from\n */\nexport function getSpan(context: Context): Span | undefined {\n return (context.getValue(SPAN_KEY) as Span) || undefined;\n}\n\n/**\n * Gets the span from the current context, if one exists.\n */\nexport function getActiveSpan(): Span | undefined {\n return getSpan(ContextAPI.getInstance().active());\n}\n\n/**\n * Set the span on a context\n *\n * @param context context to use as parent\n * @param span span to set active\n */\nexport function setSpan(context: Context, span: Span): Context {\n return context.setValue(SPAN_KEY, span);\n}\n\n/**\n * Remove current span stored in the context\n *\n * @param context context to delete span from\n */\nexport function deleteSpan(context: Context): Context {\n return context.deleteValue(SPAN_KEY);\n}\n\n/**\n * Wrap span context in a NoopSpan and set as span in a new\n * context\n *\n * @param context context to set active span on\n * @param spanContext span context to be wrapped\n */\nexport function setSpanContext(\n context: Context,\n spanContext: SpanContext\n): Context {\n return setSpan(context, new NonRecordingSpan(spanContext));\n}\n\n/**\n * Get the span context of the span if it exists.\n *\n * @param context context to get values from\n */\nexport function getSpanContext(context: Context): SpanContext | undefined {\n return getSpan(context)?.spanContext();\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { INVALID_SPANID, INVALID_TRACEID } from './invalid-span-constants';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { SpanContext } from './span_context';\n\nconst VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nconst VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\n\nexport function isValidTraceId(traceId: string): boolean {\n return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;\n}\n\nexport function isValidSpanId(spanId: string): boolean {\n return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;\n}\n\n/**\n * Returns true if this {@link SpanContext} is valid.\n * @return true if this {@link SpanContext} is valid.\n */\nexport function isSpanContextValid(spanContext: SpanContext): boolean {\n return (\n isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId)\n );\n}\n\n/**\n * Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n *\n * @param spanContext span context to be wrapped\n * @returns a new non-recording {@link Span} with the provided context\n */\nexport function wrapSpanContext(spanContext: SpanContext): Span {\n return new NonRecordingSpan(spanContext);\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContextAPI } from '../api/context';\nimport { Context } from '../context/types';\nimport { getSpanContext, setSpan } from '../trace/context-utils';\nimport { NonRecordingSpan } from './NonRecordingSpan';\nimport { Span } from './span';\nimport { isSpanContextValid } from './spancontext-utils';\nimport { SpanOptions } from './SpanOptions';\nimport { SpanContext } from './span_context';\nimport { Tracer } from './tracer';\n\nconst contextApi = ContextAPI.getInstance();\n\n/**\n * No-op implementations of {@link Tracer}.\n */\nexport class NoopTracer implements Tracer {\n // startSpan starts a noop span.\n startSpan(\n name: string,\n options?: SpanOptions,\n context = contextApi.active()\n ): Span {\n const root = Boolean(options?.root);\n if (root) {\n return new NonRecordingSpan();\n }\n\n const parentFromContext = context && getSpanContext(context);\n\n if (\n isSpanContext(parentFromContext) &&\n isSpanContextValid(parentFromContext)\n ) {\n return new NonRecordingSpan(parentFromContext);\n } else {\n return new NonRecordingSpan();\n }\n }\n\n startActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: SpanOptions | undefined,\n ctx: Context | undefined,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n arg2?: F | SpanOptions,\n arg3?: F | Context,\n arg4?: F\n ): ReturnType | undefined {\n let opts: SpanOptions | undefined;\n let ctx: Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as SpanOptions | undefined;\n ctx = arg3 as Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? contextApi.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = setSpan(parentContext, span);\n\n return contextApi.with(contextWithSpanSet, fn, undefined, span);\n }\n}\n\nfunction isSpanContext(spanContext: any): spanContext is SpanContext {\n return (\n typeof spanContext === 'object' &&\n typeof spanContext['spanId'] === 'string' &&\n typeof spanContext['traceId'] === 'string' &&\n typeof spanContext['traceFlags'] === 'number'\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Context } from '../context/types';\nimport { NoopTracer } from './NoopTracer';\nimport { Span } from './span';\nimport { SpanOptions } from './SpanOptions';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER = new NoopTracer();\n\n/**\n * Proxy tracer provided by the proxy tracer provider\n */\nexport class ProxyTracer implements Tracer {\n // When a real implementation is provided, this will be it\n private _delegate?: Tracer;\n\n constructor(\n private _provider: TracerDelegator,\n public readonly name: string,\n public readonly version?: string,\n public readonly options?: TracerOptions\n ) {}\n\n startSpan(name: string, options?: SpanOptions, context?: Context): Span {\n return this._getTracer().startSpan(name, options, context);\n }\n\n startActiveSpan unknown>(\n _name: string,\n _options: F | SpanOptions,\n _context?: F | Context,\n _fn?: F\n ): ReturnType {\n const tracer = this._getTracer();\n return Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n }\n\n /**\n * Try to get a tracer from the proxy tracer provider.\n * If the proxy tracer provider has no delegate, return a noop tracer.\n */\n private _getTracer() {\n if (this._delegate) {\n return this._delegate;\n }\n\n const tracer = this._provider.getDelegateTracer(\n this.name,\n this.version,\n this.options\n );\n\n if (!tracer) {\n return NOOP_TRACER;\n }\n\n this._delegate = tracer;\n return this._delegate;\n }\n}\n\nexport interface TracerDelegator {\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NoopTracer } from './NoopTracer';\nimport { Tracer } from './tracer';\nimport { TracerOptions } from './tracer_options';\nimport { TracerProvider } from './tracer_provider';\n\n/**\n * An implementation of the {@link TracerProvider} which returns an impotent\n * Tracer for all calls to `getTracer`.\n *\n * All operations are no-op.\n */\nexport class NoopTracerProvider implements TracerProvider {\n getTracer(\n _name?: string,\n _version?: string,\n _options?: TracerOptions\n ): Tracer {\n return new NoopTracer();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Tracer } from './tracer';\nimport { TracerProvider } from './tracer_provider';\nimport { ProxyTracer } from './ProxyTracer';\nimport { NoopTracerProvider } from './NoopTracerProvider';\nimport { TracerOptions } from './tracer_options';\n\nconst NOOP_TRACER_PROVIDER = new NoopTracerProvider();\n\n/**\n * Tracer provider which provides {@link ProxyTracer}s.\n *\n * Before a delegate is set, tracers provided are NoOp.\n * When a delegate is set, traces are provided from the delegate.\n * When a delegate is set after tracers have already been provided,\n * all tracers already provided will use the provided delegate implementation.\n */\nexport class ProxyTracerProvider implements TracerProvider {\n private _delegate?: TracerProvider;\n\n /**\n * Get a {@link ProxyTracer}\n */\n getTracer(name: string, version?: string, options?: TracerOptions): Tracer {\n return (\n this.getDelegateTracer(name, version, options) ??\n new ProxyTracer(this, name, version, options)\n );\n }\n\n getDelegate(): TracerProvider {\n return this._delegate ?? NOOP_TRACER_PROVIDER;\n }\n\n /**\n * Set the delegate tracer provider\n */\n setDelegate(delegate: TracerProvider) {\n this._delegate = delegate;\n }\n\n getDelegateTracer(\n name: string,\n version?: string,\n options?: TracerOptions\n ): Tracer | undefined {\n return this._delegate?.getTracer(name, version, options);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport interface SpanStatus {\n /** The status code of this message. */\n code: SpanStatusCode;\n /** A developer-facing error message. */\n message?: string;\n}\n\n/**\n * An enumeration of status codes.\n */\nexport enum SpanStatusCode {\n /**\n * The default status.\n */\n UNSET = 0,\n /**\n * The operation has been validated by an Application developer or\n * Operator to have completed successfully.\n */\n OK = 1,\n /**\n * The operation contains an error.\n */\n ERROR = 2,\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\nimport { ProxyTracerProvider } from '../trace/ProxyTracerProvider';\nimport {\n isSpanContextValid,\n wrapSpanContext,\n} from '../trace/spancontext-utils';\nimport { Tracer } from '../trace/tracer';\nimport { TracerProvider } from '../trace/tracer_provider';\nimport {\n deleteSpan,\n getActiveSpan,\n getSpan,\n getSpanContext,\n setSpan,\n setSpanContext,\n} from '../trace/context-utils';\nimport { DiagAPI } from './diag';\n\nconst API_NAME = 'trace';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry Tracing API\n */\nexport class TraceAPI {\n private static _instance?: TraceAPI;\n\n private _proxyTracerProvider = new ProxyTracerProvider();\n\n /** Empty private constructor prevents end users from constructing a new instance of the API */\n private constructor() {}\n\n /** Get the singleton instance of the Trace API */\n public static getInstance(): TraceAPI {\n if (!this._instance) {\n this._instance = new TraceAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Set the current global tracer.\n *\n * @returns true if the tracer provider was successfully registered, else false\n */\n public setGlobalTracerProvider(provider: TracerProvider): boolean {\n const success = registerGlobal(\n API_NAME,\n this._proxyTracerProvider,\n DiagAPI.instance()\n );\n if (success) {\n this._proxyTracerProvider.setDelegate(provider);\n }\n return success;\n }\n\n /**\n * Returns the global tracer provider.\n */\n public getTracerProvider(): TracerProvider {\n return getGlobal(API_NAME) || this._proxyTracerProvider;\n }\n\n /**\n * Returns a tracer from the global tracer provider.\n */\n public getTracer(name: string, version?: string): Tracer {\n return this.getTracerProvider().getTracer(name, version);\n }\n\n /** Remove the global tracer provider */\n public disable() {\n unregisterGlobal(API_NAME, DiagAPI.instance());\n this._proxyTracerProvider = new ProxyTracerProvider();\n }\n\n public wrapSpanContext = wrapSpanContext;\n\n public isSpanContextValid = isSpanContextValid;\n\n public deleteSpan = deleteSpan;\n\n public getSpan = getSpan;\n\n public getActiveSpan = getActiveSpan;\n\n public getSpanContext = getSpanContext;\n\n public setSpan = setSpan;\n\n public setSpanContext = setSpanContext;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { TraceAPI } from './api/trace';\n/** Entrypoint for trace API */\nexport const trace = TraceAPI.getInstance();\n","export function prepareResponseHeaders(\n headers: HeadersInit | undefined,\n {\n contentType,\n dataStreamVersion,\n }: { contentType: string; dataStreamVersion?: 'v1' | undefined },\n) {\n const responseHeaders = new Headers(headers ?? {});\n\n if (!responseHeaders.has('Content-Type')) {\n responseHeaders.set('Content-Type', contentType);\n }\n\n if (dataStreamVersion !== undefined) {\n responseHeaders.set('X-Vercel-AI-Data-Stream', dataStreamVersion);\n }\n\n return responseHeaders;\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\n/**\nError that is thrown when a model with an unsupported version is used.\n */\nexport class UnsupportedModelVersionError extends AISDKError {\n constructor() {\n super({\n name: 'AI_UnsupportedModelVersionError',\n message:\n `Unsupported model version. ` +\n `AI SDK 4 only supports models that implement specification version \"v1\". ` +\n `Please upgrade to AI SDK 5 to use this model.`,\n });\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly parameter: string;\n readonly value: unknown;\n\n constructor({\n parameter,\n value,\n message,\n }: {\n parameter: string;\n value: unknown;\n message: string;\n }) {\n super({\n name,\n message: `Invalid argument for parameter ${parameter}: ${message}`,\n });\n\n this.parameter = parameter;\n this.value = value;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_RetryError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport type RetryErrorReason =\n | 'maxRetriesExceeded'\n | 'errorNotRetryable'\n | 'abort';\n\nexport class RetryError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n // note: property order determines debugging output\n readonly reason: RetryErrorReason;\n readonly lastError: unknown;\n readonly errors: Array;\n\n constructor({\n message,\n reason,\n errors,\n }: {\n message: string;\n reason: RetryErrorReason;\n errors: Array;\n }) {\n super({ name, message });\n\n this.reason = reason;\n this.errors = errors;\n\n // separate our last error to make debugging via log easier:\n this.lastError = errors[errors.length - 1];\n }\n\n static isInstance(error: unknown): error is RetryError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { delay, getErrorMessage, isAbortError } from '@ai-sdk/provider-utils';\nimport { RetryError } from './retry-error';\n\nexport type RetryFunction = (\n fn: () => PromiseLike,\n) => PromiseLike;\n\n/**\nThe `retryWithExponentialBackoff` strategy retries a failed API call with an exponential backoff.\nYou can configure the maximum number of retries, the initial delay, and the backoff factor.\n */\nexport const retryWithExponentialBackoff =\n ({\n maxRetries = 2,\n initialDelayInMs = 2000,\n backoffFactor = 2,\n } = {}): RetryFunction =>\n async (f: () => PromiseLike) =>\n _retryWithExponentialBackoff(f, {\n maxRetries,\n delayInMs: initialDelayInMs,\n backoffFactor,\n });\n\nasync function _retryWithExponentialBackoff(\n f: () => PromiseLike,\n {\n maxRetries,\n delayInMs,\n backoffFactor,\n }: { maxRetries: number; delayInMs: number; backoffFactor: number },\n errors: unknown[] = [],\n): Promise {\n try {\n return await f();\n } catch (error) {\n if (isAbortError(error)) {\n throw error; // don't retry when the request was aborted\n }\n\n if (maxRetries === 0) {\n throw error; // don't wrap the error when retries are disabled\n }\n\n const errorMessage = getErrorMessage(error);\n const newErrors = [...errors, error];\n const tryNumber = newErrors.length;\n\n if (tryNumber > maxRetries) {\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts. Last error: ${errorMessage}`,\n reason: 'maxRetriesExceeded',\n errors: newErrors,\n });\n }\n\n if (\n error instanceof Error &&\n APICallError.isInstance(error) &&\n error.isRetryable === true &&\n tryNumber <= maxRetries\n ) {\n await delay(delayInMs);\n return _retryWithExponentialBackoff(\n f,\n { maxRetries, delayInMs: backoffFactor * delayInMs, backoffFactor },\n newErrors,\n );\n }\n\n if (tryNumber === 1) {\n throw error; // don't wrap the error when a non-retryable error occurs on the first try\n }\n\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts with non-retryable error: '${errorMessage}'`,\n reason: 'errorNotRetryable',\n errors: newErrors,\n });\n }\n}\n","import { InvalidArgumentError } from '../../errors/invalid-argument-error';\nimport {\n RetryFunction,\n retryWithExponentialBackoff,\n} from '../../util/retry-with-exponential-backoff';\n\n/**\n * Validate and prepare retries.\n */\nexport function prepareRetries({\n maxRetries,\n}: {\n maxRetries: number | undefined;\n}): {\n maxRetries: number;\n retry: RetryFunction;\n} {\n if (maxRetries != null) {\n if (!Number.isInteger(maxRetries)) {\n throw new InvalidArgumentError({\n parameter: 'maxRetries',\n value: maxRetries,\n message: 'maxRetries must be an integer',\n });\n }\n\n if (maxRetries < 0) {\n throw new InvalidArgumentError({\n parameter: 'maxRetries',\n value: maxRetries,\n message: 'maxRetries must be >= 0',\n });\n }\n }\n\n const maxRetriesResult = maxRetries ?? 2;\n\n return {\n maxRetries: maxRetriesResult,\n retry: retryWithExponentialBackoff({ maxRetries: maxRetriesResult }),\n };\n}\n","import { TelemetrySettings } from './telemetry-settings';\n\nexport function assembleOperationName({\n operationId,\n telemetry,\n}: {\n operationId: string;\n telemetry?: TelemetrySettings;\n}) {\n return {\n // standardized operation and resource name:\n 'operation.name': `${operationId}${\n telemetry?.functionId != null ? ` ${telemetry.functionId}` : ''\n }`,\n 'resource.name': telemetry?.functionId,\n\n // detailed, AI SDK specific data:\n 'ai.operationId': operationId,\n 'ai.telemetry.functionId': telemetry?.functionId,\n };\n}\n","import { Attributes } from '@opentelemetry/api';\nimport { CallSettings } from '../prompt/call-settings';\nimport { TelemetrySettings } from './telemetry-settings';\n\nexport function getBaseTelemetryAttributes({\n model,\n settings,\n telemetry,\n headers,\n}: {\n model: { modelId: string; provider: string };\n settings: Omit;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n}): Attributes {\n return {\n 'ai.model.provider': model.provider,\n 'ai.model.id': model.modelId,\n\n // settings:\n ...Object.entries(settings).reduce((attributes, [key, value]) => {\n attributes[`ai.settings.${key}`] = value;\n return attributes;\n }, {} as Attributes),\n\n // add metadata as attributes:\n ...Object.entries(telemetry?.metadata ?? {}).reduce(\n (attributes, [key, value]) => {\n attributes[`ai.telemetry.metadata.${key}`] = value;\n return attributes;\n },\n {} as Attributes,\n ),\n\n // request headers\n ...Object.entries(headers ?? {}).reduce((attributes, [key, value]) => {\n if (value !== undefined) {\n attributes[`ai.request.headers.${key}`] = value;\n }\n return attributes;\n }, {} as Attributes),\n };\n}\n","import { Span, SpanContext, Tracer } from '@opentelemetry/api';\n\n/**\n * Tracer implementation that does nothing (null object).\n */\nexport const noopTracer: Tracer = {\n startSpan(): Span {\n return noopSpan;\n },\n\n startActiveSpan unknown>(\n name: unknown,\n arg1: unknown,\n arg2?: unknown,\n arg3?: F,\n ): ReturnType {\n if (typeof arg1 === 'function') {\n return arg1(noopSpan);\n }\n if (typeof arg2 === 'function') {\n return arg2(noopSpan);\n }\n if (typeof arg3 === 'function') {\n return arg3(noopSpan);\n }\n },\n};\n\nconst noopSpan: Span = {\n spanContext() {\n return noopSpanContext;\n },\n setAttribute() {\n return this;\n },\n setAttributes() {\n return this;\n },\n addEvent() {\n return this;\n },\n addLink() {\n return this;\n },\n addLinks() {\n return this;\n },\n setStatus() {\n return this;\n },\n updateName() {\n return this;\n },\n end() {\n return this;\n },\n isRecording() {\n return false;\n },\n recordException() {\n return this;\n },\n};\n\nconst noopSpanContext: SpanContext = {\n traceId: '',\n spanId: '',\n traceFlags: 0,\n};\n","import { Tracer, trace } from '@opentelemetry/api';\nimport { noopTracer } from './noop-tracer';\n\nexport function getTracer({\n isEnabled = false,\n tracer,\n}: {\n isEnabled?: boolean;\n tracer?: Tracer;\n} = {}): Tracer {\n if (!isEnabled) {\n return noopTracer;\n }\n\n if (tracer) {\n return tracer;\n }\n\n return trace.getTracer('ai');\n}\n","import { Attributes, Span, Tracer, SpanStatusCode } from '@opentelemetry/api';\n\nexport function recordSpan({\n name,\n tracer,\n attributes,\n fn,\n endWhenDone = true,\n}: {\n name: string;\n tracer: Tracer;\n attributes: Attributes;\n fn: (span: Span) => Promise;\n endWhenDone?: boolean;\n}) {\n return tracer.startActiveSpan(name, { attributes }, async span => {\n try {\n const result = await fn(span);\n\n if (endWhenDone) {\n span.end();\n }\n\n return result;\n } catch (error) {\n try {\n recordErrorOnSpan(span, error);\n } finally {\n // always stop the span when there is an error:\n span.end();\n }\n\n throw error;\n }\n });\n}\n\n/**\n * Record an error on a span. If the error is an instance of Error, an exception event will be recorded on the span, otherwise\n * the span will be set to an error status.\n *\n * @param span - The span to record the error on.\n * @param error - The error to record on the span.\n */\nexport function recordErrorOnSpan(span: Span, error: unknown) {\n if (error instanceof Error) {\n span.recordException({\n name: error.name,\n message: error.message,\n stack: error.stack,\n });\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n } else {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n}\n","import type { Attributes, AttributeValue } from '@opentelemetry/api';\nimport type { TelemetrySettings } from './telemetry-settings';\n\nexport function selectTelemetryAttributes({\n telemetry,\n attributes,\n}: {\n telemetry?: TelemetrySettings;\n attributes: {\n [attributeKey: string]:\n | AttributeValue\n | { input: () => AttributeValue | undefined }\n | { output: () => AttributeValue | undefined }\n | undefined;\n };\n}): Attributes {\n // when telemetry is disabled, return an empty object to avoid serialization overhead:\n if (telemetry?.isEnabled !== true) {\n return {};\n }\n\n return Object.entries(attributes).reduce((attributes, [key, value]) => {\n if (value === undefined) {\n return attributes;\n }\n\n // input value, check if it should be recorded:\n if (\n typeof value === 'object' &&\n 'input' in value &&\n typeof value.input === 'function'\n ) {\n // default to true:\n if (telemetry?.recordInputs === false) {\n return attributes;\n }\n\n const result = value.input();\n\n return result === undefined\n ? attributes\n : { ...attributes, [key]: result };\n }\n\n // output value, check if it should be recorded:\n if (\n typeof value === 'object' &&\n 'output' in value &&\n typeof value.output === 'function'\n ) {\n // default to true:\n if (telemetry?.recordOutputs === false) {\n return attributes;\n }\n\n const result = value.output();\n\n return result === undefined\n ? attributes\n : { ...attributes, [key]: result };\n }\n\n // value is an attribute value already:\n return { ...attributes, [key]: value };\n }, {});\n}\n","/**\n * Splits an array into chunks of a specified size.\n *\n * @template T - The type of elements in the array.\n * @param {T[]} array - The array to split.\n * @param {number} chunkSize - The size of each chunk.\n * @returns {T[][]} - A new array containing the chunks.\n */\nexport function splitArray(array: T[], chunkSize: number): T[][] {\n if (chunkSize <= 0) {\n throw new Error('chunkSize must be greater than 0');\n }\n\n const result = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n result.push(array.slice(i, i + chunkSize));\n }\n\n return result;\n}\n","import { prepareRetries } from '../prompt/prepare-retries';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport { Embedding, EmbeddingModel } from '../types';\nimport { splitArray } from '../util/split-array';\nimport { EmbedManyResult } from './embed-many-result';\nimport { UnsupportedModelVersionError } from '../../errors/unsupported-model-version-error';\n\n/**\nEmbed several values using an embedding model. The type of the value is defined\nby the embedding model.\n\n`embedMany` automatically splits large requests into smaller chunks if the model\nhas a limit on how many embeddings can be generated in a single call.\n\n@param model - The embedding model to use.\n@param values - The values that should be embedded.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@returns A result object that contains the embeddings, the value, and additional information.\n */\nexport async function embedMany({\n model,\n values,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n experimental_telemetry: telemetry,\n}: {\n /**\nThe embedding model to use.\n */\n model: EmbeddingModel;\n\n /**\nThe values that should be embedded.\n */\n values: Array;\n\n /**\nMaximum number of retries per embedding model call. Set to 0 to disable retries.\n\n@default 2\n */\n maxRetries?: number;\n\n /**\nAbort signal.\n */\n abortSignal?: AbortSignal;\n\n /**\nAdditional headers to include in the request.\nOnly applicable for HTTP-based providers.\n */\n headers?: Record;\n\n /**\n * Optional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n}): Promise> {\n if (typeof model === 'string' || model.specificationVersion !== 'v1') {\n throw new UnsupportedModelVersionError();\n }\n\n const { maxRetries, retry } = prepareRetries({ maxRetries: maxRetriesArg });\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n\n return recordSpan({\n name: 'ai.embedMany',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: 'ai.embedMany', telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => values.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async span => {\n const maxEmbeddingsPerCall = model.maxEmbeddingsPerCall;\n\n // the model has not specified limits on\n // how many embeddings can be generated in a single call\n if (maxEmbeddingsPerCall == null) {\n const { embeddings, usage } = await retry(() => {\n // nested spans to align with the embedMany telemetry data:\n return recordSpan({\n name: 'ai.embedMany.doEmbed',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.embedMany.doEmbed',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => values.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async doEmbedSpan => {\n const modelResponse = await model.doEmbed({\n values,\n abortSignal,\n headers,\n });\n\n const embeddings = modelResponse.embeddings;\n const usage = modelResponse.usage ?? { tokens: NaN };\n\n doEmbedSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return { embeddings, usage };\n },\n });\n });\n\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return new DefaultEmbedManyResult({ values, embeddings, usage });\n }\n\n // split the values into chunks that are small enough for the model:\n const valueChunks = splitArray(values, maxEmbeddingsPerCall);\n\n // serially embed the chunks:\n const embeddings: Array = [];\n let tokens = 0;\n\n for (const chunk of valueChunks) {\n const { embeddings: responseEmbeddings, usage } = await retry(() => {\n // nested spans to align with the embedMany telemetry data:\n return recordSpan({\n name: 'ai.embedMany.doEmbed',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.embedMany.doEmbed',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => chunk.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async doEmbedSpan => {\n const modelResponse = await model.doEmbed({\n values: chunk,\n abortSignal,\n headers,\n });\n\n const embeddings = modelResponse.embeddings;\n const usage = modelResponse.usage ?? { tokens: NaN };\n\n doEmbedSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return { embeddings, usage };\n },\n });\n });\n\n embeddings.push(...responseEmbeddings);\n tokens += usage.tokens;\n }\n\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': tokens,\n },\n }),\n );\n\n return new DefaultEmbedManyResult({\n values,\n embeddings,\n usage: { tokens },\n });\n },\n });\n}\n\nclass DefaultEmbedManyResult implements EmbedManyResult {\n readonly values: EmbedManyResult['values'];\n readonly embeddings: EmbedManyResult['embeddings'];\n readonly usage: EmbedManyResult['usage'];\n\n constructor(options: {\n values: EmbedManyResult['values'];\n embeddings: EmbedManyResult['embeddings'];\n usage: EmbedManyResult['usage'];\n }) {\n this.values = options.values;\n this.embeddings = options.embeddings;\n this.usage = options.usage;\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\nimport { LanguageModelResponseMetadata } from '../core/types/language-model-response-metadata';\nimport { LanguageModelUsage } from '../core/types/usage';\nimport { FinishReason } from '../core';\n\nconst name = 'AI_NoObjectGeneratedError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\nThrown when no object could be generated. This can have several causes:\n\n- The model failed to generate a response.\n- The model generated a response that could not be parsed.\n- The model generated a response that could not be validated against the schema.\n\nThe error contains the following properties:\n\n- `text`: The text that was generated by the model. This can be the raw text or the tool call text, depending on the model.\n */\nexport class NoObjectGeneratedError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n The text that was generated by the model. This can be the raw text or the tool call text, depending on the model.\n */\n readonly text: string | undefined;\n\n /**\n The response metadata.\n */\n readonly response: LanguageModelResponseMetadata | undefined;\n\n /**\n The usage of the model.\n */\n readonly usage: LanguageModelUsage | undefined;\n\n /**\n Reason why the model finished generating a response.\n */\n readonly finishReason: FinishReason | undefined;\n\n constructor({\n message = 'No object generated.',\n cause,\n text,\n response,\n usage,\n finishReason,\n }: {\n message?: string;\n cause?: Error;\n text?: string;\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n }) {\n super({ name, message, cause });\n\n this.text = text;\n this.response = response;\n this.usage = usage;\n this.finishReason = finishReason;\n }\n\n static isInstance(error: unknown): error is NoObjectGeneratedError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n\nexport function verifyNoObjectGeneratedError(\n error: unknown,\n expected: {\n message: string;\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n) {\n expect(NoObjectGeneratedError.isInstance(error)).toBeTruthy();\n const noObjectGeneratedError = error as NoObjectGeneratedError;\n expect(noObjectGeneratedError.message).toStrictEqual(expected.message);\n expect(noObjectGeneratedError.response).toStrictEqual(expected.response);\n expect(noObjectGeneratedError.usage).toStrictEqual(expected.usage);\n expect(noObjectGeneratedError.finishReason).toStrictEqual(\n expected.finishReason,\n );\n}\n","import {\n convertBase64ToUint8Array,\n convertUint8ArrayToBase64,\n} from '@ai-sdk/provider-utils';\nimport { InvalidDataContentError } from './invalid-data-content-error';\nimport { z } from 'zod';\n\n/**\nData content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer.\n */\nexport type DataContent = string | Uint8Array | ArrayBuffer | Buffer;\n\n/**\n@internal\n */\nexport const dataContentSchema: z.ZodType = z.union([\n z.string(),\n z.instanceof(Uint8Array),\n z.instanceof(ArrayBuffer),\n z.custom(\n // Buffer might not be available in some environments such as CloudFlare:\n (value: unknown): value is Buffer =>\n globalThis.Buffer?.isBuffer(value) ?? false,\n { message: 'Must be a Buffer' },\n ),\n]);\n\n/**\nConverts data content to a base64-encoded string.\n\n@param content - Data content to convert.\n@returns Base64-encoded string.\n*/\nexport function convertDataContentToBase64String(content: DataContent): string {\n if (typeof content === 'string') {\n return content;\n }\n\n if (content instanceof ArrayBuffer) {\n return convertUint8ArrayToBase64(new Uint8Array(content));\n }\n\n return convertUint8ArrayToBase64(content);\n}\n\n/**\nConverts data content to a Uint8Array.\n\n@param content - Data content to convert.\n@returns Uint8Array.\n */\nexport function convertDataContentToUint8Array(\n content: DataContent,\n): Uint8Array {\n if (content instanceof Uint8Array) {\n return content;\n }\n\n if (typeof content === 'string') {\n try {\n return convertBase64ToUint8Array(content);\n } catch (error) {\n throw new InvalidDataContentError({\n message:\n 'Invalid data content. Content string is not a base64-encoded media.',\n content,\n cause: error,\n });\n }\n }\n\n if (content instanceof ArrayBuffer) {\n return new Uint8Array(content);\n }\n\n throw new InvalidDataContentError({ content });\n}\n\n/**\n * Converts a Uint8Array to a string of text.\n *\n * @param uint8Array - The Uint8Array to convert.\n * @returns The converted string.\n */\nexport function convertUint8ArrayToText(uint8Array: Uint8Array): string {\n try {\n return new TextDecoder().decode(uint8Array);\n } catch (error) {\n throw new Error('Error decoding Uint8Array to text');\n }\n}\n","import { JSONValue } from '@ai-sdk/provider';\nimport { z } from 'zod';\n\nexport const jsonValueSchema: z.ZodType = z.lazy(() =>\n z.union([\n z.null(),\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), jsonValueSchema),\n z.array(jsonValueSchema),\n ]),\n);\n","import { LanguageModelV1ProviderMetadata } from '@ai-sdk/provider';\nimport { z } from 'zod';\nimport { jsonValueSchema } from './json-value';\n\n/**\nAdditional provider-specific metadata that is returned from the provider.\n\nThis is needed to enable provider-specific functionality that can be\nfully encapsulated in the provider.\n */\nexport type ProviderMetadata = LanguageModelV1ProviderMetadata;\n\n/**\nAdditional provider-specific options.\n\nThey are passed through to the provider from the AI SDK and enable\nprovider-specific functionality that can be fully encapsulated in the provider.\n */\n// TODO change to LanguageModelV2ProviderOptions in language model v2\nexport type ProviderOptions = LanguageModelV1ProviderMetadata;\n\nexport const providerMetadataSchema: z.ZodType = z.record(\n z.string(),\n z.record(z.string(), jsonValueSchema),\n);\n","import { z } from 'zod';\n\nexport type ToolResultContent = Array<\n | {\n type: 'text';\n text: string;\n }\n | {\n type: 'image';\n data: string; // base64 encoded png image, e.g. screenshot\n mimeType?: string; // e.g. 'image/png';\n }\n>;\n\nexport const toolResultContentSchema: z.ZodType = z.array(\n z.union([\n z.object({ type: z.literal('text'), text: z.string() }),\n z.object({\n type: z.literal('image'),\n data: z.string(),\n mimeType: z.string().optional(),\n }),\n ]),\n);\n\nexport function isToolResultContent(\n value: unknown,\n): value is ToolResultContent {\n if (!Array.isArray(value) || value.length === 0) {\n return false;\n }\n\n return value.every(part => {\n if (typeof part !== 'object' || part === null) {\n return false;\n }\n\n if (part.type === 'text') {\n return typeof part.text === 'string';\n }\n\n if (part.type === 'image') {\n return (\n typeof part.data === 'string' &&\n (part.mimeType === undefined || typeof part.mimeType === 'string')\n );\n }\n\n return false;\n });\n}\n","import { z } from 'zod';\nimport {\n ProviderMetadata,\n providerMetadataSchema,\n ProviderOptions,\n} from '../types/provider-metadata';\nimport { DataContent, dataContentSchema } from './data-content';\nimport {\n ToolResultContent,\n toolResultContentSchema,\n} from './tool-result-content';\n\n/**\nText content part of a prompt. It contains a string of text.\n */\nexport interface TextPart {\n type: 'text';\n\n /**\nThe text content.\n */\n text: string;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n}\n\n/**\n@internal\n */\nexport const textPartSchema: z.ZodType = z.object({\n type: z.literal('text'),\n text: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n});\n\n/**\nImage content part of a prompt. It contains an image.\n */\nexport interface ImagePart {\n type: 'image';\n\n /**\nImage data. Can either be:\n\n- data: a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer\n- URL: a URL that points to the image\n */\n image: DataContent | URL;\n\n /**\nOptional mime type of the image.\n */\n mimeType?: string;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n}\n\n/**\n@internal\n */\nexport const imagePartSchema: z.ZodType = z.object({\n type: z.literal('image'),\n image: z.union([dataContentSchema, z.instanceof(URL)]),\n mimeType: z.string().optional(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n});\n\n/**\nFile content part of a prompt. It contains a file.\n */\nexport interface FilePart {\n type: 'file';\n\n /**\nFile data. Can either be:\n\n- data: a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer\n- URL: a URL that points to the image\n */\n data: DataContent | URL;\n\n /**\nOptional filename of the file.\n */\n filename?: string;\n\n /**\nMime type of the file.\n */\n mimeType: string;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n}\n\n/**\n@internal\n */\nexport const filePartSchema: z.ZodType = z.object({\n type: z.literal('file'),\n data: z.union([dataContentSchema, z.instanceof(URL)]),\n filename: z.string().optional(),\n mimeType: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n});\n\n/**\n * Reasoning content part of a prompt. It contains a reasoning.\n */\nexport interface ReasoningPart {\n type: 'reasoning';\n\n /**\nThe reasoning text.\n */\n text: string;\n\n /**\nAn optional signature for verifying that the reasoning originated from the model.\n */\n signature?: string;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n}\n\n/**\n@internal\n */\nexport const reasoningPartSchema: z.ZodType = z.object({\n type: z.literal('reasoning'),\n text: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n});\n\n/**\nRedacted reasoning content part of a prompt.\n */\nexport interface RedactedReasoningPart {\n type: 'redacted-reasoning';\n\n /**\nRedacted reasoning data.\n */\n data: string;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n}\n\n/**\n@internal\n */\nexport const redactedReasoningPartSchema: z.ZodType =\n z.object({\n type: z.literal('redacted-reasoning'),\n data: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n });\n\n/**\nTool call content part of a prompt. It contains a tool call (usually generated by the AI model).\n */\nexport interface ToolCallPart {\n type: 'tool-call';\n\n /**\nID of the tool call. This ID is used to match the tool call with the tool result.\n */\n toolCallId: string;\n\n /**\nName of the tool that is being called.\n */\n toolName: string;\n\n /**\nArguments of the tool call. This is a JSON-serializable object that matches the tool's input schema.\n */\n args: unknown;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n}\n\n/**\n@internal\n */\nexport const toolCallPartSchema: z.ZodType = z.object({\n type: z.literal('tool-call'),\n toolCallId: z.string(),\n toolName: z.string(),\n args: z.unknown(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n}) as z.ZodType; // necessary bc args is optional on Zod type\n\n/**\nTool result content part of a prompt. It contains the result of the tool call with the matching ID.\n */\nexport interface ToolResultPart {\n type: 'tool-result';\n\n /**\nID of the tool call that this result is associated with.\n */\n toolCallId: string;\n\n /**\nName of the tool that generated this result.\n */\n toolName: string;\n\n /**\nResult of the tool call. This is a JSON-serializable object.\n */\n result: unknown;\n\n /**\nMulti-part content of the tool result. Only for tools that support multipart results.\n */\n experimental_content?: ToolResultContent;\n\n /**\nOptional flag if the result is an error or an error message.\n */\n isError?: boolean;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n}\n\n/**\n@internal\n */\nexport const toolResultPartSchema: z.ZodType = z.object({\n type: z.literal('tool-result'),\n toolCallId: z.string(),\n toolName: z.string(),\n result: z.unknown(),\n content: toolResultContentSchema.optional(),\n isError: z.boolean().optional(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n}) as z.ZodType; // necessary bc result is optional on Zod type\n","import { z } from 'zod';\nimport { ProviderMetadata } from '../types';\nimport {\n providerMetadataSchema,\n ProviderOptions,\n} from '../types/provider-metadata';\nimport {\n FilePart,\n filePartSchema,\n ImagePart,\n imagePartSchema,\n ReasoningPart,\n reasoningPartSchema,\n RedactedReasoningPart,\n redactedReasoningPartSchema,\n TextPart,\n textPartSchema,\n ToolCallPart,\n toolCallPartSchema,\n ToolResultPart,\n toolResultPartSchema,\n} from './content-part';\n\n/**\n A system message. It can contain system information.\n\n Note: using the \"system\" part of the prompt is strongly preferred\n to increase the resilience against prompt injection attacks,\n and because not all providers support several system messages.\n */\nexport type CoreSystemMessage = {\n role: 'system';\n content: string;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n};\n\nexport const coreSystemMessageSchema: z.ZodType = z.object({\n role: z.literal('system'),\n content: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n});\n\n/**\nA user message. It can contain text or a combination of text and images.\n */\nexport type CoreUserMessage = {\n role: 'user';\n content: UserContent;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n};\n\nexport const coreUserMessageSchema: z.ZodType = z.object({\n role: z.literal('user'),\n content: z.union([\n z.string(),\n z.array(z.union([textPartSchema, imagePartSchema, filePartSchema])),\n ]),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n});\n\n/**\nContent of a user message. It can be a string or an array of text and image parts.\n */\nexport type UserContent = string | Array;\n\n/**\nAn assistant message. It can contain text, tool calls, or a combination of text and tool calls.\n */\nexport type CoreAssistantMessage = {\n role: 'assistant';\n content: AssistantContent;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n};\n\nexport const coreAssistantMessageSchema: z.ZodType =\n z.object({\n role: z.literal('assistant'),\n content: z.union([\n z.string(),\n z.array(\n z.union([\n textPartSchema,\n filePartSchema,\n reasoningPartSchema,\n redactedReasoningPartSchema,\n toolCallPartSchema,\n ]),\n ),\n ]),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n });\n\n/**\nContent of an assistant message.\nIt can be a string or an array of text, image, reasoning, redacted reasoning, and tool call parts.\n */\nexport type AssistantContent =\n | string\n | Array<\n TextPart | FilePart | ReasoningPart | RedactedReasoningPart | ToolCallPart\n >;\n\n/**\nA tool message. It contains the result of one or more tool calls.\n */\nexport type CoreToolMessage = {\n role: 'tool';\n content: ToolContent;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n};\n\nexport const coreToolMessageSchema: z.ZodType = z.object({\n role: z.literal('tool'),\n content: z.array(toolResultPartSchema),\n providerOptions: providerMetadataSchema.optional(),\n experimental_providerMetadata: providerMetadataSchema.optional(),\n});\n\n/**\nContent of a tool message. It is an array of tool result parts.\n */\nexport type ToolContent = Array;\n\n/**\nA message that can be used in the `messages` field of a prompt.\nIt can be a user message, an assistant message, or a tool message.\n */\nexport type CoreMessage =\n | CoreSystemMessage\n | CoreUserMessage\n | CoreAssistantMessage\n | CoreToolMessage;\n\nexport const coreMessageSchema: z.ZodType = z.union([\n coreSystemMessageSchema,\n coreUserMessageSchema,\n coreAssistantMessageSchema,\n coreToolMessageSchema,\n]);\n","import { JSONSchema7 } from '@ai-sdk/provider';\n\nconst DEFAULT_SCHEMA_PREFIX = 'JSON schema:';\nconst DEFAULT_SCHEMA_SUFFIX =\n 'You MUST answer with a JSON object that matches the JSON schema above.';\nconst DEFAULT_GENERIC_SUFFIX = 'You MUST answer with JSON.';\n\nexport function injectJsonInstruction({\n prompt,\n schema,\n schemaPrefix = schema != null ? DEFAULT_SCHEMA_PREFIX : undefined,\n schemaSuffix = schema != null\n ? DEFAULT_SCHEMA_SUFFIX\n : DEFAULT_GENERIC_SUFFIX,\n}: {\n prompt?: string;\n schema?: JSONSchema7;\n schemaPrefix?: string;\n schemaSuffix?: string;\n}): string {\n return [\n prompt != null && prompt.length > 0 ? prompt : undefined,\n prompt != null && prompt.length > 0 ? '' : undefined, // add a newline if prompt is not null\n schemaPrefix,\n schema != null ? JSON.stringify(schema) : undefined,\n schemaSuffix,\n ]\n .filter(line => line != null)\n .join('\\n');\n}\n","import {\n JSONParseError,\n JSONValue,\n TypeValidationError,\n} from '@ai-sdk/provider';\nimport { createIdGenerator, safeParseJSON } from '@ai-sdk/provider-utils';\nimport { Schema } from '@ai-sdk/ui-utils';\nimport { z } from 'zod';\nimport { NoObjectGeneratedError } from '../../errors/no-object-generated-error';\nimport { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareRetries } from '../prompt/prepare-retries';\nimport { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport {\n CallWarning,\n FinishReason,\n LanguageModel,\n LogProbs,\n ProviderMetadata,\n} from '../types';\nimport { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';\nimport { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport { ProviderOptions } from '../types/provider-metadata';\nimport { calculateLanguageModelUsage } from '../types/usage';\nimport { prepareResponseHeaders } from '../util/prepare-response-headers';\nimport { GenerateObjectResult } from './generate-object-result';\nimport { injectJsonInstruction } from './inject-json-instruction';\nimport { getOutputStrategy } from './output-strategy';\nimport { validateObjectGenerationInput } from './validate-object-generation-input';\nimport { stringifyForTelemetry } from '../prompt/stringify-for-telemetry';\nimport { UnsupportedModelVersionError } from '../../errors/unsupported-model-version-error';\n\nconst originalGenerateId = createIdGenerator({ prefix: 'aiobj', size: 24 });\n\n/**\nA function that attempts to repair the raw output of the mode\nto enable JSON parsing.\n\nShould return the repaired text or null if the text cannot be repaired.\n */\nexport type RepairTextFunction = (options: {\n text: string;\n error: JSONParseError | TypeValidationError;\n}) => Promise;\n\n/**\nGenerate a structured, typed object for a given prompt and schema using a language model.\n\nThis function does not stream the output. If you want to stream the output, use `streamObject` instead.\n\n@returns\nA result object that contains the generated object, the finish reason, the token usage, and additional information.\n */\nexport async function generateObject(\n options: Omit &\n Prompt & {\n output?: 'object' | undefined;\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe schema of the object that the model should generate.\n */\n schema: z.Schema | Schema;\n\n /**\nOptional name of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n */\n schemaName?: string;\n\n /**\nOptional description of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n */\n schemaDescription?: string;\n\n /**\nThe mode to use for object generation.\n\nThe schema is converted into a JSON schema and used in one of the following ways\n\n- 'auto': The provider will choose the best mode for the model.\n- 'tool': A tool with the JSON schema as parameters is provided and the provider is instructed to use it.\n- 'json': The JSON schema and an instruction are injected into the prompt. If the provider supports JSON mode, it is enabled. If the provider supports JSON grammars, the grammar is used.\n\nPlease note that most providers do not support all modes.\n\nDefault and recommended: 'auto' (best mode for the model).\n */\n mode?: 'auto' | 'json' | 'tool';\n\n /**\nA function that attempts to repair the raw output of the mode\nto enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\nOptional telemetry configuration (experimental).\n */\n\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n };\n },\n): Promise>;\n/**\nGenerate an array with structured, typed elements for a given prompt and element schema using a language model.\n\nThis function does not stream the output. If you want to stream the output, use `streamObject` instead.\n\n@return\nA result object that contains the generated object, the finish reason, the token usage, and additional information.\n */\nexport async function generateObject(\n options: Omit &\n Prompt & {\n output: 'array';\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe element schema of the array that the model should generate.\n */\n schema: z.Schema | Schema;\n\n /**\nOptional name of the array that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n */\n schemaName?: string;\n\n /**\nOptional description of the array that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n */\n schemaDescription?: string;\n\n /**\nThe mode to use for object generation.\n\nThe schema is converted into a JSON schema and used in one of the following ways\n\n- 'auto': The provider will choose the best mode for the model.\n- 'tool': A tool with the JSON schema as parameters is provided and the provider is instructed to use it.\n- 'json': The JSON schema and an instruction are injected into the prompt. If the provider supports JSON mode, it is enabled. If the provider supports JSON grammars, the grammar is used.\n\nPlease note that most providers do not support all modes.\n\nDefault and recommended: 'auto' (best mode for the model).\n */\n mode?: 'auto' | 'json' | 'tool';\n\n /**\nA function that attempts to repair the raw output of the mode\nto enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n };\n },\n): Promise>>;\n/**\nGenerate a value from an enum (limited list of string values) using a language model.\n\nThis function does not stream the output.\n\n@return\nA result object that contains the generated value, the finish reason, the token usage, and additional information.\n */\nexport async function generateObject(\n options: Omit &\n Prompt & {\n output: 'enum';\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe enum values that the model should use.\n */\n enum: Array;\n\n /**\nThe mode to use for object generation.\n\nThe schema is converted into a JSON schema and used in one of the following ways\n\n- 'auto': The provider will choose the best mode for the model.\n- 'tool': A tool with the JSON schema as parameters is provided and the provider is instructed to use it.\n- 'json': The JSON schema and an instruction are injected into the prompt. If the provider supports JSON mode, it is enabled. If the provider supports JSON grammars, the grammar is used.\n\nPlease note that most providers do not support all modes.\n\nDefault and recommended: 'auto' (best mode for the model).\n */\n mode?: 'auto' | 'json' | 'tool';\n\n /**\nA function that attempts to repair the raw output of the mode\nto enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n };\n },\n): Promise>;\n/**\nGenerate JSON with any schema for a given prompt using a language model.\n\nThis function does not stream the output. If you want to stream the output, use `streamObject` instead.\n\n@returns\nA result object that contains the generated object, the finish reason, the token usage, and additional information.\n */\nexport async function generateObject(\n options: Omit &\n Prompt & {\n output: 'no-schema';\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe mode to use for object generation. Must be \"json\" for no-schema output.\n */\n mode?: 'json';\n\n /**\nA function that attempts to repair the raw output of the mode\nto enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n };\n },\n): Promise>;\nexport async function generateObject({\n model,\n enum: enumValues, // rename bc enum is reserved by typescript\n schema: inputSchema,\n schemaName,\n schemaDescription,\n mode,\n output = 'object',\n system,\n prompt,\n messages,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n experimental_repairText: repairText,\n experimental_telemetry: telemetry,\n experimental_providerMetadata,\n providerOptions = experimental_providerMetadata,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n } = {},\n ...settings\n}: Omit &\n Prompt & {\n /**\n * The expected structure of the output.\n *\n * - 'object': Generate a single object that conforms to the schema.\n * - 'array': Generate an array of objects that conform to the schema.\n * - 'no-schema': Generate any JSON object. No schema is specified.\n *\n * Default is 'object' if not specified.\n */\n output?: 'object' | 'array' | 'enum' | 'no-schema';\n\n model: LanguageModel;\n enum?: Array;\n schema?: z.Schema | Schema;\n schemaName?: string;\n schemaDescription?: string;\n mode?: 'auto' | 'json' | 'tool';\n experimental_repairText?: RepairTextFunction;\n experimental_telemetry?: TelemetrySettings;\n experimental_providerMetadata?: ProviderMetadata;\n providerOptions?: ProviderOptions;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n };\n }): Promise> {\n if (typeof model === 'string' || model.specificationVersion !== 'v1') {\n throw new UnsupportedModelVersionError();\n }\n\n validateObjectGenerationInput({\n output,\n mode,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n enumValues,\n });\n\n const { maxRetries, retry } = prepareRetries({ maxRetries: maxRetriesArg });\n\n const outputStrategy = getOutputStrategy({\n output,\n schema: inputSchema,\n enumValues,\n });\n\n // automatically set mode to 'json' for no-schema output\n if (outputStrategy.type === 'no-schema' && mode === undefined) {\n mode = 'json';\n }\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...settings, maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n\n return recordSpan({\n name: 'ai.generateObject',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateObject',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.schema':\n outputStrategy.jsonSchema != null\n ? { input: () => JSON.stringify(outputStrategy.jsonSchema) }\n : undefined,\n 'ai.schema.name': schemaName,\n 'ai.schema.description': schemaDescription,\n 'ai.settings.output': outputStrategy.type,\n 'ai.settings.mode': mode,\n },\n }),\n tracer,\n fn: async span => {\n // use the default provider mode when the mode is set to 'auto' or unspecified\n if (mode === 'auto' || mode == null) {\n mode = model.defaultObjectGenerationMode;\n }\n\n let result: string;\n let finishReason: FinishReason;\n let usage: Parameters[0];\n let warnings: CallWarning[] | undefined;\n let rawResponse:\n | { headers?: Record; body?: unknown }\n | undefined;\n let response: LanguageModelResponseMetadata;\n let request: LanguageModelRequestMetadata;\n let logprobs: LogProbs | undefined;\n let resultProviderMetadata: ProviderMetadata | undefined;\n\n switch (mode) {\n case 'json': {\n const standardizedPrompt = standardizePrompt({\n prompt: {\n system:\n outputStrategy.jsonSchema == null\n ? injectJsonInstruction({ prompt: system })\n : model.supportsStructuredOutputs\n ? system\n : injectJsonInstruction({\n prompt: system,\n schema: outputStrategy.jsonSchema,\n }),\n prompt,\n messages,\n },\n tools: undefined,\n });\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n modelSupportsImageUrls: model.supportsImageUrls,\n modelSupportsUrl: model.supportsUrl?.bind(model), // support 'this' context\n });\n\n const generateResult = await retry(() =>\n recordSpan({\n name: 'ai.generateObject.doGenerate',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateObject.doGenerate',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.format': {\n input: () => standardizedPrompt.type,\n },\n 'ai.prompt.messages': {\n input: () => JSON.stringify(promptMessages),\n },\n 'ai.settings.mode': mode,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty': settings.frequencyPenalty,\n 'gen_ai.request.max_tokens': settings.maxTokens,\n 'gen_ai.request.presence_penalty': settings.presencePenalty,\n 'gen_ai.request.temperature': settings.temperature,\n 'gen_ai.request.top_k': settings.topK,\n 'gen_ai.request.top_p': settings.topP,\n },\n }),\n tracer,\n fn: async span => {\n const result = await model.doGenerate({\n mode: {\n type: 'object-json',\n schema: outputStrategy.jsonSchema,\n name: schemaName,\n description: schemaDescription,\n },\n ...prepareCallSettings(settings),\n inputFormat: standardizedPrompt.type,\n prompt: promptMessages,\n providerMetadata: providerOptions,\n abortSignal,\n headers,\n });\n\n const responseData = {\n id: result.response?.id ?? generateId(),\n timestamp: result.response?.timestamp ?? currentDate(),\n modelId: result.response?.modelId ?? model.modelId,\n };\n\n if (result.text === undefined) {\n throw new NoObjectGeneratedError({\n message:\n 'No object generated: the model did not return a response.',\n response: responseData,\n usage: calculateLanguageModelUsage(result.usage),\n finishReason: result.finishReason,\n });\n }\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': result.finishReason,\n 'ai.response.object': { output: () => result.text },\n 'ai.response.id': responseData.id,\n 'ai.response.model': responseData.modelId,\n 'ai.response.timestamp':\n responseData.timestamp.toISOString(),\n 'ai.response.providerMetadata': JSON.stringify(\n result.providerMetadata,\n ),\n 'ai.usage.promptTokens': result.usage.promptTokens,\n 'ai.usage.completionTokens':\n result.usage.completionTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [result.finishReason],\n 'gen_ai.response.id': responseData.id,\n 'gen_ai.response.model': responseData.modelId,\n 'gen_ai.usage.prompt_tokens': result.usage.promptTokens,\n 'gen_ai.usage.completion_tokens':\n result.usage.completionTokens,\n },\n }),\n );\n\n return { ...result, objectText: result.text, responseData };\n },\n }),\n );\n\n result = generateResult.objectText;\n finishReason = generateResult.finishReason;\n usage = generateResult.usage;\n warnings = generateResult.warnings;\n rawResponse = generateResult.rawResponse;\n logprobs = generateResult.logprobs;\n resultProviderMetadata = generateResult.providerMetadata;\n request = generateResult.request ?? {};\n response = generateResult.responseData;\n\n break;\n }\n\n case 'tool': {\n const standardizedPrompt = standardizePrompt({\n prompt: { system, prompt, messages },\n tools: undefined,\n });\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n modelSupportsImageUrls: model.supportsImageUrls,\n modelSupportsUrl: model.supportsUrl?.bind(model), // support 'this' context,\n });\n const inputFormat = standardizedPrompt.type;\n\n const generateResult = await retry(() =>\n recordSpan({\n name: 'ai.generateObject.doGenerate',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateObject.doGenerate',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.format': {\n input: () => inputFormat,\n },\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n 'ai.settings.mode': mode,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty': settings.frequencyPenalty,\n 'gen_ai.request.max_tokens': settings.maxTokens,\n 'gen_ai.request.presence_penalty': settings.presencePenalty,\n 'gen_ai.request.temperature': settings.temperature,\n 'gen_ai.request.top_k': settings.topK,\n 'gen_ai.request.top_p': settings.topP,\n },\n }),\n tracer,\n fn: async span => {\n const result = await model.doGenerate({\n mode: {\n type: 'object-tool',\n tool: {\n type: 'function',\n name: schemaName ?? 'json',\n description:\n schemaDescription ?? 'Respond with a JSON object.',\n parameters: outputStrategy.jsonSchema!,\n },\n },\n ...prepareCallSettings(settings),\n inputFormat,\n prompt: promptMessages,\n providerMetadata: providerOptions,\n abortSignal,\n headers,\n });\n\n const objectText = result.toolCalls?.[0]?.args;\n\n const responseData = {\n id: result.response?.id ?? generateId(),\n timestamp: result.response?.timestamp ?? currentDate(),\n modelId: result.response?.modelId ?? model.modelId,\n };\n\n if (objectText === undefined) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: the tool was not called.',\n response: responseData,\n usage: calculateLanguageModelUsage(result.usage),\n finishReason: result.finishReason,\n });\n }\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': result.finishReason,\n 'ai.response.object': { output: () => objectText },\n 'ai.response.id': responseData.id,\n 'ai.response.model': responseData.modelId,\n 'ai.response.timestamp':\n responseData.timestamp.toISOString(),\n 'ai.response.providerMetadata': JSON.stringify(\n result.providerMetadata,\n ),\n 'ai.usage.promptTokens': result.usage.promptTokens,\n 'ai.usage.completionTokens':\n result.usage.completionTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [result.finishReason],\n 'gen_ai.response.id': responseData.id,\n 'gen_ai.response.model': responseData.modelId,\n 'gen_ai.usage.input_tokens': result.usage.promptTokens,\n 'gen_ai.usage.output_tokens':\n result.usage.completionTokens,\n },\n }),\n );\n\n return { ...result, objectText, responseData };\n },\n }),\n );\n\n result = generateResult.objectText;\n finishReason = generateResult.finishReason;\n usage = generateResult.usage;\n warnings = generateResult.warnings;\n rawResponse = generateResult.rawResponse;\n logprobs = generateResult.logprobs;\n resultProviderMetadata = generateResult.providerMetadata;\n request = generateResult.request ?? {};\n response = generateResult.responseData;\n\n break;\n }\n\n case undefined: {\n throw new Error(\n 'Model does not have a default object generation mode.',\n );\n }\n\n default: {\n const _exhaustiveCheck: never = mode;\n throw new Error(`Unsupported mode: ${_exhaustiveCheck}`);\n }\n }\n\n function processResult(result: string): RESULT {\n const parseResult = safeParseJSON({ text: result });\n\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: could not parse the response.',\n cause: parseResult.error,\n text: result,\n response,\n usage: calculateLanguageModelUsage(usage),\n finishReason: finishReason,\n });\n }\n\n const validationResult = outputStrategy.validateFinalResult(\n parseResult.value,\n {\n text: result,\n response,\n usage: calculateLanguageModelUsage(usage),\n },\n );\n\n if (!validationResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: response did not match schema.',\n cause: validationResult.error,\n text: result,\n response,\n usage: calculateLanguageModelUsage(usage),\n finishReason: finishReason,\n });\n }\n\n return validationResult.value;\n }\n\n let object: RESULT;\n try {\n object = processResult(result);\n } catch (error) {\n if (\n repairText != null &&\n NoObjectGeneratedError.isInstance(error) &&\n (JSONParseError.isInstance(error.cause) ||\n TypeValidationError.isInstance(error.cause))\n ) {\n const repairedText = await repairText({\n text: result,\n error: error.cause,\n });\n\n if (repairedText === null) {\n throw error;\n }\n\n object = processResult(repairedText);\n } else {\n throw error;\n }\n }\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n\n 'ai.usage.promptTokens': usage.promptTokens,\n 'ai.usage.completionTokens': usage.completionTokens,\n },\n }),\n );\n\n return new DefaultGenerateObjectResult({\n object,\n finishReason,\n usage: calculateLanguageModelUsage(usage),\n warnings,\n request,\n response: {\n ...response,\n headers: rawResponse?.headers,\n body: rawResponse?.body,\n },\n logprobs,\n providerMetadata: resultProviderMetadata,\n });\n },\n });\n}\n\nclass DefaultGenerateObjectResult implements GenerateObjectResult {\n readonly object: GenerateObjectResult['object'];\n readonly finishReason: GenerateObjectResult['finishReason'];\n readonly usage: GenerateObjectResult['usage'];\n readonly warnings: GenerateObjectResult['warnings'];\n readonly logprobs: GenerateObjectResult['logprobs'];\n readonly experimental_providerMetadata: GenerateObjectResult['experimental_providerMetadata'];\n readonly providerMetadata: GenerateObjectResult['providerMetadata'];\n readonly response: GenerateObjectResult['response'];\n readonly request: GenerateObjectResult['request'];\n\n constructor(options: {\n object: GenerateObjectResult['object'];\n finishReason: GenerateObjectResult['finishReason'];\n usage: GenerateObjectResult['usage'];\n warnings: GenerateObjectResult['warnings'];\n logprobs: GenerateObjectResult['logprobs'];\n providerMetadata: GenerateObjectResult['providerMetadata'];\n response: GenerateObjectResult['response'];\n request: GenerateObjectResult['request'];\n }) {\n this.object = options.object;\n this.finishReason = options.finishReason;\n this.usage = options.usage;\n this.warnings = options.warnings;\n this.providerMetadata = options.providerMetadata;\n this.experimental_providerMetadata = options.providerMetadata;\n this.response = options.response;\n this.request = options.request;\n this.logprobs = options.logprobs;\n }\n\n toJsonResponse(init?: ResponseInit): Response {\n return new Response(JSON.stringify(this.object), {\n status: init?.status ?? 200,\n headers: prepareResponseHeaders(init?.headers, {\n contentType: 'application/json; charset=utf-8',\n }),\n });\n }\n}\n","import {\n JSONValue,\n LanguageModelV1CallOptions,\n LanguageModelV1FinishReason,\n LanguageModelV1StreamPart,\n} from '@ai-sdk/provider';\nimport { createIdGenerator } from '@ai-sdk/provider-utils';\nimport {\n DeepPartial,\n Schema,\n isDeepEqualData,\n parsePartialJson,\n} from '@ai-sdk/ui-utils';\nimport { ServerResponse } from 'http';\nimport { z } from 'zod';\nimport { NoObjectGeneratedError } from '../../errors/no-object-generated-error';\nimport { DelayedPromise } from '../../util/delayed-promise';\nimport { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareRetries } from '../prompt/prepare-retries';\nimport { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport {\n CallWarning,\n FinishReason,\n LanguageModel,\n LogProbs,\n} from '../types/language-model';\nimport { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';\nimport { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport { ProviderMetadata, ProviderOptions } from '../types/provider-metadata';\nimport {\n LanguageModelUsage,\n calculateLanguageModelUsage,\n} from '../types/usage';\nimport {\n AsyncIterableStream,\n createAsyncIterableStream,\n} from '../util/async-iterable-stream';\nimport { createStitchableStream } from '../util/create-stitchable-stream';\nimport { now as originalNow } from '../util/now';\nimport { prepareOutgoingHttpHeaders } from '../util/prepare-outgoing-http-headers';\nimport { prepareResponseHeaders } from '../util/prepare-response-headers';\nimport { writeToServerResponse } from '../util/write-to-server-response';\nimport { injectJsonInstruction } from './inject-json-instruction';\nimport { OutputStrategy, getOutputStrategy } from './output-strategy';\nimport { ObjectStreamPart, StreamObjectResult } from './stream-object-result';\nimport { validateObjectGenerationInput } from './validate-object-generation-input';\nimport { stringifyForTelemetry } from '../prompt/stringify-for-telemetry';\nimport { UnsupportedModelVersionError } from '../../errors/unsupported-model-version-error';\n\nconst originalGenerateId = createIdGenerator({ prefix: 'aiobj', size: 24 });\n\n/**\nCallback that is set using the `onError` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamObjectOnErrorCallback = (event: {\n error: unknown;\n}) => Promise | void;\n\n/**\nCallback that is set using the `onFinish` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamObjectOnFinishCallback = (event: {\n /**\nThe token usage of the generated response.\n*/\n usage: LanguageModelUsage;\n\n /**\nThe generated object. Can be undefined if the final object does not match the schema.\n*/\n object: RESULT | undefined;\n\n /**\nOptional error object. This is e.g. a TypeValidationError when the final object does not match the schema.\n*/\n error: unknown | undefined;\n\n /**\nResponse metadata.\n */\n response: LanguageModelResponseMetadata;\n\n /**\nWarnings from the model provider (e.g. unsupported settings).\n*/\n warnings?: CallWarning[];\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n*/\n providerMetadata: ProviderMetadata | undefined;\n\n /**\n@deprecated Use `providerMetadata` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n}) => Promise | void;\n\n/**\nGenerate a structured, typed object for a given prompt and schema using a language model.\n\nThis function streams the output. If you do not want to stream the output, use `generateObject` instead.\n\n@return\nA result object for accessing the partial object stream and additional information.\n */\nexport function streamObject(\n options: Omit &\n Prompt & {\n output?: 'object' | undefined;\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe schema of the object that the model should generate.\n */\n schema: z.Schema | Schema;\n\n /**\nOptional name of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n */\n schemaName?: string;\n\n /**\nOptional description of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n */\n schemaDescription?: string;\n\n /**\nThe mode to use for object generation.\n\nThe schema is converted into a JSON schema and used in one of the following ways\n\n- 'auto': The provider will choose the best mode for the model.\n- 'tool': A tool with the JSON schema as parameters is provided and the provider is instructed to use it.\n- 'json': The JSON schema and an instruction are injected into the prompt. If the provider supports JSON mode, it is enabled. If the provider supports JSON grammars, the grammar is used.\n\nPlease note that most providers do not support all modes.\n\nDefault and recommended: 'auto' (best mode for the model).\n */\n mode?: 'auto' | 'json' | 'tool';\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\nCallback that is invoked when an error occurs during streaming.\nYou can use it to log errors.\nThe stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamObjectOnErrorCallback;\n\n /**\nCallback that is called when the LLM response and the final object validation are finished.\n */\n onFinish?: StreamObjectOnFinishCallback;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n now?: () => number;\n };\n },\n): StreamObjectResult, OBJECT, never>;\n/**\nGenerate an array with structured, typed elements for a given prompt and element schema using a language model.\n\nThis function streams the output. If you do not want to stream the output, use `generateObject` instead.\n\n@return\nA result object for accessing the partial object stream and additional information.\n */\nexport function streamObject(\n options: Omit &\n Prompt & {\n output: 'array';\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe element schema of the array that the model should generate.\n */\n schema: z.Schema | Schema;\n\n /**\nOptional name of the array that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n */\n schemaName?: string;\n\n /**\nOptional description of the array that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n */\n schemaDescription?: string;\n\n /**\nThe mode to use for object generation.\n\nThe schema is converted into a JSON schema and used in one of the following ways\n\n- 'auto': The provider will choose the best mode for the model.\n- 'tool': A tool with the JSON schema as parameters is provided and the provider is instructed to use it.\n- 'json': The JSON schema and an instruction are injected into the prompt. If the provider supports JSON mode, it is enabled. If the provider supports JSON grammars, the grammar is used.\n\nPlease note that most providers do not support all modes.\n\nDefault and recommended: 'auto' (best mode for the model).\n */\n mode?: 'auto' | 'json' | 'tool';\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\nCallback that is invoked when an error occurs during streaming.\nYou can use it to log errors.\nThe stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamObjectOnErrorCallback;\n\n /**\nCallback that is called when the LLM response and the final object validation are finished.\n */\n onFinish?: StreamObjectOnFinishCallback>;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n now?: () => number;\n };\n },\n): StreamObjectResult<\n Array,\n Array,\n AsyncIterableStream\n>;\n/**\nGenerate JSON with any schema for a given prompt using a language model.\n\nThis function streams the output. If you do not want to stream the output, use `generateObject` instead.\n\n@return\nA result object for accessing the partial object stream and additional information.\n */\nexport function streamObject(\n options: Omit &\n Prompt & {\n output: 'no-schema';\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe mode to use for object generation. Must be \"json\" for no-schema output.\n */\n mode?: 'json';\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n*/\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\nCallback that is invoked when an error occurs during streaming.\nYou can use it to log errors.\nThe stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamObjectOnErrorCallback;\n\n /**\nCallback that is called when the LLM response and the final object validation are finished.\n */\n onFinish?: StreamObjectOnFinishCallback;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n now?: () => number;\n };\n },\n): StreamObjectResult;\nexport function streamObject({\n model,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n mode,\n output = 'object',\n system,\n prompt,\n messages,\n maxRetries,\n abortSignal,\n headers,\n experimental_telemetry: telemetry,\n experimental_providerMetadata,\n providerOptions = experimental_providerMetadata,\n onError,\n onFinish,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n now = originalNow,\n } = {},\n ...settings\n}: Omit &\n Prompt & {\n /**\n * The expected structure of the output.\n *\n * - 'object': Generate a single object that conforms to the schema.\n * - 'array': Generate an array of objects that conform to the schema.\n * - 'no-schema': Generate any JSON object. No schema is specified.\n *\n * Default is 'object' if not specified.\n */\n output?: 'object' | 'array' | 'no-schema';\n\n model: LanguageModel;\n schema?: z.Schema | Schema;\n schemaName?: string;\n schemaDescription?: string;\n mode?: 'auto' | 'json' | 'tool';\n experimental_telemetry?: TelemetrySettings;\n providerOptions?: ProviderOptions;\n experimental_providerMetadata?: ProviderMetadata;\n onError?: StreamObjectOnErrorCallback;\n onFinish?: StreamObjectOnFinishCallback;\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n now?: () => number;\n };\n }): StreamObjectResult {\n if (typeof model === 'string' || model.specificationVersion !== 'v1') {\n throw new UnsupportedModelVersionError();\n }\n\n validateObjectGenerationInput({\n output,\n mode,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n });\n\n const outputStrategy = getOutputStrategy({ output, schema: inputSchema });\n\n // automatically set mode to 'json' for no-schema output\n if (outputStrategy.type === 'no-schema' && mode === undefined) {\n mode = 'json';\n }\n\n return new DefaultStreamObjectResult({\n model,\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n schemaName,\n schemaDescription,\n providerOptions,\n mode,\n onError,\n onFinish,\n generateId,\n currentDate,\n now,\n });\n}\n\nclass DefaultStreamObjectResult\n implements StreamObjectResult\n{\n private readonly objectPromise = new DelayedPromise();\n private readonly usagePromise = new DelayedPromise();\n private readonly providerMetadataPromise = new DelayedPromise<\n ProviderMetadata | undefined\n >();\n private readonly warningsPromise = new DelayedPromise<\n CallWarning[] | undefined\n >();\n private readonly requestPromise =\n new DelayedPromise();\n private readonly responsePromise =\n new DelayedPromise();\n\n private readonly baseStream: ReadableStream>;\n\n private readonly outputStrategy: OutputStrategy<\n PARTIAL,\n RESULT,\n ELEMENT_STREAM\n >;\n\n constructor({\n model,\n headers,\n telemetry,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n schemaName,\n schemaDescription,\n providerOptions,\n mode,\n onError,\n onFinish,\n generateId,\n currentDate,\n now,\n }: {\n model: LanguageModel;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n settings: Omit;\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n outputStrategy: OutputStrategy;\n system: Prompt['system'];\n prompt: Prompt['prompt'];\n messages: Prompt['messages'];\n schemaName: string | undefined;\n schemaDescription: string | undefined;\n providerOptions: ProviderOptions | undefined;\n mode: 'auto' | 'json' | 'tool' | undefined;\n onError: StreamObjectOnErrorCallback | undefined;\n onFinish: StreamObjectOnFinishCallback | undefined;\n generateId: () => string;\n currentDate: () => Date;\n now: () => number;\n }) {\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n });\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...settings, maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n const self = this;\n\n const stitchableStream =\n createStitchableStream>();\n\n const eventProcessor = new TransformStream<\n ObjectStreamPart,\n ObjectStreamPart\n >({\n transform(chunk, controller) {\n controller.enqueue(chunk);\n\n if (chunk.type === 'error') {\n onError?.({ error: chunk.error });\n }\n },\n });\n\n this.baseStream = stitchableStream.stream.pipeThrough(eventProcessor);\n\n recordSpan({\n name: 'ai.streamObject',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamObject',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.schema':\n outputStrategy.jsonSchema != null\n ? { input: () => JSON.stringify(outputStrategy.jsonSchema) }\n : undefined,\n 'ai.schema.name': schemaName,\n 'ai.schema.description': schemaDescription,\n 'ai.settings.output': outputStrategy.type,\n 'ai.settings.mode': mode,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async rootSpan => {\n // use the default provider mode when the mode is set to 'auto' or unspecified\n if (mode === 'auto' || mode == null) {\n mode = model.defaultObjectGenerationMode;\n }\n\n let callOptions: LanguageModelV1CallOptions;\n let transformer: Transformer<\n LanguageModelV1StreamPart,\n string | Omit\n >;\n\n switch (mode) {\n case 'json': {\n const standardizedPrompt = standardizePrompt({\n prompt: {\n system:\n outputStrategy.jsonSchema == null\n ? injectJsonInstruction({ prompt: system })\n : model.supportsStructuredOutputs\n ? system\n : injectJsonInstruction({\n prompt: system,\n schema: outputStrategy.jsonSchema,\n }),\n prompt,\n messages,\n },\n tools: undefined,\n });\n\n callOptions = {\n mode: {\n type: 'object-json',\n schema: outputStrategy.jsonSchema,\n name: schemaName,\n description: schemaDescription,\n },\n ...prepareCallSettings(settings),\n inputFormat: standardizedPrompt.type,\n prompt: await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n modelSupportsImageUrls: model.supportsImageUrls,\n modelSupportsUrl: model.supportsUrl?.bind(model), // support 'this' context\n }),\n providerMetadata: providerOptions,\n abortSignal,\n headers,\n };\n\n transformer = {\n transform: (chunk, controller) => {\n switch (chunk.type) {\n case 'text-delta':\n controller.enqueue(chunk.textDelta);\n break;\n case 'response-metadata':\n case 'finish':\n case 'error':\n controller.enqueue(chunk);\n break;\n }\n },\n };\n\n break;\n }\n\n case 'tool': {\n const standardizedPrompt = standardizePrompt({\n prompt: { system, prompt, messages },\n tools: undefined,\n });\n\n callOptions = {\n mode: {\n type: 'object-tool',\n tool: {\n type: 'function',\n name: schemaName ?? 'json',\n description:\n schemaDescription ?? 'Respond with a JSON object.',\n parameters: outputStrategy.jsonSchema!,\n },\n },\n ...prepareCallSettings(settings),\n inputFormat: standardizedPrompt.type,\n prompt: await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n modelSupportsImageUrls: model.supportsImageUrls,\n modelSupportsUrl: model.supportsUrl?.bind(model), // support 'this' context,\n }),\n providerMetadata: providerOptions,\n abortSignal,\n headers,\n };\n\n transformer = {\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'tool-call-delta':\n controller.enqueue(chunk.argsTextDelta);\n break;\n case 'response-metadata':\n case 'finish':\n case 'error':\n controller.enqueue(chunk);\n break;\n }\n },\n };\n\n break;\n }\n\n case undefined: {\n throw new Error(\n 'Model does not have a default object generation mode.',\n );\n }\n\n default: {\n const _exhaustiveCheck: never = mode;\n throw new Error(`Unsupported mode: ${_exhaustiveCheck}`);\n }\n }\n\n const {\n result: { stream, warnings, rawResponse, request },\n doStreamSpan,\n startTimestampMs,\n } = await retry(() =>\n recordSpan({\n name: 'ai.streamObject.doStream',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamObject.doStream',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.format': {\n input: () => callOptions.inputFormat,\n },\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(callOptions.prompt),\n },\n 'ai.settings.mode': mode,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty': settings.frequencyPenalty,\n 'gen_ai.request.max_tokens': settings.maxTokens,\n 'gen_ai.request.presence_penalty': settings.presencePenalty,\n 'gen_ai.request.temperature': settings.temperature,\n 'gen_ai.request.top_k': settings.topK,\n 'gen_ai.request.top_p': settings.topP,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async doStreamSpan => ({\n startTimestampMs: now(),\n doStreamSpan,\n result: await model.doStream(callOptions),\n }),\n }),\n );\n\n self.requestPromise.resolve(request ?? {});\n\n // store information for onFinish callback:\n let usage: LanguageModelUsage | undefined;\n let finishReason: LanguageModelV1FinishReason | undefined;\n let providerMetadata: ProviderMetadata | undefined;\n let object: RESULT | undefined;\n let error: unknown | undefined;\n\n // pipe chunks through a transformation stream that extracts metadata:\n let accumulatedText = '';\n let textDelta = '';\n let response: {\n id: string;\n timestamp: Date;\n modelId: string;\n } = {\n id: generateId(),\n timestamp: currentDate(),\n modelId: model.modelId,\n };\n\n // Keep track of raw parse result before type validation, since e.g. Zod might\n // change the object by mapping properties.\n let latestObjectJson: JSONValue | undefined = undefined;\n let latestObject: PARTIAL | undefined = undefined;\n let isFirstChunk = true;\n let isFirstDelta = true;\n\n const transformedStream = stream\n .pipeThrough(new TransformStream(transformer))\n .pipeThrough(\n new TransformStream<\n string | ObjectStreamInputPart,\n ObjectStreamPart\n >({\n async transform(chunk, controller): Promise {\n // Telemetry event for first chunk:\n if (isFirstChunk) {\n const msToFirstChunk = now() - startTimestampMs;\n\n isFirstChunk = false;\n\n doStreamSpan.addEvent('ai.stream.firstChunk', {\n 'ai.stream.msToFirstChunk': msToFirstChunk,\n });\n\n doStreamSpan.setAttributes({\n 'ai.stream.msToFirstChunk': msToFirstChunk,\n });\n }\n\n // process partial text chunks\n if (typeof chunk === 'string') {\n accumulatedText += chunk;\n textDelta += chunk;\n\n const { value: currentObjectJson, state: parseState } =\n parsePartialJson(accumulatedText);\n\n if (\n currentObjectJson !== undefined &&\n !isDeepEqualData(latestObjectJson, currentObjectJson)\n ) {\n const validationResult =\n outputStrategy.validatePartialResult({\n value: currentObjectJson,\n textDelta,\n latestObject,\n isFirstDelta,\n isFinalDelta: parseState === 'successful-parse',\n });\n\n if (\n validationResult.success &&\n !isDeepEqualData(\n latestObject,\n validationResult.value.partial,\n )\n ) {\n // inside inner check to correctly parse the final element in array mode:\n latestObjectJson = currentObjectJson;\n latestObject = validationResult.value.partial;\n\n controller.enqueue({\n type: 'object',\n object: latestObject,\n });\n\n controller.enqueue({\n type: 'text-delta',\n textDelta: validationResult.value.textDelta,\n });\n\n textDelta = '';\n isFirstDelta = false;\n }\n }\n\n return;\n }\n\n switch (chunk.type) {\n case 'response-metadata': {\n response = {\n id: chunk.id ?? response.id,\n timestamp: chunk.timestamp ?? response.timestamp,\n modelId: chunk.modelId ?? response.modelId,\n };\n break;\n }\n\n case 'finish': {\n // send final text delta:\n if (textDelta !== '') {\n controller.enqueue({ type: 'text-delta', textDelta });\n }\n\n // store finish reason for telemetry:\n finishReason = chunk.finishReason;\n\n // store usage and metadata for promises and onFinish callback:\n usage = calculateLanguageModelUsage(chunk.usage);\n providerMetadata = chunk.providerMetadata;\n\n controller.enqueue({ ...chunk, usage, response });\n\n // resolve promises that can be resolved now:\n self.usagePromise.resolve(usage);\n self.providerMetadataPromise.resolve(providerMetadata);\n self.responsePromise.resolve({\n ...response,\n headers: rawResponse?.headers,\n });\n\n // resolve the object promise with the latest object:\n const validationResult = outputStrategy.validateFinalResult(\n latestObjectJson,\n {\n text: accumulatedText,\n response,\n usage,\n },\n );\n\n if (validationResult.success) {\n object = validationResult.value;\n self.objectPromise.resolve(object);\n } else {\n error = new NoObjectGeneratedError({\n message:\n 'No object generated: response did not match schema.',\n cause: validationResult.error,\n text: accumulatedText,\n response,\n usage,\n finishReason: finishReason,\n });\n self.objectPromise.reject(error);\n }\n\n break;\n }\n\n default: {\n controller.enqueue(chunk);\n break;\n }\n }\n },\n\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n try {\n const finalUsage = usage ?? {\n promptTokens: NaN,\n completionTokens: NaN,\n totalTokens: NaN,\n };\n\n doStreamSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.id': response.id,\n 'ai.response.model': response.modelId,\n 'ai.response.timestamp':\n response.timestamp.toISOString(),\n 'ai.response.providerMetadata':\n JSON.stringify(providerMetadata),\n\n 'ai.usage.promptTokens': finalUsage.promptTokens,\n 'ai.usage.completionTokens':\n finalUsage.completionTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [finishReason],\n 'gen_ai.response.id': response.id,\n 'gen_ai.response.model': response.modelId,\n 'gen_ai.usage.input_tokens': finalUsage.promptTokens,\n 'gen_ai.usage.output_tokens':\n finalUsage.completionTokens,\n },\n }),\n );\n\n // finish doStreamSpan before other operations for correct timing:\n doStreamSpan.end();\n\n // Add response information to the root span:\n rootSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.usage.promptTokens': finalUsage.promptTokens,\n 'ai.usage.completionTokens':\n finalUsage.completionTokens,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.providerMetadata':\n JSON.stringify(providerMetadata),\n },\n }),\n );\n\n // call onFinish callback:\n await onFinish?.({\n usage: finalUsage,\n object,\n error,\n response: {\n ...response,\n headers: rawResponse?.headers,\n },\n warnings,\n providerMetadata,\n experimental_providerMetadata: providerMetadata,\n });\n } catch (error) {\n controller.enqueue({ type: 'error', error });\n } finally {\n rootSpan.end();\n }\n },\n }),\n );\n\n stitchableStream.addStream(transformedStream);\n },\n })\n .catch(error => {\n // add an empty stream with an error to break the stream:\n stitchableStream.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'error', error });\n controller.close();\n },\n }),\n );\n })\n .finally(() => {\n stitchableStream.close();\n });\n\n this.outputStrategy = outputStrategy;\n }\n\n get object() {\n return this.objectPromise.value;\n }\n\n get usage() {\n return this.usagePromise.value;\n }\n\n get experimental_providerMetadata() {\n return this.providerMetadataPromise.value;\n }\n\n get providerMetadata() {\n return this.providerMetadataPromise.value;\n }\n\n get warnings() {\n return this.warningsPromise.value;\n }\n\n get request() {\n return this.requestPromise.value;\n }\n\n get response() {\n return this.responsePromise.value;\n }\n\n get partialObjectStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream, PARTIAL>({\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'object':\n controller.enqueue(chunk.object);\n break;\n\n case 'text-delta':\n case 'finish':\n case 'error': // suppress error (use onError instead)\n break;\n\n default: {\n const _exhaustiveCheck: never = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n },\n }),\n ),\n );\n }\n\n get elementStream(): ELEMENT_STREAM {\n return this.outputStrategy.createElementStream(this.baseStream);\n }\n\n get textStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream, string>({\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'text-delta':\n controller.enqueue(chunk.textDelta);\n break;\n\n case 'object':\n case 'finish':\n case 'error': // suppress error (use onError instead)\n break;\n\n default: {\n const _exhaustiveCheck: never = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n },\n }),\n ),\n );\n }\n\n get fullStream(): AsyncIterableStream> {\n return createAsyncIterableStream(this.baseStream);\n }\n\n pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit) {\n writeToServerResponse({\n response,\n status: init?.status,\n statusText: init?.statusText,\n headers: prepareOutgoingHttpHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n }),\n stream: this.textStream.pipeThrough(new TextEncoderStream()),\n });\n }\n\n toTextStreamResponse(init?: ResponseInit): Response {\n return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {\n status: init?.status ?? 200,\n headers: prepareResponseHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n }),\n });\n }\n}\n\nexport type ObjectStreamInputPart =\n | {\n type: 'error';\n error: unknown;\n }\n | {\n type: 'response-metadata';\n id?: string;\n timestamp?: Date;\n modelId?: string;\n }\n | {\n type: 'finish';\n finishReason: FinishReason;\n logprobs?: LogProbs;\n usage: LanguageModelUsage;\n providerMetadata?: ProviderMetadata;\n };\n","import { createIdGenerator, IDGenerator } from '@ai-sdk/provider-utils';\nimport { Tracer } from '@opentelemetry/api';\nimport { InvalidArgumentError } from '../../errors/invalid-argument-error';\nimport { NoOutputSpecifiedError } from '../../errors/no-output-specified-error';\nimport { ToolExecutionError } from '../../errors/tool-execution-error';\nimport { UnsupportedModelVersionError } from '../../errors/unsupported-model-version-error';\nimport { CoreAssistantMessage, CoreMessage } from '../prompt';\nimport { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareRetries } from '../prompt/prepare-retries';\nimport { prepareToolsAndToolChoice } from '../prompt/prepare-tools-and-tool-choice';\nimport { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { stringifyForTelemetry } from '../prompt/stringify-for-telemetry';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordErrorOnSpan, recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport { LanguageModel, ToolChoice } from '../types';\nimport { ProviderMetadata, ProviderOptions } from '../types/provider-metadata';\nimport {\n addLanguageModelUsage,\n calculateLanguageModelUsage,\n LanguageModelUsage,\n} from '../types/usage';\nimport { removeTextAfterLastWhitespace } from '../util/remove-text-after-last-whitespace';\nimport { GenerateTextResult } from './generate-text-result';\nimport { DefaultGeneratedFile, GeneratedFile } from './generated-file';\nimport { Output } from './output';\nimport { parseToolCall } from './parse-tool-call';\nimport { asReasoningText, ReasoningDetail } from './reasoning-detail';\nimport { ResponseMessage, StepResult } from './step-result';\nimport { toResponseMessages } from './to-response-messages';\nimport { ToolCallArray } from './tool-call';\nimport { ToolCallRepairFunction } from './tool-call-repair';\nimport { ToolResultArray } from './tool-result';\nimport { ToolSet } from './tool-set';\n\nconst originalGenerateId = createIdGenerator({\n prefix: 'aitxt',\n size: 24,\n});\n\nconst originalGenerateMessageId = createIdGenerator({\n prefix: 'msg',\n size: 24,\n});\n\n/**\nCallback that is set using the `onStepFinish` option.\n\n@param stepResult - The result of the step.\n */\nexport type GenerateTextOnStepFinishCallback = (\n stepResult: StepResult,\n) => Promise | void;\n\n/**\nGenerate a text and call tools for a given prompt using a language model.\n\nThis function does not stream the output. If you want to stream the output, use `streamText` instead.\n\n@param model - The language model to use.\n\n@param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n@param toolChoice - The tool choice strategy. Default: 'auto'.\n\n@param system - A system message that will be part of the prompt.\n@param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n@param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n\n@param maxTokens - Maximum number of tokens to generate.\n@param temperature - Temperature setting.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topP - Nucleus sampling.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topK - Only sample from the top K options for each subsequent token.\nUsed to remove \"long tail\" low probability responses.\nRecommended for advanced use cases only. You usually only need to use temperature.\n@param presencePenalty - Presence penalty setting.\nIt affects the likelihood of the model to repeat information that is already in the prompt.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param frequencyPenalty - Frequency penalty setting.\nIt affects the likelihood of the model to repeatedly use the same words or phrases.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param stopSequences - Stop sequences.\nIf set, the model will stop generating text when one of the stop sequences is generated.\n@param seed - The seed (integer) to use for random sampling.\nIf set and supported by the model, calls will generate deterministic results.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.\n@param experimental_generateMessageId - Generate a unique ID for each message.\n\n@param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.\n\n@returns\nA result object that contains the generated text, the results of the tool calls, and additional information.\n */\nexport async function generateText<\n TOOLS extends ToolSet,\n OUTPUT = never,\n OUTPUT_PARTIAL = never,\n>({\n model,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n maxSteps = 1,\n experimental_generateMessageId: generateMessageId = originalGenerateMessageId,\n experimental_output: output,\n experimental_continueSteps: continueSteps = false,\n experimental_telemetry: telemetry,\n experimental_providerMetadata,\n providerOptions = experimental_providerMetadata,\n experimental_activeTools: activeTools,\n experimental_prepareStep: prepareStep,\n experimental_repairToolCall: repairToolCall,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n } = {},\n onStepFinish,\n ...settings\n}: CallSettings &\n Prompt & {\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe tools that the model can call. The model needs to support calling tools.\n*/\n tools?: TOOLS;\n\n /**\nThe tool choice strategy. Default: 'auto'.\n */\n toolChoice?: ToolChoice;\n\n /**\nMaximum number of sequential LLM calls (steps), e.g. when you use tool calls. Must be at least 1.\n\nA maximum number is required to prevent infinite loops in the case of misconfigured tools.\n\nBy default, it's set to 1, which means that only a single LLM call is made.\n */\n maxSteps?: number;\n\n /**\nGenerate a unique ID for each message.\n */\n experimental_generateMessageId?: IDGenerator;\n\n /**\nWhen enabled, the model will perform additional steps if the finish reason is \"length\" (experimental).\n\nBy default, it's set to false.\n */\n experimental_continueSteps?: boolean;\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\nLimits the tools that are available for the model to call without\nchanging the tool call and result types in the result.\n */\n experimental_activeTools?: Array;\n\n /**\nOptional specification for parsing structured outputs from the LLM response.\n */\n experimental_output?: Output;\n\n /**\nOptional function that you can use to provide different settings for a step.\n\n@param options - The options for the step.\n@param options.steps - The steps that have been executed so far.\n@param options.stepNumber - The number of the step that is being executed.\n@param options.maxSteps - The maximum number of steps.\n@param options.model - The model that is being used.\n\n@returns An object that contains the settings for the step.\nIf you return undefined (or for undefined settings), the settings from the outer level will be used.\n */\n experimental_prepareStep?: (options: {\n steps: Array>;\n stepNumber: number;\n maxSteps: number;\n model: LanguageModel;\n }) => PromiseLike<\n | {\n model?: LanguageModel;\n toolChoice?: ToolChoice;\n experimental_activeTools?: Array;\n }\n | undefined\n >;\n\n /**\nA function that attempts to repair a tool call that failed to parse.\n */\n experimental_repairToolCall?: ToolCallRepairFunction;\n\n /**\n Callback that is called when each step (LLM call) is finished, including intermediate steps.\n */\n onStepFinish?: GenerateTextOnStepFinishCallback;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: IDGenerator;\n currentDate?: () => Date;\n };\n }): Promise> {\n if (typeof model === 'string' || model.specificationVersion !== 'v1') {\n throw new UnsupportedModelVersionError();\n }\n\n if (maxSteps < 1) {\n throw new InvalidArgumentError({\n parameter: 'maxSteps',\n value: maxSteps,\n message: 'maxSteps must be at least 1',\n });\n }\n\n const { maxRetries, retry } = prepareRetries({ maxRetries: maxRetriesArg });\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...settings, maxRetries },\n });\n\n const initialPrompt = standardizePrompt({\n prompt: {\n system: output?.injectIntoSystemPrompt({ system, model }) ?? system,\n prompt,\n messages,\n },\n tools,\n });\n\n const tracer = getTracer(telemetry);\n\n return recordSpan({\n name: 'ai.generateText',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateText',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': model.provider,\n 'ai.model.id': model.modelId,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.settings.maxSteps': maxSteps,\n },\n }),\n tracer,\n fn: async span => {\n const callSettings = prepareCallSettings(settings);\n\n let currentModelResponse: Awaited<\n ReturnType\n > & { response: { id: string; timestamp: Date; modelId: string } };\n let currentToolCalls: ToolCallArray = [];\n let currentToolResults: ToolResultArray = [];\n let currentReasoningDetails: Array = [];\n let stepCount = 0;\n const responseMessages: Array = [];\n let text = '';\n const sources: GenerateTextResult['sources'] = [];\n const steps: GenerateTextResult['steps'] = [];\n let usage: LanguageModelUsage = {\n completionTokens: 0,\n promptTokens: 0,\n totalTokens: 0,\n };\n\n let stepType: 'initial' | 'tool-result' | 'continue' | 'done' = 'initial';\n\n do {\n // after the 1st step, we need to switch to messages format:\n const promptFormat = stepCount === 0 ? initialPrompt.type : 'messages';\n\n const stepInputMessages = [\n ...initialPrompt.messages,\n ...responseMessages,\n ];\n\n const prepareStepResult = await prepareStep?.({\n model,\n steps,\n maxSteps,\n stepNumber: stepCount,\n });\n\n const stepToolChoice = prepareStepResult?.toolChoice ?? toolChoice;\n const stepActiveTools =\n prepareStepResult?.experimental_activeTools ?? activeTools;\n const stepModel = prepareStepResult?.model ?? model;\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n type: promptFormat,\n system: initialPrompt.system,\n messages: stepInputMessages,\n },\n modelSupportsImageUrls: stepModel.supportsImageUrls,\n modelSupportsUrl: stepModel.supportsUrl?.bind(stepModel), // support 'this' context\n });\n\n const mode = {\n type: 'regular' as const,\n ...prepareToolsAndToolChoice({\n tools,\n toolChoice: stepToolChoice,\n activeTools: stepActiveTools,\n }),\n };\n\n currentModelResponse = await retry(() =>\n recordSpan({\n name: 'ai.generateText.doGenerate',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateText.doGenerate',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': stepModel.provider,\n 'ai.model.id': stepModel.modelId,\n // prompt:\n 'ai.prompt.format': { input: () => promptFormat },\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n 'ai.prompt.tools': {\n // convert the language model level tools:\n input: () => mode.tools?.map(tool => JSON.stringify(tool)),\n },\n 'ai.prompt.toolChoice': {\n input: () =>\n mode.toolChoice != null\n ? JSON.stringify(mode.toolChoice)\n : undefined,\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': stepModel.provider,\n 'gen_ai.request.model': stepModel.modelId,\n 'gen_ai.request.frequency_penalty': settings.frequencyPenalty,\n 'gen_ai.request.max_tokens': settings.maxTokens,\n 'gen_ai.request.presence_penalty': settings.presencePenalty,\n 'gen_ai.request.stop_sequences': settings.stopSequences,\n 'gen_ai.request.temperature': settings.temperature,\n 'gen_ai.request.top_k': settings.topK,\n 'gen_ai.request.top_p': settings.topP,\n },\n }),\n tracer,\n fn: async span => {\n const result = await stepModel.doGenerate({\n mode,\n ...callSettings,\n inputFormat: promptFormat,\n responseFormat: output?.responseFormat({ model }),\n prompt: promptMessages,\n providerMetadata: providerOptions,\n abortSignal,\n headers,\n });\n\n // Fill in default values:\n const responseData = {\n id: result.response?.id ?? generateId(),\n timestamp: result.response?.timestamp ?? currentDate(),\n modelId: result.response?.modelId ?? stepModel.modelId,\n };\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': result.finishReason,\n 'ai.response.text': {\n output: () => result.text,\n },\n 'ai.response.toolCalls': {\n output: () => JSON.stringify(result.toolCalls),\n },\n 'ai.response.id': responseData.id,\n 'ai.response.model': responseData.modelId,\n 'ai.response.timestamp':\n responseData.timestamp.toISOString(),\n 'ai.response.providerMetadata': JSON.stringify(\n result.providerMetadata,\n ),\n\n 'ai.usage.promptTokens': result.usage.promptTokens,\n 'ai.usage.completionTokens': result.usage.completionTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [result.finishReason],\n 'gen_ai.response.id': responseData.id,\n 'gen_ai.response.model': responseData.modelId,\n 'gen_ai.usage.input_tokens': result.usage.promptTokens,\n 'gen_ai.usage.output_tokens': result.usage.completionTokens,\n },\n }),\n );\n\n return { ...result, response: responseData };\n },\n }),\n );\n\n // parse tool calls:\n currentToolCalls = await Promise.all(\n (currentModelResponse.toolCalls ?? []).map(toolCall =>\n parseToolCall({\n toolCall,\n tools,\n repairToolCall,\n system,\n messages: stepInputMessages,\n }),\n ),\n );\n\n // execute tools:\n currentToolResults =\n tools == null\n ? []\n : await executeTools({\n toolCalls: currentToolCalls,\n tools,\n tracer,\n telemetry,\n messages: stepInputMessages,\n abortSignal,\n });\n\n // token usage:\n const currentUsage = calculateLanguageModelUsage(\n currentModelResponse.usage,\n );\n usage = addLanguageModelUsage(usage, currentUsage);\n\n // check if another step is needed:\n let nextStepType: 'done' | 'continue' | 'tool-result' = 'done';\n if (++stepCount < maxSteps) {\n if (\n continueSteps &&\n currentModelResponse.finishReason === 'length' &&\n // only use continue when there are no tool calls:\n currentToolCalls.length === 0\n ) {\n nextStepType = 'continue';\n } else if (\n // there are tool calls:\n currentToolCalls.length > 0 &&\n // all current tool calls have results:\n currentToolResults.length === currentToolCalls.length\n ) {\n nextStepType = 'tool-result';\n }\n }\n\n // text:\n const originalText = currentModelResponse.text ?? '';\n const stepTextLeadingWhitespaceTrimmed =\n stepType === 'continue' && // only for continue steps\n text.trimEnd() !== text // only trim when there is preceding whitespace\n ? originalText.trimStart()\n : originalText;\n const stepText =\n nextStepType === 'continue'\n ? removeTextAfterLastWhitespace(stepTextLeadingWhitespaceTrimmed)\n : stepTextLeadingWhitespaceTrimmed;\n\n text =\n nextStepType === 'continue' || stepType === 'continue'\n ? text + stepText\n : stepText;\n\n currentReasoningDetails = asReasoningDetails(\n currentModelResponse.reasoning,\n );\n\n // sources:\n sources.push(...(currentModelResponse.sources ?? []));\n\n // append to messages for potential next step:\n if (stepType === 'continue') {\n // continue step: update the last assistant message\n // continue is only possible when there are no tool calls,\n // so we can assume that there is a single last assistant message:\n const lastMessage = responseMessages[\n responseMessages.length - 1\n ] as CoreAssistantMessage;\n\n if (typeof lastMessage.content === 'string') {\n lastMessage.content += stepText;\n } else {\n lastMessage.content.push({\n text: stepText,\n type: 'text',\n });\n }\n } else {\n responseMessages.push(\n ...toResponseMessages({\n text,\n files: asFiles(currentModelResponse.files),\n reasoning: asReasoningDetails(currentModelResponse.reasoning),\n tools: tools ?? ({} as TOOLS),\n toolCalls: currentToolCalls,\n toolResults: currentToolResults,\n messageId: generateMessageId(),\n generateMessageId,\n }),\n );\n }\n\n // Add step information (after response messages are updated):\n const currentStepResult: StepResult = {\n stepType,\n text: stepText,\n // TODO v5: rename reasoning to reasoningText (and use reasoning for composite array)\n reasoning: asReasoningText(currentReasoningDetails),\n reasoningDetails: currentReasoningDetails,\n files: asFiles(currentModelResponse.files),\n sources: currentModelResponse.sources ?? [],\n toolCalls: currentToolCalls,\n toolResults: currentToolResults,\n finishReason: currentModelResponse.finishReason,\n usage: currentUsage,\n warnings: currentModelResponse.warnings,\n logprobs: currentModelResponse.logprobs,\n request: currentModelResponse.request ?? {},\n response: {\n ...currentModelResponse.response,\n headers: currentModelResponse.rawResponse?.headers,\n body: currentModelResponse.rawResponse?.body,\n\n // deep clone msgs to avoid mutating past messages in multi-step:\n messages: structuredClone(responseMessages),\n },\n providerMetadata: currentModelResponse.providerMetadata,\n experimental_providerMetadata: currentModelResponse.providerMetadata,\n isContinued: nextStepType === 'continue',\n };\n steps.push(currentStepResult);\n await onStepFinish?.(currentStepResult);\n\n stepType = nextStepType;\n } while (stepType !== 'done');\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': currentModelResponse.finishReason,\n 'ai.response.text': {\n output: () => currentModelResponse.text,\n },\n 'ai.response.toolCalls': {\n output: () => JSON.stringify(currentModelResponse.toolCalls),\n },\n\n 'ai.usage.promptTokens': currentModelResponse.usage.promptTokens,\n 'ai.usage.completionTokens':\n currentModelResponse.usage.completionTokens,\n 'ai.response.providerMetadata': JSON.stringify(\n currentModelResponse.providerMetadata,\n ),\n },\n }),\n );\n\n return new DefaultGenerateTextResult({\n text,\n files: asFiles(currentModelResponse.files),\n reasoning: asReasoningText(currentReasoningDetails),\n reasoningDetails: currentReasoningDetails,\n sources,\n outputResolver: () => {\n if (output == null) {\n throw new NoOutputSpecifiedError();\n }\n\n return output.parseOutput(\n { text },\n {\n response: currentModelResponse.response,\n usage,\n finishReason: currentModelResponse.finishReason,\n },\n );\n },\n toolCalls: currentToolCalls,\n toolResults: currentToolResults,\n finishReason: currentModelResponse.finishReason,\n usage,\n warnings: currentModelResponse.warnings,\n request: currentModelResponse.request ?? {},\n response: {\n ...currentModelResponse.response,\n headers: currentModelResponse.rawResponse?.headers,\n body: currentModelResponse.rawResponse?.body,\n messages: responseMessages,\n },\n logprobs: currentModelResponse.logprobs,\n steps,\n providerMetadata: currentModelResponse.providerMetadata,\n });\n },\n });\n}\n\nasync function executeTools({\n toolCalls,\n tools,\n tracer,\n telemetry,\n messages,\n abortSignal,\n}: {\n toolCalls: ToolCallArray;\n tools: TOOLS;\n tracer: Tracer;\n telemetry: TelemetrySettings | undefined;\n messages: CoreMessage[];\n abortSignal: AbortSignal | undefined;\n}): Promise> {\n const toolResults = await Promise.all(\n toolCalls.map(async ({ toolCallId, toolName, args }) => {\n const tool = tools[toolName];\n\n if (tool?.execute == null) {\n return undefined;\n }\n\n const result = await recordSpan({\n name: 'ai.toolCall',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.toolCall',\n telemetry,\n }),\n 'ai.toolCall.name': toolName,\n 'ai.toolCall.id': toolCallId,\n 'ai.toolCall.args': {\n output: () => JSON.stringify(args),\n },\n },\n }),\n tracer,\n fn: async span => {\n try {\n const result = await tool.execute!(args, {\n toolCallId,\n messages,\n abortSignal,\n });\n\n try {\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.toolCall.result': {\n output: () => JSON.stringify(result),\n },\n },\n }),\n );\n } catch (ignored) {\n // JSON stringify might fail if the result is not serializable,\n // in which case we just ignore it. In the future we might want to\n // add an optional serialize method to the tool interface and warn\n // if the result is not serializable.\n }\n\n return result;\n } catch (error) {\n recordErrorOnSpan(span, error);\n throw new ToolExecutionError({\n toolCallId,\n toolName,\n toolArgs: args,\n cause: error,\n });\n }\n },\n });\n\n return {\n type: 'tool-result',\n toolCallId,\n toolName,\n args,\n result,\n } as ToolResultArray[number];\n }),\n );\n\n return toolResults.filter(\n (result): result is NonNullable => result != null,\n );\n}\n\nclass DefaultGenerateTextResult\n implements GenerateTextResult\n{\n readonly text: GenerateTextResult['text'];\n readonly files: GenerateTextResult['files'];\n readonly reasoning: GenerateTextResult['reasoning'];\n readonly reasoningDetails: GenerateTextResult<\n TOOLS,\n OUTPUT\n >['reasoningDetails'];\n readonly toolCalls: GenerateTextResult['toolCalls'];\n readonly toolResults: GenerateTextResult['toolResults'];\n readonly finishReason: GenerateTextResult['finishReason'];\n readonly usage: GenerateTextResult['usage'];\n readonly warnings: GenerateTextResult['warnings'];\n readonly steps: GenerateTextResult['steps'];\n readonly logprobs: GenerateTextResult['logprobs'];\n readonly experimental_providerMetadata: GenerateTextResult<\n TOOLS,\n OUTPUT\n >['experimental_providerMetadata'];\n readonly providerMetadata: GenerateTextResult<\n TOOLS,\n OUTPUT\n >['providerMetadata'];\n readonly response: GenerateTextResult['response'];\n readonly request: GenerateTextResult['request'];\n readonly sources: GenerateTextResult['sources'];\n\n private readonly outputResolver: () => GenerateTextResult<\n TOOLS,\n OUTPUT\n >['experimental_output'];\n\n constructor(options: {\n text: GenerateTextResult['text'];\n files: GenerateTextResult['files'];\n reasoning: GenerateTextResult['reasoning'];\n reasoningDetails: GenerateTextResult['reasoningDetails'];\n toolCalls: GenerateTextResult['toolCalls'];\n toolResults: GenerateTextResult['toolResults'];\n finishReason: GenerateTextResult['finishReason'];\n usage: GenerateTextResult['usage'];\n warnings: GenerateTextResult['warnings'];\n logprobs: GenerateTextResult['logprobs'];\n steps: GenerateTextResult['steps'];\n providerMetadata: GenerateTextResult['providerMetadata'];\n response: GenerateTextResult['response'];\n request: GenerateTextResult['request'];\n outputResolver: () => GenerateTextResult<\n TOOLS,\n OUTPUT\n >['experimental_output'];\n sources: GenerateTextResult['sources'];\n }) {\n this.text = options.text;\n this.files = options.files;\n this.reasoning = options.reasoning;\n this.reasoningDetails = options.reasoningDetails;\n this.toolCalls = options.toolCalls;\n this.toolResults = options.toolResults;\n this.finishReason = options.finishReason;\n this.usage = options.usage;\n this.warnings = options.warnings;\n this.request = options.request;\n this.response = options.response;\n this.steps = options.steps;\n this.experimental_providerMetadata = options.providerMetadata;\n this.providerMetadata = options.providerMetadata;\n this.logprobs = options.logprobs;\n this.outputResolver = options.outputResolver;\n this.sources = options.sources;\n }\n\n get experimental_output() {\n return this.outputResolver();\n }\n}\n\nfunction asReasoningDetails(\n reasoning:\n | string\n | Array<\n | { type: 'text'; text: string; signature?: string }\n | { type: 'redacted'; data: string }\n >\n | undefined,\n): Array<\n | { type: 'text'; text: string; signature?: string }\n | { type: 'redacted'; data: string }\n> {\n if (reasoning == null) {\n return [];\n }\n\n if (typeof reasoning === 'string') {\n return [{ type: 'text', text: reasoning }];\n }\n\n return reasoning;\n}\n\nfunction asFiles(\n files:\n | Array<{\n data: string | Uint8Array;\n mimeType: string;\n }>\n | undefined,\n): Array {\n return files?.map(file => new DefaultGeneratedFile(file)) ?? [];\n}\n","import { safeParseJSON, safeValidateTypes } from '@ai-sdk/provider-utils';\nimport {\n asSchema,\n DeepPartial,\n parsePartialJson,\n Schema,\n} from '@ai-sdk/ui-utils';\nimport { z } from 'zod';\nimport { NoObjectGeneratedError } from '../../errors';\nimport { injectJsonInstruction } from '../generate-object/inject-json-instruction';\nimport {\n FinishReason,\n LanguageModel,\n LanguageModelV1CallOptions,\n} from '../types/language-model';\nimport { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport { LanguageModelUsage } from '../types/usage';\n\nexport interface Output {\n readonly type: 'object' | 'text';\n injectIntoSystemPrompt(options: {\n system: string | undefined;\n model: LanguageModel;\n }): string | undefined;\n\n responseFormat: (options: {\n model: LanguageModel;\n }) => LanguageModelV1CallOptions['responseFormat'];\n\n parsePartial(options: { text: string }): { partial: PARTIAL } | undefined;\n\n parseOutput(\n options: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ): OUTPUT;\n}\n\nexport const text = (): Output => ({\n type: 'text',\n\n responseFormat: () => ({ type: 'text' }),\n\n injectIntoSystemPrompt({ system }: { system: string | undefined }) {\n return system;\n },\n\n parsePartial({ text }: { text: string }) {\n return { partial: text };\n },\n\n parseOutput({ text }: { text: string }) {\n return text;\n },\n});\n\nexport const object = ({\n schema: inputSchema,\n}: {\n schema: z.Schema | Schema;\n}): Output> => {\n const schema = asSchema(inputSchema);\n\n return {\n type: 'object',\n\n responseFormat: ({ model }) => ({\n type: 'json',\n schema: model.supportsStructuredOutputs ? schema.jsonSchema : undefined,\n }),\n\n injectIntoSystemPrompt({ system, model }) {\n // when the model supports structured outputs,\n // we can use the system prompt as is:\n return model.supportsStructuredOutputs\n ? system\n : injectJsonInstruction({\n prompt: system,\n schema: schema.jsonSchema,\n });\n },\n\n parsePartial({ text }: { text: string }) {\n const result = parsePartialJson(text);\n\n switch (result.state) {\n case 'failed-parse':\n case 'undefined-input':\n return undefined;\n\n case 'repaired-parse':\n case 'successful-parse':\n return {\n // Note: currently no validation of partial results:\n partial: result.value as DeepPartial,\n };\n\n default: {\n const _exhaustiveCheck: never = result.state;\n throw new Error(`Unsupported parse state: ${_exhaustiveCheck}`);\n }\n }\n },\n\n parseOutput(\n { text }: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ) {\n const parseResult = safeParseJSON({ text });\n\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: could not parse the response.',\n cause: parseResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n const validationResult = safeValidateTypes({\n value: parseResult.value,\n schema,\n });\n\n if (!validationResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: response did not match schema.',\n cause: validationResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n return validationResult.value;\n },\n };\n};\n","/**\n * Merges two readable streams into a single readable stream, emitting values\n * from each stream as they become available.\n *\n * The first stream is prioritized over the second stream. If both streams have\n * values available, the first stream's value is emitted first.\n *\n * @template VALUE1 - The type of values emitted by the first stream.\n * @template VALUE2 - The type of values emitted by the second stream.\n * @param {ReadableStream} stream1 - The first readable stream.\n * @param {ReadableStream} stream2 - The second readable stream.\n * @returns {ReadableStream} A new readable stream that emits values from both input streams.\n */\nexport function mergeStreams(\n stream1: ReadableStream,\n stream2: ReadableStream,\n): ReadableStream {\n const reader1 = stream1.getReader();\n const reader2 = stream2.getReader();\n\n let lastRead1: Promise> | undefined =\n undefined;\n let lastRead2: Promise> | undefined =\n undefined;\n\n let stream1Done = false;\n let stream2Done = false;\n\n // only use when stream 2 is done:\n async function readStream1(\n controller: ReadableStreamDefaultController,\n ) {\n try {\n if (lastRead1 == null) {\n lastRead1 = reader1.read();\n }\n\n const result = await lastRead1;\n lastRead1 = undefined;\n\n if (!result.done) {\n controller.enqueue(result.value);\n } else {\n controller.close();\n }\n } catch (error) {\n controller.error(error);\n }\n }\n\n // only use when stream 1 is done:\n async function readStream2(\n controller: ReadableStreamDefaultController,\n ) {\n try {\n if (lastRead2 == null) {\n lastRead2 = reader2.read();\n }\n\n const result = await lastRead2;\n lastRead2 = undefined;\n\n if (!result.done) {\n controller.enqueue(result.value);\n } else {\n controller.close();\n }\n } catch (error) {\n controller.error(error);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n // stream 1 is done, we can only read from stream 2:\n if (stream1Done) {\n await readStream2(controller);\n return;\n }\n\n // stream 2 is done, we can only read from stream 1:\n if (stream2Done) {\n await readStream1(controller);\n return;\n }\n\n // pull the next value from the stream that was read last:\n if (lastRead1 == null) {\n lastRead1 = reader1.read();\n }\n if (lastRead2 == null) {\n lastRead2 = reader2.read();\n }\n\n // Note on Promise.race (prioritizing stream 1 over stream 2):\n // If the iterable contains one or more non-promise values and/or an already settled promise,\n // then Promise.race() will settle to the first of these values found in the iterable.\n const { result, reader } = await Promise.race([\n lastRead1.then(result => ({ result, reader: reader1 })),\n lastRead2.then(result => ({ result, reader: reader2 })),\n ]);\n\n if (!result.done) {\n controller.enqueue(result.value);\n }\n\n if (reader === reader1) {\n lastRead1 = undefined;\n if (result.done) {\n // stream 1 is done, we can only read from stream 2:\n await readStream2(controller);\n stream1Done = true;\n }\n } else {\n lastRead2 = undefined;\n // stream 2 is done, we can only read from stream 1:\n if (result.done) {\n stream2Done = true;\n await readStream1(controller);\n }\n }\n } catch (error) {\n controller.error(error);\n }\n },\n cancel() {\n reader1.cancel();\n reader2.cancel();\n },\n });\n}\n","import { AISDKError, LanguageModelV1Source } from '@ai-sdk/provider';\nimport { createIdGenerator, IDGenerator } from '@ai-sdk/provider-utils';\nimport { DataStreamString, formatDataStreamPart } from '@ai-sdk/ui-utils';\nimport { Span } from '@opentelemetry/api';\nimport { ServerResponse } from 'node:http';\nimport { InvalidArgumentError } from '../../errors/invalid-argument-error';\nimport { InvalidStreamPartError } from '../../errors/invalid-stream-part-error';\nimport { NoOutputSpecifiedError } from '../../errors/no-output-specified-error';\nimport { UnsupportedModelVersionError } from '../../errors/unsupported-model-version-error';\nimport { StreamData } from '../../streams/stream-data';\nimport { asArray } from '../../util/as-array';\nimport { consumeStream } from '../../util/consume-stream';\nimport { DelayedPromise } from '../../util/delayed-promise';\nimport { DataStreamWriter } from '../data-stream/data-stream-writer';\nimport { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { CoreAssistantMessage } from '../prompt/message';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareRetries } from '../prompt/prepare-retries';\nimport { prepareToolsAndToolChoice } from '../prompt/prepare-tools-and-tool-choice';\nimport { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { stringifyForTelemetry } from '../prompt/stringify-for-telemetry';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport {\n FinishReason,\n LanguageModel,\n LogProbs,\n ToolChoice,\n} from '../types/language-model';\nimport { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport { ProviderMetadata, ProviderOptions } from '../types/provider-metadata';\nimport { addLanguageModelUsage, LanguageModelUsage } from '../types/usage';\nimport {\n AsyncIterableStream,\n createAsyncIterableStream,\n} from '../util/async-iterable-stream';\nimport { createStitchableStream } from '../util/create-stitchable-stream';\nimport { mergeStreams } from '../util/merge-streams';\nimport { now as originalNow } from '../util/now';\nimport { prepareOutgoingHttpHeaders } from '../util/prepare-outgoing-http-headers';\nimport { prepareResponseHeaders } from '../util/prepare-response-headers';\nimport { splitOnLastWhitespace } from '../util/split-on-last-whitespace';\nimport { writeToServerResponse } from '../util/write-to-server-response';\nimport { GeneratedFile } from './generated-file';\nimport { Output } from './output';\nimport { asReasoningText, ReasoningDetail } from './reasoning-detail';\nimport {\n runToolsTransformation,\n SingleRequestTextStreamPart,\n} from './run-tools-transformation';\nimport { ResponseMessage, StepResult } from './step-result';\nimport {\n ConsumeStreamOptions,\n DataStreamOptions,\n StreamTextResult,\n TextStreamPart,\n} from './stream-text-result';\nimport { toResponseMessages } from './to-response-messages';\nimport { ToolCallUnion } from './tool-call';\nimport { ToolCallRepairFunction } from './tool-call-repair';\nimport { ToolResultUnion } from './tool-result';\nimport { ToolSet } from './tool-set';\n\nconst originalGenerateId = createIdGenerator({\n prefix: 'aitxt',\n size: 24,\n});\n\nconst originalGenerateMessageId = createIdGenerator({\n prefix: 'msg',\n size: 24,\n});\n\n/**\nA transformation that is applied to the stream.\n\n@param stopStream - A function that stops the source stream.\n@param tools - The tools that are accessible to and can be called by the model. The model needs to support calling tools.\n */\nexport type StreamTextTransform = (options: {\n tools: TOOLS; // for type inference\n stopStream: () => void;\n}) => TransformStream, TextStreamPart>;\n\n/**\nCallback that is set using the `onError` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamTextOnErrorCallback = (event: {\n error: unknown;\n}) => Promise | void;\n\n/**\nCallback that is set using the `onStepFinish` option.\n\n@param stepResult - The result of the step.\n */\nexport type StreamTextOnStepFinishCallback = (\n stepResult: StepResult,\n) => Promise | void;\n\n/**\nCallback that is set using the `onChunk` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamTextOnChunkCallback = (event: {\n chunk: Extract<\n TextStreamPart,\n {\n type:\n | 'text-delta'\n | 'reasoning'\n | 'source'\n | 'tool-call'\n | 'tool-call-streaming-start'\n | 'tool-call-delta'\n | 'tool-result';\n }\n >;\n}) => Promise | void;\n\n/**\nCallback that is set using the `onFinish` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamTextOnFinishCallback = (\n event: Omit, 'stepType' | 'isContinued'> & {\n /**\nDetails for all steps.\n */\n readonly steps: StepResult[];\n },\n) => Promise | void;\n\n/**\nGenerate a text and call tools for a given prompt using a language model.\n\nThis function streams the output. If you do not want to stream the output, use `generateText` instead.\n\n@param model - The language model to use.\n@param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n\n@param system - A system message that will be part of the prompt.\n@param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n@param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n\n@param maxTokens - Maximum number of tokens to generate.\n@param temperature - Temperature setting.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topP - Nucleus sampling.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topK - Only sample from the top K options for each subsequent token.\nUsed to remove \"long tail\" low probability responses.\nRecommended for advanced use cases only. You usually only need to use temperature.\n@param presencePenalty - Presence penalty setting.\nIt affects the likelihood of the model to repeat information that is already in the prompt.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param frequencyPenalty - Frequency penalty setting.\nIt affects the likelihood of the model to repeatedly use the same words or phrases.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param stopSequences - Stop sequences.\nIf set, the model will stop generating text when one of the stop sequences is generated.\n@param seed - The seed (integer) to use for random sampling.\nIf set and supported by the model, calls will generate deterministic results.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.\n@param experimental_generateMessageId - Generate a unique ID for each message.\n\n@param onChunk - Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.\n@param onError - Callback that is called when an error occurs during streaming. You can use it to log errors.\n@param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.\n@param onFinish - Callback that is called when the LLM response and all request tool executions\n(for tools that have an `execute` function) are finished.\n\n@return\nA result object for accessing different stream types and additional information.\n */\nexport function streamText<\n TOOLS extends ToolSet,\n OUTPUT = never,\n PARTIAL_OUTPUT = never,\n>({\n model,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n maxRetries,\n abortSignal,\n headers,\n maxSteps = 1,\n experimental_generateMessageId: generateMessageId = originalGenerateMessageId,\n experimental_output: output,\n experimental_continueSteps: continueSteps = false,\n experimental_telemetry: telemetry,\n experimental_providerMetadata,\n providerOptions = experimental_providerMetadata,\n experimental_toolCallStreaming = false,\n toolCallStreaming = experimental_toolCallStreaming,\n experimental_activeTools: activeTools,\n experimental_repairToolCall: repairToolCall,\n experimental_transform: transform,\n onChunk,\n onError,\n onFinish,\n onStepFinish,\n _internal: {\n now = originalNow,\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n } = {},\n ...settings\n}: CallSettings &\n Prompt & {\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe tools that the model can call. The model needs to support calling tools.\n */\n tools?: TOOLS;\n\n /**\nThe tool choice strategy. Default: 'auto'.\n */\n toolChoice?: ToolChoice;\n\n /**\nMaximum number of sequential LLM calls (steps), e.g. when you use tool calls. Must be at least 1.\n\nA maximum number is required to prevent infinite loops in the case of misconfigured tools.\n\nBy default, it's set to 1, which means that only a single LLM call is made.\n */\n maxSteps?: number;\n\n /**\nGenerate a unique ID for each message.\n */\n experimental_generateMessageId?: IDGenerator;\n\n /**\nWhen enabled, the model will perform additional steps if the finish reason is \"length\" (experimental).\n\nBy default, it's set to false.\n */\n experimental_continueSteps?: boolean;\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n@deprecated Use `providerOptions` instead.\n */\n experimental_providerMetadata?: ProviderMetadata;\n\n /**\nLimits the tools that are available for the model to call without\nchanging the tool call and result types in the result.\n */\n experimental_activeTools?: Array;\n\n /**\nOptional specification for parsing structured outputs from the LLM response.\n */\n experimental_output?: Output;\n\n /**\nA function that attempts to repair a tool call that failed to parse.\n */\n experimental_repairToolCall?: ToolCallRepairFunction;\n\n /**\nEnable streaming of tool call deltas as they are generated. Disabled by default.\n */\n toolCallStreaming?: boolean;\n\n /**\n@deprecated Use `toolCallStreaming` instead.\n */\n experimental_toolCallStreaming?: boolean;\n\n /**\nOptional stream transformations.\nThey are applied in the order they are provided.\nThe stream transformations must maintain the stream structure for streamText to work correctly.\n */\n experimental_transform?:\n | StreamTextTransform\n | Array>;\n\n /**\nCallback that is called for each chunk of the stream.\nThe stream processing will pause until the callback promise is resolved.\n */\n onChunk?: StreamTextOnChunkCallback;\n\n /**\nCallback that is invoked when an error occurs during streaming.\nYou can use it to log errors.\nThe stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamTextOnErrorCallback;\n\n /**\nCallback that is called when the LLM response and all request tool executions\n(for tools that have an `execute` function) are finished.\n\nThe usage is the combined usage of all steps.\n */\n onFinish?: StreamTextOnFinishCallback;\n\n /**\nCallback that is called when each step (LLM call) is finished, including intermediate steps.\n */\n onStepFinish?: StreamTextOnStepFinishCallback;\n\n /**\nInternal. For test use only. May change without notice.\n */\n _internal?: {\n now?: () => number;\n generateId?: IDGenerator;\n currentDate?: () => Date;\n };\n }): StreamTextResult {\n if (typeof model === 'string' || model.specificationVersion !== 'v1') {\n throw new UnsupportedModelVersionError();\n }\n\n return new DefaultStreamTextResult({\n model,\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal,\n system,\n prompt,\n messages,\n tools,\n toolChoice,\n toolCallStreaming,\n transforms: asArray(transform),\n activeTools,\n repairToolCall,\n maxSteps,\n output,\n continueSteps,\n providerOptions,\n onChunk,\n onError,\n onFinish,\n onStepFinish,\n now,\n currentDate,\n generateId,\n generateMessageId,\n });\n}\n\ntype EnrichedStreamPart = {\n part: TextStreamPart;\n partialOutput: PARTIAL_OUTPUT | undefined;\n};\n\nfunction createOutputTransformStream<\n TOOLS extends ToolSet,\n OUTPUT,\n PARTIAL_OUTPUT,\n>(\n output: Output | undefined,\n): TransformStream<\n TextStreamPart,\n EnrichedStreamPart\n> {\n if (!output) {\n return new TransformStream<\n TextStreamPart,\n EnrichedStreamPart\n >({\n transform(chunk, controller) {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n },\n });\n }\n\n let text = '';\n let textChunk = '';\n let lastPublishedJson = '';\n\n function publishTextChunk({\n controller,\n partialOutput = undefined,\n }: {\n controller: TransformStreamDefaultController<\n EnrichedStreamPart\n >;\n partialOutput?: PARTIAL_OUTPUT;\n }) {\n controller.enqueue({\n part: { type: 'text-delta', textDelta: textChunk },\n partialOutput,\n });\n textChunk = '';\n }\n\n return new TransformStream<\n TextStreamPart,\n EnrichedStreamPart\n >({\n transform(chunk, controller) {\n // ensure that we publish the last text chunk before the step finish:\n if (chunk.type === 'step-finish') {\n publishTextChunk({ controller });\n }\n\n if (chunk.type !== 'text-delta') {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n text += chunk.textDelta;\n textChunk += chunk.textDelta;\n\n // only publish if partial json can be parsed:\n const result = output.parsePartial({ text });\n if (result != null) {\n // only send new json if it has changed:\n const currentJson = JSON.stringify(result.partial);\n if (currentJson !== lastPublishedJson) {\n publishTextChunk({ controller, partialOutput: result.partial });\n lastPublishedJson = currentJson;\n }\n }\n },\n\n flush(controller) {\n // publish remaining text (there should be none if the content was correctly formatted):\n if (textChunk.length > 0) {\n publishTextChunk({ controller });\n }\n },\n });\n}\n\nclass DefaultStreamTextResult\n implements StreamTextResult\n{\n private readonly warningsPromise = new DelayedPromise<\n Awaited['warnings']>\n >();\n private readonly usagePromise = new DelayedPromise<\n Awaited['usage']>\n >();\n private readonly finishReasonPromise = new DelayedPromise<\n Awaited['finishReason']>\n >();\n private readonly providerMetadataPromise = new DelayedPromise<\n Awaited<\n StreamTextResult['experimental_providerMetadata']\n >\n >();\n private readonly textPromise = new DelayedPromise<\n Awaited['text']>\n >();\n private readonly reasoningPromise = new DelayedPromise<\n Awaited['reasoning']>\n >();\n private readonly reasoningDetailsPromise = new DelayedPromise<\n Awaited['reasoningDetails']>\n >();\n private readonly sourcesPromise = new DelayedPromise<\n Awaited['sources']>\n >();\n private readonly filesPromise = new DelayedPromise<\n Awaited['files']>\n >();\n private readonly toolCallsPromise = new DelayedPromise<\n Awaited['toolCalls']>\n >();\n private readonly toolResultsPromise = new DelayedPromise<\n Awaited['toolResults']>\n >();\n private readonly requestPromise = new DelayedPromise<\n Awaited['request']>\n >();\n private readonly responsePromise = new DelayedPromise<\n Awaited['response']>\n >();\n private readonly stepsPromise = new DelayedPromise<\n Awaited['steps']>\n >();\n\n private readonly addStream: (\n stream: ReadableStream>,\n ) => void;\n\n private readonly closeStream: () => void;\n\n private baseStream: ReadableStream>;\n\n private output: Output | undefined;\n\n constructor({\n model,\n telemetry,\n headers,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n system,\n prompt,\n messages,\n tools,\n toolChoice,\n toolCallStreaming,\n transforms,\n activeTools,\n repairToolCall,\n maxSteps,\n output,\n continueSteps,\n providerOptions,\n now,\n currentDate,\n generateId,\n generateMessageId,\n onChunk,\n onError,\n onFinish,\n onStepFinish,\n }: {\n model: LanguageModel;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n settings: Omit;\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n system: Prompt['system'];\n prompt: Prompt['prompt'];\n messages: Prompt['messages'];\n tools: TOOLS | undefined;\n toolChoice: ToolChoice | undefined;\n toolCallStreaming: boolean;\n transforms: Array>;\n activeTools: Array | undefined;\n repairToolCall: ToolCallRepairFunction | undefined;\n maxSteps: number;\n output: Output | undefined;\n continueSteps: boolean;\n providerOptions: ProviderOptions | undefined;\n now: () => number;\n currentDate: () => Date;\n generateId: () => string;\n generateMessageId: () => string;\n\n // callbacks:\n onChunk: undefined | StreamTextOnChunkCallback;\n onError: undefined | StreamTextOnErrorCallback;\n onFinish: undefined | StreamTextOnFinishCallback;\n onStepFinish: undefined | StreamTextOnStepFinishCallback;\n }) {\n if (maxSteps < 1) {\n throw new InvalidArgumentError({\n parameter: 'maxSteps',\n value: maxSteps,\n message: 'maxSteps must be at least 1',\n });\n }\n\n this.output = output;\n\n // event processor for telemetry, invoking callbacks, etc.\n // The event processor reads the transformed stream to enable correct\n // recording of the final transformed outputs.\n let recordedStepText = '';\n let recordedContinuationText = '';\n let recordedFullText = '';\n\n let stepReasoning: Array = [];\n let stepFiles: Array = [];\n let activeReasoningText: undefined | (ReasoningDetail & { type: 'text' }) =\n undefined;\n\n let recordedStepSources: LanguageModelV1Source[] = [];\n const recordedSources: LanguageModelV1Source[] = [];\n\n const recordedResponse: LanguageModelResponseMetadata & {\n messages: Array;\n } = {\n id: generateId(),\n timestamp: currentDate(),\n modelId: model.modelId,\n messages: [],\n };\n let recordedToolCalls: ToolCallUnion[] = [];\n let recordedToolResults: ToolResultUnion[] = [];\n let recordedFinishReason: FinishReason | undefined = undefined;\n let recordedUsage: LanguageModelUsage | undefined = undefined;\n let stepType: 'initial' | 'continue' | 'tool-result' = 'initial';\n const recordedSteps: StepResult[] = [];\n let rootSpan!: Span;\n\n const eventProcessor = new TransformStream<\n EnrichedStreamPart,\n EnrichedStreamPart\n >({\n async transform(chunk, controller) {\n controller.enqueue(chunk); // forward the chunk to the next stream\n\n const { part } = chunk;\n\n if (\n part.type === 'text-delta' ||\n part.type === 'reasoning' ||\n part.type === 'source' ||\n part.type === 'tool-call' ||\n part.type === 'tool-result' ||\n part.type === 'tool-call-streaming-start' ||\n part.type === 'tool-call-delta'\n ) {\n await onChunk?.({ chunk: part });\n }\n\n if (part.type === 'error') {\n await onError?.({ error: part.error });\n }\n\n if (part.type === 'text-delta') {\n recordedStepText += part.textDelta;\n recordedContinuationText += part.textDelta;\n recordedFullText += part.textDelta;\n }\n\n if (part.type === 'reasoning') {\n if (activeReasoningText == null) {\n activeReasoningText = { type: 'text', text: part.textDelta };\n stepReasoning.push(activeReasoningText);\n } else {\n activeReasoningText.text += part.textDelta;\n }\n }\n\n if (part.type === 'reasoning-signature') {\n if (activeReasoningText == null) {\n throw new AISDKError({\n name: 'InvalidStreamPart',\n message: 'reasoning-signature without reasoning',\n });\n }\n\n activeReasoningText.signature = part.signature;\n activeReasoningText = undefined; // signature concludes reasoning part\n }\n\n if (part.type === 'redacted-reasoning') {\n stepReasoning.push({ type: 'redacted', data: part.data });\n }\n\n if (part.type === 'file') {\n stepFiles.push(part);\n }\n\n if (part.type === 'source') {\n recordedSources.push(part.source);\n recordedStepSources.push(part.source);\n }\n\n if (part.type === 'tool-call') {\n recordedToolCalls.push(part);\n }\n\n if (part.type === 'tool-result') {\n recordedToolResults.push(part);\n }\n\n if (part.type === 'step-finish') {\n const stepMessages = toResponseMessages({\n text: recordedContinuationText,\n files: stepFiles,\n reasoning: stepReasoning,\n tools: tools ?? ({} as TOOLS),\n toolCalls: recordedToolCalls,\n toolResults: recordedToolResults,\n messageId: part.messageId,\n generateMessageId,\n });\n\n // determine the next step type\n const currentStep = recordedSteps.length;\n let nextStepType: 'done' | 'continue' | 'tool-result' = 'done';\n if (currentStep + 1 < maxSteps) {\n if (\n continueSteps &&\n part.finishReason === 'length' &&\n // only use continue when there are no tool calls:\n recordedToolCalls.length === 0\n ) {\n nextStepType = 'continue';\n } else if (\n // there are tool calls:\n recordedToolCalls.length > 0 &&\n // all current tool calls have results:\n recordedToolResults.length === recordedToolCalls.length\n ) {\n nextStepType = 'tool-result';\n }\n }\n\n // Add step information (after response messages are updated):\n const currentStepResult: StepResult = {\n stepType,\n text: recordedStepText,\n reasoning: asReasoningText(stepReasoning),\n reasoningDetails: stepReasoning,\n files: stepFiles,\n sources: recordedStepSources,\n toolCalls: recordedToolCalls,\n toolResults: recordedToolResults,\n finishReason: part.finishReason,\n usage: part.usage,\n warnings: part.warnings,\n logprobs: part.logprobs,\n request: part.request,\n response: {\n ...part.response,\n messages: [...recordedResponse.messages, ...stepMessages],\n },\n providerMetadata: part.experimental_providerMetadata,\n experimental_providerMetadata: part.experimental_providerMetadata,\n isContinued: part.isContinued,\n };\n\n await onStepFinish?.(currentStepResult);\n\n recordedSteps.push(currentStepResult);\n\n recordedToolCalls = [];\n recordedToolResults = [];\n recordedStepText = '';\n recordedStepSources = [];\n stepReasoning = [];\n stepFiles = [];\n activeReasoningText = undefined;\n\n if (nextStepType !== 'done') {\n stepType = nextStepType;\n }\n\n if (nextStepType !== 'continue') {\n recordedResponse.messages.push(...stepMessages);\n recordedContinuationText = '';\n }\n }\n\n if (part.type === 'finish') {\n recordedResponse.id = part.response.id;\n recordedResponse.timestamp = part.response.timestamp;\n recordedResponse.modelId = part.response.modelId;\n recordedResponse.headers = part.response.headers;\n recordedUsage = part.usage;\n recordedFinishReason = part.finishReason;\n }\n },\n\n async flush(controller) {\n try {\n if (recordedSteps.length === 0) {\n return; // no steps recorded (e.g. in error scenario)\n }\n\n // from last step (when there are errors there may be no last step)\n const lastStep = recordedSteps[recordedSteps.length - 1];\n\n self.warningsPromise.resolve(lastStep.warnings);\n self.requestPromise.resolve(lastStep.request);\n self.responsePromise.resolve(lastStep.response);\n self.toolCallsPromise.resolve(lastStep.toolCalls);\n self.toolResultsPromise.resolve(lastStep.toolResults);\n self.providerMetadataPromise.resolve(\n lastStep.experimental_providerMetadata,\n );\n self.reasoningPromise.resolve(lastStep.reasoning);\n self.reasoningDetailsPromise.resolve(lastStep.reasoningDetails);\n\n // derived:\n const finishReason = recordedFinishReason ?? 'unknown';\n const usage = recordedUsage ?? {\n completionTokens: NaN,\n promptTokens: NaN,\n totalTokens: NaN,\n };\n\n // from finish:\n self.finishReasonPromise.resolve(finishReason);\n self.usagePromise.resolve(usage);\n\n // aggregate results:\n self.textPromise.resolve(recordedFullText);\n self.sourcesPromise.resolve(recordedSources);\n self.filesPromise.resolve(lastStep.files);\n self.stepsPromise.resolve(recordedSteps);\n\n // call onFinish callback:\n await onFinish?.({\n finishReason,\n logprobs: undefined,\n usage,\n text: recordedFullText,\n reasoning: lastStep.reasoning,\n reasoningDetails: lastStep.reasoningDetails,\n files: lastStep.files,\n sources: lastStep.sources,\n toolCalls: lastStep.toolCalls,\n toolResults: lastStep.toolResults,\n request: lastStep.request ?? {},\n response: lastStep.response,\n warnings: lastStep.warnings,\n providerMetadata: lastStep.providerMetadata,\n experimental_providerMetadata:\n lastStep.experimental_providerMetadata,\n steps: recordedSteps,\n });\n\n // Add response information to the root span:\n rootSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.text': { output: () => recordedFullText },\n 'ai.response.toolCalls': {\n output: () =>\n lastStep.toolCalls?.length\n ? JSON.stringify(lastStep.toolCalls)\n : undefined,\n },\n\n 'ai.usage.promptTokens': usage.promptTokens,\n 'ai.usage.completionTokens': usage.completionTokens,\n 'ai.response.providerMetadata': JSON.stringify(\n lastStep.providerMetadata,\n ),\n },\n }),\n );\n } catch (error) {\n controller.error(error);\n } finally {\n rootSpan.end();\n }\n },\n });\n\n // initialize the stitchable stream and the transformed stream:\n const stitchableStream = createStitchableStream>();\n this.addStream = stitchableStream.addStream;\n this.closeStream = stitchableStream.close;\n\n let stream = stitchableStream.stream;\n\n // transform the stream before output parsing\n // to enable replacement of stream segments:\n for (const transform of transforms) {\n stream = stream.pipeThrough(\n transform({\n tools: tools as TOOLS,\n stopStream() {\n stitchableStream.terminate();\n },\n }),\n );\n }\n\n this.baseStream = stream\n .pipeThrough(createOutputTransformStream(output))\n .pipeThrough(eventProcessor);\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n });\n\n const tracer = getTracer(telemetry);\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...settings, maxRetries },\n });\n\n const initialPrompt = standardizePrompt({\n prompt: {\n system: output?.injectIntoSystemPrompt({ system, model }) ?? system,\n prompt,\n messages,\n },\n tools,\n });\n\n const self = this;\n\n recordSpan({\n name: 'ai.streamText',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: 'ai.streamText', telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.settings.maxSteps': maxSteps,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async rootSpanArg => {\n rootSpan = rootSpanArg;\n\n async function streamStep({\n currentStep,\n responseMessages,\n usage,\n stepType,\n previousStepText,\n hasLeadingWhitespace,\n messageId,\n }: {\n currentStep: number;\n responseMessages: Array;\n usage: LanguageModelUsage;\n stepType: 'initial' | 'continue' | 'tool-result';\n previousStepText: string;\n hasLeadingWhitespace: boolean;\n messageId: string;\n }) {\n // after the 1st step, we need to switch to messages format:\n const promptFormat =\n responseMessages.length === 0 ? initialPrompt.type : 'messages';\n\n const stepInputMessages = [\n ...initialPrompt.messages,\n ...responseMessages,\n ];\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n type: promptFormat,\n system: initialPrompt.system,\n messages: stepInputMessages,\n },\n modelSupportsImageUrls: model.supportsImageUrls,\n modelSupportsUrl: model.supportsUrl?.bind(model), // support 'this' context\n });\n\n const mode = {\n type: 'regular' as const,\n ...prepareToolsAndToolChoice({ tools, toolChoice, activeTools }),\n };\n\n const {\n result: { stream, warnings, rawResponse, request },\n doStreamSpan,\n startTimestampMs,\n } = await retry(() =>\n recordSpan({\n name: 'ai.streamText.doStream',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamText.doStream',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.format': {\n input: () => promptFormat,\n },\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n 'ai.prompt.tools': {\n // convert the language model level tools:\n input: () => mode.tools?.map(tool => JSON.stringify(tool)),\n },\n 'ai.prompt.toolChoice': {\n input: () =>\n mode.toolChoice != null\n ? JSON.stringify(mode.toolChoice)\n : undefined,\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty': settings.frequencyPenalty,\n 'gen_ai.request.max_tokens': settings.maxTokens,\n 'gen_ai.request.presence_penalty': settings.presencePenalty,\n 'gen_ai.request.stop_sequences': settings.stopSequences,\n 'gen_ai.request.temperature': settings.temperature,\n 'gen_ai.request.top_k': settings.topK,\n 'gen_ai.request.top_p': settings.topP,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async doStreamSpan => ({\n startTimestampMs: now(), // get before the call\n doStreamSpan,\n result: await model.doStream({\n mode,\n ...prepareCallSettings(settings),\n inputFormat: promptFormat,\n responseFormat: output?.responseFormat({ model }),\n prompt: promptMessages,\n providerMetadata: providerOptions,\n abortSignal,\n headers,\n }),\n }),\n }),\n );\n\n const transformedStream = runToolsTransformation({\n tools,\n generatorStream: stream,\n toolCallStreaming,\n tracer,\n telemetry,\n system,\n messages: stepInputMessages,\n repairToolCall,\n abortSignal,\n });\n\n const stepRequest = request ?? {};\n const stepToolCalls: ToolCallUnion[] = [];\n const stepToolResults: ToolResultUnion[] = [];\n\n const stepReasoning: Array = [];\n const stepFiles: Array = [];\n let activeReasoningText:\n | undefined\n | (ReasoningDetail & { type: 'text' }) = undefined;\n\n let stepFinishReason: FinishReason = 'unknown';\n let stepUsage: LanguageModelUsage = {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n };\n let stepProviderMetadata: ProviderMetadata | undefined;\n let stepFirstChunk = true;\n let stepText = '';\n let fullStepText = stepType === 'continue' ? previousStepText : '';\n let stepLogProbs: LogProbs | undefined;\n let stepResponse: { id: string; timestamp: Date; modelId: string } = {\n id: generateId(),\n timestamp: currentDate(),\n modelId: model.modelId,\n };\n\n // chunk buffer when using continue:\n let chunkBuffer = '';\n let chunkTextPublished = false;\n let inWhitespacePrefix = true;\n let hasWhitespaceSuffix = false; // for next step. when true, step ended with whitespace\n\n async function publishTextChunk({\n controller,\n chunk,\n }: {\n controller: TransformStreamDefaultController>;\n chunk: TextStreamPart & { type: 'text-delta' };\n }) {\n controller.enqueue(chunk);\n\n stepText += chunk.textDelta;\n fullStepText += chunk.textDelta;\n chunkTextPublished = true;\n hasWhitespaceSuffix = chunk.textDelta.trimEnd() !== chunk.textDelta;\n }\n\n self.addStream(\n transformedStream.pipeThrough(\n new TransformStream<\n SingleRequestTextStreamPart,\n TextStreamPart\n >({\n async transform(chunk, controller): Promise {\n if (stepFirstChunk) {\n // Telemetry for first chunk:\n const msToFirstChunk = now() - startTimestampMs;\n\n stepFirstChunk = false;\n\n doStreamSpan.addEvent('ai.stream.firstChunk', {\n 'ai.response.msToFirstChunk': msToFirstChunk,\n });\n\n doStreamSpan.setAttributes({\n 'ai.response.msToFirstChunk': msToFirstChunk,\n });\n\n // Step start:\n controller.enqueue({\n type: 'step-start',\n messageId,\n request: stepRequest,\n warnings: warnings ?? [],\n });\n }\n\n // Filter out empty text deltas\n if (\n chunk.type === 'text-delta' &&\n chunk.textDelta.length === 0\n ) {\n return;\n }\n\n const chunkType = chunk.type;\n switch (chunkType) {\n case 'text-delta': {\n if (continueSteps) {\n // when a new step starts, leading whitespace is to be discarded\n // when there is already preceding whitespace in the chunk buffer\n const trimmedChunkText =\n inWhitespacePrefix && hasLeadingWhitespace\n ? chunk.textDelta.trimStart()\n : chunk.textDelta;\n\n if (trimmedChunkText.length === 0) {\n break;\n }\n\n inWhitespacePrefix = false;\n chunkBuffer += trimmedChunkText;\n\n const split = splitOnLastWhitespace(chunkBuffer);\n\n // publish the text until the last whitespace:\n if (split != null) {\n chunkBuffer = split.suffix;\n\n await publishTextChunk({\n controller,\n chunk: {\n type: 'text-delta',\n textDelta: split.prefix + split.whitespace,\n },\n });\n }\n } else {\n await publishTextChunk({ controller, chunk });\n }\n break;\n }\n\n case 'reasoning': {\n controller.enqueue(chunk);\n\n if (activeReasoningText == null) {\n activeReasoningText = {\n type: 'text',\n text: chunk.textDelta,\n };\n stepReasoning.push(activeReasoningText);\n } else {\n activeReasoningText.text += chunk.textDelta;\n }\n\n break;\n }\n\n case 'reasoning-signature': {\n controller.enqueue(chunk);\n\n if (activeReasoningText == null) {\n throw new InvalidStreamPartError({\n chunk,\n message: 'reasoning-signature without reasoning',\n });\n }\n\n activeReasoningText.signature = chunk.signature;\n activeReasoningText = undefined; // signature concludes reasoning part\n break;\n }\n\n case 'redacted-reasoning': {\n controller.enqueue(chunk);\n stepReasoning.push({\n type: 'redacted',\n data: chunk.data,\n });\n\n break;\n }\n\n case 'tool-call': {\n controller.enqueue(chunk);\n // store tool calls for onFinish callback and toolCalls promise:\n stepToolCalls.push(chunk);\n break;\n }\n\n case 'tool-result': {\n controller.enqueue(chunk);\n // store tool results for onFinish callback and toolResults promise:\n stepToolResults.push(chunk);\n break;\n }\n\n case 'response-metadata': {\n stepResponse = {\n id: chunk.id ?? stepResponse.id,\n timestamp: chunk.timestamp ?? stepResponse.timestamp,\n modelId: chunk.modelId ?? stepResponse.modelId,\n };\n break;\n }\n\n case 'finish': {\n // Note: tool executions might not be finished yet when the finish event is emitted.\n // store usage and finish reason for promises and onFinish callback:\n stepUsage = chunk.usage;\n stepFinishReason = chunk.finishReason;\n stepProviderMetadata =\n chunk.experimental_providerMetadata;\n stepLogProbs = chunk.logprobs;\n\n // Telemetry for finish event timing\n // (since tool executions can take longer and distort calculations)\n const msToFinish = now() - startTimestampMs;\n doStreamSpan.addEvent('ai.stream.finish');\n doStreamSpan.setAttributes({\n 'ai.response.msToFinish': msToFinish,\n 'ai.response.avgCompletionTokensPerSecond':\n (1000 * stepUsage.completionTokens) / msToFinish,\n });\n\n break;\n }\n\n case 'file': {\n stepFiles.push(chunk);\n controller.enqueue(chunk);\n break;\n }\n\n // forward:\n case 'source':\n case 'tool-call-streaming-start':\n case 'tool-call-delta': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'error': {\n controller.enqueue(chunk);\n stepFinishReason = 'error';\n break;\n }\n\n default: {\n const exhaustiveCheck: never = chunkType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n const stepToolCallsJson =\n stepToolCalls.length > 0\n ? JSON.stringify(stepToolCalls)\n : undefined;\n\n // determine the next step type\n let nextStepType: 'done' | 'continue' | 'tool-result' =\n 'done';\n if (currentStep + 1 < maxSteps) {\n if (\n continueSteps &&\n stepFinishReason === 'length' &&\n // only use continue when there are no tool calls:\n stepToolCalls.length === 0\n ) {\n nextStepType = 'continue';\n } else if (\n // there are tool calls:\n stepToolCalls.length > 0 &&\n // all current tool calls have results:\n stepToolResults.length === stepToolCalls.length\n ) {\n nextStepType = 'tool-result';\n }\n }\n\n // when using continuation, publish buffer on final step or if there\n // was no whitespace in the step:\n if (\n continueSteps &&\n chunkBuffer.length > 0 &&\n (nextStepType !== 'continue' || // when the next step is a regular step, publish the buffer\n (stepType === 'continue' && !chunkTextPublished)) // when the next step is a continue step, publish the buffer if no text was published in the step\n ) {\n await publishTextChunk({\n controller,\n chunk: {\n type: 'text-delta',\n textDelta: chunkBuffer,\n },\n });\n chunkBuffer = '';\n }\n\n // record telemetry information first to ensure best effort timing\n try {\n doStreamSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': stepFinishReason,\n 'ai.response.text': { output: () => stepText },\n 'ai.response.toolCalls': {\n output: () => stepToolCallsJson,\n },\n 'ai.response.id': stepResponse.id,\n 'ai.response.model': stepResponse.modelId,\n 'ai.response.timestamp':\n stepResponse.timestamp.toISOString(),\n 'ai.response.providerMetadata':\n JSON.stringify(stepProviderMetadata),\n\n 'ai.usage.promptTokens': stepUsage.promptTokens,\n 'ai.usage.completionTokens':\n stepUsage.completionTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [stepFinishReason],\n 'gen_ai.response.id': stepResponse.id,\n 'gen_ai.response.model': stepResponse.modelId,\n 'gen_ai.usage.input_tokens': stepUsage.promptTokens,\n 'gen_ai.usage.output_tokens':\n stepUsage.completionTokens,\n },\n }),\n );\n } catch (error) {\n // ignore error setting telemetry attributes\n } finally {\n // finish doStreamSpan before other operations for correct timing:\n doStreamSpan.end();\n }\n\n controller.enqueue({\n type: 'step-finish',\n finishReason: stepFinishReason,\n usage: stepUsage,\n providerMetadata: stepProviderMetadata,\n experimental_providerMetadata: stepProviderMetadata,\n logprobs: stepLogProbs,\n request: stepRequest,\n response: {\n ...stepResponse,\n headers: rawResponse?.headers,\n },\n warnings,\n isContinued: nextStepType === 'continue',\n messageId,\n });\n\n const combinedUsage = addLanguageModelUsage(usage, stepUsage);\n\n if (nextStepType === 'done') {\n controller.enqueue({\n type: 'finish',\n finishReason: stepFinishReason,\n usage: combinedUsage,\n providerMetadata: stepProviderMetadata,\n experimental_providerMetadata: stepProviderMetadata,\n logprobs: stepLogProbs,\n response: {\n ...stepResponse,\n headers: rawResponse?.headers,\n },\n });\n\n self.closeStream(); // close the stitchable stream\n } else {\n // append to messages for the next step:\n if (stepType === 'continue') {\n // continue step: update the last assistant message\n // continue is only possible when there are no tool calls,\n // so we can assume that there is a single last assistant message:\n const lastMessage = responseMessages[\n responseMessages.length - 1\n ] as CoreAssistantMessage;\n\n if (typeof lastMessage.content === 'string') {\n lastMessage.content += stepText;\n } else {\n lastMessage.content.push({\n text: stepText,\n type: 'text',\n });\n }\n } else {\n responseMessages.push(\n ...toResponseMessages({\n text: stepText,\n files: stepFiles,\n reasoning: stepReasoning,\n tools: tools ?? ({} as TOOLS),\n toolCalls: stepToolCalls,\n toolResults: stepToolResults,\n messageId,\n generateMessageId,\n }),\n );\n }\n\n await streamStep({\n currentStep: currentStep + 1,\n responseMessages,\n usage: combinedUsage,\n stepType: nextStepType,\n previousStepText: fullStepText,\n hasLeadingWhitespace: hasWhitespaceSuffix,\n messageId:\n // keep the same id when continuing a step:\n nextStepType === 'continue'\n ? messageId\n : generateMessageId(),\n });\n }\n },\n }),\n ),\n );\n }\n\n // add the initial stream to the stitchable stream\n await streamStep({\n currentStep: 0,\n responseMessages: [],\n usage: {\n promptTokens: 0,\n completionTokens: 0,\n totalTokens: 0,\n },\n previousStepText: '',\n stepType: 'initial',\n hasLeadingWhitespace: false,\n messageId: generateMessageId(),\n });\n },\n }).catch(error => {\n // add an error stream part and close the streams:\n self.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'error', error });\n controller.close();\n },\n }),\n );\n self.closeStream();\n });\n }\n\n get warnings() {\n return this.warningsPromise.value;\n }\n\n get usage() {\n return this.usagePromise.value;\n }\n\n get finishReason() {\n return this.finishReasonPromise.value;\n }\n\n get experimental_providerMetadata() {\n return this.providerMetadataPromise.value;\n }\n\n get providerMetadata() {\n return this.providerMetadataPromise.value;\n }\n\n get text() {\n return this.textPromise.value;\n }\n\n get reasoning() {\n return this.reasoningPromise.value;\n }\n\n get reasoningDetails() {\n return this.reasoningDetailsPromise.value;\n }\n\n get sources() {\n return this.sourcesPromise.value;\n }\n\n get files() {\n return this.filesPromise.value;\n }\n\n get toolCalls() {\n return this.toolCallsPromise.value;\n }\n\n get toolResults() {\n return this.toolResultsPromise.value;\n }\n\n get request() {\n return this.requestPromise.value;\n }\n\n get response() {\n return this.responsePromise.value;\n }\n\n get steps() {\n return this.stepsPromise.value;\n }\n\n /**\nSplit out a new stream from the original stream.\nThe original stream is replaced to allow for further splitting,\nsince we do not know how many times the stream will be split.\n\nNote: this leads to buffering the stream content on the server.\nHowever, the LLM results are expected to be small enough to not cause issues.\n */\n private teeStream() {\n const [stream1, stream2] = this.baseStream.tee();\n this.baseStream = stream2;\n return stream1;\n }\n\n get textStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream, string>({\n transform({ part }, controller) {\n if (part.type === 'text-delta') {\n controller.enqueue(part.textDelta);\n }\n },\n }),\n ),\n );\n }\n\n get fullStream(): AsyncIterableStream> {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream<\n EnrichedStreamPart,\n TextStreamPart\n >({\n transform({ part }, controller) {\n controller.enqueue(part);\n },\n }),\n ),\n );\n }\n\n async consumeStream(options?: ConsumeStreamOptions): Promise {\n try {\n await consumeStream({\n stream: this.fullStream,\n onError: options?.onError,\n });\n } catch (error) {\n options?.onError?.(error);\n }\n }\n\n get experimental_partialOutputStream(): AsyncIterableStream {\n if (this.output == null) {\n throw new NoOutputSpecifiedError();\n }\n\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream<\n EnrichedStreamPart,\n PARTIAL_OUTPUT\n >({\n transform({ partialOutput }, controller) {\n if (partialOutput != null) {\n controller.enqueue(partialOutput);\n }\n },\n }),\n ),\n );\n }\n\n private toDataStreamInternal({\n getErrorMessage = () => 'An error occurred.', // mask error messages for safety by default\n sendUsage = true,\n sendReasoning = false,\n sendSources = false,\n experimental_sendFinish = true,\n }: {\n getErrorMessage: ((error: unknown) => string) | undefined;\n sendUsage: boolean | undefined;\n sendReasoning: boolean | undefined;\n sendSources: boolean | undefined;\n experimental_sendFinish: boolean | undefined;\n }): ReadableStream {\n return this.fullStream.pipeThrough(\n new TransformStream, DataStreamString>({\n transform: async (chunk, controller) => {\n const chunkType = chunk.type;\n switch (chunkType) {\n case 'text-delta': {\n controller.enqueue(formatDataStreamPart('text', chunk.textDelta));\n break;\n }\n\n case 'reasoning': {\n if (sendReasoning) {\n controller.enqueue(\n formatDataStreamPart('reasoning', chunk.textDelta),\n );\n }\n break;\n }\n\n case 'redacted-reasoning': {\n if (sendReasoning) {\n controller.enqueue(\n formatDataStreamPart('redacted_reasoning', {\n data: chunk.data,\n }),\n );\n }\n break;\n }\n\n case 'reasoning-signature': {\n if (sendReasoning) {\n controller.enqueue(\n formatDataStreamPart('reasoning_signature', {\n signature: chunk.signature,\n }),\n );\n }\n break;\n }\n\n case 'file': {\n controller.enqueue(\n formatDataStreamPart('file', {\n mimeType: chunk.mimeType,\n data: chunk.base64,\n }),\n );\n break;\n }\n\n case 'source': {\n if (sendSources) {\n controller.enqueue(\n formatDataStreamPart('source', chunk.source),\n );\n }\n break;\n }\n\n case 'tool-call-streaming-start': {\n controller.enqueue(\n formatDataStreamPart('tool_call_streaming_start', {\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n }),\n );\n break;\n }\n\n case 'tool-call-delta': {\n controller.enqueue(\n formatDataStreamPart('tool_call_delta', {\n toolCallId: chunk.toolCallId,\n argsTextDelta: chunk.argsTextDelta,\n }),\n );\n break;\n }\n\n case 'tool-call': {\n controller.enqueue(\n formatDataStreamPart('tool_call', {\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n args: chunk.args,\n }),\n );\n break;\n }\n\n case 'tool-result': {\n controller.enqueue(\n formatDataStreamPart('tool_result', {\n toolCallId: chunk.toolCallId,\n result: chunk.result,\n }),\n );\n break;\n }\n\n case 'error': {\n controller.enqueue(\n formatDataStreamPart('error', getErrorMessage(chunk.error)),\n );\n break;\n }\n\n case 'step-start': {\n controller.enqueue(\n formatDataStreamPart('start_step', {\n messageId: chunk.messageId,\n }),\n );\n break;\n }\n\n case 'step-finish': {\n controller.enqueue(\n formatDataStreamPart('finish_step', {\n finishReason: chunk.finishReason,\n usage: sendUsage\n ? {\n promptTokens: chunk.usage.promptTokens,\n completionTokens: chunk.usage.completionTokens,\n }\n : undefined,\n isContinued: chunk.isContinued,\n }),\n );\n break;\n }\n\n case 'finish': {\n if (experimental_sendFinish) {\n controller.enqueue(\n formatDataStreamPart('finish_message', {\n finishReason: chunk.finishReason,\n usage: sendUsage\n ? {\n promptTokens: chunk.usage.promptTokens,\n completionTokens: chunk.usage.completionTokens,\n }\n : undefined,\n }),\n );\n }\n break;\n }\n\n default: {\n const exhaustiveCheck: never = chunkType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n }),\n );\n }\n\n pipeDataStreamToResponse(\n response: ServerResponse,\n {\n status,\n statusText,\n headers,\n data,\n getErrorMessage,\n sendUsage,\n sendReasoning,\n sendSources,\n experimental_sendFinish,\n }: ResponseInit &\n DataStreamOptions & {\n data?: StreamData;\n getErrorMessage?: (error: unknown) => string;\n } = {},\n ) {\n writeToServerResponse({\n response,\n status,\n statusText,\n headers: prepareOutgoingHttpHeaders(headers, {\n contentType: 'text/plain; charset=utf-8',\n dataStreamVersion: 'v1',\n }),\n stream: this.toDataStream({\n data,\n getErrorMessage,\n sendUsage,\n sendReasoning,\n sendSources,\n experimental_sendFinish,\n }),\n });\n }\n\n pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit) {\n writeToServerResponse({\n response,\n status: init?.status,\n statusText: init?.statusText,\n headers: prepareOutgoingHttpHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n }),\n stream: this.textStream.pipeThrough(new TextEncoderStream()),\n });\n }\n\n // TODO breaking change 5.0: remove pipeThrough(new TextEncoderStream())\n toDataStream(\n options?: DataStreamOptions & {\n data?: StreamData;\n getErrorMessage?: (error: unknown) => string;\n },\n ) {\n const stream = this.toDataStreamInternal({\n getErrorMessage: options?.getErrorMessage,\n sendUsage: options?.sendUsage,\n sendReasoning: options?.sendReasoning,\n sendSources: options?.sendSources,\n experimental_sendFinish: options?.experimental_sendFinish,\n }).pipeThrough(new TextEncoderStream());\n\n return options?.data ? mergeStreams(options?.data.stream, stream) : stream;\n }\n\n mergeIntoDataStream(writer: DataStreamWriter, options?: DataStreamOptions) {\n writer.merge(\n this.toDataStreamInternal({\n getErrorMessage: writer.onError,\n sendUsage: options?.sendUsage,\n sendReasoning: options?.sendReasoning,\n sendSources: options?.sendSources,\n experimental_sendFinish: options?.experimental_sendFinish,\n }),\n );\n }\n\n toDataStreamResponse({\n headers,\n status,\n statusText,\n data,\n getErrorMessage,\n sendUsage,\n sendReasoning,\n sendSources,\n experimental_sendFinish,\n }: ResponseInit &\n DataStreamOptions & {\n data?: StreamData;\n getErrorMessage?: (error: unknown) => string;\n } = {}): Response {\n return new Response(\n this.toDataStream({\n data,\n getErrorMessage,\n sendUsage,\n sendReasoning,\n sendSources,\n experimental_sendFinish,\n }),\n {\n status,\n statusText,\n headers: prepareResponseHeaders(headers, {\n contentType: 'text/plain; charset=utf-8',\n dataStreamVersion: 'v1',\n }),\n },\n );\n }\n\n toTextStreamResponse(init?: ResponseInit): Response {\n return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {\n status: init?.status ?? 200,\n headers: prepareResponseHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n }),\n });\n }\n}\n","import { z } from 'zod';\nimport {\n inferParameters,\n Tool,\n ToolExecutionOptions,\n ToolParameters,\n} from '../tool';\n\nexport const LATEST_PROTOCOL_VERSION = '2024-11-05';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [\n LATEST_PROTOCOL_VERSION,\n '2024-10-07',\n];\n\nexport type ToolSchemas =\n | Record\n | 'automatic'\n | undefined;\n\nexport type McpToolSet =\n TOOL_SCHEMAS extends Record\n ? {\n [K in keyof TOOL_SCHEMAS]: Tool<\n TOOL_SCHEMAS[K]['parameters'],\n CallToolResult\n > & {\n execute: (\n args: inferParameters,\n options: ToolExecutionOptions,\n ) => PromiseLike;\n };\n }\n : {\n [k: string]: Tool & {\n execute: (\n args: unknown,\n options: ToolExecutionOptions,\n ) => PromiseLike;\n };\n };\n\nconst ClientOrServerImplementationSchema = z\n .object({\n name: z.string(),\n version: z.string(),\n })\n .passthrough();\nexport type Configuration = z.infer;\n\nexport const BaseParamsSchema = z\n .object({\n _meta: z.optional(z.object({}).passthrough()),\n })\n .passthrough();\ntype BaseParams = z.infer;\nexport const ResultSchema = BaseParamsSchema;\n\nexport const RequestSchema = z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n});\nexport type Request = z.infer;\nexport type RequestOptions = {\n signal?: AbortSignal;\n timeout?: number;\n maxTotalTimeout?: number;\n};\n\nexport type Notification = z.infer;\n\nconst ServerCapabilitiesSchema = z\n .object({\n experimental: z.optional(z.object({}).passthrough()),\n logging: z.optional(z.object({}).passthrough()),\n prompts: z.optional(\n z\n .object({\n listChanged: z.optional(z.boolean()),\n })\n .passthrough(),\n ),\n resources: z.optional(\n z\n .object({\n subscribe: z.optional(z.boolean()),\n listChanged: z.optional(z.boolean()),\n })\n .passthrough(),\n ),\n tools: z.optional(\n z\n .object({\n listChanged: z.optional(z.boolean()),\n })\n .passthrough(),\n ),\n })\n .passthrough();\nexport type ServerCapabilities = z.infer;\n\nexport const InitializeResultSchema = ResultSchema.extend({\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ClientOrServerImplementationSchema,\n instructions: z.optional(z.string()),\n});\nexport type InitializeResult = z.infer;\n\nexport type PaginatedRequest = Request & {\n params?: BaseParams & {\n cursor?: string;\n };\n};\n\nconst PaginatedResultSchema = ResultSchema.extend({\n nextCursor: z.optional(z.string()),\n});\n\nconst ToolSchema = z\n .object({\n name: z.string(),\n description: z.optional(z.string()),\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.optional(z.object({}).passthrough()),\n })\n .passthrough(),\n })\n .passthrough();\nexport type MCPTool = z.infer;\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema),\n});\nexport type ListToolsResult = z.infer;\n\nconst TextContentSchema = z\n .object({\n type: z.literal('text'),\n text: z.string(),\n })\n .passthrough();\nconst ImageContentSchema = z\n .object({\n type: z.literal('image'),\n data: z.string().base64(),\n mimeType: z.string(),\n })\n .passthrough();\nconst ResourceContentsSchema = z\n .object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n })\n .passthrough();\nconst TextResourceContentsSchema = ResourceContentsSchema.extend({\n text: z.string(),\n});\nconst BlobResourceContentsSchema = ResourceContentsSchema.extend({\n blob: z.string().base64(),\n});\nconst EmbeddedResourceSchema = z\n .object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n })\n .passthrough();\n\nexport const CallToolResultSchema = ResultSchema.extend({\n content: z.array(\n z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema]),\n ),\n isError: z.boolean().default(false).optional(),\n}).or(\n ResultSchema.extend({\n toolResult: z.unknown(),\n }),\n);\nexport type CallToolResult = z.infer;\n","import { z } from 'zod';\nimport { BaseParamsSchema, RequestSchema, ResultSchema } from './types';\n\nconst JSONRPC_VERSION = '2.0';\n\nconst JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n })\n .merge(RequestSchema)\n .strict();\n\nexport type JSONRPCRequest = z.infer;\n\nconst JSONRPCResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n result: ResultSchema,\n })\n .strict();\n\nexport type JSONRPCResponse = z.infer;\n\nconst JSONRPCErrorSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n error: z.object({\n code: z.number().int(),\n message: z.string(),\n data: z.optional(z.unknown()),\n }),\n })\n .strict();\n\nexport type JSONRPCError = z.infer;\n\nconst JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n })\n .merge(\n z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n }),\n )\n .strict();\n\nexport type JSONRPCNotification = z.infer;\n\nexport const JSONRPCMessageSchema = z.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResponseSchema,\n JSONRPCErrorSchema,\n]);\n\nexport type JSONRPCMessage = z.infer;\n","import { formatDataStreamPart } from '@ai-sdk/ui-utils';\nimport { DataStreamWriter } from '../core/data-stream/data-stream-writer';\nimport { mergeStreams } from '../core/util/merge-streams';\nimport { prepareResponseHeaders } from '../core/util/prepare-response-headers';\nimport {\n createCallbacksTransformer,\n StreamCallbacks,\n} from './stream-callbacks';\nimport { StreamData } from './stream-data';\n\ntype LangChainImageDetail = 'auto' | 'low' | 'high';\n\ntype LangChainMessageContentText = {\n type: 'text';\n text: string;\n};\n\ntype LangChainMessageContentImageUrl = {\n type: 'image_url';\n image_url:\n | string\n | {\n url: string;\n detail?: LangChainImageDetail;\n };\n};\n\ntype LangChainMessageContentComplex =\n | LangChainMessageContentText\n | LangChainMessageContentImageUrl\n | (Record & {\n type?: 'text' | 'image_url' | string;\n })\n | (Record & {\n type?: never;\n });\n\ntype LangChainMessageContent = string | LangChainMessageContentComplex[];\n\ntype LangChainAIMessageChunk = {\n content: LangChainMessageContent;\n};\n\n// LC stream event v2\ntype LangChainStreamEvent = {\n event: string;\n data: any;\n};\n\nfunction toDataStreamInternal(\n stream:\n | ReadableStream\n | ReadableStream\n | ReadableStream,\n callbacks?: StreamCallbacks,\n) {\n return stream\n .pipeThrough(\n new TransformStream<\n LangChainStreamEvent | LangChainAIMessageChunk | string\n >({\n transform: async (value, controller) => {\n // text stream:\n if (typeof value === 'string') {\n controller.enqueue(value);\n return;\n }\n\n // LC stream events v2:\n if ('event' in value) {\n // chunk is AIMessage Chunk for on_chat_model_stream event:\n if (value.event === 'on_chat_model_stream') {\n forwardAIMessageChunk(\n value.data?.chunk as LangChainAIMessageChunk,\n controller,\n );\n }\n return;\n }\n\n // AI Message chunk stream:\n forwardAIMessageChunk(value, controller);\n },\n }),\n )\n .pipeThrough(createCallbacksTransformer(callbacks))\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(\n new TransformStream({\n transform: async (chunk, controller) => {\n controller.enqueue(formatDataStreamPart('text', chunk));\n },\n }),\n );\n}\n\n/**\nConverts LangChain output streams to an AI SDK Data Stream.\n\nThe following streams are supported:\n- `LangChainAIMessageChunk` streams (LangChain `model.stream` output)\n- `string` streams (LangChain `StringOutputParser` output)\n */\nexport function toDataStream(\n stream:\n | ReadableStream\n | ReadableStream\n | ReadableStream,\n callbacks?: StreamCallbacks,\n) {\n return toDataStreamInternal(stream, callbacks).pipeThrough(\n new TextEncoderStream(),\n );\n}\n\nexport function toDataStreamResponse(\n stream:\n | ReadableStream\n | ReadableStream\n | ReadableStream,\n options?: {\n init?: ResponseInit;\n data?: StreamData;\n callbacks?: StreamCallbacks;\n },\n) {\n const dataStream = toDataStreamInternal(\n stream,\n options?.callbacks,\n ).pipeThrough(new TextEncoderStream());\n const data = options?.data;\n const init = options?.init;\n\n const responseStream = data\n ? mergeStreams(data.stream, dataStream)\n : dataStream;\n\n return new Response(responseStream, {\n status: init?.status ?? 200,\n statusText: init?.statusText,\n headers: prepareResponseHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n dataStreamVersion: 'v1',\n }),\n });\n}\n\nexport function mergeIntoDataStream(\n stream:\n | ReadableStream\n | ReadableStream\n | ReadableStream,\n options: { dataStream: DataStreamWriter; callbacks?: StreamCallbacks },\n) {\n options.dataStream.merge(toDataStreamInternal(stream, options.callbacks));\n}\n\nfunction forwardAIMessageChunk(\n chunk: LangChainAIMessageChunk,\n controller: TransformStreamDefaultController,\n) {\n if (typeof chunk.content === 'string') {\n controller.enqueue(chunk.content);\n } else {\n const content: LangChainMessageContentComplex[] = chunk.content;\n for (const item of content) {\n if (item.type === 'text') {\n controller.enqueue(item.text);\n }\n }\n }\n}\n","/**\n * Configuration options and helper callback methods for stream lifecycle events.\n */\nexport interface StreamCallbacks {\n /** `onStart`: Called once when the stream is initialized. */\n onStart?: () => Promise | void;\n\n /**\n * `onCompletion`: Called for each tokenized message.\n *\n * @deprecated Use `onFinal` instead.\n */\n onCompletion?: (completion: string) => Promise | void;\n\n /** `onFinal`: Called once when the stream is closed with the final completion message. */\n onFinal?: (completion: string) => Promise | void;\n\n /** `onToken`: Called for each tokenized message. */\n onToken?: (token: string) => Promise | void;\n\n /** `onText`: Called for each text chunk. */\n onText?: (text: string) => Promise | void;\n}\n\n/**\n * Creates a transform stream that encodes input messages and invokes optional callback functions.\n * The transform stream uses the provided callbacks to execute custom logic at different stages of the stream's lifecycle.\n * - `onStart`: Called once when the stream is initialized.\n * - `onToken`: Called for each tokenized message.\n * - `onCompletion`: Called every time a completion message is received. This can occur multiple times when using e.g. OpenAI functions\n * - `onFinal`: Called once when the stream is closed with the final completion message.\n *\n * This function is useful when you want to process a stream of messages and perform specific actions during the stream's lifecycle.\n *\n * @param {StreamCallbacks} [callbacks] - An object containing the callback functions.\n * @return {TransformStream} A transform stream that encodes input messages as Uint8Array and allows the execution of custom logic through callbacks.\n *\n * @example\n * const callbacks = {\n * onStart: async () => console.log('Stream started'),\n * onToken: async (token) => console.log(`Token: ${token}`),\n * onCompletion: async (completion) => console.log(`Completion: ${completion}`)\n * onFinal: async () => data.close()\n * };\n * const transformer = createCallbacksTransformer(callbacks);\n */\nexport function createCallbacksTransformer(\n callbacks: StreamCallbacks | undefined = {},\n): TransformStream {\n const textEncoder = new TextEncoder();\n let aggregatedResponse = '';\n\n return new TransformStream({\n async start(): Promise {\n if (callbacks.onStart) await callbacks.onStart();\n },\n\n async transform(message, controller): Promise {\n controller.enqueue(textEncoder.encode(message));\n\n aggregatedResponse += message;\n\n if (callbacks.onToken) await callbacks.onToken(message);\n if (callbacks.onText && typeof message === 'string') {\n await callbacks.onText(message);\n }\n },\n\n async flush(): Promise {\n if (callbacks.onCompletion) {\n await callbacks.onCompletion(aggregatedResponse);\n }\n if (callbacks.onFinal) {\n await callbacks.onFinal(aggregatedResponse);\n }\n },\n });\n}\n","import { convertAsyncIteratorToReadableStream } from '@ai-sdk/provider-utils';\nimport { formatDataStreamPart } from '@ai-sdk/ui-utils';\nimport { DataStreamWriter } from '../core/data-stream/data-stream-writer';\nimport { mergeStreams } from '../core/util/merge-streams';\nimport { prepareResponseHeaders } from '../core/util/prepare-response-headers';\nimport {\n createCallbacksTransformer,\n StreamCallbacks,\n} from './stream-callbacks';\nimport { StreamData } from './stream-data';\n\ntype EngineResponse = {\n delta: string;\n};\n\nfunction toDataStreamInternal(\n stream: AsyncIterable,\n callbacks?: StreamCallbacks,\n) {\n const trimStart = trimStartOfStream();\n\n return convertAsyncIteratorToReadableStream(stream[Symbol.asyncIterator]())\n .pipeThrough(\n new TransformStream({\n async transform(message, controller): Promise {\n controller.enqueue(trimStart(message.delta));\n },\n }),\n )\n .pipeThrough(createCallbacksTransformer(callbacks))\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(\n new TransformStream({\n transform: async (chunk, controller) => {\n controller.enqueue(formatDataStreamPart('text', chunk));\n },\n }),\n );\n}\n\nexport function toDataStream(\n stream: AsyncIterable,\n callbacks?: StreamCallbacks,\n) {\n return toDataStreamInternal(stream, callbacks).pipeThrough(\n new TextEncoderStream(),\n );\n}\n\nexport function toDataStreamResponse(\n stream: AsyncIterable,\n options: {\n init?: ResponseInit;\n data?: StreamData;\n callbacks?: StreamCallbacks;\n } = {},\n) {\n const { init, data, callbacks } = options;\n const dataStream = toDataStreamInternal(stream, callbacks).pipeThrough(\n new TextEncoderStream(),\n );\n const responseStream = data\n ? mergeStreams(data.stream, dataStream)\n : dataStream;\n\n return new Response(responseStream, {\n status: init?.status ?? 200,\n statusText: init?.statusText,\n headers: prepareResponseHeaders(init?.headers, {\n contentType: 'text/plain; charset=utf-8',\n dataStreamVersion: 'v1',\n }),\n });\n}\n\nexport function mergeIntoDataStream(\n stream: AsyncIterable,\n options: {\n dataStream: DataStreamWriter;\n callbacks?: StreamCallbacks;\n },\n) {\n options.dataStream.merge(toDataStreamInternal(stream, options.callbacks));\n}\n\nfunction trimStartOfStream(): (text: string) => string {\n let isStreamStart = true;\n\n return (text: string): string => {\n if (isStreamStart) {\n text = text.trimStart();\n if (text) isStreamStart = false;\n }\n return text;\n };\n}\n","export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, TimePrecision, util, NEVER, } from \"../core/index.js\";\nexport { toJSONSchema } from \"../core/json-schema-processors.js\";\nexport { fromJSONSchema } from \"./from-json-schema.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport { toJSONSchema } from \"./json-schema-processors.js\";\nexport { JSONSchemaGenerator } from \"./json-schema-generator.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n","var _a;\n/** A special constant with type `never` */\nexport const NEVER = /*@__PURE__*/ Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n if (!inst._zod) {\n Object.defineProperty(inst, \"_zod\", {\n value: {\n def,\n constr: _,\n traits: new Set(),\n },\n enumerable: false,\n });\n }\n if (inst._zod.traits.has(name)) {\n return;\n }\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n const proto = _.prototype;\n const keys = Object.keys(proto);\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n if (!(k in inst)) {\n inst[k] = proto[k].bind(inst);\n }\n }\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\n(_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {});\nexport const globalConfig = globalThis.__zod_globalConfig;\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","import { globalConfig } from \"./core.js\";\n// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error(\"Unexpected value in exhaustive check\");\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const ratio = val / step;\n const roundedRatio = Math.round(ratio);\n // Use a relative epsilon scaled to the magnitude of the result\n const tolerance = Number.EPSILON * Math.max(Math.abs(ratio), 1);\n if (Math.abs(ratio - roundedRatio) < tolerance)\n return 0;\n return ratio - roundedRatio;\n}\nconst EVALUATING = /* @__PURE__*/ Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport function slugify(input) {\n return input\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/[\\s_-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = /* @__PURE__*/ cached(() => {\n // Skip the probe under `jitless`: strict CSPs report the caught `new Function`\n // as a `securitypolicyviolation` even though the throw is swallowed.\n if (globalConfig.jitless) {\n return false;\n }\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n if (typeof ctor !== \"function\")\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n if (o instanceof Map)\n return new Map(o);\n if (o instanceof Set)\n return new Set(o);\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = /* @__PURE__*/ new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = /* @__PURE__*/ new Set([\n \"string\",\n \"number\",\n \"bigint\",\n \"boolean\",\n \"symbol\",\n \"undefined\",\n]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = {};\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n newShape[key] = currDef.shape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const newShape = { ...schema._zod.def.shape };\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n assignProp(this, \"shape\", newShape); // self-caching\n return newShape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n // Only throw if new shape overlaps with existing shape\n // Use getOwnPropertyDescriptor to check key existence without accessing values\n const existingShape = schema._zod.def.shape;\n for (const key in shape) {\n if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {\n throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n }\n }\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n });\n return clone(schema, def);\n}\nexport function merge(a, b) {\n if (a._zod.def.checks?.length) {\n throw new Error(\".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.\");\n }\n const def = mergeDefs(a._zod.def, {\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: b._zod.def.checks ?? [],\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".partial() cannot be used on object schemas containing refinements\");\n }\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n checks: [],\n });\n return clone(schema, def);\n}\nexport function required(Class, schema, mask) {\n const def = mergeDefs(schema._zod.def, {\n get shape() {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n assignProp(this, \"shape\", shape); // self-caching\n return shape;\n },\n });\n return clone(schema, def);\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\n// Checks for explicit abort (continue === false), as opposed to implicit abort (continue === undefined).\n// Used to respect `abort: true` in .refine() even for checks that have a `when` function.\nexport function explicitlyAborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue === false) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const message = iss.message\n ? iss.message\n : (unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\");\n const { inst: _inst, continue: _continue, input: _input, ...rest } = iss;\n rest.path ?? (rest.path = []);\n rest.message = message;\n if (ctx?.reportInput) {\n rest.input = _input;\n }\n return rest;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function parsedType(data) {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"nan\" : \"number\";\n }\n case \"object\": {\n if (data === null) {\n return \"null\";\n }\n if (Array.isArray(data)) {\n return \"array\";\n }\n const obj = data;\n if (obj && Object.getPrototypeOf(obj) !== Object.prototype && \"constructor\" in obj && obj.constructor) {\n return obj.constructor.name;\n }\n }\n }\n return t;\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n inst.message = JSON.stringify(def, util.jsonStringifyReplacer, 2);\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n const fieldErrors = { _errors: [] };\n const processError = (error, path = []) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\nexport const _encode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return _parse(_Err)(schema, value, ctx);\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => (schema, value, _ctx) => {\n return _parse(_Err)(schema, value, _ctx);\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return _parseAsync(_Err)(schema, value, ctx);\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _parseAsync(_Err)(schema, value, _ctx);\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n","import * as util from \"./util.js\";\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const cuid = /^[cC][0-9a-z]{6,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const mac = (delimiter) => {\n const escapedDelim = util.escapeRegex(delimiter ?? \":\");\n return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);\n};\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\nexport const httpProtocol = /^https?$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\n// E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15\nexport const e164 = /^\\+[1-9]\\d{6,14}$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?$/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 4,\n patch: 3,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync, safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n if (util.explicitlyAborted(payload))\n continue;\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary\n // initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n // Lazy initialize ~standard to avoid creating objects for every schema\n util.defineLazy(inst, \"~standard\", () => ({\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n }));\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n // When normalize is off, require :// for http/https URLs\n // This prevents strings like \"http:example.com\" or \"https:/path\" from being silently accepted\n if (!def.normalize && def.protocol?.source === regexes.httpProtocol.source) {\n if (!/^https?:\\/\\//i.test(trimmed)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid URL format\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n return;\n }\n }\n // @ts-ignore\n const url = new URL(trimmed);\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: def.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // Set the output value based on normalize flag\n if (def.normalize) {\n // Use normalized URL\n payload.value = url.href;\n }\n else {\n // Preserve the original input (trimmed)\n payload.value = trimmed;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link $ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv4`;\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `ipv6`;\n inst._zod.check = (payload) => {\n try {\n // @ts-ignore\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodMAC = /*@__PURE__*/ core.$constructor(\"$ZodMAC\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.mac(def.delimiter));\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.format = `mac`;\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const parts = payload.value.split(\"/\");\n try {\n if (parts.length !== 2)\n throw new Error();\n const [address, prefix] = parts;\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n // @ts-ignore\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n // atob ignores whitespace, so reject it up front.\n if (/\\s/.test(data))\n return false;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64\";\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.bag.contentEncoding = \"base64url\";\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumberFormat\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checks\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigIntFormat\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handlePropertyResult(result, final, key, input, isOptionalIn, isOptionalOut) {\n const isPresent = key in input;\n if (result.issues.length) {\n // For optional-in/out schemas, ignore errors on absent keys.\n if (isOptionalIn && isOptionalOut && !isPresent) {\n return;\n }\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (!isPresent && !isOptionalIn) {\n if (!result.issues.length) {\n final.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: undefined,\n path: [key],\n });\n }\n return;\n }\n if (result.value === undefined) {\n if (isPresent) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst) {\n const unrecognized = [];\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n const isOptionalIn = _catchall.optin === \"optional\";\n const isOptionalOut = _catchall.optout === \"optional\";\n for (const key in input) {\n // skip __proto__ so it can't replace the result prototype via the\n // assignment setter on the plain {} we build into\n if (key === \"__proto__\")\n continue;\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut)));\n }\n else {\n handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n // const sh = def.shape;\n const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n if (!desc?.get) {\n const sh = def.shape;\n Object.defineProperty(def, \"shape\", {\n get: () => {\n const newSh = { ...sh };\n Object.defineProperty(def, \"shape\", {\n value: newSh,\n });\n return newSh;\n },\n });\n }\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = {};\n const proms = [];\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n const isOptionalIn = el._zod.optin === \"optional\";\n const isOptionalOut = el._zod.optout === \"optional\";\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut)));\n }\n else {\n handlePropertyResult(r, payload, key, input, isOptionalIn, isOptionalOut);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {};`);\n for (const key of normalized.keys) {\n const id = ids[key];\n const k = util.esc(key);\n const schema = shape[key];\n const isOptionalIn = schema?._zod?.optin === \"optional\";\n const isOptionalOut = schema?._zod?.optout === \"optional\";\n doc.write(`const ${id} = ${parseStr(key)};`);\n if (isOptionalIn && isOptionalOut) {\n // For optional-in/out schemas, ignore errors on absent keys\n doc.write(`\n if (${id}.issues.length) {\n if (${k} in input) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n else if (!isOptionalIn) {\n doc.write(`\n const ${id}_present = ${k} in input;\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n if (!${id}_present && !${id}.issues.length) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: undefined,\n path: [${k}]\n });\n }\n\n if (${id}_present) {\n if (${id}.value === undefined) {\n newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n }\n\n `);\n }\n else {\n doc.write(`\n if (${id}.issues.length) {\n payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}]\n })));\n }\n \n if (${id}.value === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n newResult[${k}] = ${id}.value;\n }\n \n `);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n inst._zod.parse = (payload, ctx) => {\n if (first) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nfunction handleExclusiveUnionResults(results, final, inst, ctx) {\n const successes = results.filter((r) => r.issues.length === 0);\n if (successes.length === 1) {\n final.value = successes[0].value;\n return final;\n }\n if (successes.length === 0) {\n // No matches - same as regular union\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n }\n else {\n // Multiple matches - exclusive union failure\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: [],\n inclusive: false,\n });\n }\n return final;\n}\nexport const $ZodXor = /*@__PURE__*/ core.$constructor(\"$ZodXor\", (inst, def) => {\n $ZodUnion.init(inst, def);\n def.inclusive = false;\n const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n inst._zod.parse = (payload, ctx) => {\n if (first) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n results.push(result);\n }\n }\n if (!async)\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n def.inclusive = false;\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n // Fall back to union matching when the fast discriminator path fails:\n // - explicitly enabled via unionFallback, or\n // - during backward direction (encode), since codec-based discriminators\n // have different values in forward vs backward directions\n if (def.unionFallback || ctx.direction === \"backward\") {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n options: Array.from(disc.value.keys()),\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n // Track which side(s) report each key as unrecognized\n const unrecKeys = new Map();\n let unrecIssue;\n for (const iss of left.issues) {\n if (iss.code === \"unrecognized_keys\") {\n unrecIssue ?? (unrecIssue = iss);\n for (const k of iss.keys) {\n if (!unrecKeys.has(k))\n unrecKeys.set(k, {});\n unrecKeys.get(k).l = true;\n }\n }\n else {\n result.issues.push(iss);\n }\n }\n for (const iss of right.issues) {\n if (iss.code === \"unrecognized_keys\") {\n for (const k of iss.keys) {\n if (!unrecKeys.has(k))\n unrecKeys.set(k, {});\n unrecKeys.get(k).r = true;\n }\n }\n else {\n result.issues.push(iss);\n }\n }\n // Report only keys unrecognized by BOTH sides\n const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k);\n if (bothKeys.length && unrecIssue) {\n result.issues.push({ ...unrecIssue, keys: bothKeys });\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n const optinStart = getTupleOptStart(items, \"optin\");\n const optoutStart = getTupleOptStart(items, \"optout\");\n if (!def.rest) {\n if (input.length < optinStart) {\n payload.issues.push({\n code: \"too_small\",\n minimum: optinStart,\n inclusive: true,\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n if (input.length > items.length) {\n payload.issues.push({\n code: \"too_big\",\n maximum: items.length,\n inclusive: true,\n input,\n inst,\n origin: \"array\",\n });\n }\n }\n // Run every item in parallel, collecting results into an indexed\n // array. The post-processing in `handleTupleResults` walks them in\n // order so it can decide whether an absent optional-output error can\n // truncate the tail or must be reported to preserve required output.\n const itemResults = new Array(items.length);\n for (let i = 0; i < items.length; i++) {\n const r = items[i]._zod.run({ value: input[i], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((rr) => {\n itemResults[i] = rr;\n }));\n }\n else {\n itemResults[i] = r;\n }\n }\n if (def.rest) {\n let i = items.length - 1;\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({ value: el, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((r) => handleTupleResult(r, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input, optoutStart));\n }\n return handleTupleResults(itemResults, payload, items, input, optoutStart);\n };\n});\nfunction getTupleOptStart(items, key) {\n for (let i = items.length - 1; i >= 0; i--) {\n if (items[i]._zod[key] !== \"optional\")\n return i + 1;\n }\n return 0;\n}\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nfunction handleTupleResults(itemResults, final, items, input, optoutStart) {\n // Walk results in order. Mirror $ZodObject's swallow-on-absent-optional\n // rule, but only after `optoutStart`: the first index where the output\n // tuple tail can be absent.\n for (let i = 0; i < items.length; i++) {\n const r = itemResults[i];\n const isPresent = i < input.length;\n if (r.issues.length) {\n if (!isPresent && i >= optoutStart) {\n final.value.length = i;\n break;\n }\n final.issues.push(...util.prefixIssues(i, r.issues));\n }\n final.value[i] = r.value;\n }\n // Drop trailing slots that produced `undefined` for absent input\n // (the array analog of an absent optional key on an object). The\n // `i >= input.length` floor is critical: an explicit `undefined`\n // *inside* the input must be preserved even when the schema is\n // optional-out (e.g. `z.string().or(z.undefined())` accepting an\n // explicit undefined value).\n for (let i = final.value.length - 1; i >= input.length; i--) {\n if (items[i]._zod.optout === \"optional\" && final.value[i] === undefined) {\n final.value.length = i;\n }\n else {\n break;\n }\n }\n return final;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n const values = def.keyType._zod.values;\n if (values) {\n payload.value = {};\n const recordKeys = new Set();\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n recordKeys.add(typeof key === \"number\" ? key.toString() : key);\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n continue;\n }\n const outKey = keyResult.value;\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[outKey] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[outKey] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!recordKeys.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n // Reflect.ownKeys for Symbol-key support; filter non-enumerable to match z.object()\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n if (!Object.prototype.propertyIsEnumerable.call(input, key))\n continue;\n let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n // Numeric string fallback: if key is a numeric string and failed, retry with Number(key)\n // This handles z.number(), z.literal([1, 2, 3]), and unions containing numeric literals\n const checkNumericKey = typeof key === \"string\" && regexes.number.test(key) && keyResult.issues.length;\n if (checkNumericKey) {\n const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);\n if (retryResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (retryResult.issues.length === 0) {\n keyResult = retryResult;\n }\n }\n if (keyResult.issues.length) {\n if (def.mode === \"loose\") {\n // Pass through unchanged\n payload.value[key] = input[key];\n }\n else {\n // Default \"strict\" behavior: error on invalid key\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n }\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n if (def.values.length === 0) {\n throw new Error(\"Cannot create literal schema with no valid values\");\n }\n const values = new Set(def.values);\n inst._zod.values = values;\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n payload.fallback = true;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n payload.fallback = true;\n return payload;\n };\n});\nfunction handleOptionalResult(result, input) {\n if (input === undefined && (result.issues.length || result.fallback)) {\n return { issues: [], value: undefined };\n }\n return result;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n const input = payload.value;\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise)\n return result.then((r) => handleOptionalResult(r, input));\n return handleOptionalResult(result, input);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodExactOptional = /*@__PURE__*/ core.$constructor(\"$ZodExactOptional\", (inst, def) => {\n // Call parent init - inherits optin/optout = \"optional\"\n $ZodOptional.init(inst, def);\n // Override values/pattern to NOT add undefined\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"pattern\", () => def.innerType._zod.pattern);\n // Override parse to just delegate (no undefined handling)\n inst._zod.parse = (payload, ctx) => {\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n payload.fallback = true;\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n payload.fallback = true;\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n if (left.issues.length) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues, fallback: left.fallback }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n util.defineLazy(inst._zod, \"propValues\", () => def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodPreprocess = /*@__PURE__*/ core.$constructor(\"$ZodPreprocess\", (inst, def) => {\n $ZodPipe.init(inst, def);\n});\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType?._zod?.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType?._zod?.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"string\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._def = def;\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n return function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n };\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n };\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // Cache the resolved inner type on the shared `def` so all clones of this\n // lazy (e.g. via `.describe()`/`.meta()`) share the same inner instance,\n // preserving identity for cycle detection on recursive schemas.\n util.defineLazy(inst._zod, \"innerType\", () => {\n const d = def;\n if (!d._cachedInner)\n d._cachedInner = def.getter();\n return d._cachedInner;\n });\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType?._zod?.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType?._zod?.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType?._zod?.optin ?? undefined);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType?._zod?.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as bg } from \"./bg.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as da } from \"./da.js\";\nexport { default as de } from \"./de.js\";\nexport { default as el } from \"./el.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hr } from \"./hr.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as hy } from \"./hy.js\";\nexport { default as id } from \"./id.js\";\nexport { default as is } from \"./is.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as ka } from \"./ka.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as km } from \"./km.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as lt } from \"./lt.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ro } from \"./ro.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as uk } from \"./uk.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as uz } from \"./uz.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\nexport { default as yo } from \"./yo.js\";\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حرف\", verb: \"أن يحوي\" },\n file: { unit: \"بايت\", verb: \"أن يحوي\" },\n array: { unit: \"عنصر\", verb: \"أن يحوي\" },\n set: { unit: \"عنصر\", verb: \"أن يحوي\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"مدخل\",\n email: \"بريد إلكتروني\",\n url: \"رابط\",\n emoji: \"إيموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاريخ ووقت بمعيار ISO\",\n date: \"تاريخ بمعيار ISO\",\n time: \"وقت بمعيار ISO\",\n duration: \"مدة بمعيار ISO\",\n ipv4: \"عنوان IPv4\",\n ipv6: \"عنوان IPv6\",\n cidrv4: \"مدى عناوين بصيغة IPv4\",\n cidrv6: \"مدى عناوين بصيغة IPv6\",\n base64: \"نَص بترميز base64-encoded\",\n base64url: \"نَص بترميز base64url-encoded\",\n json_string: \"نَص على هيئة JSON\",\n e164: \"رقم هاتف بمعيار E.164\",\n jwt: \"JWT\",\n template_literal: \"مدخل\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `مدخلات غير مقبولة: يفترض إدخال instanceof ${issue.expected}، ولكن تم إدخال ${received}`;\n }\n return `مدخلات غير مقبولة: يفترض إدخال ${expected}، ولكن تم إدخال ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `مدخلات غير مقبولة: يفترض إدخال ${util.stringifyPrimitive(issue.values[0])}`;\n return `اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return ` أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"}`;\n return `أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `نَص غير مقبول: يجب أن يبدأ بـ \"${issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `نَص غير مقبول: يجب أن ينتهي بـ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `نَص غير مقبول: يجب أن يتضمَّن \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} غير مقبول`;\n }\n case \"not_multiple_of\":\n return `رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `معرف${issue.keys.length > 1 ? \"ات\" : \"\"} غريب${issue.keys.length > 1 ? \"ة\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `معرف غير مقبول في ${issue.origin}`;\n case \"invalid_union\":\n return \"مدخل غير مقبول\";\n case \"invalid_element\":\n return `مدخل غير مقبول في ${issue.origin}`;\n default:\n return \"مدخل غير مقبول\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"simvol\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"element\", verb: \"olmalıdır\" },\n set: { unit: \"element\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Yanlış dəyər: gözlənilən instanceof ${issue.expected}, daxil olan ${received}`;\n }\n return `Yanlış dəyər: gözlənilən ${expected}, daxil olan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Yanlış dəyər: gözlənilən ${util.stringifyPrimitive(issue.values[0])}`;\n return `Yanlış seçim: aşağıdakılardan biri olmalıdır: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Yanlış mətn: \"${_issue.prefix}\" ilə başlamalıdır`;\n if (_issue.format === \"ends_with\")\n return `Yanlış mətn: \"${_issue.suffix}\" ilə bitməlidir`;\n if (_issue.format === \"includes\")\n return `Yanlış mətn: \"${_issue.includes}\" daxil olmalıdır`;\n if (_issue.format === \"regex\")\n return `Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`;\n return `Yanlış ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`;\n case \"unrecognized_keys\":\n return `Tanınmayan açar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} daxilində yanlış açar`;\n case \"invalid_union\":\n return \"Yanlış dəyər\";\n case \"invalid_element\":\n return `${issue.origin} daxilində yanlış dəyər`;\n default:\n return `Yanlış dəyər`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"сімвал\",\n few: \"сімвалы\",\n many: \"сімвалаў\",\n },\n verb: \"мець\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байты\",\n many: \"байтаў\",\n },\n verb: \"мець\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"увод\",\n email: \"email адрас\",\n url: \"URL\",\n emoji: \"эмодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата і час\",\n date: \"ISO дата\",\n time: \"ISO час\",\n duration: \"ISO працягласць\",\n ipv4: \"IPv4 адрас\",\n ipv6: \"IPv6 адрас\",\n cidrv4: \"IPv4 дыяпазон\",\n cidrv6: \"IPv6 дыяпазон\",\n base64: \"радок у фармаце base64\",\n base64url: \"радок у фармаце base64url\",\n json_string: \"JSON радок\",\n e164: \"нумар E.164\",\n jwt: \"JWT\",\n template_literal: \"увод\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"лік\",\n array: \"масіў\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Няправільны ўвод: чакаўся instanceof ${issue.expected}, атрымана ${received}`;\n }\n return `Няправільны ўвод: чакаўся ${expected}, атрымана ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Няправільны ўвод: чакалася ${util.stringifyPrimitive(issue.values[0])}`;\n return `Няправільны варыянт: чакаўся адзін з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна быць ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Няправільны радок: павінен пачынацца з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Няправільны радок: павінен заканчвацца на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Няправільны радок: павінен змяшчаць \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`;\n return `Няправільны ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Няправільны лік: павінен быць кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспазнаны ${issue.keys.length > 1 ? \"ключы\" : \"ключ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Няправільны ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Няправільны ўвод\";\n case \"invalid_element\":\n return `Няправільнае значэнне ў ${issue.origin}`;\n default:\n return `Няправільны ўвод`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"символа\", verb: \"да съдържа\" },\n file: { unit: \"байта\", verb: \"да съдържа\" },\n array: { unit: \"елемента\", verb: \"да съдържа\" },\n set: { unit: \"елемента\", verb: \"да съдържа\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"вход\",\n email: \"имейл адрес\",\n url: \"URL\",\n emoji: \"емоджи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO време\",\n date: \"ISO дата\",\n time: \"ISO време\",\n duration: \"ISO продължителност\",\n ipv4: \"IPv4 адрес\",\n ipv6: \"IPv6 адрес\",\n cidrv4: \"IPv4 диапазон\",\n cidrv6: \"IPv6 диапазон\",\n base64: \"base64-кодиран низ\",\n base64url: \"base64url-кодиран низ\",\n json_string: \"JSON низ\",\n e164: \"E.164 номер\",\n jwt: \"JWT\",\n template_literal: \"вход\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"число\",\n array: \"масив\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Невалиден вход: очакван instanceof ${issue.expected}, получен ${received}`;\n }\n return `Невалиден вход: очакван ${expected}, получен ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Невалиден вход: очакван ${util.stringifyPrimitive(issue.values[0])}`;\n return `Невалидна опция: очаквано едно от ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Твърде голямо: очаква се ${issue.origin ?? \"стойност\"} да съдържа ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елемента\"}`;\n return `Твърде голямо: очаква се ${issue.origin ?? \"стойност\"} да бъде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Твърде малко: очаква се ${issue.origin} да съдържа ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Твърде малко: очаква се ${issue.origin} да бъде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Невалиден низ: трябва да започва с \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Невалиден низ: трябва да завършва с \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Невалиден низ: трябва да включва \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Невалиден низ: трябва да съвпада с ${_issue.pattern}`;\n let invalid_adj = \"Невалиден\";\n if (_issue.format === \"emoji\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"datetime\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"date\")\n invalid_adj = \"Невалидна\";\n if (_issue.format === \"time\")\n invalid_adj = \"Невалидно\";\n if (_issue.format === \"duration\")\n invalid_adj = \"Невалидна\";\n return `${invalid_adj} ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Невалидно число: трябва да бъде кратно на ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Неразпознат${issue.keys.length > 1 ? \"и\" : \"\"} ключ${issue.keys.length > 1 ? \"ове\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Невалиден ключ в ${issue.origin}`;\n case \"invalid_union\":\n return \"Невалиден вход\";\n case \"invalid_element\":\n return `Невалидна стойност в ${issue.origin}`;\n default:\n return `Невалиден вход`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caràcters\", verb: \"contenir\" },\n file: { unit: \"bytes\", verb: \"contenir\" },\n array: { unit: \"elements\", verb: \"contenir\" },\n set: { unit: \"elements\", verb: \"contenir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entrada\",\n email: \"adreça electrònica\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"durada ISO\",\n ipv4: \"adreça IPv4\",\n ipv6: \"adreça IPv6\",\n cidrv4: \"rang IPv4\",\n cidrv6: \"rang IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"cadena codificada en base64url\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Tipus invàlid: s'esperava instanceof ${issue.expected}, s'ha rebut ${received}`;\n }\n return `Tipus invàlid: s'esperava ${expected}, s'ha rebut ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Valor invàlid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opció invàlida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"com a màxim\" : \"menys de\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"com a mínim\" : \"més de\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Format invàlid: ha de començar amb \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Format invàlid: ha d'acabar amb \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Format invàlid: ha d'incloure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`;\n return `Format invàlid per a ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número invàlid: ha de ser múltiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clau invàlida a ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada invàlida\"; // Could also be \"Tipus d'unió invàlid\" but \"Entrada invàlida\" is more general\n case \"invalid_element\":\n return `Element invàlid a ${issue.origin}`;\n default:\n return `Entrada invàlida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaků\", verb: \"mít\" },\n file: { unit: \"bajtů\", verb: \"mít\" },\n array: { unit: \"prvků\", verb: \"mít\" },\n set: { unit: \"prvků\", verb: \"mít\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"regulární výraz\",\n email: \"e-mailová adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"datum a čas ve formátu ISO\",\n date: \"datum ve formátu ISO\",\n time: \"čas ve formátu ISO\",\n duration: \"doba trvání ISO\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"rozsah IPv4\",\n cidrv6: \"rozsah IPv6\",\n base64: \"řetězec zakódovaný ve formátu base64\",\n base64url: \"řetězec zakódovaný ve formátu base64url\",\n json_string: \"řetězec ve formátu JSON\",\n e164: \"číslo E.164\",\n jwt: \"JWT\",\n template_literal: \"vstup\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"číslo\",\n string: \"řetězec\",\n function: \"funkce\",\n array: \"pole\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Neplatný vstup: očekáváno instanceof ${issue.expected}, obdrženo ${received}`;\n }\n return `Neplatný vstup: očekáváno ${expected}, obdrženo ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neplatný vstup: očekáváno ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neplatná možnost: očekávána jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neplatný řetězec: musí začínat na \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neplatný řetězec: musí končit na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neplatný řetězec: musí obsahovat \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`;\n return `Neplatný formát ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neplatné číslo: musí být násobkem ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neznámé klíče: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neplatný klíč v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neplatný vstup\";\n case \"invalid_element\":\n return `Neplatná hodnota v ${issue.origin}`;\n default:\n return `Neplatný vstup`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"havde\" },\n file: { unit: \"bytes\", verb: \"havde\" },\n array: { unit: \"elementer\", verb: \"indeholdt\" },\n set: { unit: \"elementer\", verb: \"indeholdt\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"e-mailadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslæt\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslæt\",\n duration: \"ISO-varighed\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodet streng\",\n base64url: \"base64url-kodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n string: \"streng\",\n number: \"tal\",\n boolean: \"boolean\",\n array: \"liste\",\n object: \"objekt\",\n set: \"sæt\",\n file: \"fil\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ugyldigt input: forventede instanceof ${issue.expected}, fik ${received}`;\n }\n return `Ugyldigt input: forventede ${expected}, fik ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig værdi: forventede ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldigt valg: forventede en af følgende ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing)\n return `For stor: forventede ${origin ?? \"value\"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor: forventede ${origin ?? \"value\"} havde ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing) {\n return `For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: skal starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: skal ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: skal indeholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: skal matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldigt tal: skal være deleligt med ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukendte nøgler\" : \"Ukendt nøgle\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøgle i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldigt input: matcher ingen af de tilladte typer\";\n case \"invalid_element\":\n return `Ugyldig værdi i ${issue.origin}`;\n default:\n return `Ugyldigt input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"Zeichen\", verb: \"zu haben\" },\n file: { unit: \"Bytes\", verb: \"zu haben\" },\n array: { unit: \"Elemente\", verb: \"zu haben\" },\n set: { unit: \"Elemente\", verb: \"zu haben\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"Zahl\",\n array: \"Array\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ungültige Eingabe: erwartet instanceof ${issue.expected}, erhalten ${received}`;\n }\n return `Ungültige Eingabe: erwartet ${expected}, erhalten ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ungültige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ungültige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n }\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ungültiger String: muss mit \"${_issue.prefix}\" beginnen`;\n if (_issue.format === \"ends_with\")\n return `Ungültiger String: muss mit \"${_issue.suffix}\" enden`;\n if (_issue.format === \"includes\")\n return `Ungültiger String: muss \"${_issue.includes}\" enthalten`;\n if (_issue.format === \"regex\")\n return `Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n return `Ungültig: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Unbekannte Schlüssel\" : \"Unbekannter Schlüssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ungültiger Schlüssel in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ungültige Eingabe\";\n case \"invalid_element\":\n return `Ungültiger Wert in ${issue.origin}`;\n default:\n return `Ungültige Eingabe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"χαρακτήρες\", verb: \"να έχει\" },\n file: { unit: \"bytes\", verb: \"να έχει\" },\n array: { unit: \"στοιχεία\", verb: \"να έχει\" },\n set: { unit: \"στοιχεία\", verb: \"να έχει\" },\n map: { unit: \"καταχωρήσεις\", verb: \"να έχει\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"είσοδος\",\n email: \"διεύθυνση email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO ημερομηνία και ώρα\",\n date: \"ISO ημερομηνία\",\n time: \"ISO ώρα\",\n duration: \"ISO διάρκεια\",\n ipv4: \"διεύθυνση IPv4\",\n ipv6: \"διεύθυνση IPv6\",\n mac: \"διεύθυνση MAC\",\n cidrv4: \"εύρος IPv4\",\n cidrv6: \"εύρος IPv6\",\n base64: \"συμβολοσειρά κωδικοποιημένη σε base64\",\n base64url: \"συμβολοσειρά κωδικοποιημένη σε base64url\",\n json_string: \"συμβολοσειρά JSON\",\n e164: \"αριθμός E.164\",\n jwt: \"JWT\",\n template_literal: \"είσοδος\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (typeof issue.expected === \"string\" && /^[A-Z]/.test(issue.expected)) {\n return `Μη έγκυρη είσοδος: αναμενόταν instanceof ${issue.expected}, λήφθηκε ${received}`;\n }\n return `Μη έγκυρη είσοδος: αναμενόταν ${expected}, λήφθηκε ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Μη έγκυρη είσοδος: αναμενόταν ${util.stringifyPrimitive(issue.values[0])}`;\n return `Μη έγκυρη επιλογή: αναμενόταν ένα από ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Πολύ μεγάλο: αναμενόταν ${issue.origin ?? \"τιμή\"} να έχει ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"στοιχεία\"}`;\n return `Πολύ μεγάλο: αναμενόταν ${issue.origin ?? \"τιμή\"} να είναι ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Πολύ μικρό: αναμενόταν ${issue.origin} να έχει ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Πολύ μικρό: αναμενόταν ${issue.origin} να είναι ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Μη έγκυρη συμβολοσειρά: πρέπει να ξεκινά με \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Μη έγκυρη συμβολοσειρά: πρέπει να τελειώνει με \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Μη έγκυρη συμβολοσειρά: πρέπει να περιέχει \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Μη έγκυρη συμβολοσειρά: πρέπει να ταιριάζει με το μοτίβο ${_issue.pattern}`;\n return `Μη έγκυρο: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Μη έγκυρος αριθμός: πρέπει να είναι πολλαπλάσιο του ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Άγνωστ${issue.keys.length > 1 ? \"α\" : \"ο\"} κλειδ${issue.keys.length > 1 ? \"ιά\" : \"ί\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Μη έγκυρο κλειδί στο ${issue.origin}`;\n case \"invalid_union\":\n return \"Μη έγκυρη είσοδος\";\n case \"invalid_element\":\n return `Μη έγκυρη τιμή στο ${issue.origin}`;\n default:\n return `Μη έγκυρη είσοδος`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n map: { unit: \"entries\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n mac: \"MAC address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n // type names: missing keys = do not translate (use raw value via ?? fallback)\n const TypeDictionary = {\n // Compatibility: \"nan\" -> \"NaN\" for display\n nan: \"NaN\",\n // All other type names omitted - they fall back to raw values via ?? operator\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n return `Invalid input: expected ${expected}, received ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n if (issue.options && Array.isArray(issue.options) && issue.options.length > 0) {\n const opts = issue.options.map((o) => `'${o}'`).join(\" | \");\n return `Invalid discriminator value. Expected ${opts}`;\n }\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emoĝio\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datotempo\",\n date: \"ISO-dato\",\n time: \"ISO-tempo\",\n duration: \"ISO-daŭro\",\n ipv4: \"IPv4-adreso\",\n ipv6: \"IPv6-adreso\",\n cidrv4: \"IPv4-rango\",\n cidrv6: \"IPv6-rango\",\n base64: \"64-ume kodita karaktraro\",\n base64url: \"URL-64-ume kodita karaktraro\",\n json_string: \"JSON-karaktraro\",\n e164: \"E.164-nombro\",\n jwt: \"JWT\",\n template_literal: \"enigo\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombro\",\n array: \"tabelo\",\n null: \"senvalora\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Nevalida enigo: atendiĝis instanceof ${issue.expected}, riceviĝis ${received}`;\n }\n return `Nevalida enigo: atendiĝis ${expected}, riceviĝis ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nevalida enigo: atendiĝis ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nevalida opcio: atendiĝis unu el ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nevalida karaktraro: devas komenciĝi per \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nevalida karaktraro: devas finiĝi per \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n return `Nevalida ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} ŝlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nevalida ŝlosilo en ${issue.origin}`;\n case \"invalid_union\":\n return \"Nevalida enigo\";\n case \"invalid_element\":\n return `Nevalida valoro en ${issue.origin}`;\n default:\n return `Nevalida enigo`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"tener\" },\n file: { unit: \"bytes\", verb: \"tener\" },\n array: { unit: \"elementos\", verb: \"tener\" },\n set: { unit: \"elementos\", verb: \"tener\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entrada\",\n email: \"dirección de correo electrónico\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"fecha y hora ISO\",\n date: \"fecha ISO\",\n time: \"hora ISO\",\n duration: \"duración ISO\",\n ipv4: \"dirección IPv4\",\n ipv6: \"dirección IPv6\",\n cidrv4: \"rango IPv4\",\n cidrv6: \"rango IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"URL codificada en base64\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n string: \"texto\",\n number: \"número\",\n boolean: \"booleano\",\n array: \"arreglo\",\n object: \"objeto\",\n set: \"conjunto\",\n file: \"archivo\",\n date: \"fecha\",\n bigint: \"número grande\",\n symbol: \"símbolo\",\n undefined: \"indefinido\",\n null: \"nulo\",\n function: \"función\",\n map: \"mapa\",\n record: \"registro\",\n tuple: \"tupla\",\n enum: \"enumeración\",\n union: \"unión\",\n literal: \"literal\",\n promise: \"promesa\",\n void: \"vacío\",\n never: \"nunca\",\n unknown: \"desconocido\",\n any: \"cualquiera\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entrada inválida: se esperaba instanceof ${issue.expected}, recibido ${received}`;\n }\n return `Entrada inválida: se esperaba ${expected}, recibido ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opción inválida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing)\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing) {\n return `Demasiado pequeño: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado pequeño: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena inválida: debe comenzar con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cadena inválida: debe terminar en \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cadena inválida: debe incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`;\n return `Inválido ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número inválido: debe ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Llave inválida en ${TypeDictionary[issue.origin] ?? issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido en ${TypeDictionary[issue.origin] ?? issue.origin}`;\n default:\n return `Entrada inválida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"کاراکتر\", verb: \"داشته باشد\" },\n file: { unit: \"بایت\", verb: \"داشته باشد\" },\n array: { unit: \"آیتم\", verb: \"داشته باشد\" },\n set: { unit: \"آیتم\", verb: \"داشته باشد\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"ورودی\",\n email: \"آدرس ایمیل\",\n url: \"URL\",\n emoji: \"ایموجی\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاریخ و زمان ایزو\",\n date: \"تاریخ ایزو\",\n time: \"زمان ایزو\",\n duration: \"مدت زمان ایزو\",\n ipv4: \"IPv4 آدرس\",\n ipv6: \"IPv6 آدرس\",\n cidrv4: \"IPv4 دامنه\",\n cidrv6: \"IPv6 دامنه\",\n base64: \"base64-encoded رشته\",\n base64url: \"base64url-encoded رشته\",\n json_string: \"JSON رشته\",\n e164: \"E.164 عدد\",\n jwt: \"JWT\",\n template_literal: \"ورودی\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"عدد\",\n array: \"آرایه\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ورودی نامعتبر: می‌بایست instanceof ${issue.expected} می‌بود، ${received} دریافت شد`;\n }\n return `ورودی نامعتبر: می‌بایست ${expected} می‌بود، ${received} دریافت شد`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ورودی نامعتبر: می‌بایست ${util.stringifyPrimitive(issue.values[0])} می‌بود`;\n }\n return `گزینه نامعتبر: می‌بایست یکی از ${util.joinValues(issue.values, \"|\")} می‌بود`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"} باشد`;\n }\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} باشد`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`;\n }\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `رشته نامعتبر: باید با \"${_issue.prefix}\" شروع شود`;\n }\n if (_issue.format === \"ends_with\") {\n return `رشته نامعتبر: باید با \"${_issue.suffix}\" تمام شود`;\n }\n if (_issue.format === \"includes\") {\n return `رشته نامعتبر: باید شامل \"${_issue.includes}\" باشد`;\n }\n if (_issue.format === \"regex\") {\n return `رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`;\n }\n return `${FormatDictionary[_issue.format] ?? issue.format} نامعتبر`;\n }\n case \"not_multiple_of\":\n return `عدد نامعتبر: باید مضرب ${issue.divisor} باشد`;\n case \"unrecognized_keys\":\n return `کلید${issue.keys.length > 1 ? \"های\" : \"\"} ناشناس: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `کلید ناشناس در ${issue.origin}`;\n case \"invalid_union\":\n return `ورودی نامعتبر`;\n case \"invalid_element\":\n return `مقدار نامعتبر در ${issue.origin}`;\n default:\n return `ورودی نامعتبر`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"merkkiä\", subject: \"merkkijonon\" },\n file: { unit: \"tavua\", subject: \"tiedoston\" },\n array: { unit: \"alkiota\", subject: \"listan\" },\n set: { unit: \"alkiota\", subject: \"joukon\" },\n number: { unit: \"\", subject: \"luvun\" },\n bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n int: { unit: \"\", subject: \"kokonaisluvun\" },\n date: { unit: \"\", subject: \"päivämäärän\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"säännöllinen lauseke\",\n email: \"sähköpostiosoite\",\n url: \"URL-osoite\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-aikaleima\",\n date: \"ISO-päivämäärä\",\n time: \"ISO-aika\",\n duration: \"ISO-kesto\",\n ipv4: \"IPv4-osoite\",\n ipv6: \"IPv6-osoite\",\n cidrv4: \"IPv4-alue\",\n cidrv6: \"IPv6-alue\",\n base64: \"base64-koodattu merkkijono\",\n base64url: \"base64url-koodattu merkkijono\",\n json_string: \"JSON-merkkijono\",\n e164: \"E.164-luku\",\n jwt: \"JWT\",\n template_literal: \"templaattimerkkijono\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Virheellinen tyyppi: odotettiin instanceof ${issue.expected}, oli ${received}`;\n }\n return `Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen syöte: täytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n return `Virheellinen valinta: täytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Virheellinen syöte: täytyy alkaa \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Virheellinen syöte: täytyy loppua \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Virheellinen syöte: täytyy sisältää \"${_issue.includes}\"`;\n if (_issue.format === \"regex\") {\n return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`;\n }\n return `Virheellinen ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Virheellinen avain tietueessa\";\n case \"invalid_union\":\n return \"Virheellinen unioni\";\n case \"invalid_element\":\n return \"Virheellinen arvo joukossa\";\n default:\n return `Virheellinen syöte`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entrée\",\n email: \"adresse e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date et heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n const TypeDictionary = {\n string: \"chaîne\",\n number: \"nombre\",\n int: \"entier\",\n boolean: \"booléen\",\n bigint: \"grand entier\",\n symbol: \"symbole\",\n undefined: \"indéfini\",\n null: \"null\",\n never: \"jamais\",\n void: \"vide\",\n date: \"date\",\n array: \"tableau\",\n object: \"objet\",\n tuple: \"tuple\",\n record: \"enregistrement\",\n map: \"carte\",\n set: \"ensemble\",\n file: \"fichier\",\n nonoptional: \"non-optionnel\",\n nan: \"NaN\",\n function: \"fonction\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entrée invalide : instanceof ${issue.expected} attendu, ${received} reçu`;\n }\n return `Entrée invalide : ${expected} attendu, ${received} reçu`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"élément(s)\"}`;\n return `Trop grand : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit être ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop petit : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Trop petit : ${TypeDictionary[issue.origin] ?? \"valeur\"} doit être ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"entrée\",\n email: \"adresse courriel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date-heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Entrée invalide : attendu instanceof ${issue.expected}, reçu ${received}`;\n }\n return `Entrée invalide : attendu ${expected}, reçu ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"≤\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"≥\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n // Hebrew labels + grammatical gender\n const TypeNames = {\n string: { label: \"מחרוזת\", gender: \"f\" },\n number: { label: \"מספר\", gender: \"m\" },\n boolean: { label: \"ערך בוליאני\", gender: \"m\" },\n bigint: { label: \"BigInt\", gender: \"m\" },\n date: { label: \"תאריך\", gender: \"m\" },\n array: { label: \"מערך\", gender: \"m\" },\n object: { label: \"אובייקט\", gender: \"m\" },\n null: { label: \"ערך ריק (null)\", gender: \"m\" },\n undefined: { label: \"ערך לא מוגדר (undefined)\", gender: \"m\" },\n symbol: { label: \"סימבול (Symbol)\", gender: \"m\" },\n function: { label: \"פונקציה\", gender: \"f\" },\n map: { label: \"מפה (Map)\", gender: \"f\" },\n set: { label: \"קבוצה (Set)\", gender: \"f\" },\n file: { label: \"קובץ\", gender: \"m\" },\n promise: { label: \"Promise\", gender: \"m\" },\n NaN: { label: \"NaN\", gender: \"m\" },\n unknown: { label: \"ערך לא ידוע\", gender: \"m\" },\n value: { label: \"ערך\", gender: \"m\" },\n };\n // Sizing units for size-related messages + localized origin labels\n const Sizable = {\n string: { unit: \"תווים\", shortLabel: \"קצר\", longLabel: \"ארוך\" },\n file: { unit: \"בייטים\", shortLabel: \"קטן\", longLabel: \"גדול\" },\n array: { unit: \"פריטים\", shortLabel: \"קטן\", longLabel: \"גדול\" },\n set: { unit: \"פריטים\", shortLabel: \"קטן\", longLabel: \"גדול\" },\n number: { unit: \"\", shortLabel: \"קטן\", longLabel: \"גדול\" }, // no unit\n };\n // Helpers — labels, articles, and verbs\n const typeEntry = (t) => (t ? TypeNames[t] : undefined);\n const typeLabel = (t) => {\n const e = typeEntry(t);\n if (e)\n return e.label;\n // fallback: show raw string if unknown\n return t ?? TypeNames.unknown.label;\n };\n const withDefinite = (t) => `ה${typeLabel(t)}`;\n const verbFor = (t) => {\n const e = typeEntry(t);\n const gender = e?.gender ?? \"m\";\n return gender === \"f\" ? \"צריכה להיות\" : \"צריך להיות\";\n };\n const getSizing = (origin) => {\n if (!origin)\n return null;\n return Sizable[origin] ?? null;\n };\n const FormatDictionary = {\n regex: { label: \"קלט\", gender: \"m\" },\n email: { label: \"כתובת אימייל\", gender: \"f\" },\n url: { label: \"כתובת רשת\", gender: \"f\" },\n emoji: { label: \"אימוג'י\", gender: \"m\" },\n uuid: { label: \"UUID\", gender: \"m\" },\n nanoid: { label: \"nanoid\", gender: \"m\" },\n guid: { label: \"GUID\", gender: \"m\" },\n cuid: { label: \"cuid\", gender: \"m\" },\n cuid2: { label: \"cuid2\", gender: \"m\" },\n ulid: { label: \"ULID\", gender: \"m\" },\n xid: { label: \"XID\", gender: \"m\" },\n ksuid: { label: \"KSUID\", gender: \"m\" },\n datetime: { label: \"תאריך וזמן ISO\", gender: \"m\" },\n date: { label: \"תאריך ISO\", gender: \"m\" },\n time: { label: \"זמן ISO\", gender: \"m\" },\n duration: { label: \"משך זמן ISO\", gender: \"m\" },\n ipv4: { label: \"כתובת IPv4\", gender: \"f\" },\n ipv6: { label: \"כתובת IPv6\", gender: \"f\" },\n cidrv4: { label: \"טווח IPv4\", gender: \"m\" },\n cidrv6: { label: \"טווח IPv6\", gender: \"m\" },\n base64: { label: \"מחרוזת בבסיס 64\", gender: \"f\" },\n base64url: { label: \"מחרוזת בבסיס 64 לכתובות רשת\", gender: \"f\" },\n json_string: { label: \"מחרוזת JSON\", gender: \"f\" },\n e164: { label: \"מספר E.164\", gender: \"m\" },\n jwt: { label: \"JWT\", gender: \"m\" },\n ends_with: { label: \"קלט\", gender: \"m\" },\n includes: { label: \"קלט\", gender: \"m\" },\n lowercase: { label: \"קלט\", gender: \"m\" },\n starts_with: { label: \"קלט\", gender: \"m\" },\n uppercase: { label: \"קלט\", gender: \"m\" },\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n // Expected type: show without definite article for clearer Hebrew\n const expectedKey = issue.expected;\n const expected = TypeDictionary[expectedKey ?? \"\"] ?? typeLabel(expectedKey);\n // Received: show localized label if known, otherwise constructor/raw\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? TypeNames[receivedType]?.label ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `קלט לא תקין: צריך להיות instanceof ${issue.expected}, התקבל ${received}`;\n }\n return `קלט לא תקין: צריך להיות ${expected}, התקבל ${received}`;\n }\n case \"invalid_value\": {\n if (issue.values.length === 1) {\n return `ערך לא תקין: הערך חייב להיות ${util.stringifyPrimitive(issue.values[0])}`;\n }\n // Join values with proper Hebrew formatting\n const stringified = issue.values.map((v) => util.stringifyPrimitive(v));\n if (issue.values.length === 2) {\n return `ערך לא תקין: האפשרויות המתאימות הן ${stringified[0]} או ${stringified[1]}`;\n }\n // For 3+ values: \"a\", \"b\" או \"c\"\n const lastValue = stringified[stringified.length - 1];\n const restValues = stringified.slice(0, -1).join(\", \");\n return `ערך לא תקין: האפשרויות המתאימות הן ${restValues} או ${lastValue}`;\n }\n case \"too_big\": {\n const sizing = getSizing(issue.origin);\n const subject = withDefinite(issue.origin ?? \"value\");\n if (issue.origin === \"string\") {\n // Special handling for strings - more natural Hebrew\n return `${sizing?.longLabel ?? \"ארוך\"} מדי: ${subject} צריכה להכיל ${issue.maximum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"או פחות\" : \"לכל היותר\"}`.trim();\n }\n if (issue.origin === \"number\") {\n // Natural Hebrew for numbers\n const comparison = issue.inclusive ? `קטן או שווה ל-${issue.maximum}` : `קטן מ-${issue.maximum}`;\n return `גדול מדי: ${subject} צריך להיות ${comparison}`;\n }\n if (issue.origin === \"array\" || issue.origin === \"set\") {\n // Natural Hebrew for arrays and sets\n const verb = issue.origin === \"set\" ? \"צריכה\" : \"צריך\";\n const comparison = issue.inclusive\n ? `${issue.maximum} ${sizing?.unit ?? \"\"} או פחות`\n : `פחות מ-${issue.maximum} ${sizing?.unit ?? \"\"}`;\n return `גדול מדי: ${subject} ${verb} להכיל ${comparison}`.trim();\n }\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const be = verbFor(issue.origin ?? \"value\");\n if (sizing?.unit) {\n return `${sizing.longLabel} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n }\n return `${sizing?.longLabel ?? \"גדול\"} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const sizing = getSizing(issue.origin);\n const subject = withDefinite(issue.origin ?? \"value\");\n if (issue.origin === \"string\") {\n // Special handling for strings - more natural Hebrew\n return `${sizing?.shortLabel ?? \"קצר\"} מדי: ${subject} צריכה להכיל ${issue.minimum.toString()} ${sizing?.unit ?? \"\"} ${issue.inclusive ? \"או יותר\" : \"לפחות\"}`.trim();\n }\n if (issue.origin === \"number\") {\n // Natural Hebrew for numbers\n const comparison = issue.inclusive ? `גדול או שווה ל-${issue.minimum}` : `גדול מ-${issue.minimum}`;\n return `קטן מדי: ${subject} צריך להיות ${comparison}`;\n }\n if (issue.origin === \"array\" || issue.origin === \"set\") {\n // Natural Hebrew for arrays and sets\n const verb = issue.origin === \"set\" ? \"צריכה\" : \"צריך\";\n // Special case for singular (minimum === 1)\n if (issue.minimum === 1 && issue.inclusive) {\n const singularPhrase = issue.origin === \"set\" ? \"לפחות פריט אחד\" : \"לפחות פריט אחד\";\n return `קטן מדי: ${subject} ${verb} להכיל ${singularPhrase}`;\n }\n const comparison = issue.inclusive\n ? `${issue.minimum} ${sizing?.unit ?? \"\"} או יותר`\n : `יותר מ-${issue.minimum} ${sizing?.unit ?? \"\"}`;\n return `קטן מדי: ${subject} ${verb} להכיל ${comparison}`.trim();\n }\n const adj = issue.inclusive ? \">=\" : \">\";\n const be = verbFor(issue.origin ?? \"value\");\n if (sizing?.unit) {\n return `${sizing.shortLabel} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `${sizing?.shortLabel ?? \"קטן\"} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n // These apply to strings — use feminine grammar + ה׳ הידיעה\n if (_issue.format === \"starts_with\")\n return `המחרוזת חייבת להתחיל ב \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `המחרוזת חייבת להסתיים ב \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `המחרוזת חייבת לכלול \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `המחרוזת חייבת להתאים לתבנית ${_issue.pattern}`;\n // Handle gender agreement for formats\n const nounEntry = FormatDictionary[_issue.format];\n const noun = nounEntry?.label ?? _issue.format;\n const gender = nounEntry?.gender ?? \"m\";\n const adjective = gender === \"f\" ? \"תקינה\" : \"תקין\";\n return `${noun} לא ${adjective}`;\n }\n case \"not_multiple_of\":\n return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `מפתח${issue.keys.length > 1 ? \"ות\" : \"\"} לא מזוה${issue.keys.length > 1 ? \"ים\" : \"ה\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\": {\n return `שדה לא תקין באובייקט`;\n }\n case \"invalid_union\":\n return \"קלט לא תקין\";\n case \"invalid_element\": {\n const place = withDefinite(issue.origin ?? \"array\");\n return `ערך לא תקין ב${place}`;\n }\n default:\n return `קלט לא תקין`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakova\", verb: \"imati\" },\n file: { unit: \"bajtova\", verb: \"imati\" },\n array: { unit: \"stavki\", verb: \"imati\" },\n set: { unit: \"stavki\", verb: \"imati\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"unos\",\n email: \"email adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum i vrijeme\",\n date: \"ISO datum\",\n time: \"ISO vrijeme\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"IPv4 raspon\",\n cidrv6: \"IPv6 raspon\",\n base64: \"base64 kodirani tekst\",\n base64url: \"base64url kodirani tekst\",\n json_string: \"JSON tekst\",\n e164: \"E.164 broj\",\n jwt: \"JWT\",\n template_literal: \"unos\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n string: \"tekst\",\n number: \"broj\",\n boolean: \"boolean\",\n array: \"niz\",\n object: \"objekt\",\n set: \"skup\",\n file: \"datoteka\",\n date: \"datum\",\n bigint: \"bigint\",\n symbol: \"simbol\",\n undefined: \"undefined\",\n null: \"null\",\n function: \"funkcija\",\n map: \"mapa\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Neispravan unos: očekuje se instanceof ${issue.expected}, a primljeno je ${received}`;\n }\n return `Neispravan unos: očekuje se ${expected}, a primljeno je ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neispravna vrijednost: očekivano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neispravna opcija: očekivano jedno od ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing)\n return `Preveliko: očekivano da ${origin ?? \"vrijednost\"} ima ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemenata\"}`;\n return `Preveliko: očekivano da ${origin ?? \"vrijednost\"} bude ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n if (sizing) {\n return `Premalo: očekivano da ${origin} ima ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premalo: očekivano da ${origin} bude ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neispravan tekst: mora započinjati s \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neispravan tekst: mora završavati s \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neispravan tekst: mora sadržavati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neispravan tekst: mora odgovarati uzorku ${_issue.pattern}`;\n return `Neispravna ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neispravan broj: mora biti višekratnik od ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznat${issue.keys.length > 1 ? \"i ključevi\" : \" ključ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neispravan ključ u ${TypeDictionary[issue.origin] ?? issue.origin}`;\n case \"invalid_union\":\n return \"Neispravan unos\";\n case \"invalid_element\":\n return `Neispravna vrijednost u ${TypeDictionary[issue.origin] ?? issue.origin}`;\n default:\n return `Neispravan unos`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"legyen\" },\n file: { unit: \"byte\", verb: \"legyen\" },\n array: { unit: \"elem\", verb: \"legyen\" },\n set: { unit: \"elem\", verb: \"legyen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"bemenet\",\n email: \"email cím\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO időbélyeg\",\n date: \"ISO dátum\",\n time: \"ISO idő\",\n duration: \"ISO időintervallum\",\n ipv4: \"IPv4 cím\",\n ipv6: \"IPv6 cím\",\n cidrv4: \"IPv4 tartomány\",\n cidrv6: \"IPv6 tartomány\",\n base64: \"base64-kódolt string\",\n base64url: \"base64url-kódolt string\",\n json_string: \"JSON string\",\n e164: \"E.164 szám\",\n jwt: \"JWT\",\n template_literal: \"bemenet\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"szám\",\n array: \"tömb\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Érvénytelen bemenet: a várt érték instanceof ${issue.expected}, a kapott érték ${received}`;\n }\n return `Érvénytelen bemenet: a várt érték ${expected}, a kapott érték ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Érvénytelen bemenet: a várt érték ${util.stringifyPrimitive(issue.values[0])}`;\n return `Érvénytelen opció: valamelyik érték várt ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Túl nagy: ${issue.origin ?? \"érték\"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n return `Túl nagy: a bemeneti érték ${issue.origin ?? \"érték\"} túl nagy: ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Érvénytelen string: \"${_issue.prefix}\" értékkel kell kezdődnie`;\n if (_issue.format === \"ends_with\")\n return `Érvénytelen string: \"${_issue.suffix}\" értékkel kell végződnie`;\n if (_issue.format === \"includes\")\n return `Érvénytelen string: \"${_issue.includes}\" értéket kell tartalmaznia`;\n if (_issue.format === \"regex\")\n return `Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`;\n return `Érvénytelen ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`;\n case \"unrecognized_keys\":\n return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Érvénytelen kulcs ${issue.origin}`;\n case \"invalid_union\":\n return \"Érvénytelen bemenet\";\n case \"invalid_element\":\n return `Érvénytelen érték: ${issue.origin}`;\n default:\n return `Érvénytelen bemenet`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getArmenianPlural(count, one, many) {\n return Math.abs(count) === 1 ? one : many;\n}\nfunction withDefiniteArticle(word) {\n if (!word)\n return \"\";\n const vowels = [\"ա\", \"ե\", \"ը\", \"ի\", \"ո\", \"ու\", \"օ\"];\n const lastChar = word[word.length - 1];\n return word + (vowels.includes(lastChar) ? \"ն\" : \"ը\");\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"նշան\",\n many: \"նշաններ\",\n },\n verb: \"ունենալ\",\n },\n file: {\n unit: {\n one: \"բայթ\",\n many: \"բայթեր\",\n },\n verb: \"ունենալ\",\n },\n array: {\n unit: {\n one: \"տարր\",\n many: \"տարրեր\",\n },\n verb: \"ունենալ\",\n },\n set: {\n unit: {\n one: \"տարր\",\n many: \"տարրեր\",\n },\n verb: \"ունենալ\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"մուտք\",\n email: \"էլ. հասցե\",\n url: \"URL\",\n emoji: \"էմոջի\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO ամսաթիվ և ժամ\",\n date: \"ISO ամսաթիվ\",\n time: \"ISO ժամ\",\n duration: \"ISO տևողություն\",\n ipv4: \"IPv4 հասցե\",\n ipv6: \"IPv6 հասցե\",\n cidrv4: \"IPv4 միջակայք\",\n cidrv6: \"IPv6 միջակայք\",\n base64: \"base64 ձևաչափով տող\",\n base64url: \"base64url ձևաչափով տող\",\n json_string: \"JSON տող\",\n e164: \"E.164 համար\",\n jwt: \"JWT\",\n template_literal: \"մուտք\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"թիվ\",\n array: \"զանգված\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Սխալ մուտքագրում․ սպասվում էր instanceof ${issue.expected}, ստացվել է ${received}`;\n }\n return `Սխալ մուտքագրում․ սպասվում էր ${expected}, ստացվել է ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Սխալ մուտքագրում․ սպասվում էր ${util.stringifyPrimitive(issue.values[1])}`;\n return `Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getArmenianPlural(maxValue, sizing.unit.one, sizing.unit.many);\n return `Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin ?? \"արժեք\")} կունենա ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin ?? \"արժեք\")} լինի ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getArmenianPlural(minValue, sizing.unit.one, sizing.unit.many);\n return `Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin)} կունենա ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin)} լինի ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Սխալ տող․ պետք է սկսվի \"${_issue.prefix}\"-ով`;\n if (_issue.format === \"ends_with\")\n return `Սխալ տող․ պետք է ավարտվի \"${_issue.suffix}\"-ով`;\n if (_issue.format === \"includes\")\n return `Սխալ տող․ պետք է պարունակի \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Սխալ տող․ պետք է համապատասխանի ${_issue.pattern} ձևաչափին`;\n return `Սխալ ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Սխալ թիվ․ պետք է բազմապատիկ լինի ${issue.divisor}-ի`;\n case \"unrecognized_keys\":\n return `Չճանաչված բանալի${issue.keys.length > 1 ? \"ներ\" : \"\"}. ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Սխալ բանալի ${withDefiniteArticle(issue.origin)}-ում`;\n case \"invalid_union\":\n return \"Սխալ մուտքագրում\";\n case \"invalid_element\":\n return `Սխալ արժեք ${withDefiniteArticle(issue.origin)}-ում`;\n default:\n return `Սխալ մուտքագրում`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input tidak valid: diharapkan instanceof ${issue.expected}, diterima ${received}`;\n }\n return `Input tidak valid: diharapkan ${expected}, diterima ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"stafi\", verb: \"að hafa\" },\n file: { unit: \"bæti\", verb: \"að hafa\" },\n array: { unit: \"hluti\", verb: \"að hafa\" },\n set: { unit: \"hluti\", verb: \"að hafa\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"gildi\",\n email: \"netfang\",\n url: \"vefslóð\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dagsetning og tími\",\n date: \"ISO dagsetning\",\n time: \"ISO tími\",\n duration: \"ISO tímalengd\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded strengur\",\n base64url: \"base64url-encoded strengur\",\n json_string: \"JSON strengur\",\n e164: \"E.164 tölugildi\",\n jwt: \"JWT\",\n template_literal: \"gildi\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"númer\",\n array: \"fylki\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Rangt gildi: Þú slóst inn ${received} þar sem á að vera instanceof ${issue.expected}`;\n }\n return `Rangt gildi: Þú slóst inn ${received} þar sem á að vera ${expected}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Rangt gildi: gert ráð fyrir ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ógilt val: má vera eitt af eftirfarandi ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"hluti\"}`;\n return `Of stórt: gert er ráð fyrir að ${issue.origin ?? \"gildi\"} sé ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Of lítið: gert er ráð fyrir að ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Of lítið: gert er ráð fyrir að ${issue.origin} sé ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ógildur strengur: verður að byrja á \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ógildur strengur: verður að enda á \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ógildur strengur: verður að innihalda \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ógildur strengur: verður að fylgja mynstri ${_issue.pattern}`;\n return `Rangt ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Röng tala: verður að vera margfeldi af ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Óþekkt ${issue.keys.length > 1 ? \"ir lyklar\" : \"ur lykill\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Rangur lykill í ${issue.origin}`;\n case \"invalid_union\":\n return \"Rangt gildi\";\n case \"invalid_element\":\n return `Rangt gildi í ${issue.origin}`;\n default:\n return `Rangt gildi`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caratteri\", verb: \"avere\" },\n file: { unit: \"byte\", verb: \"avere\" },\n array: { unit: \"elementi\", verb: \"avere\" },\n set: { unit: \"elementi\", verb: \"avere\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"numero\",\n array: \"vettore\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input non valido: atteso instanceof ${issue.expected}, ricevuto ${received}`;\n }\n return `Input non valido: atteso ${expected}, ricevuto ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Input non valido: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"文字\", verb: \"である\" },\n file: { unit: \"バイト\", verb: \"である\" },\n array: { unit: \"要素\", verb: \"である\" },\n set: { unit: \"要素\", verb: \"である\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"入力値\",\n email: \"メールアドレス\",\n url: \"URL\",\n emoji: \"絵文字\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日時\",\n date: \"ISO日付\",\n time: \"ISO時刻\",\n duration: \"ISO期間\",\n ipv4: \"IPv4アドレス\",\n ipv6: \"IPv6アドレス\",\n cidrv4: \"IPv4範囲\",\n cidrv6: \"IPv6範囲\",\n base64: \"base64エンコード文字列\",\n base64url: \"base64urlエンコード文字列\",\n json_string: \"JSON文字列\",\n e164: \"E.164番号\",\n jwt: \"JWT\",\n template_literal: \"入力値\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"数値\",\n array: \"配列\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `無効な入力: instanceof ${issue.expected}が期待されましたが、${received}が入力されました`;\n }\n return `無効な入力: ${expected}が期待されましたが、${received}が入力されました`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無効な入力: ${util.stringifyPrimitive(issue.values[0])}が期待されました`;\n return `無効な選択: ${util.joinValues(issue.values, \"、\")}のいずれかである必要があります`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"以下である\" : \"より小さい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${sizing.unit ?? \"要素\"}${adj}必要があります`;\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${adj}必要があります`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"以上である\" : \"より大きい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`;\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `無効な文字列: \"${_issue.prefix}\"で始まる必要があります`;\n if (_issue.format === \"ends_with\")\n return `無効な文字列: \"${_issue.suffix}\"で終わる必要があります`;\n if (_issue.format === \"includes\")\n return `無効な文字列: \"${_issue.includes}\"を含む必要があります`;\n if (_issue.format === \"regex\")\n return `無効な文字列: パターン${_issue.pattern}に一致する必要があります`;\n return `無効な${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無効な数値: ${issue.divisor}の倍数である必要があります`;\n case \"unrecognized_keys\":\n return `認識されていないキー${issue.keys.length > 1 ? \"群\" : \"\"}: ${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin}内の無効なキー`;\n case \"invalid_union\":\n return \"無効な入力\";\n case \"invalid_element\":\n return `${issue.origin}内の無効な値`;\n default:\n return `無効な入力`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"სიმბოლო\", verb: \"უნდა შეიცავდეს\" },\n file: { unit: \"ბაიტი\", verb: \"უნდა შეიცავდეს\" },\n array: { unit: \"ელემენტი\", verb: \"უნდა შეიცავდეს\" },\n set: { unit: \"ელემენტი\", verb: \"უნდა შეიცავდეს\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"შეყვანა\",\n email: \"ელ-ფოსტის მისამართი\",\n url: \"URL\",\n emoji: \"ემოჯი\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"თარიღი-დრო\",\n date: \"თარიღი\",\n time: \"დრო\",\n duration: \"ხანგრძლივობა\",\n ipv4: \"IPv4 მისამართი\",\n ipv6: \"IPv6 მისამართი\",\n cidrv4: \"IPv4 დიაპაზონი\",\n cidrv6: \"IPv6 დიაპაზონი\",\n base64: \"base64-კოდირებული ველი\",\n base64url: \"base64url-კოდირებული ველი\",\n json_string: \"JSON ველი\",\n e164: \"E.164 ნომერი\",\n jwt: \"JWT\",\n template_literal: \"შეყვანა\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"რიცხვი\",\n string: \"ველი\",\n boolean: \"ბულეანი\",\n function: \"ფუნქცია\",\n array: \"მასივი\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `არასწორი შეყვანა: მოსალოდნელი instanceof ${issue.expected}, მიღებული ${received}`;\n }\n return `არასწორი შეყვანა: მოსალოდნელი ${expected}, მიღებული ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `არასწორი შეყვანა: მოსალოდნელი ${util.stringifyPrimitive(issue.values[0])}`;\n return `არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${util.joinValues(issue.values, \"|\")}-დან`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `ზედმეტად დიდი: მოსალოდნელი ${issue.origin ?? \"მნიშვნელობა\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `ზედმეტად დიდი: მოსალოდნელი ${issue.origin ?? \"მნიშვნელობა\"} იყოს ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ზედმეტად პატარა: მოსალოდნელი ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `ზედმეტად პატარა: მოსალოდნელი ${issue.origin} იყოს ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `არასწორი ველი: უნდა იწყებოდეს \"${_issue.prefix}\"-ით`;\n }\n if (_issue.format === \"ends_with\")\n return `არასწორი ველი: უნდა მთავრდებოდეს \"${_issue.suffix}\"-ით`;\n if (_issue.format === \"includes\")\n return `არასწორი ველი: უნდა შეიცავდეს \"${_issue.includes}\"-ს`;\n if (_issue.format === \"regex\")\n return `არასწორი ველი: უნდა შეესაბამებოდეს შაბლონს ${_issue.pattern}`;\n return `არასწორი ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `არასწორი რიცხვი: უნდა იყოს ${issue.divisor}-ის ჯერადი`;\n case \"unrecognized_keys\":\n return `უცნობი გასაღებ${issue.keys.length > 1 ? \"ები\" : \"ი\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `არასწორი გასაღები ${issue.origin}-ში`;\n case \"invalid_union\":\n return \"არასწორი შეყვანა\";\n case \"invalid_element\":\n return `არასწორი მნიშვნელობა ${issue.origin}-ში`;\n default:\n return `არასწორი შეყვანა`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"តួអក្សរ\", verb: \"គួរមាន\" },\n file: { unit: \"បៃ\", verb: \"គួរមាន\" },\n array: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n set: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"ទិន្នន័យបញ្ចូល\",\n email: \"អាសយដ្ឋានអ៊ីមែល\",\n url: \"URL\",\n emoji: \"សញ្ញាអារម្មណ៍\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"កាលបរិច្ឆេទ និងម៉ោង ISO\",\n date: \"កាលបរិច្ឆេទ ISO\",\n time: \"ម៉ោង ISO\",\n duration: \"រយៈពេល ISO\",\n ipv4: \"អាសយដ្ឋាន IPv4\",\n ipv6: \"អាសយដ្ឋាន IPv6\",\n cidrv4: \"ដែនអាសយដ្ឋាន IPv4\",\n cidrv6: \"ដែនអាសយដ្ឋាន IPv6\",\n base64: \"ខ្សែអក្សរអ៊ិកូដ base64\",\n base64url: \"ខ្សែអក្សរអ៊ិកូដ base64url\",\n json_string: \"ខ្សែអក្សរ JSON\",\n e164: \"លេខ E.164\",\n jwt: \"JWT\",\n template_literal: \"ទិន្នន័យបញ្ចូល\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"លេខ\",\n array: \"អារេ (Array)\",\n null: \"គ្មានតម្លៃ (null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${issue.expected} ប៉ុន្តែទទួលបាន ${received}`;\n }\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${expected} ប៉ុន្តែទទួលបាន ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;\n return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"ធាតុ\"}`;\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;\n return `មិនត្រឹមត្រូវ៖ ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n case \"invalid_union\":\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n case \"invalid_element\":\n return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n default:\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import km from \"./km.js\";\n/** @deprecated Use `km` instead. */\nexport default function () {\n return km();\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"문자\", verb: \"to have\" },\n file: { unit: \"바이트\", verb: \"to have\" },\n array: { unit: \"개\", verb: \"to have\" },\n set: { unit: \"개\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"입력\",\n email: \"이메일 주소\",\n url: \"URL\",\n emoji: \"이모지\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 날짜시간\",\n date: \"ISO 날짜\",\n time: \"ISO 시간\",\n duration: \"ISO 기간\",\n ipv4: \"IPv4 주소\",\n ipv6: \"IPv6 주소\",\n cidrv4: \"IPv4 범위\",\n cidrv6: \"IPv6 범위\",\n base64: \"base64 인코딩 문자열\",\n base64url: \"base64url 인코딩 문자열\",\n json_string: \"JSON 문자열\",\n e164: \"E.164 번호\",\n jwt: \"JWT\",\n template_literal: \"입력\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `잘못된 입력: 예상 타입은 instanceof ${issue.expected}, 받은 타입은 ${received}입니다`;\n }\n return `잘못된 입력: 예상 타입은 ${expected}, 받은 타입은 ${received}입니다`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `잘못된 입력: 값은 ${util.stringifyPrimitive(issue.values[0])} 이어야 합니다`;\n return `잘못된 옵션: ${util.joinValues(issue.values, \"또는 \")} 중 하나여야 합니다`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"이하\" : \"미만\";\n const suffix = adj === \"미만\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing)\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"이상\" : \"초과\";\n const suffix = adj === \"이상\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing) {\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n }\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `잘못된 문자열: \"${_issue.prefix}\"(으)로 시작해야 합니다`;\n }\n if (_issue.format === \"ends_with\")\n return `잘못된 문자열: \"${_issue.suffix}\"(으)로 끝나야 합니다`;\n if (_issue.format === \"includes\")\n return `잘못된 문자열: \"${_issue.includes}\"을(를) 포함해야 합니다`;\n if (_issue.format === \"regex\")\n return `잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`;\n return `잘못된 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `잘못된 숫자: ${issue.divisor}의 배수여야 합니다`;\n case \"unrecognized_keys\":\n return `인식할 수 없는 키: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `잘못된 키: ${issue.origin}`;\n case \"invalid_union\":\n return `잘못된 입력`;\n case \"invalid_element\":\n return `잘못된 값: ${issue.origin}`;\n default:\n return `잘못된 입력`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst capitalizeFirstCharacter = (text) => {\n return text.charAt(0).toUpperCase() + text.slice(1);\n};\nfunction getUnitTypeFromNumber(number) {\n const abs = Math.abs(number);\n const last = abs % 10;\n const last2 = abs % 100;\n if ((last2 >= 11 && last2 <= 19) || last === 0)\n return \"many\";\n if (last === 1)\n return \"one\";\n return \"few\";\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"simbolis\",\n few: \"simboliai\",\n many: \"simbolių\",\n },\n verb: {\n smaller: {\n inclusive: \"turi būti ne ilgesnė kaip\",\n notInclusive: \"turi būti trumpesnė kaip\",\n },\n bigger: {\n inclusive: \"turi būti ne trumpesnė kaip\",\n notInclusive: \"turi būti ilgesnė kaip\",\n },\n },\n },\n file: {\n unit: {\n one: \"baitas\",\n few: \"baitai\",\n many: \"baitų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi būti ne didesnis kaip\",\n notInclusive: \"turi būti mažesnis kaip\",\n },\n bigger: {\n inclusive: \"turi būti ne mažesnis kaip\",\n notInclusive: \"turi būti didesnis kaip\",\n },\n },\n },\n array: {\n unit: {\n one: \"elementą\",\n few: \"elementus\",\n many: \"elementų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi turėti ne daugiau kaip\",\n notInclusive: \"turi turėti mažiau kaip\",\n },\n bigger: {\n inclusive: \"turi turėti ne mažiau kaip\",\n notInclusive: \"turi turėti daugiau kaip\",\n },\n },\n },\n set: {\n unit: {\n one: \"elementą\",\n few: \"elementus\",\n many: \"elementų\",\n },\n verb: {\n smaller: {\n inclusive: \"turi turėti ne daugiau kaip\",\n notInclusive: \"turi turėti mažiau kaip\",\n },\n bigger: {\n inclusive: \"turi turėti ne mažiau kaip\",\n notInclusive: \"turi turėti daugiau kaip\",\n },\n },\n },\n };\n function getSizing(origin, unitType, inclusive, targetShouldBe) {\n const result = Sizable[origin] ?? null;\n if (result === null)\n return result;\n return {\n unit: result.unit[unitType],\n verb: result.verb[targetShouldBe][inclusive ? \"inclusive\" : \"notInclusive\"],\n };\n }\n const FormatDictionary = {\n regex: \"įvestis\",\n email: \"el. pašto adresas\",\n url: \"URL\",\n emoji: \"jaustukas\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO data ir laikas\",\n date: \"ISO data\",\n time: \"ISO laikas\",\n duration: \"ISO trukmė\",\n ipv4: \"IPv4 adresas\",\n ipv6: \"IPv6 adresas\",\n cidrv4: \"IPv4 tinklo prefiksas (CIDR)\",\n cidrv6: \"IPv6 tinklo prefiksas (CIDR)\",\n base64: \"base64 užkoduota eilutė\",\n base64url: \"base64url užkoduota eilutė\",\n json_string: \"JSON eilutė\",\n e164: \"E.164 numeris\",\n jwt: \"JWT\",\n template_literal: \"įvestis\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"skaičius\",\n bigint: \"sveikasis skaičius\",\n string: \"eilutė\",\n boolean: \"loginė reikšmė\",\n undefined: \"neapibrėžta reikšmė\",\n function: \"funkcija\",\n symbol: \"simbolis\",\n array: \"masyvas\",\n object: \"objektas\",\n null: \"nulinė reikšmė\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Gautas tipas ${received}, o tikėtasi - instanceof ${issue.expected}`;\n }\n return `Gautas tipas ${received}, o tikėtasi - ${expected}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Privalo būti ${util.stringifyPrimitive(issue.values[0])}`;\n return `Privalo būti vienas iš ${util.joinValues(issue.values, \"|\")} pasirinkimų`;\n case \"too_big\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.maximum)), issue.inclusive ?? false, \"smaller\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit ?? \"elementų\"}`;\n const adj = issue.inclusive ? \"ne didesnis kaip\" : \"mažesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi būti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`;\n }\n case \"too_small\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n const sizing = getSizing(issue.origin, getUnitTypeFromNumber(Number(issue.minimum)), issue.inclusive ?? false, \"bigger\");\n if (sizing?.verb)\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit ?? \"elementų\"}`;\n const adj = issue.inclusive ? \"ne mažesnis kaip\" : \"didesnis kaip\";\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi būti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Eilutė privalo prasidėti \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Eilutė privalo pasibaigti \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Eilutė privalo įtraukti \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Eilutė privalo atitikti ${_issue.pattern}`;\n return `Neteisingas ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Skaičius privalo būti ${issue.divisor} kartotinis.`;\n case \"unrecognized_keys\":\n return `Neatpažint${issue.keys.length > 1 ? \"i\" : \"as\"} rakt${issue.keys.length > 1 ? \"ai\" : \"as\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Rastas klaidingas raktas\";\n case \"invalid_union\":\n return \"Klaidinga įvestis\";\n case \"invalid_element\": {\n const origin = TypeDictionary[issue.origin] ?? issue.origin;\n return `${capitalizeFirstCharacter(origin ?? issue.origin ?? \"reikšmė\")} turi klaidingą įvestį`;\n }\n default:\n return \"Klaidinga įvestis\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"знаци\", verb: \"да имаат\" },\n file: { unit: \"бајти\", verb: \"да имаат\" },\n array: { unit: \"ставки\", verb: \"да имаат\" },\n set: { unit: \"ставки\", verb: \"да имаат\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"внес\",\n email: \"адреса на е-пошта\",\n url: \"URL\",\n emoji: \"емоџи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO датум и време\",\n date: \"ISO датум\",\n time: \"ISO време\",\n duration: \"ISO времетраење\",\n ipv4: \"IPv4 адреса\",\n ipv6: \"IPv6 адреса\",\n cidrv4: \"IPv4 опсег\",\n cidrv6: \"IPv6 опсег\",\n base64: \"base64-енкодирана низа\",\n base64url: \"base64url-енкодирана низа\",\n json_string: \"JSON низа\",\n e164: \"E.164 број\",\n jwt: \"JWT\",\n template_literal: \"внес\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"број\",\n array: \"низа\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Грешен внес: се очекува instanceof ${issue.expected}, примено ${received}`;\n }\n return `Грешен внес: се очекува ${expected}, примено ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Грешана опција: се очекува една ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да има ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементи\"}`;\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да биде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Неважечка низа: мора да започнува со \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Неважечка низа: мора да завршува со \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неважечка низа: мора да вклучува \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Грешен број: мора да биде делив со ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Непрепознаени клучеви\" : \"Непрепознаен клуч\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Грешен клуч во ${issue.origin}`;\n case \"invalid_union\":\n return \"Грешен внес\";\n case \"invalid_element\":\n return `Грешна вредност во ${issue.origin}`;\n default:\n return `Грешен внес`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"aksara\", verb: \"mempunyai\" },\n file: { unit: \"bait\", verb: \"mempunyai\" },\n array: { unit: \"elemen\", verb: \"mempunyai\" },\n set: { unit: \"elemen\", verb: \"mempunyai\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"nombor\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Input tidak sah: dijangka instanceof ${issue.expected}, diterima ${received}`;\n }\n return `Input tidak sah: dijangka ${expected}, diterima ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\", verb: \"heeft\" },\n file: { unit: \"bytes\", verb: \"heeft\" },\n array: { unit: \"elementen\", verb: \"heeft\" },\n set: { unit: \"elementen\", verb: \"heeft\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"getal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`;\n }\n return `Ongeldige invoer: verwacht ${expected}, ontving ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n const longName = issue.origin === \"date\" ? \"laat\" : issue.origin === \"string\" ? \"lang\" : \"groot\";\n if (sizing)\n return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} ${sizing.verb}`;\n return `Te ${longName}: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n const shortName = issue.origin === \"date\" ? \"vroeg\" : issue.origin === \"string\" ? \"kort\" : \"klein\";\n if (sizing) {\n return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n }\n return `Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"å ha\" },\n file: { unit: \"bytes\", verb: \"å ha\" },\n array: { unit: \"elementer\", verb: \"å inneholde\" },\n set: { unit: \"elementer\", verb: \"å inneholde\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spekter\",\n cidrv6: \"IPv6-spekter\",\n base64: \"base64-enkodet streng\",\n base64url: \"base64url-enkodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"tall\",\n array: \"liste\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`;\n }\n return `Ugyldig input: forventet ${expected}, fikk ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: må starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: må ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: må inneholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukjente nøkler\" : \"Ukjent nøkkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøkkel i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldig input\";\n case \"invalid_element\":\n return `Ugyldig verdi i ${issue.origin}`;\n default:\n return `Ugyldig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"harf\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"unsur\", verb: \"olmalıdır\" },\n set: { unit: \"unsur\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"giren\",\n email: \"epostagâh\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO hengâmı\",\n date: \"ISO tarihi\",\n time: \"ISO zamanı\",\n duration: \"ISO müddeti\",\n ipv4: \"IPv4 nişânı\",\n ipv6: \"IPv6 nişânı\",\n cidrv4: \"IPv4 menzili\",\n cidrv6: \"IPv6 menzili\",\n base64: \"base64-şifreli metin\",\n base64url: \"base64url-şifreli metin\",\n json_string: \"JSON metin\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"giren\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"numara\",\n array: \"saf\",\n null: \"gayb\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Fâsit giren: umulan instanceof ${issue.expected}, alınan ${received}`;\n }\n return `Fâsit giren: umulan ${expected}, alınan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Fâsit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Fâsit tercih: mûteberler ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmalıydı.`;\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmalıydı.`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`;\n }\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Fâsit metin: \"${_issue.prefix}\" ile başlamalı.`;\n if (_issue.format === \"ends_with\")\n return `Fâsit metin: \"${_issue.suffix}\" ile bitmeli.`;\n if (_issue.format === \"includes\")\n return `Fâsit metin: \"${_issue.includes}\" ihtivâ etmeli.`;\n if (_issue.format === \"regex\")\n return `Fâsit metin: ${_issue.pattern} nakşına uymalı.`;\n return `Fâsit ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Fâsit sayı: ${issue.divisor} katı olmalıydı.`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} için tanınmayan anahtar var.`;\n case \"invalid_union\":\n return \"Giren tanınamadı.\";\n case \"invalid_element\":\n return `${issue.origin} için tanınmayan kıymet var.`;\n default:\n return `Kıymet tanınamadı.`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"توکي\", verb: \"ولري\" },\n file: { unit: \"بایټس\", verb: \"ولري\" },\n array: { unit: \"توکي\", verb: \"ولري\" },\n set: { unit: \"توکي\", verb: \"ولري\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"ورودي\",\n email: \"بریښنالیک\",\n url: \"یو آر ال\",\n emoji: \"ایموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"نیټه او وخت\",\n date: \"نېټه\",\n time: \"وخت\",\n duration: \"موده\",\n ipv4: \"د IPv4 پته\",\n ipv6: \"د IPv6 پته\",\n cidrv4: \"د IPv4 ساحه\",\n cidrv6: \"د IPv6 ساحه\",\n base64: \"base64-encoded متن\",\n base64url: \"base64url-encoded متن\",\n json_string: \"JSON متن\",\n e164: \"د E.164 شمېره\",\n jwt: \"JWT\",\n template_literal: \"ورودي\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"عدد\",\n array: \"ارې\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ناسم ورودي: باید instanceof ${issue.expected} وای, مګر ${received} ترلاسه شو`;\n }\n return `ناسم ورودي: باید ${expected} وای, مګر ${received} ترلاسه شو`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ناسم ورودي: باید ${util.stringifyPrimitive(issue.values[0])} وای`;\n }\n return `ناسم انتخاب: باید یو له ${util.joinValues(issue.values, \"|\")} څخه وای`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصرونه\"} ولري`;\n }\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} وي`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`;\n }\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ناسم متن: باید د \"${_issue.prefix}\" سره پیل شي`;\n }\n if (_issue.format === \"ends_with\") {\n return `ناسم متن: باید د \"${_issue.suffix}\" سره پای ته ورسيږي`;\n }\n if (_issue.format === \"includes\") {\n return `ناسم متن: باید \"${_issue.includes}\" ولري`;\n }\n if (_issue.format === \"regex\") {\n return `ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`;\n }\n return `${FormatDictionary[_issue.format] ?? issue.format} ناسم دی`;\n }\n case \"not_multiple_of\":\n return `ناسم عدد: باید د ${issue.divisor} مضرب وي`;\n case \"unrecognized_keys\":\n return `ناسم ${issue.keys.length > 1 ? \"کلیډونه\" : \"کلیډ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `ناسم کلیډ په ${issue.origin} کې`;\n case \"invalid_union\":\n return `ناسمه ورودي`;\n case \"invalid_element\":\n return `ناسم عنصر په ${issue.origin} کې`;\n default:\n return `ناسمه ورودي`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaków\", verb: \"mieć\" },\n file: { unit: \"bajtów\", verb: \"mieć\" },\n array: { unit: \"elementów\", verb: \"mieć\" },\n set: { unit: \"elementów\", verb: \"mieć\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"wyrażenie\",\n email: \"adres email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i godzina w formacie ISO\",\n date: \"data w formacie ISO\",\n time: \"godzina w formacie ISO\",\n duration: \"czas trwania ISO\",\n ipv4: \"adres IPv4\",\n ipv6: \"adres IPv6\",\n cidrv4: \"zakres IPv4\",\n cidrv6: \"zakres IPv6\",\n base64: \"ciąg znaków zakodowany w formacie base64\",\n base64url: \"ciąg znaków zakodowany w formacie base64url\",\n json_string: \"ciąg znaków w formacie JSON\",\n e164: \"liczba E.164\",\n jwt: \"JWT\",\n template_literal: \"wejście\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"liczba\",\n array: \"tablica\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Nieprawidłowe dane wejściowe: oczekiwano instanceof ${issue.expected}, otrzymano ${received}`;\n }\n return `Nieprawidłowe dane wejściowe: oczekiwano ${expected}, otrzymano ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nieprawidłowe dane wejściowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za duża wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za mała wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nieprawidłowy ciąg znaków: musi zaczynać się od \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nieprawidłowy ciąg znaków: musi kończyć się na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nieprawidłowy ciąg znaków: musi zawierać \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;\n return `Nieprawidłow(y/a/e) ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nieprawidłowy klucz w ${issue.origin}`;\n case \"invalid_union\":\n return \"Nieprawidłowe dane wejściowe\";\n case \"invalid_element\":\n return `Nieprawidłowa wartość w ${issue.origin}`;\n default:\n return `Nieprawidłowe dane wejściowe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"ter\" },\n file: { unit: \"bytes\", verb: \"ter\" },\n array: { unit: \"itens\", verb: \"ter\" },\n set: { unit: \"itens\", verb: \"ter\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"padrão\",\n email: \"endereço de e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"duração ISO\",\n ipv4: \"endereço IPv4\",\n ipv6: \"endereço IPv6\",\n cidrv4: \"faixa de IPv4\",\n cidrv6: \"faixa de IPv6\",\n base64: \"texto codificado em base64\",\n base64url: \"URL codificada em base64\",\n json_string: \"texto JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"número\",\n null: \"nulo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Tipo inválido: esperado instanceof ${issue.expected}, recebido ${received}`;\n }\n return `Tipo inválido: esperado ${expected}, recebido ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opção inválida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Texto inválido: deve começar com \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Texto inválido: deve terminar com \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Texto inválido: deve incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} inválido`;\n }\n case \"not_multiple_of\":\n return `Número inválido: deve ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chave inválida em ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido em ${issue.origin}`;\n default:\n return `Campo inválido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractere\", verb: \"să aibă\" },\n file: { unit: \"octeți\", verb: \"să aibă\" },\n array: { unit: \"elemente\", verb: \"să aibă\" },\n set: { unit: \"elemente\", verb: \"să aibă\" },\n map: { unit: \"intrări\", verb: \"să aibă\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"intrare\",\n email: \"adresă de email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"dată și oră ISO\",\n date: \"dată ISO\",\n time: \"oră ISO\",\n duration: \"durată ISO\",\n ipv4: \"adresă IPv4\",\n ipv6: \"adresă IPv6\",\n mac: \"adresă MAC\",\n cidrv4: \"interval IPv4\",\n cidrv6: \"interval IPv6\",\n base64: \"șir codat base64\",\n base64url: \"șir codat base64url\",\n json_string: \"șir JSON\",\n e164: \"număr E.164\",\n jwt: \"JWT\",\n template_literal: \"intrare\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n string: \"șir\",\n number: \"număr\",\n boolean: \"boolean\",\n function: \"funcție\",\n array: \"matrice\",\n object: \"obiect\",\n undefined: \"nedefinit\",\n symbol: \"simbol\",\n bigint: \"număr mare\",\n void: \"void\",\n never: \"never\",\n map: \"hartă\",\n set: \"set\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n return `Intrare invalidă: așteptat ${expected}, primit ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Intrare invalidă: așteptat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opțiune invalidă: așteptat una dintre ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Prea mare: așteptat ca ${issue.origin ?? \"valoarea\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemente\"}`;\n return `Prea mare: așteptat ca ${issue.origin ?? \"valoarea\"} să fie ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Prea mic: așteptat ca ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Prea mic: așteptat ca ${issue.origin} să fie ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Șir invalid: trebuie să înceapă cu \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Șir invalid: trebuie să se termine cu \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Șir invalid: trebuie să includă \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Șir invalid: trebuie să se potrivească cu modelul ${_issue.pattern}`;\n return `Format invalid: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Număr invalid: trebuie să fie multiplu de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chei nerecunoscute: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Cheie invalidă în ${issue.origin}`;\n case \"invalid_union\":\n return \"Intrare invalidă\";\n case \"invalid_element\":\n return `Valoare invalidă în ${issue.origin}`;\n default:\n return `Intrare invalidă`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"символ\",\n few: \"символа\",\n many: \"символов\",\n },\n verb: \"иметь\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байта\",\n many: \"байт\",\n },\n verb: \"иметь\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"ввод\",\n email: \"email адрес\",\n url: \"URL\",\n emoji: \"эмодзи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата и время\",\n date: \"ISO дата\",\n time: \"ISO время\",\n duration: \"ISO длительность\",\n ipv4: \"IPv4 адрес\",\n ipv6: \"IPv6 адрес\",\n cidrv4: \"IPv4 диапазон\",\n cidrv6: \"IPv6 диапазон\",\n base64: \"строка в формате base64\",\n base64url: \"строка в формате base64url\",\n json_string: \"JSON строка\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"ввод\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"число\",\n array: \"массив\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Неверный ввод: ожидалось instanceof ${issue.expected}, получено ${received}`;\n }\n return `Неверный ввод: ожидалось ${expected}, получено ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неверный ввод: ожидалось ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неверный вариант: ожидалось одно из ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неверная строка: должна начинаться с \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неверная строка: должна заканчиваться на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неверная строка: должна содержать \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;\n return `Неверный ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неверное число: должно быть кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспознанн${issue.keys.length > 1 ? \"ые\" : \"ый\"} ключ${issue.keys.length > 1 ? \"и\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неверный ключ в ${issue.origin}`;\n case \"invalid_union\":\n return \"Неверные входные данные\";\n case \"invalid_element\":\n return `Неверное значение в ${issue.origin}`;\n default:\n return `Неверные входные данные`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakov\", verb: \"imeti\" },\n file: { unit: \"bajtov\", verb: \"imeti\" },\n array: { unit: \"elementov\", verb: \"imeti\" },\n set: { unit: \"elementov\", verb: \"imeti\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"vnos\",\n email: \"e-poštni naslov\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum in čas\",\n date: \"ISO datum\",\n time: \"ISO čas\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 naslov\",\n ipv6: \"IPv6 naslov\",\n cidrv4: \"obseg IPv4\",\n cidrv6: \"obseg IPv6\",\n base64: \"base64 kodiran niz\",\n base64url: \"base64url kodiran niz\",\n json_string: \"JSON niz\",\n e164: \"E.164 številka\",\n jwt: \"JWT\",\n template_literal: \"vnos\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"število\",\n array: \"tabela\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Neveljaven vnos: pričakovano instanceof ${issue.expected}, prejeto ${received}`;\n }\n return `Neveljaven vnos: pričakovano ${expected}, prejeto ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Neveljaven niz: mora se začeti z \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Neveljaven niz: mora se končati z \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n return `Neveljaven ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznan${issue.keys.length > 1 ? \"i ključi\" : \" ključ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neveljaven ključ v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neveljaven vnos\";\n case \"invalid_element\":\n return `Neveljavna vrednost v ${issue.origin}`;\n default:\n return \"Neveljaven vnos\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tecken\", verb: \"att ha\" },\n file: { unit: \"bytes\", verb: \"att ha\" },\n array: { unit: \"objekt\", verb: \"att innehålla\" },\n set: { unit: \"objekt\", verb: \"att innehålla\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"reguljärt uttryck\",\n email: \"e-postadress\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datum och tid\",\n date: \"ISO-datum\",\n time: \"ISO-tid\",\n duration: \"ISO-varaktighet\",\n ipv4: \"IPv4-intervall\",\n ipv6: \"IPv6-intervall\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodad sträng\",\n base64url: \"base64url-kodad sträng\",\n json_string: \"JSON-sträng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"mall-literal\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"antal\",\n array: \"lista\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ogiltig inmatning: förväntat instanceof ${issue.expected}, fick ${received}`;\n }\n return `Ogiltig inmatning: förväntat ${expected}, fick ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För stor(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n }\n return `För stor(t): förväntat ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ogiltig sträng: måste börja med \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ogiltig sträng: måste sluta med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ogiltig sträng: måste innehålla \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ogiltig sträng: måste matcha mönstret \"${_issue.pattern}\"`;\n return `Ogiltig(t) ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Okända nycklar\" : \"Okänd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ogiltig nyckel i ${issue.origin ?? \"värdet\"}`;\n case \"invalid_union\":\n return \"Ogiltig input\";\n case \"invalid_element\":\n return `Ogiltigt värde i ${issue.origin ?? \"värdet\"}`;\n default:\n return `Ogiltig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"எழுத்துக்கள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n file: { unit: \"பைட்டுகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n array: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n set: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"உள்ளீடு\",\n email: \"மின்னஞ்சல் முகவரி\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO தேதி நேரம்\",\n date: \"ISO தேதி\",\n time: \"ISO நேரம்\",\n duration: \"ISO கால அளவு\",\n ipv4: \"IPv4 முகவரி\",\n ipv6: \"IPv6 முகவரி\",\n cidrv4: \"IPv4 வரம்பு\",\n cidrv6: \"IPv6 வரம்பு\",\n base64: \"base64-encoded சரம்\",\n base64url: \"base64url-encoded சரம்\",\n json_string: \"JSON சரம்\",\n e164: \"E.164 எண்\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"எண்\",\n array: \"அணி\",\n null: \"வெறுமை\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${issue.expected}, பெறப்பட்டது ${received}`;\n }\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${expected}, பெறப்பட்டது ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${util.stringifyPrimitive(issue.values[0])}`;\n return `தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${util.joinValues(issue.values, \"|\")} இல் ஒன்று`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"உறுப்புகள்\"} ஆக இருக்க வேண்டும்`;\n }\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`; //\n }\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `தவறான சரம்: \"${_issue.prefix}\" இல் தொடங்க வேண்டும்`;\n if (_issue.format === \"ends_with\")\n return `தவறான சரம்: \"${_issue.suffix}\" இல் முடிவடைய வேண்டும்`;\n if (_issue.format === \"includes\")\n return `தவறான சரம்: \"${_issue.includes}\" ஐ உள்ளடக்க வேண்டும்`;\n if (_issue.format === \"regex\")\n return `தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;\n return `தவறான ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`;\n case \"unrecognized_keys\":\n return `அடையாளம் தெரியாத விசை${issue.keys.length > 1 ? \"கள்\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} இல் தவறான விசை`;\n case \"invalid_union\":\n return \"தவறான உள்ளீடு\";\n case \"invalid_element\":\n return `${issue.origin} இல் தவறான மதிப்பு`;\n default:\n return `தவறான உள்ளீடு`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ตัวอักษร\", verb: \"ควรมี\" },\n file: { unit: \"ไบต์\", verb: \"ควรมี\" },\n array: { unit: \"รายการ\", verb: \"ควรมี\" },\n set: { unit: \"รายการ\", verb: \"ควรมี\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"ข้อมูลที่ป้อน\",\n email: \"ที่อยู่อีเมล\",\n url: \"URL\",\n emoji: \"อิโมจิ\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"วันที่เวลาแบบ ISO\",\n date: \"วันที่แบบ ISO\",\n time: \"เวลาแบบ ISO\",\n duration: \"ช่วงเวลาแบบ ISO\",\n ipv4: \"ที่อยู่ IPv4\",\n ipv6: \"ที่อยู่ IPv6\",\n cidrv4: \"ช่วง IP แบบ IPv4\",\n cidrv6: \"ช่วง IP แบบ IPv6\",\n base64: \"ข้อความแบบ Base64\",\n base64url: \"ข้อความแบบ Base64 สำหรับ URL\",\n json_string: \"ข้อความแบบ JSON\",\n e164: \"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)\",\n jwt: \"โทเคน JWT\",\n template_literal: \"ข้อมูลที่ป้อน\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"ตัวเลข\",\n array: \"อาร์เรย์ (Array)\",\n null: \"ไม่มีค่า (null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${issue.expected} แต่ได้รับ ${received}`;\n }\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${expected} แต่ได้รับ ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ค่าไม่ถูกต้อง: ควรเป็น ${util.stringifyPrimitive(issue.values[0])}`;\n return `ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"ไม่เกิน\" : \"น้อยกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"รายการ\"}`;\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"อย่างน้อย\" : \"มากกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องมี \"${_issue.includes}\" อยู่ในข้อความ`;\n if (_issue.format === \"regex\")\n return `รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`;\n return `รูปแบบไม่ถูกต้อง: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`;\n case \"unrecognized_keys\":\n return `พบคีย์ที่ไม่รู้จัก: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `คีย์ไม่ถูกต้องใน ${issue.origin}`;\n case \"invalid_union\":\n return \"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้\";\n case \"invalid_element\":\n return `ข้อมูลไม่ถูกต้องใน ${issue.origin}`;\n default:\n return `ข้อมูลไม่ถูกต้อง`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"olmalı\" },\n file: { unit: \"bayt\", verb: \"olmalı\" },\n array: { unit: \"öğe\", verb: \"olmalı\" },\n set: { unit: \"öğe\", verb: \"olmalı\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO süre\",\n ipv4: \"IPv4 adresi\",\n ipv6: \"IPv6 adresi\",\n cidrv4: \"IPv4 aralığı\",\n cidrv6: \"IPv6 aralığı\",\n base64: \"base64 ile şifrelenmiş metin\",\n base64url: \"base64url ile şifrelenmiş metin\",\n json_string: \"JSON dizesi\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"Şablon dizesi\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Geçersiz değer: beklenen instanceof ${issue.expected}, alınan ${received}`;\n }\n return `Geçersiz değer: beklenen ${expected}, alınan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"öğe\"}`;\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Geçersiz metin: \"${_issue.prefix}\" ile başlamalı`;\n if (_issue.format === \"ends_with\")\n return `Geçersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n if (_issue.format === \"includes\")\n return `Geçersiz metin: \"${_issue.includes}\" içermeli`;\n if (_issue.format === \"regex\")\n return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;\n return `Geçersiz ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} içinde geçersiz anahtar`;\n case \"invalid_union\":\n return \"Geçersiz değer\";\n case \"invalid_element\":\n return `${issue.origin} içinde geçersiz değer`;\n default:\n return `Geçersiz değer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"символів\", verb: \"матиме\" },\n file: { unit: \"байтів\", verb: \"матиме\" },\n array: { unit: \"елементів\", verb: \"матиме\" },\n set: { unit: \"елементів\", verb: \"матиме\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"вхідні дані\",\n email: \"адреса електронної пошти\",\n url: \"URL\",\n emoji: \"емодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"дата та час ISO\",\n date: \"дата ISO\",\n time: \"час ISO\",\n duration: \"тривалість ISO\",\n ipv4: \"адреса IPv4\",\n ipv6: \"адреса IPv6\",\n cidrv4: \"діапазон IPv4\",\n cidrv6: \"діапазон IPv6\",\n base64: \"рядок у кодуванні base64\",\n base64url: \"рядок у кодуванні base64url\",\n json_string: \"рядок JSON\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"вхідні дані\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"число\",\n array: \"масив\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Неправильні вхідні дані: очікується instanceof ${issue.expected}, отримано ${received}`;\n }\n return `Неправильні вхідні дані: очікується ${expected}, отримано ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементів\"}`;\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} буде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неправильний рядок: повинен починатися з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неправильний рядок: повинен закінчуватися на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неправильний рядок: повинен містити \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;\n return `Неправильний ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неправильне число: повинно бути кратним ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нерозпізнаний ключ${issue.keys.length > 1 ? \"і\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неправильний ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Неправильні вхідні дані\";\n case \"invalid_element\":\n return `Неправильне значення у ${issue.origin}`;\n default:\n return `Неправильні вхідні дані`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import uk from \"./uk.js\";\n/** @deprecated Use `uk` instead. */\nexport default function () {\n return uk();\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حروف\", verb: \"ہونا\" },\n file: { unit: \"بائٹس\", verb: \"ہونا\" },\n array: { unit: \"آئٹمز\", verb: \"ہونا\" },\n set: { unit: \"آئٹمز\", verb: \"ہونا\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"ان پٹ\",\n email: \"ای میل ایڈریس\",\n url: \"یو آر ایل\",\n emoji: \"ایموجی\",\n uuid: \"یو یو آئی ڈی\",\n uuidv4: \"یو یو آئی ڈی وی 4\",\n uuidv6: \"یو یو آئی ڈی وی 6\",\n nanoid: \"نینو آئی ڈی\",\n guid: \"جی یو آئی ڈی\",\n cuid: \"سی یو آئی ڈی\",\n cuid2: \"سی یو آئی ڈی 2\",\n ulid: \"یو ایل آئی ڈی\",\n xid: \"ایکس آئی ڈی\",\n ksuid: \"کے ایس یو آئی ڈی\",\n datetime: \"آئی ایس او ڈیٹ ٹائم\",\n date: \"آئی ایس او تاریخ\",\n time: \"آئی ایس او وقت\",\n duration: \"آئی ایس او مدت\",\n ipv4: \"آئی پی وی 4 ایڈریس\",\n ipv6: \"آئی پی وی 6 ایڈریس\",\n cidrv4: \"آئی پی وی 4 رینج\",\n cidrv6: \"آئی پی وی 6 رینج\",\n base64: \"بیس 64 ان کوڈڈ سٹرنگ\",\n base64url: \"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ\",\n json_string: \"جے ایس او این سٹرنگ\",\n e164: \"ای 164 نمبر\",\n jwt: \"جے ڈبلیو ٹی\",\n template_literal: \"ان پٹ\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"نمبر\",\n array: \"آرے\",\n null: \"نل\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `غلط ان پٹ: instanceof ${issue.expected} متوقع تھا، ${received} موصول ہوا`;\n }\n return `غلط ان پٹ: ${expected} متوقع تھا، ${received} موصول ہوا`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `غلط ان پٹ: ${util.stringifyPrimitive(issue.values[0])} متوقع تھا`;\n return `غلط آپشن: ${util.joinValues(issue.values, \"|\")} میں سے ایک متوقع تھا`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کے ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عناصر\"} ہونے متوقع تھے`;\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`;\n }\n return `بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `غلط سٹرنگ: \"${_issue.prefix}\" سے شروع ہونا چاہیے`;\n }\n if (_issue.format === \"ends_with\")\n return `غلط سٹرنگ: \"${_issue.suffix}\" پر ختم ہونا چاہیے`;\n if (_issue.format === \"includes\")\n return `غلط سٹرنگ: \"${_issue.includes}\" شامل ہونا چاہیے`;\n if (_issue.format === \"regex\")\n return `غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`;\n return `غلط ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`;\n case \"unrecognized_keys\":\n return `غیر تسلیم شدہ کی${issue.keys.length > 1 ? \"ز\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `${issue.origin} میں غلط کی`;\n case \"invalid_union\":\n return \"غلط ان پٹ\";\n case \"invalid_element\":\n return `${issue.origin} میں غلط ویلیو`;\n default:\n return `غلط ان پٹ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"belgi\", verb: \"bo‘lishi kerak\" },\n file: { unit: \"bayt\", verb: \"bo‘lishi kerak\" },\n array: { unit: \"element\", verb: \"bo‘lishi kerak\" },\n set: { unit: \"element\", verb: \"bo‘lishi kerak\" },\n map: { unit: \"yozuv\", verb: \"bo‘lishi kerak\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"kirish\",\n email: \"elektron pochta manzili\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO sana va vaqti\",\n date: \"ISO sana\",\n time: \"ISO vaqt\",\n duration: \"ISO davomiylik\",\n ipv4: \"IPv4 manzil\",\n ipv6: \"IPv6 manzil\",\n mac: \"MAC manzil\",\n cidrv4: \"IPv4 diapazon\",\n cidrv6: \"IPv6 diapazon\",\n base64: \"base64 kodlangan satr\",\n base64url: \"base64url kodlangan satr\",\n json_string: \"JSON satr\",\n e164: \"E.164 raqam\",\n jwt: \"JWT\",\n template_literal: \"kirish\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"raqam\",\n array: \"massiv\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Noto‘g‘ri kirish: kutilgan instanceof ${issue.expected}, qabul qilingan ${received}`;\n }\n return `Noto‘g‘ri kirish: kutilgan ${expected}, qabul qilingan ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Noto‘g‘ri kirish: kutilgan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Noto‘g‘ri variant: quyidagilardan biri kutilgan ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;\n return `Juda katta: kutilgan ${issue.origin ?? \"qiymat\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;\n }\n return `Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Noto‘g‘ri satr: \"${_issue.prefix}\" bilan boshlanishi kerak`;\n if (_issue.format === \"ends_with\")\n return `Noto‘g‘ri satr: \"${_issue.suffix}\" bilan tugashi kerak`;\n if (_issue.format === \"includes\")\n return `Noto‘g‘ri satr: \"${_issue.includes}\" ni o‘z ichiga olishi kerak`;\n if (_issue.format === \"regex\")\n return `Noto‘g‘ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`;\n return `Noto‘g‘ri ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Noto‘g‘ri raqam: ${issue.divisor} ning karralisi bo‘lishi kerak`;\n case \"unrecognized_keys\":\n return `Noma’lum kalit${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} dagi kalit noto‘g‘ri`;\n case \"invalid_union\":\n return \"Noto‘g‘ri kirish\";\n case \"invalid_element\":\n return `${issue.origin} da noto‘g‘ri qiymat`;\n default:\n return `Noto‘g‘ri kirish`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ký tự\", verb: \"có\" },\n file: { unit: \"byte\", verb: \"có\" },\n array: { unit: \"phần tử\", verb: \"có\" },\n set: { unit: \"phần tử\", verb: \"có\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"đầu vào\",\n email: \"địa chỉ email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ngày giờ ISO\",\n date: \"ngày ISO\",\n time: \"giờ ISO\",\n duration: \"khoảng thời gian ISO\",\n ipv4: \"địa chỉ IPv4\",\n ipv6: \"địa chỉ IPv6\",\n cidrv4: \"dải IPv4\",\n cidrv6: \"dải IPv6\",\n base64: \"chuỗi mã hóa base64\",\n base64url: \"chuỗi mã hóa base64url\",\n json_string: \"chuỗi JSON\",\n e164: \"số E.164\",\n jwt: \"JWT\",\n template_literal: \"đầu vào\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"số\",\n array: \"mảng\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Đầu vào không hợp lệ: mong đợi instanceof ${issue.expected}, nhận được ${received}`;\n }\n return `Đầu vào không hợp lệ: mong đợi ${expected}, nhận được ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Đầu vào không hợp lệ: mong đợi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"phần tử\"}`;\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chuỗi không hợp lệ: phải bắt đầu bằng \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chuỗi không hợp lệ: phải kết thúc bằng \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chuỗi không hợp lệ: phải bao gồm \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`;\n return `${FormatDictionary[_issue.format] ?? issue.format} không hợp lệ`;\n }\n case \"not_multiple_of\":\n return `Số không hợp lệ: phải là bội số của ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Khóa không được nhận dạng: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Khóa không hợp lệ trong ${issue.origin}`;\n case \"invalid_union\":\n return \"Đầu vào không hợp lệ\";\n case \"invalid_element\":\n return `Giá trị không hợp lệ trong ${issue.origin}`;\n default:\n return `Đầu vào không hợp lệ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字符\", verb: \"包含\" },\n file: { unit: \"字节\", verb: \"包含\" },\n array: { unit: \"项\", verb: \"包含\" },\n set: { unit: \"项\", verb: \"包含\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"输入\",\n email: \"电子邮件\",\n url: \"URL\",\n emoji: \"表情符号\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日期时间\",\n date: \"ISO日期\",\n time: \"ISO时间\",\n duration: \"ISO时长\",\n ipv4: \"IPv4地址\",\n ipv6: \"IPv6地址\",\n cidrv4: \"IPv4网段\",\n cidrv6: \"IPv6网段\",\n base64: \"base64编码字符串\",\n base64url: \"base64url编码字符串\",\n json_string: \"JSON字符串\",\n e164: \"E.164号码\",\n jwt: \"JWT\",\n template_literal: \"输入\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"数字\",\n array: \"数组\",\n null: \"空值(null)\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `无效输入:期望 instanceof ${issue.expected},实际接收 ${received}`;\n }\n return `无效输入:期望 ${expected},实际接收 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `无效输入:期望 ${util.stringifyPrimitive(issue.values[0])}`;\n return `无效选项:期望以下之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"个元素\"}`;\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `无效字符串:必须以 \"${_issue.prefix}\" 开头`;\n if (_issue.format === \"ends_with\")\n return `无效字符串:必须以 \"${_issue.suffix}\" 结尾`;\n if (_issue.format === \"includes\")\n return `无效字符串:必须包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `无效字符串:必须满足正则表达式 ${_issue.pattern}`;\n return `无效${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `无效数字:必须是 ${issue.divisor} 的倍数`;\n case \"unrecognized_keys\":\n return `出现未知的键(key): ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} 中的键(key)无效`;\n case \"invalid_union\":\n return \"无效输入\";\n case \"invalid_element\":\n return `${issue.origin} 中包含无效值(value)`;\n default:\n return `无效输入`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字元\", verb: \"擁有\" },\n file: { unit: \"位元組\", verb: \"擁有\" },\n array: { unit: \"項目\", verb: \"擁有\" },\n set: { unit: \"項目\", verb: \"擁有\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"輸入\",\n email: \"郵件地址\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 日期時間\",\n date: \"ISO 日期\",\n time: \"ISO 時間\",\n duration: \"ISO 期間\",\n ipv4: \"IPv4 位址\",\n ipv6: \"IPv6 位址\",\n cidrv4: \"IPv4 範圍\",\n cidrv6: \"IPv6 範圍\",\n base64: \"base64 編碼字串\",\n base64url: \"base64url 編碼字串\",\n json_string: \"JSON 字串\",\n e164: \"E.164 數值\",\n jwt: \"JWT\",\n template_literal: \"輸入\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `無效的輸入值:預期為 instanceof ${issue.expected},但收到 ${received}`;\n }\n return `無效的輸入值:預期為 ${expected},但收到 ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無效的輸入值:預期為 ${util.stringifyPrimitive(issue.values[0])}`;\n return `無效的選項:預期為以下其中之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"個元素\"}`;\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `無效的字串:必須以 \"${_issue.prefix}\" 開頭`;\n }\n if (_issue.format === \"ends_with\")\n return `無效的字串:必須以 \"${_issue.suffix}\" 結尾`;\n if (_issue.format === \"includes\")\n return `無效的字串:必須包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `無效的字串:必須符合格式 ${_issue.pattern}`;\n return `無效的 ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無效的數字:必須為 ${issue.divisor} 的倍數`;\n case \"unrecognized_keys\":\n return `無法識別的鍵值${issue.keys.length > 1 ? \"們\" : \"\"}:${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin} 中有無效的鍵值`;\n case \"invalid_union\":\n return \"無效的輸入值\";\n case \"invalid_element\":\n return `${issue.origin} 中有無效的值`;\n default:\n return `無效的輸入值`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"àmi\", verb: \"ní\" },\n file: { unit: \"bytes\", verb: \"ní\" },\n array: { unit: \"nkan\", verb: \"ní\" },\n set: { unit: \"nkan\", verb: \"ní\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"ẹ̀rọ ìbáwọlé\",\n email: \"àdírẹ́sì ìmẹ́lì\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"àkókò ISO\",\n date: \"ọjọ́ ISO\",\n time: \"àkókò ISO\",\n duration: \"àkókò tó pé ISO\",\n ipv4: \"àdírẹ́sì IPv4\",\n ipv6: \"àdírẹ́sì IPv6\",\n cidrv4: \"àgbègbè IPv4\",\n cidrv6: \"àgbègbè IPv6\",\n base64: \"ọ̀rọ̀ tí a kọ́ ní base64\",\n base64url: \"ọ̀rọ̀ base64url\",\n json_string: \"ọ̀rọ̀ JSON\",\n e164: \"nọ́mbà E.164\",\n jwt: \"JWT\",\n template_literal: \"ẹ̀rọ ìbáwọlé\",\n };\n const TypeDictionary = {\n nan: \"NaN\",\n number: \"nọ́mbà\",\n array: \"akopọ\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = TypeDictionary[issue.expected] ?? issue.expected;\n const receivedType = util.parsedType(issue.input);\n const received = TypeDictionary[receivedType] ?? receivedType;\n if (/^[A-Z]/.test(issue.expected)) {\n return `Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${issue.expected}, àmọ̀ a rí ${received}`;\n }\n return `Ìbáwọlé aṣìṣe: a ní láti fi ${expected}, àmọ̀ a rí ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ìbáwọlé aṣìṣe: a ní láti fi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Àṣàyàn aṣìṣe: yan ọ̀kan lára ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tó pọ̀ jù: a ní láti jẹ́ pé ${issue.origin ?? \"iye\"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;\n return `Tó pọ̀ jù: a ní láti jẹ́ ${adj}${issue.maximum}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Kéré ju: a ní láti jẹ́ pé ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;\n return `Kéré ju: a ní láti jẹ́ ${adj}${issue.minimum}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${_issue.pattern}`;\n return `Aṣìṣe: ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Bọtìnì àìmọ̀: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Bọtìnì aṣìṣe nínú ${issue.origin}`;\n case \"invalid_union\":\n return \"Ìbáwọlé aṣìṣe\";\n case \"invalid_element\":\n return `Iye aṣìṣe nínú ${issue.origin}`;\n default:\n return \"Ìbáwọlé aṣìṣe\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","var _a;\nexport const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new WeakMap();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\n(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());\nexport const globalRegistry = globalThis.__zod_globalRegistry;\n","import * as checks from \"./checks.js\";\nimport * as registries from \"./registries.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\n// @__NO_SIDE_EFFECTS__\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link _cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\n// @__NO_SIDE_EFFECTS__\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mac(Class, params) {\n return new Class({\n type: \"string\",\n format: \"mac\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\n// @__NO_SIDE_EFFECTS__\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\n// @__NO_SIDE_EFFECTS__\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\n// @__NO_SIDE_EFFECTS__\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\n// @__NO_SIDE_EFFECTS__\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\n// @__NO_SIDE_EFFECTS__\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\n// @__NO_SIDE_EFFECTS__\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\n// @__NO_SIDE_EFFECTS__\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\n// @__NO_SIDE_EFFECTS__\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\n// @__NO_SIDE_EFFECTS__\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\n// @__NO_SIDE_EFFECTS__\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\n// @__NO_SIDE_EFFECTS__\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\n// slugify\n// @__NO_SIDE_EFFECTS__\nexport function _slugify() {\n return _overwrite((input) => util.slugify(input));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _xor(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\n// @__NO_SIDE_EFFECTS__\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\n// @__NO_SIDE_EFFECTS__\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _superRefine(fn, params) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n }, params);\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function describe(description) {\n const ch = new checks.$ZodCheck({ check: \"describe\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, description });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function meta(metadata) {\n const ch = new checks.$ZodCheck({ check: \"meta\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, ...metadata });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n return codec;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import { globalRegistry } from \"./registries.js\";\n// function initializeContext(inputs: JSONSchemaGeneratorParams): ToJSONSchemaContext {\n// return {\n// processor: inputs.processor,\n// metadataRegistry: inputs.metadata ?? globalRegistry,\n// target: inputs.target ?? \"draft-2020-12\",\n// unrepresentable: inputs.unrepresentable ?? \"throw\",\n// };\n// }\nexport function initializeContext(params) {\n // Normalize target: convert old non-hyphenated versions to hyphenated versions\n let target = params?.target ?? \"draft-2020-12\";\n if (target === \"draft-4\")\n target = \"draft-04\";\n if (target === \"draft-7\")\n target = \"draft-07\";\n return {\n processors: params.processors ?? {},\n metadataRegistry: params?.metadata ?? globalRegistry,\n target,\n unrepresentable: params?.unrepresentable ?? \"throw\",\n override: params?.override ?? (() => { }),\n io: params?.io ?? \"output\",\n counter: 0,\n seen: new Map(),\n cycles: params?.cycles ?? \"ref\",\n reused: params?.reused ?? \"inline\",\n external: params?.external ?? undefined,\n };\n}\nexport function process(schema, ctx, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n // check for schema in seens\n const seen = ctx.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n ctx.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n if (schema._zod.processJSONSchema) {\n schema._zod.processJSONSchema(ctx, result.schema, params);\n }\n else {\n const _json = result.schema;\n const processor = ctx.processors[def.type];\n if (!processor) {\n throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`);\n }\n processor(schema, ctx, _json, params);\n }\n const parent = schema._zod.parent;\n if (parent) {\n // Also set ref if processor didn't (for inheritance)\n if (!result.ref)\n result.ref = parent;\n process(parent, ctx, params);\n ctx.seen.get(parent).isParent = true;\n }\n }\n // metadata\n const meta = ctx.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (ctx.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (ctx.io === \"input\" && \"_prefault\" in result.schema)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from ctx.seen in case it was overwritten\n const _result = ctx.seen.get(schema);\n return _result.schema;\n}\nexport function extractDefs(ctx, schema\n// params: EmitParams\n) {\n // iterate over seen map;\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // Track ids to detect duplicates across different schemas\n const idToSchema = new Map();\n for (const entry of ctx.seen.entries()) {\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n const existing = idToSchema.get(id);\n if (existing && existing !== entry[0]) {\n throw new Error(`Duplicate schema id \"${id}\" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);\n }\n idToSchema.set(id, entry[0]);\n }\n }\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (ctx.external) {\n const externalId = ctx.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${ctx.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = ctx.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n // or if the schema is the root schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (ctx.cycles === \"throw\") {\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (ctx.external) {\n const ext = ctx.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (ctx.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n}\nexport function finalize(ctx, schema) {\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // flatten refs - inherit properties from parent schemas\n const flattenRef = (zodSchema) => {\n const seen = ctx.seen.get(zodSchema);\n // already processed\n if (seen.ref === null)\n return;\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n const ref = seen.ref;\n seen.ref = null; // prevent infinite recursion\n if (ref) {\n flattenRef(ref);\n const refSeen = ctx.seen.get(ref);\n const refSchema = refSeen.schema;\n // merge referenced schema into current\n if (refSchema.$ref && (ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\")) {\n // older drafts can't combine $ref with other properties\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n }\n // restore child's own properties (child wins)\n Object.assign(schema, _cached);\n const isParentRef = zodSchema._zod.parent === ref;\n // For parent chain, child is a refinement - remove parent-only properties\n if (isParentRef) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (!(key in _cached)) {\n delete schema[key];\n }\n }\n }\n // When ref was extracted to $defs, remove properties that match the definition\n if (refSchema.$ref && refSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n // If parent was extracted (has $ref), propagate $ref to this schema\n // This handles cases like: readonly().meta({id}).describe()\n // where processor sets ref to innerType but parent should be referenced\n const parent = zodSchema._zod.parent;\n if (parent && parent !== ref) {\n // Ensure parent is processed first so its def has inherited properties\n flattenRef(parent);\n const parentSeen = ctx.seen.get(parent);\n if (parentSeen?.schema.$ref) {\n schema.$ref = parentSeen.schema.$ref;\n // De-duplicate with parent's definition\n if (parentSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n }\n // execute overrides\n ctx.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...ctx.seen.entries()].reverse()) {\n flattenRef(entry[0]);\n }\n const result = {};\n if (ctx.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (ctx.target === \"draft-07\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (ctx.target === \"draft-04\") {\n result.$schema = \"http://json-schema.org/draft-04/schema#\";\n }\n else if (ctx.target === \"openapi-3.0\") {\n // OpenAPI 3.0 schema objects should not include a $schema property\n }\n else {\n // Arbitrary string values are allowed but won't have a $schema property set\n }\n if (ctx.external?.uri) {\n const id = ctx.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = ctx.external.uri(id);\n }\n Object.assign(result, root.def ?? root.schema);\n // The `id` in `.meta()` is a Zod-specific registration tag used to extract\n // schemas into $defs — it is not user-facing JSON Schema metadata. Strip it\n // from the output body where it would otherwise leak. The id is preserved\n // implicitly via the $defs key (and via $ref paths).\n const rootMetaId = ctx.metadataRegistry.get(schema)?.id;\n if (rootMetaId !== undefined && result.id === rootMetaId)\n delete result.id;\n // build defs object\n const defs = ctx.external?.defs ?? {};\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n if (seen.def.id === seen.defId)\n delete seen.def.id;\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (ctx.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (ctx.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to finalize() is functionally independent\n // though the seen map is shared\n const finalized = JSON.parse(JSON.stringify(result));\n Object.defineProperty(finalized, \"~standard\", {\n value: {\n ...schema[\"~standard\"],\n jsonSchema: {\n input: createStandardJSONSchemaMethod(schema, \"input\", ctx.processors),\n output: createStandardJSONSchemaMethod(schema, \"output\", ctx.processors),\n },\n },\n enumerable: false,\n writable: false,\n });\n return finalized;\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const def = _schema._zod.def;\n if (def.type === \"transform\")\n return true;\n if (def.type === \"array\")\n return isTransforming(def.element, ctx);\n if (def.type === \"set\")\n return isTransforming(def.valueType, ctx);\n if (def.type === \"lazy\")\n return isTransforming(def.getter(), ctx);\n if (def.type === \"promise\" ||\n def.type === \"optional\" ||\n def.type === \"nonoptional\" ||\n def.type === \"nullable\" ||\n def.type === \"readonly\" ||\n def.type === \"default\" ||\n def.type === \"prefault\") {\n return isTransforming(def.innerType, ctx);\n }\n if (def.type === \"intersection\") {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n if (def.type === \"record\" || def.type === \"map\") {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n if (def.type === \"pipe\") {\n if (_schema._zod.traits.has(\"$ZodCodec\"))\n return true;\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n if (def.type === \"object\") {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"union\") {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"tuple\") {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n return false;\n}\n/**\n * Creates a toJSONSchema method for a schema instance.\n * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing.\n */\nexport const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {\n const ctx = initializeContext({ ...params, processors });\n process(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\nexport const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {\n const { libraryOptions, target } = params ?? {};\n const ctx = initializeContext({ ...(libraryOptions ?? {}), target, io, processors });\n process(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\n","import { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\nimport { getEnumValues } from \"./util.js\";\nconst formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n};\n// ==================== SIMPLE TYPE PROCESSORS ====================\nexport const stringProcessor = (schema, ctx, _json, _params) => {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n // JSON Schema format: \"time\" requires a full time with offset or Z\n // z.iso.time() does not include timezone information, so format: \"time\" should never be used\n if (format === \"time\") {\n delete json.format;\n }\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n json.allOf = [\n ...regexes.map((regex) => ({\n ...(ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\"\n ? { type: \"string\" }\n : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n};\nexport const numberProcessor = (schema, ctx, _json, _params) => {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n // when both minimum and exclusiveMinimum exist, pick the more restrictive one\n const exMin = typeof exclusiveMinimum === \"number\" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY);\n const exMax = typeof exclusiveMaximum === \"number\" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY);\n const legacy = ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\";\n if (exMin) {\n if (legacy) {\n json.minimum = exclusiveMinimum;\n json.exclusiveMinimum = true;\n }\n else {\n json.exclusiveMinimum = exclusiveMinimum;\n }\n }\n else if (typeof minimum === \"number\") {\n json.minimum = minimum;\n }\n if (exMax) {\n if (legacy) {\n json.maximum = exclusiveMaximum;\n json.exclusiveMaximum = true;\n }\n else {\n json.exclusiveMaximum = exclusiveMaximum;\n }\n }\n else if (typeof maximum === \"number\") {\n json.maximum = maximum;\n }\n if (typeof multipleOf === \"number\")\n json.multipleOf = multipleOf;\n};\nexport const booleanProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const bigintProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n};\nexport const symbolProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n};\nexport const nullProcessor = (_schema, ctx, json, _params) => {\n if (ctx.target === \"openapi-3.0\") {\n json.type = \"string\";\n json.nullable = true;\n json.enum = [null];\n }\n else {\n json.type = \"null\";\n }\n};\nexport const undefinedProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n};\nexport const voidProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n};\nexport const neverProcessor = (_schema, _ctx, json, _params) => {\n json.not = {};\n};\nexport const anyProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const unknownProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const dateProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n};\nexport const enumProcessor = (schema, _ctx, json, _params) => {\n const def = schema._zod.def;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n};\nexport const literalProcessor = (schema, ctx, json, _params) => {\n const def = schema._zod.def;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n json.enum = [val];\n }\n else {\n json.const = val;\n }\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"boolean\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n};\nexport const nanProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n};\nexport const templateLiteralProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n _json.type = \"string\";\n _json.pattern = pattern.source;\n};\nexport const fileProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(_json, file);\n }\n else {\n Object.assign(_json, file); // shared props at root\n _json.anyOf = mime.map((m) => ({ contentMediaType: m })); // only contentMediaType differs\n }\n }\n else {\n Object.assign(_json, file);\n }\n};\nexport const successProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const customProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n};\nexport const functionProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Function types cannot be represented in JSON Schema\");\n }\n};\nexport const transformProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n};\nexport const mapProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n};\nexport const setProcessor = (_schema, ctx, _json, _params) => {\n if (ctx.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n};\n// ==================== COMPOSITE TYPE PROCESSORS ====================\nexport const arrayProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = process(def.element, ctx, {\n ...params,\n path: [...params.path, \"items\"],\n });\n};\nexport const objectProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape;\n for (const key in shape) {\n json.properties[key] = process(shape[key], ctx, {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (ctx.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (ctx.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = process(def.catchall, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n};\nexport const unionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n // Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches)\n // This includes both z.xor() and discriminated unions\n const isExclusive = def.inclusive === false;\n const options = def.options.map((x, i) => process(x, ctx, {\n ...params,\n path: [...params.path, isExclusive ? \"oneOf\" : \"anyOf\", i],\n }));\n if (isExclusive) {\n json.oneOf = options;\n }\n else {\n json.anyOf = options;\n }\n};\nexport const intersectionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const a = process(def.left, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = process(def.right, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n};\nexport const tupleProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"array\";\n const prefixPath = ctx.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n const restPath = ctx.target === \"draft-2020-12\" ? \"items\" : ctx.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n const prefixItems = def.items.map((x, i) => process(x, ctx, {\n ...params,\n path: [...params.path, prefixPath, i],\n }));\n const rest = def.rest\n ? process(def.rest, ctx, {\n ...params,\n path: [...params.path, restPath, ...(ctx.target === \"openapi-3.0\" ? [def.items.length] : [])],\n })\n : null;\n if (ctx.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n if (rest) {\n json.items = rest;\n }\n }\n else if (ctx.target === \"openapi-3.0\") {\n json.items = {\n anyOf: prefixItems,\n };\n if (rest) {\n json.items.anyOf.push(rest);\n }\n json.minItems = prefixItems.length;\n if (!rest) {\n json.maxItems = prefixItems.length;\n }\n }\n else {\n json.items = prefixItems;\n if (rest) {\n json.additionalItems = rest;\n }\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n};\nexport const recordProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"object\";\n // For looseRecord with regex patterns, use patternProperties\n // This correctly represents \"only validate keys matching the pattern\" semantics\n // and composes well with allOf (intersections)\n const keyType = def.keyType;\n const keyBag = keyType._zod.bag;\n const patterns = keyBag?.patterns;\n if (def.mode === \"loose\" && patterns && patterns.size > 0) {\n // Use patternProperties for looseRecord with regex patterns\n const valueSchema = process(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"patternProperties\", \"*\"],\n });\n json.patternProperties = {};\n for (const pattern of patterns) {\n json.patternProperties[pattern.source] = valueSchema;\n }\n }\n else {\n // Default behavior: use propertyNames + additionalProperties\n if (ctx.target === \"draft-07\" || ctx.target === \"draft-2020-12\") {\n json.propertyNames = process(def.keyType, ctx, {\n ...params,\n path: [...params.path, \"propertyNames\"],\n });\n }\n json.additionalProperties = process(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n // Add required for keys with discrete values (enum, literal, etc.)\n const keyValues = keyType._zod.values;\n if (keyValues) {\n const validKeyValues = [...keyValues].filter((v) => typeof v === \"string\" || typeof v === \"number\");\n if (validKeyValues.length > 0) {\n json.required = validKeyValues;\n }\n }\n};\nexport const nullableProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const inner = process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n if (ctx.target === \"openapi-3.0\") {\n seen.ref = def.innerType;\n json.nullable = true;\n }\n else {\n json.anyOf = [inner, { type: \"null\" }];\n }\n};\nexport const nonoptionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const defaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n json.default = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const prefaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n if (ctx.io === \"input\")\n json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n};\nexport const catchProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n json.default = catchValue;\n};\nexport const pipeProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n const inIsTransform = def.in._zod.traits.has(\"$ZodTransform\");\n const innerType = ctx.io === \"input\" ? (inIsTransform ? def.out : def.in) : def.out;\n process(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\nexport const readonlyProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n json.readOnly = true;\n};\nexport const promiseProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const optionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n process(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const lazyProcessor = (schema, ctx, _json, params) => {\n const innerType = schema._zod.innerType;\n process(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\n// ==================== ALL PROCESSORS ====================\nexport const allProcessors = {\n string: stringProcessor,\n number: numberProcessor,\n boolean: booleanProcessor,\n bigint: bigintProcessor,\n symbol: symbolProcessor,\n null: nullProcessor,\n undefined: undefinedProcessor,\n void: voidProcessor,\n never: neverProcessor,\n any: anyProcessor,\n unknown: unknownProcessor,\n date: dateProcessor,\n enum: enumProcessor,\n literal: literalProcessor,\n nan: nanProcessor,\n template_literal: templateLiteralProcessor,\n file: fileProcessor,\n success: successProcessor,\n custom: customProcessor,\n function: functionProcessor,\n transform: transformProcessor,\n map: mapProcessor,\n set: setProcessor,\n array: arrayProcessor,\n object: objectProcessor,\n union: unionProcessor,\n intersection: intersectionProcessor,\n tuple: tupleProcessor,\n record: recordProcessor,\n nullable: nullableProcessor,\n nonoptional: nonoptionalProcessor,\n default: defaultProcessor,\n prefault: prefaultProcessor,\n catch: catchProcessor,\n pipe: pipeProcessor,\n readonly: readonlyProcessor,\n promise: promiseProcessor,\n optional: optionalProcessor,\n lazy: lazyProcessor,\n};\nexport function toJSONSchema(input, params) {\n if (\"_idmap\" in input) {\n // Registry case\n const registry = input;\n const ctx = initializeContext({ ...params, processors: allProcessors });\n const defs = {};\n // First pass: process all schemas to build the seen map\n for (const entry of registry._idmap.entries()) {\n const [_, schema] = entry;\n process(schema, ctx);\n }\n const schemas = {};\n const external = {\n registry,\n uri: params?.uri,\n defs,\n };\n // Update the context with external configuration\n ctx.external = external;\n // Second pass: emit each schema\n for (const entry of registry._idmap.entries()) {\n const [key, schema] = entry;\n extractDefs(ctx, schema);\n schemas[key] = finalize(ctx, schema);\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n // Single schema case\n const ctx = initializeContext({ ...params, processors: allProcessors });\n process(input, ctx);\n extractDefs(ctx, input);\n return finalize(ctx, input);\n}\n","import { allProcessors } from \"./json-schema-processors.js\";\nimport { extractDefs, finalize, initializeContext, process, } from \"./to-json-schema.js\";\n/**\n * Legacy class-based interface for JSON Schema generation.\n * This class wraps the new functional implementation to provide backward compatibility.\n *\n * @deprecated Use the `toJSONSchema` function instead for new code.\n *\n * @example\n * ```typescript\n * // Legacy usage (still supported)\n * const gen = new JSONSchemaGenerator({ target: \"draft-07\" });\n * gen.process(schema);\n * const result = gen.emit(schema);\n *\n * // Preferred modern usage\n * const result = toJSONSchema(schema, { target: \"draft-07\" });\n * ```\n */\nexport class JSONSchemaGenerator {\n /** @deprecated Access via ctx instead */\n get metadataRegistry() {\n return this.ctx.metadataRegistry;\n }\n /** @deprecated Access via ctx instead */\n get target() {\n return this.ctx.target;\n }\n /** @deprecated Access via ctx instead */\n get unrepresentable() {\n return this.ctx.unrepresentable;\n }\n /** @deprecated Access via ctx instead */\n get override() {\n return this.ctx.override;\n }\n /** @deprecated Access via ctx instead */\n get io() {\n return this.ctx.io;\n }\n /** @deprecated Access via ctx instead */\n get counter() {\n return this.ctx.counter;\n }\n set counter(value) {\n this.ctx.counter = value;\n }\n /** @deprecated Access via ctx instead */\n get seen() {\n return this.ctx.seen;\n }\n constructor(params) {\n // Normalize target for internal context\n let normalizedTarget = params?.target ?? \"draft-2020-12\";\n if (normalizedTarget === \"draft-4\")\n normalizedTarget = \"draft-04\";\n if (normalizedTarget === \"draft-7\")\n normalizedTarget = \"draft-07\";\n this.ctx = initializeContext({\n processors: allProcessors,\n target: normalizedTarget,\n ...(params?.metadata && { metadata: params.metadata }),\n ...(params?.unrepresentable && { unrepresentable: params.unrepresentable }),\n ...(params?.override && { override: params.override }),\n ...(params?.io && { io: params.io }),\n });\n }\n /**\n * Process a schema to prepare it for JSON Schema generation.\n * This must be called before emit().\n */\n process(schema, _params = { path: [], schemaPath: [] }) {\n return process(schema, this.ctx, _params);\n }\n /**\n * Emit the final JSON Schema after processing.\n * Must call process() first.\n */\n emit(schema, _params) {\n // Apply emit params to the context\n if (_params) {\n if (_params.cycles)\n this.ctx.cycles = _params.cycles;\n if (_params.reused)\n this.ctx.reused = _params.reused;\n if (_params.external)\n this.ctx.external = _params.external;\n }\n extractDefs(this.ctx, schema);\n const result = finalize(this.ctx, schema);\n // Strip ~standard property to match old implementation's return type\n const { \"~standard\": _, ...plainResult } = result;\n return plainResult;\n }\n}\n","export {};\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as processors from \"../core/json-schema-processors.js\";\nimport { createStandardJSONSchemaMethod, createToJSONSchemaMethod } from \"../core/to-json-schema.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\n// Lazy-bind builder methods.\n//\n// Builder methods (`.optional`, `.array`, `.refine`, ...) live as\n// non-enumerable getters on each concrete schema constructor's\n// prototype. On first access from an instance the getter allocates\n// `fn.bind(this)` and caches it as an own property on that instance,\n// so detached usage (`const m = schema.optional; m()`) still works\n// and the per-instance allocation only happens for methods actually\n// touched.\n//\n// One install per (prototype, group), memoized by `_installedGroups`.\nconst _installedGroups = /* @__PURE__ */ new WeakMap();\nfunction _installLazyMethods(inst, group, methods) {\n const proto = Object.getPrototypeOf(inst);\n let installed = _installedGroups.get(proto);\n if (!installed) {\n installed = new Set();\n _installedGroups.set(proto, installed);\n }\n if (installed.has(group))\n return;\n installed.add(group);\n for (const key in methods) {\n const fn = methods[key];\n Object.defineProperty(proto, key, {\n configurable: true,\n enumerable: false,\n get() {\n const bound = fn.bind(this);\n Object.defineProperty(this, key, {\n configurable: true,\n writable: true,\n enumerable: true,\n value: bound,\n });\n return bound;\n },\n set(v) {\n Object.defineProperty(this, key, {\n configurable: true,\n writable: true,\n enumerable: true,\n value: v,\n });\n },\n });\n }\n}\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n Object.assign(inst[\"~standard\"], {\n jsonSchema: {\n input: createStandardJSONSchemaMethod(inst, \"input\"),\n output: createStandardJSONSchemaMethod(inst, \"output\"),\n },\n });\n inst.toJSONSchema = createToJSONSchemaMethod(inst, {});\n inst.def = def;\n inst.type = def.type;\n Object.defineProperty(inst, \"_def\", { value: def });\n // Parse-family is intentionally kept as per-instance closures: these are\n // the hot path AND the most-detached methods (`arr.map(schema.parse)`,\n // `const { parse } = schema`, etc.). Eager closures here mean callers pay\n // ~12 closure allocations per schema but get monomorphic call sites and\n // detached usage that \"just works\".\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n inst.encode = (data, params) => parse.encode(inst, data, params);\n inst.decode = (data, params) => parse.decode(inst, data, params);\n inst.encodeAsync = async (data, params) => parse.encodeAsync(inst, data, params);\n inst.decodeAsync = async (data, params) => parse.decodeAsync(inst, data, params);\n inst.safeEncode = (data, params) => parse.safeEncode(inst, data, params);\n inst.safeDecode = (data, params) => parse.safeDecode(inst, data, params);\n inst.safeEncodeAsync = async (data, params) => parse.safeEncodeAsync(inst, data, params);\n inst.safeDecodeAsync = async (data, params) => parse.safeDecodeAsync(inst, data, params);\n // All builder methods are placed on the internal prototype as lazy-bind\n // getters. On first access per-instance, a bound thunk is allocated and\n // cached as an own property; subsequent accesses skip the getter. This\n // means: no per-instance allocation for unused methods, full\n // detachability preserved (`const m = schema.optional; m()` works), and\n // shared underlying function references across all instances.\n _installLazyMethods(inst, \"ZodType\", {\n check(...chks) {\n const def = this.def;\n return this.clone(util.mergeDefs(def, {\n checks: [\n ...(def.checks ?? []),\n ...chks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }), { parent: true });\n },\n with(...chks) {\n return this.check(...chks);\n },\n clone(def, params) {\n return core.clone(this, def, params);\n },\n brand() {\n return this;\n },\n register(reg, meta) {\n reg.add(this, meta);\n return this;\n },\n refine(check, params) {\n return this.check(refine(check, params));\n },\n superRefine(refinement, params) {\n return this.check(superRefine(refinement, params));\n },\n overwrite(fn) {\n return this.check(checks.overwrite(fn));\n },\n optional() {\n return optional(this);\n },\n exactOptional() {\n return exactOptional(this);\n },\n nullable() {\n return nullable(this);\n },\n nullish() {\n return optional(nullable(this));\n },\n nonoptional(params) {\n return nonoptional(this, params);\n },\n array() {\n return array(this);\n },\n or(arg) {\n return union([this, arg]);\n },\n and(arg) {\n return intersection(this, arg);\n },\n transform(tx) {\n return pipe(this, transform(tx));\n },\n default(d) {\n return _default(this, d);\n },\n prefault(d) {\n return prefault(this, d);\n },\n catch(params) {\n return _catch(this, params);\n },\n pipe(target) {\n return pipe(this, target);\n },\n readonly() {\n return readonly(this);\n },\n describe(description) {\n const cl = this.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n },\n meta(...args) {\n // overloaded: meta() returns the registered metadata, meta(data)\n // returns a clone with `data` registered. The mapped type picks\n // up the second overload, so we accept variadic any-args and\n // return `any` to satisfy both at runtime.\n if (args.length === 0)\n return core.globalRegistry.get(this);\n const cl = this.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n },\n isOptional() {\n return this.safeParse(undefined).success;\n },\n isNullable() {\n return this.safeParse(null).success;\n },\n apply(fn) {\n return fn(this);\n },\n });\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.stringProcessor(inst, ctx, json, params);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n _installLazyMethods(inst, \"_ZodString\", {\n regex(...args) {\n return this.check(checks.regex(...args));\n },\n includes(...args) {\n return this.check(checks.includes(...args));\n },\n startsWith(...args) {\n return this.check(checks.startsWith(...args));\n },\n endsWith(...args) {\n return this.check(checks.endsWith(...args));\n },\n min(...args) {\n return this.check(checks.minLength(...args));\n },\n max(...args) {\n return this.check(checks.maxLength(...args));\n },\n length(...args) {\n return this.check(checks.length(...args));\n },\n nonempty(...args) {\n return this.check(checks.minLength(1, ...args));\n },\n lowercase(params) {\n return this.check(checks.lowercase(params));\n },\n uppercase(params) {\n return this.check(checks.uppercase(params));\n },\n trim() {\n return this.check(checks.trim());\n },\n normalize(...args) {\n return this.check(checks.normalize(...args));\n },\n toLowerCase() {\n return this.check(checks.toLowerCase());\n },\n toUpperCase() {\n return this.check(checks.toUpperCase());\n },\n slugify() {\n return this.check(checks.slugify());\n },\n });\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: core.regexes.httpProtocol,\n hostname: core.regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\n/**\n * Validates a CUID v1 string.\n *\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2 | `z.cuid2()`} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodMAC = /*@__PURE__*/ core.$constructor(\"ZodMAC\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodMAC.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function mac(params) {\n return core._mac(ZodMAC, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", core.regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", core.regexes.hex, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.numberProcessor(inst, ctx, json, params);\n _installLazyMethods(inst, \"ZodNumber\", {\n gt(value, params) {\n return this.check(checks.gt(value, params));\n },\n gte(value, params) {\n return this.check(checks.gte(value, params));\n },\n min(value, params) {\n return this.check(checks.gte(value, params));\n },\n lt(value, params) {\n return this.check(checks.lt(value, params));\n },\n lte(value, params) {\n return this.check(checks.lte(value, params));\n },\n max(value, params) {\n return this.check(checks.lte(value, params));\n },\n int(params) {\n return this.check(int(params));\n },\n safe(params) {\n return this.check(int(params));\n },\n positive(params) {\n return this.check(checks.gt(0, params));\n },\n nonnegative(params) {\n return this.check(checks.gte(0, params));\n },\n negative(params) {\n return this.check(checks.lt(0, params));\n },\n nonpositive(params) {\n return this.check(checks.lte(0, params));\n },\n multipleOf(value, params) {\n return this.check(checks.multipleOf(value, params));\n },\n step(value, params) {\n return this.check(checks.multipleOf(value, params));\n },\n finite() {\n return this;\n },\n });\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.booleanProcessor(inst, ctx, json, params);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.bigintProcessor(inst, ctx, json, params);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.symbolProcessor(inst, ctx, json, params);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.undefinedProcessor(inst, ctx, json, params);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullProcessor(inst, ctx, json, params);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.anyProcessor(inst, ctx, json, params);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unknownProcessor(inst, ctx, json, params);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.neverProcessor(inst, ctx, json, params);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.voidProcessor(inst, ctx, json, params);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.dateProcessor(inst, ctx, json, params);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.arrayProcessor(inst, ctx, json, params);\n inst.element = def.element;\n _installLazyMethods(inst, \"ZodArray\", {\n min(n, params) {\n return this.check(checks.minLength(n, params));\n },\n nonempty(params) {\n return this.check(checks.minLength(1, params));\n },\n max(n, params) {\n return this.check(checks.maxLength(n, params));\n },\n length(n, params) {\n return this.check(checks.length(n, params));\n },\n unwrap() {\n return this.element;\n },\n });\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.objectProcessor(inst, ctx, json, params);\n util.defineLazy(inst, \"shape\", () => {\n return def.shape;\n });\n _installLazyMethods(inst, \"ZodObject\", {\n keyof() {\n return _enum(Object.keys(this._zod.def.shape));\n },\n catchall(catchall) {\n return this.clone({ ...this._zod.def, catchall: catchall });\n },\n passthrough() {\n return this.clone({ ...this._zod.def, catchall: unknown() });\n },\n loose() {\n return this.clone({ ...this._zod.def, catchall: unknown() });\n },\n strict() {\n return this.clone({ ...this._zod.def, catchall: never() });\n },\n strip() {\n return this.clone({ ...this._zod.def, catchall: undefined });\n },\n extend(incoming) {\n return util.extend(this, incoming);\n },\n safeExtend(incoming) {\n return util.safeExtend(this, incoming);\n },\n merge(other) {\n return util.merge(this, other);\n },\n pick(mask) {\n return util.pick(this, mask);\n },\n omit(mask) {\n return util.omit(this, mask);\n },\n partial(...args) {\n return util.partial(ZodOptional, this, args[0]);\n },\n required(...args) {\n return util.required(ZodNonOptional, this, args[0]);\n },\n });\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n shape: shape ?? {},\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodXor = /*@__PURE__*/ core.$constructor(\"ZodXor\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodXor.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\n/** Creates an exclusive union (XOR) where exactly one option must match.\n * Unlike regular unions that succeed when any option matches, xor fails if\n * zero or more than one option matches the input. */\nexport function xor(options, params) {\n return new ZodXor({\n type: \"union\",\n options: options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.intersectionProcessor(inst, ctx, json, params);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.tupleProcessor(inst, ctx, json, params);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.recordProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n // v3-compat: z.record(valueType, params?) — defaults keyType to z.string()\n if (!valueType || !valueType._zod) {\n return new ZodRecord({\n type: \"record\",\n keyType: string(),\n valueType: keyType,\n ...util.normalizeParams(valueType),\n });\n }\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output;\nexport function partialRecord(keyType, valueType, params) {\n const k = core.clone(keyType);\n k._zod.values = undefined;\n return new ZodRecord({\n type: \"record\",\n keyType: k,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function looseRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n mode: \"loose\",\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.mapProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.setProcessor(inst, ctx, json, params);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.enumProcessor(inst, ctx, json, params);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.literalProcessor(inst, ctx, json, params);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.fileProcessor(inst, ctx, json, params);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.transformProcessor(inst, ctx, json, params);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n payload.fallback = true;\n return payload;\n });\n }\n payload.value = output;\n payload.fallback = true;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodExactOptional = /*@__PURE__*/ core.$constructor(\"ZodExactOptional\", (inst, def) => {\n core.$ZodExactOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function exactOptional(innerType) {\n return new ZodExactOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullableProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.defaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.prefaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nonoptionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.successProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.catchProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nanProcessor(inst, ctx, json, params);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.pipeProcessor(inst, ctx, json, params);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport function invertCodec(codec) {\n const def = codec._zod.def;\n return new ZodCodec({\n type: \"pipe\",\n in: def.out,\n out: def.in,\n transform: def.reverseTransform,\n reverseTransform: def.transform,\n });\n}\nexport const ZodPreprocess = /*@__PURE__*/ core.$constructor(\"ZodPreprocess\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodPreprocess.init(inst, def);\n});\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.readonlyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.templateLiteralProcessor(inst, ctx, json, params);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.lazyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.promiseProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.functionProcessor(inst, ctx, json, params);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.customProcessor(inst, ctx, json, params);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn, params) {\n return core._superRefine(fn, params);\n}\n// Re-export describe and meta from core\nexport const describe = core.describe;\nexport const meta = core.meta;\nfunction _instanceof(cls, params = {}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n // Override check to emit invalid_type instead of custom\n inst._zod.check = (payload) => {\n if (!(payload.value instanceof cls)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: cls.name,\n input: payload.value,\n inst,\n path: [...(inst._zod.def.path ?? [])],\n });\n }\n };\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\nexport function preprocess(fn, schema) {\n return new ZodPreprocess({\n type: \"pipe\",\n in: transform(fn),\n out: schema,\n });\n}\n","export { _lt as lt, _lte as lte, _gt as gt, _gte as gte, _positive as positive, _negative as negative, _nonpositive as nonpositive, _nonnegative as nonnegative, _multipleOf as multipleOf, _maxSize as maxSize, _minSize as minSize, _size as size, _maxLength as maxLength, _minLength as minLength, _length as length, _regex as regex, _lowercase as lowercase, _uppercase as uppercase, _includes as includes, _startsWith as startsWith, _endsWith as endsWith, _property as property, _mime as mime, _overwrite as overwrite, _normalize as normalize, _trim as trim, _toLowerCase as toLowerCase, _toUpperCase as toUpperCase, _slugify as slugify, } from \"../core/index.js\";\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => {\n inst.issues.push(issue);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => {\n inst.issues.push(...issues);\n inst.message = JSON.stringify(inst.issues, util.jsonStringifyReplacer, 2);\n },\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n/** @deprecated Do not use. Stub definition, only included for zod-to-json-schema compatibility. */\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n","import { globalRegistry } from \"../core/registries.js\";\nimport * as _checks from \"./checks.js\";\nimport * as _iso from \"./iso.js\";\nimport * as _schemas from \"./schemas.js\";\n// Local z object to avoid circular dependency with ../index.js\nconst z = {\n ..._schemas,\n ..._checks,\n iso: _iso,\n};\n// Keys that are recognized and handled by the conversion logic\nconst RECOGNIZED_KEYS = /*@__PURE__*/ new Set([\n // Schema identification\n \"$schema\",\n \"$ref\",\n \"$defs\",\n \"definitions\",\n // Core schema keywords\n \"$id\",\n \"id\",\n \"$comment\",\n \"$anchor\",\n \"$vocabulary\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n // Type\n \"type\",\n \"enum\",\n \"const\",\n // Composition\n \"anyOf\",\n \"oneOf\",\n \"allOf\",\n \"not\",\n // Object\n \"properties\",\n \"required\",\n \"additionalProperties\",\n \"patternProperties\",\n \"propertyNames\",\n \"minProperties\",\n \"maxProperties\",\n // Array\n \"items\",\n \"prefixItems\",\n \"additionalItems\",\n \"minItems\",\n \"maxItems\",\n \"uniqueItems\",\n \"contains\",\n \"minContains\",\n \"maxContains\",\n // String\n \"minLength\",\n \"maxLength\",\n \"pattern\",\n \"format\",\n // Number\n \"minimum\",\n \"maximum\",\n \"exclusiveMinimum\",\n \"exclusiveMaximum\",\n \"multipleOf\",\n // Already handled metadata\n \"description\",\n \"default\",\n // Content\n \"contentEncoding\",\n \"contentMediaType\",\n \"contentSchema\",\n // Unsupported (error-throwing)\n \"unevaluatedItems\",\n \"unevaluatedProperties\",\n \"if\",\n \"then\",\n \"else\",\n \"dependentSchemas\",\n \"dependentRequired\",\n // OpenAPI\n \"nullable\",\n \"readOnly\",\n]);\nfunction detectVersion(schema, defaultTarget) {\n const $schema = schema.$schema;\n if ($schema === \"https://json-schema.org/draft/2020-12/schema\") {\n return \"draft-2020-12\";\n }\n if ($schema === \"http://json-schema.org/draft-07/schema#\") {\n return \"draft-7\";\n }\n if ($schema === \"http://json-schema.org/draft-04/schema#\") {\n return \"draft-4\";\n }\n // Use defaultTarget if provided, otherwise default to draft-2020-12\n return defaultTarget ?? \"draft-2020-12\";\n}\nfunction resolveRef(ref, ctx) {\n if (!ref.startsWith(\"#\")) {\n throw new Error(\"External $ref is not supported, only local refs (#/...) are allowed\");\n }\n const path = ref.slice(1).split(\"/\").filter(Boolean);\n // Handle root reference \"#\"\n if (path.length === 0) {\n return ctx.rootSchema;\n }\n const defsKey = ctx.version === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (path[0] === defsKey) {\n const key = path[1];\n if (!key || !ctx.defs[key]) {\n throw new Error(`Reference not found: ${ref}`);\n }\n return ctx.defs[key];\n }\n throw new Error(`Reference not found: ${ref}`);\n}\nfunction convertBaseSchema(schema, ctx) {\n // Handle unsupported features\n if (schema.not !== undefined) {\n // Special case: { not: {} } represents never\n if (typeof schema.not === \"object\" && Object.keys(schema.not).length === 0) {\n return z.never();\n }\n throw new Error(\"not is not supported in Zod (except { not: {} } for never)\");\n }\n if (schema.unevaluatedItems !== undefined) {\n throw new Error(\"unevaluatedItems is not supported\");\n }\n if (schema.unevaluatedProperties !== undefined) {\n throw new Error(\"unevaluatedProperties is not supported\");\n }\n if (schema.if !== undefined || schema.then !== undefined || schema.else !== undefined) {\n throw new Error(\"Conditional schemas (if/then/else) are not supported\");\n }\n if (schema.dependentSchemas !== undefined || schema.dependentRequired !== undefined) {\n throw new Error(\"dependentSchemas and dependentRequired are not supported\");\n }\n // Handle $ref\n if (schema.$ref) {\n const refPath = schema.$ref;\n if (ctx.refs.has(refPath)) {\n return ctx.refs.get(refPath);\n }\n if (ctx.processing.has(refPath)) {\n // Circular reference - use lazy\n return z.lazy(() => {\n if (!ctx.refs.has(refPath)) {\n throw new Error(`Circular reference not resolved: ${refPath}`);\n }\n return ctx.refs.get(refPath);\n });\n }\n ctx.processing.add(refPath);\n const resolved = resolveRef(refPath, ctx);\n const zodSchema = convertSchema(resolved, ctx);\n ctx.refs.set(refPath, zodSchema);\n ctx.processing.delete(refPath);\n return zodSchema;\n }\n // Handle enum\n if (schema.enum !== undefined) {\n const enumValues = schema.enum;\n // Special case: OpenAPI 3.0 null representation { type: \"string\", nullable: true, enum: [null] }\n if (ctx.version === \"openapi-3.0\" &&\n schema.nullable === true &&\n enumValues.length === 1 &&\n enumValues[0] === null) {\n return z.null();\n }\n if (enumValues.length === 0) {\n return z.never();\n }\n if (enumValues.length === 1) {\n return z.literal(enumValues[0]);\n }\n // Check if all values are strings\n if (enumValues.every((v) => typeof v === \"string\")) {\n return z.enum(enumValues);\n }\n // Mixed types - use union of literals\n const literalSchemas = enumValues.map((v) => z.literal(v));\n if (literalSchemas.length < 2) {\n return literalSchemas[0];\n }\n return z.union([literalSchemas[0], literalSchemas[1], ...literalSchemas.slice(2)]);\n }\n // Handle const\n if (schema.const !== undefined) {\n return z.literal(schema.const);\n }\n // Handle type\n const type = schema.type;\n if (Array.isArray(type)) {\n // Expand type array into anyOf union\n const typeSchemas = type.map((t) => {\n const typeSchema = { ...schema, type: t };\n return convertBaseSchema(typeSchema, ctx);\n });\n if (typeSchemas.length === 0) {\n return z.never();\n }\n if (typeSchemas.length === 1) {\n return typeSchemas[0];\n }\n return z.union(typeSchemas);\n }\n if (!type) {\n // No type specified - empty schema (any)\n return z.any();\n }\n let zodSchema;\n switch (type) {\n case \"string\": {\n let stringSchema = z.string();\n // Apply format using .check() with Zod format functions\n if (schema.format) {\n const format = schema.format;\n // Map common formats to Zod check functions\n if (format === \"email\") {\n stringSchema = stringSchema.check(z.email());\n }\n else if (format === \"uri\" || format === \"uri-reference\") {\n stringSchema = stringSchema.check(z.url());\n }\n else if (format === \"uuid\" || format === \"guid\") {\n stringSchema = stringSchema.check(z.uuid());\n }\n else if (format === \"date-time\") {\n stringSchema = stringSchema.check(z.iso.datetime());\n }\n else if (format === \"date\") {\n stringSchema = stringSchema.check(z.iso.date());\n }\n else if (format === \"time\") {\n stringSchema = stringSchema.check(z.iso.time());\n }\n else if (format === \"duration\") {\n stringSchema = stringSchema.check(z.iso.duration());\n }\n else if (format === \"ipv4\") {\n stringSchema = stringSchema.check(z.ipv4());\n }\n else if (format === \"ipv6\") {\n stringSchema = stringSchema.check(z.ipv6());\n }\n else if (format === \"mac\") {\n stringSchema = stringSchema.check(z.mac());\n }\n else if (format === \"cidr\") {\n stringSchema = stringSchema.check(z.cidrv4());\n }\n else if (format === \"cidr-v6\") {\n stringSchema = stringSchema.check(z.cidrv6());\n }\n else if (format === \"base64\") {\n stringSchema = stringSchema.check(z.base64());\n }\n else if (format === \"base64url\") {\n stringSchema = stringSchema.check(z.base64url());\n }\n else if (format === \"e164\") {\n stringSchema = stringSchema.check(z.e164());\n }\n else if (format === \"jwt\") {\n stringSchema = stringSchema.check(z.jwt());\n }\n else if (format === \"emoji\") {\n stringSchema = stringSchema.check(z.emoji());\n }\n else if (format === \"nanoid\") {\n stringSchema = stringSchema.check(z.nanoid());\n }\n else if (format === \"cuid\") {\n stringSchema = stringSchema.check(z.cuid());\n }\n else if (format === \"cuid2\") {\n stringSchema = stringSchema.check(z.cuid2());\n }\n else if (format === \"ulid\") {\n stringSchema = stringSchema.check(z.ulid());\n }\n else if (format === \"xid\") {\n stringSchema = stringSchema.check(z.xid());\n }\n else if (format === \"ksuid\") {\n stringSchema = stringSchema.check(z.ksuid());\n }\n // Note: json-string format is not currently supported by Zod\n // Custom formats are ignored - keep as plain string\n }\n // Apply constraints\n if (typeof schema.minLength === \"number\") {\n stringSchema = stringSchema.min(schema.minLength);\n }\n if (typeof schema.maxLength === \"number\") {\n stringSchema = stringSchema.max(schema.maxLength);\n }\n if (schema.pattern) {\n // JSON Schema patterns are not implicitly anchored (match anywhere in string)\n stringSchema = stringSchema.regex(new RegExp(schema.pattern));\n }\n zodSchema = stringSchema;\n break;\n }\n case \"number\":\n case \"integer\": {\n let numberSchema = type === \"integer\" ? z.number().int() : z.number();\n // Apply constraints\n if (typeof schema.minimum === \"number\") {\n numberSchema = numberSchema.min(schema.minimum);\n }\n if (typeof schema.maximum === \"number\") {\n numberSchema = numberSchema.max(schema.maximum);\n }\n if (typeof schema.exclusiveMinimum === \"number\") {\n numberSchema = numberSchema.gt(schema.exclusiveMinimum);\n }\n else if (schema.exclusiveMinimum === true && typeof schema.minimum === \"number\") {\n numberSchema = numberSchema.gt(schema.minimum);\n }\n if (typeof schema.exclusiveMaximum === \"number\") {\n numberSchema = numberSchema.lt(schema.exclusiveMaximum);\n }\n else if (schema.exclusiveMaximum === true && typeof schema.maximum === \"number\") {\n numberSchema = numberSchema.lt(schema.maximum);\n }\n if (typeof schema.multipleOf === \"number\") {\n numberSchema = numberSchema.multipleOf(schema.multipleOf);\n }\n zodSchema = numberSchema;\n break;\n }\n case \"boolean\": {\n zodSchema = z.boolean();\n break;\n }\n case \"null\": {\n zodSchema = z.null();\n break;\n }\n case \"object\": {\n const shape = {};\n const properties = schema.properties || {};\n const requiredSet = new Set(schema.required || []);\n // Convert properties - mark optional ones\n for (const [key, propSchema] of Object.entries(properties)) {\n const propZodSchema = convertSchema(propSchema, ctx);\n // If not in required array, make it optional\n shape[key] = requiredSet.has(key) ? propZodSchema : propZodSchema.optional();\n }\n // Handle propertyNames\n if (schema.propertyNames) {\n const keySchema = convertSchema(schema.propertyNames, ctx);\n const valueSchema = schema.additionalProperties && typeof schema.additionalProperties === \"object\"\n ? convertSchema(schema.additionalProperties, ctx)\n : z.any();\n // Case A: No properties (pure record)\n if (Object.keys(shape).length === 0) {\n zodSchema = z.record(keySchema, valueSchema);\n break;\n }\n // Case B: With properties (intersection of object and looseRecord)\n const objectSchema = z.object(shape).passthrough();\n const recordSchema = z.looseRecord(keySchema, valueSchema);\n zodSchema = z.intersection(objectSchema, recordSchema);\n break;\n }\n // Handle patternProperties\n if (schema.patternProperties) {\n // patternProperties: keys matching pattern must satisfy corresponding schema\n // Use loose records so non-matching keys pass through\n const patternProps = schema.patternProperties;\n const patternKeys = Object.keys(patternProps);\n const looseRecords = [];\n for (const pattern of patternKeys) {\n const patternValue = convertSchema(patternProps[pattern], ctx);\n const keySchema = z.string().regex(new RegExp(pattern));\n looseRecords.push(z.looseRecord(keySchema, patternValue));\n }\n // Build intersection: object schema + all pattern property records\n const schemasToIntersect = [];\n if (Object.keys(shape).length > 0) {\n // Use passthrough so patternProperties can validate additional keys\n schemasToIntersect.push(z.object(shape).passthrough());\n }\n schemasToIntersect.push(...looseRecords);\n if (schemasToIntersect.length === 0) {\n zodSchema = z.object({}).passthrough();\n }\n else if (schemasToIntersect.length === 1) {\n zodSchema = schemasToIntersect[0];\n }\n else {\n // Chain intersections: (A & B) & C & D ...\n let result = z.intersection(schemasToIntersect[0], schemasToIntersect[1]);\n for (let i = 2; i < schemasToIntersect.length; i++) {\n result = z.intersection(result, schemasToIntersect[i]);\n }\n zodSchema = result;\n }\n break;\n }\n // Handle additionalProperties\n // In JSON Schema, additionalProperties defaults to true (allow any extra properties)\n // In Zod, objects strip unknown keys by default, so we need to handle this explicitly\n const objectSchema = z.object(shape);\n if (schema.additionalProperties === false) {\n // Strict mode - no extra properties allowed\n zodSchema = objectSchema.strict();\n }\n else if (typeof schema.additionalProperties === \"object\") {\n // Extra properties must match the specified schema\n zodSchema = objectSchema.catchall(convertSchema(schema.additionalProperties, ctx));\n }\n else {\n // additionalProperties is true or undefined - allow any extra properties (passthrough)\n zodSchema = objectSchema.passthrough();\n }\n break;\n }\n case \"array\": {\n // TODO: uniqueItems is not supported\n // TODO: contains/minContains/maxContains are not supported\n // Check if this is a tuple (prefixItems or items as array)\n const prefixItems = schema.prefixItems;\n const items = schema.items;\n if (prefixItems && Array.isArray(prefixItems)) {\n // Tuple with prefixItems (draft-2020-12)\n const tupleItems = prefixItems.map((item) => convertSchema(item, ctx));\n const rest = items && typeof items === \"object\" && !Array.isArray(items)\n ? convertSchema(items, ctx)\n : undefined;\n if (rest) {\n zodSchema = z.tuple(tupleItems).rest(rest);\n }\n else {\n zodSchema = z.tuple(tupleItems);\n }\n // Apply minItems/maxItems constraints to tuples\n if (typeof schema.minItems === \"number\") {\n zodSchema = zodSchema.check(z.minLength(schema.minItems));\n }\n if (typeof schema.maxItems === \"number\") {\n zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n }\n }\n else if (Array.isArray(items)) {\n // Tuple with items array (draft-7)\n const tupleItems = items.map((item) => convertSchema(item, ctx));\n const rest = schema.additionalItems && typeof schema.additionalItems === \"object\"\n ? convertSchema(schema.additionalItems, ctx)\n : undefined; // additionalItems: false means no rest, handled by default tuple behavior\n if (rest) {\n zodSchema = z.tuple(tupleItems).rest(rest);\n }\n else {\n zodSchema = z.tuple(tupleItems);\n }\n // Apply minItems/maxItems constraints to tuples\n if (typeof schema.minItems === \"number\") {\n zodSchema = zodSchema.check(z.minLength(schema.minItems));\n }\n if (typeof schema.maxItems === \"number\") {\n zodSchema = zodSchema.check(z.maxLength(schema.maxItems));\n }\n }\n else if (items !== undefined) {\n // Regular array\n const element = convertSchema(items, ctx);\n let arraySchema = z.array(element);\n // Apply constraints\n if (typeof schema.minItems === \"number\") {\n arraySchema = arraySchema.min(schema.minItems);\n }\n if (typeof schema.maxItems === \"number\") {\n arraySchema = arraySchema.max(schema.maxItems);\n }\n zodSchema = arraySchema;\n }\n else {\n // No items specified - array of any\n zodSchema = z.array(z.any());\n }\n break;\n }\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n return zodSchema;\n}\nfunction convertSchema(schema, ctx) {\n if (typeof schema === \"boolean\") {\n return schema ? z.any() : z.never();\n }\n // Convert base schema first (ignoring composition keywords)\n let baseSchema = convertBaseSchema(schema, ctx);\n const hasExplicitType = schema.type || schema.enum !== undefined || schema.const !== undefined;\n // Process composition keywords LAST (they can appear together)\n // Handle anyOf - wrap base schema with union\n if (schema.anyOf && Array.isArray(schema.anyOf)) {\n const options = schema.anyOf.map((s) => convertSchema(s, ctx));\n const anyOfUnion = z.union(options);\n baseSchema = hasExplicitType ? z.intersection(baseSchema, anyOfUnion) : anyOfUnion;\n }\n // Handle oneOf - exclusive union (exactly one must match)\n if (schema.oneOf && Array.isArray(schema.oneOf)) {\n const options = schema.oneOf.map((s) => convertSchema(s, ctx));\n const oneOfUnion = z.xor(options);\n baseSchema = hasExplicitType ? z.intersection(baseSchema, oneOfUnion) : oneOfUnion;\n }\n // Handle allOf - wrap base schema with intersection\n if (schema.allOf && Array.isArray(schema.allOf)) {\n if (schema.allOf.length === 0) {\n baseSchema = hasExplicitType ? baseSchema : z.any();\n }\n else {\n let result = hasExplicitType ? baseSchema : convertSchema(schema.allOf[0], ctx);\n const startIdx = hasExplicitType ? 0 : 1;\n for (let i = startIdx; i < schema.allOf.length; i++) {\n result = z.intersection(result, convertSchema(schema.allOf[i], ctx));\n }\n baseSchema = result;\n }\n }\n // Handle nullable (OpenAPI 3.0)\n if (schema.nullable === true && ctx.version === \"openapi-3.0\") {\n baseSchema = z.nullable(baseSchema);\n }\n // Handle readOnly\n if (schema.readOnly === true) {\n baseSchema = z.readonly(baseSchema);\n }\n // Apply `default` so it wraps the fully-composed schema. This ensures\n // `parse(undefined) -> default` works regardless of which branch of\n // `convertBaseSchema` produced the inner schema (enum/const/not/typed/etc.).\n if (schema.default !== undefined) {\n baseSchema = baseSchema.default(schema.default);\n }\n // Collect non-description annotation metadata into the user-supplied\n // registry. Description is handled separately below via `.describe()` to\n // preserve the contract that `schema.description` reads from globalRegistry.\n const extraMeta = {};\n const coreMetadataKeys = [\"$id\", \"id\", \"$comment\", \"$anchor\", \"$vocabulary\", \"$dynamicRef\", \"$dynamicAnchor\"];\n for (const key of coreMetadataKeys) {\n if (key in schema) {\n extraMeta[key] = schema[key];\n }\n }\n const contentMetadataKeys = [\"contentEncoding\", \"contentMediaType\", \"contentSchema\"];\n for (const key of contentMetadataKeys) {\n if (key in schema) {\n extraMeta[key] = schema[key];\n }\n }\n for (const key of Object.keys(schema)) {\n if (!RECOGNIZED_KEYS.has(key)) {\n extraMeta[key] = schema[key];\n }\n }\n if (Object.keys(extraMeta).length > 0) {\n ctx.registry.add(baseSchema, extraMeta);\n }\n // Apply description last. `.describe()` clones the schema and sets\n // `_zod.parent` on the clone, so registry lookups on the returned reference\n // still resolve `extraMeta` via parent inheritance.\n if (schema.description) {\n baseSchema = baseSchema.describe(schema.description);\n }\n return baseSchema;\n}\n/**\n * Converts a JSON Schema to a Zod schema. This function should be considered semi-experimental. It's behavior is liable to change. */\nexport function fromJSONSchema(schema, params) {\n // Handle boolean schemas\n if (typeof schema === \"boolean\") {\n return schema ? z.any() : z.never();\n }\n // Normalize input via a JSON round-trip. This guarantees the converter\n // walks a plain, finite, JSON-valid object graph: cyclic inputs fail here,\n // getter/Proxy-based properties are materialized into static values, and\n // class instances collapse to plain objects.\n let normalized;\n try {\n normalized = JSON.parse(JSON.stringify(schema));\n }\n catch {\n throw new Error(\"fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas\");\n }\n const version = detectVersion(normalized, params?.defaultTarget);\n const defs = (normalized.$defs || normalized.definitions || {});\n const ctx = {\n version,\n defs,\n refs: new Map(),\n processing: new Set(),\n rootSchema: normalized,\n registry: params?.registry ?? globalRegistry,\n };\n return convertSchema(normalized, ctx);\n}\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","export var util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = Object.create(null);\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","export var errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n // @ts-ignore\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nexport class ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n // @ts-ignore\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"jwt\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cidr\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport class ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nexport class ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // (def: Def) =>\n // (\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge(\n // merging: Incoming\n // ): //ZodObject = (merging) => {\n // ZodObject<\n // extendShape>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nexport class ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexport class ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nexport class ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexport class ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nexport class ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nexport class ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexport class ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nexport function custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","/**\n * Symbol used for identifying AI SDK Error instances.\n * Enables checking if an error is an instance of AISDKError across package versions.\n */\nconst marker = 'vercel.ai.error';\nconst symbol = Symbol.for(marker);\n\n/**\n * Custom error class for AI SDK related errors.\n * @extends Error\n */\nexport class AISDKError extends Error {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n * The underlying cause of the error, if any.\n */\n readonly cause?: unknown;\n\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name,\n message,\n cause,\n }: {\n name: string;\n message: string;\n cause?: unknown;\n }) {\n super(message);\n\n this.name = name;\n this.cause = cause;\n }\n\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error: unknown): error is AISDKError {\n return AISDKError.hasMarker(error, marker);\n }\n\n protected static hasMarker(error: unknown, marker: string): boolean {\n const markerSymbol = Symbol.for(marker);\n return (\n error != null &&\n typeof error === 'object' &&\n markerSymbol in error &&\n typeof error[markerSymbol] === 'boolean' &&\n error[markerSymbol] === true\n );\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_APICallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class APICallError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly url: string;\n readonly requestBodyValues: unknown;\n readonly statusCode?: number;\n\n readonly responseHeaders?: Record;\n readonly responseBody?: string;\n\n readonly isRetryable: boolean;\n readonly data?: unknown;\n\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null &&\n (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500), // server error\n data,\n }: {\n message: string;\n url: string;\n requestBodyValues: unknown;\n statusCode?: number;\n responseHeaders?: Record;\n responseBody?: string;\n cause?: unknown;\n isRetryable?: boolean;\n data?: unknown;\n }) {\n super({ name, message, cause });\n\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n\n static isInstance(error: unknown): error is APICallError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_EmptyResponseBodyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class EmptyResponseBodyError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message = 'Empty response body' }: { message?: string } = {}) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is EmptyResponseBodyError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A function argument is invalid.\n */\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly argument: string;\n\n constructor({\n message,\n cause,\n argument,\n }: {\n argument: string;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message, cause });\n\n this.argument = argument;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_JSONParseError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n// TODO v5: rename to ParseError\nexport class JSONParseError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly text: string;\n\n constructor({ text, cause }: { text: string; cause: unknown }) {\n super({\n name,\n message:\n `JSON parsing failed: ` +\n `Text: ${text}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.text = text;\n }\n\n static isInstance(error: unknown): error is JSONParseError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_TypeValidationError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class TypeValidationError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly value: unknown;\n\n constructor({ value, cause }: { value: unknown; cause: unknown }) {\n super({\n name,\n message:\n `Type validation failed: ` +\n `Value: ${JSON.stringify(value)}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.value = value;\n }\n\n static isInstance(error: unknown): error is TypeValidationError {\n return AISDKError.hasMarker(error, marker);\n }\n\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n }: {\n value: unknown;\n cause: unknown;\n }): TypeValidationError {\n return TypeValidationError.isInstance(cause) && cause.value === value\n ? cause\n : new TypeValidationError({ value, cause });\n }\n}\n","/**\n * The type of error that occurred.\n * @public\n */\nexport type ErrorType = 'invalid-retry' | 'unknown-field'\n\n/**\n * Error thrown when encountering an issue during parsing.\n *\n * @public\n */\nexport class ParseError extends Error {\n /**\n * The type of error that occurred.\n */\n type: ErrorType\n\n /**\n * In the case of an unknown field encountered in the stream, this will be the field name.\n */\n field?: string | undefined\n\n /**\n * In the case of an unknown field encountered in the stream, this will be the value of the field.\n */\n value?: string | undefined\n\n /**\n * The line that caused the error, if available.\n */\n line?: string | undefined\n\n constructor(\n message: string,\n options: {type: ErrorType; field?: string; value?: string; line?: string},\n ) {\n super(message)\n this.name = 'ParseError'\n this.type = options.type\n this.field = options.field\n this.value = options.value\n this.line = options.line\n }\n}\n","/**\n * EventSource/Server-Sent Events parser\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n */\nimport {ParseError} from './errors.ts'\nimport type {EventSourceParser, ParserCallbacks} from './types.ts'\n\n// ASCII codes used in the hot parsing paths.\nconst LF = 10\nconst CR = 13\nconst SPACE = 32\n\n// oxlint-disable-next-line no-unused-vars\nfunction noop(_arg: unknown) {\n // intentional noop\n}\n\n/**\n * Creates a new EventSource parser.\n *\n * @param callbacks - Callbacks to invoke on different parsing events:\n * - `onEvent` when a new event is parsed\n * - `onError` when an error occurs\n * - `onRetry` when a new reconnection interval has been sent from the server\n * - `onComment` when a comment is encountered in the stream\n *\n * @returns A new EventSource parser, with `parse` and `reset` methods.\n * @public\n */\nexport function createParser(callbacks: ParserCallbacks): EventSourceParser {\n if (typeof callbacks === 'function') {\n throw new TypeError(\n '`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?',\n )\n }\n\n const {onEvent = noop, onError = noop, onRetry = noop, onComment} = callbacks\n\n // Trailing bytes from prior `feed()` calls that did not yet form a complete line.\n // Stored as an array of fragments and only joined when a line terminator arrives.\n // Concatenating per-feed (`prefix + chunk`) is O(N²) when a single SSE line spans\n // many chunks (e.g. a large `data:` payload streamed in tiny slices, or an MCP-style\n // server that emits one giant content block). Buffering as fragments + joining once\n // makes the same workload linear.\n const pendingFragments: string[] = []\n\n let isFirstChunk = true\n let id: string | undefined\n let data = ''\n let dataLines = 0\n let eventType: string | undefined\n\n /**\n * Feeds a chunk of the SSE stream to the parser. Any trailing bytes that do\n * not yet form a complete line are held back and prepended to the next chunk,\n * so callers can pass arbitrary slices of the stream without worrying about\n * line boundaries.\n *\n * Per the SSE spec, a UTF-8 BOM (0xEF 0xBB 0xBF) at the start of the very\n * first chunk is stripped before parsing.\n *\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream\n */\n function feed(chunk: string) {\n if (isFirstChunk) {\n isFirstChunk = false\n // Match and strip UTF-8 BOM from the start of the stream, if present.\n // (Per the spec, this is only valid at the very start of the stream)\n if (\n chunk.charCodeAt(0) === 0xef &&\n chunk.charCodeAt(1) === 0xbb &&\n chunk.charCodeAt(2) === 0xbf\n ) {\n chunk = chunk.slice(3)\n }\n }\n\n // Hot path: no buffered prefix from a prior partial line. Hand the chunk\n // straight to `processLines`, exactly like the original implementation.\n // Zero new work in the common case (every chunk ends with `\\n\\n`).\n if (pendingFragments.length === 0) {\n const trailing = processLines(chunk)\n if (trailing !== '') pendingFragments.push(trailing)\n return\n }\n\n // We have a buffered prefix. If this chunk also has no terminator, append\n // to the buffer without concatenating — that's the O(N²) trap we're\n // avoiding (large single `data:` payload split across many tiny chunks).\n if (chunk.indexOf('\\n') === -1 && chunk.indexOf('\\r') === -1) {\n pendingFragments.push(chunk)\n return\n }\n\n // Terminator arrived. Join the accumulated fragments + this chunk once,\n // process, and buffer any new trailing partial line.\n pendingFragments.push(chunk)\n const input = pendingFragments.join('')\n pendingFragments.length = 0\n const trailing = processLines(input)\n if (trailing !== '') pendingFragments.push(trailing)\n }\n\n /**\n * Splits `chunk` into SSE lines and dispatches each to the appropriate handler.\n * Returns any trailing bytes that did not terminate with a line break, so the\n * caller can prepend them to the next chunk.\n *\n * The SSE spec permits three line terminators: `\\n`, `\\r`, and `\\r\\n`. Real-world\n * streams almost always use plain `\\n`, so we take a fast path when no `\\r` is\n * present in the chunk. The slow path is spec-correct but does more work per line.\n */\n function processLines(chunk: string): string {\n let searchIndex = 0\n\n // Fast path: LF-only chunk (the common case for typical SSE servers).\n // We can scan forward with a single `indexOf('\\n')` per line and inline\n // the hot-path branches for `data:` and `event:` without the CR bookkeeping\n // the slow path needs.\n if (chunk.indexOf('\\r') === -1) {\n let lfIndex = chunk.indexOf('\\n', searchIndex)\n while (lfIndex !== -1) {\n // Blank line: end-of-event marker. Dispatch the accumulated event (if any)\n // and reset the buffered fields. This is hoisted out of `parseLine` because\n // it's the single most common line shape after `data:` lines.\n if (searchIndex === lfIndex) {\n if (dataLines > 0) {\n onEvent({id, event: eventType, data})\n }\n id = undefined\n data = ''\n dataLines = 0\n eventType = undefined\n searchIndex = lfIndex + 1\n lfIndex = chunk.indexOf('\\n', searchIndex)\n continue\n }\n const firstCharCode = chunk.charCodeAt(searchIndex)\n if (isDataPrefix(chunk, searchIndex, firstCharCode)) {\n // `data:` line — append the value to the event's data buffer.\n // 'data:'.length === 5, 'data: '.length === 6\n const valueStart =\n chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5\n const value = chunk.slice(valueStart, lfIndex)\n // Fast path within a fast path: if this is the first data line AND the\n // next char is another LF (i.e. `data:foo\\n\\n`), dispatch immediately\n // without ever writing to the `data` buffer. This is the shape of a\n // typical single-line SSE event (ChatGPT-style streams, etc.) and is\n // hot enough to be worth the duplication.\n if (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) {\n onEvent({id, event: eventType, data: value})\n id = undefined\n data = ''\n eventType = undefined\n searchIndex = lfIndex + 2\n lfIndex = chunk.indexOf('\\n', searchIndex)\n continue\n }\n // Multi-line data: concatenate with newline separator per spec.\n data = dataLines === 0 ? value : `${data}\\n${value}`\n dataLines++\n } else if (isEventPrefix(chunk, searchIndex, firstCharCode)) {\n // `event:` line — set the event type for the next dispatch. Per spec,\n // an empty value resets `event type` to its default (undefined here).\n // 'event:'.length === 6, 'event: '.length === 7\n eventType =\n chunk.slice(\n chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6,\n lfIndex,\n ) || undefined\n } else {\n // Everything else: `id:`, `retry:`, comment lines (`:` prefix), unknown\n // fields, or malformed lines. These are rarer and go through the full\n // per-line parser, which handles the SSE field grammar in detail.\n parseLine(chunk, searchIndex, lfIndex)\n }\n searchIndex = lfIndex + 1\n lfIndex = chunk.indexOf('\\n', searchIndex)\n }\n return chunk.slice(searchIndex)\n }\n\n // Slow path: the chunk contains at least one `\\r`, so lines may be terminated\n // by `\\r`, `\\n`, or `\\r\\n`. We locate the next terminator by looking at both\n // the nearest `\\r` and `\\n` and picking whichever comes first.\n while (searchIndex < chunk.length) {\n const crIndex = chunk.indexOf('\\r', searchIndex)\n const lfIndex = chunk.indexOf('\\n', searchIndex)\n\n let lineEnd = -1\n if (crIndex !== -1 && lfIndex !== -1) {\n lineEnd = crIndex < lfIndex ? crIndex : lfIndex\n } else if (crIndex !== -1) {\n // A trailing `\\r` at the very end of the chunk is ambiguous: it could be\n // a bare-CR terminator, or the first half of a `\\r\\n` whose `\\n` arrives\n // in the next chunk. Defer until we see more input.\n if (crIndex === chunk.length - 1) {\n lineEnd = -1\n } else {\n lineEnd = crIndex\n }\n } else if (lfIndex !== -1) {\n lineEnd = lfIndex\n }\n\n if (lineEnd === -1) {\n break\n }\n\n parseLine(chunk, searchIndex, lineEnd)\n searchIndex = lineEnd + 1\n // If we just consumed a `\\r` and the next char is `\\n`, skip it so the\n // pair is treated as a single terminator rather than an empty line.\n if (chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF) {\n searchIndex++\n }\n }\n\n return chunk.slice(searchIndex)\n }\n\n function parseLine(chunk: string, start: number, end: number) {\n if (start === end) {\n dispatchEvent()\n return\n }\n\n const firstCharCode = chunk.charCodeAt(start)\n\n if (isDataPrefix(chunk, start, firstCharCode)) {\n // 'data:'.length === 5, 'data: '.length === 6\n const valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5\n const value = chunk.slice(valueStart, end)\n data = dataLines === 0 ? value : `${data}\\n${value}`\n dataLines++\n return\n }\n\n if (isEventPrefix(chunk, start, firstCharCode)) {\n // 'event:'.length === 6, 'event: '.length === 7\n eventType =\n chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || undefined\n return\n }\n\n // Fast path for \"id:\" — 'i' = 105, 'd' = 100, ':' = 58\n if (\n firstCharCode === 105 &&\n chunk.charCodeAt(start + 1) === 100 &&\n chunk.charCodeAt(start + 2) === 58\n ) {\n // 'id:'.length === 3, 'id: '.length === 4\n const value = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end)\n id = value.includes('\\0') ? undefined : value\n return\n }\n\n // Comment line — ':' = 58\n if (firstCharCode === 58) {\n if (onComment) {\n const line = chunk.slice(start, end)\n // skip ':' (+1), or ': ' (+2) when a space follows\n onComment(line.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1))\n }\n return\n }\n\n const line = chunk.slice(start, end)\n const fieldSeparatorIndex = line.indexOf(':')\n if (fieldSeparatorIndex === -1) {\n processField(line, '', line)\n return\n }\n\n const field = line.slice(0, fieldSeparatorIndex)\n // skip ':' (+1), or ': ' (+2) when a space follows\n const offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1\n const value = line.slice(fieldSeparatorIndex + offset)\n processField(field, value, line)\n }\n\n function processField(field: string, value: string, line: string) {\n // Field names must be compared literally, with no case folding performed.\n switch (field) {\n case 'event':\n // Set the `event type` buffer to field value\n eventType = value || undefined\n break\n case 'data':\n data = dataLines === 0 ? value : `${data}\\n${value}`\n dataLines++\n break\n case 'id':\n // If the field value does not contain U+0000 NULL, then set the `ID` buffer to\n // the field value. Otherwise, ignore the field.\n id = value.includes('\\0') ? undefined : value\n break\n case 'retry':\n // If the field value consists of only ASCII digits, then interpret the field value as an\n // integer in base ten, and set the event stream's reconnection time to that integer.\n // Otherwise, ignore the field.\n if (/^\\d+$/.test(value)) {\n onRetry(parseInt(value, 10))\n } else {\n onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: 'invalid-retry',\n value,\n line,\n }),\n )\n }\n break\n default:\n // Otherwise, the field is ignored.\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}…` : field}\"`,\n {type: 'unknown-field', field, value, line},\n ),\n )\n break\n }\n }\n\n function dispatchEvent() {\n if (dataLines > 0) {\n onEvent({\n id,\n event: eventType,\n data,\n })\n }\n\n id = undefined\n data = ''\n dataLines = 0\n eventType = undefined\n }\n\n function reset(options: {consume?: boolean} = {}) {\n if (options.consume && pendingFragments.length > 0) {\n const incompleteLine = pendingFragments.join('')\n parseLine(incompleteLine, 0, incompleteLine.length)\n }\n\n isFirstChunk = true\n id = undefined\n data = ''\n dataLines = 0\n eventType = undefined\n pendingFragments.length = 0\n }\n\n return {feed, reset}\n}\n\n/**\n * Checks if `chunk` starts with the literal `data:` at index `i`.\n *\n * Equivalent to `chunk.startsWith('data:', i)`, but benchmarks show this\n * hand-unrolled char-code comparison is ~20% faster on common event types.\n * The caller passes `firstCharCode` (the code at `i`) so it can be reused\n * across prefix checks.\n *\n * ASCII: 'd' = 100, 'a' = 97, 't' = 116, 'a' = 97, ':' = 58\n */\nfunction isDataPrefix(chunk: string, i: number, firstCharCode: number): boolean {\n return (\n firstCharCode === 100 &&\n chunk.charCodeAt(i + 1) === 97 &&\n chunk.charCodeAt(i + 2) === 116 &&\n chunk.charCodeAt(i + 3) === 97 &&\n chunk.charCodeAt(i + 4) === 58\n )\n}\n\n/**\n * Checks if `chunk` starts with the literal `event:` at index `i`.\n *\n * See {@link isDataPrefix} for why this is hand-unrolled rather than using\n * `String.prototype.startsWith`.\n *\n * ASCII: 'e' = 101, 'v' = 118, 'e' = 101, 'n' = 110, 't' = 116, ':' = 58\n */\nfunction isEventPrefix(chunk: string, i: number, firstCharCode: number): boolean {\n return (\n firstCharCode === 101 &&\n chunk.charCodeAt(i + 1) === 118 &&\n chunk.charCodeAt(i + 2) === 101 &&\n chunk.charCodeAt(i + 3) === 110 &&\n chunk.charCodeAt(i + 4) === 116 &&\n chunk.charCodeAt(i + 5) === 58\n )\n}\n","import {createParser} from './parse.ts'\nimport type {EventSourceMessage, EventSourceParser} from './types.ts'\n\n/**\n * Options for the EventSourceParserStream.\n *\n * @public\n */\nexport interface StreamOptions {\n /**\n * Behavior when a parsing error occurs.\n *\n * - A custom function can be provided to handle the error.\n * - `'terminate'` will error the stream and stop parsing.\n * - Any other value will ignore the error and continue parsing.\n *\n * @defaultValue `undefined`\n */\n onError?: ('terminate' | ((error: Error) => void)) | undefined\n\n /**\n * Callback for when a reconnection interval is sent from the server.\n *\n * @param retry - The number of milliseconds to wait before reconnecting.\n */\n onRetry?: ((retry: number) => void) | undefined\n\n /**\n * Callback for when a comment is encountered in the stream.\n *\n * @param comment - The comment encountered in the stream.\n */\n onComment?: ((comment: string) => void) | undefined\n}\n\n/**\n * A TransformStream that ingests a stream of strings and produces a stream of `EventSourceMessage`.\n *\n * @example Basic usage\n * ```\n * const eventStream =\n * response.body\n * .pipeThrough(new TextDecoderStream())\n * .pipeThrough(new EventSourceParserStream())\n * ```\n *\n * @example Terminate stream on parsing errors\n * ```\n * const eventStream =\n * response.body\n * .pipeThrough(new TextDecoderStream())\n * .pipeThrough(new EventSourceParserStream({terminateOnError: true}))\n * ```\n *\n * @public\n */\nexport class EventSourceParserStream extends TransformStream {\n constructor({onError, onRetry, onComment}: StreamOptions = {}) {\n let parser!: EventSourceParser\n\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event)\n },\n onError(error) {\n if (onError === 'terminate') {\n controller.error(error)\n } else if (typeof onError === 'function') {\n onError(error)\n }\n\n // Ignore by default\n },\n onRetry,\n onComment,\n })\n },\n transform(chunk) {\n parser.feed(chunk)\n },\n })\n }\n}\n\nexport {type ErrorType, ParseError} from './errors.ts'\nexport type {EventSourceMessage} from './types.ts'\n","export function combineHeaders(\n ...headers: Array | undefined>\n): Record {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => ({\n ...combinedHeaders,\n ...(currentHeaders ?? {}),\n }),\n {},\n ) as Record;\n}\n","/**\n * Creates a Promise that resolves after a specified delay\n * @param delayInMs - The delay duration in milliseconds. If null or undefined, resolves immediately.\n * @param signal - Optional AbortSignal to cancel the delay\n * @returns A Promise that resolves after the specified delay\n * @throws {DOMException} When the signal is aborted\n */\nexport async function delay(\n delayInMs?: number | null,\n options?: {\n abortSignal?: AbortSignal;\n },\n): Promise {\n if (delayInMs == null) {\n return Promise.resolve();\n }\n\n const signal = options?.abortSignal;\n\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(createAbortError());\n return;\n }\n\n const timeoutId = setTimeout(() => {\n cleanup();\n resolve();\n }, delayInMs);\n\n const cleanup = () => {\n clearTimeout(timeoutId);\n signal?.removeEventListener('abort', onAbort);\n };\n\n const onAbort = () => {\n cleanup();\n reject(createAbortError());\n };\n\n signal?.addEventListener('abort', onAbort);\n });\n}\n\nfunction createAbortError(): DOMException {\n return new DOMException('Delay was aborted', 'AbortError');\n}\n","/**\nExtracts the headers from a response object and returns them as a key-value object.\n\n@param response - The response object to extract headers from.\n@returns The headers as a key-value object.\n*/\nexport function extractResponseHeaders(response: Response) {\n return Object.fromEntries([...response.headers]);\n}\n","import { InvalidArgumentError } from '@ai-sdk/provider';\n\n/**\nCreates an ID generator.\nThe total length of the ID is the sum of the prefix, separator, and random part length.\nNot cryptographically secure.\n\n@param alphabet - The alphabet to use for the ID. Default: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.\n@param prefix - The prefix of the ID to generate. Optional.\n@param separator - The separator between the prefix and the random part of the ID. Default: '-'.\n@param size - The size of the random part of the ID to generate. Default: 16.\n */\nexport const createIdGenerator = ({\n prefix,\n size = 16,\n alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n separator = '-',\n}: {\n prefix?: string;\n separator?: string;\n size?: number;\n alphabet?: string;\n} = {}): IdGenerator => {\n const generator = () => {\n const alphabetLength = alphabet.length;\n const chars = new Array(size);\n for (let i = 0; i < size; i++) {\n chars[i] = alphabet[(Math.random() * alphabetLength) | 0];\n }\n return chars.join('');\n };\n\n if (prefix == null) {\n return generator;\n }\n\n // check that the prefix is not part of the alphabet (otherwise prefix checking can fail randomly)\n if (alphabet.includes(separator)) {\n throw new InvalidArgumentError({\n argument: 'separator',\n message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`,\n });\n }\n\n return () => `${prefix}${separator}${generator()}`;\n};\n\n/**\nA function that generates an ID.\n */\nexport type IdGenerator = () => string;\n\n/**\nGenerates a 16-character random string to use for IDs.\nNot cryptographically secure.\n */\nexport const generateId = createIdGenerator();\n","export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n","export function isAbortError(error: unknown): error is Error {\n return (\n (error instanceof Error || error instanceof DOMException) &&\n (error.name === 'AbortError' ||\n error.name === 'ResponseAborted' || // Next.js\n error.name === 'TimeoutError')\n );\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { isAbortError } from './is-abort-error';\n\nconst FETCH_FAILED_ERROR_MESSAGES = ['fetch failed', 'failed to fetch'];\n\nexport function handleFetchError({\n error,\n url,\n requestBodyValues,\n}: {\n error: unknown;\n url: string;\n requestBodyValues: unknown;\n}) {\n if (isAbortError(error)) {\n return error;\n }\n\n // unwrap original error when fetch failed (for easier debugging):\n if (\n error instanceof TypeError &&\n FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())\n ) {\n const cause = (error as any).cause;\n\n if (cause != null) {\n // Failed to connect to server:\n return new APICallError({\n message: `Cannot connect to API: ${cause.message}`,\n cause,\n url,\n requestBodyValues,\n isRetryable: true, // retry when network error\n });\n }\n }\n\n return error;\n}\n","export function getRuntimeEnvironmentUserAgent(\n globalThisAny: any = globalThis as any,\n): string {\n // Browsers\n if (globalThisAny.window) {\n return `runtime/browser`;\n }\n\n // Cloudflare Workers / Deno / Bun / Node.js >= 21.1\n if (globalThisAny.navigator?.userAgent) {\n return `runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`;\n }\n\n // Nodes.js < 21.1\n if (globalThisAny.process?.versions?.node) {\n return `runtime/node.js/${globalThisAny.process.version.substring(0)}`;\n }\n\n if (globalThisAny.EdgeRuntime) {\n return `runtime/vercel-edge`;\n }\n\n return 'runtime/unknown';\n}\n","/**\n * Normalizes different header inputs into a plain record with lower-case keys.\n * Entries with `undefined` or `null` values are removed.\n *\n * @param headers - Input headers (`Headers`, tuples array, plain record) to normalize.\n * @returns A record containing the normalized header entries.\n */\nexport function normalizeHeaders(\n headers:\n | HeadersInit\n | Record\n | Array<[string, string | undefined]>\n | undefined,\n): Record {\n if (headers == null) {\n return {};\n }\n\n const normalized: Record = {};\n\n if (headers instanceof Headers) {\n headers.forEach((value, key) => {\n normalized[key.toLowerCase()] = value;\n });\n } else {\n if (!Array.isArray(headers)) {\n headers = Object.entries(headers);\n }\n\n for (const [key, value] of headers) {\n if (value != null) {\n normalized[key.toLowerCase()] = value;\n }\n }\n }\n\n return normalized;\n}\n","import { normalizeHeaders } from './normalize-headers';\n\n/**\n * Appends suffix parts to the `user-agent` header.\n * If a `user-agent` header already exists, the suffix parts are appended to it.\n * If no `user-agent` header exists, a new one is created with the suffix parts.\n * Automatically removes undefined entries from the headers.\n *\n * @param headers - The original headers.\n * @param userAgentSuffixParts - The parts to append to the `user-agent` header.\n * @returns The new headers with the `user-agent` header set or updated.\n */\nexport function withUserAgentSuffix(\n headers: HeadersInit | Record | undefined,\n ...userAgentSuffixParts: string[]\n): Record {\n const normalizedHeaders = new Headers(normalizeHeaders(headers));\n\n const currentUserAgentHeader = normalizedHeaders.get('user-agent') || '';\n\n normalizedHeaders.set(\n 'user-agent',\n [currentUserAgentHeader, ...userAgentSuffixParts].filter(Boolean).join(' '),\n );\n\n return Object.fromEntries(normalizedHeaders.entries());\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import { APICallError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport type { FetchFunction } from './fetch-function';\nimport { handleFetchError } from './handle-fetch-error';\nimport { isAbortError } from './is-abort-error';\nimport type { ResponseHandler } from './response-handler';\nimport { getRuntimeEnvironmentUserAgent } from './get-runtime-environment-user-agent';\nimport { withUserAgentSuffix } from './with-user-agent-suffix';\nimport { VERSION } from './version';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const getFromApi = async ({\n url,\n headers = {},\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) => {\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n ),\n signal: abortSignal,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.ok) {\n let errorInformation: {\n value: Error;\n responseHeaders?: Record | undefined;\n };\n\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: {},\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n\n throw new APICallError({\n message: 'Failed to process error response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {},\n });\n }\n\n throw errorInformation.value;\n }\n\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: {},\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n\n throw new APICallError({\n message: 'Failed to process successful response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {},\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: {} });\n }\n};\n","/**\n * Loads an optional `string` setting from the environment or a parameter.\n *\n * @param settingValue - The setting value.\n * @param environmentVariableName - The environment variable name.\n * @returns The setting value.\n */\nexport function loadOptionalSetting({\n settingValue,\n environmentVariableName,\n}: {\n settingValue: string | undefined;\n environmentVariableName: string;\n}): string | undefined {\n if (typeof settingValue === 'string') {\n return settingValue;\n }\n\n if (settingValue != null || typeof process === 'undefined') {\n return undefined;\n }\n\n settingValue = process.env[environmentVariableName];\n\n if (settingValue == null || typeof settingValue !== 'string') {\n return undefined;\n }\n\n return settingValue;\n}\n","// Licensed under BSD-3-Clause (this file only)\n// Code adapted from https://github.com/fastify/secure-json-parse/blob/783fcb1b5434709466759847cec974381939673a/index.js\n//\n// Copyright (c) Vercel, Inc. (https://vercel.com)\n// Copyright (c) 2019 The Fastify Team\n// Copyright (c) 2019, Sideway Inc, and project contributors\n// All rights reserved.\n//\n// The complete list of contributors can be found at:\n// - https://github.com/hapijs/bourne/graphs/contributors\n// - https://github.com/fastify/secure-json-parse/graphs/contributors\n// - https://github.com/vercel/ai/commits/main/packages/provider-utils/src/secure-parse-json.ts\n//\n// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n//\n// 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nconst suspectProtoRx =\n /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/;\nconst suspectConstructorRx =\n /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\n\nfunction _parse(text: string) {\n // Parse normally\n const obj = JSON.parse(text);\n\n // Ignore null and non-objects\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (\n suspectProtoRx.test(text) === false &&\n suspectConstructorRx.test(text) === false\n ) {\n return obj;\n }\n\n // Scan result for proto keys\n return filter(obj);\n}\n\nfunction filter(obj: any) {\n let next = [obj];\n\n while (next.length) {\n const nodes = next;\n next = [];\n\n for (const node of nodes) {\n if (Object.prototype.hasOwnProperty.call(node, '__proto__')) {\n throw new SyntaxError('Object contains forbidden prototype property');\n }\n\n if (\n Object.prototype.hasOwnProperty.call(node, 'constructor') &&\n node.constructor !== null &&\n typeof node.constructor === 'object' &&\n Object.prototype.hasOwnProperty.call(node.constructor, 'prototype')\n ) {\n throw new SyntaxError('Object contains forbidden prototype property');\n }\n\n for (const key in node) {\n const value = node[key];\n if (value && typeof value === 'object') {\n next.push(value);\n }\n }\n }\n }\n return obj;\n}\n\nexport function secureJsonParse(text: string) {\n const { stackTraceLimit } = Error;\n try {\n // Performance optimization, see https://github.com/fastify/secure-json-parse/pull/90\n Error.stackTraceLimit = 0;\n } catch (e) {\n // Fallback in case Error is immutable (v8 readonly)\n return _parse(text);\n }\n\n try {\n return _parse(text);\n } finally {\n Error.stackTraceLimit = stackTraceLimit;\n }\n}\n","import { TypeValidationError } from '@ai-sdk/provider';\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\n/**\n * Used to mark validator functions so we can support both Zod and custom schemas.\n */\nexport const validatorSymbol = Symbol.for('vercel.ai.validator');\n\nexport type ValidationResult =\n | { success: true; value: OBJECT }\n | { success: false; error: Error };\n\nexport type Validator = {\n /**\n * Used to mark validator functions so we can support both Zod and custom schemas.\n */\n [validatorSymbol]: true;\n\n /**\n * Optional. Validates that the structure of a value matches this schema,\n * and returns a typed version of the value if it does.\n */\n readonly validate?: (\n value: unknown,\n ) => ValidationResult | PromiseLike>;\n};\n\n/**\n * Create a validator.\n *\n * @param validate A validation function for the schema.\n */\nexport function validator(\n validate?:\n | undefined\n | ((\n value: unknown,\n ) => ValidationResult | PromiseLike>),\n): Validator {\n return { [validatorSymbol]: true, validate };\n}\n\nexport function isValidator(value: unknown): value is Validator {\n return (\n typeof value === 'object' &&\n value !== null &&\n validatorSymbol in value &&\n value[validatorSymbol] === true &&\n 'validate' in value\n );\n}\n\n/**\n * Creates a validator with deferred creation.\n * This is important to reduce the startup time of the library\n * and to avoid initializing unused validators.\n *\n * @param createValidator A function that creates a validator.\n * @returns A function that returns a validator.\n */\nexport function lazyValidator(\n createValidator: () => Validator,\n): LazyValidator {\n // cache the validator to avoid initializing it multiple times\n let validator: Validator | undefined;\n return () => {\n if (validator == null) {\n validator = createValidator();\n }\n return validator;\n };\n}\n\nexport type LazyValidator = () => Validator;\n\nexport type FlexibleValidator =\n | Validator\n | LazyValidator\n | StandardSchemaV1;\n\nexport type InferValidator =\n SCHEMA extends StandardSchemaV1\n ? T\n : SCHEMA extends LazyValidator\n ? T\n : SCHEMA extends Validator\n ? T\n : never;\n\nexport function asValidator(\n value: FlexibleValidator,\n): Validator {\n return isValidator(value)\n ? value\n : typeof value === 'function'\n ? value()\n : standardSchemaValidator(value);\n}\n\nexport function standardSchemaValidator(\n standardSchema: StandardSchemaV1,\n): Validator {\n return validator(async value => {\n const result = await standardSchema['~standard'].validate(value);\n\n return result.issues == null\n ? { success: true, value: result.value }\n : {\n success: false,\n error: new TypeValidationError({\n value,\n cause: result.issues,\n }),\n };\n });\n}\n","import { TypeValidationError } from '@ai-sdk/provider';\nimport { type FlexibleValidator, asValidator } from './validator';\n\n/**\n * Validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @returns {Promise} - The typed object.\n */\nexport async function validateTypes({\n value,\n schema,\n}: {\n value: unknown;\n schema: FlexibleValidator;\n}): Promise {\n const result = await safeValidateTypes({ value, schema });\n\n if (!result.success) {\n throw TypeValidationError.wrap({ value, cause: result.error });\n }\n\n return result.value;\n}\n\n/**\n * Safely validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The JSON object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport async function safeValidateTypes({\n value,\n schema,\n}: {\n value: unknown;\n schema: FlexibleValidator;\n}): Promise<\n | {\n success: true;\n value: OBJECT;\n rawValue: unknown;\n }\n | {\n success: false;\n error: TypeValidationError;\n rawValue: unknown;\n }\n> {\n const validator = asValidator(schema);\n\n try {\n if (validator.validate == null) {\n return { success: true, value: value as OBJECT, rawValue: value };\n }\n\n const result = await validator.validate(value);\n\n if (result.success) {\n return { success: true, value: result.value, rawValue: value };\n }\n\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: result.error }),\n rawValue: value,\n };\n } catch (error) {\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: error }),\n rawValue: value,\n };\n }\n}\n","import {\n type JSONValue,\n JSONParseError,\n TypeValidationError,\n} from '@ai-sdk/provider';\nimport { secureJsonParse } from './secure-json-parse';\nimport { safeValidateTypes, validateTypes } from './validate-types';\nimport { type FlexibleValidator, Validator } from './validator';\n\n/**\n * Parses a JSON string into an unknown object.\n *\n * @param text - The JSON string to parse.\n * @returns {JSONValue} - The parsed JSON object.\n */\nexport async function parseJSON(options: {\n text: string;\n schema?: undefined;\n}): Promise;\n/**\n * Parses a JSON string into a strongly-typed object using the provided schema.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns {Promise} - The parsed object.\n */\nexport async function parseJSON(options: {\n text: string;\n schema: FlexibleValidator;\n}): Promise;\nexport async function parseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: FlexibleValidator;\n}): Promise {\n try {\n const value = secureJsonParse(text);\n\n if (schema == null) {\n return value;\n }\n\n return validateTypes({ value, schema });\n } catch (error) {\n if (\n JSONParseError.isInstance(error) ||\n TypeValidationError.isInstance(error)\n ) {\n throw error;\n }\n\n throw new JSONParseError({ text, cause: error });\n }\n}\n\nexport type ParseResult =\n | { success: true; value: T; rawValue: unknown }\n | {\n success: false;\n error: JSONParseError | TypeValidationError;\n rawValue: unknown;\n };\n\n/**\n * Safely parses a JSON string and returns the result as an object of type `unknown`.\n *\n * @param text - The JSON string to parse.\n * @returns {Promise} Either an object with `success: true` and the parsed data, or an object with `success: false` and the error that occurred.\n */\nexport async function safeParseJSON(options: {\n text: string;\n schema?: undefined;\n}): Promise>;\n/**\n * Safely parses a JSON string into a strongly-typed object, using a provided schema to validate the object.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport async function safeParseJSON(options: {\n text: string;\n schema: FlexibleValidator;\n}): Promise>;\nexport async function safeParseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: FlexibleValidator;\n}): Promise> {\n try {\n const value = secureJsonParse(text);\n\n if (schema == null) {\n return { success: true, value: value as T, rawValue: value };\n }\n\n return await safeValidateTypes({ value, schema });\n } catch (error) {\n return {\n success: false,\n error: JSONParseError.isInstance(error)\n ? error\n : new JSONParseError({ text, cause: error }),\n rawValue: undefined,\n };\n }\n}\n\nexport function isParsableJson(input: string): boolean {\n try {\n secureJsonParse(input);\n return true;\n } catch {\n return false;\n }\n}\n","import {\n type EventSourceMessage,\n EventSourceParserStream,\n} from 'eventsource-parser/stream';\nimport { type ParseResult, safeParseJSON } from './parse-json';\nimport type { FlexibleValidator } from './validator';\n\n/**\n * Parses a JSON event stream into a stream of parsed JSON objects.\n */\nexport function parseJsonEventStream({\n stream,\n schema,\n}: {\n stream: ReadableStream;\n schema: FlexibleValidator;\n}): ReadableStream> {\n return stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new EventSourceParserStream())\n .pipeThrough(\n new TransformStream>({\n async transform({ data }, controller) {\n // ignore the 'DONE' event that e.g. OpenAI sends:\n if (data === '[DONE]') {\n return;\n }\n\n controller.enqueue(await safeParseJSON({ text: data, schema }));\n },\n }),\n );\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport type { FetchFunction } from './fetch-function';\nimport { handleFetchError } from './handle-fetch-error';\nimport { isAbortError } from './is-abort-error';\nimport type { ResponseHandler } from './response-handler';\nimport { getRuntimeEnvironmentUserAgent } from './get-runtime-environment-user-agent';\nimport { withUserAgentSuffix } from './with-user-agent-suffix';\nimport { VERSION } from './version';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const postJsonToApi = async ({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n}: {\n url: string;\n headers?: Record;\n body: unknown;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) =>\n postToApi({\n url,\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n body: {\n content: JSON.stringify(body),\n values: body,\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n });\n\nexport const postFormDataToApi = async ({\n url,\n headers,\n formData,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n}: {\n url: string;\n headers?: Record;\n formData: FormData;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) =>\n postToApi({\n url,\n headers,\n body: {\n content: formData,\n values: Object.fromEntries((formData as any).entries()),\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n });\n\nexport const postToApi = async ({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record;\n body: {\n content: string | FormData | Uint8Array;\n values: unknown;\n };\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n ),\n body: body.content,\n signal: abortSignal,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.ok) {\n let errorInformation: {\n value: Error;\n responseHeaders?: Record | undefined;\n };\n\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: body.values,\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n\n throw new APICallError({\n message: 'Failed to process error response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values,\n });\n }\n\n throw errorInformation.value;\n }\n\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: body.values,\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n\n throw new APICallError({\n message: 'Failed to process successful response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values,\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: body.values });\n }\n};\n","import type {\n JSONValue,\n LanguageModelV2ToolResultPart,\n} from '@ai-sdk/provider';\nimport type { FlexibleSchema } from '../schema';\nimport type { ModelMessage } from './model-message';\nimport type { ProviderOptions } from './provider-options';\n\n/**\n * Additional options that are sent into each tool call.\n */\n// TODO AI SDK 6: rename to ToolExecutionOptions\nexport interface ToolCallOptions {\n /**\n * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.\n */\n toolCallId: string;\n\n /**\n * Messages that were sent to the language model to initiate the response that contained the tool call.\n * The messages **do not** include the system prompt nor the assistant response that contained the tool call.\n */\n messages: ModelMessage[];\n\n /**\n * An optional abort signal that indicates that the overall operation should be aborted.\n */\n abortSignal?: AbortSignal;\n\n /**\n * Additional context.\n *\n * Experimental (can break in patch releases).\n */\n experimental_context?: unknown;\n}\n\nexport type ToolExecuteFunction = (\n input: INPUT,\n options: ToolCallOptions,\n) => AsyncIterable | PromiseLike | OUTPUT;\n\n// 0 extends 1 & N checks for any\n// [N] extends [never] checks for never\ntype NeverOptional = 0 extends 1 & N\n ? Partial\n : [N] extends [never]\n ? Partial>\n : T;\n\ntype ToolOutputProperties = NeverOptional<\n OUTPUT,\n | {\n /**\nAn async function that is called with the arguments from the tool call and produces a result.\nIf not provided, the tool will not be executed automatically.\n\n@args is the input of the tool call.\n@options.abortSignal is a signal that can be used to abort the tool call.\n */\n execute: ToolExecuteFunction;\n\n outputSchema?: FlexibleSchema;\n }\n | {\n outputSchema: FlexibleSchema;\n\n execute?: never;\n }\n>;\n\n/**\nA tool contains the description and the schema of the input that the tool expects.\nThis enables the language model to generate the input.\n\nThe tool can also contain an optional execute function for the actual execution function of the tool.\n */\nexport type Tool<\n INPUT extends JSONValue | unknown | never = any,\n OUTPUT extends JSONValue | unknown | never = any,\n> = {\n /**\nAn optional description of what the tool does.\nWill be used by the language model to decide whether to use the tool.\nNot used for provider-defined tools.\n */\n description?: string;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\nThe schema of the input that the tool expects. The language model will use this to generate the input.\nIt is also used to validate the output of the language model.\nUse descriptions to make the input understandable for the language model.\n */\n inputSchema: FlexibleSchema;\n\n /**\n * Optional function that is called when the argument streaming starts.\n * Only called when the tool is used in a streaming context.\n */\n onInputStart?: (options: ToolCallOptions) => void | PromiseLike;\n\n /**\n * Optional function that is called when an argument streaming delta is available.\n * Only called when the tool is used in a streaming context.\n */\n onInputDelta?: (\n options: { inputTextDelta: string } & ToolCallOptions,\n ) => void | PromiseLike;\n\n /**\n * Optional function that is called when a tool call can be started,\n * even if the execute function is not provided.\n */\n onInputAvailable?: (\n options: {\n input: [INPUT] extends [never] ? undefined : INPUT;\n } & ToolCallOptions,\n ) => void | PromiseLike;\n} & ToolOutputProperties & {\n /**\nOptional conversion function that maps the tool result to an output that can be used by the language model.\n\nIf not provided, the tool result will be sent as a JSON object.\n */\n toModelOutput?: (\n output: 0 extends 1 & OUTPUT\n ? any\n : [OUTPUT] extends [never]\n ? any\n : NoInfer,\n ) => LanguageModelV2ToolResultPart['output'];\n } & (\n | {\n /**\nTool with user-defined input and output schemas.\n */\n type?: undefined | 'function';\n }\n | {\n /**\nTool that is defined at runtime (e.g. an MCP tool).\nThe types of input and output are not known at development time.\n */\n type: 'dynamic';\n }\n | {\n /**\nTool with provider-defined input and output schemas.\n */\n type: 'provider-defined';\n\n /**\nThe ID of the tool. Should follow the format `.`.\n */\n id: `${string}.${string}`;\n\n /**\nThe name of the tool that the user must use in the tool set.\n */\n name: string;\n\n /**\nThe arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.\n */\n args: Record;\n }\n );\n\n/**\n * Infer the input type of a tool.\n */\nexport type InferToolInput =\n TOOL extends Tool ? INPUT : never;\n\n/**\n * Infer the output type of a tool.\n */\nexport type InferToolOutput =\n TOOL extends Tool ? OUTPUT : never;\n\n/**\nHelper function for inferring the execute args of a tool.\n */\n// Note: overload order is important for auto-completion\nexport function tool(\n tool: Tool,\n): Tool;\nexport function tool(tool: Tool): Tool;\nexport function tool(tool: Tool): Tool;\nexport function tool(tool: Tool): Tool;\nexport function tool(tool: any): any {\n return tool;\n}\n\n/**\nHelper function for defining a dynamic tool.\n */\nexport function dynamicTool(tool: {\n description?: string;\n providerOptions?: ProviderOptions;\n inputSchema: FlexibleSchema;\n execute: ToolExecuteFunction;\n toModelOutput?: (output: unknown) => LanguageModelV2ToolResultPart['output'];\n}): Tool & {\n type: 'dynamic';\n} {\n return { ...tool, type: 'dynamic' };\n}\n","import { type Tool, type ToolExecuteFunction, tool } from './types/tool';\nimport type { FlexibleSchema } from './schema';\n\nexport type ProviderDefinedToolFactory = (\n options: ARGS & {\n execute?: ToolExecuteFunction;\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n },\n) => Tool;\n\nexport function createProviderDefinedToolFactory({\n id,\n name,\n inputSchema,\n}: {\n id: `${string}.${string}`;\n name: string;\n inputSchema: FlexibleSchema;\n}): ProviderDefinedToolFactory {\n return ({\n execute,\n outputSchema,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n ...args\n }: ARGS & {\n execute?: ToolExecuteFunction;\n outputSchema?: FlexibleSchema;\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n }): Tool =>\n tool({\n type: 'provider-defined',\n id,\n name,\n args,\n inputSchema,\n outputSchema,\n execute,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n });\n}\n\nexport type ProviderDefinedToolFactoryWithOutputSchema<\n INPUT,\n OUTPUT,\n ARGS extends object,\n> = (\n options: ARGS & {\n execute?: ToolExecuteFunction;\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n },\n) => Tool;\n\nexport function createProviderDefinedToolFactoryWithOutputSchema<\n INPUT,\n OUTPUT,\n ARGS extends object,\n>({\n id,\n name,\n inputSchema,\n outputSchema,\n}: {\n id: `${string}.${string}`;\n name: string;\n inputSchema: FlexibleSchema;\n outputSchema: FlexibleSchema;\n}): ProviderDefinedToolFactoryWithOutputSchema {\n return ({\n execute,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n ...args\n }: ARGS & {\n execute?: ToolExecuteFunction;\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n }): Tool =>\n tool({\n type: 'provider-defined',\n id,\n name,\n args,\n inputSchema,\n outputSchema,\n execute,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n });\n}\n","export type Resolvable =\n | T // Raw value\n | Promise // Promise of value\n | (() => T) // Function returning value\n | (() => Promise); // Function returning promise of value\n\n/**\n * Resolves a value that could be a raw value, a Promise, a function returning a value,\n * or a function returning a Promise.\n */\nexport async function resolve(value: Resolvable): Promise {\n // If it's a function, call it to get the value/promise\n if (typeof value === 'function') {\n value = (value as Function)();\n }\n\n // Otherwise just resolve whatever we got (value or promise)\n return Promise.resolve(value as T);\n}\n","import { APICallError, EmptyResponseBodyError } from '@ai-sdk/provider';\nimport type { ZodType } from 'zod/v4';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport { type ParseResult, parseJSON, safeParseJSON } from './parse-json';\nimport { parseJsonEventStream } from './parse-json-event-stream';\nimport type { FlexibleValidator } from './validator';\n\nexport type ResponseHandler = (options: {\n url: string;\n requestBodyValues: unknown;\n response: Response;\n}) => PromiseLike<{\n value: RETURN_TYPE;\n rawValue?: unknown;\n responseHeaders?: Record;\n}>;\n\nexport const createJsonErrorResponseHandler =\n ({\n errorSchema,\n errorToMessage,\n isRetryable,\n }: {\n errorSchema: FlexibleValidator;\n errorToMessage: (error: T) => string;\n isRetryable?: (response: Response, error?: T) => boolean;\n }): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n\n // Some providers return an empty response body for some errors:\n if (responseBody.trim() === '') {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable?.(response),\n }),\n };\n }\n\n // resilient parsing in case the response is not JSON or does not match the schema:\n try {\n const parsedError = await parseJSON({\n text: responseBody,\n schema: errorSchema,\n });\n\n return {\n responseHeaders,\n value: new APICallError({\n message: errorToMessage(parsedError),\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n data: parsedError,\n isRetryable: isRetryable?.(response, parsedError),\n }),\n };\n } catch (parseError) {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable?.(response),\n }),\n };\n }\n };\n\nexport const createEventSourceResponseHandler =\n (\n chunkSchema: FlexibleValidator,\n ): ResponseHandler>> =>\n async ({ response }: { response: Response }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n\n return {\n responseHeaders,\n value: parseJsonEventStream({\n stream: response.body,\n schema: chunkSchema,\n }),\n };\n };\n\nexport const createJsonStreamResponseHandler =\n (\n chunkSchema: ZodType,\n ): ResponseHandler>> =>\n async ({ response }: { response: Response }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n\n let buffer = '';\n\n return {\n responseHeaders,\n value: response.body.pipeThrough(new TextDecoderStream()).pipeThrough(\n new TransformStream>({\n async transform(chunkText, controller) {\n if (chunkText.endsWith('\\n')) {\n controller.enqueue(\n await safeParseJSON({\n text: buffer + chunkText,\n schema: chunkSchema,\n }),\n );\n buffer = '';\n } else {\n buffer += chunkText;\n }\n },\n }),\n ),\n };\n };\n\nexport const createJsonResponseHandler =\n (responseSchema: FlexibleValidator): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n\n const parsedResult = await safeParseJSON({\n text: responseBody,\n schema: responseSchema,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!parsedResult.success) {\n throw new APICallError({\n message: 'Invalid JSON response',\n cause: parsedResult.error,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n url,\n requestBodyValues,\n });\n }\n\n return {\n responseHeaders,\n value: parsedResult.value,\n rawValue: parsedResult.rawValue,\n };\n };\n\nexport const createBinaryResponseHandler =\n (): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.body) {\n throw new APICallError({\n message: 'Response body is empty',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n });\n }\n\n try {\n const buffer = await response.arrayBuffer();\n return {\n responseHeaders,\n value: new Uint8Array(buffer),\n };\n } catch (error) {\n throw new APICallError({\n message: 'Failed to read response as array buffer',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n cause: error,\n });\n }\n };\n\nexport const createStatusCodeErrorResponseHandler =\n (): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseHeaders = extractResponseHeaders(response);\n const responseBody = await response.text();\n\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues: requestBodyValues as Record,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n }),\n };\n };\n","import type { JSONSchema7 } from '@ai-sdk/provider';\nimport type * as z3 from 'zod/v3';\nimport type * as z4 from 'zod/v4';\nimport {\n type Validator,\n validatorSymbol,\n type ValidationResult,\n} from './validator';\n\n/**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\nexport const schemaSymbol = Symbol.for('vercel.ai.schema');\n\nexport type Schema = Validator & {\n /**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\n [schemaSymbol]: true;\n\n /**\n * Schema type for inference.\n */\n _type: OBJECT;\n\n /**\n * The JSON Schema for the schema. It is passed to the providers.\n */\n readonly jsonSchema: JSONSchema7;\n};\n\n/**\n * Creates a schema with deferred creation.\n * This is important to reduce the startup time of the library\n * and to avoid initializing unused validators.\n *\n * @param createValidator A function that creates a schema.\n * @returns A function that returns a schema.\n */\nexport function lazySchema(\n createSchema: () => Schema,\n): LazySchema {\n // cache the validator to avoid initializing it multiple times\n let schema: Schema | undefined;\n return () => {\n if (schema == null) {\n schema = createSchema();\n }\n return schema;\n };\n}\n\nexport type LazySchema = () => Schema;\n\n// Note: Zod types here exactly match the types in zod-schema.ts\n// to prevent type errors when using zod schemas with flexible schemas.\nexport type FlexibleSchema =\n | z4.core.$ZodType\n | z3.Schema\n | Schema\n | LazySchema;\n\nexport type InferSchema = SCHEMA extends z3.Schema\n ? z3.infer\n : SCHEMA extends z4.core.$ZodType\n ? z4.infer\n : SCHEMA extends LazySchema\n ? T\n : SCHEMA extends Schema\n ? T\n : never;\n\n/**\n * Create a schema using a JSON Schema.\n *\n * @param jsonSchema The JSON Schema for the schema.\n * @param options.validate Optional. A validation function for the schema.\n */\nexport function jsonSchema(\n jsonSchema: JSONSchema7 | (() => JSONSchema7),\n {\n validate,\n }: {\n validate?: (\n value: unknown,\n ) => ValidationResult | PromiseLike>;\n } = {},\n): Schema {\n return {\n [schemaSymbol]: true,\n _type: undefined as OBJECT, // should never be used directly\n [validatorSymbol]: true,\n get jsonSchema() {\n if (typeof jsonSchema === 'function') {\n jsonSchema = jsonSchema(); // cache the function results\n }\n return jsonSchema;\n },\n validate,\n };\n}\n","import type { JSONSchema7 } from '@ai-sdk/provider';\n\n/**\n * Recursively adds additionalProperties: false to the JSON schema. This is necessary because some providers (e.g. OpenAI) do not support additionalProperties: true.\n */\nexport function addAdditionalPropertiesToJsonSchema(\n jsonSchema: JSONSchema7,\n): JSONSchema7 {\n if (jsonSchema.type === 'object') {\n jsonSchema.additionalProperties = false;\n const properties = jsonSchema.properties;\n if (properties != null) {\n for (const property in properties) {\n properties[property] = addAdditionalPropertiesToJsonSchema(\n properties[property] as JSONSchema7,\n );\n }\n }\n }\n if (jsonSchema.type === 'array' && jsonSchema.items != null) {\n if (Array.isArray(jsonSchema.items)) {\n jsonSchema.items = jsonSchema.items.map(item =>\n addAdditionalPropertiesToJsonSchema(item as JSONSchema7),\n );\n } else {\n jsonSchema.items = addAdditionalPropertiesToJsonSchema(\n jsonSchema.items as JSONSchema7,\n );\n }\n }\n return jsonSchema;\n}\n","import type { ZodSchema, ZodTypeDef } from 'zod/v3';\nimport type { Refs, Seen } from './refs';\nimport type { JsonSchema7Type } from './parse-types';\n\nexport type DateStrategy =\n | 'format:date-time'\n | 'format:date'\n | 'string'\n | 'integer';\n\nexport const ignoreOverride = Symbol(\n 'Let zodToJsonSchema decide on which parser to use',\n);\n\nexport type OverrideCallback = (\n def: ZodTypeDef,\n refs: Refs,\n seen: Seen | undefined,\n forceResolution?: boolean,\n) => JsonSchema7Type | undefined | typeof ignoreOverride;\n\nexport type PostProcessCallback = (\n jsonSchema: JsonSchema7Type | undefined,\n def: ZodTypeDef,\n refs: Refs,\n) => JsonSchema7Type | undefined;\n\nexport const jsonDescription: PostProcessCallback = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n } catch {}\n }\n\n return jsonSchema;\n};\n\nexport type Options = {\n name: string | undefined;\n $refStrategy: 'root' | 'relative' | 'none' | 'seen';\n basePath: string[];\n effectStrategy: 'input' | 'any';\n pipeStrategy: 'input' | 'output' | 'all';\n dateStrategy: DateStrategy | DateStrategy[];\n mapStrategy: 'entries' | 'record';\n removeAdditionalStrategy: 'passthrough' | 'strict';\n allowedAdditionalProperties: true | undefined;\n rejectedAdditionalProperties: false | undefined;\n strictUnions: boolean;\n definitionPath: string;\n definitions: Record;\n errorMessages: boolean;\n patternStrategy: 'escape' | 'preserve';\n applyRegexFlags: boolean;\n emailStrategy: 'format:email' | 'format:idn-email' | 'pattern:zod';\n base64Strategy: 'format:binary' | 'contentEncoding:base64' | 'pattern:zod';\n nameStrategy: 'ref' | 'title';\n override?: OverrideCallback;\n postProcess?: PostProcessCallback;\n};\n\nexport const defaultOptions: Options = {\n name: undefined,\n $refStrategy: 'root',\n basePath: ['#'],\n effectStrategy: 'input',\n pipeStrategy: 'all',\n dateStrategy: 'format:date-time',\n mapStrategy: 'entries',\n removeAdditionalStrategy: 'passthrough',\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: 'definitions',\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n patternStrategy: 'escape',\n applyRegexFlags: false,\n emailStrategy: 'format:email',\n base64Strategy: 'contentEncoding:base64',\n nameStrategy: 'ref',\n};\n\nexport const getDefaultOptions = (\n options: Partial | string | undefined,\n) =>\n (typeof options === 'string'\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n }) as Options;\n","export type JsonSchema7AnyType = { $ref?: string };\n\nexport function parseAnyDef(): JsonSchema7AnyType {\n return {};\n}\n","import { type ZodArrayDef, ZodFirstPartyTypeKind } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7ArrayType = {\n type: 'array';\n items?: JsonSchema7Type;\n minItems?: number;\n maxItems?: number;\n};\n\nexport function parseArrayDef(def: ZodArrayDef, refs: Refs) {\n const res: JsonSchema7ArrayType = {\n type: 'array',\n };\n if (\n def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny\n ) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items'],\n });\n }\n\n if (def.minLength) {\n res.minItems = def.minLength.value;\n }\n if (def.maxLength) {\n res.maxItems = def.maxLength.value;\n }\n if (def.exactLength) {\n res.minItems = def.exactLength.value;\n res.maxItems = def.exactLength.value;\n }\n return res;\n}\n","import type { ZodBigIntDef } from 'zod/v3';\n\nexport type JsonSchema7BigintType = {\n type: 'integer';\n format: 'int64';\n minimum?: BigInt;\n exclusiveMinimum?: BigInt;\n maximum?: BigInt;\n exclusiveMaximum?: BigInt;\n multipleOf?: BigInt;\n};\n\nexport function parseBigintDef(def: ZodBigIntDef): JsonSchema7BigintType {\n const res: JsonSchema7BigintType = {\n type: 'integer',\n format: 'int64',\n };\n\n if (!def.checks) return res;\n\n for (const check of def.checks) {\n switch (check.kind) {\n case 'min':\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case 'max':\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n\n break;\n case 'multipleOf':\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\n","export type JsonSchema7BooleanType = {\n type: 'boolean';\n};\n\nexport function parseBooleanDef(): JsonSchema7BooleanType {\n return { type: 'boolean' };\n}\n","import type { ZodBrandedDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { Refs } from '../refs';\n\nexport function parseBrandedDef(_def: ZodBrandedDef, refs: Refs) {\n return parseDef(_def.type._def, refs);\n}\n","import type { ZodCatchDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { Refs } from '../refs';\n\nexport const parseCatchDef = (def: ZodCatchDef, refs: Refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import type { ZodDateDef } from 'zod/v3';\nimport type { Refs } from '../refs';\nimport type { DateStrategy } from '../options';\n\nexport type JsonSchema7DateType =\n | {\n type: 'integer' | 'string';\n format: 'unix-time' | 'date-time' | 'date';\n minimum?: number;\n maximum?: number;\n }\n | {\n anyOf: JsonSchema7DateType[];\n };\n\nexport function parseDateDef(\n def: ZodDateDef,\n refs: Refs,\n overrideDateStrategy?: DateStrategy,\n): JsonSchema7DateType {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n\n switch (strategy) {\n case 'string':\n case 'format:date-time':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'format:date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'integer':\n return integerDateParser(def);\n }\n}\n\nconst integerDateParser = (def: ZodDateDef) => {\n const res: JsonSchema7DateType = {\n type: 'integer',\n format: 'unix-time',\n };\n\n for (const check of def.checks) {\n switch (check.kind) {\n case 'min':\n res.minimum = check.value;\n break;\n case 'max':\n res.maximum = check.value;\n break;\n }\n }\n\n return res;\n};\n","import type { ZodDefaultDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport function parseDefaultDef(\n _def: ZodDefaultDef,\n refs: Refs,\n): JsonSchema7Type & { default: any } {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n","import type { ZodEffectsDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseAnyDef } from './any';\n\nexport function parseEffectsDef(\n _def: ZodEffectsDef,\n refs: Refs,\n): JsonSchema7Type | undefined {\n return refs.effectStrategy === 'input'\n ? parseDef(_def.schema._def, refs)\n : parseAnyDef();\n}\n","import type { ZodEnumDef } from 'zod/v3';\n\nexport type JsonSchema7EnumType = {\n type: 'string';\n enum: string[];\n};\n\nexport function parseEnumDef(def: ZodEnumDef): JsonSchema7EnumType {\n return {\n type: 'string',\n enum: Array.from(def.values),\n };\n}\n","import type { ZodIntersectionDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport type { JsonSchema7StringType } from './string';\n\nexport type JsonSchema7AllOfType = {\n allOf: JsonSchema7Type[];\n unevaluatedProperties?: boolean;\n};\n\nconst isJsonSchema7AllOfType = (\n type: JsonSchema7Type | JsonSchema7StringType,\n): type is JsonSchema7AllOfType => {\n if ('type' in type && type.type === 'string') return false;\n return 'allOf' in type;\n};\n\nexport function parseIntersectionDef(\n def: ZodIntersectionDef,\n refs: Refs,\n): JsonSchema7AllOfType | JsonSchema7Type | undefined {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', '0'],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', '1'],\n }),\n ].filter((x): x is JsonSchema7Type => !!x);\n\n const mergedAllOf: JsonSchema7Type[] = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach(schema => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n } else {\n let nestedSchema: JsonSchema7Type = schema;\n if (\n 'additionalProperties' in schema &&\n schema.additionalProperties === false\n ) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length ? { allOf: mergedAllOf } : undefined;\n}\n","import type { ZodLiteralDef } from 'zod/v3';\n\nexport type JsonSchema7LiteralType =\n | {\n type: 'string' | 'number' | 'integer' | 'boolean';\n const: string | number | boolean;\n }\n | {\n type: 'object' | 'array';\n };\n\nexport function parseLiteralDef(def: ZodLiteralDef): JsonSchema7LiteralType {\n const parsedType = typeof def.value;\n if (\n parsedType !== 'bigint' &&\n parsedType !== 'number' &&\n parsedType !== 'boolean' &&\n parsedType !== 'string'\n ) {\n return {\n type: Array.isArray(def.value) ? 'array' : 'object',\n };\n }\n\n return {\n type: parsedType === 'bigint' ? 'integer' : parsedType,\n const: def.value,\n };\n}\n","import type { ZodStringDef } from 'zod/v3';\nimport type { Refs } from '../refs';\n\nlet emojiRegex: RegExp | undefined = undefined;\n\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email:\n /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\n '^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$',\n 'u',\n );\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr:\n /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr:\n /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url:\n /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n} as const;\n\nexport type JsonSchema7StringType = {\n type: 'string';\n minLength?: number;\n maxLength?: number;\n format?:\n | 'email'\n | 'idn-email'\n | 'uri'\n | 'uuid'\n | 'date-time'\n | 'ipv4'\n | 'ipv6'\n | 'date'\n | 'time'\n | 'duration';\n pattern?: string;\n allOf?: {\n pattern: string;\n }[];\n anyOf?: {\n format: string;\n }[];\n contentEncoding?: string;\n};\n\nexport function parseStringDef(\n def: ZodStringDef,\n refs: Refs,\n): JsonSchema7StringType {\n const res: JsonSchema7StringType = {\n type: 'string',\n };\n\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case 'min':\n res.minLength =\n typeof res.minLength === 'number'\n ? Math.max(res.minLength, check.value)\n : check.value;\n break;\n case 'max':\n res.maxLength =\n typeof res.maxLength === 'number'\n ? Math.min(res.maxLength, check.value)\n : check.value;\n\n break;\n case 'email':\n switch (refs.emailStrategy) {\n case 'format:email':\n addFormat(res, 'email', check.message, refs);\n break;\n case 'format:idn-email':\n addFormat(res, 'idn-email', check.message, refs);\n break;\n case 'pattern:zod':\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n\n break;\n case 'url':\n addFormat(res, 'uri', check.message, refs);\n break;\n case 'uuid':\n addFormat(res, 'uuid', check.message, refs);\n break;\n case 'regex':\n addPattern(res, check.regex, check.message, refs);\n break;\n case 'cuid':\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case 'cuid2':\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case 'startsWith':\n addPattern(\n res,\n RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`),\n check.message,\n refs,\n );\n break;\n case 'endsWith':\n addPattern(\n res,\n RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`),\n check.message,\n refs,\n );\n break;\n case 'datetime':\n addFormat(res, 'date-time', check.message, refs);\n break;\n case 'date':\n addFormat(res, 'date', check.message, refs);\n break;\n case 'time':\n addFormat(res, 'time', check.message, refs);\n break;\n case 'duration':\n addFormat(res, 'duration', check.message, refs);\n break;\n case 'length':\n res.minLength =\n typeof res.minLength === 'number'\n ? Math.max(res.minLength, check.value)\n : check.value;\n res.maxLength =\n typeof res.maxLength === 'number'\n ? Math.min(res.maxLength, check.value)\n : check.value;\n break;\n case 'includes': {\n addPattern(\n res,\n RegExp(escapeLiteralCheckValue(check.value, refs)),\n check.message,\n refs,\n );\n break;\n }\n case 'ip': {\n if (check.version !== 'v6') {\n addFormat(res, 'ipv4', check.message, refs);\n }\n if (check.version !== 'v4') {\n addFormat(res, 'ipv6', check.message, refs);\n }\n break;\n }\n case 'base64url':\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case 'jwt':\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case 'cidr': {\n if (check.version !== 'v6') {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== 'v4') {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case 'emoji':\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case 'ulid': {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case 'base64': {\n switch (refs.base64Strategy) {\n case 'format:binary': {\n addFormat(res, 'binary' as any, check.message, refs);\n break;\n }\n\n case 'contentEncoding:base64': {\n res.contentEncoding = 'base64';\n break;\n }\n\n case 'pattern:zod': {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case 'nanoid': {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case 'toLowerCase':\n case 'toUpperCase':\n case 'trim':\n break;\n default:\n /* c8 ignore next */\n ((_: never) => {})(check);\n }\n }\n }\n\n return res;\n}\n\nfunction escapeLiteralCheckValue(literal: string, refs: Refs): string {\n return refs.patternStrategy === 'escape'\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\n\nconst ALPHA_NUMERIC = new Set(\n 'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789',\n);\n\nfunction escapeNonAlphaNumeric(source: string) {\n let result = '';\n\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += '\\\\';\n }\n\n result += source[i];\n }\n\n return result;\n}\n\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(\n schema: JsonSchema7StringType,\n value: Required['format'],\n message: string | undefined,\n refs: Refs,\n) {\n if (schema.format || schema.anyOf?.some(x => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n\n if (schema.format) {\n schema.anyOf!.push({\n format: schema.format,\n });\n delete schema.format;\n }\n\n schema.anyOf!.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n } else {\n schema.format = value;\n }\n}\n\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(\n schema: JsonSchema7StringType,\n regex: RegExp,\n message: string | undefined,\n refs: Refs,\n) {\n if (schema.pattern || schema.allOf?.some(x => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n\n if (schema.pattern) {\n schema.allOf!.push({\n pattern: schema.pattern,\n });\n delete schema.pattern;\n }\n\n schema.allOf!.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n } else {\n schema.pattern = stringifyRegExpWithFlags(regex, refs);\n }\n}\n\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex: RegExp, refs: Refs): string {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n\n // Currently handled flags\n const flags = {\n i: regex.flags.includes('i'), // Case-insensitive\n m: regex.flags.includes('m'), // `^` and `$` matches adjacent to newline characters\n s: regex.flags.includes('s'), // `.` matches newlines\n };\n\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = '';\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n } else if (source[i + 1] === '-' && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n } else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n } else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n\n if (flags.m) {\n if (source[i] === '^') {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n } else if (source[i] === '$') {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n\n if (flags.s && source[i] === '.') {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n\n pattern += source[i];\n if (source[i] === '\\\\') {\n isEscaped = true;\n } else if (inCharGroup && source[i] === ']') {\n inCharGroup = false;\n } else if (!inCharGroup && source[i] === '[') {\n inCharGroup = true;\n }\n }\n\n try {\n new RegExp(pattern);\n } catch {\n console.warn(\n `Could not convert regex pattern at ${refs.currentPath.join(\n '/',\n )} to a flag-independent form! Falling back to the flag-ignorant source`,\n );\n return regex.source;\n }\n\n return pattern;\n}\n","import {\n type ZodMapDef,\n type ZodRecordDef,\n type ZodTypeAny,\n ZodFirstPartyTypeKind,\n} from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseBrandedDef } from './branded';\nimport type { JsonSchema7EnumType } from './enum';\nimport { type JsonSchema7StringType, parseStringDef } from './string';\n\ntype JsonSchema7RecordPropertyNamesType =\n | Omit\n | Omit;\n\nexport type JsonSchema7RecordType = {\n type: 'object';\n additionalProperties?: JsonSchema7Type | true;\n propertyNames?: JsonSchema7RecordPropertyNamesType;\n};\n\nexport function parseRecordDef(\n def: ZodRecordDef | ZodMapDef,\n refs: Refs,\n): JsonSchema7RecordType {\n const schema: JsonSchema7RecordType = {\n type: 'object',\n additionalProperties:\n parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'additionalProperties'],\n }) ?? refs.allowedAdditionalProperties,\n };\n\n if (\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length\n ) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n\n return {\n ...schema,\n propertyNames: keyType,\n };\n } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n } else if (\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length\n ) {\n const { type, ...keyType } = parseBrandedDef(\n def.keyType._def,\n refs,\n ) as JsonSchema7StringType;\n\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n\n return schema;\n}\n","import type { ZodMapDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseAnyDef } from './any';\nimport { type JsonSchema7RecordType, parseRecordDef } from './record';\n\nexport type JsonSchema7MapType = {\n type: 'array';\n maxItems: 125;\n items: {\n type: 'array';\n items: [JsonSchema7Type, JsonSchema7Type];\n minItems: 2;\n maxItems: 2;\n };\n};\n\nexport function parseMapDef(\n def: ZodMapDef,\n refs: Refs,\n): JsonSchema7MapType | JsonSchema7RecordType {\n if (refs.mapStrategy === 'record') {\n return parseRecordDef(def, refs);\n }\n\n const keys =\n parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', 'items', '0'],\n }) || parseAnyDef();\n const values =\n parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', 'items', '1'],\n }) || parseAnyDef();\n return {\n type: 'array',\n maxItems: 125,\n items: {\n type: 'array',\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n","import type { ZodNativeEnumDef } from 'zod/v3';\n\nexport type JsonSchema7NativeEnumType = {\n type: 'string' | 'number' | ['string', 'number'];\n enum: (string | number)[];\n};\n\nexport function parseNativeEnumDef(\n def: ZodNativeEnumDef,\n): JsonSchema7NativeEnumType {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key: string) => {\n return typeof object[object[key]] !== 'number';\n });\n\n const actualValues = actualKeys.map((key: string) => object[key]);\n\n const parsedTypes = Array.from(\n new Set(actualValues.map((values: string | number) => typeof values)),\n );\n\n return {\n type:\n parsedTypes.length === 1\n ? parsedTypes[0] === 'string'\n ? 'string'\n : 'number'\n : ['string', 'number'],\n enum: actualValues,\n };\n}\n","import { type JsonSchema7AnyType, parseAnyDef } from './any';\n\nexport type JsonSchema7NeverType = {\n not: JsonSchema7AnyType;\n};\n\nexport function parseNeverDef(): JsonSchema7NeverType | undefined {\n return { not: parseAnyDef() };\n}\n","export type JsonSchema7NullType = {\n type: 'null';\n};\n\nexport function parseNullDef(): JsonSchema7NullType {\n return {\n type: 'null',\n };\n}\n","import type {\n ZodDiscriminatedUnionDef,\n ZodLiteralDef,\n ZodTypeAny,\n ZodUnionDef,\n} from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport const primitiveMappings = {\n ZodString: 'string',\n ZodNumber: 'number',\n ZodBigInt: 'integer',\n ZodBoolean: 'boolean',\n ZodNull: 'null',\n} as const;\ntype ZodPrimitive = keyof typeof primitiveMappings;\ntype JsonSchema7Primitive =\n (typeof primitiveMappings)[keyof typeof primitiveMappings];\n\nexport type JsonSchema7UnionType =\n | JsonSchema7PrimitiveUnionType\n | JsonSchema7AnyOfType;\n\ntype JsonSchema7PrimitiveUnionType =\n | {\n type: JsonSchema7Primitive | JsonSchema7Primitive[];\n }\n | {\n type: JsonSchema7Primitive | JsonSchema7Primitive[];\n enum: (string | number | bigint | boolean | null)[];\n };\n\ntype JsonSchema7AnyOfType = {\n anyOf: JsonSchema7Type[];\n};\n\nexport function parseUnionDef(\n def: ZodUnionDef | ZodDiscriminatedUnionDef,\n refs: Refs,\n): JsonSchema7PrimitiveUnionType | JsonSchema7AnyOfType | undefined {\n const options: readonly ZodTypeAny[] =\n def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (\n options.every(\n x =>\n x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length),\n )\n ) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n\n const types = options.reduce((types: JsonSchema7Primitive[], x) => {\n const type = primitiveMappings[x._def.typeName as ZodPrimitive]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n\n return {\n type: types.length > 1 ? types : types[0],\n };\n } else if (\n options.every(x => x._def.typeName === 'ZodLiteral' && !x.description)\n ) {\n // all options literals\n\n const types = options.reduce(\n (acc: JsonSchema7Primitive[], x: { _def: ZodLiteralDef }) => {\n const type = typeof x._def.value;\n switch (type) {\n case 'string':\n case 'number':\n case 'boolean':\n return [...acc, type];\n case 'bigint':\n return [...acc, 'integer' as const];\n case 'object':\n if (x._def.value === null) return [...acc, 'null' as const];\n case 'symbol':\n case 'undefined':\n case 'function':\n default:\n return acc;\n }\n },\n [],\n );\n\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce(\n (acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n },\n [] as (string | number | bigint | boolean | null)[],\n ),\n };\n }\n } else if (options.every(x => x._def.typeName === 'ZodEnum')) {\n return {\n type: 'string',\n enum: options.reduce(\n (acc: string[], x) => [\n ...acc,\n ...x._def.values.filter((x: string) => !acc.includes(x)),\n ],\n [],\n ),\n };\n }\n\n return asAnyOf(def, refs);\n}\n\nconst asAnyOf = (\n def: ZodUnionDef | ZodDiscriminatedUnionDef,\n refs: Refs,\n): JsonSchema7PrimitiveUnionType | JsonSchema7AnyOfType | undefined => {\n const anyOf = (\n (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options) as any[]\n )\n .map((x, i) =>\n parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'anyOf', `${i}`],\n }),\n )\n .filter(\n (x): x is JsonSchema7Type =>\n !!x &&\n (!refs.strictUnions ||\n (typeof x === 'object' && Object.keys(x).length > 0)),\n );\n\n return anyOf.length ? { anyOf } : undefined;\n};\n","import type { ZodNullableDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport type { JsonSchema7NullType } from './null';\nimport { primitiveMappings } from './union';\n\nexport type JsonSchema7NullableType =\n | {\n anyOf: [JsonSchema7Type, JsonSchema7NullType];\n }\n | {\n type: [string, 'null'];\n };\n\nexport function parseNullableDef(\n def: ZodNullableDef,\n refs: Refs,\n): JsonSchema7NullableType | undefined {\n if (\n ['ZodString', 'ZodNumber', 'ZodBigInt', 'ZodBoolean', 'ZodNull'].includes(\n def.innerType._def.typeName,\n ) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)\n ) {\n return {\n type: [\n primitiveMappings[\n def.innerType._def.typeName as keyof typeof primitiveMappings\n ],\n 'null',\n ],\n };\n }\n\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'anyOf', '0'],\n });\n\n return base && { anyOf: [base, { type: 'null' }] };\n}\n","import type { ZodNumberDef } from 'zod/v3';\n\nexport type JsonSchema7NumberType = {\n type: 'number' | 'integer';\n minimum?: number;\n exclusiveMinimum?: number;\n maximum?: number;\n exclusiveMaximum?: number;\n multipleOf?: number;\n};\n\nexport function parseNumberDef(def: ZodNumberDef): JsonSchema7NumberType {\n const res: JsonSchema7NumberType = {\n type: 'number',\n };\n\n if (!def.checks) return res;\n\n for (const check of def.checks) {\n switch (check.kind) {\n case 'int':\n res.type = 'integer';\n break;\n case 'min':\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case 'max':\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n break;\n case 'multipleOf':\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\n","import type { ZodObjectDef, ZodTypeAny } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7ObjectType = {\n type: 'object';\n properties: Record;\n additionalProperties?: boolean | JsonSchema7Type;\n required?: string[];\n};\n\nexport function parseObjectDef(def: ZodObjectDef, refs: Refs) {\n const result: JsonSchema7ObjectType = {\n type: 'object',\n properties: {},\n };\n\n const required: string[] = [];\n\n const shape = def.shape();\n\n for (const propName in shape) {\n let propDef = shape[propName];\n\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n\n const propOptional = safeIsOptional(propDef);\n\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'properties', propName],\n propertyPath: [...refs.currentPath, 'properties', propName],\n });\n\n if (parsedDef === undefined) {\n continue;\n }\n\n result.properties[propName] = parsedDef;\n\n if (!propOptional) {\n required.push(propName);\n }\n }\n\n if (required.length) {\n result.required = required;\n }\n\n const additionalProperties = decideAdditionalProperties(def, refs);\n\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n\n return result;\n}\n\nfunction decideAdditionalProperties(def: ZodObjectDef, refs: Refs) {\n if (def.catchall._def.typeName !== 'ZodNever') {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'additionalProperties'],\n });\n }\n\n switch (def.unknownKeys) {\n case 'passthrough':\n return refs.allowedAdditionalProperties;\n case 'strict':\n return refs.rejectedAdditionalProperties;\n case 'strip':\n return refs.removeAdditionalStrategy === 'strict'\n ? refs.allowedAdditionalProperties\n : refs.rejectedAdditionalProperties;\n }\n}\n\nfunction safeIsOptional(schema: ZodTypeAny): boolean {\n try {\n return schema.isOptional();\n } catch {\n return true;\n }\n}\n","import type { ZodOptionalDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseAnyDef } from './any';\n\nexport const parseOptionalDef = (\n def: ZodOptionalDef,\n refs: Refs,\n): JsonSchema7Type | undefined => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'anyOf', '1'],\n });\n\n return innerSchema\n ? { anyOf: [{ not: parseAnyDef() }, innerSchema] }\n : parseAnyDef();\n};\n","import type { ZodPipelineDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport type { JsonSchema7AllOfType } from './intersection';\n\nexport const parsePipelineDef = (\n def: ZodPipelineDef,\n refs: Refs,\n): JsonSchema7AllOfType | JsonSchema7Type | undefined => {\n if (refs.pipeStrategy === 'input') {\n return parseDef(def.in._def, refs);\n } else if (refs.pipeStrategy === 'output') {\n return parseDef(def.out._def, refs);\n }\n\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', '0'],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', a ? '1' : '0'],\n });\n\n return {\n allOf: [a, b].filter((x): x is JsonSchema7Type => x !== undefined),\n };\n};\n","import type { ZodPromiseDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport function parsePromiseDef(\n def: ZodPromiseDef,\n refs: Refs,\n): JsonSchema7Type | undefined {\n return parseDef(def.type._def, refs);\n}\n","import type { ZodSetDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7SetType = {\n type: 'array';\n uniqueItems: true;\n items?: JsonSchema7Type;\n minItems?: number;\n maxItems?: number;\n};\n\nexport function parseSetDef(def: ZodSetDef, refs: Refs): JsonSchema7SetType {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items'],\n });\n\n const schema: JsonSchema7SetType = {\n type: 'array',\n uniqueItems: true,\n items,\n };\n\n if (def.minSize) {\n schema.minItems = def.minSize.value;\n }\n\n if (def.maxSize) {\n schema.maxItems = def.maxSize.value;\n }\n\n return schema;\n}\n","import type { ZodTupleDef, ZodTupleItems, ZodTypeAny } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7TupleType = {\n type: 'array';\n minItems: number;\n items: JsonSchema7Type[];\n} & (\n | {\n maxItems: number;\n }\n | {\n additionalItems?: JsonSchema7Type;\n }\n);\n\nexport function parseTupleDef(\n def: ZodTupleDef,\n refs: Refs,\n): JsonSchema7TupleType {\n if (def.rest) {\n return {\n type: 'array',\n minItems: def.items.length,\n items: def.items\n .map((x, i) =>\n parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', `${i}`],\n }),\n )\n .reduce(\n (acc: JsonSchema7Type[], x) => (x === undefined ? acc : [...acc, x]),\n [],\n ),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'additionalItems'],\n }),\n };\n } else {\n return {\n type: 'array',\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) =>\n parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', `${i}`],\n }),\n )\n .reduce(\n (acc: JsonSchema7Type[], x) => (x === undefined ? acc : [...acc, x]),\n [],\n ),\n };\n }\n}\n","import { type JsonSchema7AnyType, parseAnyDef } from './any';\n\nexport type JsonSchema7UndefinedType = {\n not: JsonSchema7AnyType;\n};\n\nexport function parseUndefinedDef(): JsonSchema7UndefinedType {\n return {\n not: parseAnyDef(),\n };\n}\n","import { type JsonSchema7AnyType, parseAnyDef } from './any';\n\nexport type JsonSchema7UnknownType = JsonSchema7AnyType;\n\nexport function parseUnknownDef(): JsonSchema7UnknownType {\n return parseAnyDef();\n}\n","import type { ZodReadonlyDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { Refs } from '../refs';\n\nexport const parseReadonlyDef = (def: ZodReadonlyDef, refs: Refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { ZodFirstPartyTypeKind } from 'zod/v3';\nimport { parseAnyDef } from './parsers/any';\nimport { parseArrayDef } from './parsers/array';\nimport { parseBigintDef } from './parsers/bigint';\nimport { parseBooleanDef } from './parsers/boolean';\nimport { parseBrandedDef } from './parsers/branded';\nimport { parseCatchDef } from './parsers/catch';\nimport { parseDateDef } from './parsers/date';\nimport { parseDefaultDef } from './parsers/default';\nimport { parseEffectsDef } from './parsers/effects';\nimport { parseEnumDef } from './parsers/enum';\nimport { parseIntersectionDef } from './parsers/intersection';\nimport { parseLiteralDef } from './parsers/literal';\nimport { parseMapDef } from './parsers/map';\nimport { parseNativeEnumDef } from './parsers/native-enum';\nimport { parseNeverDef } from './parsers/never';\nimport { parseNullDef } from './parsers/null';\nimport { parseNullableDef } from './parsers/nullable';\nimport { parseNumberDef } from './parsers/number';\nimport { parseObjectDef } from './parsers/object';\nimport { parseOptionalDef } from './parsers/optional';\nimport { parsePipelineDef } from './parsers/pipeline';\nimport { parsePromiseDef } from './parsers/promise';\nimport { parseRecordDef } from './parsers/record';\nimport { parseSetDef } from './parsers/set';\nimport { parseStringDef } from './parsers/string';\nimport { parseTupleDef } from './parsers/tuple';\nimport { parseUndefinedDef } from './parsers/undefined';\nimport { parseUnionDef } from './parsers/union';\nimport { parseUnknownDef } from './parsers/unknown';\nimport type { Refs } from './refs';\nimport { parseReadonlyDef } from './parsers/readonly';\nimport type { JsonSchema7Type } from './parse-types';\n\nexport type InnerDefGetter = () => any;\n\nexport const selectParser = (\n def: any,\n typeName: ZodFirstPartyTypeKind,\n refs: Refs,\n): JsonSchema7Type | undefined | InnerDefGetter => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef();\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef();\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => (def as any).getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef();\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef();\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef();\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n /* c8 ignore next */\n return ((_: never) => undefined)(typeName);\n }\n};\n","export const getRelativePath = (pathA: string[], pathB: string[]) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i]) break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join('/');\n};\n","import type { ZodTypeDef } from 'zod/v3';\nimport type { Refs, Seen } from './refs';\nimport { ignoreOverride } from './options';\nimport type { JsonSchema7Type } from './parse-types';\nimport { selectParser } from './select-parser';\nimport { getRelativePath } from './get-relative-path';\nimport { parseAnyDef } from './parsers/any';\n\nexport function parseDef(\n def: ZodTypeDef,\n refs: Refs,\n forceResolution = false, // Forces a new schema to be instantiated even though its def has been seen. Used for improving refs in definitions. See https://github.com/StefanTerdell/zod-to-json-schema/pull/61.\n): JsonSchema7Type | undefined {\n const seenItem = refs.seen.get(def);\n\n if (refs.override) {\n const overrideResult = refs.override?.(\n def,\n refs,\n seenItem,\n forceResolution,\n );\n\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n\n const newItem: Seen = { def, path: refs.currentPath, jsonSchema: undefined };\n\n refs.seen.set(def, newItem);\n\n const jsonSchemaOrGetter = selectParser(def, (def as any).typeName, refs);\n\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema =\n typeof jsonSchemaOrGetter === 'function'\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n\n newItem.jsonSchema = jsonSchema;\n\n return postProcessResult;\n }\n\n newItem.jsonSchema = jsonSchema;\n\n return jsonSchema;\n}\n\nconst get$ref = (\n item: Seen,\n refs: Refs,\n):\n | {\n $ref: string;\n }\n | {}\n | undefined => {\n switch (refs.$refStrategy) {\n case 'root':\n return { $ref: item.path.join('/') };\n case 'relative':\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case 'none':\n case 'seen': {\n if (\n item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)\n ) {\n console.warn(\n `Recursive reference detected at ${refs.currentPath.join(\n '/',\n )}! Defaulting to any`,\n );\n\n return parseAnyDef();\n }\n\n return refs.$refStrategy === 'seen' ? parseAnyDef() : undefined;\n }\n }\n};\n\nconst addMeta = (\n def: ZodTypeDef,\n refs: Refs,\n jsonSchema: JsonSchema7Type,\n): JsonSchema7Type => {\n if (def.description) {\n jsonSchema.description = def.description;\n }\n return jsonSchema;\n};\n","import type { ZodTypeDef } from 'zod/v3';\nimport { type Options, getDefaultOptions } from './options';\nimport type { JsonSchema7Type } from './parse-types';\n\nexport type Refs = {\n seen: Map;\n currentPath: string[];\n propertyPath: string[] | undefined;\n} & Options;\n\nexport type Seen = {\n def: ZodTypeDef;\n path: string[];\n jsonSchema: JsonSchema7Type | undefined;\n};\n\nexport const getRefs = (options?: string | Partial): Refs => {\n const _options = getDefaultOptions(options);\n const currentPath =\n _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(\n Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ]),\n ),\n };\n};\n","import type { ZodSchema } from 'zod/v3';\nimport type { Options } from './options';\nimport { parseDef } from './parse-def';\nimport type { JsonSchema7Type } from './parse-types';\nimport { getRefs } from './refs';\nimport { parseAnyDef } from './parsers/any';\n\nconst zodToJsonSchema = (\n schema: ZodSchema,\n options?: Partial | string,\n): JsonSchema7Type & {\n $schema?: string;\n definitions?: {\n [key: string]: JsonSchema7Type;\n };\n} => {\n const refs = getRefs(options);\n\n let definitions =\n typeof options === 'object' && options.definitions\n ? Object.entries(options.definitions).reduce(\n (acc: { [key: string]: JsonSchema7Type }, [name, schema]) => ({\n ...acc,\n [name]:\n parseDef(\n schema._def,\n {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n },\n true,\n ) ?? parseAnyDef(),\n }),\n {},\n )\n : undefined;\n\n const name =\n typeof options === 'string'\n ? options\n : options?.nameStrategy === 'title'\n ? undefined\n : options?.name;\n\n const main =\n parseDef(\n schema._def,\n name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n },\n false,\n ) ?? (parseAnyDef() as JsonSchema7Type);\n\n const title =\n typeof options === 'object' &&\n options.name !== undefined &&\n options.nameStrategy === 'title'\n ? options.name\n : undefined;\n\n if (title !== undefined) {\n main.title = title;\n }\n\n const combined: ReturnType =\n name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === 'relative' ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join('/'),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n\n combined.$schema = 'http://json-schema.org/draft-07/schema#';\n\n return combined;\n};\n\nexport { zodToJsonSchema };\n","import { zodToJsonSchema } from './zod-to-json-schema';\n\nexport * from './get-relative-path';\nexport * from './options';\nexport * from './parse-def';\nexport * from './parse-types';\nexport * from './parsers/any';\nexport * from './parsers/array';\nexport * from './parsers/bigint';\nexport * from './parsers/boolean';\nexport * from './parsers/branded';\nexport * from './parsers/catch';\nexport * from './parsers/date';\nexport * from './parsers/default';\nexport * from './parsers/effects';\nexport * from './parsers/enum';\nexport * from './parsers/intersection';\nexport * from './parsers/literal';\nexport * from './parsers/map';\nexport * from './parsers/native-enum';\nexport * from './parsers/never';\nexport * from './parsers/null';\nexport * from './parsers/nullable';\nexport * from './parsers/number';\nexport * from './parsers/object';\nexport * from './parsers/optional';\nexport * from './parsers/pipeline';\nexport * from './parsers/promise';\nexport * from './parsers/readonly';\nexport * from './parsers/record';\nexport * from './parsers/set';\nexport * from './parsers/string';\nexport * from './parsers/tuple';\nexport * from './parsers/undefined';\nexport * from './parsers/union';\nexport * from './parsers/unknown';\nexport * from './refs';\nexport * from './select-parser';\nexport * from './zod-to-json-schema';\nexport default zodToJsonSchema;\n","import type { JSONSchema7 } from '@ai-sdk/provider';\nimport type * as z3 from 'zod/v3';\nimport * as z4 from 'zod/v4';\nimport { addAdditionalPropertiesToJsonSchema } from './add-additional-properties-to-json-schema';\nimport { type Schema, jsonSchema } from './schema';\nimport zodToJsonSchema from './zod-to-json-schema';\n\nexport function zod3Schema(\n zodSchema: z3.Schema,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n // default to no references (to support openapi conversion for google)\n const useReferences = options?.useReferences ?? false;\n\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () =>\n zodToJsonSchema(zodSchema, {\n $refStrategy: useReferences ? 'root' : 'none',\n }) as JSONSchema7,\n {\n validate: async value => {\n const result = await zodSchema.safeParseAsync(value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n },\n },\n );\n}\n\nexport function zod4Schema(\n zodSchema: z4.core.$ZodType,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n // default to no references (to support openapi conversion for google)\n const useReferences = options?.useReferences ?? false;\n\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () =>\n addAdditionalPropertiesToJsonSchema(\n z4.toJSONSchema(zodSchema, {\n target: 'draft-7',\n io: 'input',\n reused: useReferences ? 'ref' : 'inline',\n }) as JSONSchema7,\n ),\n {\n validate: async value => {\n const result = await z4.safeParseAsync(zodSchema, value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n },\n },\n );\n}\n\nexport function isZod4Schema(\n zodSchema: z4.core.$ZodType | z3.Schema,\n): zodSchema is z4.core.$ZodType {\n // https://zod.dev/library-authors?id=how-to-support-zod-3-and-zod-4-simultaneously\n return '_zod' in zodSchema;\n}\n\nexport function zodSchema(\n zodSchema:\n | z4.core.$ZodType\n | z3.Schema,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n if (isZod4Schema(zodSchema)) {\n return zod4Schema(zodSchema, options);\n } else {\n return zod3Schema(zodSchema, options);\n }\n}\n","import {\n type FlexibleSchema,\n type Schema,\n jsonSchema,\n schemaSymbol,\n} from './schema';\nimport { zodSchema } from './zod-schema';\n\nfunction isSchema(value: unknown): value is Schema {\n return (\n typeof value === 'object' &&\n value !== null &&\n schemaSymbol in value &&\n value[schemaSymbol] === true &&\n 'jsonSchema' in value &&\n 'validate' in value\n );\n}\n\nexport function asSchema(\n schema: FlexibleSchema | undefined,\n): Schema {\n return schema == null\n ? jsonSchema({\n properties: {},\n additionalProperties: false,\n })\n : isSchema(schema)\n ? schema\n : typeof schema === 'function'\n ? schema()\n : zodSchema(schema);\n}\n","export function withoutTrailingSlash(url: string | undefined) {\n return url?.replace(/\\/$/, '');\n}\n","export function getContext() {\n return {\n headers: {},\n };\n}\n\nexport async function getVercelOidcToken(): Promise {\n if (process.env.VERCEL_OIDC_TOKEN) {\n return process.env.VERCEL_OIDC_TOKEN ?? '';\n }\n\n throw new Error('@vercel/oidc is not available in the vendored @internal AI packages. Provide an API key instead.');\n}\n","const marker = 'vercel.ai.gateway.error';\nconst symbol = Symbol.for(marker);\n\nexport abstract class GatewayError extends Error {\n private readonly [symbol] = true; // used in isInstance\n\n abstract readonly name: string;\n abstract readonly type: string;\n readonly statusCode: number;\n readonly cause?: unknown;\n\n constructor({\n message,\n statusCode = 500,\n cause,\n }: {\n message: string;\n statusCode?: number;\n cause?: unknown;\n }) {\n super(message);\n this.statusCode = statusCode;\n this.cause = cause;\n }\n\n /**\n * Checks if the given error is a Gateway Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is a Gateway Error, false otherwise.\n */\n static isInstance(error: unknown): error is GatewayError {\n return GatewayError.hasMarker(error);\n }\n\n static hasMarker(error: unknown): error is GatewayError {\n return (\n typeof error === 'object' &&\n error !== null &&\n symbol in error &&\n (error as any)[symbol] === true\n );\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayAuthenticationError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Authentication failed - invalid API key or OIDC token\n */\nexport class GatewayAuthenticationError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'authentication_error';\n\n constructor({\n message = 'Authentication failed',\n statusCode = 401,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n } = {}) {\n super({ message, statusCode, cause });\n }\n\n static isInstance(error: unknown): error is GatewayAuthenticationError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n\n /**\n * Creates a contextual error message when authentication fails\n */\n static createContextualError({\n apiKeyProvided,\n oidcTokenProvided,\n message = 'Authentication failed',\n statusCode = 401,\n cause,\n }: {\n apiKeyProvided: boolean;\n oidcTokenProvided: boolean;\n message?: string;\n statusCode?: number;\n cause?: unknown;\n }): GatewayAuthenticationError {\n let contextualMessage: string;\n\n if (apiKeyProvided) {\n contextualMessage = `AI Gateway authentication failed: Invalid API key.\n\nCreate a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\n\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`;\n } else if (oidcTokenProvided) {\n contextualMessage = `AI Gateway authentication failed: Invalid OIDC token.\n\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.\n\nAlternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys`;\n } else {\n contextualMessage = `AI Gateway authentication failed: No authentication provided.\n\nOption 1 - API key:\nCreate an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.\n\nOption 2 - OIDC token:\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;\n }\n\n return new GatewayAuthenticationError({\n message: contextualMessage,\n statusCode,\n cause,\n });\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayInvalidRequestError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Invalid request - missing headers, malformed data, etc.\n */\nexport class GatewayInvalidRequestError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'invalid_request_error';\n\n constructor({\n message = 'Invalid request',\n statusCode = 400,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n } = {}) {\n super({ message, statusCode, cause });\n }\n\n static isInstance(error: unknown): error is GatewayInvalidRequestError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayRateLimitError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Rate limit exceeded.\n */\nexport class GatewayRateLimitError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'rate_limit_exceeded';\n\n constructor({\n message = 'Rate limit exceeded',\n statusCode = 429,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n } = {}) {\n super({ message, statusCode, cause });\n }\n\n static isInstance(error: unknown): error is GatewayRateLimitError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { z } from 'zod/v4';\nimport { GatewayError } from './gateway-error';\nimport { lazyValidator, zodSchema } from '@ai-sdk/provider-utils';\n\nconst name = 'GatewayModelNotFoundError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport const modelNotFoundParamSchema = lazyValidator(() =>\n zodSchema(\n z.object({\n modelId: z.string(),\n }),\n ),\n);\n\n/**\n * Model not found or not available\n */\nexport class GatewayModelNotFoundError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'model_not_found';\n readonly modelId?: string;\n\n constructor({\n message = 'Model not found',\n statusCode = 404,\n modelId,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n modelId?: string;\n cause?: unknown;\n } = {}) {\n super({ message, statusCode, cause });\n this.modelId = modelId;\n }\n\n static isInstance(error: unknown): error is GatewayModelNotFoundError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayInternalServerError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Internal server error from the Gateway\n */\nexport class GatewayInternalServerError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'internal_server_error';\n\n constructor({\n message = 'Internal server error',\n statusCode = 500,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n } = {}) {\n super({ message, statusCode, cause });\n }\n\n static isInstance(error: unknown): error is GatewayInternalServerError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import type { TypeValidationError } from '@ai-sdk/provider';\nimport { GatewayError } from './gateway-error';\n\nconst name = 'GatewayResponseError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Gateway response parsing error\n */\nexport class GatewayResponseError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'response_error';\n readonly response?: unknown;\n readonly validationError?: TypeValidationError;\n\n constructor({\n message = 'Invalid response from Gateway',\n statusCode = 502,\n response,\n validationError,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n response?: unknown;\n validationError?: TypeValidationError;\n cause?: unknown;\n } = {}) {\n super({ message, statusCode, cause });\n this.response = response;\n this.validationError = validationError;\n }\n\n static isInstance(error: unknown): error is GatewayResponseError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { z } from 'zod/v4';\nimport type { GatewayError } from './gateway-error';\nimport { GatewayAuthenticationError } from './gateway-authentication-error';\nimport { GatewayInvalidRequestError } from './gateway-invalid-request-error';\nimport { GatewayRateLimitError } from './gateway-rate-limit-error';\nimport {\n GatewayModelNotFoundError,\n modelNotFoundParamSchema,\n} from './gateway-model-not-found-error';\nimport { GatewayInternalServerError } from './gateway-internal-server-error';\nimport { GatewayResponseError } from './gateway-response-error';\nimport {\n type InferValidator,\n lazyValidator,\n safeValidateTypes,\n validateTypes,\n zodSchema,\n} from '@ai-sdk/provider-utils';\n\nexport async function createGatewayErrorFromResponse({\n response,\n statusCode,\n defaultMessage = 'Gateway request failed',\n cause,\n authMethod,\n}: {\n response: unknown;\n statusCode: number;\n defaultMessage?: string;\n cause?: unknown;\n authMethod?: 'api-key' | 'oidc';\n}): Promise {\n const parseResult = await safeValidateTypes({\n value: response,\n schema: gatewayErrorResponseSchema,\n });\n\n if (!parseResult.success) {\n return new GatewayResponseError({\n message: `Invalid error response format: ${defaultMessage}`,\n statusCode,\n response,\n validationError: parseResult.error,\n cause,\n });\n }\n\n const validatedResponse: GatewayErrorResponse = parseResult.value;\n const errorType = validatedResponse.error.type;\n const message = validatedResponse.error.message;\n\n switch (errorType) {\n case 'authentication_error':\n return GatewayAuthenticationError.createContextualError({\n apiKeyProvided: authMethod === 'api-key',\n oidcTokenProvided: authMethod === 'oidc',\n statusCode,\n cause,\n });\n case 'invalid_request_error':\n return new GatewayInvalidRequestError({ message, statusCode, cause });\n case 'rate_limit_exceeded':\n return new GatewayRateLimitError({ message, statusCode, cause });\n case 'model_not_found': {\n const modelResult = await safeValidateTypes({\n value: validatedResponse.error.param,\n schema: modelNotFoundParamSchema,\n });\n\n return new GatewayModelNotFoundError({\n message,\n statusCode,\n modelId: modelResult.success ? modelResult.value.modelId : undefined,\n cause,\n });\n }\n case 'internal_server_error':\n return new GatewayInternalServerError({ message, statusCode, cause });\n default:\n return new GatewayInternalServerError({ message, statusCode, cause });\n }\n}\n\nconst gatewayErrorResponseSchema = lazyValidator(() =>\n zodSchema(\n z.object({\n error: z.object({\n message: z.string(),\n type: z.string().nullish(),\n param: z.unknown().nullish(),\n code: z.union([z.string(), z.number()]).nullish(),\n }),\n }),\n ),\n);\n\nexport type GatewayErrorResponse = InferValidator<\n typeof gatewayErrorResponseSchema\n>;\n","import type { APICallError } from '@ai-sdk/provider';\n\nexport function extractApiCallResponse(error: APICallError): unknown {\n if (error.data !== undefined) {\n return error.data;\n }\n if (error.responseBody != null) {\n try {\n return JSON.parse(error.responseBody);\n } catch {\n return error.responseBody;\n }\n }\n return {};\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayTimeoutError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Client request timed out before receiving a response.\n */\nexport class GatewayTimeoutError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'timeout_error';\n\n constructor({\n message = 'Request timed out',\n statusCode = 408,\n cause,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n } = {}) {\n super({ message, statusCode, cause });\n }\n\n static isInstance(error: unknown): error is GatewayTimeoutError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n\n /**\n * Creates a helpful timeout error message with troubleshooting guidance\n */\n static createTimeoutError({\n originalMessage,\n statusCode = 408,\n cause,\n }: {\n originalMessage: string;\n statusCode?: number;\n cause?: unknown;\n }): GatewayTimeoutError {\n const message = `Gateway request timed out: ${originalMessage}\n\n This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;\n\n return new GatewayTimeoutError({\n message,\n statusCode,\n cause,\n });\n }\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { createGatewayErrorFromResponse } from './create-gateway-error';\nimport { extractApiCallResponse } from './extract-api-call-response';\nimport { GatewayError } from './gateway-error';\nimport { GatewayTimeoutError } from './gateway-timeout-error';\n\n/**\n * Checks if an error is a timeout error from undici.\n * Only checks undici-specific error codes to avoid false positives.\n */\nfunction isTimeoutError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n\n // Check for undici-specific timeout error codes\n const errorCode = (error as any).code;\n if (typeof errorCode === 'string') {\n const undiciTimeoutCodes = [\n 'UND_ERR_HEADERS_TIMEOUT',\n 'UND_ERR_BODY_TIMEOUT',\n 'UND_ERR_CONNECT_TIMEOUT',\n ];\n return undiciTimeoutCodes.includes(errorCode);\n }\n\n return false;\n}\n\nexport async function asGatewayError(\n error: unknown,\n authMethod?: 'api-key' | 'oidc',\n) {\n if (GatewayError.isInstance(error)) {\n return error;\n }\n\n // Check if this is a timeout error (or has a timeout error in the cause chain)\n if (isTimeoutError(error)) {\n return GatewayTimeoutError.createTimeoutError({\n originalMessage: error instanceof Error ? error.message : 'Unknown error',\n cause: error,\n });\n }\n\n // Check if this is an APICallError caused by a timeout\n if (APICallError.isInstance(error)) {\n // Check if the cause is a timeout error\n if (error.cause && isTimeoutError(error.cause)) {\n return GatewayTimeoutError.createTimeoutError({\n originalMessage: error.message,\n cause: error,\n });\n }\n\n return await createGatewayErrorFromResponse({\n response: extractApiCallResponse(error),\n statusCode: error.statusCode ?? 500,\n defaultMessage: 'Gateway request failed',\n cause: error,\n authMethod,\n });\n }\n\n return await createGatewayErrorFromResponse({\n response: {},\n statusCode: 500,\n defaultMessage:\n error instanceof Error\n ? `Gateway request failed: ${error.message}`\n : 'Unknown Gateway error',\n cause: error,\n authMethod,\n });\n}\n","import { z } from 'zod/v4';\nimport {\n lazyValidator,\n safeValidateTypes,\n zodSchema,\n} from '@ai-sdk/provider-utils';\n\nexport const GATEWAY_AUTH_METHOD_HEADER = 'ai-gateway-auth-method' as const;\n\nexport async function parseAuthMethod(\n headers: Record,\n) {\n const result = await safeValidateTypes({\n value: headers[GATEWAY_AUTH_METHOD_HEADER],\n schema: gatewayAuthMethodSchema,\n });\n\n return result.success ? result.value : undefined;\n}\n\nconst gatewayAuthMethodSchema = lazyValidator(() =>\n zodSchema(z.union([z.literal('api-key'), z.literal('oidc')])),\n);\n","import type { LanguageModelV2 } from '@ai-sdk/provider';\n\nexport const KNOWN_MODEL_TYPES = ['embedding', 'image', 'language'] as const;\n\nexport type KnownModelType = (typeof KNOWN_MODEL_TYPES)[number];\n\nexport interface GatewayLanguageModelEntry {\n /**\n * The model id used by the remote provider in model settings and for specifying the\n * intended model for text generation.\n */\n id: string;\n\n /**\n * The display name of the model for presentation in user-facing contexts.\n */\n name: string;\n\n /**\n * Optional description of the model.\n */\n description?: string | null;\n\n /**\n * Optional pricing information for the model.\n */\n pricing?: {\n /**\n * Cost per input token in USD.\n */\n input: string;\n /**\n * Cost per output token in USD.\n */\n output: string;\n /**\n * Cost per cached input token in USD.\n * Only present for providers/models that support prompt caching.\n */\n cachedInputTokens?: string;\n /**\n * Cost per input token to create/write cache entries in USD.\n * Only present for providers/models that support prompt caching.\n */\n cacheCreationInputTokens?: string;\n } | null;\n\n /**\n * Additional AI SDK language model specifications for the model.\n */\n specification: GatewayLanguageModelSpecification;\n\n /**\n * Optional field to differentiate between model types.\n */\n modelType?: KnownModelType | null;\n}\n\nexport type GatewayLanguageModelSpecification = Pick<\n LanguageModelV2,\n 'specificationVersion' | 'provider' | 'modelId'\n>;\n","import {\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n lazyValidator,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\nimport {\n KNOWN_MODEL_TYPES,\n type GatewayLanguageModelEntry,\n type KnownModelType,\n} from './gateway-model-entry';\n\ntype GatewayFetchMetadataConfig = GatewayConfig;\n\nexport interface GatewayFetchMetadataResponse {\n models: GatewayLanguageModelEntry[];\n}\n\nexport interface GatewayCreditsResponse {\n /** The remaining gateway credit balance available for API usage */\n balance: string;\n /** The total amount of gateway credits that have been consumed */\n totalUsed: string;\n}\n\nexport class GatewayFetchMetadata {\n constructor(private readonly config: GatewayFetchMetadataConfig) {}\n\n async getAvailableModels(): Promise {\n try {\n const { value } = await getFromApi({\n url: `${this.config.baseURL}/config`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayAvailableModelsResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n\n async getCredits(): Promise {\n try {\n const baseUrl = new URL(this.config.baseURL);\n\n const { value } = await getFromApi({\n url: `${baseUrl.origin}/v1/credits`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayCreditsResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n}\n\nconst gatewayAvailableModelsResponseSchema = lazyValidator(() =>\n zodSchema(\n z.object({\n models: z\n .array(\n z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().nullish(),\n pricing: z\n .object({\n input: z.string(),\n output: z.string(),\n input_cache_read: z.string().nullish(),\n input_cache_write: z.string().nullish(),\n })\n .transform(\n ({ input, output, input_cache_read, input_cache_write }) => ({\n input,\n output,\n ...(input_cache_read\n ? { cachedInputTokens: input_cache_read }\n : {}),\n ...(input_cache_write\n ? { cacheCreationInputTokens: input_cache_write }\n : {}),\n }),\n )\n .nullish(),\n specification: z.object({\n specificationVersion: z.literal('v2'),\n provider: z.string(),\n modelId: z.string(),\n }),\n modelType: z.string().nullish(),\n }),\n )\n .transform(models =>\n models.filter(\n (m): m is typeof m & { modelType?: KnownModelType | null } =>\n m.modelType == null ||\n KNOWN_MODEL_TYPES.includes(m.modelType as KnownModelType),\n ),\n ),\n }),\n ),\n);\n\nconst gatewayCreditsResponseSchema = lazyValidator(() =>\n zodSchema(\n z\n .object({\n balance: z.string(),\n total_used: z.string(),\n })\n .transform(({ balance, total_used }) => ({\n balance,\n totalUsed: total_used,\n })),\n ),\n);\n","import {\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n lazySchema,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\n\nexport interface GatewaySpendReportParams {\n /** Start date in YYYY-MM-DD format (inclusive) */\n startDate: string;\n /** End date in YYYY-MM-DD format (inclusive) */\n endDate: string;\n /** Primary aggregation dimension. Defaults to 'day'. */\n groupBy?: 'day' | 'user' | 'model' | 'tag' | 'provider' | 'credential_type';\n /** Time granularity when groupBy is 'day'. */\n datePart?: 'day' | 'hour';\n /** Filter to a specific user's spend. */\n userId?: string;\n /** Filter to a specific model (e.g. 'anthropic/claude-sonnet-4.5'). */\n model?: string;\n /** Filter to a specific provider (e.g. 'anthropic'). */\n provider?: string;\n /** Filter to BYOK or system credentials. */\n credentialType?: 'byok' | 'system';\n /** Filter to requests with these tags. */\n tags?: string[];\n}\n\nexport interface GatewaySpendReportRow {\n /** Date string (present when groupBy is 'day') */\n day?: string;\n /** Hour timestamp (present when groupBy is 'day' and datePart is 'hour') */\n hour?: string;\n /** User identifier (present when groupBy is 'user') */\n user?: string;\n /** Model identifier (present when groupBy is 'model') */\n model?: string;\n /** Tag value (present when groupBy is 'tag') */\n tag?: string;\n /** Provider name (present when groupBy is 'provider') */\n provider?: string;\n /** Credential type (present when groupBy is 'credential_type') */\n credentialType?: 'byok' | 'system';\n\n /** Total cost in USD */\n totalCost: number;\n /** Market cost in USD */\n marketCost?: number;\n /** Number of input tokens */\n inputTokens?: number;\n /** Number of output tokens */\n outputTokens?: number;\n /** Number of cached input tokens */\n cachedInputTokens?: number;\n /** Number of cache creation input tokens */\n cacheCreationInputTokens?: number;\n /** Number of reasoning tokens */\n reasoningTokens?: number;\n /** Number of requests */\n requestCount?: number;\n}\n\nexport interface GatewaySpendReportResponse {\n results: GatewaySpendReportRow[];\n}\n\nexport class GatewaySpendReport {\n constructor(private readonly config: GatewayConfig) {}\n\n async getSpendReport(\n params: GatewaySpendReportParams,\n ): Promise {\n try {\n const baseUrl = new URL(this.config.baseURL);\n\n const searchParams = new URLSearchParams();\n searchParams.set('start_date', params.startDate);\n searchParams.set('end_date', params.endDate);\n\n if (params.groupBy) {\n searchParams.set('group_by', params.groupBy);\n }\n if (params.datePart) {\n searchParams.set('date_part', params.datePart);\n }\n if (params.userId) {\n searchParams.set('user_id', params.userId);\n }\n if (params.model) {\n searchParams.set('model', params.model);\n }\n if (params.provider) {\n searchParams.set('provider', params.provider);\n }\n if (params.credentialType) {\n searchParams.set('credential_type', params.credentialType);\n }\n if (params.tags && params.tags.length > 0) {\n searchParams.set('tags', params.tags.join(','));\n }\n\n const { value } = await getFromApi({\n url: `${baseUrl.origin}/v1/report?${searchParams.toString()}`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewaySpendReportResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n}\n\nconst gatewaySpendReportResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n results: z.array(\n z\n .object({\n day: z.string().optional(),\n hour: z.string().optional(),\n user: z.string().optional(),\n model: z.string().optional(),\n tag: z.string().optional(),\n provider: z.string().optional(),\n credential_type: z.enum(['byok', 'system']).optional(),\n total_cost: z.number(),\n market_cost: z.number().optional(),\n input_tokens: z.number().optional(),\n output_tokens: z.number().optional(),\n cached_input_tokens: z.number().optional(),\n cache_creation_input_tokens: z.number().optional(),\n reasoning_tokens: z.number().optional(),\n request_count: z.number().optional(),\n })\n .transform(\n ({\n credential_type,\n total_cost,\n market_cost,\n input_tokens,\n output_tokens,\n cached_input_tokens,\n cache_creation_input_tokens,\n reasoning_tokens,\n request_count,\n ...rest\n }) => ({\n ...rest,\n ...(credential_type !== undefined\n ? { credentialType: credential_type }\n : {}),\n totalCost: total_cost,\n ...(market_cost !== undefined ? { marketCost: market_cost } : {}),\n ...(input_tokens !== undefined\n ? { inputTokens: input_tokens }\n : {}),\n ...(output_tokens !== undefined\n ? { outputTokens: output_tokens }\n : {}),\n ...(cached_input_tokens !== undefined\n ? { cachedInputTokens: cached_input_tokens }\n : {}),\n ...(cache_creation_input_tokens !== undefined\n ? { cacheCreationInputTokens: cache_creation_input_tokens }\n : {}),\n ...(reasoning_tokens !== undefined\n ? { reasoningTokens: reasoning_tokens }\n : {}),\n ...(request_count !== undefined\n ? { requestCount: request_count }\n : {}),\n }),\n ),\n ),\n }),\n ),\n);\n","import {\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n lazySchema,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\n\nexport interface GatewayGenerationInfoParams {\n /** The generation ID to look up (format: gen_) */\n id: string;\n}\n\nexport interface GatewayGenerationInfo {\n /** The generation ID */\n id: string;\n /** Total cost in USD */\n totalCost: number;\n /** Upstream inference cost in USD (BYOK only) */\n upstreamInferenceCost: number;\n /** Usage cost in USD (same as totalCost) */\n usage: number;\n /** ISO 8601 timestamp when the generation was created */\n createdAt: string;\n /** Model identifier */\n model: string;\n /** Whether BYOK credentials were used */\n isByok: boolean;\n /** Provider that served this generation */\n providerName: string;\n /** Whether streaming was used */\n streamed: boolean;\n /** Finish reason (e.g. 'stop') */\n finishReason: string;\n /** Time to first token in milliseconds */\n latency: number;\n /** Total generation time in milliseconds */\n generationTime: number;\n /** Number of prompt tokens */\n promptTokens: number;\n /** Number of completion tokens */\n completionTokens: number;\n /** Reasoning tokens used */\n reasoningTokens: number;\n /** Cached tokens used */\n cachedTokens: number;\n /** Cache creation input tokens */\n cacheCreationTokens: number;\n /** Billable web search calls */\n billableWebSearchCalls: number;\n}\n\nexport class GatewayGenerationInfoFetcher {\n constructor(private readonly config: GatewayConfig) {}\n\n async getGenerationInfo(\n params: GatewayGenerationInfoParams,\n ): Promise {\n try {\n const baseUrl = new URL(this.config.baseURL);\n\n const { value } = await getFromApi({\n url: `${baseUrl.origin}/v1/generation?id=${encodeURIComponent(params.id)}`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayGenerationInfoResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n}\n\nconst gatewayGenerationInfoResponseSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n data: z\n .object({\n id: z.string(),\n total_cost: z.number(),\n upstream_inference_cost: z.number(),\n usage: z.number(),\n created_at: z.string(),\n model: z.string(),\n is_byok: z.boolean(),\n provider_name: z.string(),\n streamed: z.boolean(),\n finish_reason: z.string(),\n latency: z.number(),\n generation_time: z.number(),\n native_tokens_prompt: z.number(),\n native_tokens_completion: z.number(),\n native_tokens_reasoning: z.number(),\n native_tokens_cached: z.number(),\n native_tokens_cache_creation: z.number(),\n billable_web_search_calls: z.number(),\n })\n .transform(\n ({\n total_cost,\n upstream_inference_cost,\n created_at,\n is_byok,\n provider_name,\n finish_reason,\n generation_time,\n native_tokens_prompt,\n native_tokens_completion,\n native_tokens_reasoning,\n native_tokens_cached,\n native_tokens_cache_creation,\n billable_web_search_calls,\n ...rest\n }) => ({\n ...rest,\n totalCost: total_cost,\n upstreamInferenceCost: upstream_inference_cost,\n createdAt: created_at,\n isByok: is_byok,\n providerName: provider_name,\n finishReason: finish_reason,\n generationTime: generation_time,\n promptTokens: native_tokens_prompt,\n completionTokens: native_tokens_completion,\n reasoningTokens: native_tokens_reasoning,\n cachedTokens: native_tokens_cached,\n cacheCreationTokens: native_tokens_cache_creation,\n billableWebSearchCalls: billable_web_search_calls,\n }),\n ),\n })\n .transform(({ data }) => data),\n ),\n);\n","import type {\n LanguageModelV2,\n LanguageModelV2CallOptions,\n LanguageModelV2CallWarning,\n LanguageModelV2FilePart,\n LanguageModelV2StreamPart,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n postJsonToApi,\n resolve,\n type ParseResult,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport type { GatewayModelId } from './gateway-language-model-settings';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\ntype GatewayChatConfig = GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n};\n\nexport class GatewayLanguageModel implements LanguageModelV2 {\n readonly specificationVersion = 'v2';\n readonly supportedUrls = { '*/*': [/.*/] };\n\n constructor(\n readonly modelId: GatewayModelId,\n private readonly config: GatewayChatConfig,\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n private async getArgs(options: Parameters[0]) {\n const { abortSignal: _abortSignal, ...optionsWithoutSignal } = options;\n\n return {\n args: this.maybeEncodeFileParts(optionsWithoutSignal),\n warnings: [],\n };\n }\n\n async doGenerate(\n options: Parameters[0],\n ): Promise>> {\n const { args, warnings } = await this.getArgs(options);\n const { abortSignal } = options;\n\n const resolvedHeaders = await resolve(this.config.headers());\n\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n options.headers,\n this.getModelConfigHeaders(this.modelId, false),\n await resolve(this.config.o11yHeaders),\n ),\n body: args,\n successfulResponseHandler: createJsonResponseHandler(z.any()),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n ...responseBody,\n request: { body: args },\n response: { headers: responseHeaders, body: rawResponse },\n warnings,\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n async doStream(\n options: Parameters[0],\n ): Promise>> {\n const { args, warnings } = await this.getArgs(options);\n const { abortSignal } = options;\n\n const resolvedHeaders = await resolve(this.config.headers());\n\n try {\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n options.headers,\n this.getModelConfigHeaders(this.modelId, true),\n await resolve(this.config.o11yHeaders),\n ),\n body: args,\n successfulResponseHandler: createEventSourceResponseHandler(z.any()),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult,\n LanguageModelV2StreamPart\n >({\n start(controller) {\n if (warnings.length > 0) {\n controller.enqueue({ type: 'stream-start', warnings });\n }\n },\n transform(chunk, controller) {\n if (chunk.success) {\n const streamPart = chunk.value;\n\n // Handle raw chunks: if this is a raw chunk from the gateway API,\n // only emit it if includeRawChunks is true\n if (streamPart.type === 'raw' && !options.includeRawChunks) {\n return; // Skip raw chunks if not requested\n }\n\n if (\n streamPart.type === 'response-metadata' &&\n streamPart.timestamp &&\n typeof streamPart.timestamp === 'string'\n ) {\n streamPart.timestamp = new Date(streamPart.timestamp);\n }\n\n controller.enqueue(streamPart);\n } else {\n controller.error(\n (chunk as { success: false; error: unknown }).error,\n );\n }\n },\n }),\n ),\n request: { body: args },\n response: { headers: responseHeaders },\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private isFilePart(part: unknown) {\n return (\n part && typeof part === 'object' && 'type' in part && part.type === 'file'\n );\n }\n\n /**\n * Encodes file parts in the prompt to base64. Mutates the passed options\n * instance directly to avoid copying the file data.\n * @param options - The options to encode.\n * @returns The options with the file parts encoded.\n */\n private maybeEncodeFileParts(options: LanguageModelV2CallOptions) {\n for (const message of options.prompt) {\n for (const part of message.content) {\n if (this.isFilePart(part)) {\n const filePart = part as LanguageModelV2FilePart;\n // If the file part is a URL it will get cleanly converted to a string.\n // If it's a binary file attachment we convert it to a data url.\n // In either case, server-side we should only ever see URLs as strings.\n if (filePart.data instanceof Uint8Array) {\n const buffer = Uint8Array.from(filePart.data);\n const base64Data = Buffer.from(buffer).toString('base64');\n filePart.data = new URL(\n `data:${filePart.mediaType || 'application/octet-stream'};base64,${base64Data}`,\n );\n }\n }\n }\n }\n return options;\n }\n\n private getUrl() {\n return `${this.config.baseURL}/language-model`;\n }\n\n private getModelConfigHeaders(modelId: string, streaming: boolean) {\n return {\n 'ai-language-model-specification-version': '2',\n 'ai-language-model-id': modelId,\n 'ai-language-model-streaming': String(streaming),\n };\n }\n}\n","import type {\n EmbeddingModelV2,\n SharedV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n lazyValidator,\n postJsonToApi,\n resolve,\n zodSchema,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\nimport type { GatewayConfig } from './gateway-config';\n\nexport class GatewayEmbeddingModel implements EmbeddingModelV2 {\n readonly specificationVersion = 'v2';\n readonly maxEmbeddingsPerCall = 2048;\n readonly supportsParallelCalls = true;\n\n constructor(\n readonly modelId: string,\n private readonly config: GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n },\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions,\n }: Parameters['doEmbed']>[0]): Promise<\n Awaited['doEmbed']>>\n > {\n const resolvedHeaders = await resolve(this.config.headers());\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue,\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n headers ?? {},\n this.getModelConfigHeaders(),\n await resolve(this.config.o11yHeaders),\n ),\n body: {\n input: values.length === 1 ? values[0] : values,\n ...(providerOptions ? { providerOptions } : {}),\n },\n successfulResponseHandler: createJsonResponseHandler(\n gatewayEmbeddingResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n embeddings: responseBody.embeddings,\n usage: responseBody.usage ?? undefined,\n providerMetadata:\n responseBody.providerMetadata as unknown as SharedV2ProviderMetadata,\n response: { headers: responseHeaders, body: rawValue },\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private getUrl() {\n return `${this.config.baseURL}/embedding-model`;\n }\n\n private getModelConfigHeaders() {\n return {\n 'ai-embedding-model-specification-version': '2',\n 'ai-model-id': this.modelId,\n };\n }\n}\n\nconst gatewayEmbeddingResponseSchema = lazyValidator(() =>\n zodSchema(\n z.object({\n embeddings: z.array(z.array(z.number())),\n usage: z.object({ tokens: z.number() }).nullish(),\n providerMetadata: z\n .record(z.string(), z.record(z.string(), z.unknown()))\n .optional(),\n }),\n ),\n);\n","import type {\n ImageModelV2,\n ImageModelV2CallWarning,\n ImageModelV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonResponseHandler,\n createJsonErrorResponseHandler,\n postJsonToApi,\n resolve,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\nexport class GatewayImageModel implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n // Set a very large number to prevent client-side splitting of requests\n readonly maxImagesPerCall = Number.MAX_SAFE_INTEGER;\n\n constructor(\n readonly modelId: string,\n private readonly config: GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n },\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters[0]) {\n const resolvedHeaders = await resolve(this.config.headers());\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue,\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n headers ?? {},\n this.getModelConfigHeaders(),\n await resolve(this.config.o11yHeaders),\n ),\n body: {\n prompt,\n n,\n ...(size && { size }),\n ...(aspectRatio && { aspectRatio }),\n ...(seed && { seed }),\n ...(providerOptions && { providerOptions }),\n },\n successfulResponseHandler: createJsonResponseHandler(\n gatewayImageResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n images: responseBody.images, // Always base64 strings from server\n warnings: responseBody.warnings ?? [],\n providerMetadata:\n responseBody.providerMetadata as ImageModelV2ProviderMetadata,\n response: {\n timestamp: new Date(),\n modelId: this.modelId,\n headers: responseHeaders,\n },\n ...(responseBody.usage != null && {\n usage: {\n inputTokens: responseBody.usage.inputTokens ?? undefined,\n outputTokens: responseBody.usage.outputTokens ?? undefined,\n totalTokens: responseBody.usage.totalTokens ?? undefined,\n },\n }),\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private getUrl() {\n return `${this.config.baseURL}/image-model`;\n }\n\n private getModelConfigHeaders() {\n return {\n 'ai-image-model-specification-version': '2',\n 'ai-model-id': this.modelId,\n };\n }\n}\n\nconst providerMetadataEntrySchema = z\n .object({\n images: z.array(z.unknown()).optional(),\n })\n .catchall(z.unknown());\n\nconst gatewayImageUsageSchema = z.object({\n inputTokens: z.number().nullish(),\n outputTokens: z.number().nullish(),\n totalTokens: z.number().nullish(),\n});\n\nconst gatewayImageResponseSchema = z.object({\n images: z.array(z.string()), // Always base64 strings over the wire\n warnings: z\n .array(\n z.object({\n type: z.literal('other'),\n message: z.string(),\n }),\n )\n .optional(),\n providerMetadata: z\n .record(z.string(), providerMetadataEntrySchema)\n .optional(),\n usage: gatewayImageUsageSchema.optional(),\n});\n","import {\n createProviderDefinedToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nexport interface ParallelSearchSourcePolicy {\n /**\n * List of domains to include in search results.\n * Example: ['wikipedia.org', 'nature.com']\n */\n includeDomains?: string[];\n\n /**\n * List of domains to exclude from search results.\n * Example: ['reddit.com', 'twitter.com']\n */\n excludeDomains?: string[];\n\n /**\n * Only include results published after this date (ISO 8601 format).\n * Example: '2024-01-01'\n */\n afterDate?: string;\n}\n\nexport interface ParallelSearchExcerpts {\n /**\n * Maximum characters per result.\n */\n maxCharsPerResult?: number;\n\n /**\n * Maximum total characters across all results.\n */\n maxCharsTotal?: number;\n}\n\nexport interface ParallelSearchFetchPolicy {\n /**\n * Maximum age in seconds for cached content.\n * Set to 0 to always fetch fresh content.\n */\n maxAgeSeconds?: number;\n}\n\nexport interface ParallelSearchConfig {\n /**\n * Mode preset for different use cases:\n * - \"one-shot\": Comprehensive results with longer excerpts for single-response answers (default)\n * - \"agentic\": Concise, token-efficient results for multi-step agentic workflows\n */\n mode?: 'one-shot' | 'agentic';\n\n /**\n * Default maximum number of results to return (1-20).\n * Defaults to 10 if not specified.\n */\n maxResults?: number;\n\n /**\n * Default source policy for controlling which domains to include/exclude.\n */\n sourcePolicy?: ParallelSearchSourcePolicy;\n\n /**\n * Default excerpt configuration for controlling result length.\n */\n excerpts?: ParallelSearchExcerpts;\n\n /**\n * Default fetch policy for controlling content freshness.\n */\n fetchPolicy?: ParallelSearchFetchPolicy;\n}\n\nexport interface ParallelSearchResult {\n /** URL of the search result */\n url: string;\n /** Title of the search result */\n title: string;\n /** Extracted text excerpt/content from the page */\n excerpt: string;\n /** Publication date of the content (may be null) */\n publishDate?: string | null;\n /** Relevance score for the result */\n relevanceScore?: number;\n}\n\nexport interface ParallelSearchResponse {\n /** Unique identifier for this search request */\n searchId: string;\n /** Array of search results */\n results: ParallelSearchResult[];\n}\n\nexport interface ParallelSearchError {\n /** Error type */\n error:\n | 'api_error'\n | 'rate_limit'\n | 'timeout'\n | 'invalid_input'\n | 'configuration_error'\n | 'unknown';\n /** HTTP status code if applicable */\n statusCode?: number;\n /** Human-readable error message */\n message: string;\n}\n\nexport interface ParallelSearchInput {\n /**\n * Natural-language description of the web research goal.\n * Include source or freshness guidance and broader context from the task.\n * Maximum 5000 characters.\n */\n objective: string;\n\n /**\n * Optional search queries to supplement the objective.\n * Maximum 200 characters per query.\n */\n search_queries?: string[];\n\n /**\n * Mode preset for different use cases:\n * - \"one-shot\": Comprehensive results with longer excerpts\n * - \"agentic\": Concise, token-efficient results for multi-step workflows\n */\n mode?: 'one-shot' | 'agentic';\n\n /**\n * Maximum number of results to return (1-20).\n * Defaults to 10 if not specified.\n */\n max_results?: number;\n\n /**\n * Source policy for controlling which domains to include/exclude.\n */\n source_policy?: {\n include_domains?: string[];\n exclude_domains?: string[];\n after_date?: string;\n };\n\n /**\n * Excerpt configuration for controlling result length.\n */\n excerpts?: {\n max_chars_per_result?: number;\n max_chars_total?: number;\n };\n\n /**\n * Fetch policy for controlling content freshness.\n */\n fetch_policy?: {\n max_age_seconds?: number;\n };\n}\n\nexport type ParallelSearchOutput = ParallelSearchResponse | ParallelSearchError;\n\nconst parallelSearchInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n objective: z\n .string()\n .describe(\n 'Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters.',\n ),\n\n search_queries: z\n .array(z.string())\n .optional()\n .describe(\n 'Optional search queries to supplement the objective. Maximum 200 characters per query.',\n ),\n\n mode: z\n .enum(['one-shot', 'agentic'])\n .optional()\n .describe(\n 'Mode preset: \"one-shot\" for comprehensive results with longer excerpts (default), \"agentic\" for concise, token-efficient results for multi-step workflows.',\n ),\n\n max_results: z\n .number()\n .optional()\n .describe(\n 'Maximum number of results to return (1-20). Defaults to 10 if not specified.',\n ),\n\n source_policy: z\n .object({\n include_domains: z\n .array(z.string())\n .optional()\n .describe('List of domains to include in search results.'),\n exclude_domains: z\n .array(z.string())\n .optional()\n .describe('List of domains to exclude from search results.'),\n after_date: z\n .string()\n .optional()\n .describe(\n 'Only include results published after this date (ISO 8601 format).',\n ),\n })\n .optional()\n .describe(\n 'Source policy for controlling which domains to include/exclude and freshness.',\n ),\n\n excerpts: z\n .object({\n max_chars_per_result: z\n .number()\n .optional()\n .describe('Maximum characters per result.'),\n max_chars_total: z\n .number()\n .optional()\n .describe('Maximum total characters across all results.'),\n })\n .optional()\n .describe('Excerpt configuration for controlling result length.'),\n\n fetch_policy: z\n .object({\n max_age_seconds: z\n .number()\n .optional()\n .describe(\n 'Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.',\n ),\n })\n .optional()\n .describe('Fetch policy for controlling content freshness.'),\n }),\n ),\n);\n\nconst parallelSearchOutputSchema = lazySchema(() =>\n zodSchema(\n z.union([\n // Success response\n z.object({\n searchId: z.string(),\n results: z.array(\n z.object({\n url: z.string(),\n title: z.string(),\n excerpt: z.string(),\n publishDate: z.string().nullable().optional(),\n relevanceScore: z.number().optional(),\n }),\n ),\n }),\n // Error response\n z.object({\n error: z.enum([\n 'api_error',\n 'rate_limit',\n 'timeout',\n 'invalid_input',\n 'configuration_error',\n 'unknown',\n ]),\n statusCode: z.number().optional(),\n message: z.string(),\n }),\n ]),\n ),\n);\n\nexport const parallelSearchToolFactory =\n createProviderDefinedToolFactoryWithOutputSchema<\n ParallelSearchInput,\n ParallelSearchOutput,\n ParallelSearchConfig\n >({\n id: 'gateway.parallel_search',\n name: 'parallel_search',\n inputSchema: parallelSearchInputSchema,\n outputSchema: parallelSearchOutputSchema,\n });\n\nexport const parallelSearch = (\n config: ParallelSearchConfig = {},\n): ReturnType =>\n parallelSearchToolFactory(config);\n","import {\n createProviderDefinedToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nexport interface PerplexitySearchConfig {\n /**\n * Default maximum number of search results to return (1-20, default: 10).\n */\n maxResults?: number;\n\n /**\n * Default maximum tokens to extract per search result page (256-2048, default: 2048).\n */\n maxTokensPerPage?: number;\n\n /**\n * Default maximum total tokens across all search results (default: 25000, max: 1000000).\n */\n maxTokens?: number;\n\n /**\n * Default two-letter ISO 3166-1 alpha-2 country code for regional search results.\n * Examples: 'US', 'GB', 'FR'\n */\n country?: string;\n\n /**\n * Default list of domains to include or exclude from search results (max 20).\n * To include: ['nature.com', 'science.org']\n * To exclude: ['-example.com', '-spam.net']\n */\n searchDomainFilter?: string[];\n\n /**\n * Default list of ISO 639-1 language codes to filter results (max 10, lowercase).\n * Examples: ['en', 'fr', 'de']\n */\n searchLanguageFilter?: string[];\n\n /**\n * Default recency filter for results.\n * Cannot be combined with searchAfterDate/searchBeforeDate at runtime.\n */\n searchRecencyFilter?: 'day' | 'week' | 'month' | 'year';\n}\n\nexport interface PerplexitySearchResult {\n /** Title of the search result */\n title: string;\n /** URL of the search result */\n url: string;\n /** Text snippet/preview of the content */\n snippet: string;\n /** Publication date of the content */\n date?: string;\n /** Last updated date of the content */\n lastUpdated?: string;\n}\n\nexport interface PerplexitySearchResponse {\n /** Array of search results */\n results: PerplexitySearchResult[];\n /** Unique identifier for this search request */\n id: string;\n}\n\nexport interface PerplexitySearchError {\n /** Error type */\n error: 'api_error' | 'rate_limit' | 'timeout' | 'invalid_input' | 'unknown';\n /** HTTP status code if applicable */\n statusCode?: number;\n /** Human-readable error message */\n message: string;\n}\n\nexport interface PerplexitySearchInput {\n /**\n * Search query (string) or multiple queries (array of up to 5 strings).\n * Multi-query searches return combined results from all queries.\n */\n query: string | string[];\n\n /**\n * Maximum number of search results to return (1-20, default: 10).\n */\n max_results?: number;\n\n /**\n * Maximum number of tokens to extract per search result page (256-2048, default: 2048).\n */\n max_tokens_per_page?: number;\n\n /**\n * Maximum total tokens across all search results (default: 25000, max: 1000000).\n */\n max_tokens?: number;\n\n /**\n * Two-letter ISO 3166-1 alpha-2 country code for regional search results.\n * Examples: 'US', 'GB', 'FR'\n */\n country?: string;\n\n /**\n * List of domains to include or exclude from search results (max 20).\n * To include: ['nature.com', 'science.org']\n * To exclude: ['-example.com', '-spam.net']\n */\n search_domain_filter?: string[];\n\n /**\n * List of ISO 639-1 language codes to filter results (max 10, lowercase).\n * Examples: ['en', 'fr', 'de']\n */\n search_language_filter?: string[];\n\n /**\n * Include only results published after this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/1/2025')\n * Cannot be used with search_recency_filter.\n */\n search_after_date?: string;\n\n /**\n * Include only results published before this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/15/2025')\n * Cannot be used with search_recency_filter.\n */\n search_before_date?: string;\n\n /**\n * Include only results last updated after this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/1/2025')\n * Cannot be used with search_recency_filter.\n */\n last_updated_after_filter?: string;\n\n /**\n * Include only results last updated before this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/15/2025')\n * Cannot be used with search_recency_filter.\n */\n last_updated_before_filter?: string;\n\n /**\n * Filter results by relative time period.\n * Cannot be used with search_after_date or search_before_date.\n */\n search_recency_filter?: 'day' | 'week' | 'month' | 'year';\n}\n\nexport type PerplexitySearchOutput =\n | PerplexitySearchResponse\n | PerplexitySearchError;\n\nconst perplexitySearchInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n query: z\n .union([z.string(), z.array(z.string())])\n .describe(\n 'Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries.',\n ),\n\n max_results: z\n .number()\n .optional()\n .describe(\n 'Maximum number of search results to return (1-20, default: 10)',\n ),\n\n max_tokens_per_page: z\n .number()\n .optional()\n .describe(\n 'Maximum number of tokens to extract per search result page (256-2048, default: 2048)',\n ),\n\n max_tokens: z\n .number()\n .optional()\n .describe(\n 'Maximum total tokens across all search results (default: 25000, max: 1000000)',\n ),\n\n country: z\n .string()\n .optional()\n .describe(\n \"Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')\",\n ),\n\n search_domain_filter: z\n .array(z.string())\n .optional()\n .describe(\n \"List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']\",\n ),\n\n search_language_filter: z\n .array(z.string())\n .optional()\n .describe(\n \"List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']\",\n ),\n\n search_after_date: z\n .string()\n .optional()\n .describe(\n \"Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n search_before_date: z\n .string()\n .optional()\n .describe(\n \"Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n last_updated_after_filter: z\n .string()\n .optional()\n .describe(\n \"Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n last_updated_before_filter: z\n .string()\n .optional()\n .describe(\n \"Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n search_recency_filter: z\n .enum(['day', 'week', 'month', 'year'])\n .optional()\n .describe(\n 'Filter results by relative time period. Cannot be used with search_after_date or search_before_date.',\n ),\n }),\n ),\n);\n\nconst perplexitySearchOutputSchema = lazySchema(() =>\n zodSchema(\n z.union([\n // Success response\n z.object({\n results: z.array(\n z.object({\n title: z.string(),\n url: z.string(),\n snippet: z.string(),\n date: z.string().optional(),\n lastUpdated: z.string().optional(),\n }),\n ),\n id: z.string(),\n }),\n // Error response\n z.object({\n error: z.enum([\n 'api_error',\n 'rate_limit',\n 'timeout',\n 'invalid_input',\n 'unknown',\n ]),\n statusCode: z.number().optional(),\n message: z.string(),\n }),\n ]),\n ),\n);\n\nexport const perplexitySearchToolFactory =\n createProviderDefinedToolFactoryWithOutputSchema<\n PerplexitySearchInput,\n PerplexitySearchOutput,\n PerplexitySearchConfig\n >({\n id: 'gateway.perplexity_search',\n name: 'perplexity_search',\n inputSchema: perplexitySearchInputSchema,\n outputSchema: perplexitySearchOutputSchema,\n });\n\nexport const perplexitySearch = (\n config: PerplexitySearchConfig = {},\n): ReturnType =>\n perplexitySearchToolFactory(config);\n","import { parallelSearch } from './tool/parallel-search';\nimport { perplexitySearch } from './tool/perplexity-search';\n\n/**\n * Gateway-specific provider-defined tools.\n */\nexport const gatewayTools = {\n /**\n * Search the web using Parallel AI's Search API for LLM-optimized excerpts.\n *\n * Takes a natural language objective and returns relevant excerpts,\n * replacing multiple keyword searches with a single call for broad\n * or complex queries. Supports different search types for depth vs\n * breadth tradeoffs.\n */\n parallelSearch,\n\n /**\n * Search the web using Perplexity's Search API for real-time information,\n * news, research papers, and articles.\n *\n * Provides ranked search results with advanced filtering options including\n * domain, language, date range, and recency filters.\n */\n perplexitySearch,\n};\n","import { getContext } from '@vercel/oidc';\nexport { getVercelOidcToken } from '@vercel/oidc';\n\nexport async function getVercelRequestId(): Promise {\n return getContext().headers?.['x-vercel-id'];\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import {\n loadOptionalSetting,\n withoutTrailingSlash,\n type FetchFunction,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { asGatewayError, GatewayAuthenticationError } from './errors';\nimport {\n GATEWAY_AUTH_METHOD_HEADER,\n parseAuthMethod,\n} from './errors/parse-auth-method';\nimport {\n GatewayFetchMetadata,\n type GatewayFetchMetadataResponse,\n type GatewayCreditsResponse,\n} from './gateway-fetch-metadata';\nimport {\n GatewaySpendReport,\n type GatewaySpendReportParams,\n type GatewaySpendReportResponse,\n} from './gateway-spend-report';\nimport {\n GatewayGenerationInfoFetcher,\n type GatewayGenerationInfoParams,\n type GatewayGenerationInfo,\n} from './gateway-generation-info';\nimport { GatewayLanguageModel } from './gateway-language-model';\nimport { GatewayEmbeddingModel } from './gateway-embedding-model';\nimport { GatewayImageModel } from './gateway-image-model';\nimport type { GatewayEmbeddingModelId } from './gateway-embedding-model-settings';\nimport type { GatewayImageModelId } from './gateway-image-model-settings';\nimport { gatewayTools } from './gateway-tools';\nimport { getVercelOidcToken, getVercelRequestId } from './vercel-environment';\nimport type { GatewayModelId } from './gateway-language-model-settings';\nimport type {\n LanguageModelV2,\n EmbeddingModelV2,\n ImageModelV2,\n ProviderV2,\n} from '@ai-sdk/provider';\nimport { VERSION } from './version';\n\nexport interface GatewayProvider extends ProviderV2 {\n (modelId: GatewayModelId): LanguageModelV2;\n\n /**\nCreates a model for text generation.\n*/\n languageModel(modelId: GatewayModelId): LanguageModelV2;\n\n /**\nReturns available providers and models for use with the remote provider.\n */\n getAvailableModels(): Promise;\n\n /**\nReturns credit information for the authenticated user.\n */\n getCredits(): Promise;\n\n /**\n * Returns a spend report with cost, token, and request count data,\n * aggregated by the specified dimension.\n */\n getSpendReport(\n params: GatewaySpendReportParams,\n ): Promise;\n\n /**\n * Returns detailed information about a specific generation by its ID,\n * including cost, token usage, latency, and provider details.\n */\n getGenerationInfo(\n params: GatewayGenerationInfoParams,\n ): Promise;\n\n /**\nCreates a model for generating text embeddings.\n*/\n textEmbeddingModel(\n modelId: GatewayEmbeddingModelId,\n ): EmbeddingModelV2;\n\n /**\nCreates a model for generating images.\n*/\n imageModel(modelId: GatewayImageModelId): ImageModelV2;\n\n /**\nGateway-specific tools executed server-side.\n*/\n tools: typeof gatewayTools;\n}\n\nexport interface GatewayProviderSettings {\n /**\nThe base URL prefix for API calls. Defaults to `https://ai-gateway.vercel.sh/v1/ai`.\n */\n baseURL?: string;\n\n /**\nAPI key that is being sent using the `Authorization` header.\n */\n apiKey?: string;\n\n /**\nCustom headers to include in the requests.\n */\n headers?: Record;\n\n /**\nCustom fetch implementation. You can use it as a middleware to intercept requests,\nor to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n\n /**\nHow frequently to refresh the metadata cache in milliseconds.\n */\n metadataCacheRefreshMillis?: number;\n\n /**\n * @internal For testing purposes only\n */\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nconst AI_GATEWAY_PROTOCOL_VERSION = '0.0.1';\n\n/**\nCreate a remote provider instance.\n */\nexport function createGatewayProvider(\n options: GatewayProviderSettings = {},\n): GatewayProvider {\n let pendingMetadata: Promise | null = null;\n let metadataCache: GatewayFetchMetadataResponse | null = null;\n const cacheRefreshMillis =\n options.metadataCacheRefreshMillis ?? 1000 * 60 * 5;\n let lastFetchTime = 0;\n\n const baseURL =\n withoutTrailingSlash(options.baseURL) ??\n 'https://ai-gateway.vercel.sh/v1/ai';\n\n const getHeaders = async () => {\n const auth = await getGatewayAuthToken(options);\n if (auth) {\n return withUserAgentSuffix(\n {\n Authorization: `Bearer ${auth.token}`,\n 'ai-gateway-protocol-version': AI_GATEWAY_PROTOCOL_VERSION,\n [GATEWAY_AUTH_METHOD_HEADER]: auth.authMethod,\n ...options.headers,\n },\n `ai-sdk/gateway/${VERSION}`,\n );\n }\n\n throw GatewayAuthenticationError.createContextualError({\n apiKeyProvided: false,\n oidcTokenProvided: false,\n statusCode: 401,\n });\n };\n\n const createO11yHeaders = () => {\n const deploymentId = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_DEPLOYMENT_ID',\n });\n const environment = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_ENV',\n });\n const region = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_REGION',\n });\n const projectId = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_PROJECT_ID',\n });\n\n return async () => {\n const requestId = await getVercelRequestId();\n return {\n ...(deploymentId && { 'ai-o11y-deployment-id': deploymentId }),\n ...(environment && { 'ai-o11y-environment': environment }),\n ...(region && { 'ai-o11y-region': region }),\n ...(requestId && { 'ai-o11y-request-id': requestId }),\n ...(projectId && { 'ai-o11y-project-id': projectId }),\n };\n };\n };\n\n const createLanguageModel = (modelId: GatewayModelId) => {\n return new GatewayLanguageModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n\n const getAvailableModels = async () => {\n const now = options._internal?.currentDate?.().getTime() ?? Date.now();\n if (!pendingMetadata || now - lastFetchTime > cacheRefreshMillis) {\n lastFetchTime = now;\n\n pendingMetadata = new GatewayFetchMetadata({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getAvailableModels()\n .then(metadata => {\n metadataCache = metadata;\n return metadata;\n })\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n }\n\n return metadataCache ? Promise.resolve(metadataCache) : pendingMetadata;\n };\n\n const getCredits = async () => {\n return new GatewayFetchMetadata({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getCredits()\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n };\n\n const getSpendReport = async (params: GatewaySpendReportParams) => {\n return new GatewaySpendReport({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getSpendReport(params)\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n };\n\n const getGenerationInfo = async (params: GatewayGenerationInfoParams) => {\n return new GatewayGenerationInfoFetcher({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getGenerationInfo(params)\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n };\n\n const provider = function (modelId: GatewayModelId) {\n if (new.target) {\n throw new Error(\n 'The Gateway Provider model function cannot be called with the new keyword.',\n );\n }\n\n return createLanguageModel(modelId);\n };\n\n provider.getAvailableModels = getAvailableModels;\n provider.getCredits = getCredits;\n provider.getSpendReport = getSpendReport;\n provider.getGenerationInfo = getGenerationInfo;\n provider.imageModel = (modelId: GatewayImageModelId) => {\n return new GatewayImageModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n provider.languageModel = createLanguageModel;\n provider.textEmbeddingModel = (modelId: GatewayEmbeddingModelId) => {\n return new GatewayEmbeddingModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n provider.tools = gatewayTools;\n\n return provider;\n}\n\nexport const gateway = createGatewayProvider();\n\nexport async function getGatewayAuthToken(\n options: GatewayProviderSettings,\n): Promise<{\n token: string;\n authMethod: 'api-key' | 'oidc';\n} | null> {\n const apiKey = loadOptionalSetting({\n settingValue: options.apiKey,\n environmentVariableName: 'AI_GATEWAY_API_KEY',\n });\n\n if (apiKey) {\n return {\n token: apiKey,\n authMethod: 'api-key',\n };\n }\n\n try {\n const oidcToken = await getVercelOidcToken();\n return {\n token: oidcToken,\n authMethod: 'oidc',\n };\n } catch {\n return null;\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly parameter: string;\n readonly value: unknown;\n\n constructor({\n parameter,\n value,\n message,\n }: {\n parameter: string;\n value: unknown;\n message: string;\n }) {\n super({\n name,\n message: `Invalid argument for parameter ${parameter}: ${message}`,\n });\n\n this.parameter = parameter;\n this.value = value;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\nimport type { FinishReason } from '../types/language-model';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { LanguageModelUsage } from '../types/usage';\n\nconst name = 'AI_NoObjectGeneratedError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\nThrown when no object could be generated. This can have several causes:\n\n- The model failed to generate a response.\n- The model generated a response that could not be parsed.\n- The model generated a response that could not be validated against the schema.\n\nThe error contains the following properties:\n\n- `text`: The text that was generated by the model. This can be the raw text or the tool call text, depending on the model.\n */\nexport class NoObjectGeneratedError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n The text that was generated by the model. This can be the raw text or the tool call text, depending on the model.\n */\n readonly text: string | undefined;\n\n /**\n The response metadata.\n */\n readonly response: LanguageModelResponseMetadata | undefined;\n\n /**\n The usage of the model.\n */\n readonly usage: LanguageModelUsage | undefined;\n\n /**\n Reason why the model finished generating a response.\n */\n readonly finishReason: FinishReason | undefined;\n\n constructor({\n message = 'No object generated.',\n cause,\n text,\n response,\n usage,\n finishReason,\n }: {\n message?: string;\n cause?: Error;\n text?: string;\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n }) {\n super({ name, message, cause });\n\n this.text = text;\n this.response = response;\n this.usage = usage;\n this.finishReason = finishReason;\n }\n\n static isInstance(error: unknown): error is NoObjectGeneratedError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\n/**\nError that is thrown when a model with an unsupported version is used.\n */\nexport class UnsupportedModelVersionError extends AISDKError {\n readonly version: string;\n readonly provider: string;\n readonly modelId: string;\n\n constructor(options: { version: string; provider: string; modelId: string }) {\n super({\n name: 'AI_UnsupportedModelVersionError',\n message:\n `Unsupported model version ${options.version} for provider \"${options.provider}\" and model \"${options.modelId}\". ` +\n `AI SDK 5 only supports models that implement specification version \"v2\".`,\n });\n\n this.version = options.version;\n this.provider = options.provider;\n this.modelId = options.modelId;\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_RetryError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport type RetryErrorReason =\n | 'maxRetriesExceeded'\n | 'errorNotRetryable'\n | 'abort';\n\nexport class RetryError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n // note: property order determines debugging output\n readonly reason: RetryErrorReason;\n readonly lastError: unknown;\n readonly errors: Array;\n\n constructor({\n message,\n reason,\n errors,\n }: {\n message: string;\n reason: RetryErrorReason;\n errors: Array;\n }) {\n super({ name, message });\n\n this.reason = reason;\n this.errors = errors;\n\n // separate our last error to make debugging via log easier:\n this.lastError = errors[errors.length - 1];\n }\n\n static isInstance(error: unknown): error is RetryError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { gateway } from '@ai-sdk/gateway';\nimport type {\n EmbeddingModelV2,\n ImageModelV2,\n LanguageModelV2,\n ProviderV2,\n} from '@ai-sdk/provider';\nimport { UnsupportedModelVersionError } from '../error';\nimport type { EmbeddingModel } from '../types/embedding-model';\nimport type { LanguageModel } from '../types/language-model';\nimport type { ImageModel } from '../types/image-model';\n\nexport function resolveLanguageModel(model: LanguageModel): LanguageModelV2 {\n if (typeof model !== 'string') {\n if (model.specificationVersion !== 'v2') {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId,\n });\n }\n\n return model;\n }\n\n return getGlobalProvider().languageModel(model);\n}\n\nexport function resolveEmbeddingModel(\n model: EmbeddingModel,\n): EmbeddingModelV2 {\n if (typeof model !== 'string') {\n if (model.specificationVersion !== 'v2') {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId,\n });\n }\n\n return model;\n }\n\n // TODO AI SDK 6: figure out how to cleanly support different generic types\n return getGlobalProvider().textEmbeddingModel(\n model,\n ) as EmbeddingModelV2;\n}\n\nexport function resolveImageModel(model: ImageModel): ImageModelV2 {\n if (typeof model !== 'string') {\n if (model.specificationVersion !== 'v2') {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId,\n });\n }\n\n return model;\n }\n\n return getGlobalProvider().imageModel(model);\n}\n\nfunction getGlobalProvider(): ProviderV2 {\n return globalThis.AI_SDK_DEFAULT_PROVIDER ?? gateway;\n}\n","declare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import { type LanguageModelV2DataContent, AISDKError } from '@ai-sdk/provider';\nimport {\n type DataContent,\n convertBase64ToUint8Array,\n convertUint8ArrayToBase64,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { InvalidDataContentError } from './invalid-data-content-error';\nimport { splitDataUrl } from './split-data-url';\n\n/**\n@internal\n */\nexport const dataContentSchema: z.ZodType = z.union([\n z.string(),\n z.instanceof(Uint8Array),\n z.instanceof(ArrayBuffer),\n z.custom(\n // Buffer might not be available in some environments such as CloudFlare:\n (value: unknown): value is Buffer =>\n globalThis.Buffer?.isBuffer(value) ?? false,\n { message: 'Must be a Buffer' },\n ),\n]);\n\nexport function convertToLanguageModelV2DataContent(\n content: DataContent | URL,\n): {\n data: LanguageModelV2DataContent;\n mediaType: string | undefined;\n} {\n // Buffer & Uint8Array:\n if (content instanceof Uint8Array) {\n return { data: content, mediaType: undefined };\n }\n\n // ArrayBuffer needs conversion to Uint8Array (lightweight):\n if (content instanceof ArrayBuffer) {\n return { data: new Uint8Array(content), mediaType: undefined };\n }\n\n // Attempt to create a URL from the data. If it fails, we can assume the data\n // is not a URL and likely some other sort of data.\n if (typeof content === 'string') {\n try {\n content = new URL(content);\n } catch (error) {\n // ignored\n }\n }\n\n // Extract data from data URL:\n if (content instanceof URL && content.protocol === 'data:') {\n const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(\n content.toString(),\n );\n\n if (dataUrlMediaType == null || base64Content == null) {\n throw new AISDKError({\n name: 'InvalidDataContentError',\n message: `Invalid data URL format in content ${content.toString()}`,\n });\n }\n\n return { data: base64Content, mediaType: dataUrlMediaType };\n }\n\n return { data: content, mediaType: undefined };\n}\n\n/**\nConverts data content to a base64-encoded string.\n\n@param content - Data content to convert.\n@returns Base64-encoded string.\n*/\nexport function convertDataContentToBase64String(content: DataContent): string {\n if (typeof content === 'string') {\n return content;\n }\n\n if (content instanceof ArrayBuffer) {\n return convertUint8ArrayToBase64(new Uint8Array(content));\n }\n\n return convertUint8ArrayToBase64(content);\n}\n\n/**\nConverts data content to a Uint8Array.\n\n@param content - Data content to convert.\n@returns Uint8Array.\n */\nexport function convertDataContentToUint8Array(\n content: DataContent,\n): Uint8Array {\n if (content instanceof Uint8Array) {\n return content;\n }\n\n if (typeof content === 'string') {\n try {\n return convertBase64ToUint8Array(content);\n } catch (error) {\n throw new InvalidDataContentError({\n message:\n 'Invalid data content. Content string is not a base64-encoded media.',\n content,\n cause: error,\n });\n }\n }\n\n if (content instanceof ArrayBuffer) {\n return new Uint8Array(content);\n }\n\n throw new InvalidDataContentError({ content });\n}\n\n/**\n * Converts a Uint8Array to a string of text.\n *\n * @param uint8Array - The Uint8Array to convert.\n * @returns The converted string.\n */\nexport function convertUint8ArrayToText(uint8Array: Uint8Array): string {\n try {\n return new TextDecoder().decode(uint8Array);\n } catch (error) {\n throw new Error('Error decoding Uint8Array to text');\n }\n}\n","import type { JSONValue as OriginalJSONValue } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nexport const jsonValueSchema: z.ZodType = z.lazy(() =>\n z.union([\n z.null(),\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), jsonValueSchema),\n z.array(jsonValueSchema),\n ]),\n);\n\nexport type JSONValue = OriginalJSONValue;\n","import type { SharedV2ProviderMetadata } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\nimport { jsonValueSchema } from './json-value';\n\n/**\nAdditional provider-specific metadata that is returned from the provider.\n\nThis is needed to enable provider-specific functionality that can be\nfully encapsulated in the provider.\n */\nexport type ProviderMetadata = SharedV2ProviderMetadata;\n\nexport const providerMetadataSchema: z.ZodType = z.record(\n z.string(),\n z.record(z.string(), jsonValueSchema),\n);\n","import type { LanguageModelV2ToolResultOutput } from '@ai-sdk/provider';\nimport type {\n FilePart,\n ImagePart,\n ProviderOptions,\n ReasoningPart,\n TextPart,\n ToolResultPart,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { jsonValueSchema } from '../types/json-value';\nimport { providerMetadataSchema } from '../types/provider-metadata';\nimport { dataContentSchema } from './data-content';\n\n/**\n@internal\n */\nexport const textPartSchema: z.ZodType = z.object({\n type: z.literal('text'),\n text: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n@internal\n */\nexport const imagePartSchema: z.ZodType = z.object({\n type: z.literal('image'),\n image: z.union([dataContentSchema, z.instanceof(URL)]),\n mediaType: z.string().optional(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n@internal\n */\nexport const filePartSchema: z.ZodType = z.object({\n type: z.literal('file'),\n data: z.union([dataContentSchema, z.instanceof(URL)]),\n filename: z.string().optional(),\n mediaType: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n@internal\n */\nexport const reasoningPartSchema: z.ZodType = z.object({\n type: z.literal('reasoning'),\n text: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\nTool call content part of a prompt. It contains a tool call (usually generated by the AI model).\n */\nexport interface ToolCallPart {\n type: 'tool-call';\n\n /**\nID of the tool call. This ID is used to match the tool call with the tool result.\n */\n toolCallId: string;\n\n /**\nName of the tool that is being called.\n */\n toolName: string;\n\n /**\nArguments of the tool call. This is a JSON-serializable object that matches the tool's input schema.\n */\n input: unknown;\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n}\n\n/**\n@internal\n */\nexport const toolCallPartSchema: z.ZodType = z.object({\n type: z.literal('tool-call'),\n toolCallId: z.string(),\n toolName: z.string(),\n input: z.unknown(),\n providerOptions: providerMetadataSchema.optional(),\n providerExecuted: z.boolean().optional(),\n}) as z.ZodType; // necessary bc input is optional on Zod type\n\n/**\n@internal\n */\nexport const outputSchema: z.ZodType =\n z.discriminatedUnion('type', [\n z.object({\n type: z.literal('text'),\n value: z.string(),\n }),\n z.object({\n type: z.literal('json'),\n value: jsonValueSchema,\n }),\n z.object({\n type: z.literal('error-text'),\n value: z.string(),\n }),\n z.object({\n type: z.literal('error-json'),\n value: jsonValueSchema,\n }),\n z.object({\n type: z.literal('content'),\n value: z.array(\n z.union([\n z.object({\n type: z.literal('text'),\n text: z.string(),\n }),\n z.object({\n type: z.literal('media'),\n data: z.string(),\n mediaType: z.string(),\n }),\n ]),\n ),\n }),\n ]);\n\n/**\n@internal\n */\nexport const toolResultPartSchema: z.ZodType = z.object({\n type: z.literal('tool-result'),\n toolCallId: z.string(),\n toolName: z.string(),\n output: outputSchema,\n providerOptions: providerMetadataSchema.optional(),\n}) as z.ZodType; // necessary bc result is optional on Zod type\n","import type {\n AssistantModelMessage,\n ModelMessage,\n SystemModelMessage,\n ToolModelMessage,\n UserModelMessage,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { providerMetadataSchema } from '../types/provider-metadata';\nimport {\n filePartSchema,\n imagePartSchema,\n reasoningPartSchema,\n textPartSchema,\n toolCallPartSchema,\n toolResultPartSchema,\n} from './content-part';\n\n/**\n@deprecated Use `SystemModelMessage` instead.\n */\n// TODO remove in AI SDK 6\nexport type CoreSystemMessage = SystemModelMessage;\n\nexport const systemModelMessageSchema: z.ZodType = z.object(\n {\n role: z.literal('system'),\n content: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n },\n);\n\n/**\n@deprecated Use `systemModelMessageSchema` instead.\n */\n// TODO remove in AI SDK 6\nexport const coreSystemMessageSchema = systemModelMessageSchema;\n\n/**\n@deprecated Use `UserModelMessage` instead.\n */\n// TODO remove in AI SDK 6\nexport type CoreUserMessage = UserModelMessage;\n\nexport const userModelMessageSchema: z.ZodType = z.object({\n role: z.literal('user'),\n content: z.union([\n z.string(),\n z.array(z.union([textPartSchema, imagePartSchema, filePartSchema])),\n ]),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n@deprecated Use `userModelMessageSchema` instead.\n */\n// TODO remove in AI SDK 6\nexport const coreUserMessageSchema = userModelMessageSchema;\n\n/**\n@deprecated Use `AssistantModelMessage` instead.\n */\n// TODO remove in AI SDK 6\nexport type CoreAssistantMessage = AssistantModelMessage;\n\nexport const assistantModelMessageSchema: z.ZodType =\n z.object({\n role: z.literal('assistant'),\n content: z.union([\n z.string(),\n z.array(\n z.union([\n textPartSchema,\n filePartSchema,\n reasoningPartSchema,\n toolCallPartSchema,\n toolResultPartSchema,\n ]),\n ),\n ]),\n providerOptions: providerMetadataSchema.optional(),\n });\n\n/**\n@deprecated Use `assistantModelMessageSchema` instead.\n */\n// TODO remove in AI SDK 6\nexport const coreAssistantMessageSchema = assistantModelMessageSchema;\n\n/**\n@deprecated Use `ToolModelMessage` instead.\n */\n// TODO remove in AI SDK 6\nexport type CoreToolMessage = ToolModelMessage;\n\nexport const toolModelMessageSchema: z.ZodType = z.object({\n role: z.literal('tool'),\n content: z.array(toolResultPartSchema),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n@deprecated Use `toolModelMessageSchema` instead.\n */\n// TODO remove in AI SDK 6\nexport const coreToolMessageSchema = toolModelMessageSchema;\n\n/**\n@deprecated Use `ModelMessage` instead.\n */\n// TODO remove in AI SDK 6\nexport type CoreMessage = ModelMessage;\n\nexport const modelMessageSchema: z.ZodType = z.union([\n systemModelMessageSchema,\n userModelMessageSchema,\n assistantModelMessageSchema,\n toolModelMessageSchema,\n]);\n\n/**\n@deprecated Use `modelMessageSchema` instead.\n */\n// TODO remove in AI SDK 6\nexport const coreMessageSchema: z.ZodType = modelMessageSchema;\n","import type { TelemetrySettings } from './telemetry-settings';\n\nexport function assembleOperationName({\n operationId,\n telemetry,\n}: {\n operationId: string;\n telemetry?: TelemetrySettings;\n}) {\n return {\n // standardized operation and resource name:\n 'operation.name': `${operationId}${\n telemetry?.functionId != null ? ` ${telemetry.functionId}` : ''\n }`,\n 'resource.name': telemetry?.functionId,\n\n // detailed, AI SDK specific data:\n 'ai.operationId': operationId,\n 'ai.telemetry.functionId': telemetry?.functionId,\n };\n}\n","import type { Attributes } from '@opentelemetry/api';\nimport type { CallSettings } from '../prompt/call-settings';\nimport type { TelemetrySettings } from './telemetry-settings';\n\nexport function getBaseTelemetryAttributes({\n model,\n settings,\n telemetry,\n headers,\n}: {\n model: { modelId: string; provider: string };\n settings: Omit;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n}): Attributes {\n return {\n 'ai.model.provider': model.provider,\n 'ai.model.id': model.modelId,\n\n // settings:\n ...Object.entries(settings).reduce((attributes, [key, value]) => {\n attributes[`ai.settings.${key}`] = value;\n return attributes;\n }, {} as Attributes),\n\n // add metadata as attributes:\n ...Object.entries(telemetry?.metadata ?? {}).reduce(\n (attributes, [key, value]) => {\n attributes[`ai.telemetry.metadata.${key}`] = value;\n return attributes;\n },\n {} as Attributes,\n ),\n\n // request headers\n ...Object.entries(headers ?? {}).reduce((attributes, [key, value]) => {\n if (value !== undefined) {\n attributes[`ai.request.headers.${key}`] = value;\n }\n return attributes;\n }, {} as Attributes),\n };\n}\n","import type { Span, SpanContext, Tracer } from '@opentelemetry/api';\n\n/**\n * Tracer implementation that does nothing (null object).\n */\nexport const noopTracer: Tracer = {\n startSpan(): Span {\n return noopSpan;\n },\n\n startActiveSpan unknown>(\n name: unknown,\n arg1: unknown,\n arg2?: unknown,\n arg3?: F,\n ): ReturnType {\n if (typeof arg1 === 'function') {\n return arg1(noopSpan);\n }\n if (typeof arg2 === 'function') {\n return arg2(noopSpan);\n }\n if (typeof arg3 === 'function') {\n return arg3(noopSpan);\n }\n },\n};\n\nconst noopSpan: Span = {\n spanContext() {\n return noopSpanContext;\n },\n setAttribute() {\n return this;\n },\n setAttributes() {\n return this;\n },\n addEvent() {\n return this;\n },\n addLink() {\n return this;\n },\n addLinks() {\n return this;\n },\n setStatus() {\n return this;\n },\n updateName() {\n return this;\n },\n end() {\n return this;\n },\n isRecording() {\n return false;\n },\n recordException() {\n return this;\n },\n};\n\nconst noopSpanContext: SpanContext = {\n traceId: '',\n spanId: '',\n traceFlags: 0,\n};\n","import { type Tracer, trace } from '@opentelemetry/api';\nimport { noopTracer } from './noop-tracer';\n\nexport function getTracer({\n isEnabled = false,\n tracer,\n}: {\n isEnabled?: boolean;\n tracer?: Tracer;\n} = {}): Tracer {\n if (!isEnabled) {\n return noopTracer;\n }\n\n if (tracer) {\n return tracer;\n }\n\n return trace.getTracer('ai');\n}\n","import {\n type Attributes,\n type Span,\n type Tracer,\n SpanStatusCode,\n} from '@opentelemetry/api';\n\nexport function recordSpan({\n name,\n tracer,\n attributes,\n fn,\n endWhenDone = true,\n}: {\n name: string;\n tracer: Tracer;\n attributes: Attributes;\n fn: (span: Span) => Promise;\n endWhenDone?: boolean;\n}) {\n return tracer.startActiveSpan(name, { attributes }, async span => {\n try {\n const result = await fn(span);\n\n if (endWhenDone) {\n span.end();\n }\n\n return result;\n } catch (error) {\n try {\n recordErrorOnSpan(span, error);\n } finally {\n // always stop the span when there is an error:\n span.end();\n }\n\n throw error;\n }\n });\n}\n\n/**\n * Record an error on a span. If the error is an instance of Error, an exception event will be recorded on the span, otherwise\n * the span will be set to an error status.\n *\n * @param span - The span to record the error on.\n * @param error - The error to record on the span.\n */\nexport function recordErrorOnSpan(span: Span, error: unknown) {\n if (error instanceof Error) {\n span.recordException({\n name: error.name,\n message: error.message,\n stack: error.stack,\n });\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n } else {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n}\n","import type { Attributes, AttributeValue } from '@opentelemetry/api';\nimport type { TelemetrySettings } from './telemetry-settings';\n\nexport function selectTelemetryAttributes({\n telemetry,\n attributes,\n}: {\n telemetry?: TelemetrySettings;\n attributes: {\n [attributeKey: string]:\n | AttributeValue\n | { input: () => AttributeValue | undefined }\n | { output: () => AttributeValue | undefined }\n | undefined;\n };\n}): Attributes {\n // when telemetry is disabled, return an empty object to avoid serialization overhead:\n if (telemetry?.isEnabled !== true) {\n return {};\n }\n\n return Object.entries(attributes).reduce((attributes, [key, value]) => {\n if (value == null) {\n return attributes;\n }\n\n // input value, check if it should be recorded:\n if (\n typeof value === 'object' &&\n 'input' in value &&\n typeof value.input === 'function'\n ) {\n // default to true:\n if (telemetry?.recordInputs === false) {\n return attributes;\n }\n\n const result = value.input();\n\n return result == null ? attributes : { ...attributes, [key]: result };\n }\n\n // output value, check if it should be recorded:\n if (\n typeof value === 'object' &&\n 'output' in value &&\n typeof value.output === 'function'\n ) {\n // default to true:\n if (telemetry?.recordOutputs === false) {\n return attributes;\n }\n\n const result = value.output();\n\n return result == null ? attributes : { ...attributes, [key]: result };\n }\n\n // value is an attribute value already:\n return { ...attributes, [key]: value };\n }, {});\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { delay, getErrorMessage, isAbortError } from '@ai-sdk/provider-utils';\nimport { RetryError } from './retry-error';\n\nexport type RetryFunction = (\n fn: () => PromiseLike,\n) => PromiseLike;\n\nfunction getRetryDelayInMs({\n error,\n exponentialBackoffDelay,\n}: {\n error: APICallError;\n exponentialBackoffDelay: number;\n}): number {\n const headers = error.responseHeaders;\n\n if (!headers) return exponentialBackoffDelay;\n\n let ms: number | undefined;\n\n // retry-ms is more precise than retry-after and used by e.g. OpenAI\n const retryAfterMs = headers['retry-after-ms'];\n if (retryAfterMs) {\n const timeoutMs = parseFloat(retryAfterMs);\n if (!Number.isNaN(timeoutMs)) {\n ms = timeoutMs;\n }\n }\n\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfter = headers['retry-after'];\n if (retryAfter && ms === undefined) {\n const timeoutSeconds = parseFloat(retryAfter);\n if (!Number.isNaN(timeoutSeconds)) {\n ms = timeoutSeconds * 1000;\n } else {\n ms = Date.parse(retryAfter) - Date.now();\n }\n }\n\n // check that the delay is reasonable:\n if (\n ms != null &&\n !Number.isNaN(ms) &&\n 0 <= ms &&\n (ms < 60 * 1000 || ms < exponentialBackoffDelay)\n ) {\n return ms;\n }\n\n return exponentialBackoffDelay;\n}\n\n/**\nThe `retryWithExponentialBackoffRespectingRetryHeaders` strategy retries a failed API call with an exponential backoff,\nwhile respecting rate limit headers (retry-after-ms and retry-after) if they are provided and reasonable (0-60 seconds).\nYou can configure the maximum number of retries, the initial delay, and the backoff factor.\n */\nexport const retryWithExponentialBackoffRespectingRetryHeaders =\n ({\n maxRetries = 2,\n initialDelayInMs = 2000,\n backoffFactor = 2,\n abortSignal,\n }: {\n maxRetries?: number;\n initialDelayInMs?: number;\n backoffFactor?: number;\n abortSignal?: AbortSignal;\n } = {}): RetryFunction =>\n async (f: () => PromiseLike) =>\n _retryWithExponentialBackoff(f, {\n maxRetries,\n delayInMs: initialDelayInMs,\n backoffFactor,\n abortSignal,\n });\n\nasync function _retryWithExponentialBackoff(\n f: () => PromiseLike,\n {\n maxRetries,\n delayInMs,\n backoffFactor,\n abortSignal,\n }: {\n maxRetries: number;\n delayInMs: number;\n backoffFactor: number;\n abortSignal: AbortSignal | undefined;\n },\n errors: unknown[] = [],\n): Promise {\n try {\n return await f();\n } catch (error) {\n if (isAbortError(error)) {\n throw error; // don't retry when the request was aborted\n }\n\n if (maxRetries === 0) {\n throw error; // don't wrap the error when retries are disabled\n }\n\n const errorMessage = getErrorMessage(error);\n const newErrors = [...errors, error];\n const tryNumber = newErrors.length;\n\n if (tryNumber > maxRetries) {\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts. Last error: ${errorMessage}`,\n reason: 'maxRetriesExceeded',\n errors: newErrors,\n });\n }\n\n if (\n error instanceof Error &&\n APICallError.isInstance(error) &&\n error.isRetryable === true &&\n tryNumber <= maxRetries\n ) {\n await delay(\n getRetryDelayInMs({\n error,\n exponentialBackoffDelay: delayInMs,\n }),\n { abortSignal },\n );\n\n return _retryWithExponentialBackoff(\n f,\n {\n maxRetries,\n delayInMs: backoffFactor * delayInMs,\n backoffFactor,\n abortSignal,\n },\n newErrors,\n );\n }\n\n if (tryNumber === 1) {\n throw error; // don't wrap the error when a non-retryable error occurs on the first try\n }\n\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts with non-retryable error: '${errorMessage}'`,\n reason: 'errorNotRetryable',\n errors: newErrors,\n });\n }\n}\n","import { InvalidArgumentError } from '../error/invalid-argument-error';\nimport {\n type RetryFunction,\n retryWithExponentialBackoffRespectingRetryHeaders,\n} from '../util/retry-with-exponential-backoff';\n\n/**\n * Validate and prepare retries.\n */\nexport function prepareRetries({\n maxRetries,\n abortSignal,\n}: {\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n}): {\n maxRetries: number;\n retry: RetryFunction;\n} {\n if (maxRetries != null) {\n if (!Number.isInteger(maxRetries)) {\n throw new InvalidArgumentError({\n parameter: 'maxRetries',\n value: maxRetries,\n message: 'maxRetries must be an integer',\n });\n }\n\n if (maxRetries < 0) {\n throw new InvalidArgumentError({\n parameter: 'maxRetries',\n value: maxRetries,\n message: 'maxRetries must be >= 0',\n });\n }\n }\n\n const maxRetriesResult = maxRetries ?? 2;\n\n return {\n maxRetries: maxRetriesResult,\n retry: retryWithExponentialBackoffRespectingRetryHeaders({\n maxRetries: maxRetriesResult,\n abortSignal,\n }),\n };\n}\n","import type {\n LanguageModelV2,\n LanguageModelV2Content,\n LanguageModelV2ToolCall,\n} from '@ai-sdk/provider';\nimport {\n type IdGenerator,\n type ProviderOptions,\n createIdGenerator,\n executeTool,\n getErrorMessage,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport type { Tracer } from '@opentelemetry/api';\nimport { NoOutputSpecifiedError } from '../error/no-output-specified-error';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport type { ModelMessage } from '../prompt';\nimport type { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareToolsAndToolChoice } from '../prompt/prepare-tools-and-tool-choice';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordErrorOnSpan, recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport type { LanguageModel, ToolChoice } from '../types';\nimport { type LanguageModelUsage, addLanguageModelUsage } from '../types/usage';\nimport { asArray } from '../util/as-array';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { prepareRetries } from '../util/prepare-retries';\nimport type { ContentPart } from './content-part';\nimport { extractTextContent } from './extract-text-content';\nimport type { GenerateTextResult } from './generate-text-result';\nimport { DefaultGeneratedFile } from './generated-file';\nimport type { Output } from './output';\nimport { parseToolCall } from './parse-tool-call';\nimport type { PrepareStepFunction } from './prepare-step';\nimport type { ResponseMessage } from './response-message';\nimport { type StepResult, DefaultStepResult } from './step-result';\nimport {\n type StopCondition,\n isStopConditionMet,\n stepCountIs,\n} from './stop-condition';\nimport { toResponseMessages } from './to-response-messages';\nimport type { TypedToolCall } from './tool-call';\nimport type { ToolCallRepairFunction } from './tool-call-repair-function';\nimport type { TypedToolError } from './tool-error';\nimport type { ToolOutput } from './tool-output';\nimport type { TypedToolResult } from './tool-result';\nimport type { ToolSet } from './tool-set';\nimport { VERSION } from '../version';\n\nconst originalGenerateId = createIdGenerator({\n prefix: 'aitxt',\n size: 24,\n});\n\n/**\nCallback that is set using the `onStepFinish` option.\n\n@param stepResult - The result of the step.\n */\nexport type GenerateTextOnStepFinishCallback = (\n stepResult: StepResult,\n) => Promise | void;\n\n/**\nGenerate a text and call tools for a given prompt using a language model.\n\nThis function does not stream the output. If you want to stream the output, use `streamText` instead.\n\n@param model - The language model to use.\n\n@param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n@param toolChoice - The tool choice strategy. Default: 'auto'.\n\n@param system - A system message that will be part of the prompt.\n@param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n@param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n\n@param maxOutputTokens - Maximum number of tokens to generate.\n@param temperature - Temperature setting.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topP - Nucleus sampling.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topK - Only sample from the top K options for each subsequent token.\nUsed to remove \"long tail\" low probability responses.\nRecommended for advanced use cases only. You usually only need to use temperature.\n@param presencePenalty - Presence penalty setting.\nIt affects the likelihood of the model to repeat information that is already in the prompt.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param frequencyPenalty - Frequency penalty setting.\nIt affects the likelihood of the model to repeatedly use the same words or phrases.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param stopSequences - Stop sequences.\nIf set, the model will stop generating text when one of the stop sequences is generated.\n@param seed - The seed (integer) to use for random sampling.\nIf set and supported by the model, calls will generate deterministic results.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@param experimental_generateMessageId - Generate a unique ID for each message.\n\n@param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.\n\n@returns\nA result object that contains the generated text, the results of the tool calls, and additional information.\n */\nexport async function generateText<\n TOOLS extends ToolSet,\n OUTPUT = never,\n OUTPUT_PARTIAL = never,\n>({\n model: modelArg,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n stopWhen = stepCountIs(1),\n experimental_output: output,\n experimental_telemetry: telemetry,\n providerOptions,\n experimental_activeTools,\n activeTools = experimental_activeTools,\n experimental_prepareStep,\n prepareStep = experimental_prepareStep,\n experimental_repairToolCall: repairToolCall,\n experimental_download: download,\n experimental_context,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n } = {},\n onStepFinish,\n ...settings\n}: CallSettings &\n Prompt & {\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe tools that the model can call. The model needs to support calling tools.\n*/\n tools?: TOOLS;\n\n /**\nThe tool choice strategy. Default: 'auto'.\n */\n toolChoice?: ToolChoice>;\n\n /**\nCondition for stopping the generation when there are tool results in the last step.\nWhen the condition is an array, any of the conditions can be met to stop the generation.\n\n@default stepCountIs(1)\n */\n stopWhen?:\n | StopCondition>\n | Array>>;\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * @deprecated Use `activeTools` instead.\n */\n experimental_activeTools?: Array>;\n\n /**\nLimits the tools that are available for the model to call without\nchanging the tool call and result types in the result.\n */\n activeTools?: Array>;\n\n /**\nOptional specification for parsing structured outputs from the LLM response.\n */\n experimental_output?: Output;\n\n /**\nCustom download function to use for URLs.\n\nBy default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\n * @deprecated Use `prepareStep` instead.\n */\n experimental_prepareStep?: PrepareStepFunction>;\n\n /**\nOptional function that you can use to provide different settings for a step.\n */\n prepareStep?: PrepareStepFunction>;\n\n /**\nA function that attempts to repair a tool call that failed to parse.\n */\n experimental_repairToolCall?: ToolCallRepairFunction>;\n\n /**\n Callback that is called when each step (LLM call) is finished, including intermediate steps.\n */\n onStepFinish?: GenerateTextOnStepFinishCallback>;\n\n /**\n * Context that is passed into tool execution.\n *\n * Experimental (can break in patch releases).\n *\n * @default undefined\n */\n experimental_context?: unknown;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: IdGenerator;\n currentDate?: () => Date;\n };\n }): Promise> {\n const model = resolveLanguageModel(modelArg);\n const stopConditions = asArray(stopWhen);\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const callSettings = prepareCallSettings(settings);\n\n const headersWithUserAgent = withUserAgentSuffix(\n headers ?? {},\n `ai/${VERSION}`,\n );\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { ...callSettings, maxRetries },\n });\n\n const initialPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n const tracer = getTracer(telemetry);\n\n try {\n return await recordSpan({\n name: 'ai.generateText',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateText',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': model.provider,\n 'ai.model.id': model.modelId,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n },\n }),\n tracer,\n fn: async span => {\n const callSettings = prepareCallSettings(settings);\n\n let currentModelResponse: Awaited<\n ReturnType\n > & { response: { id: string; timestamp: Date; modelId: string } };\n let clientToolCalls: Array> = [];\n let clientToolOutputs: Array> = [];\n const responseMessages: Array = [];\n const steps: GenerateTextResult['steps'] = [];\n\n do {\n const stepInputMessages = [\n ...initialPrompt.messages,\n ...responseMessages,\n ];\n\n const prepareStepResult = await prepareStep?.({\n model,\n steps,\n stepNumber: steps.length,\n messages: stepInputMessages,\n });\n\n const stepModel = resolveLanguageModel(\n prepareStepResult?.model ?? model,\n );\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n system: prepareStepResult?.system ?? initialPrompt.system,\n messages: prepareStepResult?.messages ?? stepInputMessages,\n },\n supportedUrls: await stepModel.supportedUrls,\n download,\n });\n\n const { toolChoice: stepToolChoice, tools: stepTools } =\n prepareToolsAndToolChoice({\n tools,\n toolChoice: prepareStepResult?.toolChoice ?? toolChoice,\n activeTools: prepareStepResult?.activeTools ?? activeTools,\n });\n\n currentModelResponse = await retry(() =>\n recordSpan({\n name: 'ai.generateText.doGenerate',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateText.doGenerate',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': stepModel.provider,\n 'ai.model.id': stepModel.modelId,\n // prompt:\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n 'ai.prompt.tools': {\n // convert the language model level tools:\n input: () => stepTools?.map(tool => JSON.stringify(tool)),\n },\n 'ai.prompt.toolChoice': {\n input: () =>\n stepToolChoice != null\n ? JSON.stringify(stepToolChoice)\n : undefined,\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': stepModel.provider,\n 'gen_ai.request.model': stepModel.modelId,\n 'gen_ai.request.frequency_penalty': settings.frequencyPenalty,\n 'gen_ai.request.max_tokens': settings.maxOutputTokens,\n 'gen_ai.request.presence_penalty': settings.presencePenalty,\n 'gen_ai.request.stop_sequences': settings.stopSequences,\n 'gen_ai.request.temperature':\n settings.temperature ?? undefined,\n 'gen_ai.request.top_k': settings.topK,\n 'gen_ai.request.top_p': settings.topP,\n },\n }),\n tracer,\n fn: async span => {\n const result = await stepModel.doGenerate({\n ...callSettings,\n tools: stepTools,\n toolChoice: stepToolChoice,\n responseFormat: output?.responseFormat,\n prompt: promptMessages,\n providerOptions,\n abortSignal,\n headers: headersWithUserAgent,\n });\n\n // Fill in default values:\n const responseData = {\n id: result.response?.id ?? generateId(),\n timestamp: result.response?.timestamp ?? currentDate(),\n modelId: result.response?.modelId ?? stepModel.modelId,\n headers: result.response?.headers,\n body: result.response?.body,\n };\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': result.finishReason,\n 'ai.response.text': {\n output: () => extractTextContent(result.content),\n },\n 'ai.response.toolCalls': {\n output: () => {\n const toolCalls = asToolCalls(result.content);\n return toolCalls == null\n ? undefined\n : JSON.stringify(toolCalls);\n },\n },\n 'ai.response.id': responseData.id,\n 'ai.response.model': responseData.modelId,\n 'ai.response.timestamp':\n responseData.timestamp.toISOString(),\n 'ai.response.providerMetadata': JSON.stringify(\n result.providerMetadata,\n ),\n\n // TODO rename telemetry attributes to inputTokens and outputTokens\n 'ai.usage.promptTokens': result.usage.inputTokens,\n 'ai.usage.completionTokens': result.usage.outputTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [result.finishReason],\n 'gen_ai.response.id': responseData.id,\n 'gen_ai.response.model': responseData.modelId,\n 'gen_ai.usage.input_tokens': result.usage.inputTokens,\n 'gen_ai.usage.output_tokens': result.usage.outputTokens,\n },\n }),\n );\n\n return { ...result, response: responseData };\n },\n }),\n );\n\n // parse tool calls:\n const stepToolCalls: TypedToolCall[] = await Promise.all(\n currentModelResponse.content\n .filter(\n (part): part is LanguageModelV2ToolCall =>\n part.type === 'tool-call',\n )\n .map(toolCall =>\n parseToolCall({\n toolCall,\n tools,\n repairToolCall,\n system,\n messages: stepInputMessages,\n }),\n ),\n );\n\n // notify the tools that the tool calls are available:\n for (const toolCall of stepToolCalls) {\n if (toolCall.invalid) {\n continue; // ignore invalid tool calls\n }\n\n const tool = tools![toolCall.toolName];\n if (tool?.onInputAvailable != null) {\n await tool.onInputAvailable({\n input: toolCall.input,\n toolCallId: toolCall.toolCallId,\n messages: stepInputMessages,\n abortSignal,\n experimental_context,\n });\n }\n }\n\n // insert error tool outputs for invalid tool calls:\n // TODO AI SDK 6: invalid inputs should not require output parts\n const invalidToolCalls = stepToolCalls.filter(\n toolCall => toolCall.invalid && toolCall.dynamic,\n );\n\n clientToolOutputs = [];\n\n for (const toolCall of invalidToolCalls) {\n clientToolOutputs.push({\n type: 'tool-error',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n error: getErrorMessage(toolCall.error!),\n dynamic: true,\n });\n }\n\n // execute client tool calls:\n clientToolCalls = stepToolCalls.filter(\n toolCall => !toolCall.providerExecuted,\n );\n\n if (tools != null) {\n clientToolOutputs.push(\n ...(await executeTools({\n toolCalls: clientToolCalls.filter(\n toolCall => !toolCall.invalid,\n ),\n tools,\n tracer,\n telemetry,\n messages: stepInputMessages,\n abortSignal,\n experimental_context,\n })),\n );\n }\n\n // content:\n const stepContent = asContent({\n content: currentModelResponse.content,\n toolCalls: stepToolCalls,\n toolOutputs: clientToolOutputs,\n });\n\n // append to messages for potential next step:\n responseMessages.push(\n ...toResponseMessages({\n content: stepContent,\n tools,\n }),\n );\n\n // Add step information (after response messages are updated):\n const currentStepResult: StepResult = new DefaultStepResult({\n content: stepContent,\n finishReason: currentModelResponse.finishReason,\n usage: currentModelResponse.usage,\n warnings: currentModelResponse.warnings,\n providerMetadata: currentModelResponse.providerMetadata,\n request: currentModelResponse.request ?? {},\n response: {\n ...currentModelResponse.response,\n // deep clone msgs to avoid mutating past messages in multi-step:\n messages: structuredClone(responseMessages),\n },\n });\n\n logWarnings(currentModelResponse.warnings ?? []);\n\n steps.push(currentStepResult);\n await onStepFinish?.(currentStepResult);\n } while (\n // there are tool calls:\n clientToolCalls.length > 0 &&\n // all current tool calls have outputs (incl. execution errors):\n clientToolOutputs.length === clientToolCalls.length &&\n // continue until a stop condition is met:\n !(await isStopConditionMet({ stopConditions, steps }))\n );\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': currentModelResponse.finishReason,\n 'ai.response.text': {\n output: () => extractTextContent(currentModelResponse.content),\n },\n 'ai.response.toolCalls': {\n output: () => {\n const toolCalls = asToolCalls(currentModelResponse.content);\n return toolCalls == null\n ? undefined\n : JSON.stringify(toolCalls);\n },\n },\n 'ai.response.providerMetadata': JSON.stringify(\n currentModelResponse.providerMetadata,\n ),\n\n // TODO rename telemetry attributes to inputTokens and outputTokens\n 'ai.usage.promptTokens': currentModelResponse.usage.inputTokens,\n 'ai.usage.completionTokens':\n currentModelResponse.usage.outputTokens,\n },\n }),\n );\n\n const lastStep = steps[steps.length - 1];\n\n // parse output only if the last step was finished with \"stop\":\n let resolvedOutput;\n if (lastStep.finishReason === 'stop') {\n resolvedOutput = await output?.parseOutput(\n { text: lastStep.text },\n {\n response: lastStep.response,\n usage: lastStep.usage,\n finishReason: lastStep.finishReason,\n },\n );\n }\n\n return new DefaultGenerateTextResult({\n steps,\n resolvedOutput,\n });\n },\n });\n } catch (error) {\n throw wrapGatewayError(error);\n }\n}\n\nasync function executeTools({\n toolCalls,\n tools,\n tracer,\n telemetry,\n messages,\n abortSignal,\n experimental_context,\n}: {\n toolCalls: Array>;\n tools: TOOLS;\n tracer: Tracer;\n telemetry: TelemetrySettings | undefined;\n messages: ModelMessage[];\n abortSignal: AbortSignal | undefined;\n experimental_context: unknown;\n}): Promise>> {\n const toolOutputs = await Promise.all(\n toolCalls.map(async ({ toolCallId, toolName, input }) => {\n const tool = tools[toolName];\n\n if (tool?.execute == null) {\n return undefined;\n }\n\n return recordSpan({\n name: 'ai.toolCall',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.toolCall',\n telemetry,\n }),\n 'ai.toolCall.name': toolName,\n 'ai.toolCall.id': toolCallId,\n 'ai.toolCall.args': {\n output: () => JSON.stringify(input),\n },\n },\n }),\n tracer,\n fn: async span => {\n try {\n const stream = executeTool({\n execute: tool.execute!.bind(tool),\n input,\n options: {\n toolCallId,\n messages,\n abortSignal,\n experimental_context,\n },\n });\n\n let output: unknown;\n for await (const part of stream) {\n if (part.type === 'final') {\n output = part.output;\n }\n }\n try {\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.toolCall.result': {\n output: () => JSON.stringify(output),\n },\n },\n }),\n );\n } catch (ignored) {\n // JSON stringify might fail if the result is not serializable,\n // in which case we just ignore it. In the future we might want to\n // add an optional serialize method to the tool interface and warn\n // if the result is not serializable.\n }\n\n return {\n type: 'tool-result',\n toolCallId,\n toolName,\n input,\n output,\n dynamic: tool.type === 'dynamic',\n } as TypedToolResult;\n } catch (error) {\n recordErrorOnSpan(span, error);\n return {\n type: 'tool-error',\n toolCallId,\n toolName,\n input,\n error,\n dynamic: tool.type === 'dynamic',\n } as TypedToolError;\n }\n },\n });\n }),\n );\n\n return toolOutputs.filter(\n (output): output is NonNullable => output != null,\n );\n}\n\nclass DefaultGenerateTextResult<\n TOOLS extends ToolSet,\n OUTPUT,\n> implements GenerateTextResult {\n readonly steps: GenerateTextResult['steps'];\n\n private readonly resolvedOutput: OUTPUT;\n\n constructor(options: {\n steps: GenerateTextResult['steps'];\n resolvedOutput: OUTPUT;\n }) {\n this.steps = options.steps;\n this.resolvedOutput = options.resolvedOutput;\n }\n\n private get finalStep() {\n return this.steps[this.steps.length - 1];\n }\n\n get content() {\n return this.finalStep.content;\n }\n\n get text() {\n return this.finalStep.text;\n }\n\n get files() {\n return this.finalStep.files;\n }\n\n get reasoningText() {\n return this.finalStep.reasoningText;\n }\n\n get reasoning() {\n return this.finalStep.reasoning;\n }\n\n get toolCalls() {\n return this.finalStep.toolCalls;\n }\n\n get staticToolCalls() {\n return this.finalStep.staticToolCalls;\n }\n\n get dynamicToolCalls() {\n return this.finalStep.dynamicToolCalls;\n }\n\n get toolResults() {\n return this.finalStep.toolResults;\n }\n\n get staticToolResults() {\n return this.finalStep.staticToolResults;\n }\n\n get dynamicToolResults() {\n return this.finalStep.dynamicToolResults;\n }\n\n get sources() {\n return this.finalStep.sources;\n }\n\n get finishReason() {\n return this.finalStep.finishReason;\n }\n\n get warnings() {\n return this.finalStep.warnings;\n }\n\n get providerMetadata() {\n return this.finalStep.providerMetadata;\n }\n\n get response() {\n return this.finalStep.response;\n }\n\n get request() {\n return this.finalStep.request;\n }\n\n get usage() {\n return this.finalStep.usage;\n }\n\n get totalUsage() {\n return this.steps.reduce(\n (totalUsage, step) => {\n return addLanguageModelUsage(totalUsage, step.usage);\n },\n {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n reasoningTokens: undefined,\n cachedInputTokens: undefined,\n } as LanguageModelUsage,\n );\n }\n\n get experimental_output() {\n if (this.resolvedOutput == null) {\n throw new NoOutputSpecifiedError();\n }\n\n return this.resolvedOutput;\n }\n}\n\nfunction asToolCalls(content: Array) {\n const parts = content.filter(\n (part): part is LanguageModelV2ToolCall => part.type === 'tool-call',\n );\n\n if (parts.length === 0) {\n return undefined;\n }\n\n return parts.map(toolCall => ({\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n }));\n}\n\nfunction asContent({\n content,\n toolCalls,\n toolOutputs,\n}: {\n content: Array;\n toolCalls: Array>;\n toolOutputs: Array>;\n}): Array> {\n return [\n ...content.map(part => {\n switch (part.type) {\n case 'text':\n case 'reasoning':\n case 'source':\n return part;\n\n case 'file': {\n return {\n type: 'file' as const,\n file: new DefaultGeneratedFile(part),\n };\n }\n\n case 'tool-call': {\n return toolCalls.find(\n toolCall => toolCall.toolCallId === part.toolCallId,\n )!;\n }\n\n case 'tool-result': {\n const toolCall = toolCalls.find(\n toolCall => toolCall.toolCallId === part.toolCallId,\n )!;\n\n if (toolCall == null) {\n throw new Error(`Tool call ${part.toolCallId} not found.`);\n }\n\n if (part.isError) {\n return {\n type: 'tool-error' as const,\n toolCallId: part.toolCallId,\n toolName: part.toolName as keyof TOOLS & string,\n input: toolCall.input,\n error: part.result,\n providerExecuted: true,\n dynamic: toolCall.dynamic,\n } as TypedToolError;\n }\n\n return {\n type: 'tool-result' as const,\n toolCallId: part.toolCallId,\n toolName: part.toolName as keyof TOOLS & string,\n input: toolCall.input,\n output: part.result,\n providerExecuted: true,\n dynamic: toolCall.dynamic,\n } as TypedToolResult;\n }\n }\n }),\n ...toolOutputs,\n ];\n}\n","type State =\n | 'ROOT'\n | 'FINISH'\n | 'INSIDE_STRING'\n | 'INSIDE_STRING_ESCAPE'\n | 'INSIDE_LITERAL'\n | 'INSIDE_NUMBER'\n | 'INSIDE_OBJECT_START'\n | 'INSIDE_OBJECT_KEY'\n | 'INSIDE_OBJECT_AFTER_KEY'\n | 'INSIDE_OBJECT_BEFORE_VALUE'\n | 'INSIDE_OBJECT_AFTER_VALUE'\n | 'INSIDE_OBJECT_AFTER_COMMA'\n | 'INSIDE_ARRAY_START'\n | 'INSIDE_ARRAY_AFTER_VALUE'\n | 'INSIDE_ARRAY_AFTER_COMMA';\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = ['ROOT'];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_STRING');\n break;\n }\n\n case 'f':\n case 't':\n case 'n': {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_LITERAL');\n break;\n }\n\n case '-': {\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n\n case '{': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_OBJECT_START');\n break;\n }\n\n case '[': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_ARRAY_START');\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_COMMA');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case 'ROOT':\n processValueStart(char, i, 'FINISH');\n break;\n\n case 'INSIDE_OBJECT_START': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_COMMA': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_KEY': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_KEY': {\n switch (char) {\n case ':': {\n stack.pop();\n stack.push('INSIDE_OBJECT_BEFORE_VALUE');\n\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_BEFORE_VALUE': {\n processValueStart(char, i, 'INSIDE_OBJECT_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n processAfterObjectValue(char, i);\n break;\n }\n\n case 'INSIDE_STRING': {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case '\\\\': {\n stack.push('INSIDE_STRING_ESCAPE');\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_START': {\n switch (char) {\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_COMMA': {\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_STRING_ESCAPE': {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case 'INSIDE_NUMBER': {\n switch (char) {\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n break;\n }\n\n case 'e':\n case 'E':\n case '-':\n case '.': {\n break;\n }\n\n case ',': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case '}': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case ']': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !'false'.startsWith(partialLiteral) &&\n !'true'.startsWith(partialLiteral) &&\n !'null'.startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case 'INSIDE_STRING': {\n result += '\"';\n break;\n }\n\n case 'INSIDE_OBJECT_KEY':\n case 'INSIDE_OBJECT_AFTER_KEY':\n case 'INSIDE_OBJECT_AFTER_COMMA':\n case 'INSIDE_OBJECT_START':\n case 'INSIDE_OBJECT_BEFORE_VALUE':\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n result += '}';\n break;\n }\n\n case 'INSIDE_ARRAY_START':\n case 'INSIDE_ARRAY_AFTER_COMMA':\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n result += ']';\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if ('true'.startsWith(partialLiteral)) {\n result += 'true'.slice(partialLiteral.length);\n } else if ('false'.startsWith(partialLiteral)) {\n result += 'false'.slice(partialLiteral.length);\n } else if ('null'.startsWith(partialLiteral)) {\n result += 'null'.slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n","import type { JSONValue } from '@ai-sdk/provider';\nimport { safeParseJSON } from '@ai-sdk/provider-utils';\nimport { fixJson } from './fix-json';\n\nexport async function parsePartialJson(jsonText: string | undefined): Promise<{\n value: JSONValue | undefined;\n state:\n | 'undefined-input'\n | 'successful-parse'\n | 'repaired-parse'\n | 'failed-parse';\n}> {\n if (jsonText === undefined) {\n return { value: undefined, state: 'undefined-input' };\n }\n\n let result = await safeParseJSON({ text: jsonText });\n\n if (result.success) {\n return { value: result.value, state: 'successful-parse' };\n }\n\n result = await safeParseJSON({ text: fixJson(jsonText) });\n\n if (result.success) {\n return { value: result.value, state: 'repaired-parse' };\n }\n\n return { value: undefined, state: 'failed-parse' };\n}\n","import {\n type LanguageModelV2,\n type LanguageModelV2CallWarning,\n getErrorMessage,\n} from '@ai-sdk/provider';\nimport {\n type IdGenerator,\n type ProviderOptions,\n createIdGenerator,\n DelayedPromise,\n isAbortError,\n} from '@ai-sdk/provider-utils';\nimport type { Span } from '@opentelemetry/api';\nimport type { ServerResponse } from 'node:http';\nimport { NoOutputGeneratedError } from '../error';\nimport { NoOutputSpecifiedError } from '../error/no-output-specified-error';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport type { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareToolsAndToolChoice } from '../prompt/prepare-tools-and-tool-choice';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport { createTextStreamResponse } from '../text-stream/create-text-stream-response';\nimport { pipeTextStreamToResponse } from '../text-stream/pipe-text-stream-to-response';\nimport type { LanguageModelRequestMetadata } from '../types';\nimport type {\n CallWarning,\n FinishReason,\n LanguageModel,\n ToolChoice,\n} from '../types/language-model';\nimport type { ProviderMetadata } from '../types/provider-metadata';\nimport { type LanguageModelUsage, addLanguageModelUsage } from '../types/usage';\nimport type { UIMessage } from '../ui';\nimport { createUIMessageStreamResponse } from '../ui-message-stream/create-ui-message-stream-response';\nimport { getResponseUIMessageId } from '../ui-message-stream/get-response-ui-message-id';\nimport { handleUIMessageStreamFinish } from '../ui-message-stream/handle-ui-message-stream-finish';\nimport { pipeUIMessageStreamToResponse } from '../ui-message-stream/pipe-ui-message-stream-to-response';\nimport type {\n InferUIMessageChunk,\n UIMessageChunk,\n} from '../ui-message-stream/ui-message-chunks';\nimport type { UIMessageStreamResponseInit } from '../ui-message-stream/ui-message-stream-response-init';\nimport type {\n InferUIMessageData,\n InferUIMessageMetadata,\n} from '../ui/ui-messages';\nimport { asArray } from '../util/as-array';\nimport {\n type AsyncIterableStream,\n createAsyncIterableStream,\n} from '../util/async-iterable-stream';\nimport { consumeStream } from '../util/consume-stream';\nimport { createStitchableStream } from '../util/create-stitchable-stream';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { now as originalNow } from '../util/now';\nimport { prepareRetries } from '../util/prepare-retries';\nimport type { ContentPart } from './content-part';\nimport type { Output } from './output';\nimport type { PrepareStepFunction } from './prepare-step';\nimport type { ResponseMessage } from './response-message';\nimport {\n type SingleRequestTextStreamPart,\n runToolsTransformation,\n} from './run-tools-transformation';\nimport { type StepResult, DefaultStepResult } from './step-result';\nimport {\n type StopCondition,\n isStopConditionMet,\n stepCountIs,\n} from './stop-condition';\nimport type {\n ConsumeStreamOptions,\n StreamTextResult,\n TextStreamPart,\n UIMessageStreamOptions,\n} from './stream-text-result';\nimport { toResponseMessages } from './to-response-messages';\nimport type { TypedToolCall } from './tool-call';\nimport type { ToolCallRepairFunction } from './tool-call-repair-function';\nimport type { ToolOutput } from './tool-output';\nimport type { ToolSet } from './tool-set';\n\nconst originalGenerateId = createIdGenerator({\n prefix: 'aitxt',\n size: 24,\n});\n\n/**\nA transformation that is applied to the stream.\n\n@param stopStream - A function that stops the source stream.\n@param tools - The tools that are accessible to and can be called by the model. The model needs to support calling tools.\n */\nexport type StreamTextTransform = (options: {\n tools: TOOLS; // for type inference\n stopStream: () => void;\n}) => TransformStream, TextStreamPart>;\n\n/**\nCallback that is set using the `onError` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamTextOnErrorCallback = (event: {\n error: unknown;\n}) => PromiseLike | void;\n\n/**\nCallback that is set using the `onStepFinish` option.\n\n@param stepResult - The result of the step.\n */\nexport type StreamTextOnStepFinishCallback = (\n stepResult: StepResult,\n) => PromiseLike | void;\n\n/**\nCallback that is set using the `onChunk` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamTextOnChunkCallback = (event: {\n chunk: Extract<\n TextStreamPart,\n {\n type:\n | 'text-delta'\n | 'reasoning-delta'\n | 'source'\n | 'tool-call'\n | 'tool-input-start'\n | 'tool-input-delta'\n | 'tool-result'\n | 'raw';\n }\n >;\n}) => PromiseLike | void;\n\n/**\nCallback that is set using the `onFinish` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamTextOnFinishCallback = (\n event: StepResult & {\n /**\nDetails for all steps.\n */\n readonly steps: StepResult[];\n\n /**\nTotal usage for all steps. This is the sum of the usage of all steps.\n */\n readonly totalUsage: LanguageModelUsage;\n },\n) => PromiseLike | void;\n\n/**\nCallback that is set using the `onAbort` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamTextOnAbortCallback = (event: {\n /**\nDetails for all previously finished steps.\n */\n readonly steps: StepResult[];\n}) => PromiseLike | void;\n\n/**\nGenerate a text and call tools for a given prompt using a language model.\n\nThis function streams the output. If you do not want to stream the output, use `generateText` instead.\n\n@param model - The language model to use.\n@param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n\n@param system - A system message that will be part of the prompt.\n@param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n@param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n\n@param maxOutputTokens - Maximum number of tokens to generate.\n@param temperature - Temperature setting.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topP - Nucleus sampling.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topK - Only sample from the top K options for each subsequent token.\nUsed to remove \"long tail\" low probability responses.\nRecommended for advanced use cases only. You usually only need to use temperature.\n@param presencePenalty - Presence penalty setting.\nIt affects the likelihood of the model to repeat information that is already in the prompt.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param frequencyPenalty - Frequency penalty setting.\nIt affects the likelihood of the model to repeatedly use the same words or phrases.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param stopSequences - Stop sequences.\nIf set, the model will stop generating text when one of the stop sequences is generated.\n@param seed - The seed (integer) to use for random sampling.\nIf set and supported by the model, calls will generate deterministic results.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@param maxSteps - Maximum number of sequential LLM calls (steps), e.g. when you use tool calls.\n\n@param onChunk - Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.\n@param onError - Callback that is called when an error occurs during streaming. You can use it to log errors.\n@param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.\n@param onFinish - Callback that is called when the LLM response and all request tool executions\n(for tools that have an `execute` function) are finished.\n\n@return\nA result object for accessing different stream types and additional information.\n */\nexport function streamText<\n TOOLS extends ToolSet,\n OUTPUT = never,\n PARTIAL_OUTPUT = never,\n>({\n model,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries,\n abortSignal,\n headers,\n stopWhen = stepCountIs(1),\n experimental_output: output,\n experimental_telemetry: telemetry,\n prepareStep,\n providerOptions,\n experimental_activeTools,\n activeTools = experimental_activeTools,\n experimental_repairToolCall: repairToolCall,\n experimental_transform: transform,\n experimental_download: download,\n includeRawChunks = false,\n onChunk,\n onError = ({ error }) => {\n console.error(error);\n },\n onFinish,\n onAbort,\n onStepFinish,\n experimental_context,\n _internal: {\n now = originalNow,\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n } = {},\n ...settings\n}: CallSettings &\n Prompt & {\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nThe tools that the model can call. The model needs to support calling tools.\n */\n tools?: TOOLS;\n\n /**\nThe tool choice strategy. Default: 'auto'.\n */\n toolChoice?: ToolChoice;\n\n /**\nCondition for stopping the generation when there are tool results in the last step.\nWhen the condition is an array, any of the conditions can be met to stop the generation.\n\n@default stepCountIs(1)\n */\n stopWhen?:\n | StopCondition>\n | Array>>;\n\n /**\nOptional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * @deprecated Use `activeTools` instead.\n */\n experimental_activeTools?: Array>;\n\n /**\n Limits the tools that are available for the model to call without\n changing the tool call and result types in the result.\n */\n activeTools?: Array>;\n\n /**\nOptional specification for parsing structured outputs from the LLM response.\n */\n experimental_output?: Output;\n\n /**\nOptional function that you can use to provide different settings for a step.\n\n@param options - The options for the step.\n@param options.steps - The steps that have been executed so far.\n@param options.stepNumber - The number of the step that is being executed.\n@param options.model - The model that is being used.\n\n@returns An object that contains the settings for the step.\nIf you return undefined (or for undefined settings), the settings from the outer level will be used.\n */\n prepareStep?: PrepareStepFunction>;\n\n /**\nA function that attempts to repair a tool call that failed to parse.\n */\n experimental_repairToolCall?: ToolCallRepairFunction;\n\n /**\nOptional stream transformations.\nThey are applied in the order they are provided.\nThe stream transformations must maintain the stream structure for streamText to work correctly.\n */\n experimental_transform?:\n | StreamTextTransform\n | Array>;\n\n /**\nCustom download function to use for URLs.\n\nBy default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\nWhether to include raw chunks from the provider in the stream.\nWhen enabled, you will receive raw chunks with type 'raw' that contain the unprocessed data from the provider.\nThis allows access to cutting-edge provider features not yet wrapped by the AI SDK.\nDefaults to false.\n */\n includeRawChunks?: boolean;\n\n /**\nCallback that is called for each chunk of the stream.\nThe stream processing will pause until the callback promise is resolved.\n */\n onChunk?: StreamTextOnChunkCallback;\n\n /**\nCallback that is invoked when an error occurs during streaming.\nYou can use it to log errors.\nThe stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamTextOnErrorCallback;\n\n /**\nCallback that is called when the LLM response and all request tool executions\n(for tools that have an `execute` function) are finished.\n\nThe usage is the combined usage of all steps.\n */\n onFinish?: StreamTextOnFinishCallback;\n\n onAbort?: StreamTextOnAbortCallback;\n\n /**\nCallback that is called when each step (LLM call) is finished, including intermediate steps.\n */\n onStepFinish?: StreamTextOnStepFinishCallback;\n\n /**\n * Context that is passed into tool execution.\n *\n * Experimental (can break in patch releases).\n *\n * @default undefined\n */\n experimental_context?: unknown;\n\n /**\nInternal. For test use only. May change without notice.\n */\n _internal?: {\n now?: () => number;\n generateId?: IdGenerator;\n currentDate?: () => Date;\n };\n }): StreamTextResult {\n return new DefaultStreamTextResult({\n model: resolveLanguageModel(model),\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n tools,\n toolChoice,\n transforms: asArray(transform),\n activeTools,\n repairToolCall,\n stopConditions: asArray(stopWhen),\n output,\n providerOptions,\n prepareStep,\n includeRawChunks,\n onChunk,\n onError,\n onFinish,\n onAbort,\n onStepFinish,\n now,\n currentDate,\n generateId,\n experimental_context,\n download,\n });\n}\n\ntype EnrichedStreamPart = {\n part: TextStreamPart;\n partialOutput: PARTIAL_OUTPUT | undefined;\n};\n\nfunction createOutputTransformStream<\n TOOLS extends ToolSet,\n OUTPUT,\n PARTIAL_OUTPUT,\n>(\n output: Output | undefined,\n): TransformStream<\n TextStreamPart,\n EnrichedStreamPart\n> {\n if (!output) {\n return new TransformStream<\n TextStreamPart,\n EnrichedStreamPart\n >({\n transform(chunk, controller) {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n },\n });\n }\n\n let firstTextChunkId: string | undefined = undefined;\n let text = '';\n let textChunk = '';\n let lastPublishedJson = '';\n\n function publishTextChunk({\n controller,\n partialOutput = undefined,\n }: {\n controller: TransformStreamDefaultController<\n EnrichedStreamPart\n >;\n partialOutput?: PARTIAL_OUTPUT;\n }) {\n controller.enqueue({\n part: {\n type: 'text-delta',\n id: firstTextChunkId!,\n text: textChunk,\n },\n partialOutput,\n });\n textChunk = '';\n }\n\n return new TransformStream<\n TextStreamPart,\n EnrichedStreamPart\n >({\n async transform(chunk, controller) {\n // ensure that we publish the last text chunk before the step finish:\n if (chunk.type === 'finish-step' && textChunk.length > 0) {\n publishTextChunk({ controller });\n }\n\n if (\n chunk.type !== 'text-delta' &&\n chunk.type !== 'text-start' &&\n chunk.type !== 'text-end'\n ) {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n // we have to pick a text chunk which contains the json text\n // since we are streaming, we have to pick the first text chunk\n if (firstTextChunkId == null) {\n firstTextChunkId = chunk.id;\n } else if (chunk.id !== firstTextChunkId) {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n if (chunk.type === 'text-start') {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n if (chunk.type === 'text-end') {\n if (textChunk.length > 0) {\n publishTextChunk({ controller });\n }\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n text += chunk.text;\n textChunk += chunk.text;\n\n // only publish if partial json can be parsed:\n const result = await output.parsePartial({ text });\n if (result != null) {\n // only send new json if it has changed:\n const currentJson = JSON.stringify(result.partial);\n if (currentJson !== lastPublishedJson) {\n publishTextChunk({ controller, partialOutput: result.partial });\n lastPublishedJson = currentJson;\n }\n }\n },\n });\n}\n\nclass DefaultStreamTextResult<\n TOOLS extends ToolSet,\n OUTPUT,\n PARTIAL_OUTPUT,\n> implements StreamTextResult {\n private readonly _totalUsage = new DelayedPromise<\n Awaited['usage']>\n >();\n private readonly _finishReason = new DelayedPromise<\n Awaited['finishReason']>\n >();\n private readonly _steps = new DelayedPromise<\n Awaited['steps']>\n >();\n\n private readonly addStream: (\n stream: ReadableStream>,\n ) => void;\n\n private readonly closeStream: () => void;\n\n private baseStream: ReadableStream>;\n\n private output: Output | undefined;\n\n private includeRawChunks: boolean;\n\n private tools: TOOLS | undefined;\n\n constructor({\n model,\n telemetry,\n headers,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n tools,\n toolChoice,\n transforms,\n activeTools,\n repairToolCall,\n stopConditions,\n output,\n providerOptions,\n prepareStep,\n includeRawChunks,\n now,\n currentDate,\n generateId,\n onChunk,\n onError,\n onFinish,\n onAbort,\n onStepFinish,\n experimental_context,\n download,\n }: {\n model: LanguageModelV2;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n settings: Omit;\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n system: Prompt['system'];\n prompt: Prompt['prompt'];\n messages: Prompt['messages'];\n allowSystemInMessages: Prompt['allowSystemInMessages'];\n tools: TOOLS | undefined;\n toolChoice: ToolChoice | undefined;\n transforms: Array>;\n activeTools: Array | undefined;\n repairToolCall: ToolCallRepairFunction | undefined;\n stopConditions: Array>>;\n output: Output | undefined;\n providerOptions: ProviderOptions | undefined;\n prepareStep: PrepareStepFunction> | undefined;\n includeRawChunks: boolean;\n now: () => number;\n currentDate: () => Date;\n generateId: () => string;\n experimental_context: unknown;\n download: DownloadFunction | undefined;\n\n // callbacks:\n onChunk: undefined | StreamTextOnChunkCallback;\n onError: StreamTextOnErrorCallback;\n onFinish: undefined | StreamTextOnFinishCallback;\n onAbort: undefined | StreamTextOnAbortCallback;\n onStepFinish: undefined | StreamTextOnStepFinishCallback;\n }) {\n this.output = output;\n this.includeRawChunks = includeRawChunks;\n this.tools = tools;\n\n // promise to ensure that the step has been fully processed by the event processor\n // before a new step is started. This is required because the continuation condition\n // needs the updated steps to determine if another step is needed.\n let stepFinish!: DelayedPromise;\n\n let recordedContent: Array> = [];\n const recordedResponseMessages: Array = [];\n let recordedFinishReason: FinishReason | undefined = undefined;\n let recordedTotalUsage: LanguageModelUsage | undefined = undefined;\n let recordedRequest: LanguageModelRequestMetadata = {};\n let recordedWarnings: Array = [];\n const recordedSteps: StepResult[] = [];\n\n let rootSpan!: Span;\n\n let activeTextContent: Record<\n string,\n {\n type: 'text';\n text: string;\n providerMetadata: ProviderMetadata | undefined;\n }\n > = {};\n\n let activeReasoningContent: Record<\n string,\n {\n type: 'reasoning';\n text: string;\n providerMetadata: ProviderMetadata | undefined;\n }\n > = {};\n\n const eventProcessor = new TransformStream<\n EnrichedStreamPart,\n EnrichedStreamPart\n >({\n async transform(chunk, controller) {\n controller.enqueue(chunk); // forward the chunk to the next stream\n\n const { part } = chunk;\n\n if (\n part.type === 'text-delta' ||\n part.type === 'reasoning-delta' ||\n part.type === 'source' ||\n part.type === 'tool-call' ||\n part.type === 'tool-result' ||\n part.type === 'tool-input-start' ||\n part.type === 'tool-input-delta' ||\n part.type === 'raw'\n ) {\n await onChunk?.({ chunk: part });\n }\n\n if (part.type === 'error') {\n await onError({ error: wrapGatewayError(part.error) });\n }\n\n if (part.type === 'text-start') {\n activeTextContent[part.id] = {\n type: 'text',\n text: '',\n providerMetadata: part.providerMetadata,\n };\n\n recordedContent.push(activeTextContent[part.id]);\n }\n\n if (part.type === 'text-delta') {\n const activeText = activeTextContent[part.id];\n\n if (activeText == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `text part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeText.text += part.text;\n activeText.providerMetadata =\n part.providerMetadata ?? activeText.providerMetadata;\n }\n\n if (part.type === 'text-end') {\n const activeText = activeTextContent[part.id];\n\n if (activeText == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `text part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeText.providerMetadata =\n part.providerMetadata ?? activeText.providerMetadata;\n\n delete activeTextContent[part.id];\n }\n\n if (part.type === 'reasoning-start') {\n activeReasoningContent[part.id] = {\n type: 'reasoning',\n text: '',\n providerMetadata: part.providerMetadata,\n };\n\n recordedContent.push(activeReasoningContent[part.id]);\n }\n\n if (part.type === 'reasoning-delta') {\n const activeReasoning = activeReasoningContent[part.id];\n\n if (activeReasoning == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `reasoning part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeReasoning.text += part.text;\n activeReasoning.providerMetadata =\n part.providerMetadata ?? activeReasoning.providerMetadata;\n }\n\n if (part.type === 'reasoning-end') {\n const activeReasoning = activeReasoningContent[part.id];\n\n if (activeReasoning == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `reasoning part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeReasoning.providerMetadata =\n part.providerMetadata ?? activeReasoning.providerMetadata;\n\n delete activeReasoningContent[part.id];\n }\n\n if (part.type === 'file') {\n recordedContent.push({ type: 'file', file: part.file });\n }\n\n if (part.type === 'source') {\n recordedContent.push(part);\n }\n\n if (part.type === 'tool-call') {\n recordedContent.push(part);\n }\n\n if (part.type === 'tool-result' && !part.preliminary) {\n recordedContent.push(part);\n }\n\n if (part.type === 'tool-error') {\n recordedContent.push(part);\n }\n\n if (part.type === 'start-step') {\n recordedRequest = part.request;\n recordedWarnings = part.warnings;\n }\n\n if (part.type === 'finish-step') {\n const stepMessages = toResponseMessages({\n content: recordedContent,\n tools,\n });\n\n // Add step information (after response messages are updated):\n const currentStepResult: StepResult = new DefaultStepResult({\n content: recordedContent,\n finishReason: part.finishReason,\n usage: part.usage,\n warnings: recordedWarnings,\n request: recordedRequest,\n response: {\n ...part.response,\n messages: [...recordedResponseMessages, ...stepMessages],\n },\n providerMetadata: part.providerMetadata,\n });\n\n await onStepFinish?.(currentStepResult);\n\n logWarnings(recordedWarnings);\n\n recordedSteps.push(currentStepResult);\n\n recordedContent = [];\n activeReasoningContent = {};\n activeTextContent = {};\n\n recordedResponseMessages.push(...stepMessages);\n\n // resolve the promise to signal that the step has been fully processed\n // by the event processor:\n stepFinish.resolve();\n }\n\n if (part.type === 'finish') {\n recordedTotalUsage = part.totalUsage;\n recordedFinishReason = part.finishReason;\n }\n },\n\n async flush(controller) {\n try {\n if (recordedSteps.length === 0) {\n const error = new NoOutputGeneratedError({\n message: 'No output generated. Check the stream for errors.',\n });\n\n self._finishReason.reject(error);\n self._totalUsage.reject(error);\n self._steps.reject(error);\n\n return; // no steps recorded (e.g. in error scenario)\n }\n\n // derived:\n const finishReason = recordedFinishReason ?? 'unknown';\n const totalUsage = recordedTotalUsage ?? {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n };\n\n // from finish:\n self._finishReason.resolve(finishReason);\n self._totalUsage.resolve(totalUsage);\n\n // aggregate results:\n self._steps.resolve(recordedSteps);\n\n // call onFinish callback:\n const finalStep = recordedSteps[recordedSteps.length - 1];\n await onFinish?.({\n finishReason,\n totalUsage,\n usage: finalStep.usage,\n content: finalStep.content,\n text: finalStep.text,\n reasoningText: finalStep.reasoningText,\n reasoning: finalStep.reasoning,\n files: finalStep.files,\n sources: finalStep.sources,\n toolCalls: finalStep.toolCalls,\n staticToolCalls: finalStep.staticToolCalls,\n dynamicToolCalls: finalStep.dynamicToolCalls,\n toolResults: finalStep.toolResults,\n staticToolResults: finalStep.staticToolResults,\n dynamicToolResults: finalStep.dynamicToolResults,\n request: finalStep.request,\n response: finalStep.response,\n warnings: finalStep.warnings,\n providerMetadata: finalStep.providerMetadata,\n steps: recordedSteps,\n });\n\n // Add response information to the root span:\n rootSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.text': { output: () => finalStep.text },\n 'ai.response.toolCalls': {\n output: () =>\n finalStep.toolCalls?.length\n ? JSON.stringify(finalStep.toolCalls)\n : undefined,\n },\n 'ai.response.providerMetadata': JSON.stringify(\n finalStep.providerMetadata,\n ),\n\n 'ai.usage.inputTokens': totalUsage.inputTokens,\n 'ai.usage.outputTokens': totalUsage.outputTokens,\n 'ai.usage.totalTokens': totalUsage.totalTokens,\n 'ai.usage.reasoningTokens': totalUsage.reasoningTokens,\n 'ai.usage.cachedInputTokens': totalUsage.cachedInputTokens,\n },\n }),\n );\n } catch (error) {\n controller.error(error);\n } finally {\n rootSpan.end();\n }\n },\n });\n\n // initialize the stitchable stream and the transformed stream:\n const stitchableStream = createStitchableStream>();\n this.addStream = stitchableStream.addStream;\n this.closeStream = stitchableStream.close;\n\n // resilient stream that handles abort signals and errors:\n const reader = stitchableStream.stream.getReader();\n let stream = new ReadableStream>({\n async start(controller) {\n // send start event:\n controller.enqueue({ type: 'start' });\n },\n\n async pull(controller) {\n // abort handling:\n function abort() {\n onAbort?.({ steps: recordedSteps });\n controller.enqueue({ type: 'abort' });\n controller.close();\n }\n\n try {\n const { done, value } = await reader.read();\n\n if (done) {\n controller.close();\n return;\n }\n\n if (abortSignal?.aborted) {\n abort();\n return;\n }\n\n controller.enqueue(value);\n } catch (error) {\n if (isAbortError(error) && abortSignal?.aborted) {\n abort();\n } else {\n controller.error(error);\n }\n }\n },\n\n cancel(reason) {\n return stitchableStream.stream.cancel(reason);\n },\n });\n\n // transform the stream before output parsing\n // to enable replacement of stream segments:\n for (const transform of transforms) {\n stream = stream.pipeThrough(\n transform({\n tools: tools as TOOLS,\n stopStream() {\n stitchableStream.terminate();\n },\n }),\n );\n }\n\n this.baseStream = stream\n .pipeThrough(createOutputTransformStream(output))\n .pipeThrough(eventProcessor);\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const tracer = getTracer(telemetry);\n\n const callSettings = prepareCallSettings(settings);\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...callSettings, maxRetries },\n });\n\n const self = this;\n\n recordSpan({\n name: 'ai.streamText',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: 'ai.streamText', telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async rootSpanArg => {\n rootSpan = rootSpanArg;\n\n async function streamStep({\n currentStep,\n responseMessages,\n usage,\n }: {\n currentStep: number;\n responseMessages: Array;\n usage: LanguageModelUsage;\n }) {\n const includeRawChunks = self.includeRawChunks;\n\n stepFinish = new DelayedPromise();\n\n const initialPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n const stepInputMessages = [\n ...initialPrompt.messages,\n ...responseMessages,\n ];\n\n const prepareStepResult = await prepareStep?.({\n model,\n steps: recordedSteps,\n stepNumber: recordedSteps.length,\n messages: stepInputMessages,\n });\n\n const stepModel = resolveLanguageModel(\n prepareStepResult?.model ?? model,\n );\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n system: prepareStepResult?.system ?? initialPrompt.system,\n messages: prepareStepResult?.messages ?? stepInputMessages,\n },\n supportedUrls: await stepModel.supportedUrls,\n download,\n });\n\n const { toolChoice: stepToolChoice, tools: stepTools } =\n prepareToolsAndToolChoice({\n tools,\n toolChoice: prepareStepResult?.toolChoice ?? toolChoice,\n activeTools: prepareStepResult?.activeTools ?? activeTools,\n });\n\n const {\n result: { stream, response, request },\n doStreamSpan,\n startTimestampMs,\n } = await retry(() =>\n recordSpan({\n name: 'ai.streamText.doStream',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamText.doStream',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': stepModel.provider,\n 'ai.model.id': stepModel.modelId,\n // prompt:\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n 'ai.prompt.tools': {\n // convert the language model level tools:\n input: () => stepTools?.map(tool => JSON.stringify(tool)),\n },\n 'ai.prompt.toolChoice': {\n input: () =>\n stepToolChoice != null\n ? JSON.stringify(stepToolChoice)\n : undefined,\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': stepModel.provider,\n 'gen_ai.request.model': stepModel.modelId,\n 'gen_ai.request.frequency_penalty':\n callSettings.frequencyPenalty,\n 'gen_ai.request.max_tokens': callSettings.maxOutputTokens,\n 'gen_ai.request.presence_penalty':\n callSettings.presencePenalty,\n 'gen_ai.request.stop_sequences': callSettings.stopSequences,\n 'gen_ai.request.temperature': callSettings.temperature,\n 'gen_ai.request.top_k': callSettings.topK,\n 'gen_ai.request.top_p': callSettings.topP,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async doStreamSpan => {\n return {\n startTimestampMs: now(), // get before the call\n doStreamSpan,\n result: await stepModel.doStream({\n ...callSettings,\n tools: stepTools,\n toolChoice: stepToolChoice,\n responseFormat: output?.responseFormat,\n prompt: promptMessages,\n providerOptions,\n abortSignal,\n headers,\n includeRawChunks,\n }),\n };\n },\n }),\n );\n\n const streamWithToolResults = runToolsTransformation({\n tools,\n generatorStream: stream,\n tracer,\n telemetry,\n system,\n messages: stepInputMessages,\n repairToolCall,\n abortSignal,\n experimental_context,\n });\n\n const stepRequest = request ?? {};\n const stepToolCalls: TypedToolCall[] = [];\n const stepToolOutputs: ToolOutput[] = [];\n let warnings: LanguageModelV2CallWarning[] | undefined;\n\n const activeToolCallToolNames: Record = {};\n\n let stepFinishReason: FinishReason = 'unknown';\n let stepUsage: LanguageModelUsage = {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n };\n let stepProviderMetadata: ProviderMetadata | undefined;\n let stepFirstChunk = true;\n let stepResponse: { id: string; timestamp: Date; modelId: string } = {\n id: generateId(),\n timestamp: currentDate(),\n modelId: model.modelId,\n };\n\n // raw text as it comes from the provider. recorded for telemetry.\n let activeText = '';\n\n self.addStream(\n streamWithToolResults.pipeThrough(\n new TransformStream<\n SingleRequestTextStreamPart,\n TextStreamPart\n >({\n async transform(chunk, controller): Promise {\n if (chunk.type === 'stream-start') {\n warnings = chunk.warnings;\n return; // stream start chunks are sent immediately and do not count as first chunk\n }\n\n if (stepFirstChunk) {\n // Telemetry for first chunk:\n const msToFirstChunk = now() - startTimestampMs;\n\n stepFirstChunk = false;\n\n doStreamSpan.addEvent('ai.stream.firstChunk', {\n 'ai.response.msToFirstChunk': msToFirstChunk,\n });\n\n doStreamSpan.setAttributes({\n 'ai.response.msToFirstChunk': msToFirstChunk,\n });\n\n // Step start:\n controller.enqueue({\n type: 'start-step',\n request: stepRequest,\n warnings: warnings ?? [],\n });\n }\n\n const chunkType = chunk.type;\n switch (chunkType) {\n case 'text-start':\n case 'text-end': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'text-delta': {\n if (chunk.delta.length > 0) {\n controller.enqueue({\n type: 'text-delta',\n id: chunk.id,\n text: chunk.delta,\n providerMetadata: chunk.providerMetadata,\n });\n activeText += chunk.delta;\n }\n break;\n }\n\n case 'reasoning-start':\n case 'reasoning-end': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'reasoning-delta': {\n controller.enqueue({\n type: 'reasoning-delta',\n id: chunk.id,\n text: chunk.delta,\n providerMetadata: chunk.providerMetadata,\n });\n break;\n }\n\n case 'tool-call': {\n controller.enqueue(chunk);\n // store tool calls for onFinish callback and toolCalls promise:\n stepToolCalls.push(chunk);\n break;\n }\n\n case 'tool-result': {\n controller.enqueue(chunk);\n\n if (!chunk.preliminary) {\n stepToolOutputs.push(chunk);\n }\n\n break;\n }\n\n case 'tool-error': {\n controller.enqueue(chunk);\n stepToolOutputs.push(chunk);\n break;\n }\n\n case 'response-metadata': {\n stepResponse = {\n id: chunk.id ?? stepResponse.id,\n timestamp: chunk.timestamp ?? stepResponse.timestamp,\n modelId: chunk.modelId ?? stepResponse.modelId,\n };\n break;\n }\n\n case 'finish': {\n // Note: tool executions might not be finished yet when the finish event is emitted.\n // store usage and finish reason for promises and onFinish callback:\n stepUsage = chunk.usage;\n stepFinishReason = chunk.finishReason;\n stepProviderMetadata = chunk.providerMetadata;\n\n // Telemetry for finish event timing\n // (since tool executions can take longer and distort calculations)\n const msToFinish = now() - startTimestampMs;\n doStreamSpan.addEvent('ai.stream.finish');\n doStreamSpan.setAttributes({\n 'ai.response.msToFinish': msToFinish,\n 'ai.response.avgOutputTokensPerSecond':\n (1000 * (stepUsage.outputTokens ?? 0)) / msToFinish,\n });\n\n break;\n }\n\n case 'file': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'source': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'tool-input-start': {\n activeToolCallToolNames[chunk.id] = chunk.toolName;\n\n const tool = tools?.[chunk.toolName];\n if (tool?.onInputStart != null) {\n await tool.onInputStart({\n toolCallId: chunk.id,\n messages: stepInputMessages,\n abortSignal,\n experimental_context,\n });\n }\n\n controller.enqueue({\n ...chunk,\n dynamic: tool?.type === 'dynamic',\n });\n break;\n }\n\n case 'tool-input-end': {\n delete activeToolCallToolNames[chunk.id];\n controller.enqueue(chunk);\n break;\n }\n\n case 'tool-input-delta': {\n const toolName = activeToolCallToolNames[chunk.id];\n const tool = tools?.[toolName];\n\n if (tool?.onInputDelta != null) {\n await tool.onInputDelta({\n inputTextDelta: chunk.delta,\n toolCallId: chunk.id,\n messages: stepInputMessages,\n abortSignal,\n experimental_context,\n });\n }\n\n controller.enqueue(chunk);\n break;\n }\n\n case 'error': {\n controller.enqueue(chunk);\n stepFinishReason = 'error';\n break;\n }\n\n case 'raw': {\n if (includeRawChunks) {\n controller.enqueue(chunk);\n }\n break;\n }\n\n default: {\n const exhaustiveCheck: never = chunkType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n const stepToolCallsJson =\n stepToolCalls.length > 0\n ? JSON.stringify(stepToolCalls)\n : undefined;\n\n // record telemetry information first to ensure best effort timing\n try {\n doStreamSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': stepFinishReason,\n 'ai.response.text': {\n output: () => activeText,\n },\n 'ai.response.toolCalls': {\n output: () => stepToolCallsJson,\n },\n 'ai.response.id': stepResponse.id,\n 'ai.response.model': stepResponse.modelId,\n 'ai.response.timestamp':\n stepResponse.timestamp.toISOString(),\n 'ai.response.providerMetadata':\n JSON.stringify(stepProviderMetadata),\n\n 'ai.usage.inputTokens': stepUsage.inputTokens,\n 'ai.usage.outputTokens': stepUsage.outputTokens,\n 'ai.usage.totalTokens': stepUsage.totalTokens,\n 'ai.usage.reasoningTokens': stepUsage.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n stepUsage.cachedInputTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [stepFinishReason],\n 'gen_ai.response.id': stepResponse.id,\n 'gen_ai.response.model': stepResponse.modelId,\n 'gen_ai.usage.input_tokens': stepUsage.inputTokens,\n 'gen_ai.usage.output_tokens': stepUsage.outputTokens,\n },\n }),\n );\n } catch (error) {\n // ignore error setting telemetry attributes\n } finally {\n // finish doStreamSpan before other operations for correct timing:\n doStreamSpan.end();\n }\n\n controller.enqueue({\n type: 'finish-step',\n finishReason: stepFinishReason,\n usage: stepUsage,\n providerMetadata: stepProviderMetadata,\n response: {\n ...stepResponse,\n headers: response?.headers,\n },\n });\n\n const combinedUsage = addLanguageModelUsage(usage, stepUsage);\n\n // wait for the step to be fully processed by the event processor\n // to ensure that the recorded steps are complete:\n await stepFinish.promise;\n\n const clientToolCalls = stepToolCalls.filter(\n toolCall => toolCall.providerExecuted !== true,\n );\n const clientToolOutputs = stepToolOutputs.filter(\n toolOutput => toolOutput.providerExecuted !== true,\n );\n\n if (\n clientToolCalls.length > 0 &&\n // all current tool calls have outputs (incl. execution errors):\n clientToolOutputs.length === clientToolCalls.length &&\n // continue until a stop condition is met:\n !(await isStopConditionMet({\n stopConditions,\n steps: recordedSteps,\n }))\n ) {\n // append to messages for the next step:\n responseMessages.push(\n ...toResponseMessages({\n content:\n // use transformed content to create the messages for the next step:\n recordedSteps[recordedSteps.length - 1].content,\n tools,\n }),\n );\n\n try {\n await streamStep({\n currentStep: currentStep + 1,\n responseMessages,\n usage: combinedUsage,\n });\n } catch (error) {\n controller.enqueue({\n type: 'error',\n error,\n });\n\n self.closeStream();\n }\n } else {\n controller.enqueue({\n type: 'finish',\n finishReason: stepFinishReason,\n totalUsage: combinedUsage,\n });\n\n self.closeStream(); // close the stitchable stream\n }\n },\n }),\n ),\n );\n }\n\n // add the initial stream to the stitchable stream\n await streamStep({\n currentStep: 0,\n responseMessages: [],\n usage: {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n },\n });\n },\n }).catch(error => {\n // add an error stream part and close the streams:\n self.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'error', error });\n controller.close();\n },\n }),\n );\n self.closeStream();\n });\n }\n\n get steps() {\n // when any of the promises are accessed, the stream is consumed\n // so it resolves without needing to consume the stream separately\n this.consumeStream();\n\n return this._steps.promise;\n }\n\n private get finalStep() {\n return this.steps.then(steps => steps[steps.length - 1]);\n }\n\n get content() {\n return this.finalStep.then(step => step.content);\n }\n\n get warnings() {\n return this.finalStep.then(step => step.warnings);\n }\n\n get providerMetadata() {\n return this.finalStep.then(step => step.providerMetadata);\n }\n\n get text() {\n return this.finalStep.then(step => step.text);\n }\n\n get reasoningText() {\n return this.finalStep.then(step => step.reasoningText);\n }\n\n get reasoning() {\n return this.finalStep.then(step => step.reasoning);\n }\n\n get sources() {\n return this.finalStep.then(step => step.sources);\n }\n\n get files() {\n return this.finalStep.then(step => step.files);\n }\n\n get toolCalls() {\n return this.finalStep.then(step => step.toolCalls);\n }\n\n get staticToolCalls() {\n return this.finalStep.then(step => step.staticToolCalls);\n }\n\n get dynamicToolCalls() {\n return this.finalStep.then(step => step.dynamicToolCalls);\n }\n\n get toolResults() {\n return this.finalStep.then(step => step.toolResults);\n }\n\n get staticToolResults() {\n return this.finalStep.then(step => step.staticToolResults);\n }\n\n get dynamicToolResults() {\n return this.finalStep.then(step => step.dynamicToolResults);\n }\n\n get usage() {\n return this.finalStep.then(step => step.usage);\n }\n\n get request() {\n return this.finalStep.then(step => step.request);\n }\n\n get response() {\n return this.finalStep.then(step => step.response);\n }\n\n get totalUsage() {\n // when any of the promises are accessed, the stream is consumed\n // so it resolves without needing to consume the stream separately\n this.consumeStream();\n\n return this._totalUsage.promise;\n }\n\n get finishReason() {\n // when any of the promises are accessed, the stream is consumed\n // so it resolves without needing to consume the stream separately\n this.consumeStream();\n\n return this._finishReason.promise;\n }\n\n /**\nSplit out a new stream from the original stream.\nThe original stream is replaced to allow for further splitting,\nsince we do not know how many times the stream will be split.\n\nNote: this leads to buffering the stream content on the server.\nHowever, the LLM results are expected to be small enough to not cause issues.\n */\n private teeStream() {\n const [stream1, stream2] = this.baseStream.tee();\n this.baseStream = stream2;\n return stream1;\n }\n\n get textStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream, string>({\n transform({ part }, controller) {\n if (part.type === 'text-delta') {\n controller.enqueue(part.text);\n }\n },\n }),\n ),\n );\n }\n\n get fullStream(): AsyncIterableStream> {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream<\n EnrichedStreamPart,\n TextStreamPart\n >({\n transform({ part }, controller) {\n controller.enqueue(part);\n },\n }),\n ),\n );\n }\n\n async consumeStream(options?: ConsumeStreamOptions): Promise {\n try {\n await consumeStream({\n stream: this.fullStream,\n onError: options?.onError,\n });\n } catch (error) {\n options?.onError?.(error);\n }\n }\n\n get experimental_partialOutputStream(): AsyncIterableStream {\n if (this.output == null) {\n throw new NoOutputSpecifiedError();\n }\n\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream<\n EnrichedStreamPart,\n PARTIAL_OUTPUT\n >({\n transform({ partialOutput }, controller) {\n if (partialOutput != null) {\n controller.enqueue(partialOutput);\n }\n },\n }),\n ),\n );\n }\n\n toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning = true,\n sendSources = false,\n sendStart = true,\n sendFinish = true,\n onError = getErrorMessage,\n }: UIMessageStreamOptions = {}): AsyncIterableStream<\n InferUIMessageChunk\n > {\n const responseMessageId =\n generateMessageId != null\n ? getResponseUIMessageId({\n originalMessages,\n responseMessageId: generateMessageId,\n })\n : undefined;\n\n const toolNamesByCallId: Record = {};\n\n const isDynamic = (toolCallId: string) => {\n const toolName = toolNamesByCallId[toolCallId];\n const dynamic = this.tools?.[toolName]?.type === 'dynamic';\n return dynamic ? true : undefined; // only send when dynamic to reduce data transfer\n };\n\n const baseStream = this.fullStream.pipeThrough(\n new TransformStream<\n TextStreamPart,\n UIMessageChunk<\n InferUIMessageMetadata,\n InferUIMessageData\n >\n >({\n transform: async (part, controller) => {\n const messageMetadataValue = messageMetadata?.({ part });\n\n const partType = part.type;\n switch (partType) {\n case 'text-start': {\n controller.enqueue({\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'text-delta': {\n controller.enqueue({\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'text-end': {\n controller.enqueue({\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'reasoning-start': {\n controller.enqueue({\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n controller.enqueue({\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n break;\n }\n\n case 'reasoning-end': {\n controller.enqueue({\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'file': {\n controller.enqueue({\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n });\n break;\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n controller.enqueue({\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n\n if (sendSources && part.sourceType === 'document') {\n controller.enqueue({\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n break;\n }\n\n case 'tool-input-start': {\n toolNamesByCallId[part.id] = part.toolName;\n const dynamic = isDynamic(part.id);\n\n controller.enqueue({\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n });\n break;\n }\n\n case 'tool-input-delta': {\n controller.enqueue({\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n });\n break;\n }\n\n case 'tool-call': {\n toolNamesByCallId[part.toolCallId] = part.toolName;\n const dynamic = isDynamic(part.toolCallId);\n\n if (part.invalid) {\n controller.enqueue({\n type: 'tool-input-error',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n errorText: onError(part.error),\n });\n } else {\n controller.enqueue({\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n });\n }\n\n break;\n }\n\n case 'tool-result': {\n const dynamic = isDynamic(part.toolCallId);\n\n controller.enqueue({\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.preliminary != null\n ? { preliminary: part.preliminary }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n });\n break;\n }\n\n case 'tool-error': {\n const dynamic = isDynamic(part.toolCallId);\n\n controller.enqueue({\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n });\n break;\n }\n\n case 'error': {\n controller.enqueue({\n type: 'error',\n errorText: onError(part.error),\n });\n break;\n }\n\n case 'start-step': {\n controller.enqueue({ type: 'start-step' });\n break;\n }\n\n case 'finish-step': {\n controller.enqueue({ type: 'finish-step' });\n break;\n }\n\n case 'start': {\n if (sendStart) {\n controller.enqueue({\n type: 'start',\n ...(messageMetadataValue != null\n ? { messageMetadata: messageMetadataValue }\n : {}),\n ...(responseMessageId != null\n ? { messageId: responseMessageId }\n : {}),\n });\n }\n break;\n }\n\n case 'finish': {\n if (sendFinish) {\n controller.enqueue({\n type: 'finish',\n finishReason: part.finishReason,\n ...(messageMetadataValue != null\n ? { messageMetadata: messageMetadataValue }\n : {}),\n });\n }\n break;\n }\n\n case 'abort': {\n controller.enqueue(part);\n break;\n }\n\n case 'tool-input-end': {\n break;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n break;\n }\n\n default: {\n const exhaustiveCheck: never = partType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n\n // start and finish events already have metadata\n // so we only need to send metadata for other parts\n if (\n messageMetadataValue != null &&\n partType !== 'start' &&\n partType !== 'finish'\n ) {\n controller.enqueue({\n type: 'message-metadata',\n messageMetadata: messageMetadataValue,\n });\n }\n },\n }),\n );\n\n return createAsyncIterableStream(\n handleUIMessageStreamFinish({\n stream: baseStream,\n messageId: responseMessageId ?? generateMessageId?.(),\n originalMessages,\n onFinish,\n onError,\n }),\n );\n }\n\n pipeUIMessageStreamToResponse(\n response: ServerResponse,\n {\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n ...init\n }: UIMessageStreamResponseInit & UIMessageStreamOptions = {},\n ) {\n pipeUIMessageStreamToResponse({\n response,\n stream: this.toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n }),\n ...init,\n });\n }\n\n pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit) {\n pipeTextStreamToResponse({\n response,\n textStream: this.textStream,\n ...init,\n });\n }\n\n toUIMessageStreamResponse({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n ...init\n }: UIMessageStreamResponseInit &\n UIMessageStreamOptions = {}): Response {\n return createUIMessageStreamResponse({\n stream: this.toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n }),\n ...init,\n });\n }\n\n toTextStreamResponse(init?: ResponseInit): Response {\n return createTextStreamResponse({\n textStream: this.textStream,\n ...init,\n });\n }\n}\n","/**\n * Splits an array into chunks of a specified size.\n *\n * @template T - The type of elements in the array.\n * @param {T[]} array - The array to split.\n * @param {number} chunkSize - The size of each chunk.\n * @returns {T[][]} - A new array containing the chunks.\n */\nexport function splitArray(array: T[], chunkSize: number): T[][] {\n if (chunkSize <= 0) {\n throw new Error('chunkSize must be greater than 0');\n }\n\n const result = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n result.push(array.slice(i, i + chunkSize));\n }\n\n return result;\n}\n","import {\n type ProviderOptions,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { splitArray } from '../util/split-array';\nimport { UnsupportedModelVersionError } from '../error/unsupported-model-version-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport type { Embedding, EmbeddingModel, ProviderMetadata } from '../types';\nimport { resolveEmbeddingModel } from '../model/resolve-model';\nimport type { EmbedManyResult } from './embed-many-result';\nimport { VERSION } from '../version';\n\n/**\nEmbed several values using an embedding model. The type of the value is defined\nby the embedding model.\n\n`embedMany` automatically splits large requests into smaller chunks if the model\nhas a limit on how many embeddings can be generated in a single call.\n\n@param model - The embedding model to use.\n@param values - The values that should be embedded.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@returns A result object that contains the embeddings, the value, and additional information.\n */\nexport async function embedMany({\n model: modelArg,\n values,\n maxParallelCalls = Infinity,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n providerOptions,\n experimental_telemetry: telemetry,\n}: {\n /**\nThe embedding model to use.\n */\n model: EmbeddingModel;\n\n /**\nThe values that should be embedded.\n */\n values: Array;\n\n /**\nMaximum number of retries per embedding model call. Set to 0 to disable retries.\n\n@default 2\n */\n maxRetries?: number;\n\n /**\nAbort signal.\n */\n abortSignal?: AbortSignal;\n\n /**\nAdditional headers to include in the request.\nOnly applicable for HTTP-based providers.\n */\n headers?: Record;\n\n /**\n * Optional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\n Additional provider-specific options. They are passed through\n to the provider from the AI SDK and enable provider-specific\n functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * Maximum number of concurrent requests.\n *\n * @default Infinity\n */\n maxParallelCalls?: number;\n}): Promise> {\n const model = resolveEmbeddingModel(modelArg);\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const headersWithUserAgent = withUserAgentSuffix(\n headers ?? {},\n `ai/${VERSION}`,\n );\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n\n return recordSpan({\n name: 'ai.embedMany',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: 'ai.embedMany', telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => values.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async span => {\n const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([\n model.maxEmbeddingsPerCall,\n model.supportsParallelCalls,\n ]);\n\n // the model has not specified limits on\n // how many embeddings can be generated in a single call\n if (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {\n const { embeddings, usage, response, providerMetadata } = await retry(\n () => {\n // nested spans to align with the embedMany telemetry data:\n return recordSpan({\n name: 'ai.embedMany.doEmbed',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.embedMany.doEmbed',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => values.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async doEmbedSpan => {\n const modelResponse = await model.doEmbed({\n values,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions,\n });\n\n const embeddings = modelResponse.embeddings;\n const usage = modelResponse.usage ?? { tokens: NaN };\n\n doEmbedSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding =>\n JSON.stringify(embedding),\n ),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return {\n embeddings,\n usage,\n providerMetadata: modelResponse.providerMetadata,\n response: modelResponse.response,\n };\n },\n });\n },\n );\n\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return new DefaultEmbedManyResult({\n values,\n embeddings,\n usage,\n providerMetadata,\n responses: [response],\n });\n }\n\n // split the values into chunks that are small enough for the model:\n const valueChunks = splitArray(values, maxEmbeddingsPerCall);\n\n // serially embed the chunks:\n const embeddings: Array = [];\n const responses: Array<\n | {\n headers?: Record;\n body?: unknown;\n }\n | undefined\n > = [];\n let tokens = 0;\n let providerMetadata: ProviderMetadata | undefined;\n\n const parallelChunks = splitArray(\n valueChunks,\n supportsParallelCalls ? maxParallelCalls : 1,\n );\n\n for (const parallelChunk of parallelChunks) {\n const results = await Promise.all(\n parallelChunk.map(chunk => {\n return retry(() => {\n // nested spans to align with the embedMany telemetry data:\n return recordSpan({\n name: 'ai.embedMany.doEmbed',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.embedMany.doEmbed',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => chunk.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async doEmbedSpan => {\n const modelResponse = await model.doEmbed({\n values: chunk,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions,\n });\n\n const embeddings = modelResponse.embeddings;\n const usage = modelResponse.usage ?? { tokens: NaN };\n\n doEmbedSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding =>\n JSON.stringify(embedding),\n ),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return {\n embeddings,\n usage,\n providerMetadata: modelResponse.providerMetadata,\n response: modelResponse.response,\n };\n },\n });\n });\n }),\n );\n\n for (const result of results) {\n embeddings.push(...result.embeddings);\n responses.push(result.response);\n tokens += result.usage.tokens;\n if (result.providerMetadata) {\n if (!providerMetadata) {\n providerMetadata = { ...result.providerMetadata };\n } else {\n for (const [providerName, metadata] of Object.entries(\n result.providerMetadata,\n )) {\n providerMetadata[providerName] = {\n ...(providerMetadata[providerName] ?? {}),\n ...metadata,\n };\n }\n }\n }\n }\n }\n\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': tokens,\n },\n }),\n );\n\n return new DefaultEmbedManyResult({\n values,\n embeddings,\n usage: { tokens },\n providerMetadata: providerMetadata,\n responses,\n });\n },\n });\n}\n\nclass DefaultEmbedManyResult implements EmbedManyResult {\n readonly values: EmbedManyResult['values'];\n readonly embeddings: EmbedManyResult['embeddings'];\n readonly usage: EmbedManyResult['usage'];\n readonly providerMetadata: EmbedManyResult['providerMetadata'];\n readonly responses: EmbedManyResult['responses'];\n\n constructor(options: {\n values: EmbedManyResult['values'];\n embeddings: EmbedManyResult['embeddings'];\n usage: EmbedManyResult['usage'];\n providerMetadata?: EmbedManyResult['providerMetadata'];\n responses?: EmbedManyResult['responses'];\n }) {\n this.values = options.values;\n this.embeddings = options.embeddings;\n this.usage = options.usage;\n this.providerMetadata = options.providerMetadata;\n this.responses = options.responses;\n }\n}\n","import type { JSONValue } from '@ai-sdk/provider';\nimport {\n type FlexibleSchema,\n type InferSchema,\n type ProviderOptions,\n createIdGenerator,\n withUserAgentSuffix,\n} from '@ai-sdk/provider-utils';\nimport { NoObjectGeneratedError } from '../error/no-object-generated-error';\nimport { extractReasoningContent } from '../generate-text/extract-reasoning-content';\nimport { extractTextContent } from '../generate-text/extract-text-content';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport type { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport type {\n CallWarning,\n FinishReason,\n LanguageModel,\n} from '../types/language-model';\nimport type { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { ProviderMetadata } from '../types/provider-metadata';\nimport type { LanguageModelUsage } from '../types/usage';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { prepareHeaders } from '../util/prepare-headers';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { VERSION } from '../version';\nimport type { GenerateObjectResult } from './generate-object-result';\nimport { getOutputStrategy } from './output-strategy';\nimport { parseAndValidateObjectResultWithRepair } from './parse-and-validate-object-result';\nimport type { RepairTextFunction } from './repair-text';\nimport { validateObjectGenerationInput } from './validate-object-generation-input';\n\nconst originalGenerateId = createIdGenerator({ prefix: 'aiobj', size: 24 });\n\n/**\nGenerate a structured, typed object for a given prompt and schema using a language model.\n\nThis function does not stream the output. If you want to stream the output, use `streamObject` instead.\n\n@param model - The language model to use.\n@param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n\n@param system - A system message that will be part of the prompt.\n@param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n@param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n\n@param maxOutputTokens - Maximum number of tokens to generate.\n@param temperature - Temperature setting.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topP - Nucleus sampling.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topK - Only sample from the top K options for each subsequent token.\nUsed to remove \"long tail\" low probability responses.\nRecommended for advanced use cases only. You usually only need to use temperature.\n@param presencePenalty - Presence penalty setting.\nIt affects the likelihood of the model to repeat information that is already in the prompt.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param frequencyPenalty - Frequency penalty setting.\nIt affects the likelihood of the model to repeatedly use the same words or phrases.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param stopSequences - Stop sequences.\nIf set, the model will stop generating text when one of the stop sequences is generated.\n@param seed - The seed (integer) to use for random sampling.\nIf set and supported by the model, calls will generate deterministic results.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@param schema - The schema of the object that the model should generate.\n@param schemaName - Optional name of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n@param schemaDescription - Optional description of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n\n@param output - The type of the output.\n\n- 'object': The output is an object.\n- 'array': The output is an array.\n- 'enum': The output is an enum.\n- 'no-schema': The output is not a schema.\n\n@param experimental_repairText - A function that attempts to repair the raw output of the model\nto enable JSON parsing.\n\n@param experimental_telemetry - Optional telemetry configuration (experimental).\n\n@param providerOptions - Additional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n\n@returns\nA result object that contains the generated object, the finish reason, the token usage, and additional information.\n */\nexport async function generateObject<\n SCHEMA extends FlexibleSchema = FlexibleSchema,\n OUTPUT extends 'object' | 'array' | 'enum' | 'no-schema' =\n InferSchema extends string ? 'enum' : 'object',\n RESULT = OUTPUT extends 'array'\n ? Array>\n : InferSchema,\n>(\n options: Omit &\n Prompt &\n (OUTPUT extends 'enum'\n ? {\n /**\nThe enum values that the model should use.\n */\n enum: Array;\n output: 'enum';\n }\n : OUTPUT extends 'no-schema'\n ? {}\n : {\n /**\nThe schema of the object that the model should generate.\n */\n schema: SCHEMA;\n\n /**\nOptional name of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n */\n schemaName?: string;\n\n /**\nOptional description of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n */\n schemaDescription?: string;\n }) & {\n output?: OUTPUT;\n\n /**\n The language model to use.\n */\n model: LanguageModel;\n /**\n A function that attempts to repair the raw output of the model\n to enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\n Optional telemetry configuration (experimental).\n */\n\n experimental_telemetry?: TelemetrySettings;\n\n /**\n Custom download function to use for URLs.\n\n By default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\n Additional provider-specific options. They are passed through\n to the provider from the AI SDK and enable provider-specific\n functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n };\n },\n): Promise> {\n const {\n model: modelArg,\n output = 'object',\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n experimental_repairText: repairText,\n experimental_telemetry: telemetry,\n experimental_download: download,\n providerOptions,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n } = {},\n ...settings\n } = options;\n\n const model = resolveLanguageModel(modelArg);\n\n const enumValues = 'enum' in options ? options.enum : undefined;\n const {\n schema: inputSchema,\n schemaDescription,\n schemaName,\n } = 'schema' in options ? options : {};\n\n validateObjectGenerationInput({\n output,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n enumValues,\n });\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const outputStrategy = getOutputStrategy({\n output,\n schema: inputSchema,\n enumValues,\n });\n\n const callSettings = prepareCallSettings(settings);\n\n const headersWithUserAgent = withUserAgentSuffix(\n headers ?? {},\n `ai/${VERSION}`,\n );\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { ...callSettings, maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n\n try {\n return await recordSpan({\n name: 'ai.generateObject',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateObject',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.schema':\n outputStrategy.jsonSchema != null\n ? { input: () => JSON.stringify(outputStrategy.jsonSchema) }\n : undefined,\n 'ai.schema.name': schemaName,\n 'ai.schema.description': schemaDescription,\n 'ai.settings.output': outputStrategy.type,\n },\n }),\n tracer,\n fn: async span => {\n let result: string;\n let finishReason: FinishReason;\n let usage: LanguageModelUsage;\n let warnings: CallWarning[] | undefined;\n let response: LanguageModelResponseMetadata;\n let request: LanguageModelRequestMetadata;\n let resultProviderMetadata: ProviderMetadata | undefined;\n let reasoning: string | undefined;\n\n const standardizedPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n supportedUrls: await model.supportedUrls,\n download,\n });\n\n const generateResult = await retry(() =>\n recordSpan({\n name: 'ai.generateObject.doGenerate',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateObject.doGenerate',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty':\n callSettings.frequencyPenalty,\n 'gen_ai.request.max_tokens': callSettings.maxOutputTokens,\n 'gen_ai.request.presence_penalty': callSettings.presencePenalty,\n 'gen_ai.request.temperature': callSettings.temperature,\n 'gen_ai.request.top_k': callSettings.topK,\n 'gen_ai.request.top_p': callSettings.topP,\n },\n }),\n tracer,\n fn: async span => {\n const result = await model.doGenerate({\n responseFormat: {\n type: 'json',\n schema: outputStrategy.jsonSchema,\n name: schemaName,\n description: schemaDescription,\n },\n ...prepareCallSettings(settings),\n prompt: promptMessages,\n providerOptions,\n abortSignal,\n headers: headersWithUserAgent,\n });\n\n const responseData = {\n id: result.response?.id ?? generateId(),\n timestamp: result.response?.timestamp ?? currentDate(),\n modelId: result.response?.modelId ?? model.modelId,\n headers: result.response?.headers,\n body: result.response?.body,\n };\n\n const text = extractTextContent(result.content);\n const reasoning = extractReasoningContent(result.content);\n\n if (text === undefined) {\n throw new NoObjectGeneratedError({\n message:\n 'No object generated: the model did not return a response.',\n response: responseData,\n usage: result.usage,\n finishReason: result.finishReason,\n });\n }\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': result.finishReason,\n 'ai.response.object': { output: () => text },\n 'ai.response.id': responseData.id,\n 'ai.response.model': responseData.modelId,\n 'ai.response.timestamp':\n responseData.timestamp.toISOString(),\n 'ai.response.providerMetadata': JSON.stringify(\n result.providerMetadata,\n ),\n\n // TODO rename telemetry attributes to inputTokens and outputTokens\n 'ai.usage.promptTokens': result.usage.inputTokens,\n 'ai.usage.completionTokens': result.usage.outputTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [result.finishReason],\n 'gen_ai.response.id': responseData.id,\n 'gen_ai.response.model': responseData.modelId,\n 'gen_ai.usage.input_tokens': result.usage.inputTokens,\n 'gen_ai.usage.output_tokens': result.usage.outputTokens,\n },\n }),\n );\n\n return {\n ...result,\n objectText: text,\n reasoning,\n responseData,\n };\n },\n }),\n );\n\n result = generateResult.objectText;\n finishReason = generateResult.finishReason;\n usage = generateResult.usage;\n warnings = generateResult.warnings;\n resultProviderMetadata = generateResult.providerMetadata;\n request = generateResult.request ?? {};\n response = generateResult.responseData;\n reasoning = generateResult.reasoning;\n\n logWarnings(warnings);\n\n const object = await parseAndValidateObjectResultWithRepair(\n result,\n outputStrategy,\n repairText,\n {\n response,\n usage,\n finishReason,\n },\n );\n\n // Add response information to the span:\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.providerMetadata': JSON.stringify(\n resultProviderMetadata,\n ),\n\n // TODO rename telemetry attributes to inputTokens and outputTokens\n 'ai.usage.promptTokens': usage.inputTokens,\n 'ai.usage.completionTokens': usage.outputTokens,\n },\n }),\n );\n\n return new DefaultGenerateObjectResult({\n object,\n reasoning,\n finishReason,\n usage,\n warnings,\n request,\n response,\n providerMetadata: resultProviderMetadata,\n });\n },\n });\n } catch (error) {\n throw wrapGatewayError(error);\n }\n}\n\nclass DefaultGenerateObjectResult implements GenerateObjectResult {\n readonly object: GenerateObjectResult['object'];\n readonly finishReason: GenerateObjectResult['finishReason'];\n readonly usage: GenerateObjectResult['usage'];\n readonly warnings: GenerateObjectResult['warnings'];\n readonly providerMetadata: GenerateObjectResult['providerMetadata'];\n readonly response: GenerateObjectResult['response'];\n readonly request: GenerateObjectResult['request'];\n readonly reasoning: GenerateObjectResult['reasoning'];\n\n constructor(options: {\n object: GenerateObjectResult['object'];\n finishReason: GenerateObjectResult['finishReason'];\n usage: GenerateObjectResult['usage'];\n warnings: GenerateObjectResult['warnings'];\n providerMetadata: GenerateObjectResult['providerMetadata'];\n response: GenerateObjectResult['response'];\n request: GenerateObjectResult['request'];\n reasoning: GenerateObjectResult['reasoning'];\n }) {\n this.object = options.object;\n this.finishReason = options.finishReason;\n this.usage = options.usage;\n this.warnings = options.warnings;\n this.providerMetadata = options.providerMetadata;\n this.response = options.response;\n this.request = options.request;\n this.reasoning = options.reasoning;\n }\n\n toJsonResponse(init?: ResponseInit): Response {\n return new Response(JSON.stringify(this.object), {\n status: init?.status ?? 200,\n headers: prepareHeaders(init?.headers, {\n 'content-type': 'application/json; charset=utf-8',\n }),\n });\n }\n}\n","import type {\n JSONValue,\n LanguageModelV2CallWarning,\n LanguageModelV2FinishReason,\n LanguageModelV2StreamPart,\n LanguageModelV2Usage,\n SharedV2ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n type FlexibleSchema,\n type ProviderOptions,\n createIdGenerator,\n DelayedPromise,\n type InferSchema,\n} from '@ai-sdk/provider-utils';\nimport type { ServerResponse } from 'http';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport type { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport { createTextStreamResponse } from '../text-stream/create-text-stream-response';\nimport { pipeTextStreamToResponse } from '../text-stream/pipe-text-stream-to-response';\nimport type {\n CallWarning,\n FinishReason,\n LanguageModel,\n} from '../types/language-model';\nimport type { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { ProviderMetadata } from '../types/provider-metadata';\nimport type { LanguageModelUsage } from '../types/usage';\nimport { type DeepPartial, isDeepEqualData, parsePartialJson } from '../util';\nimport {\n type AsyncIterableStream,\n createAsyncIterableStream,\n} from '../util/async-iterable-stream';\nimport { createStitchableStream } from '../util/create-stitchable-stream';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { now as originalNow } from '../util/now';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { type OutputStrategy, getOutputStrategy } from './output-strategy';\nimport { parseAndValidateObjectResultWithRepair } from './parse-and-validate-object-result';\nimport type { RepairTextFunction } from './repair-text';\nimport type {\n ObjectStreamPart,\n StreamObjectResult,\n} from './stream-object-result';\nimport { validateObjectGenerationInput } from './validate-object-generation-input';\n\nconst originalGenerateId = createIdGenerator({ prefix: 'aiobj', size: 24 });\n\n/**\nCallback that is set using the `onError` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamObjectOnErrorCallback = (event: {\n error: unknown;\n}) => Promise | void;\n\n/**\nCallback that is set using the `onFinish` option.\n\n@param event - The event that is passed to the callback.\n */\nexport type StreamObjectOnFinishCallback = (event: {\n /**\nThe token usage of the generated response.\n*/\n usage: LanguageModelUsage;\n\n /**\nThe generated object. Can be undefined if the final object does not match the schema.\n*/\n object: RESULT | undefined;\n\n /**\nOptional error object. This is e.g. a TypeValidationError when the final object does not match the schema.\n*/\n error: unknown | undefined;\n\n /**\nResponse metadata.\n */\n response: LanguageModelResponseMetadata;\n\n /**\nWarnings from the model provider (e.g. unsupported settings).\n*/\n warnings?: CallWarning[];\n\n /**\nAdditional provider-specific metadata. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n*/\n providerMetadata: ProviderMetadata | undefined;\n}) => Promise | void;\n\n/**\nGenerate a structured, typed object for a given prompt and schema using a language model.\n\nThis function streams the output. If you do not want to stream the output, use `generateObject` instead.\n\n@param model - The language model to use.\n@param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n\n@param system - A system message that will be part of the prompt.\n@param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n@param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n\n@param maxOutputTokens - Maximum number of tokens to generate.\n@param temperature - Temperature setting.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topP - Nucleus sampling.\nThe value is passed through to the provider. The range depends on the provider and model.\nIt is recommended to set either `temperature` or `topP`, but not both.\n@param topK - Only sample from the top K options for each subsequent token.\nUsed to remove \"long tail\" low probability responses.\nRecommended for advanced use cases only. You usually only need to use temperature.\n@param presencePenalty - Presence penalty setting.\nIt affects the likelihood of the model to repeat information that is already in the prompt.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param frequencyPenalty - Frequency penalty setting.\nIt affects the likelihood of the model to repeatedly use the same words or phrases.\nThe value is passed through to the provider. The range depends on the provider and model.\n@param stopSequences - Stop sequences.\nIf set, the model will stop generating text when one of the stop sequences is generated.\n@param seed - The seed (integer) to use for random sampling.\nIf set and supported by the model, calls will generate deterministic results.\n\n@param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n@param abortSignal - An optional abort signal that can be used to cancel the call.\n@param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n\n@param schema - The schema of the object that the model should generate.\n@param schemaName - Optional name of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n@param schemaDescription - Optional description of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n\n@param output - The type of the output.\n\n- 'object': The output is an object.\n- 'array': The output is an array.\n- 'enum': The output is an enum.\n- 'no-schema': The output is not a schema.\n\n@param experimental_telemetry - Optional telemetry configuration (experimental).\n\n@param providerOptions - Additional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n\n@returns\nA result object for accessing the partial object stream and additional information.\n */\nexport function streamObject<\n SCHEMA extends FlexibleSchema = FlexibleSchema,\n OUTPUT extends 'object' | 'array' | 'enum' | 'no-schema' =\n InferSchema extends string ? 'enum' : 'object',\n RESULT = OUTPUT extends 'array'\n ? Array>\n : InferSchema,\n>(\n options: Omit &\n Prompt &\n (OUTPUT extends 'enum'\n ? {\n /**\nThe enum values that the model should use.\n */\n enum: Array;\n output: 'enum';\n }\n : OUTPUT extends 'no-schema'\n ? {}\n : {\n /**\nThe schema of the object that the model should generate.\n */\n schema: SCHEMA;\n\n /**\nOptional name of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema name.\n */\n schemaName?: string;\n\n /**\nOptional description of the output that should be generated.\nUsed by some providers for additional LLM guidance, e.g.\nvia tool or schema description.\n */\n schemaDescription?: string;\n }) & {\n output?: OUTPUT;\n\n /**\nThe language model to use.\n */\n model: LanguageModel;\n\n /**\nA function that attempts to repair the raw output of the model\nto enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\nOptional telemetry configuration (experimental).\n */\n\n experimental_telemetry?: TelemetrySettings;\n\n /**\n Custom download function to use for URLs.\n\n By default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\nAdditional provider-specific options. They are passed through\nto the provider from the AI SDK and enable provider-specific\nfunctionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\nCallback that is invoked when an error occurs during streaming.\nYou can use it to log errors.\nThe stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamObjectOnErrorCallback;\n\n /**\nCallback that is called when the LLM response and the final object validation are finished.\n*/\n onFinish?: StreamObjectOnFinishCallback;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n now?: () => number;\n };\n },\n): StreamObjectResult<\n OUTPUT extends 'enum'\n ? string\n : OUTPUT extends 'array'\n ? RESULT\n : DeepPartial,\n OUTPUT extends 'array' ? RESULT : RESULT,\n OUTPUT extends 'array'\n ? RESULT extends Array\n ? AsyncIterableStream\n : never\n : never\n> {\n const {\n model,\n output = 'object',\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries,\n abortSignal,\n headers,\n experimental_repairText: repairText,\n experimental_telemetry: telemetry,\n experimental_download: download,\n providerOptions,\n onError = ({ error }: { error: unknown }) => {\n console.error(error);\n },\n onFinish,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n now = originalNow,\n } = {},\n ...settings\n } = options;\n\n const enumValues =\n 'enum' in options && options.enum ? options.enum : undefined;\n\n const {\n schema: inputSchema,\n schemaDescription,\n schemaName,\n } = 'schema' in options ? options : {};\n\n validateObjectGenerationInput({\n output,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n enumValues,\n });\n\n const outputStrategy = getOutputStrategy({\n output,\n schema: inputSchema,\n enumValues,\n });\n\n return new DefaultStreamObjectResult({\n model,\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n schemaName,\n schemaDescription,\n providerOptions,\n repairText,\n onError,\n onFinish,\n download,\n generateId,\n currentDate,\n now,\n });\n}\n\nclass DefaultStreamObjectResult<\n PARTIAL,\n RESULT,\n ELEMENT_STREAM,\n> implements StreamObjectResult {\n private readonly _object = new DelayedPromise();\n private readonly _usage = new DelayedPromise();\n private readonly _providerMetadata = new DelayedPromise<\n ProviderMetadata | undefined\n >();\n private readonly _warnings = new DelayedPromise();\n private readonly _request =\n new DelayedPromise();\n private readonly _response =\n new DelayedPromise();\n private readonly _finishReason = new DelayedPromise();\n\n private readonly baseStream: ReadableStream>;\n\n private readonly outputStrategy: OutputStrategy<\n PARTIAL,\n RESULT,\n ELEMENT_STREAM\n >;\n\n constructor({\n model: modelArg,\n headers,\n telemetry,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n schemaName,\n schemaDescription,\n providerOptions,\n repairText,\n onError,\n onFinish,\n download,\n generateId,\n currentDate,\n now,\n }: {\n model: LanguageModel;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n settings: Omit;\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n outputStrategy: OutputStrategy;\n system: Prompt['system'];\n prompt: Prompt['prompt'];\n messages: Prompt['messages'];\n allowSystemInMessages: Prompt['allowSystemInMessages'];\n schemaName: string | undefined;\n schemaDescription: string | undefined;\n providerOptions: ProviderOptions | undefined;\n repairText: RepairTextFunction | undefined;\n onError: StreamObjectOnErrorCallback;\n onFinish: StreamObjectOnFinishCallback | undefined;\n download: DownloadFunction | undefined;\n generateId: () => string;\n currentDate: () => Date;\n now: () => number;\n }) {\n const model = resolveLanguageModel(modelArg);\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const callSettings = prepareCallSettings(settings);\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...callSettings, maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n const self = this;\n\n const stitchableStream =\n createStitchableStream>();\n\n const eventProcessor = new TransformStream<\n ObjectStreamPart,\n ObjectStreamPart\n >({\n transform(chunk, controller) {\n controller.enqueue(chunk);\n\n if (chunk.type === 'error') {\n onError({ error: wrapGatewayError(chunk.error) });\n }\n },\n });\n\n this.baseStream = stitchableStream.stream.pipeThrough(eventProcessor);\n\n recordSpan({\n name: 'ai.streamObject',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamObject',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.schema':\n outputStrategy.jsonSchema != null\n ? { input: () => JSON.stringify(outputStrategy.jsonSchema) }\n : undefined,\n 'ai.schema.name': schemaName,\n 'ai.schema.description': schemaDescription,\n 'ai.settings.output': outputStrategy.type,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async rootSpan => {\n const standardizedPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n const callOptions = {\n responseFormat: {\n type: 'json' as const,\n schema: outputStrategy.jsonSchema,\n name: schemaName,\n description: schemaDescription,\n },\n ...prepareCallSettings(settings),\n prompt: await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n supportedUrls: await model.supportedUrls,\n download,\n }),\n providerOptions,\n abortSignal,\n headers,\n includeRawChunks: false,\n };\n\n const transformer: Transformer<\n LanguageModelV2StreamPart,\n ObjectStreamInputPart\n > = {\n transform: (chunk, controller) => {\n switch (chunk.type) {\n case 'text-delta':\n controller.enqueue(chunk.delta);\n break;\n case 'response-metadata':\n case 'finish':\n case 'error':\n case 'stream-start':\n controller.enqueue(chunk);\n break;\n }\n },\n };\n\n const {\n result: { stream, response, request },\n doStreamSpan,\n startTimestampMs,\n } = await retry(() =>\n recordSpan({\n name: 'ai.streamObject.doStream',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamObject.doStream',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(callOptions.prompt),\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty':\n callSettings.frequencyPenalty,\n 'gen_ai.request.max_tokens': callSettings.maxOutputTokens,\n 'gen_ai.request.presence_penalty': callSettings.presencePenalty,\n 'gen_ai.request.temperature': callSettings.temperature,\n 'gen_ai.request.top_k': callSettings.topK,\n 'gen_ai.request.top_p': callSettings.topP,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async doStreamSpan => ({\n startTimestampMs: now(),\n doStreamSpan,\n result: await model.doStream(callOptions),\n }),\n }),\n );\n\n self._request.resolve(request ?? {});\n\n // store information for onFinish callback:\n let warnings: LanguageModelV2CallWarning[] | undefined;\n let usage: LanguageModelUsage = {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n };\n let finishReason: LanguageModelV2FinishReason | undefined;\n let providerMetadata: ProviderMetadata | undefined;\n let object: RESULT | undefined;\n let error: unknown | undefined;\n\n // pipe chunks through a transformation stream that extracts metadata:\n let accumulatedText = '';\n let textDelta = '';\n let fullResponse: {\n id: string;\n timestamp: Date;\n modelId: string;\n } = {\n id: generateId(),\n timestamp: currentDate(),\n modelId: model.modelId,\n };\n\n // Keep track of raw parse result before type validation, since e.g. Zod might\n // change the object by mapping properties.\n let latestObjectJson: JSONValue | undefined = undefined;\n let latestObject: PARTIAL | undefined = undefined;\n let isFirstChunk = true;\n let isFirstDelta = true;\n\n const transformedStream = stream\n .pipeThrough(new TransformStream(transformer))\n .pipeThrough(\n new TransformStream<\n string | ObjectStreamInputPart,\n ObjectStreamPart\n >({\n async transform(chunk, controller): Promise {\n if (\n typeof chunk === 'object' &&\n chunk.type === 'stream-start'\n ) {\n warnings = chunk.warnings;\n return; // stream start chunks are sent immediately and do not count as first chunk\n }\n\n // Telemetry event for first chunk:\n if (isFirstChunk) {\n const msToFirstChunk = now() - startTimestampMs;\n\n isFirstChunk = false;\n\n doStreamSpan.addEvent('ai.stream.firstChunk', {\n 'ai.stream.msToFirstChunk': msToFirstChunk,\n });\n\n doStreamSpan.setAttributes({\n 'ai.stream.msToFirstChunk': msToFirstChunk,\n });\n }\n\n // process partial text chunks\n if (typeof chunk === 'string') {\n accumulatedText += chunk;\n textDelta += chunk;\n\n const { value: currentObjectJson, state: parseState } =\n await parsePartialJson(accumulatedText);\n\n if (\n currentObjectJson !== undefined &&\n !isDeepEqualData(latestObjectJson, currentObjectJson)\n ) {\n const validationResult =\n await outputStrategy.validatePartialResult({\n value: currentObjectJson,\n textDelta,\n latestObject,\n isFirstDelta,\n isFinalDelta: parseState === 'successful-parse',\n });\n\n if (\n validationResult.success &&\n !isDeepEqualData(\n latestObject,\n validationResult.value.partial,\n )\n ) {\n // inside inner check to correctly parse the final element in array mode:\n latestObjectJson = currentObjectJson;\n latestObject = validationResult.value.partial;\n\n controller.enqueue({\n type: 'object',\n object: latestObject,\n });\n\n controller.enqueue({\n type: 'text-delta',\n textDelta: validationResult.value.textDelta,\n });\n\n textDelta = '';\n isFirstDelta = false;\n }\n }\n\n return;\n }\n\n switch (chunk.type) {\n case 'response-metadata': {\n fullResponse = {\n id: chunk.id ?? fullResponse.id,\n timestamp: chunk.timestamp ?? fullResponse.timestamp,\n modelId: chunk.modelId ?? fullResponse.modelId,\n };\n break;\n }\n\n case 'finish': {\n // send final text delta:\n if (textDelta !== '') {\n controller.enqueue({ type: 'text-delta', textDelta });\n }\n\n // store finish reason for telemetry:\n finishReason = chunk.finishReason;\n\n // store usage and metadata for promises and onFinish callback:\n usage = chunk.usage;\n providerMetadata = chunk.providerMetadata;\n\n controller.enqueue({\n ...chunk,\n usage,\n response: fullResponse,\n });\n\n // log warnings:\n logWarnings(warnings ?? []);\n\n // resolve promises that can be resolved now:\n self._usage.resolve(usage);\n self._providerMetadata.resolve(providerMetadata);\n self._warnings.resolve(warnings);\n self._response.resolve({\n ...fullResponse,\n headers: response?.headers,\n });\n self._finishReason.resolve(finishReason ?? 'unknown');\n\n try {\n object = await parseAndValidateObjectResultWithRepair(\n accumulatedText,\n outputStrategy,\n repairText,\n {\n response: fullResponse,\n usage,\n finishReason,\n },\n );\n self._object.resolve(object);\n } catch (e) {\n error = e;\n self._object.reject(e);\n }\n break;\n }\n\n default: {\n controller.enqueue(chunk);\n break;\n }\n }\n },\n\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n try {\n const finalUsage = usage ?? {\n promptTokens: NaN,\n completionTokens: NaN,\n totalTokens: NaN,\n };\n\n doStreamSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.id': fullResponse.id,\n 'ai.response.model': fullResponse.modelId,\n 'ai.response.timestamp':\n fullResponse.timestamp.toISOString(),\n 'ai.response.providerMetadata':\n JSON.stringify(providerMetadata),\n\n 'ai.usage.inputTokens': finalUsage.inputTokens,\n 'ai.usage.outputTokens': finalUsage.outputTokens,\n 'ai.usage.totalTokens': finalUsage.totalTokens,\n 'ai.usage.reasoningTokens': finalUsage.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n finalUsage.cachedInputTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [finishReason],\n 'gen_ai.response.id': fullResponse.id,\n 'gen_ai.response.model': fullResponse.modelId,\n 'gen_ai.usage.input_tokens': finalUsage.inputTokens,\n 'gen_ai.usage.output_tokens': finalUsage.outputTokens,\n },\n }),\n );\n\n // finish doStreamSpan before other operations for correct timing:\n doStreamSpan.end();\n\n // Add response information to the root span:\n rootSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.usage.inputTokens': finalUsage.inputTokens,\n 'ai.usage.outputTokens': finalUsage.outputTokens,\n 'ai.usage.totalTokens': finalUsage.totalTokens,\n 'ai.usage.reasoningTokens': finalUsage.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n finalUsage.cachedInputTokens,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.providerMetadata':\n JSON.stringify(providerMetadata),\n },\n }),\n );\n\n // call onFinish callback:\n await onFinish?.({\n usage: finalUsage,\n object,\n error,\n response: {\n ...fullResponse,\n headers: response?.headers,\n },\n warnings,\n providerMetadata,\n });\n } catch (error) {\n controller.enqueue({ type: 'error', error });\n } finally {\n rootSpan.end();\n }\n },\n }),\n );\n\n stitchableStream.addStream(transformedStream);\n },\n })\n .catch(error => {\n // add an empty stream with an error to break the stream:\n stitchableStream.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'error', error });\n controller.close();\n },\n }),\n );\n })\n .finally(() => {\n stitchableStream.close();\n });\n\n this.outputStrategy = outputStrategy;\n }\n\n get object() {\n return this._object.promise;\n }\n\n get usage() {\n return this._usage.promise;\n }\n\n get providerMetadata() {\n return this._providerMetadata.promise;\n }\n\n get warnings() {\n return this._warnings.promise;\n }\n\n get request() {\n return this._request.promise;\n }\n\n get response() {\n return this._response.promise;\n }\n\n get finishReason() {\n return this._finishReason.promise;\n }\n\n get partialObjectStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream, PARTIAL>({\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'object':\n controller.enqueue(chunk.object);\n break;\n\n case 'text-delta':\n case 'finish':\n case 'error': // suppress error (use onError instead)\n break;\n\n default: {\n const _exhaustiveCheck: never = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n },\n }),\n ),\n );\n }\n\n get elementStream(): ELEMENT_STREAM {\n return this.outputStrategy.createElementStream(this.baseStream);\n }\n\n get textStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream, string>({\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'text-delta':\n controller.enqueue(chunk.textDelta);\n break;\n\n case 'object':\n case 'finish':\n case 'error': // suppress error (use onError instead)\n break;\n\n default: {\n const _exhaustiveCheck: never = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n },\n }),\n ),\n );\n }\n\n get fullStream(): AsyncIterableStream> {\n return createAsyncIterableStream(this.baseStream);\n }\n\n pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit) {\n pipeTextStreamToResponse({\n response,\n textStream: this.textStream,\n ...init,\n });\n }\n\n toTextStreamResponse(init?: ResponseInit): Response {\n return createTextStreamResponse({\n textStream: this.textStream,\n ...init,\n });\n }\n}\n\nexport type ObjectStreamInputPart =\n | string\n | {\n type: 'stream-start';\n warnings: LanguageModelV2CallWarning[];\n }\n | {\n type: 'error';\n error: unknown;\n }\n | {\n type: 'response-metadata';\n id?: string;\n timestamp?: Date;\n modelId?: string;\n }\n | {\n type: 'finish';\n finishReason: LanguageModelV2FinishReason;\n usage: LanguageModelV2Usage;\n providerMetadata?: SharedV2ProviderMetadata;\n };\n","import type { LanguageModelV2CallOptions } from '@ai-sdk/provider';\nimport {\n type FlexibleSchema,\n asSchema,\n safeParseJSON,\n safeValidateTypes,\n} from '@ai-sdk/provider-utils';\nimport { NoObjectGeneratedError } from '../error/no-object-generated-error';\nimport type { FinishReason } from '../types/language-model';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { LanguageModelUsage } from '../types/usage';\nimport type { DeepPartial } from '../util/deep-partial';\nimport { parsePartialJson } from '../util/parse-partial-json';\n\nexport interface Output {\n readonly type: 'object' | 'text';\n\n responseFormat: LanguageModelV2CallOptions['responseFormat'];\n\n parsePartial(options: {\n text: string;\n }): Promise<{ partial: PARTIAL } | undefined>;\n\n parseOutput(\n options: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ): Promise;\n}\n\nexport const text = (): Output => ({\n type: 'text',\n\n responseFormat: { type: 'text' },\n\n async parsePartial({ text }: { text: string }) {\n return { partial: text };\n },\n\n async parseOutput({ text }: { text: string }) {\n return text;\n },\n});\n\nexport const object = ({\n schema: inputSchema,\n}: {\n schema: FlexibleSchema;\n}): Output> => {\n const schema = asSchema(inputSchema);\n\n return {\n type: 'object',\n\n responseFormat: {\n type: 'json',\n schema: schema.jsonSchema,\n },\n\n async parsePartial({ text }: { text: string }) {\n const result = await parsePartialJson(text);\n\n switch (result.state) {\n case 'failed-parse':\n case 'undefined-input':\n return undefined;\n\n case 'repaired-parse':\n case 'successful-parse':\n return {\n // Note: currently no validation of partial results:\n partial: result.value as DeepPartial,\n };\n\n default: {\n const _exhaustiveCheck: never = result.state;\n throw new Error(`Unsupported parse state: ${_exhaustiveCheck}`);\n }\n }\n },\n\n async parseOutput(\n { text }: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ) {\n const parseResult = await safeParseJSON({ text });\n\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: could not parse the response.',\n cause: parseResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n const validationResult = await safeValidateTypes({\n value: parseResult.value,\n schema,\n });\n\n if (!validationResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: response did not match schema.',\n cause: validationResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n return validationResult.value;\n },\n };\n};\n","export * as core from \"../core/index.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./errors.js\";\nexport * from \"./parse.js\";\nexport * from \"./compat.js\";\n// zod-specified\nimport { config } from \"../core/index.js\";\nimport en from \"../locales/en.js\";\nconfig(en());\nexport { globalRegistry, registry, config, function, $output, $input, $brand, clone, regexes, treeifyError, prettifyError, formatError, flattenError, toJSONSchema, TimePrecision, NEVER, } from \"../core/index.js\";\nexport * as locales from \"../locales/index.js\";\n// iso\n// must be exported from top-level\n// https://github.com/colinhacks/zod/issues/4491\nexport { ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration } from \"./iso.js\";\nexport * as iso from \"./iso.js\";\nexport * as coerce from \"./coerce.js\";\n","export * from \"./core.js\";\nexport * from \"./parse.js\";\nexport * from \"./errors.js\";\nexport * from \"./schemas.js\";\nexport * from \"./checks.js\";\nexport * from \"./versions.js\";\nexport * as util from \"./util.js\";\nexport * as regexes from \"./regexes.js\";\nexport * as locales from \"../locales/index.js\";\nexport * from \"./registries.js\";\nexport * from \"./doc.js\";\nexport * from \"./function.js\";\nexport * from \"./api.js\";\nexport * from \"./to-json-schema.js\";\nexport * as JSONSchema from \"./json-schema.js\";\n","/** A special constant with type `never` */\nexport const NEVER = Object.freeze({\n status: \"aborted\",\n});\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, params) {\n function init(inst, def) {\n var _a;\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod ?? {},\n enumerable: false,\n });\n (_a = inst._zod).traits ?? (_a.traits = new Set());\n inst._zod.traits.add(name);\n initializer(inst, def);\n // support prototype modifications\n for (const k in _.prototype) {\n if (!(k in inst))\n Object.defineProperty(inst, k, { value: _.prototype[k].bind(inst) });\n }\n inst._zod.constr = _;\n inst._zod.def = def;\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n var _a;\n const inst = params?.Parent ? new Definition() : this;\n init(inst, def);\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n for (const fn of inst._zod.deferred) {\n fn();\n }\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport const globalConfig = {};\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error();\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\nexport function cached(getter) {\n const set = false;\n return {\n get value() {\n if (!set) {\n const value = getter();\n Object.defineProperty(this, \"value\", { value });\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n };\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nexport function defineLazy(object, key, getter) {\n const set = false;\n Object.defineProperty(object, key, {\n get() {\n if (!set) {\n const value = getter();\n object[key] = value;\n return value;\n }\n throw new Error(\"cached value already set\");\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport const captureStackTrace = Error.captureStackTrace\n ? Error.captureStackTrace\n : (..._args) => { };\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = cached(() => {\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = new Set([\"string\", \"number\", \"bigint\", \"boolean\", \"symbol\", \"undefined\"]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin === \"optional\" && shape[k]._zod.optout === \"optional\";\n });\n}\nexport const NUMBER_FORMAT_RANGES = {\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n};\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const newShape = {};\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // pick key\n newShape[key] = currDef.shape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function omit(schema, mask) {\n const newShape = { ...schema._zod.def.shape };\n const currDef = schema._zod.def; //.shape;\n for (const key in mask) {\n if (!(key in currDef.shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n delete newShape[key];\n }\n return clone(schema, {\n ...schema._zod.def,\n shape: newShape,\n checks: [],\n });\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const def = {\n ...schema._zod.def,\n get shape() {\n const _shape = { ...schema._zod.def.shape, ...shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n checks: [], // delete existing checks\n };\n return clone(schema, def);\n}\nexport function merge(a, b) {\n return clone(a, {\n ...a._zod.def,\n get shape() {\n const _shape = { ...a._zod.def.shape, ...b._zod.def.shape };\n assignProp(this, \"shape\", _shape); // self-caching\n return _shape;\n },\n catchall: b._zod.def.catchall,\n checks: [], // delete existing checks\n });\n}\nexport function partial(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in oldShape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n else {\n for (const key in oldShape) {\n // if (oldShape[key]!._zod.optin === \"optional\") continue;\n shape[key] = Class\n ? new Class({\n type: \"optional\",\n innerType: oldShape[key],\n })\n : oldShape[key];\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n checks: [],\n });\n}\nexport function required(Class, schema, mask) {\n const oldShape = schema._zod.def.shape;\n const shape = { ...oldShape };\n if (mask) {\n for (const key in mask) {\n if (!(key in shape)) {\n throw new Error(`Unrecognized key: \"${key}\"`);\n }\n if (!mask[key])\n continue;\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n else {\n for (const key in oldShape) {\n // overwrite with non-optional\n shape[key] = new Class({\n type: \"nonoptional\",\n innerType: oldShape[key],\n });\n }\n }\n return clone(schema, {\n ...schema._zod.def,\n shape,\n // optional: [],\n checks: [],\n });\n}\nexport function aborted(x, startIndex = 0) {\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true)\n return true;\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\nexport function finalizeIssue(iss, ctx, config) {\n const full = { ...iss, path: iss.path ?? [] };\n // for backwards compatibility\n if (!iss.message) {\n const message = unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\";\n full.message = message;\n }\n // delete (full as any).def;\n delete full.inst;\n delete full.continue;\n if (!ctx?.reportInput) {\n delete full.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n Object.defineProperty(inst, \"_zod\", {\n value: inst._zod,\n enumerable: false,\n });\n Object.defineProperty(inst, \"issues\", {\n value: def,\n enumerable: false,\n });\n Object.defineProperty(inst, \"message\", {\n get() {\n return JSON.stringify(def, util.jsonStringifyReplacer, 2);\n },\n enumerable: true,\n // configurable: false,\n });\n Object.defineProperty(inst, \"toString\", {\n value: () => inst.message,\n enumerable: false,\n });\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, { Parent: Error });\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues });\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues });\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, _mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a, _b;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, issue.path));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, issue.path);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n (_a = curr.properties)[el] ?? (_a[el] = { errors: [] });\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_b = curr.items)[el] ?? (_b[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(path) {\n const segs = [];\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => a.path.length - b.path.length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\nexport const _parse = (_Err) => (schema, value, _ctx, _params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => async (schema, value, _ctx, params) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee);\n throw e;\n }\n return result.value;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length\n ? {\n success: false,\n error: new (_Err ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? Object.assign(_ctx, { async: true }) : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length\n ? {\n success: false,\n error: new _Err(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n }\n : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n","export const cuid = /^[cC][^\\s-]{8,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$/;\n return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nexport const _emoji = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})$/;\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^[A-Za-z0-9_-]*$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp =\n// /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\nexport const hostname = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const domain = /^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces)\nexport const e164 = /^\\+(?:[0-9]){6,14}[0-9]$/;\n// const dateSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\nexport const date = /*@__PURE__*/ new RegExp(`^${dateSource}$`);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const time = timeSource({ precision: args.precision });\n const opts = [\"Z\"];\n if (args.local)\n opts.push(\"\");\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n const timeRegex = `${time}(?:${opts.join(\"|\")})`;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^\\d+n?$/;\nexport const integer = /^\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?/i;\nexport const boolean = /true|false/i;\nconst _null = /null/i;\nexport { _null as null };\nconst _undefined = /undefined/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.maximum : bag.exclusiveMaximum) ?? Number.POSITIVE_INFINITY;\n if (def.value < curr) {\n if (def.inclusive)\n bag.maximum = def.value;\n else\n bag.exclusiveMaximum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n const curr = (def.inclusive ? bag.minimum : bag.exclusiveMinimum) ?? Number.NEGATIVE_INFINITY;\n if (def.value > curr) {\n if (def.inclusive)\n bag.minimum = def.value;\n else\n bag.exclusiveMinimum = def.value;\n }\n });\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n var _a;\n (_a = inst._zod.bag).multipleOf ?? (_a.multipleOf = def.value);\n });\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n if (isInt)\n bag.pattern = regexes.integer;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n bag.minimum = minimum;\n bag.maximum = maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inst,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.size;\n bag.maximum = def.size;\n bag.size = def.size;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.maximum ?? Number.POSITIVE_INFINITY);\n if (def.maximum < curr)\n inst._zod.bag.maximum = def.maximum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const curr = (inst._zod.bag.minimum ?? Number.NEGATIVE_INFINITY);\n if (def.minimum > curr)\n inst._zod.bag.minimum = def.minimum;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n });\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.minimum = def.length;\n bag.maximum = def.length;\n bag.length = def.length;\n });\n inst._zod.check = (payload) => {\n const input = payload.value;\n const length = input.length;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = def.format;\n if (def.pattern) {\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(def.pattern);\n }\n });\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position}}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.patterns ?? (bag.patterns = new Set());\n bag.patterns.add(pattern);\n });\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.mime = def.mime;\n });\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","export class Doc {\n constructor(args = []) {\n this.content = [];\n this.indent = 0;\n if (this)\n this.args = args;\n }\n indented(fn) {\n this.indent += 1;\n fn(this);\n this.indent -= 1;\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const args = this?.args;\n const content = this?.content ?? [``];\n const lines = [...content.map((x) => ` ${x}`)];\n // console.log(lines.join(\"\\n\"));\n return new F(...args, lines.join(\"\\n\"));\n }\n}\n","export const version = {\n major: 4,\n minor: 0,\n patch: 0,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { safeParse, safeParseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const checks = [...(inst._zod.def.checks ?? [])];\n // if inst is itself a checks.$ZodCheck, run it as a check\n if (inst._zod.traits.has(\"$ZodCheck\")) {\n checks.unshift(inst);\n }\n //\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer\n // inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n inst._zod.run = (payload, ctx) => {\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n inst[\"~standard\"] = {\n validate: (value) => {\n try {\n const r = safeParse(inst, value);\n return r.success ? { value: r.data } : { issues: r.error?.issues };\n }\n catch (_) {\n return safeParseAsync(inst, value).then((r) => (r.success ? { value: r.data } : { issues: r.error?.issues }));\n }\n },\n vendor: \"zod\",\n version: 1,\n };\n});\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = [...(inst?._zod.bag?.patterns ?? [])].pop() ?? regexes.string(inst._zod.bag);\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n const orig = payload.value;\n const url = new URL(orig);\n const href = url.href;\n if (def.hostname) {\n def.hostname.lastIndex = 0;\n if (!def.hostname.test(url.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: regexes.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n if (def.protocol) {\n def.protocol.lastIndex = 0;\n if (!def.protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n }\n // payload.value = url.href;\n if (!orig.endsWith(\"/\") && href.endsWith(\"/\")) {\n payload.value = href.slice(0, -1);\n }\n else {\n payload.value = href;\n }\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.nanoid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv4`;\n });\n});\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n const bag = inst._zod.bag;\n bag.format = `ipv6`;\n });\n inst._zod.check = (payload) => {\n try {\n new URL(`http://[${payload.value}]`);\n // return;\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n const [address, prefix] = payload.value.split(\"/\");\n try {\n if (!prefix)\n throw new Error();\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n throw new Error();\n if (prefixNum < 0 || prefixNum > 128)\n throw new Error();\n new URL(`http://[${address}]`);\n }\n catch {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n if (data.length % 4 !== 0)\n return false;\n try {\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64URL(data) {\n if (!regexes.base64url.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.base64url);\n $ZodStringFormat.init(inst, def);\n inst._zod.onattach.push((inst) => {\n inst._zod.bag.contentEncoding = \"base64url\";\n });\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = inst._zod.bag.pattern ?? regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? \"Infinity\"\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checksp\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = Array(input.length);\n const proms = [];\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n});\nfunction handleObjectResult(result, final, key) {\n // if(isOptional)\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n final.value[key] = result.value;\n}\nfunction handleOptionalObjectResult(result, final, key, input) {\n if (result.issues.length) {\n // validation failed against value schema\n if (input[key] === undefined) {\n // if input was undefined, ignore the error\n if (key in input) {\n final.value[key] = undefined;\n }\n else {\n final.value[key] = result.value;\n }\n }\n else {\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n }\n else if (result.value === undefined) {\n // validation returned `undefined`\n if (key in input)\n final.value[key] = undefined;\n }\n else {\n // non-undefined value\n final.value[key] = result.value;\n }\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const _normalized = util.cached(() => {\n const keys = Object.keys(def.shape);\n for (const k of keys) {\n if (!(def.shape[k] instanceof $ZodType)) {\n throw new Error(`Invalid element at key \"${k}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n shape: def.shape,\n keys,\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n });\n util.defineLazy(inst._zod, \"propValues\", () => {\n const shape = def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n propValues[key] ?? (propValues[key] = new Set());\n for (const v of field.values)\n propValues[key].add(v);\n }\n }\n return propValues;\n });\n const generateFastpass = (shape) => {\n const doc = new Doc([\"shape\", \"payload\", \"ctx\"]);\n const normalized = _normalized.value;\n const parseStr = (key) => {\n const k = util.esc(key);\n return `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n };\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.keys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(`const newResult = {}`);\n for (const key of normalized.keys) {\n if (normalized.optionalKeys.has(key)) {\n const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n const k = util.esc(key);\n doc.write(`\n if (${id}.issues.length) {\n if (input[${k}] === undefined) {\n if (${k} in input) {\n newResult[${k}] = undefined;\n }\n } else {\n payload.issues = payload.issues.concat(\n ${id}.issues.map((iss) => ({\n ...iss,\n path: iss.path ? [${k}, ...iss.path] : [${k}],\n }))\n );\n }\n } else if (${id}.value === undefined) {\n if (${k} in input) newResult[${k}] = undefined;\n } else {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n else {\n const id = ids[key];\n // const id = ids[key];\n doc.write(`const ${id} = ${parseStr(key)};`);\n doc.write(`\n if (${id}.issues.length) payload.issues = payload.issues.concat(${id}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${util.esc(key)}, ...iss.path] : [${util.esc(key)}]\n })));`);\n doc.write(`newResult[${util.esc(key)}] = ${id}.value`);\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n const fn = doc.compile();\n return (payload, ctx) => fn(shape, payload, ctx);\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n }\n else {\n payload.value = {};\n const shape = value.shape;\n for (const key of value.keys) {\n const el = shape[key];\n // do not add omitted optional keys\n // if (!(key in input)) {\n // if (optionalKeys.has(key)) continue;\n // payload.issues.push({\n // code: \"invalid_type\",\n // path: [key],\n // expected: \"nonoptional\",\n // note: `Missing required key: \"${key}\"`,\n // input,\n // inst,\n // });\n // }\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n const isOptional = el._zod.optin === \"optional\" && el._zod.optout === \"optional\";\n if (r instanceof Promise) {\n proms.push(r.then((r) => isOptional ? handleOptionalObjectResult(r, payload, key, input) : handleObjectResult(r, payload, key)));\n }\n else if (isOptional) {\n handleOptionalObjectResult(r, payload, key, input);\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n }\n if (!catchall) {\n // return payload;\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n const unrecognized = [];\n // iterate over input keys\n const keySet = value.keySet;\n const _catchall = catchall._zod;\n const t = _catchall.def.type;\n for (const key of Object.keys(input)) {\n if (keySet.has(key))\n continue;\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handleObjectResult(r, payload, key)));\n }\n else {\n handleObjectResult(r, payload, key);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.options.some((o) => o._zod.optin === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"optout\", () => def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazy(inst._zod, \"values\", () => {\n if (def.options.every((o) => o._zod.values)) {\n return new Set(def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n if (def.options.every((o) => o._zod.pattern)) {\n const patterns = def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazy(inst._zod, \"propValues\", () => {\n const propValues = {};\n for (const option of def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const [k, v] of Object.entries(pv)) {\n if (!propValues[k])\n propValues[k] = new Set();\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n return propValues;\n });\n const disc = util.cached(() => {\n const opts = def.options;\n const map = new Map();\n for (const o of opts) {\n const values = o._zod.propValues[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(o)}\"`);\n for (const v of values) {\n if (map.has(v)) {\n throw new Error(`Duplicate discriminator value \"${String(v)}\"`);\n }\n map.set(v, o);\n }\n }\n return map;\n });\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const opt = disc.value.get(input?.[def.discriminator]);\n if (opt) {\n return opt._zod.run(payload, ctx);\n }\n if (def.unionFallback) {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nfunction mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n if (left.issues.length) {\n result.issues.push(...left.issues);\n }\n if (right.issues.length) {\n result.issues.push(...right.issues);\n }\n if (util.aborted(result))\n return result;\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const optStart = items.length - [...items].reverse().findIndex((item) => item._zod.optin !== \"optional\");\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = [];\n const proms = [];\n if (!def.rest) {\n const tooBig = input.length > items.length;\n const tooSmall = input.length < optStart - 1;\n if (tooBig || tooSmall) {\n payload.issues.push({\n input,\n inst,\n origin: \"array\",\n ...(tooBig ? { code: \"too_big\", maximum: items.length } : { code: \"too_small\", minimum: items.length }),\n });\n return payload;\n }\n }\n let i = -1;\n for (const item of items) {\n i++;\n if (i >= input.length)\n if (i >= optStart)\n continue;\n const result = item._zod.run({\n value: input[i],\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n if (def.rest) {\n const rest = input.slice(items.length);\n for (const el of rest) {\n i++;\n const result = def.rest._zod.run({\n value: el,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleTupleResult(result, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n if (def.keyType._zod.values) {\n const values = def.keyType._zod.values;\n payload.value = {};\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[key] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!values.has(key)) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n });\n }\n }\n else {\n payload.value = {};\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n origin: \"record\",\n code: \"invalid_key\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n payload.value[keyResult.value] = keyResult.value;\n continue;\n }\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[keyResult.value] = result.value;\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = new Map();\n for (const [key, value] of input) {\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_key\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = new Set();\n for (const item of input) {\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n inst._zod.values = new Set(values);\n inst._zod.pattern = new RegExp(`^(${values\n .filter((k) => util.propertyKeyTypes.has(typeof k))\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o.toString()))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.values = new Set(def.values);\n inst._zod.pattern = new RegExp(`^(${def.values\n .map((o) => (typeof o === \"string\" ? util.escapeRegex(o) : o ? o.toString() : String(o)))\n .join(\"|\")})$`);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (inst._zod.values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const _out = def.transform(payload.value, payload);\n if (_ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n inst._zod.optout = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, undefined]) : undefined;\n });\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (def.innerType._zod.optin === \"optional\") {\n return def.innerType._zod.run(payload, ctx);\n }\n if (payload.value === undefined) {\n return payload;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"pattern\", () => {\n const pattern = def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazy(inst._zod, \"values\", () => {\n return def.innerType._zod.values ? new Set([...def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault always returns the default value immediately.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => {\n const v = def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n });\n }\n payload.value = result.value;\n if (result.issues.length) {\n payload.value = def.catchValue({\n ...payload,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n payload.issues = [];\n }\n return payload;\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"values\", () => def.in._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.in._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.out._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def, ctx));\n }\n return handlePipeResult(left, def, ctx);\n };\n});\nfunction handlePipeResult(left, def, ctx) {\n if (util.aborted(left)) {\n return left;\n }\n return def.out._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"propValues\", () => def.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"values\", () => def.innerType._zod.values);\n util.defineLazy(inst._zod, \"optin\", () => def.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => def.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n payload.value = Object.freeze(payload.value);\n return payload;\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (part instanceof $ZodType) {\n if (!part._zod.pattern) {\n // if (!source)\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;\n if (!source)\n throw new Error(`Invalid template literal part: ${part._zod.traits}`);\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n regexParts.push(source.slice(start, end));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"template_literal\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazy(inst._zod, \"innerType\", () => def.getter());\n util.defineLazy(inst._zod, \"pattern\", () => inst._zod.innerType._zod.pattern);\n util.defineLazy(inst._zod, \"propValues\", () => inst._zod.innerType._zod.propValues);\n util.defineLazy(inst._zod, \"optin\", () => inst._zod.innerType._zod.optin);\n util.defineLazy(inst._zod, \"optout\", () => inst._zod.innerType._zod.optout);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","export { default as ar } from \"./ar.js\";\nexport { default as az } from \"./az.js\";\nexport { default as be } from \"./be.js\";\nexport { default as ca } from \"./ca.js\";\nexport { default as cs } from \"./cs.js\";\nexport { default as de } from \"./de.js\";\nexport { default as en } from \"./en.js\";\nexport { default as eo } from \"./eo.js\";\nexport { default as es } from \"./es.js\";\nexport { default as fa } from \"./fa.js\";\nexport { default as fi } from \"./fi.js\";\nexport { default as fr } from \"./fr.js\";\nexport { default as frCA } from \"./fr-CA.js\";\nexport { default as he } from \"./he.js\";\nexport { default as hu } from \"./hu.js\";\nexport { default as id } from \"./id.js\";\nexport { default as it } from \"./it.js\";\nexport { default as ja } from \"./ja.js\";\nexport { default as kh } from \"./kh.js\";\nexport { default as ko } from \"./ko.js\";\nexport { default as mk } from \"./mk.js\";\nexport { default as ms } from \"./ms.js\";\nexport { default as nl } from \"./nl.js\";\nexport { default as no } from \"./no.js\";\nexport { default as ota } from \"./ota.js\";\nexport { default as ps } from \"./ps.js\";\nexport { default as pl } from \"./pl.js\";\nexport { default as pt } from \"./pt.js\";\nexport { default as ru } from \"./ru.js\";\nexport { default as sl } from \"./sl.js\";\nexport { default as sv } from \"./sv.js\";\nexport { default as ta } from \"./ta.js\";\nexport { default as th } from \"./th.js\";\nexport { default as tr } from \"./tr.js\";\nexport { default as ua } from \"./ua.js\";\nexport { default as ur } from \"./ur.js\";\nexport { default as vi } from \"./vi.js\";\nexport { default as zhCN } from \"./zh-CN.js\";\nexport { default as zhTW } from \"./zh-TW.js\";\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حرف\", verb: \"أن يحوي\" },\n file: { unit: \"بايت\", verb: \"أن يحوي\" },\n array: { unit: \"عنصر\", verb: \"أن يحوي\" },\n set: { unit: \"عنصر\", verb: \"أن يحوي\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"مدخل\",\n email: \"بريد إلكتروني\",\n url: \"رابط\",\n emoji: \"إيموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاريخ ووقت بمعيار ISO\",\n date: \"تاريخ بمعيار ISO\",\n time: \"وقت بمعيار ISO\",\n duration: \"مدة بمعيار ISO\",\n ipv4: \"عنوان IPv4\",\n ipv6: \"عنوان IPv6\",\n cidrv4: \"مدى عناوين بصيغة IPv4\",\n cidrv6: \"مدى عناوين بصيغة IPv6\",\n base64: \"نَص بترميز base64-encoded\",\n base64url: \"نَص بترميز base64url-encoded\",\n json_string: \"نَص على هيئة JSON\",\n e164: \"رقم هاتف بمعيار E.164\",\n jwt: \"JWT\",\n template_literal: \"مدخل\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `مدخلات غير مقبولة: يفترض إدخال ${issue.expected}، ولكن تم إدخال ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `مدخلات غير مقبولة: يفترض إدخال ${util.stringifyPrimitive(issue.values[0])}`;\n return `اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return ` أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"}`;\n return `أكبر من اللازم: يفترض أن تكون ${issue.origin ?? \"القيمة\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `نَص غير مقبول: يجب أن يبدأ بـ \"${issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `نَص غير مقبول: يجب أن ينتهي بـ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `نَص غير مقبول: يجب أن يتضمَّن \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} غير مقبول`;\n }\n case \"not_multiple_of\":\n return `رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `معرف${issue.keys.length > 1 ? \"ات\" : \"\"} غريب${issue.keys.length > 1 ? \"ة\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `معرف غير مقبول في ${issue.origin}`;\n case \"invalid_union\":\n return \"مدخل غير مقبول\";\n case \"invalid_element\":\n return `مدخل غير مقبول في ${issue.origin}`;\n default:\n return \"مدخل غير مقبول\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"simvol\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"element\", verb: \"olmalıdır\" },\n set: { unit: \"element\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Yanlış dəyər: gözlənilən ${issue.expected}, daxil olan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Yanlış dəyər: gözlənilən ${util.stringifyPrimitive(issue.values[0])}`;\n return `Yanlış seçim: aşağıdakılardan biri olmalıdır: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n return `Çox böyük: gözlənilən ${issue.origin ?? \"dəyər\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Yanlış mətn: \"${_issue.prefix}\" ilə başlamalıdır`;\n if (_issue.format === \"ends_with\")\n return `Yanlış mətn: \"${_issue.suffix}\" ilə bitməlidir`;\n if (_issue.format === \"includes\")\n return `Yanlış mətn: \"${_issue.includes}\" daxil olmalıdır`;\n if (_issue.format === \"regex\")\n return `Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`;\n return `Yanlış ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`;\n case \"unrecognized_keys\":\n return `Tanınmayan açar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} daxilində yanlış açar`;\n case \"invalid_union\":\n return \"Yanlış dəyər\";\n case \"invalid_element\":\n return `${issue.origin} daxilində yanlış dəyər`;\n default:\n return `Yanlış dəyər`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getBelarusianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"сімвал\",\n few: \"сімвалы\",\n many: \"сімвалаў\",\n },\n verb: \"мець\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элементы\",\n many: \"элементаў\",\n },\n verb: \"мець\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байты\",\n many: \"байтаў\",\n },\n verb: \"мець\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"лік\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масіў\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"увод\",\n email: \"email адрас\",\n url: \"URL\",\n emoji: \"эмодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата і час\",\n date: \"ISO дата\",\n time: \"ISO час\",\n duration: \"ISO працягласць\",\n ipv4: \"IPv4 адрас\",\n ipv6: \"IPv6 адрас\",\n cidrv4: \"IPv4 дыяпазон\",\n cidrv6: \"IPv6 дыяпазон\",\n base64: \"радок у фармаце base64\",\n base64url: \"радок у фармаце base64url\",\n json_string: \"JSON радок\",\n e164: \"нумар E.164\",\n jwt: \"JWT\",\n template_literal: \"увод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Няправільны ўвод: чакаўся ${issue.expected}, атрымана ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Няправільны ўвод: чакалася ${util.stringifyPrimitive(issue.values[0])}`;\n return `Няправільны варыянт: чакаўся адзін з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getBelarusianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Занадта вялікі: чакалася, што ${issue.origin ?? \"значэнне\"} павінна быць ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getBelarusianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Няправільны радок: павінен пачынацца з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Няправільны радок: павінен заканчвацца на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Няправільны радок: павінен змяшчаць \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`;\n return `Няправільны ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Няправільны лік: павінен быць кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспазнаны ${issue.keys.length > 1 ? \"ключы\" : \"ключ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Няправільны ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Няправільны ўвод\";\n case \"invalid_element\":\n return `Няправільнае значэнне ў ${issue.origin}`;\n default:\n return `Няправільны ўвод`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caràcters\", verb: \"contenir\" },\n file: { unit: \"bytes\", verb: \"contenir\" },\n array: { unit: \"elements\", verb: \"contenir\" },\n set: { unit: \"elements\", verb: \"contenir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"adreça electrònica\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"durada ISO\",\n ipv4: \"adreça IPv4\",\n ipv6: \"adreça IPv6\",\n cidrv4: \"rang IPv4\",\n cidrv6: \"rang IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"cadena codificada en base64url\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${parsedType(issue.input)}`;\n // return `Tipus invàlid: s'esperava ${issue.expected}, s'ha rebut ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Valor invàlid: s'esperava ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opció invàlida: s'esperava una de ${util.joinValues(issue.values, \" o \")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"com a màxim\" : \"menys de\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Massa gran: s'esperava que ${issue.origin ?? \"el valor\"} fos ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"com a mínim\" : \"més de\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Format invàlid: ha de començar amb \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Format invàlid: ha d'acabar amb \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Format invàlid: ha d'incloure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`;\n return `Format invàlid per a ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número invàlid: ha de ser múltiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clau${issue.keys.length > 1 ? \"s\" : \"\"} no reconeguda${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clau invàlida a ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada invàlida\"; // Could also be \"Tipus d'unió invàlid\" but \"Entrada invàlida\" is more general\n case \"invalid_element\":\n return `Element invàlid a ${issue.origin}`;\n default:\n return `Entrada invàlida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaků\", verb: \"mít\" },\n file: { unit: \"bajtů\", verb: \"mít\" },\n array: { unit: \"prvků\", verb: \"mít\" },\n set: { unit: \"prvků\", verb: \"mít\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"číslo\";\n }\n case \"string\": {\n return \"řetězec\";\n }\n case \"boolean\": {\n return \"boolean\";\n }\n case \"bigint\": {\n return \"bigint\";\n }\n case \"function\": {\n return \"funkce\";\n }\n case \"symbol\": {\n return \"symbol\";\n }\n case \"undefined\": {\n return \"undefined\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"pole\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"regulární výraz\",\n email: \"e-mailová adresa\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"datum a čas ve formátu ISO\",\n date: \"datum ve formátu ISO\",\n time: \"čas ve formátu ISO\",\n duration: \"doba trvání ISO\",\n ipv4: \"IPv4 adresa\",\n ipv6: \"IPv6 adresa\",\n cidrv4: \"rozsah IPv4\",\n cidrv6: \"rozsah IPv6\",\n base64: \"řetězec zakódovaný ve formátu base64\",\n base64url: \"řetězec zakódovaný ve formátu base64url\",\n json_string: \"řetězec ve formátu JSON\",\n e164: \"číslo E.164\",\n jwt: \"JWT\",\n template_literal: \"vstup\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neplatný vstup: očekáváno ${issue.expected}, obdrženo ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neplatný vstup: očekáváno ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neplatná možnost: očekávána jedna z hodnot ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš velká: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"prvků\"}`;\n }\n return `Hodnota je příliš malá: ${issue.origin ?? \"hodnota\"} musí být ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Neplatný řetězec: musí začínat na \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Neplatný řetězec: musí končit na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neplatný řetězec: musí obsahovat \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`;\n return `Neplatný formát ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neplatné číslo: musí být násobkem ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neznámé klíče: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neplatný klíč v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neplatný vstup\";\n case \"invalid_element\":\n return `Neplatná hodnota v ${issue.origin}`;\n default:\n return `Neplatný vstup`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"Zeichen\", verb: \"zu haben\" },\n file: { unit: \"Bytes\", verb: \"zu haben\" },\n array: { unit: \"Elemente\", verb: \"zu haben\" },\n set: { unit: \"Elemente\", verb: \"zu haben\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"Zahl\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"Array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"Eingabe\",\n email: \"E-Mail-Adresse\",\n url: \"URL\",\n emoji: \"Emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-Datum und -Uhrzeit\",\n date: \"ISO-Datum\",\n time: \"ISO-Uhrzeit\",\n duration: \"ISO-Dauer\",\n ipv4: \"IPv4-Adresse\",\n ipv6: \"IPv6-Adresse\",\n cidrv4: \"IPv4-Bereich\",\n cidrv6: \"IPv6-Bereich\",\n base64: \"Base64-codierter String\",\n base64url: \"Base64-URL-codierter String\",\n json_string: \"JSON-String\",\n e164: \"E.164-Nummer\",\n jwt: \"JWT\",\n template_literal: \"Eingabe\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ungültige Eingabe: erwartet ${issue.expected}, erhalten ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ungültige Eingabe: erwartet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ungültige Option: erwartet eine von ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"Elemente\"} hat`;\n return `Zu groß: erwartet, dass ${issue.origin ?? \"Wert\"} ${adj}${issue.maximum.toString()} ist`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`;\n }\n return `Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ungültiger String: muss mit \"${_issue.prefix}\" beginnen`;\n if (_issue.format === \"ends_with\")\n return `Ungültiger String: muss mit \"${_issue.suffix}\" enden`;\n if (_issue.format === \"includes\")\n return `Ungültiger String: muss \"${_issue.includes}\" enthalten`;\n if (_issue.format === \"regex\")\n return `Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`;\n return `Ungültig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Unbekannte Schlüssel\" : \"Unbekannter Schlüssel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ungültiger Schlüssel in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ungültige Eingabe\";\n case \"invalid_element\":\n return `Ungültiger Wert in ${issue.origin}`;\n default:\n return `Ungültige Eingabe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Invalid input: expected ${issue.expected}, received ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombro\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabelo\";\n }\n if (data === null) {\n return \"senvalora\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karaktrojn\", verb: \"havi\" },\n file: { unit: \"bajtojn\", verb: \"havi\" },\n array: { unit: \"elementojn\", verb: \"havi\" },\n set: { unit: \"elementojn\", verb: \"havi\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"enigo\",\n email: \"retadreso\",\n url: \"URL\",\n emoji: \"emoĝio\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datotempo\",\n date: \"ISO-dato\",\n time: \"ISO-tempo\",\n duration: \"ISO-daŭro\",\n ipv4: \"IPv4-adreso\",\n ipv6: \"IPv6-adreso\",\n cidrv4: \"IPv4-rango\",\n cidrv6: \"IPv6-rango\",\n base64: \"64-ume kodita karaktraro\",\n base64url: \"URL-64-ume kodita karaktraro\",\n json_string: \"JSON-karaktraro\",\n e164: \"E.164-nombro\",\n jwt: \"JWT\",\n template_literal: \"enigo\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nevalida enigo: atendiĝis ${issue.expected}, riceviĝis ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nevalida enigo: atendiĝis ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nevalida opcio: atendiĝis unu el ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementojn\"}`;\n return `Tro granda: atendiĝis ke ${issue.origin ?? \"valoro\"} havu ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nevalida karaktraro: devas komenciĝi per \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nevalida karaktraro: devas finiĝi per \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nevalida karaktraro: devas inkluzivi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;\n return `Nevalida ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nevalida nombro: devas esti oblo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nekonata${issue.keys.length > 1 ? \"j\" : \"\"} ŝlosilo${issue.keys.length > 1 ? \"j\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nevalida ŝlosilo en ${issue.origin}`;\n case \"invalid_union\":\n return \"Nevalida enigo\";\n case \"invalid_element\":\n return `Nevalida valoro en ${issue.origin}`;\n default:\n return `Nevalida enigo`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"tener\" },\n file: { unit: \"bytes\", verb: \"tener\" },\n array: { unit: \"elementos\", verb: \"tener\" },\n set: { unit: \"elementos\", verb: \"tener\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"número\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"arreglo\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrada\",\n email: \"dirección de correo electrónico\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"fecha y hora ISO\",\n date: \"fecha ISO\",\n time: \"hora ISO\",\n duration: \"duración ISO\",\n ipv4: \"dirección IPv4\",\n ipv6: \"dirección IPv6\",\n cidrv4: \"rango IPv4\",\n cidrv6: \"rango IPv6\",\n base64: \"cadena codificada en base64\",\n base64url: \"URL codificada en base64\",\n json_string: \"cadena JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrada inválida: se esperaba ${issue.expected}, recibido ${parsedType(issue.input)}`;\n // return `Entrada inválida: se esperaba ${issue.expected}, recibido ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: se esperaba ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opción inválida: se esperaba una de ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Demasiado grande: se esperaba que ${issue.origin ?? \"valor\"} fuera ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Demasiado pequeño: se esperaba que ${issue.origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Demasiado pequeño: se esperaba que ${issue.origin} fuera ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Cadena inválida: debe comenzar con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Cadena inválida: debe terminar en \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Cadena inválida: debe incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`;\n return `Inválido ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Número inválido: debe ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Llave${issue.keys.length > 1 ? \"s\" : \"\"} desconocida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Llave inválida en ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido en ${issue.origin}`;\n default:\n return `Entrada inválida`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"کاراکتر\", verb: \"داشته باشد\" },\n file: { unit: \"بایت\", verb: \"داشته باشد\" },\n array: { unit: \"آیتم\", verb: \"داشته باشد\" },\n set: { unit: \"آیتم\", verb: \"داشته باشد\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرایه\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودی\",\n email: \"آدرس ایمیل\",\n url: \"URL\",\n emoji: \"ایموجی\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"تاریخ و زمان ایزو\",\n date: \"تاریخ ایزو\",\n time: \"زمان ایزو\",\n duration: \"مدت زمان ایزو\",\n ipv4: \"IPv4 آدرس\",\n ipv6: \"IPv6 آدرس\",\n cidrv4: \"IPv4 دامنه\",\n cidrv6: \"IPv6 دامنه\",\n base64: \"base64-encoded رشته\",\n base64url: \"base64url-encoded رشته\",\n json_string: \"JSON رشته\",\n e164: \"E.164 عدد\",\n jwt: \"JWT\",\n template_literal: \"ورودی\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ورودی نامعتبر: می‌بایست ${issue.expected} می‌بود، ${parsedType(issue.input)} دریافت شد`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ورودی نامعتبر: می‌بایست ${util.stringifyPrimitive(issue.values[0])} می‌بود`;\n }\n return `گزینه نامعتبر: می‌بایست یکی از ${util.joinValues(issue.values, \"|\")} می‌بود`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصر\"} باشد`;\n }\n return `خیلی بزرگ: ${issue.origin ?? \"مقدار\"} باید ${adj}${issue.maximum.toString()} باشد`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`;\n }\n return `خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `رشته نامعتبر: باید با \"${_issue.prefix}\" شروع شود`;\n }\n if (_issue.format === \"ends_with\") {\n return `رشته نامعتبر: باید با \"${_issue.suffix}\" تمام شود`;\n }\n if (_issue.format === \"includes\") {\n return `رشته نامعتبر: باید شامل \"${_issue.includes}\" باشد`;\n }\n if (_issue.format === \"regex\") {\n return `رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`;\n }\n return `${Nouns[_issue.format] ?? issue.format} نامعتبر`;\n }\n case \"not_multiple_of\":\n return `عدد نامعتبر: باید مضرب ${issue.divisor} باشد`;\n case \"unrecognized_keys\":\n return `کلید${issue.keys.length > 1 ? \"های\" : \"\"} ناشناس: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `کلید ناشناس در ${issue.origin}`;\n case \"invalid_union\":\n return `ورودی نامعتبر`;\n case \"invalid_element\":\n return `مقدار نامعتبر در ${issue.origin}`;\n default:\n return `ورودی نامعتبر`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"merkkiä\", subject: \"merkkijonon\" },\n file: { unit: \"tavua\", subject: \"tiedoston\" },\n array: { unit: \"alkiota\", subject: \"listan\" },\n set: { unit: \"alkiota\", subject: \"joukon\" },\n number: { unit: \"\", subject: \"luvun\" },\n bigint: { unit: \"\", subject: \"suuren kokonaisluvun\" },\n int: { unit: \"\", subject: \"kokonaisluvun\" },\n date: { unit: \"\", subject: \"päivämäärän\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"säännöllinen lauseke\",\n email: \"sähköpostiosoite\",\n url: \"URL-osoite\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-aikaleima\",\n date: \"ISO-päivämäärä\",\n time: \"ISO-aika\",\n duration: \"ISO-kesto\",\n ipv4: \"IPv4-osoite\",\n ipv6: \"IPv6-osoite\",\n cidrv4: \"IPv4-alue\",\n cidrv6: \"IPv6-alue\",\n base64: \"base64-koodattu merkkijono\",\n base64url: \"base64url-koodattu merkkijono\",\n json_string: \"JSON-merkkijono\",\n e164: \"E.164-luku\",\n jwt: \"JWT\",\n template_literal: \"templaattimerkkijono\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Virheellinen tyyppi: odotettiin ${issue.expected}, oli ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Virheellinen syöte: täytyy olla ${util.stringifyPrimitive(issue.values[0])}`;\n return `Virheellinen valinta: täytyy olla yksi seuraavista: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim();\n }\n return `Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Virheellinen syöte: täytyy alkaa \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Virheellinen syöte: täytyy loppua \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Virheellinen syöte: täytyy sisältää \"${_issue.includes}\"`;\n if (_issue.format === \"regex\") {\n return `Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`;\n }\n return `Virheellinen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Tuntemattomat avaimet\" : \"Tuntematon avain\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return \"Virheellinen avain tietueessa\";\n case \"invalid_union\":\n return \"Virheellinen unioni\";\n case \"invalid_element\":\n return \"Virheellinen arvo joukossa\";\n default:\n return `Virheellinen syöte`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombre\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tableau\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date et heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : ${issue.expected} attendu, ${parsedType(issue.input)} reçu`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : ${util.stringifyPrimitive(issue.values[0])} attendu`;\n return `Option invalide : une valeur parmi ${util.joinValues(issue.values, \"|\")} attendue`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"élément(s)\"}`;\n return `Trop grand : ${issue.origin ?? \"valeur\"} doit être ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : ${issue.origin} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : ${issue.origin} doit être ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au modèle ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caractères\", verb: \"avoir\" },\n file: { unit: \"octets\", verb: \"avoir\" },\n array: { unit: \"éléments\", verb: \"avoir\" },\n set: { unit: \"éléments\", verb: \"avoir\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"entrée\",\n email: \"adresse courriel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"date-heure ISO\",\n date: \"date ISO\",\n time: \"heure ISO\",\n duration: \"durée ISO\",\n ipv4: \"adresse IPv4\",\n ipv6: \"adresse IPv6\",\n cidrv4: \"plage IPv4\",\n cidrv6: \"plage IPv6\",\n base64: \"chaîne encodée en base64\",\n base64url: \"chaîne encodée en base64url\",\n json_string: \"chaîne JSON\",\n e164: \"numéro E.164\",\n jwt: \"JWT\",\n template_literal: \"entrée\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Entrée invalide : attendu ${issue.expected}, reçu ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrée invalide : attendu ${util.stringifyPrimitive(issue.values[0])}`;\n return `Option invalide : attendu l'une des valeurs suivantes ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"≤\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;\n return `Trop grand : attendu que ${issue.origin ?? \"la valeur\"} soit ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"≥\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Chaîne invalide : doit commencer par \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Chaîne invalide : doit se terminer par \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chaîne invalide : doit inclure \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} invalide`;\n }\n case \"not_multiple_of\":\n return `Nombre invalide : doit être un multiple de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Clé${issue.keys.length > 1 ? \"s\" : \"\"} non reconnue${issue.keys.length > 1 ? \"s\" : \"\"} : ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Clé invalide dans ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrée invalide\";\n case \"invalid_element\":\n return `Valeur invalide dans ${issue.origin}`;\n default:\n return `Entrée invalide`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"אותיות\", verb: \"לכלול\" },\n file: { unit: \"בייטים\", verb: \"לכלול\" },\n array: { unit: \"פריטים\", verb: \"לכלול\" },\n set: { unit: \"פריטים\", verb: \"לכלול\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"קלט\",\n email: \"כתובת אימייל\",\n url: \"כתובת רשת\",\n emoji: \"אימוג'י\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"תאריך וזמן ISO\",\n date: \"תאריך ISO\",\n time: \"זמן ISO\",\n duration: \"משך זמן ISO\",\n ipv4: \"כתובת IPv4\",\n ipv6: \"כתובת IPv6\",\n cidrv4: \"טווח IPv4\",\n cidrv6: \"טווח IPv6\",\n base64: \"מחרוזת בבסיס 64\",\n base64url: \"מחרוזת בבסיס 64 לכתובות רשת\",\n json_string: \"מחרוזת JSON\",\n e164: \"מספר E.164\",\n jwt: \"JWT\",\n template_literal: \"קלט\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `קלט לא תקין: צריך ${issue.expected}, התקבל ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `קלט לא תקין: צריך ${util.stringifyPrimitive(issue.values[0])}`;\n return `קלט לא תקין: צריך אחת מהאפשרויות ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `גדול מדי: ${issue.origin ?? \"value\"} צריך להיות ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `מחרוזת לא תקינה: חייבת להתחיל ב\"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `מחרוזת לא תקינה: חייבת להסתיים ב \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `מחרוזת לא תקינה: חייבת לכלול \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `מחרוזת לא תקינה: חייבת להתאים לתבנית ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} לא תקין`;\n }\n case \"not_multiple_of\":\n return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `מפתח${issue.keys.length > 1 ? \"ות\" : \"\"} לא מזוה${issue.keys.length > 1 ? \"ים\" : \"ה\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `מפתח לא תקין ב${issue.origin}`;\n case \"invalid_union\":\n return \"קלט לא תקין\";\n case \"invalid_element\":\n return `ערך לא תקין ב${issue.origin}`;\n default:\n return `קלט לא תקין`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"legyen\" },\n file: { unit: \"byte\", verb: \"legyen\" },\n array: { unit: \"elem\", verb: \"legyen\" },\n set: { unit: \"elem\", verb: \"legyen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"szám\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tömb\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"bemenet\",\n email: \"email cím\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO időbélyeg\",\n date: \"ISO dátum\",\n time: \"ISO idő\",\n duration: \"ISO időintervallum\",\n ipv4: \"IPv4 cím\",\n ipv6: \"IPv6 cím\",\n cidrv4: \"IPv4 tartomány\",\n cidrv6: \"IPv6 tartomány\",\n base64: \"base64-kódolt string\",\n base64url: \"base64url-kódolt string\",\n json_string: \"JSON string\",\n e164: \"E.164 szám\",\n jwt: \"JWT\",\n template_literal: \"bemenet\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Érvénytelen bemenet: a várt érték ${issue.expected}, a kapott érték ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Érvénytelen bemenet: a várt érték ${util.stringifyPrimitive(issue.values[0])}`;\n return `Érvénytelen opció: valamelyik érték várt ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Túl nagy: ${issue.origin ?? \"érték\"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elem\"}`;\n return `Túl nagy: a bemeneti érték ${issue.origin ?? \"érték\"} túl nagy: ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Érvénytelen string: \"${_issue.prefix}\" értékkel kell kezdődnie`;\n if (_issue.format === \"ends_with\")\n return `Érvénytelen string: \"${_issue.suffix}\" értékkel kell végződnie`;\n if (_issue.format === \"includes\")\n return `Érvénytelen string: \"${_issue.includes}\" értéket kell tartalmaznia`;\n if (_issue.format === \"regex\")\n return `Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`;\n return `Érvénytelen ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`;\n case \"unrecognized_keys\":\n return `Ismeretlen kulcs${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Érvénytelen kulcs ${issue.origin}`;\n case \"invalid_union\":\n return \"Érvénytelen bemenet\";\n case \"invalid_element\":\n return `Érvénytelen érték: ${issue.origin}`;\n default:\n return `Érvénytelen bemenet`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"memiliki\" },\n file: { unit: \"byte\", verb: \"memiliki\" },\n array: { unit: \"item\", verb: \"memiliki\" },\n set: { unit: \"item\", verb: \"memiliki\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tanggal dan waktu format ISO\",\n date: \"tanggal format ISO\",\n time: \"jam format ISO\",\n duration: \"durasi format ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"rentang alamat IPv4\",\n cidrv6: \"rentang alamat IPv6\",\n base64: \"string dengan enkode base64\",\n base64url: \"string dengan enkode base64url\",\n json_string: \"string JSON\",\n e164: \"angka E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak valid: diharapkan ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak valid: diharapkan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak valid: diharapkan salah satu dari ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: diharapkan ${issue.origin ?? \"value\"} menjadi ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak valid: harus dimulai dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak valid: harus berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak valid: harus menyertakan \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak valid: harus sesuai pola ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak valid`;\n }\n case \"not_multiple_of\":\n return `Angka tidak valid: harus kelipatan dari ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak valid di ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak valid\";\n case \"invalid_element\":\n return `Nilai tidak valid di ${issue.origin}`;\n default:\n return `Input tidak valid`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caratteri\", verb: \"avere\" },\n file: { unit: \"byte\", verb: \"avere\" },\n array: { unit: \"elementi\", verb: \"avere\" },\n set: { unit: \"elementi\", verb: \"avere\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numero\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"vettore\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"indirizzo email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e ora ISO\",\n date: \"data ISO\",\n time: \"ora ISO\",\n duration: \"durata ISO\",\n ipv4: \"indirizzo IPv4\",\n ipv6: \"indirizzo IPv6\",\n cidrv4: \"intervallo IPv4\",\n cidrv6: \"intervallo IPv6\",\n base64: \"stringa codificata in base64\",\n base64url: \"URL codificata in base64\",\n json_string: \"stringa JSON\",\n e164: \"numero E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input non valido: atteso ${issue.expected}, ricevuto ${parsedType(issue.input)}`;\n // return `Input non valido: atteso ${issue.expected}, ricevuto ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input non valido: atteso ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opzione non valida: atteso uno tra ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementi\"}`;\n return `Troppo grande: ${issue.origin ?? \"valore\"} deve essere ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Stringa non valida: deve iniziare con \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Stringa non valida: deve terminare con \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Stringa non valida: deve includere \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Numero non valido: deve essere un multiplo di ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chiav${issue.keys.length > 1 ? \"i\" : \"e\"} non riconosciut${issue.keys.length > 1 ? \"e\" : \"a\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chiave non valida in ${issue.origin}`;\n case \"invalid_union\":\n return \"Input non valido\";\n case \"invalid_element\":\n return `Valore non valido in ${issue.origin}`;\n default:\n return `Input non valido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"文字\", verb: \"である\" },\n file: { unit: \"バイト\", verb: \"である\" },\n array: { unit: \"要素\", verb: \"である\" },\n set: { unit: \"要素\", verb: \"である\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"数値\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"配列\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"入力値\",\n email: \"メールアドレス\",\n url: \"URL\",\n emoji: \"絵文字\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日時\",\n date: \"ISO日付\",\n time: \"ISO時刻\",\n duration: \"ISO期間\",\n ipv4: \"IPv4アドレス\",\n ipv6: \"IPv6アドレス\",\n cidrv4: \"IPv4範囲\",\n cidrv6: \"IPv6範囲\",\n base64: \"base64エンコード文字列\",\n base64url: \"base64urlエンコード文字列\",\n json_string: \"JSON文字列\",\n e164: \"E.164番号\",\n jwt: \"JWT\",\n template_literal: \"入力値\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無効な入力: ${issue.expected}が期待されましたが、${parsedType(issue.input)}が入力されました`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無効な入力: ${util.stringifyPrimitive(issue.values[0])}が期待されました`;\n return `無効な選択: ${util.joinValues(issue.values, \"、\")}のいずれかである必要があります`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"以下である\" : \"より小さい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${sizing.unit ?? \"要素\"}${adj}必要があります`;\n return `大きすぎる値: ${issue.origin ?? \"値\"}は${issue.maximum.toString()}${adj}必要があります`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"以上である\" : \"より大きい\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`;\n return `小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `無効な文字列: \"${_issue.prefix}\"で始まる必要があります`;\n if (_issue.format === \"ends_with\")\n return `無効な文字列: \"${_issue.suffix}\"で終わる必要があります`;\n if (_issue.format === \"includes\")\n return `無効な文字列: \"${_issue.includes}\"を含む必要があります`;\n if (_issue.format === \"regex\")\n return `無効な文字列: パターン${_issue.pattern}に一致する必要があります`;\n return `無効な${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無効な数値: ${issue.divisor}の倍数である必要があります`;\n case \"unrecognized_keys\":\n return `認識されていないキー${issue.keys.length > 1 ? \"群\" : \"\"}: ${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin}内の無効なキー`;\n case \"invalid_union\":\n return \"無効な入力\";\n case \"invalid_element\":\n return `${issue.origin}内の無効な値`;\n default:\n return `無効な入力`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"តួអក្សរ\", verb: \"គួរមាន\" },\n file: { unit: \"បៃ\", verb: \"គួរមាន\" },\n array: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n set: { unit: \"ធាតុ\", verb: \"គួរមាន\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"មិនមែនជាលេខ (NaN)\" : \"លេខ\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"អារេ (Array)\";\n }\n if (data === null) {\n return \"គ្មានតម្លៃ (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ទិន្នន័យបញ្ចូល\",\n email: \"អាសយដ្ឋានអ៊ីមែល\",\n url: \"URL\",\n emoji: \"សញ្ញាអារម្មណ៍\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"កាលបរិច្ឆេទ និងម៉ោង ISO\",\n date: \"កាលបរិច្ឆេទ ISO\",\n time: \"ម៉ោង ISO\",\n duration: \"រយៈពេល ISO\",\n ipv4: \"អាសយដ្ឋាន IPv4\",\n ipv6: \"អាសយដ្ឋាន IPv6\",\n cidrv4: \"ដែនអាសយដ្ឋាន IPv4\",\n cidrv6: \"ដែនអាសយដ្ឋាន IPv6\",\n base64: \"ខ្សែអក្សរអ៊ិកូដ base64\",\n base64url: \"ខ្សែអក្សរអ៊ិកូដ base64url\",\n json_string: \"ខ្សែអក្សរ JSON\",\n e164: \"លេខ E.164\",\n jwt: \"JWT\",\n template_literal: \"ទិន្នន័យបញ្ចូល\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${issue.expected} ប៉ុន្តែទទួលបាន ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${util.stringifyPrimitive(issue.values[0])}`;\n return `ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"ធាតុ\"}`;\n return `ធំពេក៖ ត្រូវការ ${issue.origin ?? \"តម្លៃ\"} ${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;\n return `មិនត្រឹមត្រូវ៖ ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `រកឃើញសោមិនស្គាល់៖ ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n case \"invalid_union\":\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n case \"invalid_element\":\n return `ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;\n default:\n return `ទិន្នន័យមិនត្រឹមត្រូវ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"문자\", verb: \"to have\" },\n file: { unit: \"바이트\", verb: \"to have\" },\n array: { unit: \"개\", verb: \"to have\" },\n set: { unit: \"개\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"입력\",\n email: \"이메일 주소\",\n url: \"URL\",\n emoji: \"이모지\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 날짜시간\",\n date: \"ISO 날짜\",\n time: \"ISO 시간\",\n duration: \"ISO 기간\",\n ipv4: \"IPv4 주소\",\n ipv6: \"IPv6 주소\",\n cidrv4: \"IPv4 범위\",\n cidrv6: \"IPv6 범위\",\n base64: \"base64 인코딩 문자열\",\n base64url: \"base64url 인코딩 문자열\",\n json_string: \"JSON 문자열\",\n e164: \"E.164 번호\",\n jwt: \"JWT\",\n template_literal: \"입력\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `잘못된 입력: 예상 타입은 ${issue.expected}, 받은 타입은 ${parsedType(issue.input)}입니다`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `잘못된 입력: 값은 ${util.stringifyPrimitive(issue.values[0])} 이어야 합니다`;\n return `잘못된 옵션: ${util.joinValues(issue.values, \"또는 \")} 중 하나여야 합니다`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"이하\" : \"미만\";\n const suffix = adj === \"미만\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing)\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;\n return `${issue.origin ?? \"값\"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"이상\" : \"초과\";\n const suffix = adj === \"이상\" ? \"이어야 합니다\" : \"여야 합니다\";\n const sizing = getSizing(issue.origin);\n const unit = sizing?.unit ?? \"요소\";\n if (sizing) {\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`;\n }\n return `${issue.origin ?? \"값\"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `잘못된 문자열: \"${_issue.prefix}\"(으)로 시작해야 합니다`;\n }\n if (_issue.format === \"ends_with\")\n return `잘못된 문자열: \"${_issue.suffix}\"(으)로 끝나야 합니다`;\n if (_issue.format === \"includes\")\n return `잘못된 문자열: \"${_issue.includes}\"을(를) 포함해야 합니다`;\n if (_issue.format === \"regex\")\n return `잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`;\n return `잘못된 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `잘못된 숫자: ${issue.divisor}의 배수여야 합니다`;\n case \"unrecognized_keys\":\n return `인식할 수 없는 키: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `잘못된 키: ${issue.origin}`;\n case \"invalid_union\":\n return `잘못된 입력`;\n case \"invalid_element\":\n return `잘못된 값: ${issue.origin}`;\n default:\n return `잘못된 입력`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"знаци\", verb: \"да имаат\" },\n file: { unit: \"бајти\", verb: \"да имаат\" },\n array: { unit: \"ставки\", verb: \"да имаат\" },\n set: { unit: \"ставки\", verb: \"да имаат\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"број\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"низа\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"внес\",\n email: \"адреса на е-пошта\",\n url: \"URL\",\n emoji: \"емоџи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO датум и време\",\n date: \"ISO датум\",\n time: \"ISO време\",\n duration: \"ISO времетраење\",\n ipv4: \"IPv4 адреса\",\n ipv6: \"IPv6 адреса\",\n cidrv4: \"IPv4 опсег\",\n cidrv6: \"IPv6 опсег\",\n base64: \"base64-енкодирана низа\",\n base64url: \"base64url-енкодирана низа\",\n json_string: \"JSON низа\",\n e164: \"E.164 број\",\n jwt: \"JWT\",\n template_literal: \"внес\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Грешен внес: се очекува ${issue.expected}, примено ${parsedType(issue.input)}`;\n // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Грешана опција: се очекува една ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да има ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементи\"}`;\n return `Премногу голем: се очекува ${issue.origin ?? \"вредноста\"} да биде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Неважечка низа: мора да започнува со \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Неважечка низа: мора да завршува со \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неважечка низа: мора да вклучува \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`;\n return `Invalid ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Грешен број: мора да биде делив со ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Непрепознаени клучеви\" : \"Непрепознаен клуч\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Грешен клуч во ${issue.origin}`;\n case \"invalid_union\":\n return \"Грешен внес\";\n case \"invalid_element\":\n return `Грешна вредност во ${issue.origin}`;\n default:\n return `Грешен внес`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"aksara\", verb: \"mempunyai\" },\n file: { unit: \"bait\", verb: \"mempunyai\" },\n array: { unit: \"elemen\", verb: \"mempunyai\" },\n set: { unit: \"elemen\", verb: \"mempunyai\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"nombor\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"alamat e-mel\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"tarikh masa ISO\",\n date: \"tarikh ISO\",\n time: \"masa ISO\",\n duration: \"tempoh ISO\",\n ipv4: \"alamat IPv4\",\n ipv6: \"alamat IPv6\",\n cidrv4: \"julat IPv4\",\n cidrv6: \"julat IPv6\",\n base64: \"string dikodkan base64\",\n base64url: \"string dikodkan base64url\",\n json_string: \"string JSON\",\n e164: \"nombor E.164\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Input tidak sah: dijangka ${issue.expected}, diterima ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Input tidak sah: dijangka ${util.stringifyPrimitive(issue.values[0])}`;\n return `Pilihan tidak sah: dijangka salah satu daripada ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elemen\"}`;\n return `Terlalu besar: dijangka ${issue.origin ?? \"nilai\"} adalah ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `String tidak sah: mesti bermula dengan \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `String tidak sah: mesti berakhir dengan \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `String tidak sah: mesti mengandungi \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} tidak sah`;\n }\n case \"not_multiple_of\":\n return `Nombor tidak sah: perlu gandaan ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Kunci tidak dikenali: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Kunci tidak sah dalam ${issue.origin}`;\n case \"invalid_union\":\n return \"Input tidak sah\";\n case \"invalid_element\":\n return `Nilai tidak sah dalam ${issue.origin}`;\n default:\n return `Input tidak sah`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tekens\" },\n file: { unit: \"bytes\" },\n array: { unit: \"elementen\" },\n set: { unit: \"elementen\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"getal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"invoer\",\n email: \"emailadres\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum en tijd\",\n date: \"ISO datum\",\n time: \"ISO tijd\",\n duration: \"ISO duur\",\n ipv4: \"IPv4-adres\",\n ipv6: \"IPv6-adres\",\n cidrv4: \"IPv4-bereik\",\n cidrv6: \"IPv6-bereik\",\n base64: \"base64-gecodeerde tekst\",\n base64url: \"base64 URL-gecodeerde tekst\",\n json_string: \"JSON string\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"invoer\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ongeldige invoer: verwacht ${issue.expected}, ontving ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ongeldige invoer: verwacht ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ongeldige optie: verwacht één van ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementen\"} bevat`;\n return `Te lang: verwacht dat ${issue.origin ?? \"waarde\"} ${adj}${issue.maximum.toString()} is`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} bevat`;\n }\n return `Te kort: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ongeldige tekst: moet met \"${_issue.prefix}\" beginnen`;\n }\n if (_issue.format === \"ends_with\")\n return `Ongeldige tekst: moet op \"${_issue.suffix}\" eindigen`;\n if (_issue.format === \"includes\")\n return `Ongeldige tekst: moet \"${_issue.includes}\" bevatten`;\n if (_issue.format === \"regex\")\n return `Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;\n return `Ongeldig: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;\n case \"unrecognized_keys\":\n return `Onbekende key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ongeldige key in ${issue.origin}`;\n case \"invalid_union\":\n return \"Ongeldige invoer\";\n case \"invalid_element\":\n return `Ongeldige waarde in ${issue.origin}`;\n default:\n return `Ongeldige invoer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tegn\", verb: \"å ha\" },\n file: { unit: \"bytes\", verb: \"å ha\" },\n array: { unit: \"elementer\", verb: \"å inneholde\" },\n set: { unit: \"elementer\", verb: \"å inneholde\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"tall\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"liste\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"input\",\n email: \"e-postadresse\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO dato- og klokkeslett\",\n date: \"ISO-dato\",\n time: \"ISO-klokkeslett\",\n duration: \"ISO-varighet\",\n ipv4: \"IPv4-område\",\n ipv6: \"IPv6-område\",\n cidrv4: \"IPv4-spekter\",\n cidrv6: \"IPv6-spekter\",\n base64: \"base64-enkodet streng\",\n base64url: \"base64url-enkodet streng\",\n json_string: \"JSON-streng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ugyldig input: forventet ${issue.expected}, fikk ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ugyldig verdi: forventet ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ugyldig valg: forventet en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementer\"}`;\n return `For stor(t): forventet ${issue.origin ?? \"value\"} til å ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Ugyldig streng: må starte med \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Ugyldig streng: må ende med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ugyldig streng: må inneholde \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ugyldig streng: må matche mønsteret ${_issue.pattern}`;\n return `Ugyldig ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ugyldig tall: må være et multiplum av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Ukjente nøkler\" : \"Ukjent nøkkel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ugyldig nøkkel i ${issue.origin}`;\n case \"invalid_union\":\n return \"Ugyldig input\";\n case \"invalid_element\":\n return `Ugyldig verdi i ${issue.origin}`;\n default:\n return `Ugyldig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"harf\", verb: \"olmalıdır\" },\n file: { unit: \"bayt\", verb: \"olmalıdır\" },\n array: { unit: \"unsur\", verb: \"olmalıdır\" },\n set: { unit: \"unsur\", verb: \"olmalıdır\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"numara\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"saf\";\n }\n if (data === null) {\n return \"gayb\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"giren\",\n email: \"epostagâh\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO hengâmı\",\n date: \"ISO tarihi\",\n time: \"ISO zamanı\",\n duration: \"ISO müddeti\",\n ipv4: \"IPv4 nişânı\",\n ipv6: \"IPv6 nişânı\",\n cidrv4: \"IPv4 menzili\",\n cidrv6: \"IPv6 menzili\",\n base64: \"base64-şifreli metin\",\n base64url: \"base64url-şifreli metin\",\n json_string: \"JSON metin\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"giren\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Fâsit giren: umulan ${issue.expected}, alınan ${parsedType(issue.input)}`;\n // return `Fâsit giren: umulan ${issue.expected}, alınan ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Fâsit giren: umulan ${util.stringifyPrimitive(issue.values[0])}`;\n return `Fâsit tercih: mûteberler ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"} sahip olmalıydı.`;\n return `Fazla büyük: ${issue.origin ?? \"value\"}, ${adj}${issue.maximum.toString()} olmalıydı.`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`;\n }\n return `Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Fâsit metin: \"${_issue.prefix}\" ile başlamalı.`;\n if (_issue.format === \"ends_with\")\n return `Fâsit metin: \"${_issue.suffix}\" ile bitmeli.`;\n if (_issue.format === \"includes\")\n return `Fâsit metin: \"${_issue.includes}\" ihtivâ etmeli.`;\n if (_issue.format === \"regex\")\n return `Fâsit metin: ${_issue.pattern} nakşına uymalı.`;\n return `Fâsit ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Fâsit sayı: ${issue.divisor} katı olmalıydı.`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar ${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} için tanınmayan anahtar var.`;\n case \"invalid_union\":\n return \"Giren tanınamadı.\";\n case \"invalid_element\":\n return `${issue.origin} için tanınmayan kıymet var.`;\n default:\n return `Kıymet tanınamadı.`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"توکي\", verb: \"ولري\" },\n file: { unit: \"بایټس\", verb: \"ولري\" },\n array: { unit: \"توکي\", verb: \"ولري\" },\n set: { unit: \"توکي\", verb: \"ولري\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"عدد\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"ارې\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ورودي\",\n email: \"بریښنالیک\",\n url: \"یو آر ال\",\n emoji: \"ایموجي\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"نیټه او وخت\",\n date: \"نېټه\",\n time: \"وخت\",\n duration: \"موده\",\n ipv4: \"د IPv4 پته\",\n ipv6: \"د IPv6 پته\",\n cidrv4: \"د IPv4 ساحه\",\n cidrv6: \"د IPv6 ساحه\",\n base64: \"base64-encoded متن\",\n base64url: \"base64url-encoded متن\",\n json_string: \"JSON متن\",\n e164: \"د E.164 شمېره\",\n jwt: \"JWT\",\n template_literal: \"ورودي\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ناسم ورودي: باید ${issue.expected} وای, مګر ${parsedType(issue.input)} ترلاسه شو`;\n case \"invalid_value\":\n if (issue.values.length === 1) {\n return `ناسم ورودي: باید ${util.stringifyPrimitive(issue.values[0])} وای`;\n }\n return `ناسم انتخاب: باید یو له ${util.joinValues(issue.values, \"|\")} څخه وای`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عنصرونه\"} ولري`;\n }\n return `ډیر لوی: ${issue.origin ?? \"ارزښت\"} باید ${adj}${issue.maximum.toString()} وي`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`;\n }\n return `ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `ناسم متن: باید د \"${_issue.prefix}\" سره پیل شي`;\n }\n if (_issue.format === \"ends_with\") {\n return `ناسم متن: باید د \"${_issue.suffix}\" سره پای ته ورسيږي`;\n }\n if (_issue.format === \"includes\") {\n return `ناسم متن: باید \"${_issue.includes}\" ولري`;\n }\n if (_issue.format === \"regex\") {\n return `ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`;\n }\n return `${Nouns[_issue.format] ?? issue.format} ناسم دی`;\n }\n case \"not_multiple_of\":\n return `ناسم عدد: باید د ${issue.divisor} مضرب وي`;\n case \"unrecognized_keys\":\n return `ناسم ${issue.keys.length > 1 ? \"کلیډونه\" : \"کلیډ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `ناسم کلیډ په ${issue.origin} کې`;\n case \"invalid_union\":\n return `ناسمه ورودي`;\n case \"invalid_element\":\n return `ناسم عنصر په ${issue.origin} کې`;\n default:\n return `ناسمه ورودي`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znaków\", verb: \"mieć\" },\n file: { unit: \"bajtów\", verb: \"mieć\" },\n array: { unit: \"elementów\", verb: \"mieć\" },\n set: { unit: \"elementów\", verb: \"mieć\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"liczba\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tablica\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"wyrażenie\",\n email: \"adres email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data i godzina w formacie ISO\",\n date: \"data w formacie ISO\",\n time: \"godzina w formacie ISO\",\n duration: \"czas trwania ISO\",\n ipv4: \"adres IPv4\",\n ipv6: \"adres IPv6\",\n cidrv4: \"zakres IPv4\",\n cidrv6: \"zakres IPv6\",\n base64: \"ciąg znaków zakodowany w formacie base64\",\n base64url: \"ciąg znaków zakodowany w formacie base64url\",\n json_string: \"ciąg znaków w formacie JSON\",\n e164: \"liczba E.164\",\n jwt: \"JWT\",\n template_literal: \"wejście\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Nieprawidłowe dane wejściowe: oczekiwano ${issue.expected}, otrzymano ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Nieprawidłowe dane wejściowe: oczekiwano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Nieprawidłowa opcja: oczekiwano jednej z wartości ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za duża wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt duż(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Za mała wartość: oczekiwano, że ${issue.origin ?? \"wartość\"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit ?? \"elementów\"}`;\n }\n return `Zbyt mał(y/a/e): oczekiwano, że ${issue.origin ?? \"wartość\"} będzie wynosić ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Nieprawidłowy ciąg znaków: musi zaczynać się od \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Nieprawidłowy ciąg znaków: musi kończyć się na \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Nieprawidłowy ciąg znaków: musi zawierać \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;\n return `Nieprawidłow(y/a/e) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Nierozpoznane klucze${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Nieprawidłowy klucz w ${issue.origin}`;\n case \"invalid_union\":\n return \"Nieprawidłowe dane wejściowe\";\n case \"invalid_element\":\n return `Nieprawidłowa wartość w ${issue.origin}`;\n default:\n return `Nieprawidłowe dane wejściowe`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"caracteres\", verb: \"ter\" },\n file: { unit: \"bytes\", verb: \"ter\" },\n array: { unit: \"itens\", verb: \"ter\" },\n set: { unit: \"itens\", verb: \"ter\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"número\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"nulo\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"padrão\",\n email: \"endereço de e-mail\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"data e hora ISO\",\n date: \"data ISO\",\n time: \"hora ISO\",\n duration: \"duração ISO\",\n ipv4: \"endereço IPv4\",\n ipv6: \"endereço IPv6\",\n cidrv4: \"faixa de IPv4\",\n cidrv6: \"faixa de IPv6\",\n base64: \"texto codificado em base64\",\n base64url: \"URL codificada em base64\",\n json_string: \"texto JSON\",\n e164: \"número E.164\",\n jwt: \"JWT\",\n template_literal: \"entrada\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Tipo inválido: esperado ${issue.expected}, recebido ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Entrada inválida: esperado ${util.stringifyPrimitive(issue.values[0])}`;\n return `Opção inválida: esperada uma das ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} tivesse ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementos\"}`;\n return `Muito grande: esperado que ${issue.origin ?? \"valor\"} fosse ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Muito pequeno: esperado que ${issue.origin} tivesse ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Muito pequeno: esperado que ${issue.origin} fosse ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Texto inválido: deve começar com \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Texto inválido: deve terminar com \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Texto inválido: deve incluir \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} inválido`;\n }\n case \"not_multiple_of\":\n return `Número inválido: deve ser múltiplo de ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Chave${issue.keys.length > 1 ? \"s\" : \"\"} desconhecida${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Chave inválida em ${issue.origin}`;\n case \"invalid_union\":\n return \"Entrada inválida\";\n case \"invalid_element\":\n return `Valor inválido em ${issue.origin}`;\n default:\n return `Campo inválido`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nfunction getRussianPlural(count, one, few, many) {\n const absCount = Math.abs(count);\n const lastDigit = absCount % 10;\n const lastTwoDigits = absCount % 100;\n if (lastTwoDigits >= 11 && lastTwoDigits <= 19) {\n return many;\n }\n if (lastDigit === 1) {\n return one;\n }\n if (lastDigit >= 2 && lastDigit <= 4) {\n return few;\n }\n return many;\n}\nconst error = () => {\n const Sizable = {\n string: {\n unit: {\n one: \"символ\",\n few: \"символа\",\n many: \"символов\",\n },\n verb: \"иметь\",\n },\n file: {\n unit: {\n one: \"байт\",\n few: \"байта\",\n many: \"байт\",\n },\n verb: \"иметь\",\n },\n array: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n set: {\n unit: {\n one: \"элемент\",\n few: \"элемента\",\n many: \"элементов\",\n },\n verb: \"иметь\",\n },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"массив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ввод\",\n email: \"email адрес\",\n url: \"URL\",\n emoji: \"эмодзи\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO дата и время\",\n date: \"ISO дата\",\n time: \"ISO время\",\n duration: \"ISO длительность\",\n ipv4: \"IPv4 адрес\",\n ipv6: \"IPv6 адрес\",\n cidrv4: \"IPv4 диапазон\",\n cidrv6: \"IPv6 диапазон\",\n base64: \"строка в формате base64\",\n base64url: \"строка в формате base64url\",\n json_string: \"JSON строка\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"ввод\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неверный ввод: ожидалось ${issue.expected}, получено ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неверный ввод: ожидалось ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неверный вариант: ожидалось одно из ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const maxValue = Number(issue.maximum);\n const unit = getRussianPlural(maxValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`;\n }\n return `Слишком большое значение: ожидалось, что ${issue.origin ?? \"значение\"} будет ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n const minValue = Number(issue.minimum);\n const unit = getRussianPlural(minValue, sizing.unit.one, sizing.unit.few, sizing.unit.many);\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`;\n }\n return `Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неверная строка: должна начинаться с \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неверная строка: должна заканчиваться на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неверная строка: должна содержать \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;\n return `Неверный ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неверное число: должно быть кратным ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нераспознанн${issue.keys.length > 1 ? \"ые\" : \"ый\"} ключ${issue.keys.length > 1 ? \"и\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неверный ключ в ${issue.origin}`;\n case \"invalid_union\":\n return \"Неверные входные данные\";\n case \"invalid_element\":\n return `Неверное значение в ${issue.origin}`;\n default:\n return `Неверные входные данные`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"znakov\", verb: \"imeti\" },\n file: { unit: \"bajtov\", verb: \"imeti\" },\n array: { unit: \"elementov\", verb: \"imeti\" },\n set: { unit: \"elementov\", verb: \"imeti\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"število\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"tabela\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"vnos\",\n email: \"e-poštni naslov\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datum in čas\",\n date: \"ISO datum\",\n time: \"ISO čas\",\n duration: \"ISO trajanje\",\n ipv4: \"IPv4 naslov\",\n ipv6: \"IPv6 naslov\",\n cidrv4: \"obseg IPv4\",\n cidrv6: \"obseg IPv6\",\n base64: \"base64 kodiran niz\",\n base64url: \"base64url kodiran niz\",\n json_string: \"JSON niz\",\n e164: \"E.164 številka\",\n jwt: \"JWT\",\n template_literal: \"vnos\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Neveljaven vnos: pričakovano ${issue.expected}, prejeto ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Neveljaven vnos: pričakovano ${util.stringifyPrimitive(issue.values[0])}`;\n return `Neveljavna možnost: pričakovano eno izmed ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elementov\"}`;\n return `Preveliko: pričakovano, da bo ${issue.origin ?? \"vrednost\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Neveljaven niz: mora se začeti z \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Neveljaven niz: mora se končati z \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Neveljaven niz: mora vsebovati \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;\n return `Neveljaven ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Neveljavno število: mora biti večkratnik ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Neprepoznan${issue.keys.length > 1 ? \"i ključi\" : \" ključ\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Neveljaven ključ v ${issue.origin}`;\n case \"invalid_union\":\n return \"Neveljaven vnos\";\n case \"invalid_element\":\n return `Neveljavna vrednost v ${issue.origin}`;\n default:\n return \"Neveljaven vnos\";\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"tecken\", verb: \"att ha\" },\n file: { unit: \"bytes\", verb: \"att ha\" },\n array: { unit: \"objekt\", verb: \"att innehålla\" },\n set: { unit: \"objekt\", verb: \"att innehålla\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"antal\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"lista\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"reguljärt uttryck\",\n email: \"e-postadress\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO-datum och tid\",\n date: \"ISO-datum\",\n time: \"ISO-tid\",\n duration: \"ISO-varaktighet\",\n ipv4: \"IPv4-intervall\",\n ipv6: \"IPv6-intervall\",\n cidrv4: \"IPv4-spektrum\",\n cidrv6: \"IPv6-spektrum\",\n base64: \"base64-kodad sträng\",\n base64url: \"base64url-kodad sträng\",\n json_string: \"JSON-sträng\",\n e164: \"E.164-nummer\",\n jwt: \"JWT\",\n template_literal: \"mall-literal\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Ogiltig inmatning: förväntat ${issue.expected}, fick ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Ogiltig inmatning: förväntat ${util.stringifyPrimitive(issue.values[0])}`;\n return `Ogiltigt val: förväntade en av ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För stor(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"element\"}`;\n }\n return `För stor(t): förväntat ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `För lite(t): förväntade ${issue.origin ?? \"värdet\"} att ha ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Ogiltig sträng: måste börja med \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Ogiltig sträng: måste sluta med \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Ogiltig sträng: måste innehålla \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Ogiltig sträng: måste matcha mönstret \"${_issue.pattern}\"`;\n return `Ogiltig(t) ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `${issue.keys.length > 1 ? \"Okända nycklar\" : \"Okänd nyckel\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Ogiltig nyckel i ${issue.origin ?? \"värdet\"}`;\n case \"invalid_union\":\n return \"Ogiltig input\";\n case \"invalid_element\":\n return `Ogiltigt värde i ${issue.origin ?? \"värdet\"}`;\n default:\n return `Ogiltig input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"எழுத்துக்கள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n file: { unit: \"பைட்டுகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n array: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n set: { unit: \"உறுப்புகள்\", verb: \"கொண்டிருக்க வேண்டும்\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"எண் அல்லாதது\" : \"எண்\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"அணி\";\n }\n if (data === null) {\n return \"வெறுமை\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"உள்ளீடு\",\n email: \"மின்னஞ்சல் முகவரி\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO தேதி நேரம்\",\n date: \"ISO தேதி\",\n time: \"ISO நேரம்\",\n duration: \"ISO கால அளவு\",\n ipv4: \"IPv4 முகவரி\",\n ipv6: \"IPv6 முகவரி\",\n cidrv4: \"IPv4 வரம்பு\",\n cidrv6: \"IPv6 வரம்பு\",\n base64: \"base64-encoded சரம்\",\n base64url: \"base64url-encoded சரம்\",\n json_string: \"JSON சரம்\",\n e164: \"E.164 எண்\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${issue.expected}, பெறப்பட்டது ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${util.stringifyPrimitive(issue.values[0])}`;\n return `தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${util.joinValues(issue.values, \"|\")} இல் ஒன்று`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"உறுப்புகள்\"} ஆக இருக்க வேண்டும்`;\n }\n return `மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin ?? \"மதிப்பு\"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`; //\n }\n return `மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `தவறான சரம்: \"${_issue.prefix}\" இல் தொடங்க வேண்டும்`;\n if (_issue.format === \"ends_with\")\n return `தவறான சரம்: \"${_issue.suffix}\" இல் முடிவடைய வேண்டும்`;\n if (_issue.format === \"includes\")\n return `தவறான சரம்: \"${_issue.includes}\" ஐ உள்ளடக்க வேண்டும்`;\n if (_issue.format === \"regex\")\n return `தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;\n return `தவறான ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`;\n case \"unrecognized_keys\":\n return `அடையாளம் தெரியாத விசை${issue.keys.length > 1 ? \"கள்\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} இல் தவறான விசை`;\n case \"invalid_union\":\n return \"தவறான உள்ளீடு\";\n case \"invalid_element\":\n return `${issue.origin} இல் தவறான மதிப்பு`;\n default:\n return `தவறான உள்ளீடு`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ตัวอักษร\", verb: \"ควรมี\" },\n file: { unit: \"ไบต์\", verb: \"ควรมี\" },\n array: { unit: \"รายการ\", verb: \"ควรมี\" },\n set: { unit: \"รายการ\", verb: \"ควรมี\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"ไม่ใช่ตัวเลข (NaN)\" : \"ตัวเลข\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"อาร์เรย์ (Array)\";\n }\n if (data === null) {\n return \"ไม่มีค่า (null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ข้อมูลที่ป้อน\",\n email: \"ที่อยู่อีเมล\",\n url: \"URL\",\n emoji: \"อิโมจิ\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"วันที่เวลาแบบ ISO\",\n date: \"วันที่แบบ ISO\",\n time: \"เวลาแบบ ISO\",\n duration: \"ช่วงเวลาแบบ ISO\",\n ipv4: \"ที่อยู่ IPv4\",\n ipv6: \"ที่อยู่ IPv6\",\n cidrv4: \"ช่วง IP แบบ IPv4\",\n cidrv6: \"ช่วง IP แบบ IPv6\",\n base64: \"ข้อความแบบ Base64\",\n base64url: \"ข้อความแบบ Base64 สำหรับ URL\",\n json_string: \"ข้อความแบบ JSON\",\n e164: \"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)\",\n jwt: \"โทเคน JWT\",\n template_literal: \"ข้อมูลที่ป้อน\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${issue.expected} แต่ได้รับ ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `ค่าไม่ถูกต้อง: ควรเป็น ${util.stringifyPrimitive(issue.values[0])}`;\n return `ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"ไม่เกิน\" : \"น้อยกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit ?? \"รายการ\"}`;\n return `เกินกำหนด: ${issue.origin ?? \"ค่า\"} ควรมี${adj} ${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \"อย่างน้อย\" : \"มากกว่า\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `รูปแบบไม่ถูกต้อง: ข้อความต้องมี \"${_issue.includes}\" อยู่ในข้อความ`;\n if (_issue.format === \"regex\")\n return `รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`;\n return `รูปแบบไม่ถูกต้อง: ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`;\n case \"unrecognized_keys\":\n return `พบคีย์ที่ไม่รู้จัก: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `คีย์ไม่ถูกต้องใน ${issue.origin}`;\n case \"invalid_union\":\n return \"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้\";\n case \"invalid_element\":\n return `ข้อมูลไม่ถูกต้องใน ${issue.origin}`;\n default:\n return `ข้อมูลไม่ถูกต้อง`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nexport const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n};\nconst error = () => {\n const Sizable = {\n string: { unit: \"karakter\", verb: \"olmalı\" },\n file: { unit: \"bayt\", verb: \"olmalı\" },\n array: { unit: \"öğe\", verb: \"olmalı\" },\n set: { unit: \"öğe\", verb: \"olmalı\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const Nouns = {\n regex: \"girdi\",\n email: \"e-posta adresi\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO tarih ve saat\",\n date: \"ISO tarih\",\n time: \"ISO saat\",\n duration: \"ISO süre\",\n ipv4: \"IPv4 adresi\",\n ipv6: \"IPv6 adresi\",\n cidrv4: \"IPv4 aralığı\",\n cidrv6: \"IPv6 aralığı\",\n base64: \"base64 ile şifrelenmiş metin\",\n base64url: \"base64url ile şifrelenmiş metin\",\n json_string: \"JSON dizesi\",\n e164: \"E.164 sayısı\",\n jwt: \"JWT\",\n template_literal: \"Şablon dizesi\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Geçersiz değer: beklenen ${issue.expected}, alınan ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Geçersiz değer: beklenen ${util.stringifyPrimitive(issue.values[0])}`;\n return `Geçersiz seçenek: aşağıdakilerden biri olmalı: ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"öğe\"}`;\n return `Çok büyük: beklenen ${issue.origin ?? \"değer\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n return `Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Geçersiz metin: \"${_issue.prefix}\" ile başlamalı`;\n if (_issue.format === \"ends_with\")\n return `Geçersiz metin: \"${_issue.suffix}\" ile bitmeli`;\n if (_issue.format === \"includes\")\n return `Geçersiz metin: \"${_issue.includes}\" içermeli`;\n if (_issue.format === \"regex\")\n return `Geçersiz metin: ${_issue.pattern} desenine uymalı`;\n return `Geçersiz ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;\n case \"unrecognized_keys\":\n return `Tanınmayan anahtar${issue.keys.length > 1 ? \"lar\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} içinde geçersiz anahtar`;\n case \"invalid_union\":\n return \"Geçersiz değer\";\n case \"invalid_element\":\n return `${issue.origin} içinde geçersiz değer`;\n default:\n return `Geçersiz değer`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"символів\", verb: \"матиме\" },\n file: { unit: \"байтів\", verb: \"матиме\" },\n array: { unit: \"елементів\", verb: \"матиме\" },\n set: { unit: \"елементів\", verb: \"матиме\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"число\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"масив\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"вхідні дані\",\n email: \"адреса електронної пошти\",\n url: \"URL\",\n emoji: \"емодзі\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"дата та час ISO\",\n date: \"дата ISO\",\n time: \"час ISO\",\n duration: \"тривалість ISO\",\n ipv4: \"адреса IPv4\",\n ipv6: \"адреса IPv6\",\n cidrv4: \"діапазон IPv4\",\n cidrv6: \"діапазон IPv6\",\n base64: \"рядок у кодуванні base64\",\n base64url: \"рядок у кодуванні base64url\",\n json_string: \"рядок JSON\",\n e164: \"номер E.164\",\n jwt: \"JWT\",\n template_literal: \"вхідні дані\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${parsedType(issue.input)}`;\n // return `Неправильні вхідні дані: очікується ${issue.expected}, отримано ${util.getParsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Неправильні вхідні дані: очікується ${util.stringifyPrimitive(issue.values[0])}`;\n return `Неправильна опція: очікується одне з ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"елементів\"}`;\n return `Занадто велике: очікується, що ${issue.origin ?? \"значення\"} буде ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Неправильний рядок: повинен починатися з \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Неправильний рядок: повинен закінчуватися на \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Неправильний рядок: повинен містити \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;\n return `Неправильний ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Неправильне число: повинно бути кратним ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Нерозпізнаний ключ${issue.keys.length > 1 ? \"і\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Неправильний ключ у ${issue.origin}`;\n case \"invalid_union\":\n return \"Неправильні вхідні дані\";\n case \"invalid_element\":\n return `Неправильне значення у ${issue.origin}`;\n default:\n return `Неправильні вхідні дані`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"حروف\", verb: \"ہونا\" },\n file: { unit: \"بائٹس\", verb: \"ہونا\" },\n array: { unit: \"آئٹمز\", verb: \"ہونا\" },\n set: { unit: \"آئٹمز\", verb: \"ہونا\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"نمبر\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"آرے\";\n }\n if (data === null) {\n return \"نل\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"ان پٹ\",\n email: \"ای میل ایڈریس\",\n url: \"یو آر ایل\",\n emoji: \"ایموجی\",\n uuid: \"یو یو آئی ڈی\",\n uuidv4: \"یو یو آئی ڈی وی 4\",\n uuidv6: \"یو یو آئی ڈی وی 6\",\n nanoid: \"نینو آئی ڈی\",\n guid: \"جی یو آئی ڈی\",\n cuid: \"سی یو آئی ڈی\",\n cuid2: \"سی یو آئی ڈی 2\",\n ulid: \"یو ایل آئی ڈی\",\n xid: \"ایکس آئی ڈی\",\n ksuid: \"کے ایس یو آئی ڈی\",\n datetime: \"آئی ایس او ڈیٹ ٹائم\",\n date: \"آئی ایس او تاریخ\",\n time: \"آئی ایس او وقت\",\n duration: \"آئی ایس او مدت\",\n ipv4: \"آئی پی وی 4 ایڈریس\",\n ipv6: \"آئی پی وی 6 ایڈریس\",\n cidrv4: \"آئی پی وی 4 رینج\",\n cidrv6: \"آئی پی وی 6 رینج\",\n base64: \"بیس 64 ان کوڈڈ سٹرنگ\",\n base64url: \"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ\",\n json_string: \"جے ایس او این سٹرنگ\",\n e164: \"ای 164 نمبر\",\n jwt: \"جے ڈبلیو ٹی\",\n template_literal: \"ان پٹ\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `غلط ان پٹ: ${issue.expected} متوقع تھا، ${parsedType(issue.input)} موصول ہوا`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `غلط ان پٹ: ${util.stringifyPrimitive(issue.values[0])} متوقع تھا`;\n return `غلط آپشن: ${util.joinValues(issue.values, \"|\")} میں سے ایک متوقع تھا`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کے ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"عناصر\"} ہونے متوقع تھے`;\n return `بہت بڑا: ${issue.origin ?? \"ویلیو\"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`;\n }\n return `بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `غلط سٹرنگ: \"${_issue.prefix}\" سے شروع ہونا چاہیے`;\n }\n if (_issue.format === \"ends_with\")\n return `غلط سٹرنگ: \"${_issue.suffix}\" پر ختم ہونا چاہیے`;\n if (_issue.format === \"includes\")\n return `غلط سٹرنگ: \"${_issue.includes}\" شامل ہونا چاہیے`;\n if (_issue.format === \"regex\")\n return `غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`;\n return `غلط ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`;\n case \"unrecognized_keys\":\n return `غیر تسلیم شدہ کی${issue.keys.length > 1 ? \"ز\" : \"\"}: ${util.joinValues(issue.keys, \"، \")}`;\n case \"invalid_key\":\n return `${issue.origin} میں غلط کی`;\n case \"invalid_union\":\n return \"غلط ان پٹ\";\n case \"invalid_element\":\n return `${issue.origin} میں غلط ویلیو`;\n default:\n return `غلط ان پٹ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"ký tự\", verb: \"có\" },\n file: { unit: \"byte\", verb: \"có\" },\n array: { unit: \"phần tử\", verb: \"có\" },\n set: { unit: \"phần tử\", verb: \"có\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"số\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"mảng\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"đầu vào\",\n email: \"địa chỉ email\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ngày giờ ISO\",\n date: \"ngày ISO\",\n time: \"giờ ISO\",\n duration: \"khoảng thời gian ISO\",\n ipv4: \"địa chỉ IPv4\",\n ipv6: \"địa chỉ IPv6\",\n cidrv4: \"dải IPv4\",\n cidrv6: \"dải IPv6\",\n base64: \"chuỗi mã hóa base64\",\n base64url: \"chuỗi mã hóa base64url\",\n json_string: \"chuỗi JSON\",\n e164: \"số E.164\",\n jwt: \"JWT\",\n template_literal: \"đầu vào\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `Đầu vào không hợp lệ: mong đợi ${issue.expected}, nhận được ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Đầu vào không hợp lệ: mong đợi ${util.stringifyPrimitive(issue.values[0])}`;\n return `Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"phần tử\"}`;\n return `Quá lớn: mong đợi ${issue.origin ?? \"giá trị\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `Chuỗi không hợp lệ: phải bắt đầu bằng \"${_issue.prefix}\"`;\n if (_issue.format === \"ends_with\")\n return `Chuỗi không hợp lệ: phải kết thúc bằng \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Chuỗi không hợp lệ: phải bao gồm \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`;\n return `${Nouns[_issue.format] ?? issue.format} không hợp lệ`;\n }\n case \"not_multiple_of\":\n return `Số không hợp lệ: phải là bội số của ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Khóa không được nhận dạng: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Khóa không hợp lệ trong ${issue.origin}`;\n case \"invalid_union\":\n return \"Đầu vào không hợp lệ\";\n case \"invalid_element\":\n return `Giá trị không hợp lệ trong ${issue.origin}`;\n default:\n return `Đầu vào không hợp lệ`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字符\", verb: \"包含\" },\n file: { unit: \"字节\", verb: \"包含\" },\n array: { unit: \"项\", verb: \"包含\" },\n set: { unit: \"项\", verb: \"包含\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"非数字(NaN)\" : \"数字\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"数组\";\n }\n if (data === null) {\n return \"空值(null)\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"输入\",\n email: \"电子邮件\",\n url: \"URL\",\n emoji: \"表情符号\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO日期时间\",\n date: \"ISO日期\",\n time: \"ISO时间\",\n duration: \"ISO时长\",\n ipv4: \"IPv4地址\",\n ipv6: \"IPv6地址\",\n cidrv4: \"IPv4网段\",\n cidrv6: \"IPv6网段\",\n base64: \"base64编码字符串\",\n base64url: \"base64url编码字符串\",\n json_string: \"JSON字符串\",\n e164: \"E.164号码\",\n jwt: \"JWT\",\n template_literal: \"输入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `无效输入:期望 ${issue.expected},实际接收 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `无效输入:期望 ${util.stringifyPrimitive(issue.values[0])}`;\n return `无效选项:期望以下之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"个元素\"}`;\n return `数值过大:期望 ${issue.origin ?? \"值\"} ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\")\n return `无效字符串:必须以 \"${_issue.prefix}\" 开头`;\n if (_issue.format === \"ends_with\")\n return `无效字符串:必须以 \"${_issue.suffix}\" 结尾`;\n if (_issue.format === \"includes\")\n return `无效字符串:必须包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `无效字符串:必须满足正则表达式 ${_issue.pattern}`;\n return `无效${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `无效数字:必须是 ${issue.divisor} 的倍数`;\n case \"unrecognized_keys\":\n return `出现未知的键(key): ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `${issue.origin} 中的键(key)无效`;\n case \"invalid_union\":\n return \"无效输入\";\n case \"invalid_element\":\n return `${issue.origin} 中包含无效值(value)`;\n default:\n return `无效输入`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"字元\", verb: \"擁有\" },\n file: { unit: \"位元組\", verb: \"擁有\" },\n array: { unit: \"項目\", verb: \"擁有\" },\n set: { unit: \"項目\", verb: \"擁有\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const parsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"NaN\" : \"number\";\n }\n case \"object\": {\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (Object.getPrototypeOf(data) !== Object.prototype && data.constructor) {\n return data.constructor.name;\n }\n }\n }\n return t;\n };\n const Nouns = {\n regex: \"輸入\",\n email: \"郵件地址\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO 日期時間\",\n date: \"ISO 日期\",\n time: \"ISO 時間\",\n duration: \"ISO 期間\",\n ipv4: \"IPv4 位址\",\n ipv6: \"IPv6 位址\",\n cidrv4: \"IPv4 範圍\",\n cidrv6: \"IPv6 範圍\",\n base64: \"base64 編碼字串\",\n base64url: \"base64url 編碼字串\",\n json_string: \"JSON 字串\",\n e164: \"E.164 數值\",\n jwt: \"JWT\",\n template_literal: \"輸入\",\n };\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\":\n return `無效的輸入值:預期為 ${issue.expected},但收到 ${parsedType(issue.input)}`;\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `無效的輸入值:預期為 ${util.stringifyPrimitive(issue.values[0])}`;\n return `無效的選項:預期為以下其中之一 ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"個元素\"}`;\n return `數值過大:預期 ${issue.origin ?? \"值\"} 應為 ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `無效的字串:必須以 \"${_issue.prefix}\" 開頭`;\n }\n if (_issue.format === \"ends_with\")\n return `無效的字串:必須以 \"${_issue.suffix}\" 結尾`;\n if (_issue.format === \"includes\")\n return `無效的字串:必須包含 \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `無效的字串:必須符合格式 ${_issue.pattern}`;\n return `無效的 ${Nouns[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `無效的數字:必須為 ${issue.divisor} 的倍數`;\n case \"unrecognized_keys\":\n return `無法識別的鍵值${issue.keys.length > 1 ? \"們\" : \"\"}:${util.joinValues(issue.keys, \"、\")}`;\n case \"invalid_key\":\n return `${issue.origin} 中有無效的鍵值`;\n case \"invalid_union\":\n return \"無效的輸入值\";\n case \"invalid_element\":\n return `${issue.origin} 中有無效的值`;\n default:\n return `無效的輸入值`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","export const $output = Symbol(\"ZodOutput\");\nexport const $input = Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new Map();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n if (this._idmap.has(meta.id)) {\n throw new Error(`ID ${meta.id} already exists in the registry`);\n }\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new Map();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n return { ...pm, ...this._map.get(schema) };\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\nexport const globalRegistry = /*@__PURE__*/ registry();\n","import * as checks from \"./checks.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nexport function _string(Class, params) {\n return new Class({\n type: \"string\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedString(Class, params) {\n return new Class({\n type: \"string\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\nexport function _number(Class, params) {\n return new Class({\n type: \"number\",\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedNumber(Class, params) {\n return new Class({\n type: \"number\",\n coerce: true,\n checks: [],\n ...util.normalizeParams(params),\n });\n}\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// export function _refine(\n// Class: util.SchemaClass,\n// fn: (arg: NoInfer) => util.MaybeAsync,\n// _params: string | $ZodCustomParams = {}\n// ): checks.$ZodCheck {\n// return _custom(Class, fn, _params);\n// }\n// same as _custom but defaults to abort:false\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Pipe = Classes.Pipe ?? schemas.$ZodPipe;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const _Transform = Classes.Transform ?? schemas.$ZodTransform;\n const tx = new _Transform({\n type: \"transform\",\n transform: (input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: tx,\n });\n return {};\n }\n },\n error: params.error,\n });\n // params.error;\n const innerPipe = new _Pipe({\n type: \"pipe\",\n in: new _String({ type: \"string\", error: params.error }),\n out: tx,\n error: params.error,\n });\n const outerPipe = new _Pipe({\n type: \"pipe\",\n in: innerPipe,\n out: new _Boolean({\n type: \"boolean\",\n error: params.error,\n }),\n error: params.error,\n });\n return outerPipe;\n}\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n ...util.normalizeParams(_params),\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import { _array, _tuple, _unknown } from \"./api.js\";\nimport { parse, parseAsync } from \"./parse.js\";\nimport * as schemas from \"./schemas.js\";\nimport { $ZodTuple } from \"./schemas.js\";\nexport class $ZodFunction {\n constructor(def) {\n this._def = def;\n this.def = def;\n }\n implement(func) {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n const impl = ((...args) => {\n const parsedArgs = this._def.input ? parse(this._def.input, args, undefined, { callee: impl }) : args;\n if (!Array.isArray(parsedArgs)) {\n throw new Error(\"Invalid arguments schema: not an array or tuple schema.\");\n }\n const output = func(...parsedArgs);\n return this._def.output ? parse(this._def.output, output, undefined, { callee: impl }) : output;\n });\n return impl;\n }\n implementAsync(func) {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n const impl = (async (...args) => {\n const parsedArgs = this._def.input ? await parseAsync(this._def.input, args, undefined, { callee: impl }) : args;\n if (!Array.isArray(parsedArgs)) {\n throw new Error(\"Invalid arguments schema: not an array or tuple schema.\");\n }\n const output = await func(...parsedArgs);\n return this._def.output ? parseAsync(this._def.output, output, undefined, { callee: impl }) : output;\n });\n return impl;\n }\n input(...args) {\n const F = this.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: this._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: this._def.output,\n });\n }\n output(output) {\n const F = this.constructor;\n return new F({\n type: \"function\",\n input: this._def.input,\n output,\n });\n }\n}\nfunction _function(params) {\n return new $ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input)\n ? _tuple(schemas.$ZodTuple, params?.input)\n : (params?.input ?? _array(schemas.$ZodArray, _unknown(schemas.$ZodUnknown))),\n output: params?.output ?? _unknown(schemas.$ZodUnknown),\n });\n}\nexport { _function as function };\n","import { $ZodRegistry, globalRegistry } from \"./registries.js\";\nimport { getEnumValues } from \"./util.js\";\nexport class JSONSchemaGenerator {\n constructor(params) {\n this.counter = 0;\n this.metadataRegistry = params?.metadata ?? globalRegistry;\n this.target = params?.target ?? \"draft-2020-12\";\n this.unrepresentable = params?.unrepresentable ?? \"throw\";\n this.override = params?.override ?? (() => { });\n this.io = params?.io ?? \"output\";\n this.seen = new Map();\n }\n process(schema, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n const formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n };\n // check for schema in seens\n const seen = this.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n this.seen.set(schema, result);\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n const parent = schema._zod.parent;\n if (parent) {\n // schema was cloned from another schema\n result.ref = parent;\n this.process(parent, params);\n this.seen.get(parent).isParent = true;\n }\n else {\n const _json = result.schema;\n switch (def.type) {\n case \"string\": {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding } = schema._zod\n .bag;\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const regexes = [...patterns];\n if (regexes.length === 1)\n json.pattern = regexes[0].source;\n else if (regexes.length > 1) {\n result.schema.allOf = [\n ...regexes.map((regex) => ({\n ...(this.target === \"draft-7\" ? { type: \"string\" } : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n break;\n }\n case \"number\": {\n const json = _json;\n const { minimum, maximum, format, multipleOf, exclusiveMaximum, exclusiveMinimum } = schema._zod.bag;\n if (typeof format === \"string\" && format.includes(\"int\"))\n json.type = \"integer\";\n else\n json.type = \"number\";\n if (typeof exclusiveMinimum === \"number\")\n json.exclusiveMinimum = exclusiveMinimum;\n if (typeof minimum === \"number\") {\n json.minimum = minimum;\n if (typeof exclusiveMinimum === \"number\") {\n if (exclusiveMinimum >= minimum)\n delete json.minimum;\n else\n delete json.exclusiveMinimum;\n }\n }\n if (typeof exclusiveMaximum === \"number\")\n json.exclusiveMaximum = exclusiveMaximum;\n if (typeof maximum === \"number\") {\n json.maximum = maximum;\n if (typeof exclusiveMaximum === \"number\") {\n if (exclusiveMaximum <= maximum)\n delete json.maximum;\n else\n delete json.exclusiveMaximum;\n }\n }\n if (typeof multipleOf === \"number\")\n json.multipleOf = multipleOf;\n break;\n }\n case \"boolean\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"bigint\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"symbol\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Symbols cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"null\": {\n _json.type = \"null\";\n break;\n }\n case \"any\": {\n break;\n }\n case \"unknown\": {\n break;\n }\n case \"undefined\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Undefined cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"void\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Void cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"never\": {\n _json.not = {};\n break;\n }\n case \"date\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Date cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"array\": {\n const json = _json;\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = this.process(def.element, { ...params, path: [...params.path, \"items\"] });\n break;\n }\n case \"object\": {\n const json = _json;\n json.type = \"object\";\n json.properties = {};\n const shape = def.shape; // params.shapeCache.get(schema)!;\n for (const key in shape) {\n json.properties[key] = this.process(shape[key], {\n ...params,\n path: [...params.path, \"properties\", key],\n });\n }\n // required keys\n const allKeys = new Set(Object.keys(shape));\n // const optionalKeys = new Set(def.optional);\n const requiredKeys = new Set([...allKeys].filter((key) => {\n const v = def.shape[key]._zod;\n if (this.io === \"input\") {\n return v.optin === undefined;\n }\n else {\n return v.optout === undefined;\n }\n }));\n if (requiredKeys.size > 0) {\n json.required = Array.from(requiredKeys);\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (this.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = this.process(def.catchall, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n break;\n }\n case \"union\": {\n const json = _json;\n json.anyOf = def.options.map((x, i) => this.process(x, {\n ...params,\n path: [...params.path, \"anyOf\", i],\n }));\n break;\n }\n case \"intersection\": {\n const json = _json;\n const a = this.process(def.left, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = this.process(def.right, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n break;\n }\n case \"tuple\": {\n const json = _json;\n json.type = \"array\";\n const prefixItems = def.items.map((x, i) => this.process(x, { ...params, path: [...params.path, \"prefixItems\", i] }));\n if (this.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n }\n else {\n json.items = prefixItems;\n }\n if (def.rest) {\n const rest = this.process(def.rest, {\n ...params,\n path: [...params.path, \"items\"],\n });\n if (this.target === \"draft-2020-12\") {\n json.items = rest;\n }\n else {\n json.additionalItems = rest;\n }\n }\n // additionalItems\n if (def.rest) {\n json.items = this.process(def.rest, {\n ...params,\n path: [...params.path, \"items\"],\n });\n }\n // length\n const { minimum, maximum } = schema._zod.bag;\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n break;\n }\n case \"record\": {\n const json = _json;\n json.type = \"object\";\n json.propertyNames = this.process(def.keyType, { ...params, path: [...params.path, \"propertyNames\"] });\n json.additionalProperties = this.process(def.valueType, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n break;\n }\n case \"map\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Map cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"set\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Set cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"enum\": {\n const json = _json;\n const values = getEnumValues(def.entries);\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n break;\n }\n case \"literal\": {\n const json = _json;\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Literal `undefined` cannot be represented in JSON Schema\");\n }\n else {\n // do not add to vals\n }\n }\n else if (typeof val === \"bigint\") {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"BigInt literals cannot be represented in JSON Schema\");\n }\n else {\n vals.push(Number(val));\n }\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n json.const = val;\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"string\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n break;\n }\n case \"file\": {\n const json = _json;\n const file = {\n type: \"string\",\n format: \"binary\",\n contentEncoding: \"binary\",\n };\n const { minimum, maximum, mime } = schema._zod.bag;\n if (minimum !== undefined)\n file.minLength = minimum;\n if (maximum !== undefined)\n file.maxLength = maximum;\n if (mime) {\n if (mime.length === 1) {\n file.contentMediaType = mime[0];\n Object.assign(json, file);\n }\n else {\n json.anyOf = mime.map((m) => {\n const mFile = { ...file, contentMediaType: m };\n return mFile;\n });\n }\n }\n else {\n Object.assign(json, file);\n }\n // if (this.unrepresentable === \"throw\") {\n // throw new Error(\"File cannot be represented in JSON Schema\");\n // }\n break;\n }\n case \"transform\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Transforms cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"nullable\": {\n const inner = this.process(def.innerType, params);\n _json.anyOf = [inner, { type: \"null\" }];\n break;\n }\n case \"nonoptional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"success\": {\n const json = _json;\n json.type = \"boolean\";\n break;\n }\n case \"default\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.default = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"prefault\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n if (this.io === \"input\")\n _json._prefault = JSON.parse(JSON.stringify(def.defaultValue));\n break;\n }\n case \"catch\": {\n // use conditionals\n this.process(def.innerType, params);\n result.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n throw new Error(\"Dynamic catch values are not supported in JSON Schema\");\n }\n _json.default = catchValue;\n break;\n }\n case \"nan\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"NaN cannot be represented in JSON Schema\");\n }\n break;\n }\n case \"template_literal\": {\n const json = _json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n json.type = \"string\";\n json.pattern = pattern.source;\n break;\n }\n case \"pipe\": {\n const innerType = this.io === \"input\" ? (def.in._zod.def.type === \"transform\" ? def.out : def.in) : def.out;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"readonly\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n _json.readOnly = true;\n break;\n }\n // passthrough types\n case \"promise\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"optional\": {\n this.process(def.innerType, params);\n result.ref = def.innerType;\n break;\n }\n case \"lazy\": {\n const innerType = schema._zod.innerType;\n this.process(innerType, params);\n result.ref = innerType;\n break;\n }\n case \"custom\": {\n if (this.unrepresentable === \"throw\") {\n throw new Error(\"Custom types cannot be represented in JSON Schema\");\n }\n break;\n }\n default: {\n def;\n }\n }\n }\n }\n // metadata\n const meta = this.metadataRegistry.get(schema);\n if (meta)\n Object.assign(result.schema, meta);\n if (this.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (this.io === \"input\" && result.schema._prefault)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from this.seen in case it was overwritten\n const _result = this.seen.get(schema);\n return _result.schema;\n }\n emit(schema, _params) {\n const params = {\n cycles: _params?.cycles ?? \"ref\",\n reused: _params?.reused ?? \"inline\",\n // unrepresentable: _params?.unrepresentable ?? \"throw\",\n // uri: _params?.uri ?? ((id) => `${id}`),\n external: _params?.external ?? undefined,\n };\n // iterate over seen map;\n const root = this.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // initialize result with root schema fields\n // Object.assign(result, seen.cached);\n // returns a ref to the schema\n // defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes\n // multiple schemas map to the same seen object.\n // e.g. lazy\n // external is configured\n const defsSegment = this.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (params.external) {\n const externalId = params.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${this.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = params.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${this.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${id}` };\n }\n if (entry[1] === root) {\n return { ref: \"#\" };\n }\n // self-contained schema\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n const defId = entry[1].schema.id ?? `__schema${this.counter++}`;\n return { defId, ref: defUriPrefix + defId };\n };\n // stored cached version in `def` property\n // remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (params.cycles === \"throw\") {\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (params.external) {\n const ext = params.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = this.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (params.reused === \"ref\") {\n extractToDef(entry);\n // biome-ignore lint:\n continue;\n }\n }\n }\n // flatten _refs\n const flattenRef = (zodSchema, params) => {\n const seen = this.seen.get(zodSchema);\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n // already seen\n if (seen.ref === null) {\n return;\n }\n // flatten ref if defined\n const ref = seen.ref;\n seen.ref = null; // prevent recursion\n if (ref) {\n flattenRef(ref, params);\n // merge referenced schema into current\n const refSchema = this.seen.get(ref).schema;\n if (refSchema.$ref && params.target === \"draft-7\") {\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n Object.assign(schema, refSchema);\n Object.assign(schema, _cached); // prevent overwriting any fields in the original schema\n }\n }\n // execute overrides\n if (!seen.isParent)\n this.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n for (const entry of [...this.seen.entries()].reverse()) {\n flattenRef(entry[0], { target: this.target });\n }\n const result = {};\n if (this.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (this.target === \"draft-7\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else {\n console.warn(`Invalid target: ${this.target}`);\n }\n if (params.external?.uri) {\n const id = params.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = params.external.uri(id);\n }\n Object.assign(result, root.def);\n // build defs object\n const defs = params.external?.defs ?? {};\n for (const entry of this.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n defs[seen.defId] = seen.def;\n }\n }\n // set definitions in result\n if (params.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (this.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed\n // each call to .emit() is functionally independent\n // though the seen map is shared\n return JSON.parse(JSON.stringify(result));\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n }\n}\nexport function toJSONSchema(input, _params) {\n if (input instanceof $ZodRegistry) {\n const gen = new JSONSchemaGenerator(_params);\n const defs = {};\n for (const entry of input._idmap.entries()) {\n const [_, schema] = entry;\n gen.process(schema);\n }\n const schemas = {};\n const external = {\n registry: input,\n uri: _params?.uri,\n defs,\n };\n for (const entry of input._idmap.entries()) {\n const [key, schema] = entry;\n schemas[key] = gen.emit(schema, {\n ..._params,\n external,\n });\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = gen.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n const gen = new JSONSchemaGenerator(_params);\n gen.process(input);\n return gen.emit(input, _params);\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const schema = _schema;\n const def = schema._zod.def;\n switch (def.type) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n case \"date\":\n case \"symbol\":\n case \"undefined\":\n case \"null\":\n case \"any\":\n case \"unknown\":\n case \"never\":\n case \"void\":\n case \"literal\":\n case \"enum\":\n case \"nan\":\n case \"file\":\n case \"template_literal\":\n return false;\n case \"array\": {\n return isTransforming(def.element, ctx);\n }\n case \"object\": {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n case \"union\": {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n case \"intersection\": {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n case \"tuple\": {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n case \"record\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"map\": {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n case \"set\": {\n return isTransforming(def.valueType, ctx);\n }\n // inner types\n case \"promise\":\n case \"optional\":\n case \"nonoptional\":\n case \"nullable\":\n case \"readonly\":\n return isTransforming(def.innerType, ctx);\n case \"lazy\":\n return isTransforming(def.getter(), ctx);\n case \"default\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"prefault\": {\n return isTransforming(def.innerType, ctx);\n }\n case \"custom\": {\n return false;\n }\n case \"transform\": {\n return true;\n }\n case \"pipe\": {\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n case \"success\": {\n return false;\n }\n case \"catch\": {\n return false;\n }\n default:\n def;\n }\n throw new Error(`Unknown schema type: ${def.type}`);\n}\n","export {};\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n schemas.ZodStringFormat.init(inst, def);\n});\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n Object.defineProperties(inst, {\n format: {\n value: (mapper) => core.formatError(inst, mapper),\n // enumerable: false,\n },\n flatten: {\n value: (mapper) => core.flattenError(inst, mapper),\n // enumerable: false,\n },\n addIssue: {\n value: (issue) => inst.issues.push(issue),\n // enumerable: false,\n },\n addIssues: {\n value: (issues) => inst.issues.push(...issues),\n // enumerable: false,\n },\n isEmpty: {\n get() {\n return inst.issues.length === 0;\n },\n // enumerable: false,\n },\n });\n // Object.defineProperty(inst, \"isEmpty\", {\n // get() {\n // return inst.issues.length === 0;\n // },\n // });\n};\nexport const ZodError = core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = core.$constructor(\"ZodError\", initializer, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as checks from \"./checks.js\";\nimport * as iso from \"./iso.js\";\nimport * as parse from \"./parse.js\";\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n core.$ZodType.init(inst, def);\n inst.def = def;\n Object.defineProperty(inst, \"_def\", { value: def });\n // base methods\n inst.check = (...checks) => {\n return inst.clone({\n ...def,\n checks: [\n ...(def.checks ?? []),\n ...checks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }\n // { parent: true }\n );\n };\n inst.clone = (def, params) => core.clone(inst, def, params);\n inst.brand = () => inst;\n inst.register = ((reg, meta) => {\n reg.add(inst, meta);\n return inst;\n });\n // parsing\n inst.parse = (data, params) => parse.parse(inst, data, params, { callee: inst.parse });\n inst.safeParse = (data, params) => parse.safeParse(inst, data, params);\n inst.parseAsync = async (data, params) => parse.parseAsync(inst, data, params, { callee: inst.parseAsync });\n inst.safeParseAsync = async (data, params) => parse.safeParseAsync(inst, data, params);\n inst.spa = inst.safeParseAsync;\n // refinements\n inst.refine = (check, params) => inst.check(refine(check, params));\n inst.superRefine = (refinement) => inst.check(superRefine(refinement));\n inst.overwrite = (fn) => inst.check(checks.overwrite(fn));\n // wrappers\n inst.optional = () => optional(inst);\n inst.nullable = () => nullable(inst);\n inst.nullish = () => optional(nullable(inst));\n inst.nonoptional = (params) => nonoptional(inst, params);\n inst.array = () => array(inst);\n inst.or = (arg) => union([inst, arg]);\n inst.and = (arg) => intersection(inst, arg);\n inst.transform = (tx) => pipe(inst, transform(tx));\n inst.default = (def) => _default(inst, def);\n inst.prefault = (def) => prefault(inst, def);\n // inst.coalesce = (def, params) => coalesce(inst, def, params);\n inst.catch = (params) => _catch(inst, params);\n inst.pipe = (target) => pipe(inst, target);\n inst.readonly = () => readonly(inst);\n // meta\n inst.describe = (description) => {\n const cl = inst.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n };\n Object.defineProperty(inst, \"description\", {\n get() {\n return core.globalRegistry.get(inst)?.description;\n },\n configurable: true,\n });\n inst.meta = (...args) => {\n if (args.length === 0) {\n return core.globalRegistry.get(inst);\n }\n const cl = inst.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n };\n // helpers\n inst.isOptional = () => inst.safeParse(undefined).success;\n inst.isNullable = () => inst.safeParse(null).success;\n return inst;\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n const bag = inst._zod.bag;\n inst.format = bag.format ?? null;\n inst.minLength = bag.minimum ?? null;\n inst.maxLength = bag.maximum ?? null;\n // validations\n inst.regex = (...args) => inst.check(checks.regex(...args));\n inst.includes = (...args) => inst.check(checks.includes(...args));\n inst.startsWith = (...args) => inst.check(checks.startsWith(...args));\n inst.endsWith = (...args) => inst.check(checks.endsWith(...args));\n inst.min = (...args) => inst.check(checks.minLength(...args));\n inst.max = (...args) => inst.check(checks.maxLength(...args));\n inst.length = (...args) => inst.check(checks.length(...args));\n inst.nonempty = (...args) => inst.check(checks.minLength(1, ...args));\n inst.lowercase = (params) => inst.check(checks.lowercase(params));\n inst.uppercase = (params) => inst.check(checks.uppercase(params));\n // transforms\n inst.trim = () => inst.check(checks.trim());\n inst.normalize = (...args) => inst.check(checks.normalize(...args));\n inst.toLowerCase = () => inst.check(checks.toLowerCase());\n inst.toUpperCase = () => inst.check(checks.toUpperCase());\n});\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n inst.email = (params) => inst.check(core._email(ZodEmail, params));\n inst.url = (params) => inst.check(core._url(ZodURL, params));\n inst.jwt = (params) => inst.check(core._jwt(ZodJWT, params));\n inst.emoji = (params) => inst.check(core._emoji(ZodEmoji, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.uuid = (params) => inst.check(core._uuid(ZodUUID, params));\n inst.uuidv4 = (params) => inst.check(core._uuidv4(ZodUUID, params));\n inst.uuidv6 = (params) => inst.check(core._uuidv6(ZodUUID, params));\n inst.uuidv7 = (params) => inst.check(core._uuidv7(ZodUUID, params));\n inst.nanoid = (params) => inst.check(core._nanoid(ZodNanoID, params));\n inst.guid = (params) => inst.check(core._guid(ZodGUID, params));\n inst.cuid = (params) => inst.check(core._cuid(ZodCUID, params));\n inst.cuid2 = (params) => inst.check(core._cuid2(ZodCUID2, params));\n inst.ulid = (params) => inst.check(core._ulid(ZodULID, params));\n inst.base64 = (params) => inst.check(core._base64(ZodBase64, params));\n inst.base64url = (params) => inst.check(core._base64url(ZodBase64URL, params));\n inst.xid = (params) => inst.check(core._xid(ZodXID, params));\n inst.ksuid = (params) => inst.check(core._ksuid(ZodKSUID, params));\n inst.ipv4 = (params) => inst.check(core._ipv4(ZodIPv4, params));\n inst.ipv6 = (params) => inst.check(core._ipv6(ZodIPv6, params));\n inst.cidrv4 = (params) => inst.check(core._cidrv4(ZodCIDRv4, params));\n inst.cidrv6 = (params) => inst.check(core._cidrv6(ZodCIDRv6, params));\n inst.e164 = (params) => inst.check(core._e164(ZodE164, params));\n // iso\n inst.datetime = (params) => inst.check(iso.datetime(params));\n inst.date = (params) => inst.check(iso.date(params));\n inst.time = (params) => inst.check(iso.time(params));\n inst.duration = (params) => inst.check(iso.duration(params));\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.int = (params) => inst.check(int(params));\n inst.safe = (params) => inst.check(int(params));\n inst.positive = (params) => inst.check(checks.gt(0, params));\n inst.nonnegative = (params) => inst.check(checks.gte(0, params));\n inst.negative = (params) => inst.check(checks.lt(0, params));\n inst.nonpositive = (params) => inst.check(checks.lte(0, params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n inst.step = (value, params) => inst.check(checks.multipleOf(value, params));\n // inst.finite = (params) => inst.check(core.finite(params));\n inst.finite = () => inst;\n const bag = inst._zod.bag;\n inst.minValue =\n Math.max(bag.minimum ?? Number.NEGATIVE_INFINITY, bag.exclusiveMinimum ?? Number.NEGATIVE_INFINITY) ?? null;\n inst.maxValue =\n Math.min(bag.maximum ?? Number.POSITIVE_INFINITY, bag.exclusiveMaximum ?? Number.POSITIVE_INFINITY) ?? null;\n inst.isInt = (bag.format ?? \"\").includes(\"int\") || Number.isSafeInteger(bag.multipleOf ?? 0.5);\n inst.isFinite = true;\n inst.format = bag.format ?? null;\n});\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.gt = (value, params) => inst.check(checks.gt(value, params));\n inst.gte = (value, params) => inst.check(checks.gte(value, params));\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.lt = (value, params) => inst.check(checks.lt(value, params));\n inst.lte = (value, params) => inst.check(checks.lte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n inst.positive = (params) => inst.check(checks.gt(BigInt(0), params));\n inst.negative = (params) => inst.check(checks.lt(BigInt(0), params));\n inst.nonpositive = (params) => inst.check(checks.lte(BigInt(0), params));\n inst.nonnegative = (params) => inst.check(checks.gte(BigInt(0), params));\n inst.multipleOf = (value, params) => inst.check(checks.multipleOf(value, params));\n const bag = inst._zod.bag;\n inst.minValue = bag.minimum ?? null;\n inst.maxValue = bag.maximum ?? null;\n inst.format = bag.format ?? null;\n});\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\n// int64\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\n// uint64\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n const c = inst._zod.bag;\n inst.minDate = c.minimum ? new Date(c.minimum) : null;\n inst.maxDate = c.maximum ? new Date(c.maximum) : null;\n});\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst.element = def.element;\n inst.min = (minLength, params) => inst.check(checks.minLength(minLength, params));\n inst.nonempty = (params) => inst.check(checks.minLength(1, params));\n inst.max = (maxLength, params) => inst.check(checks.maxLength(maxLength, params));\n inst.length = (len, params) => inst.check(checks.length(len, params));\n inst.unwrap = () => inst.element;\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return literal(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n core.$ZodObject.init(inst, def);\n ZodType.init(inst, def);\n util.defineLazy(inst, \"shape\", () => def.shape);\n inst.keyof = () => _enum(Object.keys(inst._zod.def.shape));\n inst.catchall = (catchall) => inst.clone({ ...inst._zod.def, catchall: catchall });\n inst.passthrough = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n // inst.nonstrict = () => inst.clone({ ...inst._zod.def, catchall: api.unknown() });\n inst.loose = () => inst.clone({ ...inst._zod.def, catchall: unknown() });\n inst.strict = () => inst.clone({ ...inst._zod.def, catchall: never() });\n inst.strip = () => inst.clone({ ...inst._zod.def, catchall: undefined });\n inst.extend = (incoming) => {\n return util.extend(inst, incoming);\n };\n inst.merge = (other) => util.merge(inst, other);\n inst.pick = (mask) => util.pick(inst, mask);\n inst.omit = (mask) => util.omit(inst, mask);\n inst.partial = (...args) => util.partial(ZodOptional, inst, args[0]);\n inst.required = (...args) => util.required(ZodNonOptional, inst, args[0]);\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n get shape() {\n util.assignProp(this, \"shape\", { ...shape });\n return this.shape;\n },\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst.rest = (rest) => inst.clone({\n ...inst._zod.def,\n rest: rest,\n });\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output;\nexport function partialRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType: union([keyType, never()]),\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst.enum = def.entries;\n inst.options = Object.values(def.entries);\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = inst);\n _issue.continue ?? (_issue.continue = true);\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : defaultValue;\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : () => catchValue),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn) {\n const ch = check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n _issue.input ?? (_issue.input = payload.value);\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort);\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n });\n return ch;\n}\nfunction _instanceof(cls, params = {\n error: `Input not instance of ${cls.name}`,\n}) {\n const inst = new ZodCustom({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Pipe: ZodPipe,\n Boolean: ZodBoolean,\n String: ZodString,\n Transform: ZodTransform,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\n// /** @deprecated Use `z.pipe()` and `z.transform()` instead. */\nexport function preprocess(fn, schema) {\n return pipe(transform(fn), schema);\n}\n","// Zod 3 compat layer\nimport * as core from \"../core/index.js\";\n/** @deprecated Use the raw string literal codes instead, e.g. \"invalid_type\". */\nexport const ZodIssueCode = {\n invalid_type: \"invalid_type\",\n too_big: \"too_big\",\n too_small: \"too_small\",\n invalid_format: \"invalid_format\",\n not_multiple_of: \"not_multiple_of\",\n unrecognized_keys: \"unrecognized_keys\",\n invalid_union: \"invalid_union\",\n invalid_key: \"invalid_key\",\n invalid_element: \"invalid_element\",\n invalid_value: \"invalid_value\",\n custom: \"custom\",\n};\nexport { $brand, config } from \"../core/index.js\";\n/** @deprecated Use `z.config(params)` instead. */\nexport function setErrorMap(map) {\n core.config({\n customError: map,\n });\n}\n/** @deprecated Use `z.config()` instead. */\nexport function getErrorMap() {\n return core.config().customError;\n}\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n return core._coercedDate(schemas.ZodDate, params);\n}\n","/**\n * Symbol used for identifying AI SDK Error instances.\n * Enables checking if an error is an instance of AISDKError across package versions.\n */\nconst marker = 'vercel.ai.error';\nconst symbol = Symbol.for(marker);\n\n/**\n * Custom error class for AI SDK related errors.\n * @extends Error\n */\nexport class AISDKError extends Error {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n * The underlying cause of the error, if any.\n */\n readonly cause?: unknown;\n\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name,\n message,\n cause,\n }: {\n name: string;\n message: string;\n cause?: unknown;\n }) {\n super(message);\n\n this.name = name;\n this.cause = cause;\n }\n\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error: unknown): error is AISDKError {\n return AISDKError.hasMarker(error, marker);\n }\n\n protected static hasMarker(error: unknown, marker: string): boolean {\n const markerSymbol = Symbol.for(marker);\n return (\n error != null &&\n typeof error === 'object' &&\n markerSymbol in error &&\n typeof error[markerSymbol] === 'boolean' &&\n error[markerSymbol] === true\n );\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_APICallError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class APICallError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly url: string;\n readonly requestBodyValues: unknown;\n readonly statusCode?: number;\n\n readonly responseHeaders?: Record;\n readonly responseBody?: string;\n\n readonly isRetryable: boolean;\n readonly data?: unknown;\n\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null &&\n (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500), // server error\n data,\n }: {\n message: string;\n url: string;\n requestBodyValues: unknown;\n statusCode?: number;\n responseHeaders?: Record;\n responseBody?: string;\n cause?: unknown;\n isRetryable?: boolean;\n data?: unknown;\n }) {\n super({ name, message, cause });\n\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n\n static isInstance(error: unknown): error is APICallError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_EmptyResponseBodyError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class EmptyResponseBodyError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n constructor({ message = 'Empty response body' }: { message?: string } = {}) {\n super({ name, message });\n }\n\n static isInstance(error: unknown): error is EmptyResponseBodyError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n","import { AISDKError } from './ai-sdk-error';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * A function argument is invalid.\n */\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly argument: string;\n\n constructor({\n message,\n cause,\n argument,\n }: {\n argument: string;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message, cause });\n\n this.argument = argument;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_JSONParseError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class JSONParseError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly text: string;\n\n constructor({ text, cause }: { text: string; cause: unknown }) {\n super({\n name,\n message:\n `JSON parsing failed: ` +\n `Text: ${text}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.text = text;\n }\n\n static isInstance(error: unknown): error is JSONParseError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from './ai-sdk-error';\nimport { getErrorMessage } from './get-error-message';\n\nconst name = 'AI_TypeValidationError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport interface TypeValidationContext {\n /**\n * Field path in dot notation (e.g., \"message.metadata\", \"message.parts[3].data\")\n */\n field?: string;\n\n /**\n * Entity name (e.g., tool name, data type name)\n */\n entityName?: string;\n\n /**\n * Entity identifier (e.g., message ID, tool call ID)\n */\n entityId?: string;\n}\n\nexport class TypeValidationError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly value: unknown;\n readonly context?: TypeValidationContext;\n\n constructor({\n value,\n cause,\n context,\n }: {\n value: unknown;\n cause: unknown;\n context?: TypeValidationContext;\n }) {\n let contextPrefix = 'Type validation failed';\n\n if (context?.field) {\n contextPrefix += ` for ${context.field}`;\n }\n\n if (context?.entityName || context?.entityId) {\n contextPrefix += ' (';\n const parts: string[] = [];\n if (context.entityName) {\n parts.push(context.entityName);\n }\n if (context.entityId) {\n parts.push(`id: \"${context.entityId}\"`);\n }\n contextPrefix += parts.join(', ');\n contextPrefix += ')';\n }\n\n super({\n name,\n message:\n `${contextPrefix}: ` +\n `Value: ${JSON.stringify(value)}.\\n` +\n `Error message: ${getErrorMessage(cause)}`,\n cause,\n });\n\n this.value = value;\n this.context = context;\n }\n\n static isInstance(error: unknown): error is TypeValidationError {\n return AISDKError.hasMarker(error, marker);\n }\n\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n context,\n }: {\n value: unknown;\n cause: unknown;\n context?: TypeValidationContext;\n }): TypeValidationError {\n if (\n TypeValidationError.isInstance(cause) &&\n cause.value === value &&\n cause.context?.field === context?.field &&\n cause.context?.entityName === context?.entityName &&\n cause.context?.entityId === context?.entityId\n ) {\n return cause;\n }\n\n return new TypeValidationError({ value, cause, context });\n }\n}\n","export function combineHeaders(\n ...headers: Array | undefined>\n): Record {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => ({\n ...combinedHeaders,\n ...(currentHeaders ?? {}),\n }),\n {},\n ) as Record;\n}\n","/**\n * Creates a Promise that resolves after a specified delay\n * @param delayInMs - The delay duration in milliseconds. If null or undefined, resolves immediately.\n * @param signal - Optional AbortSignal to cancel the delay\n * @returns A Promise that resolves after the specified delay\n * @throws {DOMException} When the signal is aborted\n */\nexport async function delay(\n delayInMs?: number | null,\n options?: {\n abortSignal?: AbortSignal;\n },\n): Promise {\n if (delayInMs == null) {\n return Promise.resolve();\n }\n\n const signal = options?.abortSignal;\n\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(createAbortError());\n return;\n }\n\n const timeoutId = setTimeout(() => {\n cleanup();\n resolve();\n }, delayInMs);\n\n const cleanup = () => {\n clearTimeout(timeoutId);\n signal?.removeEventListener('abort', onAbort);\n };\n\n const onAbort = () => {\n cleanup();\n reject(createAbortError());\n };\n\n signal?.addEventListener('abort', onAbort);\n });\n}\n\nfunction createAbortError(): DOMException {\n return new DOMException('Delay was aborted', 'AbortError');\n}\n","/**\n * Extracts the headers from a response object and returns them as a key-value object.\n *\n * @param response - The response object to extract headers from.\n * @returns The headers as a key-value object.\n */\nexport function extractResponseHeaders(response: Response) {\n return Object.fromEntries([...response.headers]);\n}\n","// btoa and atob need to be invoked as a function call, not as a method call.\n// Otherwise CloudFlare will throw a\n// \"TypeError: Illegal invocation: function called with incorrect this reference\"\nconst { btoa, atob } = globalThis;\n\nexport function convertBase64ToUint8Array(base64String: string) {\n const base64Url = base64String.replace(/-/g, '+').replace(/_/g, '/');\n const latin1string = atob(base64Url);\n return Uint8Array.from(latin1string, byte => byte.codePointAt(0)!);\n}\n\nexport function convertUint8ArrayToBase64(array: Uint8Array): string {\n let latin1string = '';\n\n // Note: regular for loop to support older JavaScript versions that\n // do not support for..of on Uint8Array\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n\n return btoa(latin1string);\n}\n\nexport function convertToBase64(value: string | Uint8Array): string {\n return value instanceof Uint8Array ? convertUint8ArrayToBase64(value) : value;\n}\n","import { InvalidArgumentError } from '@ai-sdk/provider';\n\n/**\n * Creates an ID generator.\n * The total length of the ID is the sum of the prefix, separator, and random part length.\n * Not cryptographically secure.\n *\n * @param alphabet - The alphabet to use for the ID. Default: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.\n * @param prefix - The prefix of the ID to generate. Optional.\n * @param separator - The separator between the prefix and the random part of the ID. Default: '-'.\n * @param size - The size of the random part of the ID to generate. Default: 16.\n */\nexport const createIdGenerator = ({\n prefix,\n size = 16,\n alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',\n separator = '-',\n}: {\n prefix?: string;\n separator?: string;\n size?: number;\n alphabet?: string;\n} = {}): IdGenerator => {\n const generator = () => {\n const alphabetLength = alphabet.length;\n const chars = new Array(size);\n for (let i = 0; i < size; i++) {\n chars[i] = alphabet[(Math.random() * alphabetLength) | 0];\n }\n return chars.join('');\n };\n\n if (prefix == null) {\n return generator;\n }\n\n // check that the prefix is not part of the alphabet (otherwise prefix checking can fail randomly)\n if (alphabet.includes(separator)) {\n throw new InvalidArgumentError({\n argument: 'separator',\n message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`,\n });\n }\n\n return () => `${prefix}${separator}${generator()}`;\n};\n\n/**\n * A function that generates an ID.\n */\nexport type IdGenerator = () => string;\n\n/**\n * Generates a 16-character random string to use for IDs.\n * Not cryptographically secure.\n */\nexport const generateId = createIdGenerator();\n","export function getErrorMessage(error: unknown | undefined) {\n if (error == null) {\n return 'unknown error';\n }\n\n if (typeof error === 'string') {\n return error;\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return JSON.stringify(error);\n}\n","export function isAbortError(error: unknown): error is Error {\n return (\n (error instanceof Error || error instanceof DOMException) &&\n (error.name === 'AbortError' ||\n error.name === 'ResponseAborted' || // Next.js\n error.name === 'TimeoutError')\n );\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { isAbortError } from './is-abort-error';\n\nconst FETCH_FAILED_ERROR_MESSAGES = ['fetch failed', 'failed to fetch'];\n\nconst BUN_ERROR_CODES = [\n 'ConnectionRefused',\n 'ConnectionClosed',\n 'FailedToOpenSocket',\n 'ECONNRESET',\n 'ECONNREFUSED',\n 'ETIMEDOUT',\n 'EPIPE',\n];\n\nfunction isBunNetworkError(error: unknown): error is Error & { code?: string } {\n if (!(error instanceof Error)) {\n return false;\n }\n\n const code = (error as any).code;\n if (typeof code === 'string' && BUN_ERROR_CODES.includes(code)) {\n return true;\n }\n\n return false;\n}\n\nexport function handleFetchError({\n error,\n url,\n requestBodyValues,\n}: {\n error: unknown;\n url: string;\n requestBodyValues: unknown;\n}) {\n if (isAbortError(error)) {\n return error;\n }\n\n // unwrap original error when fetch failed (for easier debugging):\n if (\n error instanceof TypeError &&\n FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())\n ) {\n const cause = (error as any).cause;\n\n if (cause != null) {\n // Failed to connect to server:\n return new APICallError({\n message: `Cannot connect to API: ${cause.message}`,\n cause,\n url,\n requestBodyValues,\n isRetryable: true, // retry when network error\n });\n }\n }\n\n if (isBunNetworkError(error)) {\n return new APICallError({\n message: `Cannot connect to API: ${error.message}`,\n cause: error,\n url,\n requestBodyValues,\n isRetryable: true,\n });\n }\n\n return error;\n}\n","export function getRuntimeEnvironmentUserAgent(\n globalThisAny: any = globalThis as any,\n): string {\n // Browsers\n if (globalThisAny.window) {\n return `runtime/browser`;\n }\n\n // Cloudflare Workers / Deno / Bun / Node.js >= 21.1\n if (globalThisAny.navigator?.userAgent) {\n return `runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`;\n }\n\n // Nodes.js < 21.1\n if (globalThisAny.process?.versions?.node) {\n return `runtime/node.js/${globalThisAny.process.version.substring(0)}`;\n }\n\n if (globalThisAny.EdgeRuntime) {\n return `runtime/vercel-edge`;\n }\n\n return 'runtime/unknown';\n}\n","/**\n * Normalizes different header inputs into a plain record with lower-case keys.\n * Entries with `undefined` or `null` values are removed.\n *\n * @param headers - Input headers (`Headers`, tuples array, plain record) to normalize.\n * @returns A record containing the normalized header entries.\n */\nexport function normalizeHeaders(\n headers:\n | HeadersInit\n | Record\n | Array<[string, string | undefined]>\n | undefined,\n): Record {\n if (headers == null) {\n return {};\n }\n\n const normalized: Record = {};\n\n if (headers instanceof Headers) {\n headers.forEach((value, key) => {\n normalized[key.toLowerCase()] = value;\n });\n } else {\n if (!Array.isArray(headers)) {\n headers = Object.entries(headers);\n }\n\n for (const [key, value] of headers) {\n if (value != null) {\n normalized[key.toLowerCase()] = value;\n }\n }\n }\n\n return normalized;\n}\n","import { normalizeHeaders } from './normalize-headers';\n\n/**\n * Appends suffix parts to the `user-agent` header.\n * If a `user-agent` header already exists, the suffix parts are appended to it.\n * If no `user-agent` header exists, a new one is created with the suffix parts.\n * Automatically removes undefined entries from the headers.\n *\n * @param headers - The original headers.\n * @param userAgentSuffixParts - The parts to append to the `user-agent` header.\n * @returns The new headers with the `user-agent` header set or updated.\n */\nexport function withUserAgentSuffix(\n headers: HeadersInit | Record | undefined,\n ...userAgentSuffixParts: string[]\n): Record {\n const normalizedHeaders = new Headers(normalizeHeaders(headers));\n\n const currentUserAgentHeader = normalizedHeaders.get('user-agent') || '';\n\n normalizedHeaders.set(\n 'user-agent',\n [currentUserAgentHeader, ...userAgentSuffixParts].filter(Boolean).join(' '),\n );\n\n return Object.fromEntries(normalizedHeaders.entries());\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import { APICallError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport type { FetchFunction } from './fetch-function';\nimport { handleFetchError } from './handle-fetch-error';\nimport { isAbortError } from './is-abort-error';\nimport type { ResponseHandler } from './response-handler';\nimport { getRuntimeEnvironmentUserAgent } from './get-runtime-environment-user-agent';\nimport { withUserAgentSuffix } from './with-user-agent-suffix';\nimport { VERSION } from './version';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const getFromApi = async ({\n url,\n headers = {},\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) => {\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n ),\n signal: abortSignal,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.ok) {\n let errorInformation: {\n value: Error;\n responseHeaders?: Record | undefined;\n };\n\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: {},\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n\n throw new APICallError({\n message: 'Failed to process error response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {},\n });\n }\n\n throw errorInformation.value;\n }\n\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: {},\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n\n throw new APICallError({\n message: 'Failed to process successful response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {},\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: {} });\n }\n};\n","/**\n * Loads an optional `string` setting from the environment or a parameter.\n *\n * @param settingValue - The setting value.\n * @param environmentVariableName - The environment variable name.\n * @returns The setting value.\n */\nexport function loadOptionalSetting({\n settingValue,\n environmentVariableName,\n}: {\n settingValue: string | undefined;\n environmentVariableName: string;\n}): string | undefined {\n if (typeof settingValue === 'string') {\n return settingValue;\n }\n\n if (settingValue != null || typeof process === 'undefined') {\n return undefined;\n }\n\n settingValue = process.env[environmentVariableName];\n\n if (settingValue == null || typeof settingValue !== 'string') {\n return undefined;\n }\n\n return settingValue;\n}\n","// Licensed under BSD-3-Clause (this file only)\n// Code adapted from https://github.com/fastify/secure-json-parse/blob/783fcb1b5434709466759847cec974381939673a/index.js\n//\n// Copyright (c) Vercel, Inc. (https://vercel.com)\n// Copyright (c) 2019 The Fastify Team\n// Copyright (c) 2019, Sideway Inc, and project contributors\n// All rights reserved.\n//\n// The complete list of contributors can be found at:\n// - https://github.com/hapijs/bourne/graphs/contributors\n// - https://github.com/fastify/secure-json-parse/graphs/contributors\n// - https://github.com/vercel/ai/commits/main/packages/provider-utils/src/secure-parse-json.ts\n//\n// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n//\n// 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nconst suspectProtoRx =\n /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/;\nconst suspectConstructorRx =\n /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\n\nfunction _parse(text: string) {\n // Parse normally\n const obj = JSON.parse(text);\n\n // Ignore null and non-objects\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (\n suspectProtoRx.test(text) === false &&\n suspectConstructorRx.test(text) === false\n ) {\n return obj;\n }\n\n // Scan result for proto keys\n return filter(obj);\n}\n\nfunction filter(obj: any) {\n let next = [obj];\n\n while (next.length) {\n const nodes = next;\n next = [];\n\n for (const node of nodes) {\n if (Object.prototype.hasOwnProperty.call(node, '__proto__')) {\n throw new SyntaxError('Object contains forbidden prototype property');\n }\n\n if (\n Object.prototype.hasOwnProperty.call(node, 'constructor') &&\n node.constructor !== null &&\n typeof node.constructor === 'object' &&\n Object.prototype.hasOwnProperty.call(node.constructor, 'prototype')\n ) {\n throw new SyntaxError('Object contains forbidden prototype property');\n }\n\n for (const key in node) {\n const value = node[key];\n if (value && typeof value === 'object') {\n next.push(value);\n }\n }\n }\n }\n return obj;\n}\n\nexport function secureJsonParse(text: string) {\n const { stackTraceLimit } = Error;\n try {\n // Performance optimization, see https://github.com/fastify/secure-json-parse/pull/90\n Error.stackTraceLimit = 0;\n } catch (e) {\n // Fallback in case Error is immutable (v8 readonly)\n return _parse(text);\n }\n\n try {\n return _parse(text);\n } finally {\n Error.stackTraceLimit = stackTraceLimit;\n }\n}\n","import type { JSONSchema7, JSONSchema7Definition } from '@ai-sdk/provider';\n\n/**\n * Recursively adds additionalProperties: false to the JSON schema. This is necessary because some providers (e.g. OpenAI) do not support additionalProperties: true.\n */\nexport function addAdditionalPropertiesToJsonSchema(\n jsonSchema: JSONSchema7,\n): JSONSchema7 {\n if (\n jsonSchema.type === 'object' ||\n (Array.isArray(jsonSchema.type) && jsonSchema.type.includes('object'))\n ) {\n jsonSchema.additionalProperties = false;\n const { properties } = jsonSchema;\n if (properties != null) {\n for (const key of Object.keys(properties)) {\n properties[key] = visit(properties[key]);\n }\n }\n }\n\n if (jsonSchema.items != null) {\n jsonSchema.items = Array.isArray(jsonSchema.items)\n ? jsonSchema.items.map(visit)\n : visit(jsonSchema.items);\n }\n\n if (jsonSchema.anyOf != null) {\n jsonSchema.anyOf = jsonSchema.anyOf.map(visit);\n }\n\n if (jsonSchema.allOf != null) {\n jsonSchema.allOf = jsonSchema.allOf.map(visit);\n }\n\n if (jsonSchema.oneOf != null) {\n jsonSchema.oneOf = jsonSchema.oneOf.map(visit);\n }\n\n const { definitions } = jsonSchema;\n if (definitions != null) {\n for (const key of Object.keys(definitions)) {\n definitions[key] = visit(definitions[key]);\n }\n }\n\n return jsonSchema;\n}\n\nfunction visit(def: JSONSchema7Definition): JSONSchema7Definition {\n if (typeof def === 'boolean') return def;\n return addAdditionalPropertiesToJsonSchema(def);\n}\n","import type { ZodSchema, ZodTypeDef } from 'zod/v3';\nimport type { Refs, Seen } from './refs';\nimport type { JsonSchema7Type } from './parse-types';\n\nexport type DateStrategy =\n | 'format:date-time'\n | 'format:date'\n | 'string'\n | 'integer';\n\nexport const ignoreOverride = Symbol(\n 'Let zodToJsonSchema decide on which parser to use',\n);\n\nexport type OverrideCallback = (\n def: ZodTypeDef,\n refs: Refs,\n seen: Seen | undefined,\n forceResolution?: boolean,\n) => JsonSchema7Type | undefined | typeof ignoreOverride;\n\nexport type PostProcessCallback = (\n jsonSchema: JsonSchema7Type | undefined,\n def: ZodTypeDef,\n refs: Refs,\n) => JsonSchema7Type | undefined;\n\nexport const jsonDescription: PostProcessCallback = (jsonSchema, def) => {\n if (def.description) {\n try {\n return {\n ...jsonSchema,\n ...JSON.parse(def.description),\n };\n } catch {}\n }\n\n return jsonSchema;\n};\n\nexport type Options = {\n name: string | undefined;\n $refStrategy: 'root' | 'relative' | 'none' | 'seen';\n basePath: string[];\n effectStrategy: 'input' | 'any';\n pipeStrategy: 'input' | 'output' | 'all';\n dateStrategy: DateStrategy | DateStrategy[];\n mapStrategy: 'entries' | 'record';\n removeAdditionalStrategy: 'passthrough' | 'strict';\n allowedAdditionalProperties: true | undefined;\n rejectedAdditionalProperties: false | undefined;\n strictUnions: boolean;\n definitionPath: string;\n definitions: Record;\n errorMessages: boolean;\n patternStrategy: 'escape' | 'preserve';\n applyRegexFlags: boolean;\n emailStrategy: 'format:email' | 'format:idn-email' | 'pattern:zod';\n base64Strategy: 'format:binary' | 'contentEncoding:base64' | 'pattern:zod';\n nameStrategy: 'ref' | 'title';\n override?: OverrideCallback;\n postProcess?: PostProcessCallback;\n};\n\nexport const defaultOptions: Options = {\n name: undefined,\n $refStrategy: 'root',\n basePath: ['#'],\n effectStrategy: 'input',\n pipeStrategy: 'all',\n dateStrategy: 'format:date-time',\n mapStrategy: 'entries',\n removeAdditionalStrategy: 'passthrough',\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: 'definitions',\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n patternStrategy: 'escape',\n applyRegexFlags: false,\n emailStrategy: 'format:email',\n base64Strategy: 'contentEncoding:base64',\n nameStrategy: 'ref',\n};\n\nexport const getDefaultOptions = (\n options: Partial | string | undefined,\n) =>\n (typeof options === 'string'\n ? {\n ...defaultOptions,\n name: options,\n }\n : {\n ...defaultOptions,\n ...options,\n }) as Options;\n","export type JsonSchema7AnyType = { $ref?: string };\n\nexport function parseAnyDef(): JsonSchema7AnyType {\n return {};\n}\n","import { ZodFirstPartyTypeKind, type ZodArrayDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7ArrayType = {\n type: 'array';\n items?: JsonSchema7Type;\n minItems?: number;\n maxItems?: number;\n};\n\nexport function parseArrayDef(def: ZodArrayDef, refs: Refs) {\n const res: JsonSchema7ArrayType = {\n type: 'array',\n };\n if (\n def.type?._def &&\n def.type?._def?.typeName !== ZodFirstPartyTypeKind.ZodAny\n ) {\n res.items = parseDef(def.type._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items'],\n });\n }\n\n if (def.minLength) {\n res.minItems = def.minLength.value;\n }\n if (def.maxLength) {\n res.maxItems = def.maxLength.value;\n }\n if (def.exactLength) {\n res.minItems = def.exactLength.value;\n res.maxItems = def.exactLength.value;\n }\n return res;\n}\n","import type { ZodBigIntDef } from 'zod/v3';\n\nexport type JsonSchema7BigintType = {\n type: 'integer';\n format: 'int64';\n minimum?: BigInt;\n exclusiveMinimum?: BigInt;\n maximum?: BigInt;\n exclusiveMaximum?: BigInt;\n multipleOf?: BigInt;\n};\n\nexport function parseBigintDef(def: ZodBigIntDef): JsonSchema7BigintType {\n const res: JsonSchema7BigintType = {\n type: 'integer',\n format: 'int64',\n };\n\n if (!def.checks) return res;\n\n for (const check of def.checks) {\n switch (check.kind) {\n case 'min':\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case 'max':\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n\n break;\n case 'multipleOf':\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\n","export type JsonSchema7BooleanType = {\n type: 'boolean';\n};\n\nexport function parseBooleanDef(): JsonSchema7BooleanType {\n return { type: 'boolean' };\n}\n","import type { ZodBrandedDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { Refs } from '../refs';\n\nexport function parseBrandedDef(_def: ZodBrandedDef, refs: Refs) {\n return parseDef(_def.type._def, refs);\n}\n","import type { ZodCatchDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { Refs } from '../refs';\n\nexport const parseCatchDef = (def: ZodCatchDef, refs: Refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import type { ZodDateDef } from 'zod/v3';\nimport type { Refs } from '../refs';\nimport type { DateStrategy } from '../options';\n\nexport type JsonSchema7DateType =\n | {\n type: 'integer' | 'string';\n format: 'unix-time' | 'date-time' | 'date';\n minimum?: number;\n maximum?: number;\n }\n | {\n anyOf: JsonSchema7DateType[];\n };\n\nexport function parseDateDef(\n def: ZodDateDef,\n refs: Refs,\n overrideDateStrategy?: DateStrategy,\n): JsonSchema7DateType {\n const strategy = overrideDateStrategy ?? refs.dateStrategy;\n\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)),\n };\n }\n\n switch (strategy) {\n case 'string':\n case 'format:date-time':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'format:date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'integer':\n return integerDateParser(def);\n }\n}\n\nconst integerDateParser = (def: ZodDateDef) => {\n const res: JsonSchema7DateType = {\n type: 'integer',\n format: 'unix-time',\n };\n\n for (const check of def.checks) {\n switch (check.kind) {\n case 'min':\n res.minimum = check.value;\n break;\n case 'max':\n res.maximum = check.value;\n break;\n }\n }\n\n return res;\n};\n","import type { ZodDefaultDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport function parseDefaultDef(\n _def: ZodDefaultDef,\n refs: Refs,\n): JsonSchema7Type & { default: any } {\n return {\n ...parseDef(_def.innerType._def, refs),\n default: _def.defaultValue(),\n };\n}\n","import type { ZodEffectsDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseAnyDef } from './any';\n\nexport function parseEffectsDef(\n _def: ZodEffectsDef,\n refs: Refs,\n): JsonSchema7Type | undefined {\n return refs.effectStrategy === 'input'\n ? parseDef(_def.schema._def, refs)\n : parseAnyDef();\n}\n","import type { ZodEnumDef } from 'zod/v3';\n\nexport type JsonSchema7EnumType = {\n type: 'string';\n enum: string[];\n};\n\nexport function parseEnumDef(def: ZodEnumDef): JsonSchema7EnumType {\n return {\n type: 'string',\n enum: Array.from(def.values),\n };\n}\n","import type { ZodIntersectionDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport type { JsonSchema7StringType } from './string';\n\nexport type JsonSchema7AllOfType = {\n allOf: JsonSchema7Type[];\n unevaluatedProperties?: boolean;\n};\n\nconst isJsonSchema7AllOfType = (\n type: JsonSchema7Type | JsonSchema7StringType,\n): type is JsonSchema7AllOfType => {\n if ('type' in type && type.type === 'string') return false;\n return 'allOf' in type;\n};\n\nexport function parseIntersectionDef(\n def: ZodIntersectionDef,\n refs: Refs,\n): JsonSchema7AllOfType | JsonSchema7Type | undefined {\n const allOf = [\n parseDef(def.left._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', '0'],\n }),\n parseDef(def.right._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', '1'],\n }),\n ].filter((x): x is JsonSchema7Type => !!x);\n\n const mergedAllOf: JsonSchema7Type[] = [];\n // If either of the schemas is an allOf, merge them into a single allOf\n allOf.forEach(schema => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n } else {\n let nestedSchema: JsonSchema7Type = schema;\n if (\n 'additionalProperties' in schema &&\n schema.additionalProperties === false\n ) {\n const { additionalProperties, ...rest } = schema;\n nestedSchema = rest;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length ? { allOf: mergedAllOf } : undefined;\n}\n","import type { ZodLiteralDef } from 'zod/v3';\n\nexport type JsonSchema7LiteralType =\n | {\n type: 'string' | 'number' | 'integer' | 'boolean';\n const: string | number | boolean;\n }\n | {\n type: 'object' | 'array';\n };\n\nexport function parseLiteralDef(def: ZodLiteralDef): JsonSchema7LiteralType {\n const parsedType = typeof def.value;\n if (\n parsedType !== 'bigint' &&\n parsedType !== 'number' &&\n parsedType !== 'boolean' &&\n parsedType !== 'string'\n ) {\n return {\n type: Array.isArray(def.value) ? 'array' : 'object',\n };\n }\n\n return {\n type: parsedType === 'bigint' ? 'integer' : parsedType,\n const: def.value,\n };\n}\n","import type { ZodStringDef } from 'zod/v3';\nimport type { Refs } from '../refs';\n\nlet emojiRegex: RegExp | undefined = undefined;\n\n/**\n * Generated from the regular expressions found here as of 2024-05-22:\n * https://github.com/colinhacks/zod/blob/master/src/types.ts.\n *\n * Expressions with /i flag have been changed accordingly.\n */\nexport const zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email:\n /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === undefined) {\n emojiRegex = RegExp(\n '^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$',\n 'u',\n );\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr:\n /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr:\n /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url:\n /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/,\n} as const;\n\nexport type JsonSchema7StringType = {\n type: 'string';\n minLength?: number;\n maxLength?: number;\n format?:\n | 'email'\n | 'idn-email'\n | 'uri'\n | 'uuid'\n | 'date-time'\n | 'ipv4'\n | 'ipv6'\n | 'date'\n | 'time'\n | 'duration';\n pattern?: string;\n allOf?: {\n pattern: string;\n }[];\n anyOf?: {\n format: string;\n }[];\n contentEncoding?: string;\n};\n\nexport function parseStringDef(\n def: ZodStringDef,\n refs: Refs,\n): JsonSchema7StringType {\n const res: JsonSchema7StringType = {\n type: 'string',\n };\n\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case 'min':\n res.minLength =\n typeof res.minLength === 'number'\n ? Math.max(res.minLength, check.value)\n : check.value;\n break;\n case 'max':\n res.maxLength =\n typeof res.maxLength === 'number'\n ? Math.min(res.maxLength, check.value)\n : check.value;\n\n break;\n case 'email':\n switch (refs.emailStrategy) {\n case 'format:email':\n addFormat(res, 'email', check.message, refs);\n break;\n case 'format:idn-email':\n addFormat(res, 'idn-email', check.message, refs);\n break;\n case 'pattern:zod':\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n\n break;\n case 'url':\n addFormat(res, 'uri', check.message, refs);\n break;\n case 'uuid':\n addFormat(res, 'uuid', check.message, refs);\n break;\n case 'regex':\n addPattern(res, check.regex, check.message, refs);\n break;\n case 'cuid':\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case 'cuid2':\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case 'startsWith':\n addPattern(\n res,\n RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`),\n check.message,\n refs,\n );\n break;\n case 'endsWith':\n addPattern(\n res,\n RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`),\n check.message,\n refs,\n );\n break;\n case 'datetime':\n addFormat(res, 'date-time', check.message, refs);\n break;\n case 'date':\n addFormat(res, 'date', check.message, refs);\n break;\n case 'time':\n addFormat(res, 'time', check.message, refs);\n break;\n case 'duration':\n addFormat(res, 'duration', check.message, refs);\n break;\n case 'length':\n res.minLength =\n typeof res.minLength === 'number'\n ? Math.max(res.minLength, check.value)\n : check.value;\n res.maxLength =\n typeof res.maxLength === 'number'\n ? Math.min(res.maxLength, check.value)\n : check.value;\n break;\n case 'includes': {\n addPattern(\n res,\n RegExp(escapeLiteralCheckValue(check.value, refs)),\n check.message,\n refs,\n );\n break;\n }\n case 'ip': {\n if (check.version !== 'v6') {\n addFormat(res, 'ipv4', check.message, refs);\n }\n if (check.version !== 'v4') {\n addFormat(res, 'ipv6', check.message, refs);\n }\n break;\n }\n case 'base64url':\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case 'jwt':\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case 'cidr': {\n if (check.version !== 'v6') {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== 'v4') {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case 'emoji':\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case 'ulid': {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case 'base64': {\n switch (refs.base64Strategy) {\n case 'format:binary': {\n addFormat(res, 'binary' as any, check.message, refs);\n break;\n }\n\n case 'contentEncoding:base64': {\n res.contentEncoding = 'base64';\n break;\n }\n\n case 'pattern:zod': {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case 'nanoid': {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case 'toLowerCase':\n case 'toUpperCase':\n case 'trim':\n break;\n default:\n /* c8 ignore next */\n ((_: never) => {})(check);\n }\n }\n }\n\n return res;\n}\n\nfunction escapeLiteralCheckValue(literal: string, refs: Refs): string {\n return refs.patternStrategy === 'escape'\n ? escapeNonAlphaNumeric(literal)\n : literal;\n}\n\nconst ALPHA_NUMERIC = new Set(\n 'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789',\n);\n\nfunction escapeNonAlphaNumeric(source: string) {\n let result = '';\n\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += '\\\\';\n }\n\n result += source[i];\n }\n\n return result;\n}\n\n// Adds a \"format\" keyword to the schema. If a format exists, both formats will be joined in an allOf-node, along with subsequent ones.\nfunction addFormat(\n schema: JsonSchema7StringType,\n value: Required['format'],\n message: string | undefined,\n refs: Refs,\n) {\n if (schema.format || schema.anyOf?.some(x => x.format)) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n\n if (schema.format) {\n schema.anyOf!.push({\n format: schema.format,\n });\n delete schema.format;\n }\n\n schema.anyOf!.push({\n format: value,\n ...(message &&\n refs.errorMessages && { errorMessage: { format: message } }),\n });\n } else {\n schema.format = value;\n }\n}\n\n// Adds a \"pattern\" keyword to the schema. If a pattern exists, both patterns will be joined in an allOf-node, along with subsequent ones.\nfunction addPattern(\n schema: JsonSchema7StringType,\n regex: RegExp,\n message: string | undefined,\n refs: Refs,\n) {\n if (schema.pattern || schema.allOf?.some(x => x.pattern)) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n\n if (schema.pattern) {\n schema.allOf!.push({\n pattern: schema.pattern,\n });\n delete schema.pattern;\n }\n\n schema.allOf!.push({\n pattern: stringifyRegExpWithFlags(regex, refs),\n ...(message &&\n refs.errorMessages && { errorMessage: { pattern: message } }),\n });\n } else {\n schema.pattern = stringifyRegExpWithFlags(regex, refs);\n }\n}\n\n// Mutate z.string.regex() in a best attempt to accommodate for regex flags when applyRegexFlags is true\nfunction stringifyRegExpWithFlags(regex: RegExp, refs: Refs): string {\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n\n // Currently handled flags\n const flags = {\n i: regex.flags.includes('i'), // Case-insensitive\n m: regex.flags.includes('m'), // `^` and `$` matches adjacent to newline characters\n s: regex.flags.includes('s'), // `.` matches newlines\n };\n\n // The general principle here is to step through each character, one at a time, applying mutations as flags require. We keep track when the current character is escaped, and when it's inside a group /like [this]/ or (also) a range like /[a-z]/. The following is fairly brittle imperative code; edit at your peril!\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = '';\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n } else if (source[i + 1] === '-' && source[i + 2]?.match(/[a-z]/)) {\n pattern += source[i];\n inCharRange = true;\n } else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n } else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n\n if (flags.m) {\n if (source[i] === '^') {\n pattern += `(^|(?<=[\\r\\n]))`;\n continue;\n } else if (source[i] === '$') {\n pattern += `($|(?=[\\r\\n]))`;\n continue;\n }\n }\n\n if (flags.s && source[i] === '.') {\n pattern += inCharGroup ? `${source[i]}\\r\\n` : `[${source[i]}\\r\\n]`;\n continue;\n }\n\n pattern += source[i];\n if (source[i] === '\\\\') {\n isEscaped = true;\n } else if (inCharGroup && source[i] === ']') {\n inCharGroup = false;\n } else if (!inCharGroup && source[i] === '[') {\n inCharGroup = true;\n }\n }\n\n try {\n new RegExp(pattern);\n } catch {\n console.warn(\n `Could not convert regex pattern at ${refs.currentPath.join(\n '/',\n )} to a flag-independent form! Falling back to the flag-ignorant source`,\n );\n return regex.source;\n }\n\n return pattern;\n}\n","import {\n ZodFirstPartyTypeKind,\n type ZodMapDef,\n type ZodRecordDef,\n type ZodTypeAny,\n} from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseBrandedDef } from './branded';\nimport type { JsonSchema7EnumType } from './enum';\nimport { parseStringDef, type JsonSchema7StringType } from './string';\n\ntype JsonSchema7RecordPropertyNamesType =\n | Omit\n | Omit;\n\nexport type JsonSchema7RecordType = {\n type: 'object';\n additionalProperties?: JsonSchema7Type | true;\n propertyNames?: JsonSchema7RecordPropertyNamesType;\n};\n\nexport function parseRecordDef(\n def: ZodRecordDef | ZodMapDef,\n refs: Refs,\n): JsonSchema7RecordType {\n const schema: JsonSchema7RecordType = {\n type: 'object',\n additionalProperties:\n parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'additionalProperties'],\n }) ?? refs.allowedAdditionalProperties,\n };\n\n if (\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.checks?.length\n ) {\n const { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n\n return {\n ...schema,\n propertyNames: keyType,\n };\n } else if (def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodEnum) {\n return {\n ...schema,\n propertyNames: {\n enum: def.keyType._def.values,\n },\n };\n } else if (\n def.keyType?._def.typeName === ZodFirstPartyTypeKind.ZodBranded &&\n def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString &&\n def.keyType._def.type._def.checks?.length\n ) {\n const { type, ...keyType } = parseBrandedDef(\n def.keyType._def,\n refs,\n ) as JsonSchema7StringType;\n\n return {\n ...schema,\n propertyNames: keyType,\n };\n }\n\n return schema;\n}\n","import type { ZodMapDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseAnyDef } from './any';\nimport { parseRecordDef, type JsonSchema7RecordType } from './record';\n\nexport type JsonSchema7MapType = {\n type: 'array';\n maxItems: 125;\n items: {\n type: 'array';\n items: [JsonSchema7Type, JsonSchema7Type];\n minItems: 2;\n maxItems: 2;\n };\n};\n\nexport function parseMapDef(\n def: ZodMapDef,\n refs: Refs,\n): JsonSchema7MapType | JsonSchema7RecordType {\n if (refs.mapStrategy === 'record') {\n return parseRecordDef(def, refs);\n }\n\n const keys =\n parseDef(def.keyType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', 'items', '0'],\n }) || parseAnyDef();\n const values =\n parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', 'items', '1'],\n }) || parseAnyDef();\n return {\n type: 'array',\n maxItems: 125,\n items: {\n type: 'array',\n items: [keys, values],\n minItems: 2,\n maxItems: 2,\n },\n };\n}\n","import type { ZodNativeEnumDef } from 'zod/v3';\n\nexport type JsonSchema7NativeEnumType = {\n type: 'string' | 'number' | ['string', 'number'];\n enum: (string | number)[];\n};\n\nexport function parseNativeEnumDef(\n def: ZodNativeEnumDef,\n): JsonSchema7NativeEnumType {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key: string) => {\n return typeof object[object[key]] !== 'number';\n });\n\n const actualValues = actualKeys.map((key: string) => object[key]);\n\n const parsedTypes = Array.from(\n new Set(actualValues.map((values: string | number) => typeof values)),\n );\n\n return {\n type:\n parsedTypes.length === 1\n ? parsedTypes[0] === 'string'\n ? 'string'\n : 'number'\n : ['string', 'number'],\n enum: actualValues,\n };\n}\n","import { parseAnyDef, type JsonSchema7AnyType } from './any';\n\nexport type JsonSchema7NeverType = {\n not: JsonSchema7AnyType;\n};\n\nexport function parseNeverDef(): JsonSchema7NeverType | undefined {\n return { not: parseAnyDef() };\n}\n","export type JsonSchema7NullType = {\n type: 'null';\n};\n\nexport function parseNullDef(): JsonSchema7NullType {\n return {\n type: 'null',\n };\n}\n","import type {\n ZodDiscriminatedUnionDef,\n ZodLiteralDef,\n ZodTypeAny,\n ZodUnionDef,\n} from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport const primitiveMappings = {\n ZodString: 'string',\n ZodNumber: 'number',\n ZodBigInt: 'integer',\n ZodBoolean: 'boolean',\n ZodNull: 'null',\n} as const;\ntype ZodPrimitive = keyof typeof primitiveMappings;\ntype JsonSchema7Primitive =\n (typeof primitiveMappings)[keyof typeof primitiveMappings];\n\nexport type JsonSchema7UnionType =\n | JsonSchema7PrimitiveUnionType\n | JsonSchema7AnyOfType;\n\ntype JsonSchema7PrimitiveUnionType =\n | {\n type: JsonSchema7Primitive | JsonSchema7Primitive[];\n }\n | {\n type: JsonSchema7Primitive | JsonSchema7Primitive[];\n enum: (string | number | bigint | boolean | null)[];\n };\n\ntype JsonSchema7AnyOfType = {\n anyOf: JsonSchema7Type[];\n};\n\nexport function parseUnionDef(\n def: ZodUnionDef | ZodDiscriminatedUnionDef,\n refs: Refs,\n): JsonSchema7PrimitiveUnionType | JsonSchema7AnyOfType | undefined {\n const options: readonly ZodTypeAny[] =\n def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n\n // This blocks tries to look ahead a bit to produce nicer looking schemas with type array instead of anyOf.\n if (\n options.every(\n x =>\n x._def.typeName in primitiveMappings &&\n (!x._def.checks || !x._def.checks.length),\n )\n ) {\n // all types in union are primitive and lack checks, so might as well squash into {type: [...]}\n\n const types = options.reduce((types: JsonSchema7Primitive[], x) => {\n const type = primitiveMappings[x._def.typeName as ZodPrimitive]; //Can be safely casted due to row 43\n return type && !types.includes(type) ? [...types, type] : types;\n }, []);\n\n return {\n type: types.length > 1 ? types : types[0],\n };\n } else if (\n options.every(x => x._def.typeName === 'ZodLiteral' && !x.description)\n ) {\n // all options literals\n\n const types = options.reduce(\n (acc: JsonSchema7Primitive[], x: { _def: ZodLiteralDef }) => {\n const type = typeof x._def.value;\n switch (type) {\n case 'string':\n case 'number':\n case 'boolean':\n return [...acc, type];\n case 'bigint':\n return [...acc, 'integer' as const];\n case 'object':\n if (x._def.value === null) return [...acc, 'null' as const];\n case 'symbol':\n case 'undefined':\n case 'function':\n default:\n return acc;\n }\n },\n [],\n );\n\n if (types.length === options.length) {\n // all the literals are primitive, as far as null can be considered primitive\n\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce(\n (acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n },\n [] as (string | number | bigint | boolean | null)[],\n ),\n };\n }\n } else if (options.every(x => x._def.typeName === 'ZodEnum')) {\n return {\n type: 'string',\n enum: options.reduce(\n (acc: string[], x) => [\n ...acc,\n ...x._def.values.filter((x: string) => !acc.includes(x)),\n ],\n [],\n ),\n };\n }\n\n return asAnyOf(def, refs);\n}\n\nconst asAnyOf = (\n def: ZodUnionDef | ZodDiscriminatedUnionDef,\n refs: Refs,\n): JsonSchema7PrimitiveUnionType | JsonSchema7AnyOfType | undefined => {\n const anyOf = (\n (def.options instanceof Map\n ? Array.from(def.options.values())\n : def.options) as any[]\n )\n .map((x, i) =>\n parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'anyOf', `${i}`],\n }),\n )\n .filter(\n (x): x is JsonSchema7Type =>\n !!x &&\n (!refs.strictUnions ||\n (typeof x === 'object' && Object.keys(x).length > 0)),\n );\n\n return anyOf.length ? { anyOf } : undefined;\n};\n","import type { ZodNullableDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport type { JsonSchema7NullType } from './null';\nimport { primitiveMappings } from './union';\n\nexport type JsonSchema7NullableType =\n | {\n anyOf: [JsonSchema7Type, JsonSchema7NullType];\n }\n | {\n type: [string, 'null'];\n };\n\nexport function parseNullableDef(\n def: ZodNullableDef,\n refs: Refs,\n): JsonSchema7NullableType | undefined {\n if (\n ['ZodString', 'ZodNumber', 'ZodBigInt', 'ZodBoolean', 'ZodNull'].includes(\n def.innerType._def.typeName,\n ) &&\n (!def.innerType._def.checks || !def.innerType._def.checks.length)\n ) {\n return {\n type: [\n primitiveMappings[\n def.innerType._def.typeName as keyof typeof primitiveMappings\n ],\n 'null',\n ],\n };\n }\n\n const base = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'anyOf', '0'],\n });\n\n return base && { anyOf: [base, { type: 'null' }] };\n}\n","import type { ZodNumberDef } from 'zod/v3';\n\nexport type JsonSchema7NumberType = {\n type: 'number' | 'integer';\n minimum?: number;\n exclusiveMinimum?: number;\n maximum?: number;\n exclusiveMaximum?: number;\n multipleOf?: number;\n};\n\nexport function parseNumberDef(def: ZodNumberDef): JsonSchema7NumberType {\n const res: JsonSchema7NumberType = {\n type: 'number',\n };\n\n if (!def.checks) return res;\n\n for (const check of def.checks) {\n switch (check.kind) {\n case 'int':\n res.type = 'integer';\n break;\n case 'min':\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case 'max':\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n break;\n case 'multipleOf':\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\n","import type { ZodObjectDef, ZodTypeAny } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7ObjectType = {\n type: 'object';\n properties: Record;\n additionalProperties?: boolean | JsonSchema7Type;\n required?: string[];\n};\n\nexport function parseObjectDef(def: ZodObjectDef, refs: Refs) {\n const result: JsonSchema7ObjectType = {\n type: 'object',\n properties: {},\n };\n\n const required: string[] = [];\n\n const shape = def.shape();\n\n for (const propName in shape) {\n let propDef = shape[propName];\n\n if (propDef === undefined || propDef._def === undefined) {\n continue;\n }\n\n const propOptional = safeIsOptional(propDef);\n\n const parsedDef = parseDef(propDef._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'properties', propName],\n propertyPath: [...refs.currentPath, 'properties', propName],\n });\n\n if (parsedDef === undefined) {\n continue;\n }\n\n result.properties[propName] = parsedDef;\n\n if (!propOptional) {\n required.push(propName);\n }\n }\n\n if (required.length) {\n result.required = required;\n }\n\n const additionalProperties = decideAdditionalProperties(def, refs);\n\n if (additionalProperties !== undefined) {\n result.additionalProperties = additionalProperties;\n }\n\n return result;\n}\n\nfunction decideAdditionalProperties(def: ZodObjectDef, refs: Refs) {\n if (def.catchall._def.typeName !== 'ZodNever') {\n return parseDef(def.catchall._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'additionalProperties'],\n });\n }\n\n switch (def.unknownKeys) {\n case 'passthrough':\n return refs.allowedAdditionalProperties;\n case 'strict':\n return refs.rejectedAdditionalProperties;\n case 'strip':\n return refs.removeAdditionalStrategy === 'strict'\n ? refs.allowedAdditionalProperties\n : refs.rejectedAdditionalProperties;\n }\n}\n\nfunction safeIsOptional(schema: ZodTypeAny): boolean {\n try {\n return schema.isOptional();\n } catch {\n return true;\n }\n}\n","import type { ZodOptionalDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport { parseAnyDef } from './any';\n\nexport const parseOptionalDef = (\n def: ZodOptionalDef,\n refs: Refs,\n): JsonSchema7Type | undefined => {\n if (refs.currentPath.toString() === refs.propertyPath?.toString()) {\n return parseDef(def.innerType._def, refs);\n }\n\n const innerSchema = parseDef(def.innerType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'anyOf', '1'],\n });\n\n return innerSchema\n ? { anyOf: [{ not: parseAnyDef() }, innerSchema] }\n : parseAnyDef();\n};\n","import type { ZodPipelineDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\nimport type { JsonSchema7AllOfType } from './intersection';\n\nexport const parsePipelineDef = (\n def: ZodPipelineDef,\n refs: Refs,\n): JsonSchema7AllOfType | JsonSchema7Type | undefined => {\n if (refs.pipeStrategy === 'input') {\n return parseDef(def.in._def, refs);\n } else if (refs.pipeStrategy === 'output') {\n return parseDef(def.out._def, refs);\n }\n\n const a = parseDef(def.in._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', '0'],\n });\n const b = parseDef(def.out._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'allOf', a ? '1' : '0'],\n });\n\n return {\n allOf: [a, b].filter((x): x is JsonSchema7Type => x !== undefined),\n };\n};\n","import type { ZodPromiseDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport function parsePromiseDef(\n def: ZodPromiseDef,\n refs: Refs,\n): JsonSchema7Type | undefined {\n return parseDef(def.type._def, refs);\n}\n","import type { ZodSetDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7SetType = {\n type: 'array';\n uniqueItems: true;\n items?: JsonSchema7Type;\n minItems?: number;\n maxItems?: number;\n};\n\nexport function parseSetDef(def: ZodSetDef, refs: Refs): JsonSchema7SetType {\n const items = parseDef(def.valueType._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items'],\n });\n\n const schema: JsonSchema7SetType = {\n type: 'array',\n uniqueItems: true,\n items,\n };\n\n if (def.minSize) {\n schema.minItems = def.minSize.value;\n }\n\n if (def.maxSize) {\n schema.maxItems = def.maxSize.value;\n }\n\n return schema;\n}\n","import type { ZodTupleDef, ZodTupleItems, ZodTypeAny } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { JsonSchema7Type } from '../parse-types';\nimport type { Refs } from '../refs';\n\nexport type JsonSchema7TupleType = {\n type: 'array';\n minItems: number;\n items: JsonSchema7Type[];\n} & (\n | {\n maxItems: number;\n }\n | {\n additionalItems?: JsonSchema7Type;\n }\n);\n\nexport function parseTupleDef(\n def: ZodTupleDef,\n refs: Refs,\n): JsonSchema7TupleType {\n if (def.rest) {\n return {\n type: 'array',\n minItems: def.items.length,\n items: def.items\n .map((x, i) =>\n parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', `${i}`],\n }),\n )\n .reduce(\n (acc: JsonSchema7Type[], x) => (x === undefined ? acc : [...acc, x]),\n [],\n ),\n additionalItems: parseDef(def.rest._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'additionalItems'],\n }),\n };\n } else {\n return {\n type: 'array',\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items\n .map((x, i) =>\n parseDef(x._def, {\n ...refs,\n currentPath: [...refs.currentPath, 'items', `${i}`],\n }),\n )\n .reduce(\n (acc: JsonSchema7Type[], x) => (x === undefined ? acc : [...acc, x]),\n [],\n ),\n };\n }\n}\n","import { parseAnyDef, type JsonSchema7AnyType } from './any';\n\nexport type JsonSchema7UndefinedType = {\n not: JsonSchema7AnyType;\n};\n\nexport function parseUndefinedDef(): JsonSchema7UndefinedType {\n return {\n not: parseAnyDef(),\n };\n}\n","import { parseAnyDef, type JsonSchema7AnyType } from './any';\n\nexport type JsonSchema7UnknownType = JsonSchema7AnyType;\n\nexport function parseUnknownDef(): JsonSchema7UnknownType {\n return parseAnyDef();\n}\n","import type { ZodReadonlyDef } from 'zod/v3';\nimport { parseDef } from '../parse-def';\nimport type { Refs } from '../refs';\n\nexport const parseReadonlyDef = (def: ZodReadonlyDef, refs: Refs) => {\n return parseDef(def.innerType._def, refs);\n};\n","import { ZodFirstPartyTypeKind } from 'zod/v3';\nimport { parseAnyDef } from './parsers/any';\nimport { parseArrayDef } from './parsers/array';\nimport { parseBigintDef } from './parsers/bigint';\nimport { parseBooleanDef } from './parsers/boolean';\nimport { parseBrandedDef } from './parsers/branded';\nimport { parseCatchDef } from './parsers/catch';\nimport { parseDateDef } from './parsers/date';\nimport { parseDefaultDef } from './parsers/default';\nimport { parseEffectsDef } from './parsers/effects';\nimport { parseEnumDef } from './parsers/enum';\nimport { parseIntersectionDef } from './parsers/intersection';\nimport { parseLiteralDef } from './parsers/literal';\nimport { parseMapDef } from './parsers/map';\nimport { parseNativeEnumDef } from './parsers/native-enum';\nimport { parseNeverDef } from './parsers/never';\nimport { parseNullDef } from './parsers/null';\nimport { parseNullableDef } from './parsers/nullable';\nimport { parseNumberDef } from './parsers/number';\nimport { parseObjectDef } from './parsers/object';\nimport { parseOptionalDef } from './parsers/optional';\nimport { parsePipelineDef } from './parsers/pipeline';\nimport { parsePromiseDef } from './parsers/promise';\nimport { parseRecordDef } from './parsers/record';\nimport { parseSetDef } from './parsers/set';\nimport { parseStringDef } from './parsers/string';\nimport { parseTupleDef } from './parsers/tuple';\nimport { parseUndefinedDef } from './parsers/undefined';\nimport { parseUnionDef } from './parsers/union';\nimport { parseUnknownDef } from './parsers/unknown';\nimport type { Refs } from './refs';\nimport { parseReadonlyDef } from './parsers/readonly';\nimport type { JsonSchema7Type } from './parse-types';\n\nexport type InnerDefGetter = () => any;\n\nexport const selectParser = (\n def: any,\n typeName: ZodFirstPartyTypeKind,\n refs: Refs,\n): JsonSchema7Type | undefined | InnerDefGetter => {\n switch (typeName) {\n case ZodFirstPartyTypeKind.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNumber:\n return parseNumberDef(def);\n case ZodFirstPartyTypeKind.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBigInt:\n return parseBigintDef(def);\n case ZodFirstPartyTypeKind.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUndefined:\n return parseUndefinedDef();\n case ZodFirstPartyTypeKind.ZodNull:\n return parseNullDef();\n case ZodFirstPartyTypeKind.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind.ZodUnion:\n case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLiteral:\n return parseLiteralDef(def);\n case ZodFirstPartyTypeKind.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind.ZodLazy:\n return () => (def as any).getter()._def;\n case ZodFirstPartyTypeKind.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind.ZodNaN:\n case ZodFirstPartyTypeKind.ZodNever:\n return parseNeverDef();\n case ZodFirstPartyTypeKind.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind.ZodAny:\n return parseAnyDef();\n case ZodFirstPartyTypeKind.ZodUnknown:\n return parseUnknownDef();\n case ZodFirstPartyTypeKind.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind.ZodFunction:\n case ZodFirstPartyTypeKind.ZodVoid:\n case ZodFirstPartyTypeKind.ZodSymbol:\n return undefined;\n default:\n /* c8 ignore next */\n return ((_: never) => undefined)(typeName);\n }\n};\n","export const getRelativePath = (pathA: string[], pathB: string[]) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i]) break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join('/');\n};\n","import type { ZodTypeDef } from 'zod/v3';\nimport type { Refs, Seen } from './refs';\nimport { ignoreOverride } from './options';\nimport type { JsonSchema7Type } from './parse-types';\nimport { selectParser } from './select-parser';\nimport { getRelativePath } from './get-relative-path';\nimport { parseAnyDef } from './parsers/any';\n\nexport function parseDef(\n def: ZodTypeDef,\n refs: Refs,\n forceResolution = false, // Forces a new schema to be instantiated even though its def has been seen. Used for improving refs in definitions. See https://github.com/StefanTerdell/zod-to-json-schema/pull/61.\n): JsonSchema7Type | undefined {\n const seenItem = refs.seen.get(def);\n\n if (refs.override) {\n const overrideResult = refs.override?.(\n def,\n refs,\n seenItem,\n forceResolution,\n );\n\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n\n if (seenSchema !== undefined) {\n return seenSchema;\n }\n }\n\n const newItem: Seen = { def, path: refs.currentPath, jsonSchema: undefined };\n\n refs.seen.set(def, newItem);\n\n const jsonSchemaOrGetter = selectParser(def, (def as any).typeName, refs);\n\n // If the return was a function, then the inner definition needs to be extracted before a call to parseDef (recursive)\n const jsonSchema =\n typeof jsonSchemaOrGetter === 'function'\n ? parseDef(jsonSchemaOrGetter(), refs)\n : jsonSchemaOrGetter;\n\n if (jsonSchema) {\n addMeta(def, refs, jsonSchema);\n }\n\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema, def, refs);\n\n newItem.jsonSchema = jsonSchema;\n\n return postProcessResult;\n }\n\n newItem.jsonSchema = jsonSchema;\n\n return jsonSchema;\n}\n\nconst get$ref = (\n item: Seen,\n refs: Refs,\n):\n | {\n $ref: string;\n }\n | {}\n | undefined => {\n switch (refs.$refStrategy) {\n case 'root':\n return { $ref: item.path.join('/') };\n case 'relative':\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case 'none':\n case 'seen': {\n if (\n item.path.length < refs.currentPath.length &&\n item.path.every((value, index) => refs.currentPath[index] === value)\n ) {\n console.warn(\n `Recursive reference detected at ${refs.currentPath.join(\n '/',\n )}! Defaulting to any`,\n );\n\n return parseAnyDef();\n }\n\n return refs.$refStrategy === 'seen' ? parseAnyDef() : undefined;\n }\n }\n};\n\nconst addMeta = (\n def: ZodTypeDef,\n refs: Refs,\n jsonSchema: JsonSchema7Type,\n): JsonSchema7Type => {\n if (def.description) {\n jsonSchema.description = def.description;\n }\n return jsonSchema;\n};\n","import type { ZodTypeDef } from 'zod/v3';\nimport { getDefaultOptions, type Options } from './options';\nimport type { JsonSchema7Type } from './parse-types';\n\nexport type Refs = {\n seen: Map;\n currentPath: string[];\n propertyPath: string[] | undefined;\n} & Options;\n\nexport type Seen = {\n def: ZodTypeDef;\n path: string[];\n jsonSchema: JsonSchema7Type | undefined;\n};\n\nexport const getRefs = (options?: string | Partial): Refs => {\n const _options = getDefaultOptions(options);\n const currentPath =\n _options.name !== undefined\n ? [..._options.basePath, _options.definitionPath, _options.name]\n : _options.basePath;\n return {\n ..._options,\n currentPath: currentPath,\n propertyPath: undefined,\n seen: new Map(\n Object.entries(_options.definitions).map(([name, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: undefined,\n },\n ]),\n ),\n };\n};\n","import type { ZodSchema } from 'zod/v3';\nimport type { Options } from './options';\nimport { parseDef } from './parse-def';\nimport type { JsonSchema7Type } from './parse-types';\nimport { getRefs } from './refs';\nimport { parseAnyDef } from './parsers/any';\n\nconst zod3ToJsonSchema = (\n schema: ZodSchema,\n options?: Partial | string,\n): JsonSchema7Type & {\n $schema?: string;\n definitions?: {\n [key: string]: JsonSchema7Type;\n };\n} => {\n const refs = getRefs(options);\n\n let definitions =\n typeof options === 'object' && options.definitions\n ? Object.entries(options.definitions).reduce(\n (acc: { [key: string]: JsonSchema7Type }, [name, schema]) => ({\n ...acc,\n [name]:\n parseDef(\n schema._def,\n {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n },\n true,\n ) ?? parseAnyDef(),\n }),\n {},\n )\n : undefined;\n\n const name =\n typeof options === 'string'\n ? options\n : options?.nameStrategy === 'title'\n ? undefined\n : options?.name;\n\n const main =\n parseDef(\n schema._def,\n name === undefined\n ? refs\n : {\n ...refs,\n currentPath: [...refs.basePath, refs.definitionPath, name],\n },\n false,\n ) ?? (parseAnyDef() as JsonSchema7Type);\n\n const title =\n typeof options === 'object' &&\n options.name !== undefined &&\n options.nameStrategy === 'title'\n ? options.name\n : undefined;\n\n if (title !== undefined) {\n main.title = title;\n }\n\n const combined: ReturnType =\n name === undefined\n ? definitions\n ? {\n ...main,\n [refs.definitionPath]: definitions,\n }\n : main\n : {\n $ref: [\n ...(refs.$refStrategy === 'relative' ? [] : refs.basePath),\n refs.definitionPath,\n name,\n ].join('/'),\n [refs.definitionPath]: {\n ...definitions,\n [name]: main,\n },\n };\n\n combined.$schema = 'http://json-schema.org/draft-07/schema#';\n\n return combined;\n};\n\nexport { zod3ToJsonSchema };\n","import { TypeValidationError, type JSONSchema7 } from '@ai-sdk/provider';\nimport type {\n StandardSchemaV1,\n StandardJSONSchemaV1,\n} from '@standard-schema/spec';\nimport type * as z3 from 'zod/v3';\nimport * as z4 from 'zod/v4';\nimport { addAdditionalPropertiesToJsonSchema } from './add-additional-properties-to-json-schema';\nimport { zod3ToJsonSchema } from './to-json-schema/zod3-to-json-schema';\n\n/**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\nconst schemaSymbol = Symbol.for('vercel.ai.schema');\n\nexport type ValidationResult =\n | { success: true; value: OBJECT }\n | { success: false; error: Error };\n\nexport type Schema = {\n /**\n * Used to mark schemas so we can support both Zod and custom schemas.\n */\n [schemaSymbol]: true;\n\n /**\n * Schema type for inference.\n */\n _type: OBJECT;\n\n /**\n * Optional. Validates that the structure of a value matches this schema,\n * and returns a typed version of the value if it does.\n */\n readonly validate?: (\n value: unknown,\n ) => ValidationResult | PromiseLike>;\n\n /**\n * The JSON Schema for the schema. It is passed to the providers.\n */\n readonly jsonSchema: JSONSchema7 | PromiseLike;\n};\n\n/**\n * Creates a schema with deferred creation.\n * This is important to reduce the startup time of the library\n * and to avoid initializing unused validators.\n *\n * @param createValidator A function that creates a schema.\n * @returns A function that returns a schema.\n */\nexport function lazySchema(\n createSchema: () => Schema,\n): LazySchema {\n // cache the validator to avoid initializing it multiple times\n let schema: Schema | undefined;\n return () => {\n if (schema == null) {\n schema = createSchema();\n }\n return schema;\n };\n}\n\nexport type LazySchema = () => Schema;\n\nexport type ZodSchema =\n | z3.Schema\n | z4.core.$ZodType;\n\nexport type StandardSchema = StandardSchemaV1 &\n StandardJSONSchemaV1;\n\nexport type FlexibleSchema =\n | Schema\n | LazySchema\n | ZodSchema\n | StandardSchema;\n\nexport type InferSchema =\n SCHEMA extends ZodSchema\n ? T\n : SCHEMA extends StandardSchema\n ? T\n : SCHEMA extends LazySchema\n ? T\n : SCHEMA extends Schema\n ? T\n : never;\n\n/**\n * Create a schema using a JSON Schema.\n *\n * @param jsonSchema The JSON Schema for the schema.\n * @param options.validate Optional. A validation function for the schema.\n */\nexport function jsonSchema(\n jsonSchema:\n | JSONSchema7\n | PromiseLike\n | (() => JSONSchema7 | PromiseLike),\n {\n validate,\n }: {\n validate?: (\n value: unknown,\n ) => ValidationResult | PromiseLike>;\n } = {},\n): Schema {\n return {\n [schemaSymbol]: true,\n _type: undefined as OBJECT, // should never be used directly\n get jsonSchema() {\n if (typeof jsonSchema === 'function') {\n jsonSchema = jsonSchema(); // cache the function results\n }\n return jsonSchema;\n },\n validate,\n };\n}\n\nfunction isSchema(value: unknown): value is Schema {\n return (\n typeof value === 'object' &&\n value !== null &&\n schemaSymbol in value &&\n value[schemaSymbol] === true &&\n 'jsonSchema' in value &&\n 'validate' in value\n );\n}\n\nexport function asSchema(\n schema: FlexibleSchema | undefined,\n): Schema {\n return schema == null\n ? jsonSchema({ properties: {}, additionalProperties: false })\n : isSchema(schema)\n ? schema\n : '~standard' in schema\n ? schema['~standard'].vendor === 'zod'\n ? zodSchema(schema as ZodSchema)\n : standardSchema(schema as StandardSchema)\n : schema();\n}\n\nfunction standardSchema(\n standardSchema: StandardSchema,\n): Schema {\n return jsonSchema(\n () =>\n addAdditionalPropertiesToJsonSchema(\n standardSchema['~standard'].jsonSchema.input({\n target: 'draft-07',\n }) as JSONSchema7,\n ),\n {\n validate: async value => {\n const result = await standardSchema['~standard'].validate(value);\n return 'value' in result\n ? { success: true, value: result.value }\n : {\n success: false,\n error: new TypeValidationError({\n value,\n cause: result.issues,\n }),\n };\n },\n },\n );\n}\n\nexport function zod3Schema(\n zodSchema: z3.Schema,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n // default to no references (to support openapi conversion for google)\n const useReferences = options?.useReferences ?? false;\n\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () =>\n zod3ToJsonSchema(zodSchema, {\n $refStrategy: useReferences ? 'root' : 'none',\n }) as JSONSchema7,\n {\n validate: async value => {\n const result = await zodSchema.safeParseAsync(value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n },\n },\n );\n}\n\nexport function zod4Schema(\n zodSchema: z4.core.$ZodType,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n // default to no references (to support openapi conversion for google)\n const useReferences = options?.useReferences ?? false;\n\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () =>\n addAdditionalPropertiesToJsonSchema(\n z4.toJSONSchema(zodSchema, {\n target: 'draft-7',\n io: 'input',\n reused: useReferences ? 'ref' : 'inline',\n }) as JSONSchema7,\n ),\n {\n validate: async value => {\n const result = await z4.safeParseAsync(zodSchema, value);\n return result.success\n ? { success: true, value: result.data }\n : { success: false, error: result.error };\n },\n },\n );\n}\n\nexport function isZod4Schema(\n zodSchema: z4.core.$ZodType | z3.Schema,\n): zodSchema is z4.core.$ZodType {\n // https://zod.dev/library-authors?id=how-to-support-zod-3-and-zod-4-simultaneously\n return '_zod' in zodSchema;\n}\n\nexport function zodSchema(\n zodSchema:\n | z4.core.$ZodType\n | z3.Schema,\n options?: {\n /**\n * Enables support for references in the schema.\n * This is required for recursive schemas, e.g. with `z.lazy`.\n * However, not all language models and providers support such references.\n * Defaults to `false`.\n */\n useReferences?: boolean;\n },\n): Schema {\n if (isZod4Schema(zodSchema)) {\n return zod4Schema(zodSchema, options);\n } else {\n return zod3Schema(zodSchema, options);\n }\n}\n","import {\n TypeValidationError,\n type TypeValidationContext,\n} from '@ai-sdk/provider';\nimport { asSchema, type FlexibleSchema } from './schema';\n\n/**\n * Validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @param {TypeValidationContext} options.context - Optional context about what is being validated.\n * @returns {Promise} - The typed object.\n */\nexport async function validateTypes({\n value,\n schema,\n context,\n}: {\n value: unknown;\n schema: FlexibleSchema;\n context?: TypeValidationContext;\n}): Promise {\n const result = await safeValidateTypes({ value, schema, context });\n\n if (!result.success) {\n throw TypeValidationError.wrap({ value, cause: result.error, context });\n }\n\n return result.value;\n}\n\n/**\n * Safely validates the types of an unknown object using a schema and\n * return a strongly-typed object.\n *\n * @template T - The type of the object to validate.\n * @param {string} options.value - The JSON object to validate.\n * @param {Validator} options.schema - The schema to use for validating the JSON.\n * @param {TypeValidationContext} options.context - Optional context about what is being validated.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport async function safeValidateTypes({\n value,\n schema,\n context,\n}: {\n value: unknown;\n schema: FlexibleSchema;\n context?: TypeValidationContext;\n}): Promise<\n | {\n success: true;\n value: OBJECT;\n rawValue: unknown;\n }\n | {\n success: false;\n error: TypeValidationError;\n rawValue: unknown;\n }\n> {\n const actualSchema = asSchema(schema);\n\n try {\n if (actualSchema.validate == null) {\n return { success: true, value: value as OBJECT, rawValue: value };\n }\n\n const result = await actualSchema.validate(value);\n\n if (result.success) {\n return { success: true, value: result.value, rawValue: value };\n }\n\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: result.error, context }),\n rawValue: value,\n };\n } catch (error) {\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: error, context }),\n rawValue: value,\n };\n }\n}\n","import {\n JSONParseError,\n TypeValidationError,\n type JSONValue,\n} from '@ai-sdk/provider';\nimport { secureJsonParse } from './secure-json-parse';\nimport { safeValidateTypes, validateTypes } from './validate-types';\nimport type { FlexibleSchema } from './schema';\n\n/**\n * Parses a JSON string into an unknown object.\n *\n * @param text - The JSON string to parse.\n * @returns {JSONValue} - The parsed JSON object.\n */\nexport async function parseJSON(options: {\n text: string;\n schema?: undefined;\n}): Promise;\n/**\n * Parses a JSON string into a strongly-typed object using the provided schema.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns {Promise} - The parsed object.\n */\nexport async function parseJSON(options: {\n text: string;\n schema: FlexibleSchema;\n}): Promise;\nexport async function parseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: FlexibleSchema;\n}): Promise {\n try {\n const value = secureJsonParse(text);\n\n if (schema == null) {\n return value;\n }\n\n return validateTypes({ value, schema });\n } catch (error) {\n if (\n JSONParseError.isInstance(error) ||\n TypeValidationError.isInstance(error)\n ) {\n throw error;\n }\n\n throw new JSONParseError({ text, cause: error });\n }\n}\n\nexport type ParseResult =\n | { success: true; value: T; rawValue: unknown }\n | {\n success: false;\n error: JSONParseError | TypeValidationError;\n rawValue: unknown;\n };\n\n/**\n * Safely parses a JSON string and returns the result as an object of type `unknown`.\n *\n * @param text - The JSON string to parse.\n * @returns {Promise} Either an object with `success: true` and the parsed data, or an object with `success: false` and the error that occurred.\n */\nexport async function safeParseJSON(options: {\n text: string;\n schema?: undefined;\n}): Promise>;\n/**\n * Safely parses a JSON string into a strongly-typed object, using a provided schema to validate the object.\n *\n * @template T - The type of the object to parse the JSON into.\n * @param {string} text - The JSON string to parse.\n * @param {Validator} schema - The schema to use for parsing the JSON.\n * @returns An object with either a `success` flag and the parsed and typed data, or a `success` flag and an error object.\n */\nexport async function safeParseJSON(options: {\n text: string;\n schema: FlexibleSchema;\n}): Promise>;\nexport async function safeParseJSON({\n text,\n schema,\n}: {\n text: string;\n schema?: FlexibleSchema;\n}): Promise> {\n try {\n const value = secureJsonParse(text);\n\n if (schema == null) {\n return { success: true, value: value as T, rawValue: value };\n }\n\n return await safeValidateTypes({ value, schema });\n } catch (error) {\n return {\n success: false,\n error: JSONParseError.isInstance(error)\n ? error\n : new JSONParseError({ text, cause: error }),\n rawValue: undefined,\n };\n }\n}\n\nexport function isParsableJson(input: string): boolean {\n try {\n secureJsonParse(input);\n return true;\n } catch {\n return false;\n }\n}\n","import {\n EventSourceParserStream,\n type EventSourceMessage,\n} from 'eventsource-parser/stream';\nimport { safeParseJSON, type ParseResult } from './parse-json';\nimport type { FlexibleSchema } from './schema';\n\n/**\n * Parses a JSON event stream into a stream of parsed JSON objects.\n */\nexport function parseJsonEventStream({\n stream,\n schema,\n}: {\n stream: ReadableStream;\n schema: FlexibleSchema;\n}): ReadableStream> {\n return stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new EventSourceParserStream())\n .pipeThrough(\n new TransformStream>({\n async transform({ data }, controller) {\n // ignore the 'DONE' event that e.g. OpenAI sends:\n if (data === '[DONE]') {\n return;\n }\n\n controller.enqueue(await safeParseJSON({ text: data, schema }));\n },\n }),\n );\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport type { FetchFunction } from './fetch-function';\nimport { handleFetchError } from './handle-fetch-error';\nimport { isAbortError } from './is-abort-error';\nimport type { ResponseHandler } from './response-handler';\nimport { getRuntimeEnvironmentUserAgent } from './get-runtime-environment-user-agent';\nimport { withUserAgentSuffix } from './with-user-agent-suffix';\nimport { VERSION } from './version';\n\n// use function to allow for mocking in tests:\nconst getOriginalFetch = () => globalThis.fetch;\n\nexport const postJsonToApi = async ({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n}: {\n url: string;\n headers?: Record;\n body: unknown;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) =>\n postToApi({\n url,\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n body: {\n content: JSON.stringify(body),\n values: body,\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n });\n\nexport const postFormDataToApi = async ({\n url,\n headers,\n formData,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n}: {\n url: string;\n headers?: Record;\n formData: FormData;\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) =>\n postToApi({\n url,\n headers,\n body: {\n content: formData,\n values: Object.fromEntries((formData as any).entries()),\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch,\n });\n\nexport const postToApi = async ({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch = getOriginalFetch(),\n}: {\n url: string;\n headers?: Record;\n body: {\n content: string | FormData | Uint8Array;\n values: unknown;\n };\n failedResponseHandler: ResponseHandler;\n successfulResponseHandler: ResponseHandler;\n abortSignal?: AbortSignal;\n fetch?: FetchFunction;\n}) => {\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n ),\n body: body.content,\n signal: abortSignal,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.ok) {\n let errorInformation: {\n value: Error;\n responseHeaders?: Record | undefined;\n };\n\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: body.values,\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n\n throw new APICallError({\n message: 'Failed to process error response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values,\n });\n }\n\n throw errorInformation.value;\n }\n\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: body.values,\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n\n throw new APICallError({\n message: 'Failed to process successful response',\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values,\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: body.values });\n }\n};\n","import type { JSONValue, JSONObject } from '@ai-sdk/provider';\nimport type { FlexibleSchema } from '../schema';\nimport type { ToolResultOutput } from './content-part';\nimport type { ModelMessage } from './model-message';\nimport type { ProviderOptions } from './provider-options';\n\n/**\n * Additional options that are sent into each tool call.\n */\nexport interface ToolExecutionOptions {\n /**\n * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.\n */\n toolCallId: string;\n\n /**\n * Messages that were sent to the language model to initiate the response that contained the tool call.\n * The messages **do not** include the system prompt nor the assistant response that contained the tool call.\n */\n messages: ModelMessage[];\n\n /**\n * An optional abort signal that indicates that the overall operation should be aborted.\n */\n abortSignal?: AbortSignal;\n\n /**\n * User-defined context.\n *\n * Treat the context object as immutable inside tools.\n * Mutating the context object can lead to race conditions and unexpected results\n * when tools are called in parallel.\n *\n * If you need to mutate the context, analyze the tool calls and results\n * in `prepareStep` and update it there.\n *\n * Experimental (can break in patch releases).\n */\n experimental_context?: unknown;\n}\n\n/**\n * Function that is called to determine if the tool needs approval before it can be executed.\n */\nexport type ToolNeedsApprovalFunction = (\n input: INPUT,\n options: {\n /**\n * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.\n */\n toolCallId: string;\n\n /**\n * Messages that were sent to the language model to initiate the response that contained the tool call.\n * The messages **do not** include the system prompt nor the assistant response that contained the tool call.\n */\n messages: ModelMessage[];\n\n /**\n * Additional context.\n *\n * Experimental (can break in patch releases).\n */\n experimental_context?: unknown;\n },\n) => boolean | PromiseLike;\n\nexport type ToolExecuteFunction = (\n input: INPUT,\n options: ToolExecutionOptions,\n) => AsyncIterable | PromiseLike | OUTPUT;\n\n// 0 extends 1 & N checks for any\n// [N] extends [never] checks for never\ntype NeverOptional = 0 extends 1 & N\n ? Partial\n : [N] extends [never]\n ? Partial>\n : T;\n\ntype ToolOutputProperties = NeverOptional<\n OUTPUT,\n | {\n /**\n * An async function that is called with the arguments from the tool call and produces a result.\n * If not provided, the tool will not be executed automatically.\n *\n * @args is the input of the tool call.\n * @options.abortSignal is a signal that can be used to abort the tool call.\n */\n execute: ToolExecuteFunction;\n\n outputSchema?: FlexibleSchema;\n }\n | {\n outputSchema: FlexibleSchema;\n\n execute?: never;\n }\n>;\n\n/**\n * A tool contains the description and the schema of the input that the tool expects.\n * This enables the language model to generate the input.\n *\n * The tool can also contain an optional execute function for the actual execution function of the tool.\n */\nexport type Tool<\n INPUT extends JSONValue | unknown | never = any,\n OUTPUT extends JSONValue | unknown | never = any,\n> = {\n /**\n * An optional description of what the tool does.\n * Will be used by the language model to decide whether to use the tool.\n * Not used for provider-defined tools.\n */\n description?: string;\n\n /**\n * An optional title of the tool.\n */\n title?: string;\n\n /**\n * Additional provider-specific metadata. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * Optional metadata about the tool itself (e.g. its source).\n *\n * Unlike `providerOptions`, this metadata is not sent to the language\n * model. Instead, it is propagated onto the resulting tool call's\n * `toolMetadata` so consumers can read it from tool call / result parts\n * and UI message parts. This is useful for sources of dynamic tools (e.g.\n * an MCP server) to identify themselves.\n */\n metadata?: JSONObject;\n\n /**\n * The schema of the input that the tool expects.\n * The language model will use this to generate the input.\n * It is also used to validate the output of the language model.\n *\n * You can use descriptions on the schema properties to make the input understandable for the language model.\n */\n inputSchema: FlexibleSchema;\n\n /**\n * An optional list of input examples that show the language\n * model what the input should look like.\n */\n inputExamples?: Array<{ input: NoInfer }>;\n\n /**\n * Whether the tool needs approval before it can be executed.\n */\n needsApproval?:\n | boolean\n | ToolNeedsApprovalFunction<[INPUT] extends [never] ? unknown : INPUT>;\n\n /**\n * Strict mode setting for the tool.\n *\n * Providers that support strict mode will use this setting to determine\n * how the input should be generated. Strict mode will always produce\n * valid inputs, but it might limit what input schemas are supported.\n */\n strict?: boolean;\n\n /**\n * Optional function that is called when the argument streaming starts.\n * Only called when the tool is used in a streaming context.\n */\n onInputStart?: (options: ToolExecutionOptions) => void | PromiseLike;\n\n /**\n * Optional function that is called when an argument streaming delta is available.\n * Only called when the tool is used in a streaming context.\n */\n onInputDelta?: (\n options: { inputTextDelta: string } & ToolExecutionOptions,\n ) => void | PromiseLike;\n\n /**\n * Optional function that is called when a tool call can be started,\n * even if the execute function is not provided.\n */\n onInputAvailable?: (\n options: {\n input: [INPUT] extends [never] ? unknown : INPUT;\n } & ToolExecutionOptions,\n ) => void | PromiseLike;\n} & ToolOutputProperties & {\n /**\n * Optional conversion function that maps the tool result to an output that can be used by the language model.\n *\n * If not provided, the tool result will be sent as a JSON object.\n */\n toModelOutput?: (options: {\n /**\n * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.\n */\n toolCallId: string;\n\n /**\n * The input of the tool call.\n */\n input: [INPUT] extends [never] ? unknown : INPUT;\n\n /**\n * The output of the tool call.\n */\n output: 0 extends 1 & OUTPUT\n ? any\n : [OUTPUT] extends [never]\n ? any\n : NoInfer;\n }) => ToolResultOutput | PromiseLike;\n } & (\n | {\n /**\n * Tool with user-defined input and output schemas.\n */\n type?: undefined | 'function';\n }\n | {\n /**\n * Tool that is defined at runtime (e.g. an MCP tool).\n * The types of input and output are not known at development time.\n */\n type: 'dynamic';\n }\n | {\n /**\n * Tool with provider-defined input and output schemas.\n */\n type: 'provider';\n\n /**\n * The ID of the tool. Must follow the format `.`.\n */\n id: `${string}.${string}`;\n\n /**\n * The arguments for configuring the tool. Must match the expected arguments defined by the provider for this tool.\n */\n args: Record;\n\n /**\n * Whether this provider-executed tool supports deferred results.\n *\n * When true, the tool result may not be returned in the same turn as the\n * tool call (e.g., when using programmatic tool calling where a server tool\n * triggers a client-executed tool, and the server tool's result is deferred\n * until the client tool is resolved).\n *\n * This flag allows the AI SDK to handle tool results that arrive without\n * a matching tool call in the current response.\n *\n * @default false\n */\n supportsDeferredResults?: boolean;\n }\n );\n\n/**\n * Infer the input type of a tool.\n */\nexport type InferToolInput =\n TOOL extends Tool ? INPUT : never;\n\n/**\n * Infer the output type of a tool.\n */\nexport type InferToolOutput =\n TOOL extends Tool ? OUTPUT : never;\n\n/**\n * Helper function for inferring the execute args of a tool.\n */\n// Note: overload order is important for auto-completion\nexport function tool(\n tool: Tool,\n): Tool;\nexport function tool(tool: Tool): Tool;\nexport function tool(tool: Tool): Tool;\nexport function tool(tool: Tool): Tool;\nexport function tool(tool: any): any {\n return tool;\n}\n\n/**\n * Defines a dynamic tool.\n */\nexport function dynamicTool(tool: {\n description?: string;\n title?: string;\n providerOptions?: ProviderOptions;\n metadata?: JSONObject;\n inputSchema: FlexibleSchema;\n execute: ToolExecuteFunction;\n\n /**\n * Optional conversion function that maps the tool result to an output that can be used by the language model.\n *\n * If not provided, the tool result will be sent as a JSON object.\n */\n toModelOutput?: (options: {\n /**\n * The ID of the tool call. You can use it e.g. when sending tool-call related information with stream data.\n */\n toolCallId: string;\n\n /**\n * The input of the tool call.\n */\n input: unknown;\n\n /**\n * The output of the tool call.\n */\n output: unknown;\n }) => ToolResultOutput | PromiseLike;\n\n /**\n * Whether the tool needs approval before it can be executed.\n */\n needsApproval?: boolean | ToolNeedsApprovalFunction;\n}): Tool & {\n type: 'dynamic';\n} {\n return { ...tool, type: 'dynamic' };\n}\n","import { tool, type Tool, type ToolExecuteFunction } from './types/tool';\nimport type { FlexibleSchema } from './schema';\n\nexport type ProviderToolFactory = (\n options: ARGS & {\n execute?: ToolExecuteFunction;\n needsApproval?: Tool['needsApproval'];\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n },\n) => Tool;\n\nexport function createProviderToolFactory({\n id,\n inputSchema,\n}: {\n id: `${string}.${string}`;\n inputSchema: FlexibleSchema;\n}): ProviderToolFactory {\n return ({\n execute,\n outputSchema,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n ...args\n }: ARGS & {\n execute?: ToolExecuteFunction;\n outputSchema?: FlexibleSchema;\n needsApproval?: Tool['needsApproval'];\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n }): Tool =>\n tool({\n type: 'provider',\n id,\n args,\n inputSchema,\n outputSchema,\n execute,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n });\n}\n\nexport type ProviderToolFactoryWithOutputSchema<\n INPUT,\n OUTPUT,\n ARGS extends object,\n> = (\n options: ARGS & {\n execute?: ToolExecuteFunction;\n needsApproval?: Tool['needsApproval'];\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n },\n) => Tool;\n\nexport function createProviderToolFactoryWithOutputSchema<\n INPUT,\n OUTPUT,\n ARGS extends object,\n>({\n id,\n inputSchema,\n outputSchema,\n supportsDeferredResults,\n}: {\n id: `${string}.${string}`;\n inputSchema: FlexibleSchema;\n outputSchema: FlexibleSchema;\n /**\n * Whether this provider-executed tool supports deferred results.\n *\n * When true, the tool result may not be returned in the same turn as the\n * tool call (e.g., when using programmatic tool calling where a server tool\n * triggers a client-executed tool, and the server tool's result is deferred\n * until the client tool is resolved).\n *\n * @default false\n */\n supportsDeferredResults?: boolean;\n}): ProviderToolFactoryWithOutputSchema {\n return ({\n execute,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n ...args\n }: ARGS & {\n execute?: ToolExecuteFunction;\n needsApproval?: Tool['needsApproval'];\n toModelOutput?: Tool['toModelOutput'];\n onInputStart?: Tool['onInputStart'];\n onInputDelta?: Tool['onInputDelta'];\n onInputAvailable?: Tool['onInputAvailable'];\n }): Tool =>\n tool({\n type: 'provider',\n id,\n args,\n inputSchema,\n outputSchema,\n execute,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable,\n supportsDeferredResults,\n });\n}\n","import type { MaybePromiseLike } from './maybe-promise-like';\n\nexport type Resolvable = MaybePromiseLike | (() => MaybePromiseLike);\n\n/**\n * Resolves a value that could be a raw value, a Promise, a function returning a value,\n * or a function returning a Promise.\n */\nexport async function resolve(value: Resolvable): Promise {\n // If it's a function, call it to get the value/promise\n if (typeof value === 'function') {\n value = (value as Function)();\n }\n\n // Otherwise just resolve whatever we got (value or promise)\n return Promise.resolve(value as T);\n}\n","import { APICallError, EmptyResponseBodyError } from '@ai-sdk/provider';\nimport { extractResponseHeaders } from './extract-response-headers';\nimport { parseJSON, safeParseJSON, type ParseResult } from './parse-json';\nimport { parseJsonEventStream } from './parse-json-event-stream';\nimport type { FlexibleSchema } from './schema';\n\nexport type ResponseHandler = (options: {\n url: string;\n requestBodyValues: unknown;\n response: Response;\n}) => PromiseLike<{\n value: RETURN_TYPE;\n rawValue?: unknown;\n responseHeaders?: Record;\n}>;\n\nexport const createJsonErrorResponseHandler =\n ({\n errorSchema,\n errorToMessage,\n isRetryable,\n }: {\n errorSchema: FlexibleSchema;\n errorToMessage: (error: T) => string;\n isRetryable?: (response: Response, error?: T) => boolean;\n }): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n\n // Some providers return an empty response body for some errors:\n if (responseBody.trim() === '') {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable?.(response),\n }),\n };\n }\n\n // resilient parsing in case the response is not JSON or does not match the schema:\n try {\n const parsedError = await parseJSON({\n text: responseBody,\n schema: errorSchema,\n });\n\n return {\n responseHeaders,\n value: new APICallError({\n message: errorToMessage(parsedError),\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n data: parsedError,\n isRetryable: isRetryable?.(response, parsedError),\n }),\n };\n } catch (parseError) {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable?.(response),\n }),\n };\n }\n };\n\nexport const createEventSourceResponseHandler =\n (\n chunkSchema: FlexibleSchema,\n ): ResponseHandler>> =>\n async ({ response }: { response: Response }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n\n return {\n responseHeaders,\n value: parseJsonEventStream({\n stream: response.body,\n schema: chunkSchema,\n }),\n };\n };\n\nexport const createJsonResponseHandler =\n (responseSchema: FlexibleSchema): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n\n const parsedResult = await safeParseJSON({\n text: responseBody,\n schema: responseSchema,\n });\n\n const responseHeaders = extractResponseHeaders(response);\n\n if (!parsedResult.success) {\n throw new APICallError({\n message: 'Invalid JSON response',\n cause: parsedResult.error,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n url,\n requestBodyValues,\n });\n }\n\n return {\n responseHeaders,\n value: parsedResult.value,\n rawValue: parsedResult.rawValue,\n };\n };\n\nexport const createBinaryResponseHandler =\n (): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseHeaders = extractResponseHeaders(response);\n\n if (!response.body) {\n throw new APICallError({\n message: 'Response body is empty',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n });\n }\n\n try {\n const buffer = await response.arrayBuffer();\n return {\n responseHeaders,\n value: new Uint8Array(buffer),\n };\n } catch (error) {\n throw new APICallError({\n message: 'Failed to read response as array buffer',\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody: undefined,\n cause: error,\n });\n }\n };\n\nexport const createStatusCodeErrorResponseHandler =\n (): ResponseHandler =>\n async ({ response, url, requestBodyValues }) => {\n const responseHeaders = extractResponseHeaders(response);\n const responseBody = await response.text();\n\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues: requestBodyValues as Record,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n }),\n };\n };\n","export function withoutTrailingSlash(url: string | undefined) {\n return url?.replace(/\\/$/, '');\n}\n","const marker = 'vercel.ai.gateway.error';\nconst symbol = Symbol.for(marker);\n\nexport abstract class GatewayError extends Error {\n private readonly [symbol] = true; // used in isInstance\n\n abstract readonly name: string;\n abstract readonly type: string;\n readonly statusCode: number;\n readonly cause?: unknown;\n readonly generationId?: string;\n\n constructor({\n message,\n statusCode = 500,\n cause,\n generationId,\n }: {\n message: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n }) {\n super(generationId ? `${message} [${generationId}]` : message);\n this.statusCode = statusCode;\n this.cause = cause;\n this.generationId = generationId;\n }\n\n /**\n * Checks if the given error is a Gateway Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is a Gateway Error, false otherwise.\n */\n static isInstance(error: unknown): error is GatewayError {\n return GatewayError.hasMarker(error);\n }\n\n static hasMarker(error: unknown): error is GatewayError {\n return (\n typeof error === 'object' &&\n error !== null &&\n symbol in error &&\n (error as any)[symbol] === true\n );\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayAuthenticationError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Authentication failed - invalid API key or OIDC token\n */\nexport class GatewayAuthenticationError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'authentication_error';\n\n constructor({\n message = 'Authentication failed',\n statusCode = 401,\n cause,\n generationId,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n } = {}) {\n super({ message, statusCode, cause, generationId });\n }\n\n static isInstance(error: unknown): error is GatewayAuthenticationError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n\n /**\n * Creates a contextual error message when authentication fails\n */\n static createContextualError({\n apiKeyProvided,\n oidcTokenProvided,\n message = 'Authentication failed',\n statusCode = 401,\n cause,\n generationId,\n }: {\n apiKeyProvided: boolean;\n oidcTokenProvided: boolean;\n message?: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n }): GatewayAuthenticationError {\n let contextualMessage: string;\n\n if (apiKeyProvided) {\n contextualMessage = `AI Gateway authentication failed: Invalid API key.\n\nCreate a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\n\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`;\n } else if (oidcTokenProvided) {\n contextualMessage = `AI Gateway authentication failed: Invalid OIDC token.\n\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.\n\nAlternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys`;\n } else {\n contextualMessage = `AI Gateway authentication failed: No authentication provided.\n\nOption 1 - API key:\nCreate an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.\n\nOption 2 - OIDC token:\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;\n }\n\n return new GatewayAuthenticationError({\n message: contextualMessage,\n statusCode,\n cause,\n generationId,\n });\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayInvalidRequestError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Invalid request - missing headers, malformed data, etc.\n */\nexport class GatewayInvalidRequestError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'invalid_request_error';\n\n constructor({\n message = 'Invalid request',\n statusCode = 400,\n cause,\n generationId,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n } = {}) {\n super({ message, statusCode, cause, generationId });\n }\n\n static isInstance(error: unknown): error is GatewayInvalidRequestError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayRateLimitError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Rate limit exceeded.\n */\nexport class GatewayRateLimitError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'rate_limit_exceeded';\n\n constructor({\n message = 'Rate limit exceeded',\n statusCode = 429,\n cause,\n generationId,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n } = {}) {\n super({ message, statusCode, cause, generationId });\n }\n\n static isInstance(error: unknown): error is GatewayRateLimitError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { z } from 'zod/v4';\nimport { GatewayError } from './gateway-error';\nimport { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\n\nconst name = 'GatewayModelNotFoundError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport const modelNotFoundParamSchema = lazySchema(() =>\n zodSchema(\n z.object({\n modelId: z.string(),\n }),\n ),\n);\n\n/**\n * Model not found or not available\n */\nexport class GatewayModelNotFoundError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'model_not_found';\n readonly modelId?: string;\n\n constructor({\n message = 'Model not found',\n statusCode = 404,\n modelId,\n cause,\n generationId,\n }: {\n message?: string;\n statusCode?: number;\n modelId?: string;\n cause?: unknown;\n generationId?: string;\n } = {}) {\n super({ message, statusCode, cause, generationId });\n this.modelId = modelId;\n }\n\n static isInstance(error: unknown): error is GatewayModelNotFoundError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayInternalServerError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Internal server error from the Gateway\n */\nexport class GatewayInternalServerError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'internal_server_error';\n\n constructor({\n message = 'Internal server error',\n statusCode = 500,\n cause,\n generationId,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n } = {}) {\n super({ message, statusCode, cause, generationId });\n }\n\n static isInstance(error: unknown): error is GatewayInternalServerError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import type { TypeValidationError } from '@ai-sdk/provider';\nimport { GatewayError } from './gateway-error';\n\nconst name = 'GatewayResponseError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Gateway response parsing error\n */\nexport class GatewayResponseError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'response_error';\n readonly response?: unknown;\n readonly validationError?: TypeValidationError;\n\n constructor({\n message = 'Invalid response from Gateway',\n statusCode = 502,\n response,\n validationError,\n cause,\n generationId,\n }: {\n message?: string;\n statusCode?: number;\n response?: unknown;\n validationError?: TypeValidationError;\n cause?: unknown;\n generationId?: string;\n } = {}) {\n super({ message, statusCode, cause, generationId });\n this.response = response;\n this.validationError = validationError;\n }\n\n static isInstance(error: unknown): error is GatewayResponseError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n}\n","import { z } from 'zod/v4';\nimport type { GatewayError } from './gateway-error';\nimport { GatewayAuthenticationError } from './gateway-authentication-error';\nimport { GatewayInvalidRequestError } from './gateway-invalid-request-error';\nimport { GatewayRateLimitError } from './gateway-rate-limit-error';\nimport {\n GatewayModelNotFoundError,\n modelNotFoundParamSchema,\n} from './gateway-model-not-found-error';\nimport { GatewayInternalServerError } from './gateway-internal-server-error';\nimport { GatewayResponseError } from './gateway-response-error';\nimport {\n lazySchema,\n safeValidateTypes,\n validateTypes,\n zodSchema,\n type InferSchema,\n} from '@ai-sdk/provider-utils';\n\nexport async function createGatewayErrorFromResponse({\n response,\n statusCode,\n defaultMessage = 'Gateway request failed',\n cause,\n authMethod,\n}: {\n response: unknown;\n statusCode: number;\n defaultMessage?: string;\n cause?: unknown;\n authMethod?: 'api-key' | 'oidc';\n}): Promise {\n const parseResult = await safeValidateTypes({\n value: response,\n schema: gatewayErrorResponseSchema,\n });\n\n if (!parseResult.success) {\n // Try to extract generationId even if validation failed\n const rawGenerationId =\n typeof response === 'object' &&\n response !== null &&\n 'generationId' in response\n ? (response as { generationId?: string }).generationId\n : undefined;\n\n return new GatewayResponseError({\n message: `Invalid error response format: ${defaultMessage}`,\n statusCode,\n response,\n validationError: parseResult.error,\n cause,\n generationId: rawGenerationId,\n });\n }\n\n const validatedResponse: GatewayErrorResponse = parseResult.value;\n const errorType = validatedResponse.error.type;\n const message = validatedResponse.error.message;\n const generationId = validatedResponse.generationId ?? undefined;\n\n switch (errorType) {\n case 'authentication_error':\n return GatewayAuthenticationError.createContextualError({\n apiKeyProvided: authMethod === 'api-key',\n oidcTokenProvided: authMethod === 'oidc',\n statusCode,\n cause,\n generationId,\n });\n case 'invalid_request_error':\n return new GatewayInvalidRequestError({\n message,\n statusCode,\n cause,\n generationId,\n });\n case 'rate_limit_exceeded':\n return new GatewayRateLimitError({\n message,\n statusCode,\n cause,\n generationId,\n });\n case 'model_not_found': {\n const modelResult = await safeValidateTypes({\n value: validatedResponse.error.param,\n schema: modelNotFoundParamSchema,\n });\n\n return new GatewayModelNotFoundError({\n message,\n statusCode,\n modelId: modelResult.success ? modelResult.value.modelId : undefined,\n cause,\n generationId,\n });\n }\n case 'internal_server_error':\n return new GatewayInternalServerError({\n message,\n statusCode,\n cause,\n generationId,\n });\n default:\n return new GatewayInternalServerError({\n message,\n statusCode,\n cause,\n generationId,\n });\n }\n}\n\nconst gatewayErrorResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n error: z.object({\n message: z.string(),\n type: z.string().nullish(),\n param: z.unknown().nullish(),\n code: z.union([z.string(), z.number()]).nullish(),\n }),\n generationId: z.string().nullish(),\n }),\n ),\n);\n\nexport type GatewayErrorResponse = InferSchema<\n typeof gatewayErrorResponseSchema\n>;\n","import type { APICallError } from '@ai-sdk/provider';\n\nexport function extractApiCallResponse(error: APICallError): unknown {\n if (error.data !== undefined) {\n return error.data;\n }\n if (error.responseBody != null) {\n try {\n return JSON.parse(error.responseBody);\n } catch {\n return error.responseBody;\n }\n }\n return {};\n}\n","import { GatewayError } from './gateway-error';\n\nconst name = 'GatewayTimeoutError';\nconst marker = `vercel.ai.gateway.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Client request timed out before receiving a response.\n */\nexport class GatewayTimeoutError extends GatewayError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly name = name;\n readonly type = 'timeout_error';\n\n constructor({\n message = 'Request timed out',\n statusCode = 408,\n cause,\n generationId,\n }: {\n message?: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n } = {}) {\n super({ message, statusCode, cause, generationId });\n }\n\n static isInstance(error: unknown): error is GatewayTimeoutError {\n return GatewayError.hasMarker(error) && symbol in error;\n }\n\n /**\n * Creates a helpful timeout error message with troubleshooting guidance\n */\n static createTimeoutError({\n originalMessage,\n statusCode = 408,\n cause,\n generationId,\n }: {\n originalMessage: string;\n statusCode?: number;\n cause?: unknown;\n generationId?: string;\n }): GatewayTimeoutError {\n const message = `Gateway request timed out: ${originalMessage}\n\n This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;\n\n return new GatewayTimeoutError({\n message,\n statusCode,\n cause,\n generationId,\n });\n }\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { createGatewayErrorFromResponse } from './create-gateway-error';\nimport { extractApiCallResponse } from './extract-api-call-response';\nimport { GatewayError } from './gateway-error';\nimport { GatewayTimeoutError } from './gateway-timeout-error';\n\n/**\n * Checks if an error is a timeout error from undici.\n * Only checks undici-specific error codes to avoid false positives.\n */\nfunction isTimeoutError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n\n // Check for undici-specific timeout error codes\n const errorCode = (error as any).code;\n if (typeof errorCode === 'string') {\n const undiciTimeoutCodes = [\n 'UND_ERR_HEADERS_TIMEOUT',\n 'UND_ERR_BODY_TIMEOUT',\n 'UND_ERR_CONNECT_TIMEOUT',\n ];\n return undiciTimeoutCodes.includes(errorCode);\n }\n\n return false;\n}\n\nexport async function asGatewayError(\n error: unknown,\n authMethod?: 'api-key' | 'oidc',\n) {\n if (GatewayError.isInstance(error)) {\n return error;\n }\n\n // Check if this is a timeout error (or has a timeout error in the cause chain)\n if (isTimeoutError(error)) {\n return GatewayTimeoutError.createTimeoutError({\n originalMessage: error instanceof Error ? error.message : 'Unknown error',\n cause: error,\n });\n }\n\n // Check if this is an APICallError caused by a timeout\n if (APICallError.isInstance(error)) {\n // Check if the cause is a timeout error\n if (error.cause && isTimeoutError(error.cause)) {\n return GatewayTimeoutError.createTimeoutError({\n originalMessage: error.message,\n cause: error,\n });\n }\n\n return await createGatewayErrorFromResponse({\n response: extractApiCallResponse(error),\n statusCode: error.statusCode ?? 500,\n defaultMessage: 'Gateway request failed',\n cause: error,\n authMethod,\n });\n }\n\n return await createGatewayErrorFromResponse({\n response: {},\n statusCode: 500,\n defaultMessage:\n error instanceof Error\n ? `Gateway request failed: ${error.message}`\n : 'Unknown Gateway error',\n cause: error,\n authMethod,\n });\n}\n","import { z } from 'zod/v4';\nimport {\n lazySchema,\n safeValidateTypes,\n zodSchema,\n} from '@ai-sdk/provider-utils';\n\nexport const GATEWAY_AUTH_METHOD_HEADER = 'ai-gateway-auth-method' as const;\n\nexport async function parseAuthMethod(\n headers: Record,\n) {\n const result = await safeValidateTypes({\n value: headers[GATEWAY_AUTH_METHOD_HEADER],\n schema: gatewayAuthMethodSchema,\n });\n\n return result.success ? result.value : undefined;\n}\n\nconst gatewayAuthMethodSchema = lazySchema(() =>\n zodSchema(z.union([z.literal('api-key'), z.literal('oidc')])),\n);\n","import type { LanguageModelV3 } from '@ai-sdk/provider';\n\nexport const KNOWN_MODEL_TYPES = [\n 'embedding',\n 'image',\n 'language',\n 'reranking',\n 'video',\n] as const;\n\nexport type KnownModelType = (typeof KNOWN_MODEL_TYPES)[number];\n\nexport interface GatewayLanguageModelEntry {\n /**\n * The model id used by the remote provider in model settings and for specifying the\n * intended model for text generation.\n */\n id: string;\n\n /**\n * The display name of the model for presentation in user-facing contexts.\n */\n name: string;\n\n /**\n * Optional description of the model.\n */\n description?: string | null;\n\n /**\n * Optional pricing information for the model.\n */\n pricing?: {\n /**\n * Cost per input token in USD.\n */\n input: string;\n /**\n * Cost per output token in USD.\n */\n output: string;\n /**\n * Cost per cached input token in USD.\n * Only present for providers/models that support prompt caching.\n */\n cachedInputTokens?: string;\n /**\n * Cost per input token to create/write cache entries in USD.\n * Only present for providers/models that support prompt caching.\n */\n cacheCreationInputTokens?: string;\n } | null;\n\n /**\n * Additional AI SDK language model specifications for the model.\n */\n specification: GatewayLanguageModelSpecification;\n\n /**\n * Optional field to differentiate between model types.\n */\n modelType?: KnownModelType | null;\n}\n\nexport type GatewayLanguageModelSpecification = Pick<\n LanguageModelV3,\n 'specificationVersion' | 'provider' | 'modelId'\n>;\n","import {\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n lazySchema,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\nimport {\n KNOWN_MODEL_TYPES,\n type GatewayLanguageModelEntry,\n type KnownModelType,\n} from './gateway-model-entry';\n\ntype GatewayFetchMetadataConfig = GatewayConfig;\n\nexport interface GatewayFetchMetadataResponse {\n models: GatewayLanguageModelEntry[];\n}\n\nexport interface GatewayCreditsResponse {\n /** The remaining gateway credit balance available for API usage */\n balance: string;\n /** The total amount of gateway credits that have been consumed */\n totalUsed: string;\n}\n\nexport class GatewayFetchMetadata {\n constructor(private readonly config: GatewayFetchMetadataConfig) {}\n\n async getAvailableModels(): Promise {\n try {\n const { value } = await getFromApi({\n url: `${this.config.baseURL}/config`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayAvailableModelsResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n\n async getCredits(): Promise {\n try {\n const baseUrl = new URL(this.config.baseURL);\n\n const { value } = await getFromApi({\n url: `${baseUrl.origin}/v1/credits`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayCreditsResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n}\n\nconst gatewayAvailableModelsResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n models: z\n .array(\n z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().nullish(),\n pricing: z\n .object({\n input: z.string(),\n output: z.string(),\n input_cache_read: z.string().nullish(),\n input_cache_write: z.string().nullish(),\n })\n .transform(\n ({ input, output, input_cache_read, input_cache_write }) => ({\n input,\n output,\n ...(input_cache_read\n ? { cachedInputTokens: input_cache_read }\n : {}),\n ...(input_cache_write\n ? { cacheCreationInputTokens: input_cache_write }\n : {}),\n }),\n )\n .nullish(),\n specification: z.object({\n specificationVersion: z.literal('v3'),\n provider: z.string(),\n modelId: z.string(),\n }),\n modelType: z.string().nullish(),\n }),\n )\n .transform(models =>\n models.filter(\n (m): m is typeof m & { modelType?: KnownModelType | null } =>\n m.modelType == null ||\n KNOWN_MODEL_TYPES.includes(m.modelType as KnownModelType),\n ),\n ),\n }),\n ),\n);\n\nconst gatewayCreditsResponseSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n balance: z.string(),\n total_used: z.string(),\n })\n .transform(({ balance, total_used }) => ({\n balance,\n totalUsed: total_used,\n })),\n ),\n);\n","import {\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n lazySchema,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\n\nexport interface GatewaySpendReportParams {\n /** Start date in YYYY-MM-DD format (inclusive) */\n startDate: string;\n /** End date in YYYY-MM-DD format (inclusive) */\n endDate: string;\n /** Primary aggregation dimension. Defaults to 'day'. */\n groupBy?: 'day' | 'user' | 'model' | 'tag' | 'provider' | 'credential_type';\n /** Time granularity when groupBy is 'day'. */\n datePart?: 'day' | 'hour';\n /** Filter to a specific user's spend. */\n userId?: string;\n /** Filter to a specific model (e.g. 'anthropic/claude-sonnet-4.5'). */\n model?: string;\n /** Filter to a specific provider (e.g. 'anthropic'). */\n provider?: string;\n /** Filter to BYOK or system credentials. */\n credentialType?: 'byok' | 'system';\n /** Filter to requests with these tags. */\n tags?: string[];\n}\n\nexport interface GatewaySpendReportRow {\n /** Date string (present when groupBy is 'day') */\n day?: string;\n /** Hour timestamp (present when groupBy is 'day' and datePart is 'hour') */\n hour?: string;\n /** User identifier (present when groupBy is 'user') */\n user?: string;\n /** Model identifier (present when groupBy is 'model') */\n model?: string;\n /** Tag value (present when groupBy is 'tag') */\n tag?: string;\n /** Provider name (present when groupBy is 'provider') */\n provider?: string;\n /** Credential type (present when groupBy is 'credential_type') */\n credentialType?: 'byok' | 'system';\n\n /** Total cost in USD */\n totalCost: number;\n /** Market cost in USD */\n marketCost?: number;\n /** Number of input tokens */\n inputTokens?: number;\n /** Number of output tokens */\n outputTokens?: number;\n /** Number of cached input tokens */\n cachedInputTokens?: number;\n /** Number of cache creation input tokens */\n cacheCreationInputTokens?: number;\n /** Number of reasoning tokens */\n reasoningTokens?: number;\n /** Number of requests */\n requestCount?: number;\n}\n\nexport interface GatewaySpendReportResponse {\n results: GatewaySpendReportRow[];\n}\n\nexport class GatewaySpendReport {\n constructor(private readonly config: GatewayConfig) {}\n\n async getSpendReport(\n params: GatewaySpendReportParams,\n ): Promise {\n try {\n const baseUrl = new URL(this.config.baseURL);\n\n const searchParams = new URLSearchParams();\n searchParams.set('start_date', params.startDate);\n searchParams.set('end_date', params.endDate);\n\n if (params.groupBy) {\n searchParams.set('group_by', params.groupBy);\n }\n if (params.datePart) {\n searchParams.set('date_part', params.datePart);\n }\n if (params.userId) {\n searchParams.set('user_id', params.userId);\n }\n if (params.model) {\n searchParams.set('model', params.model);\n }\n if (params.provider) {\n searchParams.set('provider', params.provider);\n }\n if (params.credentialType) {\n searchParams.set('credential_type', params.credentialType);\n }\n if (params.tags && params.tags.length > 0) {\n searchParams.set('tags', params.tags.join(','));\n }\n\n const { value } = await getFromApi({\n url: `${baseUrl.origin}/v1/report?${searchParams.toString()}`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewaySpendReportResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n}\n\nconst gatewaySpendReportResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n results: z.array(\n z\n .object({\n day: z.string().optional(),\n hour: z.string().optional(),\n user: z.string().optional(),\n model: z.string().optional(),\n tag: z.string().optional(),\n provider: z.string().optional(),\n credential_type: z.enum(['byok', 'system']).optional(),\n total_cost: z.number(),\n market_cost: z.number().optional(),\n input_tokens: z.number().optional(),\n output_tokens: z.number().optional(),\n cached_input_tokens: z.number().optional(),\n cache_creation_input_tokens: z.number().optional(),\n reasoning_tokens: z.number().optional(),\n request_count: z.number().optional(),\n })\n .transform(\n ({\n credential_type,\n total_cost,\n market_cost,\n input_tokens,\n output_tokens,\n cached_input_tokens,\n cache_creation_input_tokens,\n reasoning_tokens,\n request_count,\n ...rest\n }) => ({\n ...rest,\n ...(credential_type !== undefined\n ? { credentialType: credential_type }\n : {}),\n totalCost: total_cost,\n ...(market_cost !== undefined ? { marketCost: market_cost } : {}),\n ...(input_tokens !== undefined\n ? { inputTokens: input_tokens }\n : {}),\n ...(output_tokens !== undefined\n ? { outputTokens: output_tokens }\n : {}),\n ...(cached_input_tokens !== undefined\n ? { cachedInputTokens: cached_input_tokens }\n : {}),\n ...(cache_creation_input_tokens !== undefined\n ? { cacheCreationInputTokens: cache_creation_input_tokens }\n : {}),\n ...(reasoning_tokens !== undefined\n ? { reasoningTokens: reasoning_tokens }\n : {}),\n ...(request_count !== undefined\n ? { requestCount: request_count }\n : {}),\n }),\n ),\n ),\n }),\n ),\n);\n","import {\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n lazySchema,\n resolve,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport type { GatewayConfig } from './gateway-config';\n\nexport interface GatewayGenerationInfoParams {\n /** The generation ID to look up (format: gen_) */\n id: string;\n}\n\nexport interface GatewayGenerationInfo {\n /** The generation ID */\n id: string;\n /** Total cost in USD */\n totalCost: number;\n /** Upstream inference cost in USD (BYOK only) */\n upstreamInferenceCost: number;\n /** Usage cost in USD (same as totalCost) */\n usage: number;\n /** ISO 8601 timestamp when the generation was created */\n createdAt: string;\n /** Model identifier */\n model: string;\n /** Whether BYOK credentials were used */\n isByok: boolean;\n /** Provider that served this generation */\n providerName: string;\n /** Whether streaming was used */\n streamed: boolean;\n /** Finish reason (e.g. 'stop') */\n finishReason: string;\n /** Time to first token in milliseconds */\n latency: number;\n /** Total generation time in milliseconds */\n generationTime: number;\n /** Number of prompt tokens */\n promptTokens: number;\n /** Number of completion tokens */\n completionTokens: number;\n /** Reasoning tokens used */\n reasoningTokens: number;\n /** Cached tokens used */\n cachedTokens: number;\n /** Cache creation input tokens */\n cacheCreationTokens: number;\n /** Billable web search calls */\n billableWebSearchCalls: number;\n}\n\nexport class GatewayGenerationInfoFetcher {\n constructor(private readonly config: GatewayConfig) {}\n\n async getGenerationInfo(\n params: GatewayGenerationInfoParams,\n ): Promise {\n try {\n const baseUrl = new URL(this.config.baseURL);\n\n const { value } = await getFromApi({\n url: `${baseUrl.origin}/v1/generation?id=${encodeURIComponent(params.id)}`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayGenerationInfoResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n fetch: this.config.fetch,\n });\n\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n}\n\nconst gatewayGenerationInfoResponseSchema = lazySchema(() =>\n zodSchema(\n z\n .object({\n data: z\n .object({\n id: z.string(),\n total_cost: z.number(),\n upstream_inference_cost: z.number(),\n usage: z.number(),\n created_at: z.string(),\n model: z.string(),\n is_byok: z.boolean(),\n provider_name: z.string(),\n streamed: z.boolean(),\n finish_reason: z.string(),\n latency: z.number(),\n generation_time: z.number(),\n native_tokens_prompt: z.number(),\n native_tokens_completion: z.number(),\n native_tokens_reasoning: z.number(),\n native_tokens_cached: z.number(),\n native_tokens_cache_creation: z.number(),\n billable_web_search_calls: z.number(),\n })\n .transform(\n ({\n total_cost,\n upstream_inference_cost,\n created_at,\n is_byok,\n provider_name,\n finish_reason,\n generation_time,\n native_tokens_prompt,\n native_tokens_completion,\n native_tokens_reasoning,\n native_tokens_cached,\n native_tokens_cache_creation,\n billable_web_search_calls,\n ...rest\n }) => ({\n ...rest,\n totalCost: total_cost,\n upstreamInferenceCost: upstream_inference_cost,\n createdAt: created_at,\n isByok: is_byok,\n providerName: provider_name,\n finishReason: finish_reason,\n generationTime: generation_time,\n promptTokens: native_tokens_prompt,\n completionTokens: native_tokens_completion,\n reasoningTokens: native_tokens_reasoning,\n cachedTokens: native_tokens_cached,\n cacheCreationTokens: native_tokens_cache_creation,\n billableWebSearchCalls: billable_web_search_calls,\n }),\n ),\n })\n .transform(({ data }) => data),\n ),\n);\n","import type {\n LanguageModelV3,\n LanguageModelV3CallOptions,\n SharedV3Warning,\n LanguageModelV3FilePart,\n LanguageModelV3StreamPart,\n LanguageModelV3GenerateResult,\n LanguageModelV3StreamResult,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n postJsonToApi,\n resolve,\n type ParseResult,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport type { GatewayModelId } from './gateway-language-model-settings';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\ntype GatewayChatConfig = GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n};\n\nexport class GatewayLanguageModel implements LanguageModelV3 {\n readonly specificationVersion = 'v3';\n readonly supportedUrls = { '*/*': [/.*/] };\n\n constructor(\n readonly modelId: GatewayModelId,\n private readonly config: GatewayChatConfig,\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n private async getArgs(options: LanguageModelV3CallOptions) {\n const { abortSignal: _abortSignal, ...optionsWithoutSignal } = options;\n\n return {\n args: this.maybeEncodeFileParts(optionsWithoutSignal),\n warnings: [],\n };\n }\n\n async doGenerate(\n options: LanguageModelV3CallOptions,\n ): Promise {\n const { args, warnings } = await this.getArgs(options);\n const { abortSignal } = options;\n\n const resolvedHeaders = await resolve(this.config.headers());\n\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n options.headers,\n this.getModelConfigHeaders(this.modelId, false),\n await resolve(this.config.o11yHeaders),\n ),\n body: args,\n successfulResponseHandler: createJsonResponseHandler(z.any()),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n ...responseBody,\n request: { body: args },\n response: { headers: responseHeaders, body: rawResponse },\n warnings,\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n async doStream(\n options: LanguageModelV3CallOptions,\n ): Promise {\n const { args, warnings } = await this.getArgs(options);\n const { abortSignal } = options;\n\n const resolvedHeaders = await resolve(this.config.headers());\n\n try {\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n options.headers,\n this.getModelConfigHeaders(this.modelId, true),\n await resolve(this.config.o11yHeaders),\n ),\n body: args,\n successfulResponseHandler: createEventSourceResponseHandler(z.any()),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult,\n LanguageModelV3StreamPart\n >({\n start(controller) {\n if (warnings.length > 0) {\n controller.enqueue({ type: 'stream-start', warnings });\n }\n },\n transform(chunk, controller) {\n if (chunk.success) {\n const streamPart = chunk.value;\n\n // Handle raw chunks: if this is a raw chunk from the gateway API,\n // only emit it if includeRawChunks is true\n if (streamPart.type === 'raw' && !options.includeRawChunks) {\n return; // Skip raw chunks if not requested\n }\n\n if (\n streamPart.type === 'response-metadata' &&\n streamPart.timestamp &&\n typeof streamPart.timestamp === 'string'\n ) {\n streamPart.timestamp = new Date(streamPart.timestamp);\n }\n\n controller.enqueue(streamPart);\n } else {\n controller.error(\n (chunk as { success: false; error: unknown }).error,\n );\n }\n },\n }),\n ),\n request: { body: args },\n response: { headers: responseHeaders },\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private isFilePart(part: unknown) {\n return (\n part && typeof part === 'object' && 'type' in part && part.type === 'file'\n );\n }\n\n /**\n * Encodes file parts in the prompt to base64. Mutates the passed options\n * instance directly to avoid copying the file data.\n * @param options - The options to encode.\n * @returns The options with the file parts encoded.\n */\n private maybeEncodeFileParts(options: LanguageModelV3CallOptions) {\n for (const message of options.prompt) {\n for (const part of message.content) {\n if (this.isFilePart(part)) {\n const filePart = part as LanguageModelV3FilePart;\n // If the file part is a URL it will get cleanly converted to a string.\n // If it's a binary file attachment we convert it to a data url.\n // In either case, server-side we should only ever see URLs as strings.\n if (filePart.data instanceof Uint8Array) {\n const buffer = Uint8Array.from(filePart.data);\n const base64Data = Buffer.from(buffer).toString('base64');\n filePart.data = new URL(\n `data:${filePart.mediaType || 'application/octet-stream'};base64,${base64Data}`,\n );\n }\n }\n }\n }\n return options;\n }\n\n private getUrl() {\n return `${this.config.baseURL}/language-model`;\n }\n\n private getModelConfigHeaders(modelId: string, streaming: boolean) {\n return {\n 'ai-language-model-specification-version': '3',\n 'ai-language-model-id': modelId,\n 'ai-language-model-streaming': String(streaming),\n };\n }\n}\n","import type {\n EmbeddingModelV3,\n SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n lazySchema,\n postJsonToApi,\n resolve,\n zodSchema,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\nimport type { GatewayConfig } from './gateway-config';\n\nexport class GatewayEmbeddingModel implements EmbeddingModelV3 {\n readonly specificationVersion = 'v3';\n readonly maxEmbeddingsPerCall = 2048;\n readonly supportsParallelCalls = true;\n\n constructor(\n readonly modelId: string,\n private readonly config: GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n },\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions,\n }: Parameters[0]): Promise<\n Awaited>\n > {\n const resolvedHeaders = await resolve(this.config.headers());\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue,\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n headers ?? {},\n this.getModelConfigHeaders(),\n await resolve(this.config.o11yHeaders),\n ),\n body: {\n values,\n ...(providerOptions ? { providerOptions } : {}),\n },\n successfulResponseHandler: createJsonResponseHandler(\n gatewayEmbeddingResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n embeddings: responseBody.embeddings,\n usage: responseBody.usage ?? undefined,\n providerMetadata:\n responseBody.providerMetadata as unknown as SharedV3ProviderMetadata,\n response: { headers: responseHeaders, body: rawValue },\n warnings: [],\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private getUrl() {\n return `${this.config.baseURL}/embedding-model`;\n }\n\n private getModelConfigHeaders() {\n return {\n 'ai-embedding-model-specification-version': '3',\n 'ai-model-id': this.modelId,\n };\n }\n}\n\nconst gatewayEmbeddingResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n embeddings: z.array(z.array(z.number())),\n usage: z.object({ tokens: z.number() }).nullish(),\n providerMetadata: z\n .record(z.string(), z.record(z.string(), z.unknown()))\n .optional(),\n }),\n ),\n);\n","import type {\n ImageModelV3,\n ImageModelV3File,\n ImageModelV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertUint8ArrayToBase64,\n createJsonResponseHandler,\n createJsonErrorResponseHandler,\n postJsonToApi,\n resolve,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\nexport class GatewayImageModel implements ImageModelV3 {\n readonly specificationVersion = 'v3' as const;\n // Set a very large number to prevent client-side splitting of requests\n readonly maxImagesPerCall = Number.MAX_SAFE_INTEGER;\n\n constructor(\n readonly modelId: string,\n private readonly config: GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n },\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doGenerate({\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n files,\n mask,\n providerOptions,\n headers,\n abortSignal,\n }: Parameters[0]): Promise<\n Awaited>\n > {\n const resolvedHeaders = await resolve(this.config.headers());\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue,\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n headers ?? {},\n this.getModelConfigHeaders(),\n await resolve(this.config.o11yHeaders),\n ),\n body: {\n prompt,\n n,\n ...(size && { size }),\n ...(aspectRatio && { aspectRatio }),\n ...(seed && { seed }),\n ...(providerOptions && { providerOptions }),\n ...(files && {\n files: files.map(file => maybeEncodeImageFile(file)),\n }),\n ...(mask && { mask: maybeEncodeImageFile(mask) }),\n },\n successfulResponseHandler: createJsonResponseHandler(\n gatewayImageResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n images: responseBody.images, // Always base64 strings from server\n warnings: responseBody.warnings ?? [],\n providerMetadata:\n responseBody.providerMetadata as ImageModelV3ProviderMetadata,\n response: {\n timestamp: new Date(),\n modelId: this.modelId,\n headers: responseHeaders,\n },\n ...(responseBody.usage != null && {\n usage: {\n inputTokens: responseBody.usage.inputTokens ?? undefined,\n outputTokens: responseBody.usage.outputTokens ?? undefined,\n totalTokens: responseBody.usage.totalTokens ?? undefined,\n },\n }),\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private getUrl() {\n return `${this.config.baseURL}/image-model`;\n }\n\n private getModelConfigHeaders() {\n return {\n 'ai-image-model-specification-version': '3',\n 'ai-model-id': this.modelId,\n };\n }\n}\n\nfunction maybeEncodeImageFile(file: ImageModelV3File) {\n if (file.type === 'file' && file.data instanceof Uint8Array) {\n return {\n ...file,\n data: convertUint8ArrayToBase64(file.data),\n };\n }\n return file;\n}\n\nconst providerMetadataEntrySchema = z\n .object({\n images: z.array(z.unknown()).optional(),\n })\n .catchall(z.unknown());\n\nconst gatewayImageWarningSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('unsupported'),\n feature: z.string(),\n details: z.string().optional(),\n }),\n z.object({\n type: z.literal('compatibility'),\n feature: z.string(),\n details: z.string().optional(),\n }),\n z.object({\n type: z.literal('other'),\n message: z.string(),\n }),\n]);\n\nconst gatewayImageUsageSchema = z.object({\n inputTokens: z.number().nullish(),\n outputTokens: z.number().nullish(),\n totalTokens: z.number().nullish(),\n});\n\nconst gatewayImageResponseSchema = z.object({\n images: z.array(z.string()), // Always base64 strings over the wire\n warnings: z.array(gatewayImageWarningSchema).optional(),\n providerMetadata: z\n .record(z.string(), providerMetadataEntrySchema)\n .optional(),\n usage: gatewayImageUsageSchema.optional(),\n});\n","import {\n APICallError,\n type Experimental_VideoModelV3,\n type Experimental_VideoModelV3CallOptions,\n type Experimental_VideoModelV3File,\n type Experimental_VideoModelV3VideoData,\n type SharedV3ProviderMetadata,\n type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n convertUint8ArrayToBase64,\n createJsonErrorResponseHandler,\n parseJsonEventStream,\n postJsonToApi,\n resolve,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport type { GatewayConfig } from './gateway-config';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\n\nexport class GatewayVideoModel implements Experimental_VideoModelV3 {\n readonly specificationVersion = 'v3' as const;\n // Set a very large number to prevent client-side splitting of requests\n readonly maxVideosPerCall = Number.MAX_SAFE_INTEGER;\n\n constructor(\n readonly modelId: string,\n private readonly config: GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n },\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doGenerate({\n prompt,\n n,\n aspectRatio,\n resolution,\n duration,\n fps,\n seed,\n image,\n providerOptions,\n headers,\n abortSignal,\n }: Experimental_VideoModelV3CallOptions): Promise<{\n videos: Array;\n warnings: Array;\n providerMetadata?: SharedV3ProviderMetadata;\n response: {\n timestamp: Date;\n modelId: string;\n headers: Record | undefined;\n };\n }> {\n const resolvedHeaders = await resolve(this.config.headers());\n try {\n const { responseHeaders, value: responseBody } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n headers ?? {},\n this.getModelConfigHeaders(),\n await resolve(this.config.o11yHeaders),\n { accept: 'text/event-stream' },\n ),\n body: {\n prompt,\n n,\n ...(aspectRatio && { aspectRatio }),\n ...(resolution && { resolution }),\n ...(duration && { duration }),\n ...(fps && { fps }),\n ...(seed && { seed }),\n ...(providerOptions && { providerOptions }),\n ...(image && { image: maybeEncodeVideoFile(image) }),\n },\n successfulResponseHandler: async ({\n response,\n url,\n requestBodyValues,\n }: {\n url: string;\n requestBodyValues: unknown;\n response: Response;\n }) => {\n if (response.body == null) {\n throw new APICallError({\n message: 'SSE response body is empty',\n url,\n requestBodyValues,\n statusCode: response.status,\n });\n }\n\n const eventStream = parseJsonEventStream({\n stream: response.body,\n schema: gatewayVideoEventSchema,\n });\n\n const reader = eventStream.getReader();\n const { done, value: parseResult } = await reader.read();\n reader.releaseLock();\n\n if (done || !parseResult) {\n throw new APICallError({\n message: 'SSE stream ended without a data event',\n url,\n requestBodyValues,\n statusCode: response.status,\n });\n }\n\n if (!parseResult.success) {\n throw new APICallError({\n message: 'Failed to parse video SSE event',\n cause: parseResult.error,\n url,\n requestBodyValues,\n statusCode: response.status,\n });\n }\n\n const event = parseResult.value;\n\n if (event.type === 'error') {\n throw new APICallError({\n message: event.message,\n statusCode: event.statusCode,\n url,\n requestBodyValues,\n responseHeaders: Object.fromEntries([...response.headers]),\n responseBody: JSON.stringify(event),\n data: {\n error: {\n message: event.message,\n type: event.errorType,\n param: event.param,\n },\n },\n });\n }\n\n // event.type === 'result'\n return {\n value: {\n videos: event.videos,\n warnings: event.warnings,\n providerMetadata: event.providerMetadata,\n },\n responseHeaders: Object.fromEntries([...response.headers]),\n };\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n videos: responseBody.videos,\n warnings: responseBody.warnings ?? [],\n providerMetadata:\n responseBody.providerMetadata as SharedV3ProviderMetadata,\n response: {\n timestamp: new Date(),\n modelId: this.modelId,\n headers: responseHeaders,\n },\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private getUrl() {\n return `${this.config.baseURL}/video-model`;\n }\n\n private getModelConfigHeaders() {\n return {\n 'ai-video-model-specification-version': '3',\n 'ai-model-id': this.modelId,\n };\n }\n}\n\nfunction maybeEncodeVideoFile(file: Experimental_VideoModelV3File) {\n if (file.type === 'file' && file.data instanceof Uint8Array) {\n return {\n ...file,\n data: convertUint8ArrayToBase64(file.data),\n };\n }\n return file;\n}\n\nconst providerMetadataEntrySchema = z\n .object({\n videos: z.array(z.unknown()).optional(),\n })\n .catchall(z.unknown());\n\nconst gatewayVideoDataSchema = z.union([\n z.object({\n type: z.literal('url'),\n url: z.string(),\n mediaType: z.string(),\n }),\n z.object({\n type: z.literal('base64'),\n data: z.string(),\n mediaType: z.string(),\n }),\n]);\n\nconst gatewayVideoWarningSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('unsupported'),\n feature: z.string(),\n details: z.string().optional(),\n }),\n z.object({\n type: z.literal('compatibility'),\n feature: z.string(),\n details: z.string().optional(),\n }),\n z.object({\n type: z.literal('other'),\n message: z.string(),\n }),\n]);\n\nconst gatewayVideoEventSchema = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('result'),\n videos: z.array(gatewayVideoDataSchema),\n warnings: z.array(gatewayVideoWarningSchema).optional(),\n providerMetadata: z\n .record(z.string(), providerMetadataEntrySchema)\n .optional(),\n }),\n z.object({\n type: z.literal('error'),\n message: z.string(),\n errorType: z.string(),\n statusCode: z.number(),\n param: z.unknown().nullable(),\n }),\n]);\n","import type {\n RerankingModelV3,\n SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n lazySchema,\n postJsonToApi,\n resolve,\n zodSchema,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { asGatewayError } from './errors';\nimport { parseAuthMethod } from './errors/parse-auth-method';\nimport type { GatewayConfig } from './gateway-config';\n\nexport class GatewayRerankingModel implements RerankingModelV3 {\n readonly specificationVersion = 'v3';\n\n constructor(\n readonly modelId: string,\n private readonly config: GatewayConfig & {\n provider: string;\n o11yHeaders: Resolvable>;\n },\n ) {}\n\n get provider(): string {\n return this.config.provider;\n }\n\n async doRerank({\n documents,\n query,\n topN,\n headers,\n abortSignal,\n providerOptions,\n }: Parameters[0]): Promise<\n Awaited>\n > {\n const resolvedHeaders = await resolve(this.config.headers());\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue,\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n headers ?? {},\n this.getModelConfigHeaders(),\n await resolve(this.config.o11yHeaders),\n ),\n body: {\n documents,\n query,\n ...(topN != null ? { topN } : {}),\n ...(providerOptions ? { providerOptions } : {}),\n },\n successfulResponseHandler: createJsonResponseHandler(\n gatewayRerankingResponseSchema,\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z.any(),\n errorToMessage: data => data,\n }),\n ...(abortSignal && { abortSignal }),\n fetch: this.config.fetch,\n });\n\n return {\n ranking: responseBody.ranking,\n providerMetadata:\n responseBody.providerMetadata as unknown as SharedV3ProviderMetadata,\n response: { headers: responseHeaders, body: rawValue },\n warnings: [],\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n\n private getUrl() {\n return `${this.config.baseURL}/reranking-model`;\n }\n\n private getModelConfigHeaders() {\n return {\n 'ai-reranking-model-specification-version': '3',\n 'ai-model-id': this.modelId,\n };\n }\n}\n\nconst gatewayRerankingResponseSchema = lazySchema(() =>\n zodSchema(\n z.object({\n ranking: z.array(\n z.object({\n index: z.number(),\n relevanceScore: z.number(),\n }),\n ),\n providerMetadata: z\n .record(z.string(), z.record(z.string(), z.unknown()))\n .optional(),\n }),\n ),\n);\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nexport interface ParallelSearchSourcePolicy {\n /**\n * List of domains to include in search results.\n * Example: ['wikipedia.org', 'nature.com']\n */\n includeDomains?: string[];\n\n /**\n * List of domains to exclude from search results.\n * Example: ['reddit.com', 'twitter.com']\n */\n excludeDomains?: string[];\n\n /**\n * Only include results published after this date (ISO 8601 format).\n * Example: '2024-01-01'\n */\n afterDate?: string;\n}\n\nexport interface ParallelSearchExcerpts {\n /**\n * Maximum characters per result.\n */\n maxCharsPerResult?: number;\n\n /**\n * Maximum total characters across all results.\n */\n maxCharsTotal?: number;\n}\n\nexport interface ParallelSearchFetchPolicy {\n /**\n * Maximum age in seconds for cached content.\n * Set to 0 to always fetch fresh content.\n */\n maxAgeSeconds?: number;\n}\n\nexport interface ParallelSearchConfig {\n /**\n * Mode preset for different use cases:\n * - \"one-shot\": Comprehensive results with longer excerpts for single-response answers (default)\n * - \"agentic\": Concise, token-efficient results for multi-step agentic workflows\n */\n mode?: 'one-shot' | 'agentic';\n\n /**\n * Default maximum number of results to return (1-20).\n * Defaults to 10 if not specified.\n */\n maxResults?: number;\n\n /**\n * Default source policy for controlling which domains to include/exclude.\n */\n sourcePolicy?: ParallelSearchSourcePolicy;\n\n /**\n * Default excerpt configuration for controlling result length.\n */\n excerpts?: ParallelSearchExcerpts;\n\n /**\n * Default fetch policy for controlling content freshness.\n */\n fetchPolicy?: ParallelSearchFetchPolicy;\n}\n\nexport interface ParallelSearchResult {\n /** URL of the search result */\n url: string;\n /** Title of the search result */\n title: string;\n /** Extracted text excerpt/content from the page */\n excerpt: string;\n /** Publication date of the content (may be null) */\n publishDate?: string | null;\n /** Relevance score for the result */\n relevanceScore?: number;\n}\n\nexport interface ParallelSearchResponse {\n /** Unique identifier for this search request */\n searchId: string;\n /** Array of search results */\n results: ParallelSearchResult[];\n}\n\nexport interface ParallelSearchError {\n /** Error type */\n error:\n | 'api_error'\n | 'rate_limit'\n | 'timeout'\n | 'invalid_input'\n | 'configuration_error'\n | 'unknown';\n /** HTTP status code if applicable */\n statusCode?: number;\n /** Human-readable error message */\n message: string;\n}\n\nexport interface ParallelSearchInput {\n /**\n * Natural-language description of the web research goal.\n * Include source or freshness guidance and broader context from the task.\n * Maximum 5000 characters.\n */\n objective: string;\n\n /**\n * Optional search queries to supplement the objective.\n * Maximum 200 characters per query.\n */\n search_queries?: string[];\n\n /**\n * Mode preset for different use cases:\n * - \"one-shot\": Comprehensive results with longer excerpts\n * - \"agentic\": Concise, token-efficient results for multi-step workflows\n */\n mode?: 'one-shot' | 'agentic';\n\n /**\n * Maximum number of results to return (1-20).\n * Defaults to 10 if not specified.\n */\n max_results?: number;\n\n /**\n * Source policy for controlling which domains to include/exclude.\n */\n source_policy?: {\n include_domains?: string[];\n exclude_domains?: string[];\n after_date?: string;\n };\n\n /**\n * Excerpt configuration for controlling result length.\n */\n excerpts?: {\n max_chars_per_result?: number;\n max_chars_total?: number;\n };\n\n /**\n * Fetch policy for controlling content freshness.\n */\n fetch_policy?: {\n max_age_seconds?: number;\n };\n}\n\nexport type ParallelSearchOutput = ParallelSearchResponse | ParallelSearchError;\n\nconst parallelSearchInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n objective: z\n .string()\n .describe(\n 'Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters.',\n ),\n\n search_queries: z\n .array(z.string())\n .optional()\n .describe(\n 'Optional search queries to supplement the objective. Maximum 200 characters per query.',\n ),\n\n mode: z\n .enum(['one-shot', 'agentic'])\n .optional()\n .describe(\n 'Mode preset: \"one-shot\" for comprehensive results with longer excerpts (default), \"agentic\" for concise, token-efficient results for multi-step workflows.',\n ),\n\n max_results: z\n .number()\n .optional()\n .describe(\n 'Maximum number of results to return (1-20). Defaults to 10 if not specified.',\n ),\n\n source_policy: z\n .object({\n include_domains: z\n .array(z.string())\n .optional()\n .describe('List of domains to include in search results.'),\n exclude_domains: z\n .array(z.string())\n .optional()\n .describe('List of domains to exclude from search results.'),\n after_date: z\n .string()\n .optional()\n .describe(\n 'Only include results published after this date (ISO 8601 format).',\n ),\n })\n .optional()\n .describe(\n 'Source policy for controlling which domains to include/exclude and freshness.',\n ),\n\n excerpts: z\n .object({\n max_chars_per_result: z\n .number()\n .optional()\n .describe('Maximum characters per result.'),\n max_chars_total: z\n .number()\n .optional()\n .describe('Maximum total characters across all results.'),\n })\n .optional()\n .describe('Excerpt configuration for controlling result length.'),\n\n fetch_policy: z\n .object({\n max_age_seconds: z\n .number()\n .optional()\n .describe(\n 'Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.',\n ),\n })\n .optional()\n .describe('Fetch policy for controlling content freshness.'),\n }),\n ),\n);\n\nconst parallelSearchOutputSchema = lazySchema(() =>\n zodSchema(\n z.union([\n // Success response\n z.object({\n searchId: z.string(),\n results: z.array(\n z.object({\n url: z.string(),\n title: z.string(),\n excerpt: z.string(),\n publishDate: z.string().nullable().optional(),\n relevanceScore: z.number().optional(),\n }),\n ),\n }),\n // Error response\n z.object({\n error: z.enum([\n 'api_error',\n 'rate_limit',\n 'timeout',\n 'invalid_input',\n 'configuration_error',\n 'unknown',\n ]),\n statusCode: z.number().optional(),\n message: z.string(),\n }),\n ]),\n ),\n);\n\nexport const parallelSearchToolFactory =\n createProviderToolFactoryWithOutputSchema<\n ParallelSearchInput,\n ParallelSearchOutput,\n ParallelSearchConfig\n >({\n id: 'gateway.parallel_search',\n inputSchema: parallelSearchInputSchema,\n outputSchema: parallelSearchOutputSchema,\n });\n\nexport const parallelSearch = (\n config: ParallelSearchConfig = {},\n): ReturnType =>\n parallelSearchToolFactory(config);\n","import {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod';\n\nexport interface PerplexitySearchConfig {\n /**\n * Default maximum number of search results to return (1-20, default: 10).\n */\n maxResults?: number;\n\n /**\n * Default maximum tokens to extract per search result page (256-2048, default: 2048).\n */\n maxTokensPerPage?: number;\n\n /**\n * Default maximum total tokens across all search results (default: 25000, max: 1000000).\n */\n maxTokens?: number;\n\n /**\n * Default two-letter ISO 3166-1 alpha-2 country code for regional search results.\n * Examples: 'US', 'GB', 'FR'\n */\n country?: string;\n\n /**\n * Default list of domains to include or exclude from search results (max 20).\n * To include: ['nature.com', 'science.org']\n * To exclude: ['-example.com', '-spam.net']\n */\n searchDomainFilter?: string[];\n\n /**\n * Default list of ISO 639-1 language codes to filter results (max 10, lowercase).\n * Examples: ['en', 'fr', 'de']\n */\n searchLanguageFilter?: string[];\n\n /**\n * Default recency filter for results.\n * Cannot be combined with searchAfterDate/searchBeforeDate at runtime.\n */\n searchRecencyFilter?: 'day' | 'week' | 'month' | 'year';\n}\n\nexport interface PerplexitySearchResult {\n /** Title of the search result */\n title: string;\n /** URL of the search result */\n url: string;\n /** Text snippet/preview of the content */\n snippet: string;\n /** Publication date of the content */\n date?: string;\n /** Last updated date of the content */\n lastUpdated?: string;\n}\n\nexport interface PerplexitySearchResponse {\n /** Array of search results */\n results: PerplexitySearchResult[];\n /** Unique identifier for this search request */\n id: string;\n}\n\nexport interface PerplexitySearchError {\n /** Error type */\n error: 'api_error' | 'rate_limit' | 'timeout' | 'invalid_input' | 'unknown';\n /** HTTP status code if applicable */\n statusCode?: number;\n /** Human-readable error message */\n message: string;\n}\n\nexport interface PerplexitySearchInput {\n /**\n * Search query (string) or multiple queries (array of up to 5 strings).\n * Multi-query searches return combined results from all queries.\n */\n query: string | string[];\n\n /**\n * Maximum number of search results to return (1-20, default: 10).\n */\n max_results?: number;\n\n /**\n * Maximum number of tokens to extract per search result page (256-2048, default: 2048).\n */\n max_tokens_per_page?: number;\n\n /**\n * Maximum total tokens across all search results (default: 25000, max: 1000000).\n */\n max_tokens?: number;\n\n /**\n * Two-letter ISO 3166-1 alpha-2 country code for regional search results.\n * Examples: 'US', 'GB', 'FR'\n */\n country?: string;\n\n /**\n * List of domains to include or exclude from search results (max 20).\n * To include: ['nature.com', 'science.org']\n * To exclude: ['-example.com', '-spam.net']\n */\n search_domain_filter?: string[];\n\n /**\n * List of ISO 639-1 language codes to filter results (max 10, lowercase).\n * Examples: ['en', 'fr', 'de']\n */\n search_language_filter?: string[];\n\n /**\n * Include only results published after this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/1/2025')\n * Cannot be used with search_recency_filter.\n */\n search_after_date?: string;\n\n /**\n * Include only results published before this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/15/2025')\n * Cannot be used with search_recency_filter.\n */\n search_before_date?: string;\n\n /**\n * Include only results last updated after this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/1/2025')\n * Cannot be used with search_recency_filter.\n */\n last_updated_after_filter?: string;\n\n /**\n * Include only results last updated before this date.\n * Format: 'MM/DD/YYYY' (e.g., '3/15/2025')\n * Cannot be used with search_recency_filter.\n */\n last_updated_before_filter?: string;\n\n /**\n * Filter results by relative time period.\n * Cannot be used with search_after_date or search_before_date.\n */\n search_recency_filter?: 'day' | 'week' | 'month' | 'year';\n}\n\nexport type PerplexitySearchOutput =\n | PerplexitySearchResponse\n | PerplexitySearchError;\n\nconst perplexitySearchInputSchema = lazySchema(() =>\n zodSchema(\n z.object({\n query: z\n .union([z.string(), z.array(z.string())])\n .describe(\n 'Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries.',\n ),\n\n max_results: z\n .number()\n .optional()\n .describe(\n 'Maximum number of search results to return (1-20, default: 10)',\n ),\n\n max_tokens_per_page: z\n .number()\n .optional()\n .describe(\n 'Maximum number of tokens to extract per search result page (256-2048, default: 2048)',\n ),\n\n max_tokens: z\n .number()\n .optional()\n .describe(\n 'Maximum total tokens across all search results (default: 25000, max: 1000000)',\n ),\n\n country: z\n .string()\n .optional()\n .describe(\n \"Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')\",\n ),\n\n search_domain_filter: z\n .array(z.string())\n .optional()\n .describe(\n \"List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']\",\n ),\n\n search_language_filter: z\n .array(z.string())\n .optional()\n .describe(\n \"List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']\",\n ),\n\n search_after_date: z\n .string()\n .optional()\n .describe(\n \"Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n search_before_date: z\n .string()\n .optional()\n .describe(\n \"Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n last_updated_after_filter: z\n .string()\n .optional()\n .describe(\n \"Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n last_updated_before_filter: z\n .string()\n .optional()\n .describe(\n \"Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\",\n ),\n\n search_recency_filter: z\n .enum(['day', 'week', 'month', 'year'])\n .optional()\n .describe(\n 'Filter results by relative time period. Cannot be used with search_after_date or search_before_date.',\n ),\n }),\n ),\n);\n\nconst perplexitySearchOutputSchema = lazySchema(() =>\n zodSchema(\n z.union([\n // Success response\n z.object({\n results: z.array(\n z.object({\n title: z.string(),\n url: z.string(),\n snippet: z.string(),\n date: z.string().optional(),\n lastUpdated: z.string().optional(),\n }),\n ),\n id: z.string(),\n }),\n // Error response\n z.object({\n error: z.enum([\n 'api_error',\n 'rate_limit',\n 'timeout',\n 'invalid_input',\n 'unknown',\n ]),\n statusCode: z.number().optional(),\n message: z.string(),\n }),\n ]),\n ),\n);\n\nexport const perplexitySearchToolFactory =\n createProviderToolFactoryWithOutputSchema<\n PerplexitySearchInput,\n PerplexitySearchOutput,\n PerplexitySearchConfig\n >({\n id: 'gateway.perplexity_search',\n inputSchema: perplexitySearchInputSchema,\n outputSchema: perplexitySearchOutputSchema,\n });\n\nexport const perplexitySearch = (\n config: PerplexitySearchConfig = {},\n): ReturnType =>\n perplexitySearchToolFactory(config);\n","import { parallelSearch } from './tool/parallel-search';\nimport { perplexitySearch } from './tool/perplexity-search';\n\n/**\n * Gateway-specific provider-defined tools.\n */\nexport const gatewayTools = {\n /**\n * Search the web using Parallel AI's Search API for LLM-optimized excerpts.\n *\n * Takes a natural language objective and returns relevant excerpts,\n * replacing multiple keyword searches with a single call for broad\n * or complex queries. Supports different search types for depth vs\n * breadth tradeoffs.\n */\n parallelSearch,\n\n /**\n * Search the web using Perplexity's Search API for real-time information,\n * news, research papers, and articles.\n *\n * Provides ranked search results with advanced filtering options including\n * domain, language, date range, and recency filters.\n */\n perplexitySearch,\n};\n","import { getContext } from '@vercel/oidc';\nexport { getVercelOidcToken } from '@vercel/oidc';\n\nexport async function getVercelRequestId(): Promise {\n return getContext().headers?.['x-vercel-id'];\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import {\n loadOptionalSetting,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { asGatewayError, GatewayAuthenticationError } from './errors';\nimport {\n GATEWAY_AUTH_METHOD_HEADER,\n parseAuthMethod,\n} from './errors/parse-auth-method';\nimport {\n GatewayFetchMetadata,\n type GatewayFetchMetadataResponse,\n type GatewayCreditsResponse,\n} from './gateway-fetch-metadata';\nimport {\n GatewaySpendReport,\n type GatewaySpendReportParams,\n type GatewaySpendReportResponse,\n} from './gateway-spend-report';\nimport {\n GatewayGenerationInfoFetcher,\n type GatewayGenerationInfoParams,\n type GatewayGenerationInfo,\n} from './gateway-generation-info';\nimport { GatewayLanguageModel } from './gateway-language-model';\nimport { GatewayEmbeddingModel } from './gateway-embedding-model';\nimport { GatewayImageModel } from './gateway-image-model';\nimport { GatewayVideoModel } from './gateway-video-model';\nimport { GatewayRerankingModel } from './gateway-reranking-model';\nimport type { GatewayEmbeddingModelId } from './gateway-embedding-model-settings';\nimport type { GatewayImageModelId } from './gateway-image-model-settings';\nimport type { GatewayRerankingModelId } from './gateway-reranking-model-settings';\nimport type { GatewayVideoModelId } from './gateway-video-model-settings';\nimport { gatewayTools } from './gateway-tools';\nimport { getVercelOidcToken, getVercelRequestId } from './vercel-environment';\nimport type { GatewayModelId } from './gateway-language-model-settings';\nimport type {\n LanguageModelV3,\n EmbeddingModelV3,\n ImageModelV3,\n RerankingModelV3,\n Experimental_VideoModelV3,\n ProviderV3,\n} from '@ai-sdk/provider';\nimport { VERSION } from './version';\n\nexport interface GatewayProvider extends ProviderV3 {\n (modelId: GatewayModelId): LanguageModelV3;\n\n /**\n * Creates a model for text generation.\n */\n chat(modelId: GatewayModelId): LanguageModelV3;\n\n /**\n * Creates a model for text generation.\n */\n languageModel(modelId: GatewayModelId): LanguageModelV3;\n\n /**\n * Returns available providers and models for use with the remote provider.\n */\n getAvailableModels(): Promise;\n\n /**\n * Returns credit information for the authenticated user.\n */\n getCredits(): Promise;\n\n /**\n * Returns a spend report with cost, token, and request count data,\n * aggregated by the specified dimension.\n */\n getSpendReport(\n params: GatewaySpendReportParams,\n ): Promise;\n\n /**\n * Returns detailed information about a specific generation by its ID,\n * including cost, token usage, latency, and provider details.\n */\n getGenerationInfo(\n params: GatewayGenerationInfoParams,\n ): Promise;\n\n /**\n * Creates a model for generating text embeddings.\n */\n embedding(modelId: GatewayEmbeddingModelId): EmbeddingModelV3;\n\n /**\n * Creates a model for generating text embeddings.\n */\n embeddingModel(modelId: GatewayEmbeddingModelId): EmbeddingModelV3;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: GatewayEmbeddingModelId): EmbeddingModelV3;\n\n /**\n * Creates a model for generating images.\n */\n image(modelId: GatewayImageModelId): ImageModelV3;\n\n /**\n * Creates a model for generating images.\n */\n imageModel(modelId: GatewayImageModelId): ImageModelV3;\n\n /**\n * Creates a model for generating videos.\n */\n video(modelId: GatewayVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for generating videos.\n */\n videoModel(modelId: GatewayVideoModelId): Experimental_VideoModelV3;\n\n /**\n * Creates a model for reranking documents.\n */\n reranking(modelId: GatewayRerankingModelId): RerankingModelV3;\n\n /**\n * Creates a model for reranking documents.\n */\n rerankingModel(modelId: GatewayRerankingModelId): RerankingModelV3;\n\n /**\n * Gateway-specific tools executed server-side.\n */\n tools: typeof gatewayTools;\n}\n\nexport interface GatewayProviderSettings {\n /**\n * The base URL prefix for API calls. Defaults to `https://ai-gateway.vercel.sh/v1/ai`.\n */\n baseURL?: string;\n\n /**\n * API key that is being sent using the `Authorization` header.\n */\n apiKey?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n\n /**\n * How frequently to refresh the metadata cache in milliseconds.\n */\n metadataCacheRefreshMillis?: number;\n\n /**\n * @internal For testing purposes only\n */\n _internal?: {\n currentDate?: () => Date;\n };\n}\n\nconst AI_GATEWAY_PROTOCOL_VERSION = '0.0.1';\n\n/**\n * Create a remote provider instance.\n */\nexport function createGatewayProvider(\n options: GatewayProviderSettings = {},\n): GatewayProvider {\n let pendingMetadata: Promise | null = null;\n let metadataCache: GatewayFetchMetadataResponse | null = null;\n const cacheRefreshMillis =\n options.metadataCacheRefreshMillis ?? 1000 * 60 * 5;\n let lastFetchTime = 0;\n\n const baseURL =\n withoutTrailingSlash(options.baseURL) ??\n 'https://ai-gateway.vercel.sh/v3/ai';\n\n const getHeaders = async () => {\n try {\n const auth = await getGatewayAuthToken(options);\n return withUserAgentSuffix(\n {\n Authorization: `Bearer ${auth.token}`,\n 'ai-gateway-protocol-version': AI_GATEWAY_PROTOCOL_VERSION,\n [GATEWAY_AUTH_METHOD_HEADER]: auth.authMethod,\n ...options.headers,\n },\n `ai-sdk/gateway/${VERSION}`,\n );\n } catch (error) {\n throw GatewayAuthenticationError.createContextualError({\n apiKeyProvided: false,\n oidcTokenProvided: false,\n statusCode: 401,\n cause: error,\n });\n }\n };\n\n const createO11yHeaders = () => {\n const deploymentId = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_DEPLOYMENT_ID',\n });\n const environment = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_ENV',\n });\n const region = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_REGION',\n });\n const projectId = loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'VERCEL_PROJECT_ID',\n });\n\n return async () => {\n const requestId = await getVercelRequestId();\n return {\n ...(deploymentId && { 'ai-o11y-deployment-id': deploymentId }),\n ...(environment && { 'ai-o11y-environment': environment }),\n ...(region && { 'ai-o11y-region': region }),\n ...(requestId && { 'ai-o11y-request-id': requestId }),\n ...(projectId && { 'ai-o11y-project-id': projectId }),\n };\n };\n };\n\n const createLanguageModel = (modelId: GatewayModelId) => {\n return new GatewayLanguageModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n\n const getAvailableModels = async () => {\n const now = options._internal?.currentDate?.().getTime() ?? Date.now();\n if (!pendingMetadata || now - lastFetchTime > cacheRefreshMillis) {\n lastFetchTime = now;\n\n pendingMetadata = new GatewayFetchMetadata({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getAvailableModels()\n .then(metadata => {\n metadataCache = metadata;\n return metadata;\n })\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n }\n\n return metadataCache ? Promise.resolve(metadataCache) : pendingMetadata;\n };\n\n const getCredits = async () => {\n return new GatewayFetchMetadata({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getCredits()\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n };\n\n const getSpendReport = async (params: GatewaySpendReportParams) => {\n return new GatewaySpendReport({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getSpendReport(params)\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n };\n\n const getGenerationInfo = async (params: GatewayGenerationInfoParams) => {\n return new GatewayGenerationInfoFetcher({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n })\n .getGenerationInfo(params)\n .catch(async (error: unknown) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders()),\n );\n });\n };\n\n const provider = function (modelId: GatewayModelId) {\n if (new.target) {\n throw new Error(\n 'The Gateway Provider model function cannot be called with the new keyword.',\n );\n }\n\n return createLanguageModel(modelId);\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.getAvailableModels = getAvailableModels;\n provider.getCredits = getCredits;\n provider.getSpendReport = getSpendReport;\n provider.getGenerationInfo = getGenerationInfo;\n provider.imageModel = (modelId: GatewayImageModelId) => {\n return new GatewayImageModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n provider.languageModel = createLanguageModel;\n const createEmbeddingModel = (modelId: GatewayEmbeddingModelId) => {\n return new GatewayEmbeddingModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.videoModel = (modelId: GatewayVideoModelId) => {\n return new GatewayVideoModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n const createRerankingModel = (modelId: GatewayRerankingModelId) => {\n return new GatewayRerankingModel(modelId, {\n provider: 'gateway',\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders(),\n });\n };\n provider.rerankingModel = createRerankingModel;\n provider.reranking = createRerankingModel;\n provider.chat = provider.languageModel;\n provider.embedding = provider.embeddingModel;\n provider.image = provider.imageModel;\n provider.video = provider.videoModel;\n provider.tools = gatewayTools;\n return provider;\n}\n\nexport const gateway = createGatewayProvider();\n\nexport async function getGatewayAuthToken(\n options: GatewayProviderSettings,\n): Promise<{ token: string; authMethod: 'api-key' | 'oidc' }> {\n const apiKey = loadOptionalSetting({\n settingValue: options.apiKey,\n environmentVariableName: 'AI_GATEWAY_API_KEY',\n });\n\n if (apiKey) {\n return {\n token: apiKey,\n authMethod: 'api-key',\n };\n }\n\n const oidcToken = await getVercelOidcToken();\n return {\n token: oidcToken,\n authMethod: 'oidc',\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { ContextAPI } from './api/context';\n/** Entrypoint for context API */\nexport const context = ContextAPI.getInstance();\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_InvalidArgumentError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport class InvalidArgumentError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n readonly parameter: string;\n readonly value: unknown;\n\n constructor({\n parameter,\n value,\n message,\n }: {\n parameter: string;\n value: unknown;\n message: string;\n }) {\n super({\n name,\n message: `Invalid argument for parameter ${parameter}: ${message}`,\n });\n\n this.parameter = parameter;\n this.value = value;\n }\n\n static isInstance(error: unknown): error is InvalidArgumentError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\nimport type { FinishReason } from '../types/language-model';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { LanguageModelUsage } from '../types/usage';\n\nconst name = 'AI_NoObjectGeneratedError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * Thrown when no object could be generated. This can have several causes:\n *\n * - The model failed to generate a response.\n * - The model generated a response that could not be parsed.\n * - The model generated a response that could not be validated against the schema.\n *\n * The error contains the following properties:\n *\n * - `text`: The text that was generated by the model. This can be the raw text or the tool call text, depending on the model.\n */\nexport class NoObjectGeneratedError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n /**\n * The text that was generated by the model. This can be the raw text or the tool call text, depending on the model.\n */\n readonly text: string | undefined;\n\n /**\n * The response metadata.\n */\n readonly response: LanguageModelResponseMetadata | undefined;\n\n /**\n * The usage of the model.\n */\n readonly usage: LanguageModelUsage | undefined;\n\n /**\n * Reason why the model finished generating a response.\n */\n readonly finishReason: FinishReason | undefined;\n\n constructor({\n message = 'No object generated.',\n cause,\n text,\n response,\n usage,\n finishReason,\n }: {\n message?: string;\n cause?: Error;\n text?: string;\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n }) {\n super({ name, message, cause });\n\n this.text = text;\n this.response = response;\n this.usage = usage;\n this.finishReason = finishReason;\n }\n\n static isInstance(error: unknown): error is NoObjectGeneratedError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\n/**\n * Error that is thrown when a model with an unsupported version is used.\n */\nexport class UnsupportedModelVersionError extends AISDKError {\n readonly version: string;\n readonly provider: string;\n readonly modelId: string;\n\n constructor(options: { version: string; provider: string; modelId: string }) {\n super({\n name: 'AI_UnsupportedModelVersionError',\n message:\n `Unsupported model version ${options.version} for provider \"${options.provider}\" and model \"${options.modelId}\". ` +\n `AI SDK 5 only supports models that implement specification version \"v2\".`,\n });\n\n this.version = options.version;\n this.provider = options.provider;\n this.modelId = options.modelId;\n }\n}\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_RetryError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\nexport type RetryErrorReason =\n | 'maxRetriesExceeded'\n | 'errorNotRetryable'\n | 'abort';\n\nexport class RetryError extends AISDKError {\n private readonly [symbol] = true; // used in isInstance\n\n // note: property order determines debugging output\n readonly reason: RetryErrorReason;\n readonly lastError: unknown;\n readonly errors: Array;\n\n constructor({\n message,\n reason,\n errors,\n }: {\n message: string;\n reason: RetryErrorReason;\n errors: Array;\n }) {\n super({ name, message });\n\n this.reason = reason;\n this.errors = errors;\n\n // separate our last error to make debugging via log easier:\n this.lastError = errors[errors.length - 1];\n }\n\n static isInstance(error: unknown): error is RetryError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import type { Warning } from '../types';\n\n/**\n * A function for logging warnings.\n *\n * You can assign it to the `AI_SDK_LOG_WARNINGS` global variable to use it as the default warning logger.\n *\n * @example\n * ```ts\n * globalThis.AI_SDK_LOG_WARNINGS = (options) => {\n * console.log('WARNINGS:', options.warnings, options.provider, options.model);\n * };\n * ```\n */\nexport type LogWarningsFunction = (options: {\n /**\n * The warnings returned by the model provider.\n */\n warnings: Warning[];\n\n /**\n * The provider id used for the call.\n */\n provider: string;\n\n /**\n * The model id used for the call.\n */\n model: string;\n}) => void;\n\n/**\n * Formats a warning object into a human-readable string with clear AI SDK branding.\n *\n * @param options - The options for formatting the warning.\n * @param options.warning - The warning to format.\n * @param options.provider - The provider id used for the call.\n * @param options.model - The model id used for the call.\n * @returns A formatted warning message string.\n */\nfunction formatWarning({\n warning,\n provider,\n model,\n}: {\n warning: Warning;\n provider: string;\n model: string;\n}): string {\n const prefix = `AI SDK Warning (${provider} / ${model}):`;\n\n switch (warning.type) {\n case 'unsupported': {\n let message = `${prefix} The feature \"${warning.feature}\" is not supported.`;\n if (warning.details) {\n message += ` ${warning.details}`;\n }\n return message;\n }\n\n case 'compatibility': {\n let message = `${prefix} The feature \"${warning.feature}\" is used in a compatibility mode.`;\n if (warning.details) {\n message += ` ${warning.details}`;\n }\n return message;\n }\n\n case 'other': {\n return `${prefix} ${warning.message}`;\n }\n\n default: {\n // Fallback for any unknown warning types\n return `${prefix} ${JSON.stringify(warning, null, 2)}`;\n }\n }\n}\n\nexport const FIRST_WARNING_INFO_MESSAGE =\n 'AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.';\n\nlet hasLoggedBefore = false;\n\n/**\n * Logs warnings to the console or uses a custom logger if configured.\n *\n * The behavior can be customized via the `AI_SDK_LOG_WARNINGS` global variable:\n * - If set to `false`, warnings are suppressed.\n * - If set to a function, that function is called with the warnings.\n * - Otherwise, warnings are logged to the console using `console.warn`.\n *\n * @param options - The options containing warnings and context.\n * @param options.warnings - The warnings to log.\n * @param options.provider - The provider id used for the call.\n * @param options.model - The model id used for the call.\n */\nexport const logWarnings: LogWarningsFunction = options => {\n // if the warnings array is empty, do nothing\n if (options.warnings.length === 0) {\n return;\n }\n\n const logger = globalThis.AI_SDK_LOG_WARNINGS;\n\n // if the logger is set to false, do nothing\n if (logger === false) {\n return;\n }\n\n // use the provided logger if it is a function\n if (typeof logger === 'function') {\n logger(options);\n return;\n }\n\n // display information note on first call\n if (!hasLoggedBefore) {\n hasLoggedBefore = true;\n console.info(FIRST_WARNING_INFO_MESSAGE);\n }\n\n // default behavior: log warnings to the console\n for (const warning of options.warnings) {\n console.warn(\n formatWarning({\n warning,\n provider: options.provider,\n model: options.model,\n }),\n );\n }\n};\n\n/**\n * Resets the internal logging state. Used for testing purposes.\n */\nexport const resetLogWarningsState = () => {\n hasLoggedBefore = false;\n};\n","import { logWarnings } from '../logger/log-warnings';\n\nexport function logV2CompatibilityWarning({\n provider,\n modelId,\n}: {\n provider: string;\n modelId: string;\n}): void {\n logWarnings({\n warnings: [\n {\n type: 'compatibility',\n feature: 'specificationVersion',\n details: `Using v2 specification compatibility mode. Some features may not be available.`,\n },\n ],\n provider,\n model: modelId,\n });\n}\n","import type { EmbeddingModelV2, EmbeddingModelV3 } from '@ai-sdk/provider';\nimport { logV2CompatibilityWarning } from '../util/log-v2-compatibility-warning';\n\nexport function asEmbeddingModelV3(\n model: EmbeddingModelV2 | EmbeddingModelV3,\n): EmbeddingModelV3 {\n if (model.specificationVersion === 'v3') {\n return model;\n }\n\n logV2CompatibilityWarning({\n provider: model.provider,\n modelId: model.modelId,\n });\n\n // TODO this could break, we need to properly map v2 to v3\n // and support all relevant v3 properties:\n return new Proxy(model, {\n get(target, prop: keyof EmbeddingModelV2) {\n if (prop === 'specificationVersion') return 'v3';\n return target[prop];\n },\n }) as unknown as EmbeddingModelV3;\n}\n","import { gateway } from '@ai-sdk/gateway';\nimport type {\n EmbeddingModelV3,\n Experimental_VideoModelV3,\n ImageModelV3,\n LanguageModelV3,\n ProviderV3,\n RerankingModelV3,\n SpeechModelV3,\n TranscriptionModelV3,\n} from '@ai-sdk/provider';\nimport { UnsupportedModelVersionError } from '../error';\nimport type { EmbeddingModel } from '../types/embedding-model';\nimport type { LanguageModel } from '../types/language-model';\nimport type { SpeechModel } from '../types/speech-model';\nimport type { TranscriptionModel } from '../types/transcription-model';\nimport { asEmbeddingModelV3 } from './as-embedding-model-v3';\nimport { asImageModelV3 } from './as-image-model-v3';\nimport { asLanguageModelV3 } from './as-language-model-v3';\nimport { asSpeechModelV3 } from './as-speech-model-v3';\nimport { asTranscriptionModelV3 } from './as-transcription-model-v3';\nimport type { ImageModel } from '../types/image-model';\nimport type { RerankingModel } from '../types/reranking-model';\nimport type { VideoModel } from '../types/video-model';\n\nexport function resolveLanguageModel(model: LanguageModel): LanguageModelV3 {\n if (typeof model !== 'string') {\n if (\n model.specificationVersion !== 'v3' &&\n model.specificationVersion !== 'v2'\n ) {\n const unsupportedModel: any = model;\n throw new UnsupportedModelVersionError({\n version: unsupportedModel.specificationVersion,\n provider: unsupportedModel.provider,\n modelId: unsupportedModel.modelId,\n });\n }\n\n return asLanguageModelV3(model);\n }\n\n return getGlobalProvider().languageModel(model);\n}\n\nexport function resolveEmbeddingModel(model: EmbeddingModel): EmbeddingModelV3 {\n if (typeof model !== 'string') {\n if (\n model.specificationVersion !== 'v3' &&\n model.specificationVersion !== 'v2'\n ) {\n const unsupportedModel: any = model;\n throw new UnsupportedModelVersionError({\n version: unsupportedModel.specificationVersion,\n provider: unsupportedModel.provider,\n modelId: unsupportedModel.modelId,\n });\n }\n\n return asEmbeddingModelV3(model);\n }\n\n return getGlobalProvider().embeddingModel(model);\n}\n\nexport function resolveTranscriptionModel(\n model: TranscriptionModel,\n): TranscriptionModelV3 | undefined {\n if (typeof model !== 'string') {\n if (\n model.specificationVersion !== 'v3' &&\n model.specificationVersion !== 'v2'\n ) {\n const unsupportedModel: any = model;\n throw new UnsupportedModelVersionError({\n version: unsupportedModel.specificationVersion,\n provider: unsupportedModel.provider,\n modelId: unsupportedModel.modelId,\n });\n }\n return asTranscriptionModelV3(model);\n }\n\n return getGlobalProvider().transcriptionModel?.(model);\n}\n\nexport function resolveSpeechModel(\n model: SpeechModel,\n): SpeechModelV3 | undefined {\n if (typeof model !== 'string') {\n if (\n model.specificationVersion !== 'v3' &&\n model.specificationVersion !== 'v2'\n ) {\n const unsupportedModel: any = model;\n throw new UnsupportedModelVersionError({\n version: unsupportedModel.specificationVersion,\n provider: unsupportedModel.provider,\n modelId: unsupportedModel.modelId,\n });\n }\n return asSpeechModelV3(model);\n }\n\n return getGlobalProvider().speechModel?.(model);\n}\n\nexport function resolveImageModel(model: ImageModel): ImageModelV3 {\n if (typeof model !== 'string') {\n if (\n model.specificationVersion !== 'v3' &&\n model.specificationVersion !== 'v2'\n ) {\n const unsupportedModel: any = model;\n throw new UnsupportedModelVersionError({\n version: unsupportedModel.specificationVersion,\n provider: unsupportedModel.provider,\n modelId: unsupportedModel.modelId,\n });\n }\n\n return asImageModelV3(model);\n }\n\n return getGlobalProvider().imageModel(model);\n}\n\nexport function resolveVideoModel(\n model: VideoModel,\n): Experimental_VideoModelV3 {\n if (typeof model === 'string') {\n const provider = getGlobalProvider();\n // TODO AI SDK v7\n // @ts-expect-error - videoModel support is experimental\n const videoModel = provider.videoModel;\n\n if (!videoModel) {\n throw new Error(\n 'The default provider does not support video models. ' +\n 'Please use a Experimental_VideoModelV3 object from a provider (e.g., vertex.video(\"model-id\")).',\n );\n }\n\n return videoModel(model);\n }\n\n if (model.specificationVersion !== 'v3') {\n const unsupportedModel: any = model;\n throw new UnsupportedModelVersionError({\n version: unsupportedModel.specificationVersion,\n provider: unsupportedModel.provider,\n modelId: unsupportedModel.modelId,\n });\n }\n\n return model;\n}\n\nexport function resolveRerankingModel(model: RerankingModel): RerankingModelV3 {\n if (typeof model === 'string') {\n const provider = getGlobalProvider();\n const rerankingModel = provider.rerankingModel;\n\n if (!rerankingModel) {\n throw new Error(\n 'The default provider does not support reranking models. ' +\n 'Please use a RerankingModel object from a provider (e.g., gateway.rerankingModel(\"model-id\")).',\n );\n }\n\n return rerankingModel(model);\n }\n\n if (model.specificationVersion !== 'v3') {\n const unsupportedModel: any = model;\n throw new UnsupportedModelVersionError({\n version: unsupportedModel.specificationVersion,\n provider: unsupportedModel.provider,\n modelId: unsupportedModel.modelId,\n });\n }\n\n return model;\n}\n\nfunction getGlobalProvider(): ProviderV3 {\n return globalThis.AI_SDK_DEFAULT_PROVIDER ?? gateway;\n}\n","/**\n * Timeout configuration for API calls. Can be specified as:\n * - A number representing milliseconds\n * - An object with `totalMs` property for the total timeout in milliseconds\n * - An object with `stepMs` property for the timeout of each step in milliseconds\n * - An object with `chunkMs` property for the timeout between stream chunks (streaming only)\n */\nexport type TimeoutConfiguration =\n | number\n | { totalMs?: number; stepMs?: number; chunkMs?: number };\n\n/**\n * Extracts the total timeout value in milliseconds from a TimeoutConfiguration.\n *\n * @param timeout - The timeout configuration.\n * @returns The total timeout in milliseconds, or undefined if no timeout is configured.\n */\nexport function getTotalTimeoutMs(\n timeout: TimeoutConfiguration | undefined,\n): number | undefined {\n if (timeout == null) {\n return undefined;\n }\n if (typeof timeout === 'number') {\n return timeout;\n }\n return timeout.totalMs;\n}\n\n/**\n * Extracts the step timeout value in milliseconds from a TimeoutConfiguration.\n *\n * @param timeout - The timeout configuration.\n * @returns The step timeout in milliseconds, or undefined if no step timeout is configured.\n */\nexport function getStepTimeoutMs(\n timeout: TimeoutConfiguration | undefined,\n): number | undefined {\n if (timeout == null || typeof timeout === 'number') {\n return undefined;\n }\n return timeout.stepMs;\n}\n\n/**\n * Extracts the chunk timeout value in milliseconds from a TimeoutConfiguration.\n * This timeout is for streaming only - it aborts if no new chunk is received within the specified duration.\n *\n * @param timeout - The timeout configuration.\n * @returns The chunk timeout in milliseconds, or undefined if no chunk timeout is configured.\n */\nexport function getChunkTimeoutMs(\n timeout: TimeoutConfiguration | undefined,\n): number | undefined {\n if (timeout == null || typeof timeout === 'number') {\n return undefined;\n }\n return timeout.chunkMs;\n}\n\nexport type CallSettings = {\n /**\n * Maximum number of tokens to generate.\n */\n maxOutputTokens?: number;\n\n /**\n * Temperature setting. The range depends on the provider and model.\n *\n * It is recommended to set either `temperature` or `topP`, but not both.\n */\n temperature?: number;\n\n /**\n * Nucleus sampling. This is a number between 0 and 1.\n *\n * E.g. 0.1 would mean that only tokens with the top 10% probability mass\n * are considered.\n *\n * It is recommended to set either `temperature` or `topP`, but not both.\n */\n topP?: number;\n\n /**\n * Only sample from the top K options for each subsequent token.\n *\n * Used to remove \"long tail\" low probability responses.\n * Recommended for advanced use cases only. You usually only need to use temperature.\n */\n topK?: number;\n\n /**\n * Presence penalty setting. It affects the likelihood of the model to\n * repeat information that is already in the prompt.\n *\n * The presence penalty is a number between -1 (increase repetition)\n * and 1 (maximum penalty, decrease repetition). 0 means no penalty.\n */\n presencePenalty?: number;\n\n /**\n * Frequency penalty setting. It affects the likelihood of the model\n * to repeatedly use the same words or phrases.\n *\n * The frequency penalty is a number between -1 (increase repetition)\n * and 1 (maximum penalty, decrease repetition). 0 means no penalty.\n */\n frequencyPenalty?: number;\n\n /**\n * Stop sequences.\n * If set, the model will stop generating text when one of the stop sequences is generated.\n * Providers may have limits on the number of stop sequences.\n */\n stopSequences?: string[];\n\n /**\n * The seed (integer) to use for random sampling. If set and supported\n * by the model, calls will generate deterministic results.\n */\n seed?: number;\n\n /**\n * Maximum number of retries. Set to 0 to disable retries.\n *\n * @default 2\n */\n maxRetries?: number;\n\n /**\n * Abort signal.\n */\n abortSignal?: AbortSignal;\n\n /**\n * Timeout in milliseconds. The call will be aborted if it takes longer\n * than the specified timeout. Can be used alongside abortSignal.\n *\n * Can be specified as a number (milliseconds) or as an object with `totalMs`.\n */\n timeout?: TimeoutConfiguration;\n\n /**\n * Additional HTTP headers to be sent with the request.\n * Only applicable for HTTP-based providers.\n */\n headers?: Record;\n};\n","declare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import { AISDKError, type LanguageModelV3DataContent } from '@ai-sdk/provider';\nimport {\n convertBase64ToUint8Array,\n convertUint8ArrayToBase64,\n type DataContent,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { InvalidDataContentError } from './invalid-data-content-error';\nimport { splitDataUrl } from './split-data-url';\n\n/**\n * @internal\n */\nexport const dataContentSchema: z.ZodType = z.union([\n z.string(),\n z.instanceof(Uint8Array),\n z.instanceof(ArrayBuffer),\n z.custom(\n // Buffer might not be available in some environments such as CloudFlare:\n (value: unknown): value is Buffer =>\n globalThis.Buffer?.isBuffer(value) ?? false,\n { message: 'Must be a Buffer' },\n ),\n]);\n\nexport function convertToLanguageModelV3DataContent(\n content: DataContent | URL,\n): {\n data: LanguageModelV3DataContent;\n mediaType: string | undefined;\n} {\n // Buffer & Uint8Array:\n if (content instanceof Uint8Array) {\n return { data: content, mediaType: undefined };\n }\n\n // ArrayBuffer needs conversion to Uint8Array (lightweight):\n if (content instanceof ArrayBuffer) {\n return { data: new Uint8Array(content), mediaType: undefined };\n }\n\n // Attempt to create a URL from the data. If it fails, we can assume the data\n // is not a URL and likely some other sort of data.\n if (typeof content === 'string') {\n try {\n content = new URL(content);\n } catch (error) {\n // ignored\n }\n }\n\n // Extract data from data URL:\n if (content instanceof URL && content.protocol === 'data:') {\n const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(\n content.toString(),\n );\n\n if (dataUrlMediaType == null || base64Content == null) {\n throw new AISDKError({\n name: 'InvalidDataContentError',\n message: `Invalid data URL format in content ${content.toString()}`,\n });\n }\n\n return { data: base64Content, mediaType: dataUrlMediaType };\n }\n\n return { data: content, mediaType: undefined };\n}\n\n/**\n * Converts data content to a base64-encoded string.\n *\n * @param content - Data content to convert.\n * @returns Base64-encoded string.\n */\nexport function convertDataContentToBase64String(content: DataContent): string {\n if (typeof content === 'string') {\n return content;\n }\n\n if (content instanceof ArrayBuffer) {\n return convertUint8ArrayToBase64(new Uint8Array(content));\n }\n\n return convertUint8ArrayToBase64(content);\n}\n\n/**\n * Converts data content to a Uint8Array.\n *\n * @param content - Data content to convert.\n * @returns Uint8Array.\n */\nexport function convertDataContentToUint8Array(\n content: DataContent,\n): Uint8Array {\n if (content instanceof Uint8Array) {\n return content;\n }\n\n if (typeof content === 'string') {\n try {\n return convertBase64ToUint8Array(content);\n } catch (error) {\n throw new InvalidDataContentError({\n message:\n 'Invalid data content. Content string is not a base64-encoded media.',\n content,\n cause: error,\n });\n }\n }\n\n if (content instanceof ArrayBuffer) {\n return new Uint8Array(content);\n }\n\n throw new InvalidDataContentError({ content });\n}\n\n/**\n * Converts a Uint8Array to a string of text.\n *\n * @param uint8Array - The Uint8Array to convert.\n * @returns The converted string.\n */\nexport function convertUint8ArrayToText(uint8Array: Uint8Array): string {\n try {\n return new TextDecoder().decode(uint8Array);\n } catch (error) {\n throw new Error('Error decoding Uint8Array to text');\n }\n}\n","import type { JSONValue as OriginalJSONValue } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nexport const jsonValueSchema: z.ZodType = z.lazy(() =>\n z.union([\n z.null(),\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.string(), jsonValueSchema.optional()),\n z.array(jsonValueSchema),\n ]),\n);\n\nexport type JSONValue = OriginalJSONValue;\n","import type { SharedV3ProviderMetadata } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\nimport { jsonValueSchema } from './json-value';\n\n/**\n * Additional provider-specific metadata that is returned from the provider.\n *\n * This is needed to enable provider-specific functionality that can be\n * fully encapsulated in the provider.\n */\nexport type ProviderMetadata = SharedV3ProviderMetadata;\n\nexport const providerMetadataSchema: z.ZodType = z.record(\n z.string(),\n z.record(z.string(), jsonValueSchema.optional()),\n);\n","import type {\n FilePart,\n ImagePart,\n ProviderOptions,\n ReasoningPart,\n TextPart,\n ToolApprovalRequest,\n ToolApprovalResponse,\n ToolResultOutput,\n ToolResultPart,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { jsonValueSchema } from '../types/json-value';\nimport { providerMetadataSchema } from '../types/provider-metadata';\nimport { dataContentSchema } from './data-content';\n\n/**\n * @internal\n */\nexport const textPartSchema: z.ZodType = z.object({\n type: z.literal('text'),\n text: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n * @internal\n */\nexport const imagePartSchema: z.ZodType = z.object({\n type: z.literal('image'),\n image: z.union([dataContentSchema, z.instanceof(URL)]),\n mediaType: z.string().optional(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n * @internal\n */\nexport const filePartSchema: z.ZodType = z.object({\n type: z.literal('file'),\n data: z.union([dataContentSchema, z.instanceof(URL)]),\n filename: z.string().optional(),\n mediaType: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n * @internal\n */\nexport const reasoningPartSchema: z.ZodType = z.object({\n type: z.literal('reasoning'),\n text: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n});\n\n/**\n * Tool call content part of a prompt. It contains a tool call (usually generated by the AI model).\n */\nexport interface ToolCallPart {\n type: 'tool-call';\n\n /**\n * ID of the tool call. This ID is used to match the tool call with the tool result.\n */\n toolCallId: string;\n\n /**\n * Name of the tool that is being called.\n */\n toolName: string;\n\n /**\n * Arguments of the tool call. This is a JSON-serializable object that matches the tool's input schema.\n */\n input: unknown;\n\n /**\n * Additional provider-specific metadata. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n}\n\n/**\n * @internal\n */\nexport const toolCallPartSchema: z.ZodType = z.object({\n type: z.literal('tool-call'),\n toolCallId: z.string(),\n toolName: z.string(),\n input: z.unknown(),\n providerOptions: providerMetadataSchema.optional(),\n providerExecuted: z.boolean().optional(),\n}) as z.ZodType; // necessary bc input is optional on Zod type\n\n/**\n * @internal\n */\nexport const outputSchema: z.ZodType = z.discriminatedUnion(\n 'type',\n [\n z.object({\n type: z.literal('text'),\n value: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('json'),\n value: jsonValueSchema,\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('execution-denied'),\n reason: z.string().optional(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('error-text'),\n value: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('error-json'),\n value: jsonValueSchema,\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('content'),\n value: z.array(\n z.union([\n z.object({\n type: z.literal('text'),\n text: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('media'),\n data: z.string(),\n mediaType: z.string(),\n }),\n z.object({\n type: z.literal('file-data'),\n data: z.string(),\n mediaType: z.string(),\n filename: z.string().optional(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('file-url'),\n url: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('file-id'),\n fileId: z.union([z.string(), z.record(z.string(), z.string())]),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('image-data'),\n data: z.string(),\n mediaType: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('image-url'),\n url: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('image-file-id'),\n fileId: z.union([z.string(), z.record(z.string(), z.string())]),\n providerOptions: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('custom'),\n providerOptions: providerMetadataSchema.optional(),\n }),\n ]),\n ),\n }),\n ],\n);\n\n/**\n * @internal\n */\nexport const toolResultPartSchema: z.ZodType = z.object({\n type: z.literal('tool-result'),\n toolCallId: z.string(),\n toolName: z.string(),\n output: outputSchema,\n providerOptions: providerMetadataSchema.optional(),\n}) as z.ZodType; // necessary bc result is optional on Zod type\n\n/**\n * @internal\n */\nexport const toolApprovalRequestSchema: z.ZodType =\n z.object({\n type: z.literal('tool-approval-request'),\n approvalId: z.string(),\n toolCallId: z.string(),\n });\n\n/**\n * @internal\n */\nexport const toolApprovalResponseSchema: z.ZodType =\n z.object({\n type: z.literal('tool-approval-response'),\n approvalId: z.string(),\n approved: z.boolean(),\n reason: z.string().optional(),\n });\n","import type {\n AssistantModelMessage,\n ModelMessage,\n SystemModelMessage,\n ToolModelMessage,\n UserModelMessage,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { providerMetadataSchema } from '../types/provider-metadata';\nimport {\n filePartSchema,\n imagePartSchema,\n reasoningPartSchema,\n textPartSchema,\n toolApprovalRequestSchema,\n toolCallPartSchema,\n toolApprovalResponseSchema,\n toolResultPartSchema,\n} from './content-part';\n\nexport const systemModelMessageSchema: z.ZodType = z.object(\n {\n role: z.literal('system'),\n content: z.string(),\n providerOptions: providerMetadataSchema.optional(),\n },\n);\n\nexport const userModelMessageSchema: z.ZodType = z.object({\n role: z.literal('user'),\n content: z.union([\n z.string(),\n z.array(z.union([textPartSchema, imagePartSchema, filePartSchema])),\n ]),\n providerOptions: providerMetadataSchema.optional(),\n});\n\nexport const assistantModelMessageSchema: z.ZodType =\n z.object({\n role: z.literal('assistant'),\n content: z.union([\n z.string(),\n z.array(\n z.union([\n textPartSchema,\n filePartSchema,\n reasoningPartSchema,\n toolCallPartSchema,\n toolResultPartSchema,\n toolApprovalRequestSchema,\n ]),\n ),\n ]),\n providerOptions: providerMetadataSchema.optional(),\n });\n\nexport const toolModelMessageSchema: z.ZodType = z.object({\n role: z.literal('tool'),\n content: z.array(z.union([toolResultPartSchema, toolApprovalResponseSchema])),\n providerOptions: providerMetadataSchema.optional(),\n});\n\nexport const modelMessageSchema: z.ZodType = z.union([\n systemModelMessageSchema,\n userModelMessageSchema,\n assistantModelMessageSchema,\n toolModelMessageSchema,\n]);\n","import type { TelemetrySettings } from './telemetry-settings';\n\nexport function assembleOperationName({\n operationId,\n telemetry,\n}: {\n operationId: string;\n telemetry?: TelemetrySettings;\n}) {\n return {\n // standardized operation and resource name:\n 'operation.name': `${operationId}${\n telemetry?.functionId != null ? ` ${telemetry.functionId}` : ''\n }`,\n 'resource.name': telemetry?.functionId,\n\n // detailed, AI SDK specific data:\n 'ai.operationId': operationId,\n 'ai.telemetry.functionId': telemetry?.functionId,\n };\n}\n","import type { Attributes, AttributeValue } from '@opentelemetry/api';\nimport { getTotalTimeoutMs, type CallSettings } from '../prompt/call-settings';\nimport type { TelemetrySettings } from './telemetry-settings';\n\nexport function getBaseTelemetryAttributes({\n model,\n settings,\n telemetry,\n headers,\n}: {\n model: { modelId: string; provider: string };\n settings: Omit;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n}): Attributes {\n return {\n 'ai.model.provider': model.provider,\n 'ai.model.id': model.modelId,\n\n // settings:\n ...Object.entries(settings).reduce((attributes, [key, value]) => {\n // Handle timeout specially since it can be a number or object\n if (key === 'timeout') {\n const totalTimeoutMs = getTotalTimeoutMs(\n value as Parameters[0],\n );\n if (totalTimeoutMs != null) {\n attributes[`ai.settings.${key}`] = totalTimeoutMs;\n }\n } else {\n attributes[`ai.settings.${key}`] = value as AttributeValue;\n }\n return attributes;\n }, {} as Attributes),\n\n // add metadata as attributes:\n ...Object.entries(telemetry?.metadata ?? {}).reduce(\n (attributes, [key, value]) => {\n attributes[`ai.telemetry.metadata.${key}`] = value;\n return attributes;\n },\n {} as Attributes,\n ),\n\n // request headers\n ...Object.entries(headers ?? {}).reduce((attributes, [key, value]) => {\n if (value !== undefined) {\n attributes[`ai.request.headers.${key}`] = value;\n }\n return attributes;\n }, {} as Attributes),\n };\n}\n","import type { Span, SpanContext, Tracer } from '@opentelemetry/api';\n\n/**\n * Tracer implementation that does nothing (null object).\n */\nexport const noopTracer: Tracer = {\n startSpan(): Span {\n return noopSpan;\n },\n\n startActiveSpan unknown>(\n name: unknown,\n arg1: unknown,\n arg2?: unknown,\n arg3?: F,\n ): ReturnType {\n if (typeof arg1 === 'function') {\n return arg1(noopSpan);\n }\n if (typeof arg2 === 'function') {\n return arg2(noopSpan);\n }\n if (typeof arg3 === 'function') {\n return arg3(noopSpan);\n }\n },\n};\n\nconst noopSpan: Span = {\n spanContext() {\n return noopSpanContext;\n },\n setAttribute() {\n return this;\n },\n setAttributes() {\n return this;\n },\n addEvent() {\n return this;\n },\n addLink() {\n return this;\n },\n addLinks() {\n return this;\n },\n setStatus() {\n return this;\n },\n updateName() {\n return this;\n },\n end() {\n return this;\n },\n isRecording() {\n return false;\n },\n recordException() {\n return this;\n },\n};\n\nconst noopSpanContext: SpanContext = {\n traceId: '',\n spanId: '',\n traceFlags: 0,\n};\n","import { trace, type Tracer } from '@opentelemetry/api';\nimport { noopTracer } from './noop-tracer';\n\nexport function getTracer({\n isEnabled = false,\n tracer,\n}: {\n isEnabled?: boolean;\n tracer?: Tracer;\n} = {}): Tracer {\n if (!isEnabled) {\n return noopTracer;\n }\n\n if (tracer) {\n return tracer;\n }\n\n return trace.getTracer('ai');\n}\n","import {\n SpanStatusCode,\n context,\n type Attributes,\n type Span,\n type Tracer,\n} from '@opentelemetry/api';\n\nexport async function recordSpan({\n name,\n tracer,\n attributes,\n fn,\n endWhenDone = true,\n}: {\n name: string;\n tracer: Tracer;\n attributes: Attributes | PromiseLike;\n fn: (span: Span) => Promise;\n endWhenDone?: boolean;\n}) {\n return tracer.startActiveSpan(\n name,\n { attributes: await attributes },\n async span => {\n // Capture the current context to maintain it across async generator yields\n const ctx = context.active();\n\n try {\n // Execute within the captured context to ensure async generators\n // don't lose the active span when they yield\n const result = await context.with(ctx, () => fn(span));\n\n if (endWhenDone) {\n span.end();\n }\n\n return result;\n } catch (error) {\n try {\n recordErrorOnSpan(span, error);\n } finally {\n // always stop the span when there is an error:\n span.end();\n }\n\n throw error;\n }\n },\n );\n}\n\n/**\n * Record an error on a span. Sets the span status to error. If the error is\n * an instance of Error, an exception event with name, message, and stack\n * will also be recorded.\n *\n * @param span - The span to record the error on.\n * @param error - The error to record on the span.\n */\nexport function recordErrorOnSpan(span: Span, error: unknown) {\n if (error instanceof Error) {\n span.recordException({\n name: error.name,\n message: error.message,\n stack: error.stack,\n });\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n } else {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n}\n","import type { Attributes, AttributeValue } from '@opentelemetry/api';\nimport type { TelemetrySettings } from './telemetry-settings';\n\ntype ResolvableAttributeValue = () =>\n | AttributeValue\n | PromiseLike\n | undefined;\n\nexport async function selectTelemetryAttributes({\n telemetry,\n attributes,\n}: {\n telemetry?: TelemetrySettings;\n attributes: {\n [attributeKey: string]:\n | AttributeValue\n | { input: ResolvableAttributeValue }\n | { output: ResolvableAttributeValue }\n | undefined;\n };\n}): Promise {\n // when telemetry is disabled, return an empty object to avoid serialization overhead:\n if (telemetry?.isEnabled !== true) {\n return {};\n }\n\n const resultAttributes: Attributes = {};\n\n for (const [key, value] of Object.entries(attributes)) {\n if (value == null) {\n continue;\n }\n\n // input value, check if it should be recorded:\n if (\n typeof value === 'object' &&\n 'input' in value &&\n typeof value.input === 'function'\n ) {\n // default to true:\n if (telemetry?.recordInputs === false) {\n continue;\n }\n\n const result = await value.input();\n\n if (result != null) {\n resultAttributes[key] = result;\n }\n\n continue;\n }\n\n // output value, check if it should be recorded:\n if (\n typeof value === 'object' &&\n 'output' in value &&\n typeof value.output === 'function'\n ) {\n // default to true:\n if (telemetry?.recordOutputs === false) {\n continue;\n }\n\n const result = await value.output();\n\n if (result != null) {\n resultAttributes[key] = result;\n }\n continue;\n }\n\n // value is an attribute value already:\n resultAttributes[key] = value as AttributeValue;\n }\n\n return resultAttributes;\n}\n","import { APICallError } from '@ai-sdk/provider';\nimport { delay, getErrorMessage, isAbortError } from '@ai-sdk/provider-utils';\nimport { RetryError } from './retry-error';\n\nexport type RetryFunction = (\n fn: () => PromiseLike,\n) => PromiseLike;\n\nfunction getRetryDelayInMs({\n error,\n exponentialBackoffDelay,\n}: {\n error: APICallError;\n exponentialBackoffDelay: number;\n}): number {\n const headers = error.responseHeaders;\n\n if (!headers) return exponentialBackoffDelay;\n\n let ms: number | undefined;\n\n // retry-ms is more precise than retry-after and used by e.g. OpenAI\n const retryAfterMs = headers['retry-after-ms'];\n if (retryAfterMs) {\n const timeoutMs = parseFloat(retryAfterMs);\n if (!Number.isNaN(timeoutMs)) {\n ms = timeoutMs;\n }\n }\n\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfter = headers['retry-after'];\n if (retryAfter && ms === undefined) {\n const timeoutSeconds = parseFloat(retryAfter);\n if (!Number.isNaN(timeoutSeconds)) {\n ms = timeoutSeconds * 1000;\n } else {\n ms = Date.parse(retryAfter) - Date.now();\n }\n }\n\n // check that the delay is reasonable:\n if (\n ms != null &&\n !Number.isNaN(ms) &&\n 0 <= ms &&\n (ms < 60 * 1000 || ms < exponentialBackoffDelay)\n ) {\n return ms;\n }\n\n return exponentialBackoffDelay;\n}\n\n/**\n * The `retryWithExponentialBackoffRespectingRetryHeaders` strategy retries a failed API call with an exponential backoff,\n * while respecting rate limit headers (retry-after-ms and retry-after) if they are provided and reasonable (0-60 seconds).\n * You can configure the maximum number of retries, the initial delay, and the backoff factor.\n */\nexport const retryWithExponentialBackoffRespectingRetryHeaders =\n ({\n maxRetries = 2,\n initialDelayInMs = 2000,\n backoffFactor = 2,\n abortSignal,\n }: {\n maxRetries?: number;\n initialDelayInMs?: number;\n backoffFactor?: number;\n abortSignal?: AbortSignal;\n } = {}): RetryFunction =>\n async (f: () => PromiseLike) =>\n _retryWithExponentialBackoff(f, {\n maxRetries,\n delayInMs: initialDelayInMs,\n backoffFactor,\n abortSignal,\n });\n\nasync function _retryWithExponentialBackoff(\n f: () => PromiseLike,\n {\n maxRetries,\n delayInMs,\n backoffFactor,\n abortSignal,\n }: {\n maxRetries: number;\n delayInMs: number;\n backoffFactor: number;\n abortSignal: AbortSignal | undefined;\n },\n errors: unknown[] = [],\n): Promise {\n try {\n return await f();\n } catch (error) {\n if (isAbortError(error)) {\n throw error; // don't retry when the request was aborted\n }\n\n if (maxRetries === 0) {\n throw error; // don't wrap the error when retries are disabled\n }\n\n const errorMessage = getErrorMessage(error);\n const newErrors = [...errors, error];\n const tryNumber = newErrors.length;\n\n if (tryNumber > maxRetries) {\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts. Last error: ${errorMessage}`,\n reason: 'maxRetriesExceeded',\n errors: newErrors,\n });\n }\n\n if (\n error instanceof Error &&\n APICallError.isInstance(error) &&\n error.isRetryable === true &&\n tryNumber <= maxRetries\n ) {\n await delay(\n getRetryDelayInMs({\n error,\n exponentialBackoffDelay: delayInMs,\n }),\n { abortSignal },\n );\n\n return _retryWithExponentialBackoff(\n f,\n {\n maxRetries,\n delayInMs: backoffFactor * delayInMs,\n backoffFactor,\n abortSignal,\n },\n newErrors,\n );\n }\n\n if (tryNumber === 1) {\n throw error; // don't wrap the error when a non-retryable error occurs on the first try\n }\n\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts with non-retryable error: '${errorMessage}'`,\n reason: 'errorNotRetryable',\n errors: newErrors,\n });\n }\n}\n","import { InvalidArgumentError } from '../error/invalid-argument-error';\nimport {\n retryWithExponentialBackoffRespectingRetryHeaders,\n type RetryFunction,\n} from '../util/retry-with-exponential-backoff';\n\n/**\n * Validate and prepare retries.\n */\nexport function prepareRetries({\n maxRetries,\n abortSignal,\n}: {\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n}): {\n maxRetries: number;\n retry: RetryFunction;\n} {\n if (maxRetries != null) {\n if (!Number.isInteger(maxRetries)) {\n throw new InvalidArgumentError({\n parameter: 'maxRetries',\n value: maxRetries,\n message: 'maxRetries must be an integer',\n });\n }\n\n if (maxRetries < 0) {\n throw new InvalidArgumentError({\n parameter: 'maxRetries',\n value: maxRetries,\n message: 'maxRetries must be >= 0',\n });\n }\n }\n\n const maxRetriesResult = maxRetries ?? 2;\n\n return {\n maxRetries: maxRetriesResult,\n retry: retryWithExponentialBackoffRespectingRetryHeaders({\n maxRetries: maxRetriesResult,\n abortSignal,\n }),\n };\n}\n","import {\n TypeValidationError,\n type JSONValue,\n type LanguageModelV3CallOptions,\n} from '@ai-sdk/provider';\nimport {\n asSchema,\n resolve,\n safeParseJSON,\n safeValidateTypes,\n type FlexibleSchema,\n} from '@ai-sdk/provider-utils';\nimport { NoObjectGeneratedError } from '../error/no-object-generated-error';\nimport type { FinishReason } from '../types/language-model';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { LanguageModelUsage } from '../types/usage';\nimport type { DeepPartial } from '../util/deep-partial';\nimport { parsePartialJson } from '../util/parse-partial-json';\nimport type { EnrichedStreamPart } from './stream-text';\n\nexport interface Output {\n /**\n * The name of the output mode.\n */\n name: string;\n\n /**\n * The response format to use for the model.\n */\n responseFormat: PromiseLike;\n\n /**\n * Parses the complete output of the model.\n */\n parseCompleteOutput(\n options: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ): Promise;\n\n /**\n * Parses the partial output of the model.\n */\n parsePartialOutput(options: {\n text: string;\n }): Promise<{ partial: PARTIAL } | undefined>;\n\n /**\n * Creates a stream transform that emits individual elements as they complete.\n */\n createElementStreamTransform():\n | TransformStream, ELEMENT>\n | undefined;\n}\n\n/**\n * Output specification for text generation.\n * This is the default output mode that generates plain text.\n *\n * @returns An output specification for generating text.\n */\nexport const text = (): Output => ({\n name: 'text',\n responseFormat: Promise.resolve({ type: 'text' }),\n\n async parseCompleteOutput({ text }: { text: string }) {\n return text;\n },\n\n async parsePartialOutput({ text }: { text: string }) {\n return { partial: text };\n },\n\n createElementStreamTransform() {\n return undefined;\n },\n});\n\n/**\n * Output specification for typed object generation using schemas.\n * When the model generates a text response, it will return an object that matches the schema.\n *\n * @param schema - The schema of the object to generate.\n * @param name - Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n * @param description - Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n *\n * @returns An output specification for generating objects with the specified schema.\n */\nexport const object = ({\n schema: inputSchema,\n name,\n description,\n}: {\n schema: FlexibleSchema;\n /**\n * Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n */\n name?: string;\n /**\n * Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n */\n description?: string;\n}): Output, never> => {\n const schema = asSchema(inputSchema);\n\n return {\n name: 'object',\n\n responseFormat: resolve(schema.jsonSchema).then(jsonSchema => ({\n type: 'json' as const,\n schema: jsonSchema,\n ...(name != null && { name }),\n ...(description != null && { description }),\n })),\n\n async parseCompleteOutput(\n { text }: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ) {\n const parseResult = await safeParseJSON({ text });\n\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: could not parse the response.',\n cause: parseResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n const validationResult = await safeValidateTypes({\n value: parseResult.value,\n schema,\n });\n\n if (!validationResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: response did not match schema.',\n cause: validationResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n return validationResult.value;\n },\n\n async parsePartialOutput({ text }: { text: string }) {\n const result = await parsePartialJson(text);\n\n switch (result.state) {\n case 'failed-parse':\n case 'undefined-input': {\n return undefined;\n }\n\n case 'repaired-parse':\n case 'successful-parse': {\n return {\n // Note: currently no validation of partial results:\n partial: result.value as DeepPartial,\n };\n }\n }\n },\n\n createElementStreamTransform() {\n return undefined;\n },\n };\n};\n\n/**\n * Output specification for array generation.\n * When the model generates a text response, it will return an array of elements.\n *\n * @param element - The schema of the array elements to generate.\n * @param name - Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n * @param description - Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n *\n * @returns An output specification for generating an array of elements.\n */\nexport const array = ({\n element: inputElementSchema,\n name,\n description,\n}: {\n element: FlexibleSchema;\n /**\n * Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n */\n name?: string;\n /**\n * Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n */\n description?: string;\n}): Output, Array, ELEMENT> => {\n const elementSchema = asSchema(inputElementSchema);\n\n return {\n name: 'array',\n\n // JSON schema that describes an array of elements:\n responseFormat: resolve(elementSchema.jsonSchema).then(jsonSchema => {\n // remove $schema from schema.jsonSchema:\n const { $schema, ...itemSchema } = jsonSchema;\n\n return {\n type: 'json' as const,\n schema: {\n $schema: 'http://json-schema.org/draft-07/schema#',\n type: 'object',\n properties: {\n elements: { type: 'array', items: itemSchema },\n },\n required: ['elements'],\n additionalProperties: false,\n },\n ...(name != null && { name }),\n ...(description != null && { description }),\n };\n }),\n\n async parseCompleteOutput(\n { text }: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ) {\n const parseResult = await safeParseJSON({ text });\n\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: could not parse the response.',\n cause: parseResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n const outerValue = parseResult.value;\n\n if (\n outerValue == null ||\n typeof outerValue !== 'object' ||\n !('elements' in outerValue) ||\n !Array.isArray(outerValue.elements)\n ) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: response did not match schema.',\n cause: new TypeValidationError({\n value: outerValue,\n cause: 'response must be an object with an elements array',\n }),\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n for (const element of outerValue.elements) {\n const validationResult = await safeValidateTypes({\n value: element,\n schema: elementSchema,\n });\n\n if (!validationResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: response did not match schema.',\n cause: validationResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n }\n\n return outerValue.elements as Array;\n },\n\n async parsePartialOutput({ text }: { text: string }) {\n const result = await parsePartialJson(text);\n\n switch (result.state) {\n case 'failed-parse':\n case 'undefined-input': {\n return undefined;\n }\n\n case 'repaired-parse':\n case 'successful-parse': {\n const outerValue = result.value;\n\n // no parsable elements array\n if (\n outerValue == null ||\n typeof outerValue !== 'object' ||\n !('elements' in outerValue) ||\n !Array.isArray(outerValue.elements)\n ) {\n return undefined;\n }\n\n const rawElements =\n result.state === 'repaired-parse' && outerValue.elements.length > 0\n ? outerValue.elements.slice(0, -1)\n : outerValue.elements;\n\n const parsedElements: Array = [];\n for (const rawElement of rawElements) {\n const validationResult = await safeValidateTypes({\n value: rawElement,\n schema: elementSchema,\n });\n\n if (validationResult.success) {\n parsedElements.push(validationResult.value);\n }\n }\n\n return { partial: parsedElements };\n }\n }\n },\n\n createElementStreamTransform() {\n let publishedElements = 0;\n\n return new TransformStream<\n EnrichedStreamPart>,\n ELEMENT\n >({\n transform({ partialOutput }, controller) {\n if (partialOutput != null) {\n // Only enqueue new elements that haven't been published yet\n for (\n ;\n publishedElements < partialOutput.length;\n publishedElements++\n ) {\n controller.enqueue(partialOutput[publishedElements]);\n }\n }\n },\n });\n },\n };\n};\n\n/**\n * Output specification for choice generation.\n * When the model generates a text response, it will return a one of the choice options.\n *\n * @param options - The available choices.\n * @param name - Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n * @param description - Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n *\n * @returns An output specification for generating a choice.\n */\nexport const choice = ({\n options: choiceOptions,\n name,\n description,\n}: {\n options: Array;\n /**\n * Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n */\n name?: string;\n /**\n * Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n */\n description?: string;\n}): Output => {\n return {\n name: 'choice',\n\n // JSON schema that describes an enumeration:\n responseFormat: Promise.resolve({\n type: 'json',\n schema: {\n $schema: 'http://json-schema.org/draft-07/schema#',\n type: 'object',\n properties: {\n result: { type: 'string', enum: choiceOptions },\n },\n required: ['result'],\n additionalProperties: false,\n },\n ...(name != null && { name }),\n ...(description != null && { description }),\n } as const),\n\n async parseCompleteOutput(\n { text }: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ) {\n const parseResult = await safeParseJSON({ text });\n\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: could not parse the response.',\n cause: parseResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n const outerValue = parseResult.value;\n\n if (\n outerValue == null ||\n typeof outerValue !== 'object' ||\n !('result' in outerValue) ||\n typeof outerValue.result !== 'string' ||\n !choiceOptions.includes(outerValue.result as any)\n ) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: response did not match schema.',\n cause: new TypeValidationError({\n value: outerValue,\n cause: 'response must be an object that contains a choice value.',\n }),\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n return outerValue.result as CHOICE;\n },\n\n async parsePartialOutput({ text }: { text: string }) {\n const result = await parsePartialJson(text);\n\n switch (result.state) {\n case 'failed-parse':\n case 'undefined-input': {\n return undefined;\n }\n\n case 'repaired-parse':\n case 'successful-parse': {\n const outerValue = result.value;\n\n if (\n outerValue == null ||\n typeof outerValue !== 'object' ||\n !('result' in outerValue) ||\n typeof outerValue.result !== 'string'\n ) {\n return undefined;\n }\n\n // list of potential matches.\n const potentialMatches = choiceOptions.filter(choiceOption =>\n choiceOption.startsWith(outerValue.result as string),\n );\n\n if (result.state === 'successful-parse') {\n // successful parse: exact choice value\n return potentialMatches.includes(outerValue.result as any)\n ? { partial: outerValue.result as CHOICE }\n : undefined;\n } else {\n // repaired parse: only return if not ambiguous\n return potentialMatches.length === 1\n ? { partial: potentialMatches[0] as CHOICE }\n : undefined;\n }\n }\n }\n },\n\n createElementStreamTransform() {\n return undefined;\n },\n };\n};\n\n/**\n * Output specification for unstructured JSON generation.\n * When the model generates a text response, it will return a JSON object.\n *\n * @param name - Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n * @param description - Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n *\n * @returns An output specification for generating JSON.\n */\nexport const json = ({\n name,\n description,\n}: {\n /**\n * Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema name.\n */\n name?: string;\n /**\n * Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g. via tool or schema description.\n */\n description?: string;\n} = {}): Output => {\n return {\n name: 'json',\n\n responseFormat: Promise.resolve({\n type: 'json' as const,\n ...(name != null && { name }),\n ...(description != null && { description }),\n }),\n\n async parseCompleteOutput(\n { text }: { text: string },\n context: {\n response: LanguageModelResponseMetadata;\n usage: LanguageModelUsage;\n finishReason: FinishReason;\n },\n ) {\n const parseResult = await safeParseJSON({ text });\n\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: 'No object generated: could not parse the response.',\n cause: parseResult.error,\n text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason,\n });\n }\n\n return parseResult.value;\n },\n\n async parsePartialOutput({ text }: { text: string }) {\n const result = await parsePartialJson(text);\n\n switch (result.state) {\n case 'failed-parse':\n case 'undefined-input': {\n return undefined;\n }\n\n case 'repaired-parse':\n case 'successful-parse': {\n return result.value === undefined\n ? undefined\n : { partial: result.value };\n }\n }\n },\n\n createElementStreamTransform() {\n return undefined;\n },\n };\n};\n","type State =\n | 'ROOT'\n | 'FINISH'\n | 'INSIDE_STRING'\n | 'INSIDE_STRING_ESCAPE'\n | 'INSIDE_LITERAL'\n | 'INSIDE_NUMBER'\n | 'INSIDE_OBJECT_START'\n | 'INSIDE_OBJECT_KEY'\n | 'INSIDE_OBJECT_AFTER_KEY'\n | 'INSIDE_OBJECT_BEFORE_VALUE'\n | 'INSIDE_OBJECT_AFTER_VALUE'\n | 'INSIDE_OBJECT_AFTER_COMMA'\n | 'INSIDE_ARRAY_START'\n | 'INSIDE_ARRAY_AFTER_VALUE'\n | 'INSIDE_ARRAY_AFTER_COMMA';\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = ['ROOT'];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_STRING');\n break;\n }\n\n case 'f':\n case 't':\n case 'n': {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_LITERAL');\n break;\n }\n\n case '-': {\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_NUMBER');\n break;\n }\n\n case '{': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_OBJECT_START');\n break;\n }\n\n case '[': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push('INSIDE_ARRAY_START');\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_COMMA');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case 'ROOT':\n processValueStart(char, i, 'FINISH');\n break;\n\n case 'INSIDE_OBJECT_START': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n case '}': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_COMMA': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_KEY': {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push('INSIDE_OBJECT_AFTER_KEY');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_KEY': {\n switch (char) {\n case ':': {\n stack.pop();\n stack.push('INSIDE_OBJECT_BEFORE_VALUE');\n\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_OBJECT_BEFORE_VALUE': {\n processValueStart(char, i, 'INSIDE_OBJECT_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n processAfterObjectValue(char, i);\n break;\n }\n\n case 'INSIDE_STRING': {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case '\\\\': {\n stack.push('INSIDE_STRING_ESCAPE');\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_START': {\n switch (char) {\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n }\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n switch (char) {\n case ',': {\n stack.pop();\n stack.push('INSIDE_ARRAY_AFTER_COMMA');\n break;\n }\n\n case ']': {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_ARRAY_AFTER_COMMA': {\n processValueStart(char, i, 'INSIDE_ARRAY_AFTER_VALUE');\n break;\n }\n\n case 'INSIDE_STRING_ESCAPE': {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case 'INSIDE_NUMBER': {\n switch (char) {\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9': {\n lastValidIndex = i;\n break;\n }\n\n case 'e':\n case 'E':\n case '-':\n case '.': {\n break;\n }\n\n case ',': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case '}': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case ']': {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !'false'.startsWith(partialLiteral) &&\n !'true'.startsWith(partialLiteral) &&\n !'null'.startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === 'INSIDE_OBJECT_AFTER_VALUE') {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === 'INSIDE_ARRAY_AFTER_VALUE') {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case 'INSIDE_STRING': {\n result += '\"';\n break;\n }\n\n case 'INSIDE_OBJECT_KEY':\n case 'INSIDE_OBJECT_AFTER_KEY':\n case 'INSIDE_OBJECT_AFTER_COMMA':\n case 'INSIDE_OBJECT_START':\n case 'INSIDE_OBJECT_BEFORE_VALUE':\n case 'INSIDE_OBJECT_AFTER_VALUE': {\n result += '}';\n break;\n }\n\n case 'INSIDE_ARRAY_START':\n case 'INSIDE_ARRAY_AFTER_COMMA':\n case 'INSIDE_ARRAY_AFTER_VALUE': {\n result += ']';\n break;\n }\n\n case 'INSIDE_LITERAL': {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if ('true'.startsWith(partialLiteral)) {\n result += 'true'.slice(partialLiteral.length);\n } else if ('false'.startsWith(partialLiteral)) {\n result += 'false'.slice(partialLiteral.length);\n } else if ('null'.startsWith(partialLiteral)) {\n result += 'null'.slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n","import type { JSONValue } from '@ai-sdk/provider';\nimport { safeParseJSON } from '@ai-sdk/provider-utils';\nimport { fixJson } from './fix-json';\n\nexport async function parsePartialJson(jsonText: string | undefined): Promise<{\n value: JSONValue | undefined;\n state:\n | 'undefined-input'\n | 'successful-parse'\n | 'repaired-parse'\n | 'failed-parse';\n}> {\n if (jsonText === undefined) {\n return { value: undefined, state: 'undefined-input' };\n }\n\n let result = await safeParseJSON({ text: jsonText });\n\n if (result.success) {\n return { value: result.value, state: 'successful-parse' };\n }\n\n result = await safeParseJSON({ text: fixJson(jsonText) });\n\n if (result.success) {\n return { value: result.value, state: 'repaired-parse' };\n }\n\n return { value: undefined, state: 'failed-parse' };\n}\n","import type {\n LanguageModelV3,\n LanguageModelV3Content,\n LanguageModelV3ToolCall,\n} from '@ai-sdk/provider';\nimport {\n createIdGenerator,\n getErrorMessage,\n withUserAgentSuffix,\n type IdGenerator,\n type ProviderOptions,\n} from '@ai-sdk/provider-utils';\nimport type { Tracer } from '@opentelemetry/api';\nimport { NoOutputGeneratedError } from '../error';\nimport { notify } from '../util/notify';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport type { ModelMessage } from '../prompt';\nimport {\n getStepTimeoutMs,\n getTotalTimeoutMs,\n TimeoutConfiguration,\n type CallSettings,\n} from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { createToolModelOutput } from '../prompt/create-tool-model-output';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareToolsAndToolChoice } from '../prompt/prepare-tools-and-tool-choice';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { ToolCallNotFoundForApprovalError } from '../error/tool-call-not-found-for-approval-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport { getGlobalTelemetryIntegration } from '../telemetry/get-global-telemetry-integration';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport type {\n LanguageModel,\n LanguageModelRequestMetadata,\n ToolChoice,\n} from '../types';\nimport {\n addLanguageModelUsage,\n asLanguageModelUsage,\n type LanguageModelUsage,\n} from '../types/usage';\nimport { asArray } from '../util/as-array';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { mergeObjects } from '../util/merge-objects';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { VERSION } from '../version';\nimport type {\n OnFinishEvent,\n OnStartEvent,\n OnStepFinishEvent,\n OnStepStartEvent,\n OnToolCallFinishEvent,\n OnToolCallStartEvent,\n} from './callback-events';\nimport { collectToolApprovals } from './collect-tool-approvals';\nimport type { ContentPart } from './content-part';\nimport { executeToolCall } from './execute-tool-call';\nimport { extractReasoningContent } from './extract-reasoning-content';\nimport { extractTextContent } from './extract-text-content';\nimport type { GenerateTextResult } from './generate-text-result';\nimport { DefaultGeneratedFile } from './generated-file';\nimport { isApprovalNeeded } from './is-approval-needed';\nimport { text, type Output } from './output';\nimport type { InferCompleteOutput } from './output-utils';\nimport { parseToolCall } from './parse-tool-call';\nimport type { PrepareStepFunction } from './prepare-step';\nimport type { ResponseMessage } from './response-message';\nimport { DefaultStepResult, type StepResult } from './step-result';\nimport {\n isStopConditionMet,\n stepCountIs,\n type StopCondition,\n} from './stop-condition';\nimport { toResponseMessages } from './to-response-messages';\nimport type { ToolApprovalRequestOutput } from './tool-approval-request-output';\nimport type { TypedToolCall } from './tool-call';\nimport type { ToolCallRepairFunction } from './tool-call-repair-function';\nimport type { TypedToolError } from './tool-error';\nimport type { ToolOutput } from './tool-output';\nimport type { TypedToolResult } from './tool-result';\nimport type { ToolSet } from './tool-set';\nimport { mergeAbortSignals } from '../util/merge-abort-signals';\n\nconst originalGenerateId = createIdGenerator({\n prefix: 'aitxt',\n size: 24,\n});\n\n/**\n * Include settings for generateText (requestBody and responseBody).\n */\ntype GenerateTextIncludeSettings = {\n requestBody?: boolean;\n responseBody?: boolean;\n};\n\n/**\n * Callback that is set using the `experimental_onStart` option.\n *\n * Called when the generateText operation begins, before any LLM calls.\n * Use this callback for logging, analytics, or initializing state at the\n * start of a generation.\n *\n * @param event - The event object containing generation configuration.\n */\nexport type GenerateTextOnStartCallback<\n TOOLS extends ToolSet = ToolSet,\n OUTPUT extends Output = Output,\n> = (\n event: OnStartEvent,\n) => PromiseLike | void;\n\n/**\n * Callback that is set using the `experimental_onStepStart` option.\n *\n * Called when a step (LLM call) begins, before the provider is called.\n * Each step represents a single LLM invocation. Multiple steps occur when\n * using tool calls (the model may be called multiple times in a loop).\n *\n * @param event - The event object containing step configuration.\n */\nexport type GenerateTextOnStepStartCallback<\n TOOLS extends ToolSet = ToolSet,\n OUTPUT extends Output = Output,\n> = (\n event: OnStepStartEvent,\n) => PromiseLike | void;\n\n/**\n * Callback that is set using the `experimental_onToolCallStart` option.\n *\n * Called when a tool execution begins, before the tool's `execute` function is invoked.\n * Use this for logging tool invocations, tracking tool usage, or pre-execution validation.\n *\n * @param event - The event object containing tool call information.\n */\nexport type GenerateTextOnToolCallStartCallback<\n TOOLS extends ToolSet = ToolSet,\n> = (event: OnToolCallStartEvent) => PromiseLike | void;\n\n/**\n * Callback that is set using the `experimental_onToolCallFinish` option.\n *\n * Called when a tool execution completes, either successfully or with an error.\n * Use this for logging tool results, tracking execution time, or error handling.\n *\n * The event uses a discriminated union on the `success` field:\n * - When `success: true`: `output` contains the tool result, `error` is never present.\n * - When `success: false`: `error` contains the error, `output` is never present.\n *\n * @param event - The event object containing tool call result information.\n */\nexport type GenerateTextOnToolCallFinishCallback<\n TOOLS extends ToolSet = ToolSet,\n> = (event: OnToolCallFinishEvent) => PromiseLike | void;\n\n/**\n * Callback that is set using the `onStepFinish` option.\n *\n * Called when a step (LLM call) completes. The event includes all step result\n * properties (text, tool calls, usage, etc.) along with additional metadata.\n *\n * @param stepResult - The result of the step.\n */\nexport type GenerateTextOnStepFinishCallback = (\n event: OnStepFinishEvent,\n) => Promise | void;\n\n/**\n * Callback that is set using the `onFinish` option.\n *\n * Called when the entire generation completes (all steps finished).\n * The event includes the final step's result properties along with\n * aggregated data from all steps.\n *\n * @param event - The final result along with aggregated step data.\n */\nexport type GenerateTextOnFinishCallback = (\n event: OnFinishEvent,\n) => PromiseLike | void;\n\n/**\n * Generate a text and call tools for a given prompt using a language model.\n *\n * This function does not stream the output. If you want to stream the output, use `streamText` instead.\n *\n * @param model - The language model to use.\n *\n * @param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n * @param toolChoice - The tool choice strategy. Default: 'auto'.\n *\n * @param system - A system message that will be part of the prompt.\n * @param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n * @param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n * @param allowSystemInMessages - Whether system messages are allowed in the `prompt` or `messages` fields. When unset, system messages are allowed with a warning.\n *\n * @param maxOutputTokens - Maximum number of tokens to generate.\n * @param temperature - Temperature setting.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topP - Nucleus sampling.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topK - Only sample from the top K options for each subsequent token.\n * Used to remove \"long tail\" low probability responses.\n * Recommended for advanced use cases only. You usually only need to use temperature.\n * @param presencePenalty - Presence penalty setting.\n * It affects the likelihood of the model to repeat information that is already in the prompt.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param frequencyPenalty - Frequency penalty setting.\n * It affects the likelihood of the model to repeatedly use the same words or phrases.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param stopSequences - Stop sequences.\n * If set, the model will stop generating text when one of the stop sequences is generated.\n * @param seed - The seed (integer) to use for random sampling.\n * If set and supported by the model, calls will generate deterministic results.\n *\n * @param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n * @param abortSignal - An optional abort signal that can be used to cancel the call.\n * @param timeout - An optional timeout in milliseconds. The call will be aborted if it takes longer than the specified timeout.\n * @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n *\n * @param experimental_context - User-defined context object that flows through the entire generation lifecycle.\n * @param experimental_onStart - Callback invoked when generation begins, before any LLM calls.\n * @param experimental_onStepStart - Callback invoked when each step begins, before the provider is called.\n * Receives step number, messages (in ModelMessage format), tools, and context.\n * @param experimental_onToolCallStart - Callback invoked before each tool execution begins.\n * Receives tool name, call ID, input, and context.\n * @param experimental_onToolCallFinish - Callback invoked after each tool execution completes.\n * Uses a discriminated union: check `success` to determine if `output` or `error` is present.\n * @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.\n * @param onFinish - Callback that is called when all steps are finished and the response is complete.\n *\n * @returns\n * A result object that contains the generated text, the results of the tool calls, and additional information.\n */\nexport async function generateText<\n TOOLS extends ToolSet,\n OUTPUT extends Output = Output,\n>({\n model: modelArg,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries: maxRetriesArg,\n abortSignal,\n timeout,\n headers,\n stopWhen = stepCountIs(1),\n experimental_output,\n output = experimental_output,\n experimental_telemetry: telemetry,\n providerOptions,\n experimental_activeTools,\n activeTools = experimental_activeTools,\n experimental_prepareStep,\n prepareStep = experimental_prepareStep,\n experimental_repairToolCall: repairToolCall,\n experimental_download: download,\n experimental_context,\n experimental_include: include,\n _internal: { generateId = originalGenerateId } = {},\n experimental_onStart: onStart,\n experimental_onStepStart: onStepStart,\n experimental_onToolCallStart: onToolCallStart,\n experimental_onToolCallFinish: onToolCallFinish,\n onStepFinish,\n onFinish,\n ...settings\n}: CallSettings &\n Prompt & {\n /**\n * The language model to use.\n */\n model: LanguageModel;\n\n /**\n * The tools that the model can call. The model needs to support calling tools.\n */\n tools?: TOOLS;\n\n /**\n * The tool choice strategy. Default: 'auto'.\n */\n toolChoice?: ToolChoice>;\n\n /**\n * Condition for stopping the generation when there are tool results in the last step.\n * When the condition is an array, any of the conditions can be met to stop the generation.\n *\n * @default stepCountIs(1)\n */\n stopWhen?:\n | StopCondition>\n | Array>>;\n\n /**\n * Optional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\n * Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * @deprecated Use `activeTools` instead.\n */\n experimental_activeTools?: Array>;\n\n /**\n * Limits the tools that are available for the model to call without\n * changing the tool call and result types in the result.\n */\n activeTools?: Array>;\n\n /**\n * Optional specification for parsing structured outputs from the LLM response.\n */\n output?: OUTPUT;\n\n /**\n * Optional specification for parsing structured outputs from the LLM response.\n *\n * @deprecated Use `output` instead.\n */\n experimental_output?: OUTPUT;\n\n /**\n * Custom download function to use for URLs.\n *\n * By default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\n * @deprecated Use `prepareStep` instead.\n */\n experimental_prepareStep?: PrepareStepFunction>;\n\n /**\n * Optional function that you can use to provide different settings for a step.\n */\n prepareStep?: PrepareStepFunction>;\n\n /**\n * A function that attempts to repair a tool call that failed to parse.\n */\n experimental_repairToolCall?: ToolCallRepairFunction>;\n\n /**\n * Callback that is called when the generateText operation begins,\n * before any LLM calls are made.\n */\n experimental_onStart?: GenerateTextOnStartCallback, OUTPUT>;\n\n /**\n * Callback that is called when a step (LLM call) begins,\n * before the provider is called.\n */\n experimental_onStepStart?: GenerateTextOnStepStartCallback<\n NoInfer,\n OUTPUT\n >;\n\n /**\n * Callback that is called right before a tool's execute function runs.\n */\n experimental_onToolCallStart?: GenerateTextOnToolCallStartCallback<\n NoInfer\n >;\n\n /**\n * Callback that is called right after a tool's execute function completes (or errors).\n */\n experimental_onToolCallFinish?: GenerateTextOnToolCallFinishCallback<\n NoInfer\n >;\n\n /**\n * Callback that is called when each step (LLM call) is finished, including intermediate steps.\n */\n onStepFinish?: GenerateTextOnStepFinishCallback>;\n\n /**\n * Callback that is called when all steps are finished and the response is complete.\n */\n onFinish?: GenerateTextOnFinishCallback>;\n\n /**\n * Context that is passed into tool execution.\n *\n * Experimental (can break in patch releases).\n *\n * @default undefined\n */\n experimental_context?: unknown;\n\n /**\n * Settings for controlling what data is included in step results.\n * Disabling inclusion can help reduce memory usage when processing\n * large payloads like images.\n *\n * By default, all data is included for backwards compatibility.\n */\n experimental_include?: {\n /**\n * Whether to retain the request body in step results.\n * The request body can be large when sending images or files.\n * @default true\n */\n requestBody?: boolean;\n\n /**\n * Whether to retain the response body in step results.\n * @default true\n */\n responseBody?: boolean;\n };\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: IdGenerator;\n };\n }): Promise> {\n const model = resolveLanguageModel(modelArg);\n const createGlobalTelemetry = getGlobalTelemetryIntegration();\n const stopConditions = asArray(stopWhen);\n\n const totalTimeoutMs = getTotalTimeoutMs(timeout);\n const stepTimeoutMs = getStepTimeoutMs(timeout);\n const stepAbortController =\n stepTimeoutMs != null ? new AbortController() : undefined;\n const mergedAbortSignal = mergeAbortSignals(\n abortSignal,\n totalTimeoutMs != null ? AbortSignal.timeout(totalTimeoutMs) : undefined,\n stepAbortController?.signal,\n );\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal: mergedAbortSignal,\n });\n\n const callSettings = prepareCallSettings(settings);\n\n const headersWithUserAgent = withUserAgentSuffix(\n headers ?? {},\n `ai/${VERSION}`,\n );\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { ...callSettings, maxRetries },\n });\n\n const modelInfo = { provider: model.provider, modelId: model.modelId };\n\n const initialPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n const globalTelemetry = createGlobalTelemetry(telemetry?.integrations);\n\n await notify({\n event: {\n model: modelInfo,\n system,\n prompt,\n messages,\n tools,\n toolChoice,\n activeTools,\n maxOutputTokens: callSettings.maxOutputTokens,\n temperature: callSettings.temperature,\n topP: callSettings.topP,\n topK: callSettings.topK,\n presencePenalty: callSettings.presencePenalty,\n frequencyPenalty: callSettings.frequencyPenalty,\n stopSequences: callSettings.stopSequences,\n seed: callSettings.seed,\n maxRetries,\n timeout,\n headers,\n providerOptions,\n stopWhen,\n output,\n abortSignal,\n include,\n functionId: telemetry?.functionId,\n metadata: telemetry?.metadata as Record | undefined,\n experimental_context,\n },\n callbacks: [\n onStart,\n globalTelemetry.onStart as\n | undefined\n | GenerateTextOnStartCallback,\n ],\n });\n\n const tracer = getTracer(telemetry);\n\n try {\n return await recordSpan({\n name: 'ai.generateText',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateText',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': model.provider,\n 'ai.model.id': model.modelId,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n },\n }),\n tracer,\n fn: async span => {\n const initialMessages = initialPrompt.messages;\n const responseMessages: Array = [];\n\n const { approvedToolApprovals, deniedToolApprovals } =\n collectToolApprovals({ messages: initialMessages });\n\n const localApprovedToolApprovals = approvedToolApprovals.filter(\n toolApproval => !toolApproval.toolCall.providerExecuted,\n );\n\n if (\n deniedToolApprovals.length > 0 ||\n localApprovedToolApprovals.length > 0\n ) {\n const toolOutputs = await executeTools({\n toolCalls: localApprovedToolApprovals.map(\n toolApproval => toolApproval.toolCall,\n ),\n tools: tools as TOOLS,\n tracer,\n telemetry,\n messages: initialMessages,\n abortSignal: mergedAbortSignal,\n experimental_context,\n stepNumber: 0,\n model: modelInfo,\n onToolCallStart: [\n onToolCallStart,\n globalTelemetry.onToolCallStart as\n | undefined\n | GenerateTextOnToolCallStartCallback,\n ],\n onToolCallFinish: [\n onToolCallFinish,\n globalTelemetry.onToolCallFinish as\n | undefined\n | GenerateTextOnToolCallFinishCallback,\n ],\n });\n\n const toolContent: Array = [];\n\n // add regular tool results for approved tool calls:\n for (const output of toolOutputs) {\n const modelOutput = await createToolModelOutput({\n toolCallId: output.toolCallId,\n input: output.input,\n tool: tools?.[output.toolName],\n output:\n output.type === 'tool-result' ? output.output : output.error,\n errorMode: output.type === 'tool-error' ? 'text' : 'none',\n });\n\n toolContent.push({\n type: 'tool-result' as const,\n toolCallId: output.toolCallId,\n toolName: output.toolName,\n output: modelOutput,\n });\n }\n\n // add execution denied tool results for all denied tool approvals:\n for (const toolApproval of deniedToolApprovals) {\n toolContent.push({\n type: 'tool-result' as const,\n toolCallId: toolApproval.toolCall.toolCallId,\n toolName: toolApproval.toolCall.toolName,\n output: {\n type: 'execution-denied' as const,\n reason: toolApproval.approvalResponse.reason,\n // For provider-executed tools, include approvalId so provider can correlate\n ...(toolApproval.toolCall.providerExecuted && {\n providerOptions: {\n openai: {\n approvalId: toolApproval.approvalResponse.approvalId,\n },\n },\n }),\n },\n });\n }\n\n responseMessages.push({\n role: 'tool',\n content: toolContent,\n });\n }\n\n const callSettings = prepareCallSettings(settings);\n\n let currentModelResponse: Awaited<\n ReturnType\n > & { response: { id: string; timestamp: Date; modelId: string } };\n let clientToolCalls: Array> = [];\n let clientToolOutputs: Array> = [];\n const steps: GenerateTextResult['steps'] = [];\n\n // Track provider-executed tool calls that support deferred results\n // (e.g., code_execution in programmatic tool calling scenarios).\n // These tools may not return their results in the same turn as their call.\n const pendingDeferredToolCalls = new Map<\n string,\n { toolName: string }\n >();\n\n do {\n // Set up step timeout if configured\n const stepTimeoutId =\n stepTimeoutMs != null\n ? setTimeout(() => stepAbortController!.abort(), stepTimeoutMs)\n : undefined;\n\n try {\n const stepInputMessages = [...initialMessages, ...responseMessages];\n\n const prepareStepResult = await prepareStep?.({\n model,\n steps,\n stepNumber: steps.length,\n messages: stepInputMessages,\n experimental_context,\n });\n\n const stepModel = resolveLanguageModel(\n prepareStepResult?.model ?? model,\n );\n const stepModelInfo = {\n provider: stepModel.provider,\n modelId: stepModel.modelId,\n };\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n system: prepareStepResult?.system ?? initialPrompt.system,\n messages: prepareStepResult?.messages ?? stepInputMessages,\n },\n supportedUrls: await stepModel.supportedUrls,\n download,\n });\n\n experimental_context =\n prepareStepResult?.experimental_context ?? experimental_context;\n\n const stepActiveTools =\n prepareStepResult?.activeTools ?? activeTools;\n\n const { toolChoice: stepToolChoice, tools: stepTools } =\n await prepareToolsAndToolChoice({\n tools,\n toolChoice: prepareStepResult?.toolChoice ?? toolChoice,\n activeTools: stepActiveTools,\n });\n\n const stepMessages =\n prepareStepResult?.messages ?? stepInputMessages;\n\n const stepSystem =\n prepareStepResult?.system ?? initialPrompt.system;\n\n const stepProviderOptions = mergeObjects(\n providerOptions,\n prepareStepResult?.providerOptions,\n );\n\n await notify({\n event: {\n stepNumber: steps.length,\n model: stepModelInfo,\n system: stepSystem,\n messages: stepMessages,\n tools,\n toolChoice: stepToolChoice,\n activeTools: stepActiveTools,\n steps: [...steps],\n providerOptions: stepProviderOptions,\n timeout,\n headers,\n stopWhen,\n output,\n abortSignal,\n include,\n functionId: telemetry?.functionId,\n metadata: telemetry?.metadata as\n | Record\n | undefined,\n experimental_context,\n },\n callbacks: [\n onStepStart,\n globalTelemetry.onStepStart as\n | undefined\n | GenerateTextOnStepStartCallback,\n ],\n });\n\n currentModelResponse = await retry(() =>\n recordSpan({\n name: 'ai.generateText.doGenerate',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateText.doGenerate',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': stepModel.provider,\n 'ai.model.id': stepModel.modelId,\n // prompt:\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n 'ai.prompt.tools': {\n // convert the language model level tools:\n input: () => stepTools?.map(tool => JSON.stringify(tool)),\n },\n 'ai.prompt.toolChoice': {\n input: () =>\n stepToolChoice != null\n ? JSON.stringify(stepToolChoice)\n : undefined,\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': stepModel.provider,\n 'gen_ai.request.model': stepModel.modelId,\n 'gen_ai.request.frequency_penalty':\n settings.frequencyPenalty,\n 'gen_ai.request.max_tokens': settings.maxOutputTokens,\n 'gen_ai.request.presence_penalty': settings.presencePenalty,\n 'gen_ai.request.stop_sequences': settings.stopSequences,\n 'gen_ai.request.temperature':\n settings.temperature ?? undefined,\n 'gen_ai.request.top_k': settings.topK,\n 'gen_ai.request.top_p': settings.topP,\n },\n }),\n tracer,\n fn: async span => {\n const result = await stepModel.doGenerate({\n ...callSettings,\n tools: stepTools,\n toolChoice: stepToolChoice,\n responseFormat: await output?.responseFormat,\n prompt: promptMessages,\n providerOptions: stepProviderOptions,\n abortSignal: mergedAbortSignal,\n headers: headersWithUserAgent,\n });\n\n // Fill in default values:\n const responseData = {\n id: result.response?.id ?? generateId(),\n timestamp: result.response?.timestamp ?? new Date(),\n modelId: result.response?.modelId ?? stepModel.modelId,\n headers: result.response?.headers,\n body: result.response?.body,\n };\n const usage = asLanguageModelUsage(result.usage);\n\n // Add response information to the span:\n span.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': result.finishReason.unified,\n 'ai.response.text': {\n output: () => extractTextContent(result.content),\n },\n 'ai.response.reasoning': {\n output: () => extractReasoningContent(result.content),\n },\n 'ai.response.toolCalls': {\n output: () => {\n const toolCalls = asToolCalls(result.content);\n return toolCalls == null\n ? undefined\n : JSON.stringify(toolCalls);\n },\n },\n 'ai.response.id': responseData.id,\n 'ai.response.model': responseData.modelId,\n 'ai.response.timestamp':\n responseData.timestamp.toISOString(),\n 'ai.response.providerMetadata': JSON.stringify(\n result.providerMetadata,\n ),\n\n 'ai.usage.inputTokens': result.usage.inputTokens.total,\n 'ai.usage.inputTokenDetails.noCacheTokens':\n result.usage.inputTokens.noCache,\n 'ai.usage.inputTokenDetails.cacheReadTokens':\n result.usage.inputTokens.cacheRead,\n 'ai.usage.inputTokenDetails.cacheWriteTokens':\n result.usage.inputTokens.cacheWrite,\n 'ai.usage.outputTokens':\n result.usage.outputTokens.total,\n 'ai.usage.outputTokenDetails.textTokens':\n result.usage.outputTokens.text,\n 'ai.usage.outputTokenDetails.reasoningTokens':\n result.usage.outputTokens.reasoning,\n 'ai.usage.totalTokens': usage.totalTokens,\n 'ai.usage.reasoningTokens':\n result.usage.outputTokens.reasoning,\n 'ai.usage.cachedInputTokens':\n result.usage.inputTokens.cacheRead,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [\n result.finishReason.unified,\n ],\n 'gen_ai.response.id': responseData.id,\n 'gen_ai.response.model': responseData.modelId,\n 'gen_ai.usage.input_tokens':\n result.usage.inputTokens.total,\n 'gen_ai.usage.output_tokens':\n result.usage.outputTokens.total,\n },\n }),\n );\n\n return { ...result, response: responseData };\n },\n }),\n );\n\n // parse tool calls:\n const stepToolCalls: TypedToolCall[] = await Promise.all(\n currentModelResponse.content\n .filter(\n (part): part is LanguageModelV3ToolCall =>\n part.type === 'tool-call',\n )\n .map(toolCall =>\n parseToolCall({\n toolCall,\n tools,\n repairToolCall,\n system,\n messages: stepInputMessages,\n }),\n ),\n );\n const toolApprovalRequests: Record<\n string,\n ToolApprovalRequestOutput\n > = {};\n\n // notify the tools that the tool calls are available:\n for (const toolCall of stepToolCalls) {\n if (toolCall.invalid) {\n continue; // ignore invalid tool calls\n }\n\n const tool = tools?.[toolCall.toolName];\n\n if (tool == null) {\n // ignore tool calls for tools that are not available,\n // e.g. provider-executed dynamic tools\n continue;\n }\n\n if (tool?.onInputAvailable != null) {\n await tool.onInputAvailable({\n input: toolCall.input,\n toolCallId: toolCall.toolCallId,\n messages: stepInputMessages,\n abortSignal: mergedAbortSignal,\n experimental_context,\n });\n }\n\n if (\n await isApprovalNeeded({\n tool,\n toolCall,\n messages: stepInputMessages,\n experimental_context,\n })\n ) {\n toolApprovalRequests[toolCall.toolCallId] = {\n type: 'tool-approval-request',\n approvalId: generateId(),\n toolCall,\n };\n }\n }\n\n // insert error tool outputs for invalid tool calls:\n // TODO AI SDK 6: invalid inputs should not require output parts\n const invalidToolCalls = stepToolCalls.filter(\n toolCall => toolCall.invalid && toolCall.dynamic,\n );\n\n clientToolOutputs = [];\n\n for (const toolCall of invalidToolCalls) {\n clientToolOutputs.push({\n type: 'tool-error',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n error: getErrorMessage(toolCall.error!),\n dynamic: true,\n });\n }\n\n // execute client tool calls:\n clientToolCalls = stepToolCalls.filter(\n toolCall => !toolCall.providerExecuted,\n );\n\n if (tools != null) {\n clientToolOutputs.push(\n ...(await executeTools({\n toolCalls: clientToolCalls.filter(\n toolCall =>\n !toolCall.invalid &&\n toolApprovalRequests[toolCall.toolCallId] == null,\n ),\n tools,\n tracer,\n telemetry,\n messages: stepInputMessages,\n abortSignal: mergedAbortSignal,\n experimental_context,\n stepNumber: steps.length,\n model: stepModelInfo,\n onToolCallStart: [\n onToolCallStart,\n globalTelemetry.onToolCallStart as\n | undefined\n | GenerateTextOnToolCallStartCallback,\n ],\n onToolCallFinish: [\n onToolCallFinish,\n globalTelemetry.onToolCallFinish,\n ],\n })),\n );\n }\n\n // Track provider-executed tool calls that support deferred results.\n // In programmatic tool calling, a server tool (e.g., code_execution) may\n // trigger a client tool, and the server tool's result is deferred until\n // the client tool's result is sent back.\n for (const toolCall of stepToolCalls) {\n if (!toolCall.providerExecuted) continue;\n const tool = tools?.[toolCall.toolName];\n if (tool?.type === 'provider' && tool.supportsDeferredResults) {\n // Check if this tool call already has a result in the current response\n const hasResultInResponse = currentModelResponse.content.some(\n part =>\n part.type === 'tool-result' &&\n part.toolCallId === toolCall.toolCallId,\n );\n if (!hasResultInResponse) {\n pendingDeferredToolCalls.set(toolCall.toolCallId, {\n toolName: toolCall.toolName,\n });\n }\n }\n }\n\n // Mark deferred tool calls as resolved when we receive their results\n for (const part of currentModelResponse.content) {\n if (part.type === 'tool-result') {\n pendingDeferredToolCalls.delete(part.toolCallId);\n }\n }\n\n // content:\n const stepContent = asContent({\n content: currentModelResponse.content,\n toolCalls: stepToolCalls,\n toolOutputs: clientToolOutputs,\n toolApprovalRequests: Object.values(toolApprovalRequests),\n tools,\n });\n\n // append to messages for potential next step:\n responseMessages.push(\n ...(await toResponseMessages({\n content: stepContent,\n tools,\n })),\n );\n\n // Add step information (after response messages are updated):\n // Conditionally include request.body and response.body based on include settings.\n // Large payloads (e.g., base64-encoded images) can cause memory issues.\n const stepRequest: LanguageModelRequestMetadata =\n (include?.requestBody ?? true)\n ? (currentModelResponse.request ?? {})\n : { ...currentModelResponse.request, body: undefined };\n\n const stepResponse = {\n ...currentModelResponse.response,\n // deep clone msgs to avoid mutating past messages in multi-step:\n messages: structuredClone(responseMessages),\n // Conditionally include response body:\n body:\n (include?.responseBody ?? true)\n ? currentModelResponse.response?.body\n : undefined,\n };\n\n const stepNumber = steps.length;\n\n const currentStepResult: StepResult = new DefaultStepResult({\n stepNumber,\n model: stepModelInfo,\n functionId: telemetry?.functionId,\n metadata: telemetry?.metadata as\n | Record\n | undefined,\n experimental_context,\n content: stepContent,\n finishReason: currentModelResponse.finishReason.unified,\n rawFinishReason: currentModelResponse.finishReason.raw,\n usage: asLanguageModelUsage(currentModelResponse.usage),\n warnings: currentModelResponse.warnings,\n providerMetadata: currentModelResponse.providerMetadata,\n request: stepRequest,\n response: stepResponse,\n });\n\n logWarnings({\n warnings: currentModelResponse.warnings ?? [],\n provider: stepModelInfo.provider,\n model: stepModelInfo.modelId,\n });\n\n steps.push(currentStepResult);\n\n await notify({\n event: currentStepResult,\n callbacks: [onStepFinish, globalTelemetry.onStepFinish],\n });\n } finally {\n if (stepTimeoutId != null) {\n clearTimeout(stepTimeoutId);\n }\n }\n } while (\n // Continue if:\n // 1. There are client tool calls that have all been executed, OR\n // 2. There are pending deferred results from provider-executed tools\n ((clientToolCalls.length > 0 &&\n clientToolOutputs.length === clientToolCalls.length) ||\n pendingDeferredToolCalls.size > 0) &&\n // continue until a stop condition is met:\n !(await isStopConditionMet({ stopConditions, steps }))\n );\n\n // Add response information to the span:\n span.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason':\n currentModelResponse.finishReason.unified,\n 'ai.response.text': {\n output: () => extractTextContent(currentModelResponse.content),\n },\n 'ai.response.reasoning': {\n output: () =>\n extractReasoningContent(currentModelResponse.content),\n },\n 'ai.response.toolCalls': {\n output: () => {\n const toolCalls = asToolCalls(currentModelResponse.content);\n return toolCalls == null\n ? undefined\n : JSON.stringify(toolCalls);\n },\n },\n 'ai.response.providerMetadata': JSON.stringify(\n currentModelResponse.providerMetadata,\n ),\n },\n }),\n );\n\n const lastStep = steps[steps.length - 1];\n\n const totalUsage = steps.reduce(\n (totalUsage, step) => {\n return addLanguageModelUsage(totalUsage, step.usage);\n },\n {\n inputTokens: undefined,\n outputTokens: undefined,\n totalTokens: undefined,\n reasoningTokens: undefined,\n cachedInputTokens: undefined,\n } as LanguageModelUsage,\n );\n\n span.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.usage.inputTokens': totalUsage.inputTokens,\n 'ai.usage.inputTokenDetails.noCacheTokens':\n totalUsage.inputTokenDetails?.noCacheTokens,\n 'ai.usage.inputTokenDetails.cacheReadTokens':\n totalUsage.inputTokenDetails?.cacheReadTokens,\n 'ai.usage.inputTokenDetails.cacheWriteTokens':\n totalUsage.inputTokenDetails?.cacheWriteTokens,\n 'ai.usage.outputTokens': totalUsage.outputTokens,\n 'ai.usage.outputTokenDetails.textTokens':\n totalUsage.outputTokenDetails?.textTokens,\n 'ai.usage.outputTokenDetails.reasoningTokens':\n totalUsage.outputTokenDetails?.reasoningTokens,\n 'ai.usage.totalTokens': totalUsage.totalTokens,\n 'ai.usage.reasoningTokens':\n totalUsage.outputTokenDetails?.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n totalUsage.inputTokenDetails?.cacheReadTokens,\n },\n }),\n );\n\n await notify({\n event: {\n stepNumber: lastStep.stepNumber,\n model: lastStep.model,\n functionId: lastStep.functionId,\n metadata: lastStep.metadata,\n experimental_context: lastStep.experimental_context,\n finishReason: lastStep.finishReason,\n rawFinishReason: lastStep.rawFinishReason,\n usage: lastStep.usage,\n content: lastStep.content,\n text: lastStep.text,\n reasoningText: lastStep.reasoningText,\n reasoning: lastStep.reasoning,\n files: lastStep.files,\n sources: lastStep.sources,\n toolCalls: lastStep.toolCalls,\n staticToolCalls: lastStep.staticToolCalls,\n dynamicToolCalls: lastStep.dynamicToolCalls,\n toolResults: lastStep.toolResults,\n staticToolResults: lastStep.staticToolResults,\n dynamicToolResults: lastStep.dynamicToolResults,\n request: lastStep.request,\n response: lastStep.response,\n warnings: lastStep.warnings,\n providerMetadata: lastStep.providerMetadata,\n steps,\n totalUsage,\n },\n callbacks: [\n onFinish,\n globalTelemetry.onFinish as\n | undefined\n | GenerateTextOnFinishCallback,\n ],\n });\n\n // parse output only if the last step was finished with \"stop\":\n let resolvedOutput;\n if (lastStep.finishReason === 'stop') {\n const outputSpecification = output ?? text();\n resolvedOutput = await outputSpecification.parseCompleteOutput(\n { text: lastStep.text },\n {\n response: lastStep.response,\n usage: lastStep.usage,\n finishReason: lastStep.finishReason,\n },\n );\n }\n\n return new DefaultGenerateTextResult({\n steps,\n totalUsage,\n output: resolvedOutput,\n });\n },\n });\n } catch (error) {\n throw wrapGatewayError(error);\n }\n}\n\nasync function executeTools({\n toolCalls,\n tools,\n tracer,\n telemetry,\n messages,\n abortSignal,\n experimental_context,\n stepNumber,\n model,\n onToolCallStart,\n onToolCallFinish,\n}: {\n toolCalls: Array>;\n tools: TOOLS;\n tracer: Tracer;\n telemetry: TelemetrySettings | undefined;\n messages: ModelMessage[];\n abortSignal: AbortSignal | undefined;\n experimental_context: unknown;\n stepNumber: number;\n model: { provider: string; modelId: string };\n onToolCallStart:\n | GenerateTextOnToolCallStartCallback\n | Array | undefined | null>\n | undefined;\n onToolCallFinish:\n | GenerateTextOnToolCallFinishCallback\n | Array | undefined | null>\n | undefined;\n}): Promise>> {\n const toolOutputs = await Promise.all(\n toolCalls.map(async toolCall =>\n executeToolCall({\n toolCall,\n tools,\n tracer,\n telemetry,\n messages,\n abortSignal,\n experimental_context,\n stepNumber,\n model,\n onToolCallStart,\n onToolCallFinish,\n }),\n ),\n );\n\n return toolOutputs.filter(\n (output): output is NonNullable => output != null,\n );\n}\n\nclass DefaultGenerateTextResult<\n TOOLS extends ToolSet,\n OUTPUT extends Output,\n> implements GenerateTextResult {\n readonly steps: GenerateTextResult['steps'];\n readonly totalUsage: LanguageModelUsage;\n private readonly _output: InferCompleteOutput | undefined;\n\n constructor(options: {\n steps: GenerateTextResult['steps'];\n output: InferCompleteOutput | undefined;\n totalUsage: LanguageModelUsage;\n }) {\n this.steps = options.steps;\n this._output = options.output;\n this.totalUsage = options.totalUsage;\n }\n\n private get finalStep() {\n return this.steps[this.steps.length - 1];\n }\n\n get content() {\n return this.finalStep.content;\n }\n\n get text() {\n return this.finalStep.text;\n }\n\n get files() {\n return this.finalStep.files;\n }\n\n get reasoningText() {\n return this.finalStep.reasoningText;\n }\n\n get reasoning() {\n return this.finalStep.reasoning;\n }\n\n get toolCalls() {\n return this.finalStep.toolCalls;\n }\n\n get staticToolCalls() {\n return this.finalStep.staticToolCalls;\n }\n\n get dynamicToolCalls() {\n return this.finalStep.dynamicToolCalls;\n }\n\n get toolResults() {\n return this.finalStep.toolResults;\n }\n\n get staticToolResults() {\n return this.finalStep.staticToolResults;\n }\n\n get dynamicToolResults() {\n return this.finalStep.dynamicToolResults;\n }\n\n get sources() {\n return this.finalStep.sources;\n }\n\n get finishReason() {\n return this.finalStep.finishReason;\n }\n\n get rawFinishReason() {\n return this.finalStep.rawFinishReason;\n }\n\n get warnings() {\n return this.finalStep.warnings;\n }\n\n get providerMetadata() {\n return this.finalStep.providerMetadata;\n }\n\n get response() {\n return this.finalStep.response;\n }\n\n get request() {\n return this.finalStep.request;\n }\n\n get usage() {\n return this.finalStep.usage;\n }\n\n get experimental_output() {\n return this.output;\n }\n\n get output() {\n if (this._output == null) {\n throw new NoOutputGeneratedError();\n }\n\n return this._output;\n }\n}\n\nfunction asToolCalls(content: Array) {\n const parts = content.filter(\n (part): part is LanguageModelV3ToolCall => part.type === 'tool-call',\n );\n\n if (parts.length === 0) {\n return undefined;\n }\n\n return parts.map(toolCall => ({\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n }));\n}\n\nfunction asContent({\n content,\n toolCalls,\n toolOutputs,\n toolApprovalRequests,\n tools,\n}: {\n content: Array;\n toolCalls: Array>;\n toolOutputs: Array>;\n toolApprovalRequests: Array>;\n tools: TOOLS | undefined;\n}): Array> {\n const contentParts: Array> = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text':\n case 'reasoning':\n case 'source':\n contentParts.push(part);\n break;\n\n case 'file': {\n contentParts.push({\n type: 'file' as const,\n file: new DefaultGeneratedFile(part),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'tool-call': {\n contentParts.push(\n toolCalls.find(toolCall => toolCall.toolCallId === part.toolCallId)!,\n );\n break;\n }\n\n case 'tool-result': {\n const toolCall = toolCalls.find(\n toolCall => toolCall.toolCallId === part.toolCallId,\n );\n\n // Handle deferred results for provider-executed tools (e.g., programmatic tool calling).\n // When a server tool (like code_execution) triggers a client tool, the server tool's\n // result may be deferred to a later turn. In this case, there's no matching tool-call\n // in the current response.\n if (toolCall == null) {\n const tool = tools?.[part.toolName];\n const supportsDeferredResults =\n tool?.type === 'provider' && tool.supportsDeferredResults;\n\n if (!supportsDeferredResults) {\n throw new Error(`Tool call ${part.toolCallId} not found.`);\n }\n\n // Create tool result without tool call input (deferred result)\n if (part.isError) {\n contentParts.push({\n type: 'tool-error' as const,\n toolCallId: part.toolCallId,\n toolName: part.toolName as keyof TOOLS & string,\n input: undefined,\n error: part.result,\n providerExecuted: true,\n dynamic: part.dynamic,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(tool?.metadata != null\n ? { toolMetadata: tool.metadata }\n : {}),\n } as TypedToolError);\n } else {\n contentParts.push({\n type: 'tool-result' as const,\n toolCallId: part.toolCallId,\n toolName: part.toolName as keyof TOOLS & string,\n input: undefined,\n output: part.result,\n providerExecuted: true,\n dynamic: part.dynamic,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(tool?.metadata != null\n ? { toolMetadata: tool.metadata }\n : {}),\n } as TypedToolResult);\n }\n break;\n }\n\n if (part.isError) {\n contentParts.push({\n type: 'tool-error' as const,\n toolCallId: part.toolCallId,\n toolName: part.toolName as keyof TOOLS & string,\n input: toolCall.input,\n error: part.result,\n providerExecuted: true,\n dynamic: toolCall.dynamic,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(toolCall.toolMetadata != null\n ? { toolMetadata: toolCall.toolMetadata }\n : {}),\n } as TypedToolError);\n } else {\n contentParts.push({\n type: 'tool-result' as const,\n toolCallId: part.toolCallId,\n toolName: part.toolName as keyof TOOLS & string,\n input: toolCall.input,\n output: part.result,\n providerExecuted: true,\n dynamic: toolCall.dynamic,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(toolCall.toolMetadata != null\n ? { toolMetadata: toolCall.toolMetadata }\n : {}),\n } as TypedToolResult);\n }\n break;\n }\n\n case 'tool-approval-request': {\n const toolCall = toolCalls.find(\n toolCall => toolCall.toolCallId === part.toolCallId,\n );\n\n if (toolCall == null) {\n throw new ToolCallNotFoundForApprovalError({\n toolCallId: part.toolCallId,\n approvalId: part.approvalId,\n });\n }\n\n contentParts.push({\n type: 'tool-approval-request' as const,\n approvalId: part.approvalId,\n toolCall,\n });\n break;\n }\n }\n }\n\n return [...contentParts, ...toolOutputs, ...toolApprovalRequests];\n}\n","import type { JSONObject } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\nimport {\n providerMetadataSchema,\n type ProviderMetadata,\n} from '../types/provider-metadata';\nimport { jsonValueSchema } from '../types/json-value';\nimport type { FinishReason } from '../types/language-model';\nimport type {\n InferUIMessageData,\n InferUIMessageMetadata,\n UIDataTypes,\n UIMessage,\n} from '../ui/ui-messages';\nimport type { ValueOf } from '../util/value-of';\nimport { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\n\nconst toolMetadataSchema: z.ZodType = z.record(\n z.string(),\n jsonValueSchema.optional(),\n);\n\nexport const uiMessageChunkSchema = lazySchema(() =>\n zodSchema(\n z.union([\n z.strictObject({\n type: z.literal('text-start'),\n id: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('text-delta'),\n id: z.string(),\n delta: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('text-end'),\n id: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('error'),\n errorText: z.string(),\n }),\n z.strictObject({\n type: z.literal('tool-input-start'),\n toolCallId: z.string(),\n toolName: z.string(),\n providerExecuted: z.boolean().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n toolMetadata: toolMetadataSchema.optional(),\n dynamic: z.boolean().optional(),\n title: z.string().optional(),\n }),\n z.strictObject({\n type: z.literal('tool-input-delta'),\n toolCallId: z.string(),\n inputTextDelta: z.string(),\n }),\n z.strictObject({\n type: z.literal('tool-input-available'),\n toolCallId: z.string(),\n toolName: z.string(),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n toolMetadata: toolMetadataSchema.optional(),\n dynamic: z.boolean().optional(),\n title: z.string().optional(),\n }),\n z.strictObject({\n type: z.literal('tool-input-error'),\n toolCallId: z.string(),\n toolName: z.string(),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n toolMetadata: toolMetadataSchema.optional(),\n dynamic: z.boolean().optional(),\n errorText: z.string(),\n title: z.string().optional(),\n }),\n z.strictObject({\n type: z.literal('tool-approval-request'),\n approvalId: z.string(),\n toolCallId: z.string(),\n }),\n z.strictObject({\n type: z.literal('tool-output-available'),\n toolCallId: z.string(),\n output: z.unknown(),\n providerExecuted: z.boolean().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n toolMetadata: toolMetadataSchema.optional(),\n dynamic: z.boolean().optional(),\n preliminary: z.boolean().optional(),\n }),\n z.strictObject({\n type: z.literal('tool-output-error'),\n toolCallId: z.string(),\n errorText: z.string(),\n providerExecuted: z.boolean().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n toolMetadata: toolMetadataSchema.optional(),\n dynamic: z.boolean().optional(),\n }),\n z.strictObject({\n type: z.literal('tool-output-denied'),\n toolCallId: z.string(),\n }),\n z.strictObject({\n type: z.literal('reasoning-start'),\n id: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('reasoning-delta'),\n id: z.string(),\n delta: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('reasoning-end'),\n id: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('source-url'),\n sourceId: z.string(),\n url: z.string(),\n title: z.string().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('source-document'),\n sourceId: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.literal('file'),\n url: z.string(),\n mediaType: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.strictObject({\n type: z.custom<`data-${string}`>(\n (value): value is `data-${string}` =>\n typeof value === 'string' && value.startsWith('data-'),\n { message: 'Type must start with \"data-\"' },\n ),\n id: z.string().optional(),\n data: z.unknown(),\n transient: z.boolean().optional(),\n }),\n z.strictObject({\n type: z.literal('start-step'),\n }),\n z.strictObject({\n type: z.literal('finish-step'),\n }),\n z.strictObject({\n type: z.literal('start'),\n messageId: z.string().optional(),\n messageMetadata: z.unknown().optional(),\n }),\n z.strictObject({\n type: z.literal('finish'),\n finishReason: z\n .enum([\n 'stop',\n 'length',\n 'content-filter',\n 'tool-calls',\n 'error',\n 'other',\n ] as const satisfies readonly FinishReason[])\n .optional(),\n messageMetadata: z.unknown().optional(),\n }),\n z.strictObject({\n type: z.literal('abort'),\n reason: z.string().optional(),\n }),\n z.strictObject({\n type: z.literal('message-metadata'),\n messageMetadata: z.unknown(),\n }),\n ]),\n ),\n);\n\nexport type DataUIMessageChunk = ValueOf<{\n [NAME in keyof DATA_TYPES & string]: {\n type: `data-${NAME}`;\n id?: string;\n data: DATA_TYPES[NAME];\n transient?: boolean;\n };\n}>;\n\nexport type UIMessageChunk<\n METADATA = unknown,\n DATA_TYPES extends UIDataTypes = UIDataTypes,\n> =\n | {\n type: 'text-start';\n id: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'text-delta';\n delta: string;\n id: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'text-end';\n id: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'reasoning-start';\n id: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'reasoning-delta';\n id: string;\n delta: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'reasoning-end';\n id: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'error';\n errorText: string;\n }\n | {\n type: 'tool-input-available';\n toolCallId: string;\n toolName: string;\n input: unknown;\n providerExecuted?: boolean;\n providerMetadata?: ProviderMetadata;\n toolMetadata?: JSONObject;\n dynamic?: boolean;\n title?: string;\n }\n | {\n type: 'tool-input-error';\n toolCallId: string;\n toolName: string;\n input: unknown;\n providerExecuted?: boolean;\n providerMetadata?: ProviderMetadata;\n toolMetadata?: JSONObject;\n dynamic?: boolean;\n errorText: string;\n title?: string;\n }\n | {\n type: 'tool-approval-request';\n approvalId: string;\n toolCallId: string;\n }\n | {\n type: 'tool-output-available';\n toolCallId: string;\n output: unknown;\n providerExecuted?: boolean;\n providerMetadata?: ProviderMetadata;\n toolMetadata?: JSONObject;\n dynamic?: boolean;\n preliminary?: boolean;\n }\n | {\n type: 'tool-output-error';\n toolCallId: string;\n errorText: string;\n providerExecuted?: boolean;\n providerMetadata?: ProviderMetadata;\n toolMetadata?: JSONObject;\n dynamic?: boolean;\n }\n | {\n type: 'tool-output-denied';\n toolCallId: string;\n }\n | {\n type: 'tool-input-start';\n toolCallId: string;\n toolName: string;\n providerExecuted?: boolean;\n providerMetadata?: ProviderMetadata;\n toolMetadata?: JSONObject;\n dynamic?: boolean;\n title?: string;\n }\n | {\n type: 'tool-input-delta';\n toolCallId: string;\n inputTextDelta: string;\n }\n | {\n type: 'source-url';\n sourceId: string;\n url: string;\n title?: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'source-document';\n sourceId: string;\n mediaType: string;\n title: string;\n filename?: string;\n providerMetadata?: ProviderMetadata;\n }\n | {\n type: 'file';\n url: string;\n mediaType: string;\n providerMetadata?: ProviderMetadata;\n }\n | DataUIMessageChunk\n | {\n type: 'start-step';\n }\n | {\n type: 'finish-step';\n }\n | {\n type: 'start';\n messageId?: string;\n messageMetadata?: METADATA;\n }\n | {\n type: 'finish';\n finishReason?: FinishReason;\n messageMetadata?: METADATA;\n }\n | {\n type: 'abort';\n reason?: string;\n }\n | {\n type: 'message-metadata';\n messageMetadata: METADATA;\n };\n\nexport function isDataUIMessageChunk(\n chunk: UIMessageChunk,\n): chunk is DataUIMessageChunk {\n return chunk.type.startsWith('data-');\n}\n\nexport type InferUIMessageChunk = UIMessageChunk<\n InferUIMessageMetadata,\n InferUIMessageData\n>;\n","import {\n getErrorMessage,\n UnsupportedFunctionalityError,\n type LanguageModelV3,\n type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n createIdGenerator,\n DelayedPromise,\n isAbortError,\n type IdGenerator,\n type ProviderOptions,\n type ToolContent,\n} from '@ai-sdk/provider-utils';\nimport type { Span } from '@opentelemetry/api';\nimport type { ServerResponse } from 'node:http';\nimport { NoOutputGeneratedError } from '../error';\nimport { notify } from '../util/notify';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport {\n getChunkTimeoutMs,\n getStepTimeoutMs,\n getTotalTimeoutMs,\n type CallSettings,\n type TimeoutConfiguration,\n} from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { createToolModelOutput } from '../prompt/create-tool-model-output';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport { prepareToolsAndToolChoice } from '../prompt/prepare-tools-and-tool-choice';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport { getGlobalTelemetryIntegration } from '../telemetry/get-global-telemetry-integration';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport { createTextStreamResponse } from '../text-stream/create-text-stream-response';\nimport { pipeTextStreamToResponse } from '../text-stream/pipe-text-stream-to-response';\nimport type { LanguageModelRequestMetadata } from '../types';\nimport type {\n CallWarning,\n FinishReason,\n LanguageModel,\n ToolChoice,\n} from '../types/language-model';\nimport type { ProviderMetadata } from '../types/provider-metadata';\nimport {\n addLanguageModelUsage,\n createNullLanguageModelUsage,\n type LanguageModelUsage,\n} from '../types/usage';\nimport type { UIMessage } from '../ui';\nimport { createUIMessageStreamResponse } from '../ui-message-stream/create-ui-message-stream-response';\nimport { getResponseUIMessageId } from '../ui-message-stream/get-response-ui-message-id';\nimport { handleUIMessageStreamFinish } from '../ui-message-stream/handle-ui-message-stream-finish';\nimport { pipeUIMessageStreamToResponse } from '../ui-message-stream/pipe-ui-message-stream-to-response';\nimport type {\n InferUIMessageChunk,\n UIMessageChunk,\n} from '../ui-message-stream/ui-message-chunks';\nimport type { UIMessageStreamResponseInit } from '../ui-message-stream/ui-message-stream-response-init';\nimport type {\n InferUIMessageData,\n InferUIMessageMetadata,\n} from '../ui/ui-messages';\nimport { asArray } from '../util/as-array';\nimport {\n createAsyncIterableStream,\n type AsyncIterableStream,\n} from '../util/async-iterable-stream';\nimport { consumeStream } from '../util/consume-stream';\nimport { createStitchableStream } from '../util/create-stitchable-stream';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { mergeAbortSignals } from '../util/merge-abort-signals';\nimport { mergeObjects } from '../util/merge-objects';\nimport { now as originalNow } from '../util/now';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { collectToolApprovals } from './collect-tool-approvals';\nimport type {\n OnFinishEvent,\n OnStartEvent,\n OnStepFinishEvent,\n OnStepStartEvent,\n OnToolCallFinishEvent,\n OnToolCallStartEvent,\n} from './callback-events';\nimport type { ContentPart } from './content-part';\nimport { executeToolCall } from './execute-tool-call';\nimport { text, type Output } from './output';\nimport type {\n InferCompleteOutput,\n InferElementOutput,\n InferPartialOutput,\n} from './output-utils';\nimport type { PrepareStepFunction } from './prepare-step';\nimport type { ResponseMessage } from './response-message';\nimport {\n runToolsTransformation,\n type SingleRequestTextStreamPart,\n} from './run-tools-transformation';\nimport { DefaultStepResult, type StepResult } from './step-result';\nimport {\n isStopConditionMet,\n stepCountIs,\n type StopCondition,\n} from './stop-condition';\nimport type {\n ConsumeStreamOptions,\n StreamTextResult,\n TextStreamPart,\n UIMessageStreamOptions,\n} from './stream-text-result';\nimport { toResponseMessages } from './to-response-messages';\nimport type { TypedToolCall } from './tool-call';\nimport type { ToolCallRepairFunction } from './tool-call-repair-function';\nimport type { ToolOutput } from './tool-output';\nimport type { StaticToolOutputDenied } from './tool-output-denied';\nimport type { ToolSet } from './tool-set';\n\nconst originalGenerateId = createIdGenerator({\n prefix: 'aitxt',\n size: 24,\n});\n\n/**\n * A transformation that is applied to the stream.\n *\n * @param stopStream - A function that stops the source stream.\n * @param tools - The tools that are accessible to and can be called by the model. The model needs to support calling tools.\n */\nexport type StreamTextTransform = (options: {\n tools: TOOLS; // for type inference\n stopStream: () => void;\n}) => TransformStream, TextStreamPart>;\n\n/**\n * Callback that is set using the `onError` option.\n *\n * @param event - The event that is passed to the callback.\n */\nexport type StreamTextOnErrorCallback = (event: {\n error: unknown;\n}) => PromiseLike | void;\n\n/**\n * Callback that is set using the `onStepFinish` option.\n *\n * @param stepResult - The result of the step.\n */\nexport type StreamTextOnStepFinishCallback = (\n event: OnStepFinishEvent,\n) => PromiseLike | void;\n\n/**\n * Callback that is set using the `onChunk` option.\n *\n * @param event - The event that is passed to the callback.\n */\nexport type StreamTextOnChunkCallback = (event: {\n chunk: Extract<\n TextStreamPart,\n {\n type:\n | 'text-delta'\n | 'reasoning-delta'\n | 'source'\n | 'tool-call'\n | 'tool-input-start'\n | 'tool-input-delta'\n | 'tool-result'\n | 'raw';\n }\n >;\n}) => PromiseLike | void;\n\n/**\n * Callback that is set using the `onFinish` option.\n *\n * @param event - The event that is passed to the callback.\n */\nexport type StreamTextOnFinishCallback = (\n event: OnFinishEvent,\n) => PromiseLike | void;\n\n/**\n * Callback that is set using the `onAbort` option.\n *\n * @param event - The event that is passed to the callback.\n */\nexport type StreamTextOnAbortCallback = (event: {\n /**\n * Details for all previously finished steps.\n */\n readonly steps: StepResult[];\n}) => PromiseLike | void;\n\n/**\n * Include settings for streamText (requestBody only).\n */\ntype StreamTextIncludeSettings = { requestBody?: boolean };\n\n/**\n * Callback that is set using the `experimental_onStart` option.\n *\n * Called when the streamText operation begins, before any LLM calls.\n * Use this callback for logging, analytics, or initializing state at the\n * start of a generation.\n *\n * @param event - The event object containing generation configuration.\n */\nexport type StreamTextOnStartCallback<\n TOOLS extends ToolSet = ToolSet,\n OUTPUT extends Output = Output,\n> = (\n event: OnStartEvent,\n) => PromiseLike | void;\n\n/**\n * Callback that is set using the `experimental_onStepStart` option.\n *\n * Called when a step (LLM call) begins, before the provider is called.\n * Each step represents a single LLM invocation. Multiple steps occur when\n * using tool calls (the model may be called multiple times in a loop).\n *\n * @param event - The event object containing step configuration.\n */\nexport type StreamTextOnStepStartCallback<\n TOOLS extends ToolSet = ToolSet,\n OUTPUT extends Output = Output,\n> = (\n event: OnStepStartEvent,\n) => PromiseLike | void;\n\nexport type StreamTextOnToolCallStartCallback =\n (event: OnToolCallStartEvent) => PromiseLike | void;\n\nexport type StreamTextOnToolCallFinishCallback<\n TOOLS extends ToolSet = ToolSet,\n> = (event: OnToolCallFinishEvent) => PromiseLike | void;\n\n/**\n * Generate a text and call tools for a given prompt using a language model.\n *\n * This function streams the output. If you do not want to stream the output, use `generateText` instead.\n *\n * @param model - The language model to use.\n * @param tools - Tools that are accessible to and can be called by the model. The model needs to support calling tools.\n *\n * @param system - A system message that will be part of the prompt.\n * @param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n * @param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n * @param allowSystemInMessages - Whether system messages are allowed in the `prompt` or `messages` fields. When unset, system messages are allowed with a warning.\n *\n * @param maxOutputTokens - Maximum number of tokens to generate.\n * @param temperature - Temperature setting.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topP - Nucleus sampling.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topK - Only sample from the top K options for each subsequent token.\n * Used to remove \"long tail\" low probability responses.\n * Recommended for advanced use cases only. You usually only need to use temperature.\n * @param presencePenalty - Presence penalty setting.\n * It affects the likelihood of the model to repeat information that is already in the prompt.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param frequencyPenalty - Frequency penalty setting.\n * It affects the likelihood of the model to repeatedly use the same words or phrases.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param stopSequences - Stop sequences.\n * If set, the model will stop generating text when one of the stop sequences is generated.\n * @param seed - The seed (integer) to use for random sampling.\n * If set and supported by the model, calls will generate deterministic results.\n *\n * @param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n * @param abortSignal - An optional abort signal that can be used to cancel the call.\n * @param timeout - An optional timeout in milliseconds. The call will be aborted if it takes longer than the specified timeout.\n * @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n *\n * @param onChunk - Callback that is called for each chunk of the stream. The stream processing will pause until the callback promise is resolved.\n * @param onError - Callback that is called when an error occurs during streaming. You can use it to log errors.\n * @param onStepFinish - Callback that is called when each step (LLM call) is finished, including intermediate steps.\n * @param onFinish - Callback that is called when all steps are finished and the response is complete.\n *\n * @returns\n * A result object for accessing different stream types and additional information.\n */\nexport function streamText<\n TOOLS extends ToolSet,\n OUTPUT extends Output = Output,\n>({\n model,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries,\n abortSignal,\n timeout,\n headers,\n stopWhen = stepCountIs(1),\n experimental_output,\n output = experimental_output,\n experimental_telemetry: telemetry,\n prepareStep,\n providerOptions,\n experimental_activeTools,\n activeTools = experimental_activeTools,\n experimental_repairToolCall: repairToolCall,\n experimental_transform: transform,\n experimental_download: download,\n includeRawChunks = false,\n onChunk,\n onError = ({ error }) => {\n console.error(error);\n },\n onFinish,\n onAbort,\n onStepFinish,\n experimental_onStart: onStart,\n experimental_onStepStart: onStepStart,\n experimental_onToolCallStart: onToolCallStart,\n experimental_onToolCallFinish: onToolCallFinish,\n experimental_context,\n experimental_include: include,\n _internal: { now = originalNow, generateId = originalGenerateId } = {},\n ...settings\n}: CallSettings &\n Prompt & {\n /**\n * The language model to use.\n */\n model: LanguageModel;\n\n /**\n * The tools that the model can call. The model needs to support calling tools.\n */\n tools?: TOOLS;\n\n /**\n * The tool choice strategy. Default: 'auto'.\n */\n toolChoice?: ToolChoice;\n\n /**\n * Condition for stopping the generation when there are tool results in the last step.\n * When the condition is an array, any of the conditions can be met to stop the generation.\n *\n * @default stepCountIs(1)\n */\n stopWhen?:\n | StopCondition>\n | Array>>;\n\n /**\n * Optional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\n * Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * @deprecated Use `activeTools` instead.\n */\n experimental_activeTools?: Array>;\n\n /**\n * Limits the tools that are available for the model to call without\n * changing the tool call and result types in the result.\n */\n activeTools?: Array>;\n\n /**\n * Optional specification for parsing structured outputs from the LLM response.\n */\n output?: OUTPUT;\n\n /**\n * Optional specification for parsing structured outputs from the LLM response.\n *\n * @deprecated Use `output` instead.\n */\n experimental_output?: OUTPUT;\n\n /**\n * Optional function that you can use to provide different settings for a step.\n *\n * @param options - The options for the step.\n * @param options.steps - The steps that have been executed so far.\n * @param options.stepNumber - The number of the step that is being executed.\n * @param options.model - The model that is being used.\n *\n * @returns An object that contains the settings for the step.\n * If you return undefined (or for undefined settings), the settings from the outer level will be used.\n */\n prepareStep?: PrepareStepFunction>;\n\n /**\n * A function that attempts to repair a tool call that failed to parse.\n */\n experimental_repairToolCall?: ToolCallRepairFunction;\n\n /**\n * Optional stream transformations.\n * They are applied in the order they are provided.\n * The stream transformations must maintain the stream structure for streamText to work correctly.\n */\n experimental_transform?:\n | StreamTextTransform\n | Array>;\n\n /**\n * Custom download function to use for URLs.\n *\n * By default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\n * Whether to include raw chunks from the provider in the stream.\n * When enabled, you will receive raw chunks with type 'raw' that contain the unprocessed data from the provider.\n * This allows access to cutting-edge provider features not yet wrapped by the AI SDK.\n * Defaults to false.\n */\n includeRawChunks?: boolean;\n\n /**\n * Callback that is called for each chunk of the stream.\n * The stream processing will pause until the callback promise is resolved.\n */\n onChunk?: StreamTextOnChunkCallback;\n\n /**\n * Callback that is invoked when an error occurs during streaming.\n * You can use it to log errors.\n * The stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamTextOnErrorCallback;\n\n /**\n * Callback that is called when the LLM response and all request tool executions\n * (for tools that have an `execute` function) are finished.\n *\n * The usage is the combined usage of all steps.\n */\n onFinish?: StreamTextOnFinishCallback;\n\n onAbort?: StreamTextOnAbortCallback;\n\n /**\n * Callback that is called when each step (LLM call) is finished, including intermediate steps.\n */\n onStepFinish?: StreamTextOnStepFinishCallback;\n\n /**\n * Callback that is called when the streamText operation begins,\n * before any LLM calls are made.\n */\n experimental_onStart?: StreamTextOnStartCallback, OUTPUT>;\n\n /**\n * Callback that is called when a step (LLM call) begins,\n * before the provider is called.\n */\n experimental_onStepStart?: StreamTextOnStepStartCallback<\n NoInfer,\n OUTPUT\n >;\n\n /**\n * Callback that is called right before a tool's execute function runs.\n */\n experimental_onToolCallStart?: StreamTextOnToolCallStartCallback<\n NoInfer\n >;\n\n /**\n * Callback that is called right after a tool's execute function completes (or errors).\n */\n experimental_onToolCallFinish?: StreamTextOnToolCallFinishCallback<\n NoInfer\n >;\n\n /**\n * Context that is passed into tool execution.\n *\n * Experimental (can break in patch releases).\n *\n * @default undefined\n */\n experimental_context?: unknown;\n\n /**\n * Settings for controlling what data is included in step results.\n * Disabling inclusion can help reduce memory usage when processing\n * large payloads like images.\n *\n * By default, all data is included for backwards compatibility.\n */\n experimental_include?: {\n /**\n * Whether to retain the request body in step results.\n * The request body can be large when sending images or files.\n * @default true\n */\n requestBody?: boolean;\n };\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n now?: () => number;\n generateId?: IdGenerator;\n };\n }): StreamTextResult {\n const totalTimeoutMs = getTotalTimeoutMs(timeout);\n const stepTimeoutMs = getStepTimeoutMs(timeout);\n const chunkTimeoutMs = getChunkTimeoutMs(timeout);\n const stepAbortController =\n stepTimeoutMs != null ? new AbortController() : undefined;\n const chunkAbortController =\n chunkTimeoutMs != null ? new AbortController() : undefined;\n return new DefaultStreamTextResult({\n model: resolveLanguageModel(model),\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal: mergeAbortSignals(\n abortSignal,\n totalTimeoutMs != null ? AbortSignal.timeout(totalTimeoutMs) : undefined,\n stepAbortController?.signal,\n chunkAbortController?.signal,\n ),\n stepTimeoutMs,\n stepAbortController,\n chunkTimeoutMs,\n chunkAbortController,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n tools,\n toolChoice,\n transforms: asArray(transform),\n activeTools,\n repairToolCall,\n stopConditions: asArray(stopWhen),\n output,\n providerOptions,\n prepareStep,\n includeRawChunks,\n timeout,\n stopWhen,\n originalAbortSignal: abortSignal,\n onChunk,\n onError,\n onFinish,\n onAbort,\n onStepFinish,\n onStart,\n onStepStart,\n onToolCallStart,\n onToolCallFinish,\n now,\n generateId,\n experimental_context,\n download,\n include,\n });\n}\n\nexport type EnrichedStreamPart = {\n part: TextStreamPart;\n partialOutput: PARTIAL_OUTPUT | undefined;\n};\n\nfunction createOutputTransformStream<\n TOOLS extends ToolSet,\n OUTPUT extends Output,\n>(\n output: OUTPUT,\n): TransformStream<\n TextStreamPart,\n EnrichedStreamPart>\n> {\n let firstTextChunkId: string | undefined = undefined;\n let text = '';\n let textChunk = '';\n let textProviderMetadata: ProviderMetadata | undefined = undefined;\n let lastPublishedValue = '';\n\n function publishTextChunk({\n controller,\n partialOutput = undefined,\n }: {\n controller: TransformStreamDefaultController<\n EnrichedStreamPart>\n >;\n partialOutput?: InferPartialOutput;\n }) {\n controller.enqueue({\n part: {\n type: 'text-delta',\n id: firstTextChunkId!,\n text: textChunk,\n providerMetadata: textProviderMetadata,\n },\n partialOutput,\n });\n textChunk = '';\n }\n\n return new TransformStream<\n TextStreamPart,\n EnrichedStreamPart>\n >({\n async transform(chunk, controller) {\n // ensure that we publish the last text chunk before the step finish:\n if (chunk.type === 'finish-step' && textChunk.length > 0) {\n publishTextChunk({ controller });\n }\n\n if (\n chunk.type !== 'text-delta' &&\n chunk.type !== 'text-start' &&\n chunk.type !== 'text-end'\n ) {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n // we have to pick a text chunk which contains the json text\n // since we are streaming, we have to pick the first text chunk\n if (firstTextChunkId == null) {\n firstTextChunkId = chunk.id;\n } else if (chunk.id !== firstTextChunkId) {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n if (chunk.type === 'text-start') {\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n if (chunk.type === 'text-end') {\n if (textChunk.length > 0) {\n publishTextChunk({ controller });\n }\n controller.enqueue({ part: chunk, partialOutput: undefined });\n return;\n }\n\n text += chunk.text;\n textChunk += chunk.text;\n textProviderMetadata = chunk.providerMetadata ?? textProviderMetadata;\n\n // only publish if partial json can be parsed:\n const result = await output.parsePartialOutput({ text });\n\n // null should be allowed (valid JSON value) but undefined should not:\n if (result !== undefined) {\n // only send new value if it has changed:\n // For string partials (text output), compare directly to avoid unnecessary JSON.stringify overhead\n const currentValue =\n typeof result.partial === 'string'\n ? result.partial\n : JSON.stringify(result.partial);\n if (currentValue !== lastPublishedValue) {\n publishTextChunk({ controller, partialOutput: result.partial });\n lastPublishedValue = currentValue;\n }\n }\n },\n });\n}\n\nclass DefaultStreamTextResult<\n TOOLS extends ToolSet,\n OUTPUT extends Output,\n> implements StreamTextResult {\n private readonly _totalUsage = new DelayedPromise<\n Awaited['usage']>\n >();\n private readonly _finishReason = new DelayedPromise<\n Awaited['finishReason']>\n >();\n private readonly _rawFinishReason = new DelayedPromise<\n Awaited['rawFinishReason']>\n >();\n private readonly _steps = new DelayedPromise<\n Awaited['steps']>\n >();\n\n private readonly addStream: (\n stream: ReadableStream>,\n ) => void;\n\n private readonly closeStream: () => void;\n\n private baseStream: ReadableStream<\n EnrichedStreamPart>\n >;\n\n private outputSpecification: OUTPUT | undefined;\n\n private includeRawChunks: boolean;\n\n private tools: TOOLS | undefined;\n\n constructor({\n model,\n telemetry,\n headers,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n stepTimeoutMs,\n stepAbortController,\n chunkTimeoutMs,\n chunkAbortController,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n tools,\n toolChoice,\n transforms,\n activeTools,\n repairToolCall,\n stopConditions,\n output,\n providerOptions,\n prepareStep,\n includeRawChunks,\n now,\n generateId,\n timeout,\n stopWhen,\n originalAbortSignal,\n onChunk,\n onError,\n onFinish,\n onAbort,\n onStepFinish,\n onStart,\n onStepStart,\n onToolCallStart,\n onToolCallFinish,\n experimental_context,\n download,\n include,\n }: {\n model: LanguageModelV3;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n settings: Omit;\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n stepTimeoutMs: number | undefined;\n stepAbortController: AbortController | undefined;\n chunkTimeoutMs: number | undefined;\n chunkAbortController: AbortController | undefined;\n system: Prompt['system'];\n prompt: Prompt['prompt'];\n messages: Prompt['messages'];\n allowSystemInMessages: Prompt['allowSystemInMessages'];\n tools: TOOLS | undefined;\n toolChoice: ToolChoice | undefined;\n transforms: Array>;\n activeTools: Array | undefined;\n repairToolCall: ToolCallRepairFunction | undefined;\n stopConditions: Array>>;\n output: OUTPUT | undefined;\n providerOptions: ProviderOptions | undefined;\n prepareStep: PrepareStepFunction> | undefined;\n includeRawChunks: boolean;\n now: () => number;\n generateId: () => string;\n timeout: TimeoutConfiguration | undefined;\n stopWhen:\n | StopCondition>\n | Array>>\n | undefined;\n originalAbortSignal: AbortSignal | undefined;\n experimental_context: unknown;\n download: DownloadFunction | undefined;\n include: { requestBody?: boolean } | undefined;\n\n // callbacks:\n onChunk: undefined | StreamTextOnChunkCallback;\n onError: StreamTextOnErrorCallback;\n onFinish: undefined | StreamTextOnFinishCallback;\n onAbort: undefined | StreamTextOnAbortCallback;\n onStepFinish: undefined | StreamTextOnStepFinishCallback;\n onStart: undefined | StreamTextOnStartCallback;\n onStepStart: undefined | StreamTextOnStepStartCallback;\n onToolCallStart: undefined | StreamTextOnToolCallStartCallback;\n onToolCallFinish: undefined | StreamTextOnToolCallFinishCallback;\n }) {\n this.outputSpecification = output;\n this.includeRawChunks = includeRawChunks;\n this.tools = tools;\n\n const createGlobalTelemetry = getGlobalTelemetryIntegration<\n TOOLS,\n OUTPUT\n >();\n const globalTelemetry = createGlobalTelemetry(telemetry?.integrations);\n\n // promise to ensure that the step has been fully processed by the event processor\n // before a new step is started. This is required because the continuation condition\n // needs the updated steps to determine if another step is needed.\n let stepFinish!: DelayedPromise;\n\n let recordedContent: Array> = [];\n const recordedResponseMessages: Array = [];\n let recordedFinishReason: FinishReason | undefined = undefined;\n let recordedRawFinishReason: string | undefined = undefined;\n let recordedTotalUsage: LanguageModelUsage | undefined = undefined;\n let recordedRequest: LanguageModelRequestMetadata = {};\n let recordedWarnings: Array = [];\n const recordedSteps: StepResult[] = [];\n\n // Track provider-executed tool calls that support deferred results\n // (e.g., code_execution in programmatic tool calling scenarios).\n // These tools may not return their results in the same turn as their call.\n const pendingDeferredToolCalls = new Map();\n\n let rootSpan!: Span;\n\n let activeTextContent: Record<\n string,\n {\n type: 'text';\n text: string;\n providerMetadata: ProviderMetadata | undefined;\n }\n > = {};\n\n let activeReasoningContent: Record<\n string,\n {\n type: 'reasoning';\n text: string;\n providerMetadata: ProviderMetadata | undefined;\n }\n > = {};\n\n const eventProcessor = new TransformStream<\n EnrichedStreamPart>,\n EnrichedStreamPart>\n >({\n async transform(chunk, controller) {\n controller.enqueue(chunk); // forward the chunk to the next stream\n\n const { part } = chunk;\n\n if (\n part.type === 'text-delta' ||\n part.type === 'reasoning-delta' ||\n part.type === 'source' ||\n part.type === 'tool-call' ||\n part.type === 'tool-result' ||\n part.type === 'tool-input-start' ||\n part.type === 'tool-input-delta' ||\n part.type === 'raw'\n ) {\n await onChunk?.({ chunk: part });\n }\n\n if (part.type === 'error') {\n await onError({ error: wrapGatewayError(part.error) });\n }\n\n if (part.type === 'text-start') {\n activeTextContent[part.id] = {\n type: 'text',\n text: '',\n providerMetadata: part.providerMetadata,\n };\n\n recordedContent.push(activeTextContent[part.id]);\n }\n\n if (part.type === 'text-delta') {\n const activeText = activeTextContent[part.id];\n\n if (activeText == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `text part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeText.text += part.text;\n activeText.providerMetadata =\n part.providerMetadata ?? activeText.providerMetadata;\n }\n\n if (part.type === 'text-end') {\n const activeText = activeTextContent[part.id];\n\n if (activeText == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `text part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeText.providerMetadata =\n part.providerMetadata ?? activeText.providerMetadata;\n\n delete activeTextContent[part.id];\n }\n\n if (part.type === 'reasoning-start') {\n activeReasoningContent[part.id] = {\n type: 'reasoning',\n text: '',\n providerMetadata: part.providerMetadata,\n };\n\n recordedContent.push(activeReasoningContent[part.id]);\n }\n\n if (part.type === 'reasoning-delta') {\n const activeReasoning = activeReasoningContent[part.id];\n\n if (activeReasoning == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `reasoning part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeReasoning.text += part.text;\n activeReasoning.providerMetadata =\n part.providerMetadata ?? activeReasoning.providerMetadata;\n }\n\n if (part.type === 'reasoning-end') {\n const activeReasoning = activeReasoningContent[part.id];\n\n if (activeReasoning == null) {\n controller.enqueue({\n part: {\n type: 'error',\n error: `reasoning part ${part.id} not found`,\n },\n partialOutput: undefined,\n });\n return;\n }\n\n activeReasoning.providerMetadata =\n part.providerMetadata ?? activeReasoning.providerMetadata;\n\n delete activeReasoningContent[part.id];\n }\n\n if (part.type === 'file') {\n recordedContent.push({\n type: 'file',\n file: part.file,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n\n if (part.type === 'source') {\n recordedContent.push(part);\n }\n\n if (part.type === 'tool-call') {\n recordedContent.push(part);\n }\n\n if (part.type === 'tool-result' && !part.preliminary) {\n recordedContent.push(part);\n }\n\n if (part.type === 'tool-approval-request') {\n recordedContent.push(part);\n }\n\n if (part.type === 'tool-error') {\n recordedContent.push(part);\n }\n\n if (part.type === 'start-step') {\n // reset the recorded data when a new step starts:\n recordedContent = [];\n activeReasoningContent = {};\n activeTextContent = {};\n\n recordedRequest = part.request;\n recordedWarnings = part.warnings;\n }\n\n if (part.type === 'finish-step') {\n const stepMessages = await toResponseMessages({\n content: recordedContent,\n tools,\n });\n\n // Add step information (after response messages are updated):\n const currentStepResult: StepResult = new DefaultStepResult({\n stepNumber: recordedSteps.length,\n model: modelInfo,\n ...callbackTelemetryProps,\n experimental_context,\n content: recordedContent,\n finishReason: part.finishReason,\n rawFinishReason: part.rawFinishReason,\n usage: part.usage,\n warnings: recordedWarnings,\n request: recordedRequest,\n response: {\n ...part.response,\n messages: [...recordedResponseMessages, ...stepMessages],\n },\n providerMetadata: part.providerMetadata,\n });\n\n await notify({\n event: currentStepResult,\n callbacks: [onStepFinish, globalTelemetry.onStepFinish],\n });\n\n logWarnings({\n warnings: recordedWarnings,\n provider: modelInfo.provider,\n model: modelInfo.modelId,\n });\n\n recordedSteps.push(currentStepResult);\n\n recordedResponseMessages.push(...stepMessages);\n\n // resolve the promise to signal that the step has been fully processed\n // by the event processor:\n stepFinish.resolve();\n }\n\n if (part.type === 'finish') {\n recordedTotalUsage = part.totalUsage;\n recordedFinishReason = part.finishReason;\n recordedRawFinishReason = part.rawFinishReason;\n }\n },\n\n async flush(controller) {\n try {\n if (recordedSteps.length === 0) {\n const error = abortSignal?.aborted\n ? abortSignal.reason\n : new NoOutputGeneratedError({\n message: 'No output generated. Check the stream for errors.',\n });\n\n self._finishReason.reject(error);\n self._rawFinishReason.reject(error);\n self._totalUsage.reject(error);\n self._steps.reject(error);\n\n return; // no steps recorded (e.g. in error scenario)\n }\n\n // derived:\n const finishReason = recordedFinishReason ?? 'other';\n const totalUsage =\n recordedTotalUsage ?? createNullLanguageModelUsage();\n\n // from finish:\n self._finishReason.resolve(finishReason);\n self._rawFinishReason.resolve(recordedRawFinishReason);\n self._totalUsage.resolve(totalUsage);\n\n // aggregate results:\n self._steps.resolve(recordedSteps);\n\n // call onFinish callback:\n const finalStep = recordedSteps[recordedSteps.length - 1];\n\n await notify({\n event: {\n stepNumber: finalStep.stepNumber,\n model: finalStep.model,\n functionId: finalStep.functionId,\n metadata: finalStep.metadata,\n experimental_context: finalStep.experimental_context,\n finishReason: finalStep.finishReason,\n rawFinishReason: finalStep.rawFinishReason,\n totalUsage,\n usage: finalStep.usage,\n content: finalStep.content,\n text: finalStep.text,\n reasoningText: finalStep.reasoningText,\n reasoning: finalStep.reasoning,\n files: finalStep.files,\n sources: finalStep.sources,\n toolCalls: finalStep.toolCalls,\n staticToolCalls: finalStep.staticToolCalls,\n dynamicToolCalls: finalStep.dynamicToolCalls,\n toolResults: finalStep.toolResults,\n staticToolResults: finalStep.staticToolResults,\n dynamicToolResults: finalStep.dynamicToolResults,\n request: finalStep.request,\n response: finalStep.response,\n warnings: finalStep.warnings,\n providerMetadata: finalStep.providerMetadata,\n steps: recordedSteps,\n },\n callbacks: [\n onFinish,\n globalTelemetry.onFinish as\n | undefined\n | StreamTextOnFinishCallback,\n ],\n });\n\n // Add response information to the root span:\n rootSpan.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.text': { output: () => finalStep.text },\n 'ai.response.reasoning': {\n output: () => finalStep.reasoningText,\n },\n 'ai.response.toolCalls': {\n output: () =>\n finalStep.toolCalls?.length\n ? JSON.stringify(finalStep.toolCalls)\n : undefined,\n },\n 'ai.response.providerMetadata': JSON.stringify(\n finalStep.providerMetadata,\n ),\n 'ai.usage.inputTokens': totalUsage.inputTokens,\n 'ai.usage.inputTokenDetails.noCacheTokens':\n totalUsage.inputTokenDetails?.noCacheTokens,\n 'ai.usage.inputTokenDetails.cacheReadTokens':\n totalUsage.inputTokenDetails?.cacheReadTokens,\n 'ai.usage.inputTokenDetails.cacheWriteTokens':\n totalUsage.inputTokenDetails?.cacheWriteTokens,\n 'ai.usage.outputTokens': totalUsage.outputTokens,\n 'ai.usage.outputTokenDetails.textTokens':\n totalUsage.outputTokenDetails?.textTokens,\n 'ai.usage.outputTokenDetails.reasoningTokens':\n totalUsage.outputTokenDetails?.reasoningTokens,\n 'ai.usage.totalTokens': totalUsage.totalTokens,\n 'ai.usage.reasoningTokens':\n totalUsage.outputTokenDetails?.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n totalUsage.inputTokenDetails?.cacheReadTokens,\n },\n }),\n );\n } catch (error) {\n controller.error(error);\n } finally {\n rootSpan.end();\n }\n },\n });\n\n // initialize the stitchable stream and the transformed stream:\n const stitchableStream = createStitchableStream>();\n this.addStream = stitchableStream.addStream;\n this.closeStream = stitchableStream.close;\n\n // resilient stream that handles abort signals and errors:\n const reader = stitchableStream.stream.getReader();\n let stream = new ReadableStream>({\n async start(controller) {\n // send start event:\n controller.enqueue({ type: 'start' });\n },\n\n async pull(controller) {\n // abort handling:\n function abort() {\n onAbort?.({ steps: recordedSteps });\n controller.enqueue({\n type: 'abort',\n // The `reason` is usually of type DOMException, but it can also be of any type,\n // so we use getErrorMessage for serialization because it is already designed to accept values of the unknown type.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason\n ...(abortSignal?.reason !== undefined\n ? { reason: getErrorMessage(abortSignal.reason) }\n : {}),\n });\n controller.close();\n }\n\n try {\n const { done, value } = await reader.read();\n\n if (done) {\n controller.close();\n return;\n }\n\n if (abortSignal?.aborted) {\n abort();\n return;\n }\n\n controller.enqueue(value);\n } catch (error) {\n if (isAbortError(error) && abortSignal?.aborted) {\n abort();\n } else {\n controller.error(error);\n }\n }\n },\n\n cancel(reason) {\n return stitchableStream.stream.cancel(reason);\n },\n });\n\n // transform the stream before output parsing\n // to enable replacement of stream segments:\n for (const transform of transforms) {\n stream = stream.pipeThrough(\n transform({\n tools: tools as TOOLS,\n stopStream() {\n stitchableStream.terminate();\n },\n }),\n );\n }\n\n this.baseStream = stream\n .pipeThrough(createOutputTransformStream(output ?? text()))\n .pipeThrough(eventProcessor);\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const tracer = getTracer(telemetry);\n\n const callSettings = prepareCallSettings(settings);\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...callSettings, maxRetries },\n });\n\n const self = this;\n\n const modelInfo = { provider: model.provider, modelId: model.modelId };\n const callbackTelemetryProps = {\n functionId: telemetry?.functionId,\n metadata: telemetry?.metadata as Record | undefined,\n };\n\n recordSpan({\n name: 'ai.streamText',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: 'ai.streamText', telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async rootSpanArg => {\n rootSpan = rootSpanArg;\n\n const initialPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n await notify({\n event: {\n model: modelInfo,\n system,\n prompt,\n messages,\n tools,\n toolChoice,\n activeTools,\n maxOutputTokens: callSettings.maxOutputTokens,\n temperature: callSettings.temperature,\n topP: callSettings.topP,\n topK: callSettings.topK,\n presencePenalty: callSettings.presencePenalty,\n frequencyPenalty: callSettings.frequencyPenalty,\n stopSequences: callSettings.stopSequences,\n seed: callSettings.seed,\n maxRetries,\n timeout,\n headers,\n providerOptions,\n stopWhen,\n output,\n abortSignal: originalAbortSignal,\n include,\n ...callbackTelemetryProps,\n experimental_context,\n },\n callbacks: [\n onStart,\n globalTelemetry.onStart as\n | undefined\n | StreamTextOnStartCallback,\n ],\n });\n\n const initialMessages = initialPrompt.messages;\n const initialResponseMessages: Array = [];\n\n const { approvedToolApprovals, deniedToolApprovals } =\n collectToolApprovals({ messages: initialMessages });\n\n // initial tool execution step stream\n if (\n deniedToolApprovals.length > 0 ||\n approvedToolApprovals.length > 0\n ) {\n const localApprovedToolApprovals = approvedToolApprovals.filter(\n toolApproval => !toolApproval.toolCall.providerExecuted,\n );\n const localDeniedToolApprovals = deniedToolApprovals.filter(\n toolApproval => !toolApproval.toolCall.providerExecuted,\n );\n\n const deniedProviderExecutedToolApprovals =\n deniedToolApprovals.filter(\n toolApproval => toolApproval.toolCall.providerExecuted,\n );\n\n let toolExecutionStepStreamController:\n | ReadableStreamDefaultController>\n | undefined;\n const toolExecutionStepStream = new ReadableStream<\n TextStreamPart\n >({\n start(controller) {\n toolExecutionStepStreamController = controller;\n },\n });\n\n self.addStream(toolExecutionStepStream);\n\n try {\n for (const toolApproval of [\n ...localDeniedToolApprovals,\n ...deniedProviderExecutedToolApprovals,\n ]) {\n toolExecutionStepStreamController?.enqueue({\n type: 'tool-output-denied',\n toolCallId: toolApproval.toolCall.toolCallId,\n toolName: toolApproval.toolCall.toolName,\n } as StaticToolOutputDenied);\n }\n\n const toolOutputs: Array> = [];\n\n await Promise.all(\n localApprovedToolApprovals.map(async toolApproval => {\n const result = await executeToolCall({\n toolCall: toolApproval.toolCall,\n tools,\n tracer,\n telemetry,\n messages: initialMessages,\n abortSignal,\n experimental_context,\n stepNumber: recordedSteps.length,\n model: modelInfo,\n onToolCallStart: [\n onToolCallStart,\n globalTelemetry.onToolCallStart as\n | undefined\n | StreamTextOnToolCallStartCallback,\n ],\n onToolCallFinish: [\n onToolCallFinish,\n globalTelemetry.onToolCallFinish,\n ],\n onPreliminaryToolResult: result => {\n toolExecutionStepStreamController?.enqueue(result);\n },\n });\n\n if (result != null) {\n toolExecutionStepStreamController?.enqueue(result);\n toolOutputs.push(result);\n }\n }),\n );\n\n // Local tool results (approved + denied) are sent as tool results:\n if (toolOutputs.length > 0 || localDeniedToolApprovals.length > 0) {\n const localToolContent: ToolContent = [];\n\n // add regular tool results for approved tool calls:\n for (const output of toolOutputs) {\n localToolContent.push({\n type: 'tool-result' as const,\n toolCallId: output.toolCallId,\n toolName: output.toolName,\n output: await createToolModelOutput({\n toolCallId: output.toolCallId,\n input: output.input,\n tool: tools?.[output.toolName],\n output:\n output.type === 'tool-result'\n ? output.output\n : output.error,\n errorMode: output.type === 'tool-error' ? 'text' : 'none',\n }),\n });\n }\n\n // add execution denied tool results for denied local tool approvals:\n for (const toolApproval of localDeniedToolApprovals) {\n localToolContent.push({\n type: 'tool-result' as const,\n toolCallId: toolApproval.toolCall.toolCallId,\n toolName: toolApproval.toolCall.toolName,\n output: {\n type: 'execution-denied' as const,\n reason: toolApproval.approvalResponse.reason,\n },\n });\n }\n\n initialResponseMessages.push({\n role: 'tool',\n content: localToolContent,\n });\n }\n } finally {\n toolExecutionStepStreamController?.close();\n }\n }\n\n recordedResponseMessages.push(...initialResponseMessages);\n\n async function streamStep({\n currentStep,\n responseMessages,\n usage,\n }: {\n currentStep: number;\n responseMessages: Array;\n usage: LanguageModelUsage;\n }) {\n const includeRawChunks = self.includeRawChunks;\n\n // Set up step timeout if configured\n const stepTimeoutId =\n stepTimeoutMs != null\n ? setTimeout(() => stepAbortController!.abort(), stepTimeoutMs)\n : undefined;\n\n // Set up chunk timeout tracking (will be reset on each chunk)\n let chunkTimeoutId: ReturnType | undefined =\n undefined;\n\n function resetChunkTimeout() {\n if (chunkTimeoutMs != null) {\n if (chunkTimeoutId != null) {\n clearTimeout(chunkTimeoutId);\n }\n chunkTimeoutId = setTimeout(\n () => chunkAbortController!.abort(),\n chunkTimeoutMs,\n );\n }\n }\n\n function clearChunkTimeout() {\n if (chunkTimeoutId != null) {\n clearTimeout(chunkTimeoutId);\n chunkTimeoutId = undefined;\n }\n }\n\n function clearStepTimeout() {\n if (stepTimeoutId != null) {\n clearTimeout(stepTimeoutId);\n }\n }\n\n try {\n stepFinish = new DelayedPromise();\n\n const stepInputMessages = [...initialMessages, ...responseMessages];\n\n const prepareStepResult = await prepareStep?.({\n model,\n steps: recordedSteps,\n stepNumber: recordedSteps.length,\n messages: stepInputMessages,\n experimental_context,\n });\n\n const stepModel = resolveLanguageModel(\n prepareStepResult?.model ?? model,\n );\n const stepModelInfo = {\n provider: stepModel.provider,\n modelId: stepModel.modelId,\n };\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n system: prepareStepResult?.system ?? initialPrompt.system,\n messages: prepareStepResult?.messages ?? stepInputMessages,\n },\n supportedUrls: await stepModel.supportedUrls,\n download,\n });\n\n const stepActiveTools =\n prepareStepResult?.activeTools ?? activeTools;\n\n const { toolChoice: stepToolChoice, tools: stepTools } =\n await prepareToolsAndToolChoice({\n tools,\n toolChoice: prepareStepResult?.toolChoice ?? toolChoice,\n activeTools: stepActiveTools,\n });\n\n experimental_context =\n prepareStepResult?.experimental_context ?? experimental_context;\n\n const stepMessages =\n prepareStepResult?.messages ?? stepInputMessages;\n\n const stepSystem =\n prepareStepResult?.system ?? initialPrompt.system;\n\n const stepProviderOptions = mergeObjects(\n providerOptions,\n prepareStepResult?.providerOptions,\n );\n\n await notify({\n event: {\n stepNumber: recordedSteps.length,\n model: stepModelInfo,\n system: stepSystem,\n messages: stepMessages,\n tools,\n toolChoice: stepToolChoice,\n activeTools: stepActiveTools,\n steps: [...recordedSteps],\n providerOptions: stepProviderOptions,\n timeout,\n headers,\n stopWhen,\n output,\n abortSignal: originalAbortSignal,\n include,\n ...callbackTelemetryProps,\n experimental_context,\n },\n callbacks: [\n onStepStart,\n globalTelemetry.onStepStart as\n | undefined\n | StreamTextOnStepStartCallback,\n ],\n });\n\n const {\n result: { stream, response, request },\n doStreamSpan,\n startTimestampMs,\n } = await retry(() =>\n recordSpan({\n name: 'ai.streamText.doStream',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamText.doStream',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // model:\n 'ai.model.provider': stepModel.provider,\n 'ai.model.id': stepModel.modelId,\n // prompt:\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n 'ai.prompt.tools': {\n // convert the language model level tools:\n input: () => stepTools?.map(tool => JSON.stringify(tool)),\n },\n 'ai.prompt.toolChoice': {\n input: () =>\n stepToolChoice != null\n ? JSON.stringify(stepToolChoice)\n : undefined,\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': stepModel.provider,\n 'gen_ai.request.model': stepModel.modelId,\n 'gen_ai.request.frequency_penalty':\n callSettings.frequencyPenalty,\n 'gen_ai.request.max_tokens': callSettings.maxOutputTokens,\n 'gen_ai.request.presence_penalty':\n callSettings.presencePenalty,\n 'gen_ai.request.stop_sequences': callSettings.stopSequences,\n 'gen_ai.request.temperature': callSettings.temperature,\n 'gen_ai.request.top_k': callSettings.topK,\n 'gen_ai.request.top_p': callSettings.topP,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async doStreamSpan => ({\n startTimestampMs: now(), // get before the call\n doStreamSpan,\n result: await stepModel.doStream({\n ...callSettings,\n tools: stepTools,\n toolChoice: stepToolChoice,\n responseFormat: await output?.responseFormat,\n prompt: promptMessages,\n providerOptions: stepProviderOptions,\n abortSignal,\n headers,\n includeRawChunks,\n }),\n }),\n }),\n );\n\n const streamWithToolResults = runToolsTransformation({\n tools,\n generatorStream: stream,\n tracer,\n telemetry,\n system,\n messages: stepInputMessages,\n repairToolCall,\n abortSignal,\n experimental_context,\n generateId,\n stepNumber: recordedSteps.length,\n model: stepModelInfo,\n onToolCallStart: [\n onToolCallStart,\n globalTelemetry.onToolCallStart as\n | undefined\n | StreamTextOnToolCallStartCallback,\n ],\n onToolCallFinish: [\n onToolCallFinish,\n globalTelemetry.onToolCallFinish,\n ],\n });\n\n // Conditionally include request.body based on include settings.\n // Large payloads (e.g., base64-encoded images) can cause memory issues.\n const stepRequest: LanguageModelRequestMetadata =\n (include?.requestBody ?? true)\n ? (request ?? {})\n : { ...request, body: undefined };\n const stepToolCalls: TypedToolCall[] = [];\n const stepToolOutputs: ToolOutput[] = [];\n let warnings: SharedV3Warning[] | undefined;\n\n const activeToolCallToolNames: Record = {};\n\n let stepFinishReason: FinishReason = 'other';\n let stepRawFinishReason: string | undefined = undefined;\n\n let stepUsage: LanguageModelUsage = createNullLanguageModelUsage();\n let stepProviderMetadata: ProviderMetadata | undefined;\n let stepFirstChunk = true;\n let stepResponse: { id: string; timestamp: Date; modelId: string } =\n {\n id: generateId(),\n timestamp: new Date(),\n modelId: modelInfo.modelId,\n };\n\n // raw text as it comes from the provider. recorded for telemetry.\n let activeText = '';\n\n self.addStream(\n streamWithToolResults.pipeThrough(\n new TransformStream<\n SingleRequestTextStreamPart,\n TextStreamPart\n >({\n async transform(chunk, controller): Promise {\n resetChunkTimeout();\n\n if (chunk.type === 'stream-start') {\n warnings = chunk.warnings;\n return; // stream start chunks are sent immediately and do not count as first chunk\n }\n\n if (stepFirstChunk) {\n // Telemetry for first chunk:\n const msToFirstChunk = now() - startTimestampMs;\n\n stepFirstChunk = false;\n\n doStreamSpan.addEvent('ai.stream.firstChunk', {\n 'ai.response.msToFirstChunk': msToFirstChunk,\n });\n\n doStreamSpan.setAttributes({\n 'ai.response.msToFirstChunk': msToFirstChunk,\n });\n\n // Step start:\n controller.enqueue({\n type: 'start-step',\n request: stepRequest,\n warnings: warnings ?? [],\n });\n }\n\n const chunkType = chunk.type;\n switch (chunkType) {\n case 'tool-approval-request':\n case 'text-start':\n case 'text-end': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'text-delta': {\n if (chunk.delta.length > 0) {\n controller.enqueue({\n type: 'text-delta',\n id: chunk.id,\n text: chunk.delta,\n providerMetadata: chunk.providerMetadata,\n });\n activeText += chunk.delta;\n }\n break;\n }\n\n case 'reasoning-start':\n case 'reasoning-end': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'reasoning-delta': {\n controller.enqueue({\n type: 'reasoning-delta',\n id: chunk.id,\n text: chunk.delta,\n providerMetadata: chunk.providerMetadata,\n });\n break;\n }\n\n case 'tool-call': {\n controller.enqueue(chunk);\n // store tool calls for onFinish callback and toolCalls promise:\n stepToolCalls.push(chunk);\n break;\n }\n\n case 'tool-result': {\n controller.enqueue(chunk);\n\n if (!chunk.preliminary) {\n stepToolOutputs.push(chunk);\n }\n\n break;\n }\n\n case 'tool-error': {\n controller.enqueue(chunk);\n stepToolOutputs.push(chunk);\n break;\n }\n\n case 'response-metadata': {\n stepResponse = {\n id: chunk.id ?? stepResponse.id,\n timestamp: chunk.timestamp ?? stepResponse.timestamp,\n modelId: chunk.modelId ?? stepResponse.modelId,\n };\n break;\n }\n\n case 'finish': {\n // Note: tool executions might not be finished yet when the finish event is emitted.\n // store usage and finish reason for promises and onFinish callback:\n stepUsage = chunk.usage;\n stepFinishReason = chunk.finishReason;\n stepRawFinishReason = chunk.rawFinishReason;\n stepProviderMetadata = chunk.providerMetadata;\n\n // Telemetry for finish event timing\n // (since tool executions can take longer and distort calculations)\n const msToFinish = now() - startTimestampMs;\n doStreamSpan.addEvent('ai.stream.finish');\n doStreamSpan.setAttributes({\n 'ai.response.msToFinish': msToFinish,\n 'ai.response.avgOutputTokensPerSecond':\n (1000 * (stepUsage.outputTokens ?? 0)) / msToFinish,\n });\n\n break;\n }\n\n case 'file': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'source': {\n controller.enqueue(chunk);\n break;\n }\n\n case 'tool-input-start': {\n activeToolCallToolNames[chunk.id] = chunk.toolName;\n\n const tool = tools?.[chunk.toolName];\n if (tool?.onInputStart != null) {\n await tool.onInputStart({\n toolCallId: chunk.id,\n messages: stepInputMessages,\n abortSignal,\n experimental_context,\n });\n }\n\n controller.enqueue({\n ...chunk,\n dynamic: chunk.dynamic ?? tool?.type === 'dynamic',\n title: tool?.title,\n });\n break;\n }\n\n case 'tool-input-end': {\n delete activeToolCallToolNames[chunk.id];\n controller.enqueue(chunk);\n break;\n }\n\n case 'tool-input-delta': {\n const toolName = activeToolCallToolNames[chunk.id];\n const tool = tools?.[toolName];\n\n if (tool?.onInputDelta != null) {\n await tool.onInputDelta({\n inputTextDelta: chunk.delta,\n toolCallId: chunk.id,\n messages: stepInputMessages,\n abortSignal,\n experimental_context,\n });\n }\n\n controller.enqueue(chunk);\n break;\n }\n\n case 'error': {\n controller.enqueue(chunk);\n stepFinishReason = 'error';\n break;\n }\n\n case 'raw': {\n if (includeRawChunks) {\n controller.enqueue(chunk);\n }\n break;\n }\n\n default: {\n const exhaustiveCheck: never = chunkType;\n throw new Error(\n `Unknown chunk type: ${exhaustiveCheck}`,\n );\n }\n }\n },\n\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n const stepToolCallsJson =\n stepToolCalls.length > 0\n ? JSON.stringify(stepToolCalls)\n : undefined;\n\n // record telemetry attributes that don't depend on transforms:\n try {\n doStreamSpan.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': stepFinishReason,\n 'ai.response.toolCalls': {\n output: () => stepToolCallsJson,\n },\n 'ai.response.id': stepResponse.id,\n 'ai.response.model': stepResponse.modelId,\n 'ai.response.timestamp':\n stepResponse.timestamp.toISOString(),\n 'ai.usage.inputTokens': stepUsage.inputTokens,\n 'ai.usage.inputTokenDetails.noCacheTokens':\n stepUsage.inputTokenDetails?.noCacheTokens,\n 'ai.usage.inputTokenDetails.cacheReadTokens':\n stepUsage.inputTokenDetails?.cacheReadTokens,\n 'ai.usage.inputTokenDetails.cacheWriteTokens':\n stepUsage.inputTokenDetails?.cacheWriteTokens,\n 'ai.usage.outputTokens': stepUsage.outputTokens,\n 'ai.usage.outputTokenDetails.textTokens':\n stepUsage.outputTokenDetails?.textTokens,\n 'ai.usage.outputTokenDetails.reasoningTokens':\n stepUsage.outputTokenDetails?.reasoningTokens,\n 'ai.usage.totalTokens': stepUsage.totalTokens,\n 'ai.usage.reasoningTokens':\n stepUsage.outputTokenDetails?.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n stepUsage.inputTokenDetails?.cacheReadTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [\n stepFinishReason,\n ],\n 'gen_ai.response.id': stepResponse.id,\n 'gen_ai.response.model': stepResponse.modelId,\n 'gen_ai.usage.input_tokens': stepUsage.inputTokens,\n 'gen_ai.usage.output_tokens':\n stepUsage.outputTokens,\n },\n }),\n );\n } catch (error) {\n // ignore error setting telemetry attributes\n }\n\n controller.enqueue({\n type: 'finish-step',\n finishReason: stepFinishReason,\n rawFinishReason: stepRawFinishReason,\n usage: stepUsage,\n providerMetadata: stepProviderMetadata,\n response: {\n ...stepResponse,\n headers: response?.headers,\n },\n });\n\n const combinedUsage = addLanguageModelUsage(\n usage,\n stepUsage,\n );\n\n // wait for the step to be fully processed by the event processor\n // to ensure that the recorded steps are complete:\n await stepFinish.promise;\n\n // set transform-dependent attributes after the step has been\n // fully processed (post-transform) by the event processor:\n const processedStep =\n recordedSteps[recordedSteps.length - 1];\n try {\n doStreamSpan.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.text': {\n output: () => processedStep.text,\n },\n 'ai.response.reasoning': {\n output: () => processedStep.reasoningText,\n },\n 'ai.response.providerMetadata': JSON.stringify(\n processedStep.providerMetadata,\n ),\n },\n }),\n );\n } catch (error) {\n // ignore error setting telemetry attributes\n } finally {\n doStreamSpan.end();\n }\n\n const clientToolCalls = stepToolCalls.filter(\n toolCall => toolCall.providerExecuted !== true,\n );\n const clientToolOutputs = stepToolOutputs.filter(\n toolOutput => toolOutput.providerExecuted !== true,\n );\n\n // Track provider-executed tool calls that support deferred results.\n // In programmatic tool calling, a server tool (e.g., code_execution) may\n // trigger a client tool, and the server tool's result is deferred until\n // the client tool's result is sent back.\n for (const toolCall of stepToolCalls) {\n if (toolCall.providerExecuted !== true) continue;\n const tool = tools?.[toolCall.toolName];\n if (\n tool?.type === 'provider' &&\n tool.supportsDeferredResults\n ) {\n // Check if this tool call already has a result in the current step\n const hasResultInStep = stepToolOutputs.some(\n output =>\n (output.type === 'tool-result' ||\n output.type === 'tool-error') &&\n output.toolCallId === toolCall.toolCallId,\n );\n if (!hasResultInStep) {\n pendingDeferredToolCalls.set(toolCall.toolCallId, {\n toolName: toolCall.toolName,\n });\n }\n }\n }\n\n // Mark deferred tool calls as resolved when we receive their results\n for (const output of stepToolOutputs) {\n if (\n output.type === 'tool-result' ||\n output.type === 'tool-error'\n ) {\n pendingDeferredToolCalls.delete(output.toolCallId);\n }\n }\n\n // Clear the step and chunk timeouts before the next step is started\n clearStepTimeout();\n clearChunkTimeout();\n\n if (\n // Continue if:\n // 1. There are client tool calls that have all been executed, OR\n // 2. There are pending deferred results from provider-executed tools\n ((clientToolCalls.length > 0 &&\n clientToolOutputs.length === clientToolCalls.length) ||\n pendingDeferredToolCalls.size > 0) &&\n // continue until a stop condition is met:\n !(await isStopConditionMet({\n stopConditions,\n steps: recordedSteps,\n }))\n ) {\n // append to messages for the next step:\n responseMessages.push(\n ...(await toResponseMessages({\n content:\n // use transformed content to create the messages for the next step:\n recordedSteps[recordedSteps.length - 1].content,\n tools,\n })),\n );\n\n try {\n await streamStep({\n currentStep: currentStep + 1,\n responseMessages,\n usage: combinedUsage,\n });\n } catch (error) {\n controller.enqueue({\n type: 'error',\n error,\n });\n\n self.closeStream();\n }\n } else {\n controller.enqueue({\n type: 'finish',\n finishReason: stepFinishReason,\n rawFinishReason: stepRawFinishReason,\n totalUsage: combinedUsage,\n });\n\n self.closeStream(); // close the stitchable stream\n }\n },\n }),\n ),\n );\n } finally {\n clearStepTimeout();\n clearChunkTimeout();\n }\n }\n\n // add the initial stream to the stitchable stream\n await streamStep({\n currentStep: 0,\n responseMessages: initialResponseMessages,\n usage: createNullLanguageModelUsage(),\n });\n },\n }).catch(error => {\n // add an error stream part and close the streams:\n self.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'error', error });\n controller.close();\n },\n }),\n );\n self.closeStream();\n });\n }\n\n get steps() {\n // when any of the promises are accessed, the stream is consumed\n // so it resolves without needing to consume the stream separately\n this.consumeStream();\n\n return this._steps.promise;\n }\n\n private get finalStep() {\n return this.steps.then(steps => steps[steps.length - 1]);\n }\n\n get content() {\n return this.finalStep.then(step => step.content);\n }\n\n get warnings() {\n return this.finalStep.then(step => step.warnings);\n }\n\n get providerMetadata() {\n return this.finalStep.then(step => step.providerMetadata);\n }\n\n get text() {\n return this.finalStep.then(step => step.text);\n }\n\n get reasoningText() {\n return this.finalStep.then(step => step.reasoningText);\n }\n\n get reasoning() {\n return this.finalStep.then(step => step.reasoning);\n }\n\n get sources() {\n return this.finalStep.then(step => step.sources);\n }\n\n get files() {\n return this.finalStep.then(step => step.files);\n }\n\n get toolCalls() {\n return this.finalStep.then(step => step.toolCalls);\n }\n\n get staticToolCalls() {\n return this.finalStep.then(step => step.staticToolCalls);\n }\n\n get dynamicToolCalls() {\n return this.finalStep.then(step => step.dynamicToolCalls);\n }\n\n get toolResults() {\n return this.finalStep.then(step => step.toolResults);\n }\n\n get staticToolResults() {\n return this.finalStep.then(step => step.staticToolResults);\n }\n\n get dynamicToolResults() {\n return this.finalStep.then(step => step.dynamicToolResults);\n }\n\n get usage() {\n return this.finalStep.then(step => step.usage);\n }\n\n get request() {\n return this.finalStep.then(step => step.request);\n }\n\n get response() {\n return this.finalStep.then(step => step.response);\n }\n\n get totalUsage() {\n // when any of the promises are accessed, the stream is consumed\n // so it resolves without needing to consume the stream separately\n this.consumeStream();\n\n return this._totalUsage.promise;\n }\n\n get finishReason() {\n // when any of the promises are accessed, the stream is consumed\n // so it resolves without needing to consume the stream separately\n this.consumeStream();\n\n return this._finishReason.promise;\n }\n\n get rawFinishReason() {\n // when any of the promises are accessed, the stream is consumed\n // so it resolves without needing to consume the stream separately\n this.consumeStream();\n\n return this._rawFinishReason.promise;\n }\n\n /**\n * Split out a new stream from the original stream.\n * The original stream is replaced to allow for further splitting,\n * since we do not know how many times the stream will be split.\n *\n * Note: this leads to buffering the stream content on the server.\n * However, the LLM results are expected to be small enough to not cause issues.\n */\n private teeStream() {\n const [stream1, stream2] = this.baseStream.tee();\n this.baseStream = stream2;\n return stream1;\n }\n\n get textStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream<\n EnrichedStreamPart>,\n string\n >({\n transform({ part }, controller) {\n if (part.type === 'text-delta') {\n controller.enqueue(part.text);\n }\n },\n }),\n ),\n );\n }\n\n get fullStream(): AsyncIterableStream> {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream<\n EnrichedStreamPart>,\n TextStreamPart\n >({\n transform({ part }, controller) {\n controller.enqueue(part);\n },\n }),\n ),\n );\n }\n\n async consumeStream(options?: ConsumeStreamOptions): Promise {\n try {\n await consumeStream({\n stream: this.fullStream,\n onError: options?.onError,\n });\n } catch (error) {\n options?.onError?.(error);\n }\n }\n\n get experimental_partialOutputStream(): AsyncIterableStream<\n InferPartialOutput\n > {\n return this.partialOutputStream;\n }\n\n get partialOutputStream(): AsyncIterableStream> {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream<\n EnrichedStreamPart>,\n InferPartialOutput\n >({\n transform({ partialOutput }, controller) {\n if (partialOutput != null) {\n controller.enqueue(partialOutput);\n }\n },\n }),\n ),\n );\n }\n\n get elementStream(): AsyncIterableStream> {\n const transform = this.outputSpecification?.createElementStreamTransform();\n\n if (transform == null) {\n throw new UnsupportedFunctionalityError({\n functionality: `element streams in ${this.outputSpecification?.name ?? 'text'} mode`,\n });\n }\n\n return createAsyncIterableStream(this.teeStream().pipeThrough(transform));\n }\n\n get output(): Promise> {\n return this.finalStep.then(step => {\n const output = this.outputSpecification ?? text();\n return output.parseCompleteOutput(\n { text: step.text },\n {\n response: step.response,\n usage: step.usage,\n finishReason: step.finishReason,\n },\n );\n });\n }\n\n toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning = true,\n sendSources = false,\n sendStart = true,\n sendFinish = true,\n onError = getErrorMessage,\n }: UIMessageStreamOptions = {}): AsyncIterableStream<\n InferUIMessageChunk\n > {\n const responseMessageId =\n generateMessageId != null\n ? getResponseUIMessageId({\n originalMessages,\n responseMessageId: generateMessageId,\n })\n : undefined;\n\n // TODO simplify once dynamic is no longer needed for invalid tool inputs\n const isDynamic = (part: { toolName: string; dynamic?: boolean }) => {\n const tool = this.tools?.[part.toolName];\n\n // provider-executed, dynamic tools are not listed in the tools object\n if (tool == null) {\n return part.dynamic;\n }\n\n return tool?.type === 'dynamic' ? true : undefined;\n };\n\n const baseStream = this.fullStream.pipeThrough(\n new TransformStream<\n TextStreamPart,\n UIMessageChunk<\n InferUIMessageMetadata,\n InferUIMessageData\n >\n >({\n transform: async (part, controller) => {\n const messageMetadataValue = messageMetadata?.({ part });\n\n const partType = part.type;\n switch (partType) {\n case 'text-start': {\n controller.enqueue({\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'text-delta': {\n controller.enqueue({\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'text-end': {\n controller.enqueue({\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'reasoning-start':\n case 'reasoning-end': {\n if (sendReasoning) {\n controller.enqueue({\n type: partType,\n id: part.id,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n break;\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n controller.enqueue({\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n break;\n }\n\n case 'file': {\n controller.enqueue({\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n break;\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n controller.enqueue({\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n\n if (sendSources && part.sourceType === 'document') {\n controller.enqueue({\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n });\n }\n break;\n }\n\n case 'tool-input-start': {\n const dynamic = isDynamic(part);\n\n controller.enqueue({\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(part.toolMetadata != null\n ? { toolMetadata: part.toolMetadata }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n ...(part.title != null ? { title: part.title } : {}),\n });\n break;\n }\n\n case 'tool-input-delta': {\n controller.enqueue({\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n });\n break;\n }\n\n case 'tool-call': {\n const dynamic = isDynamic(part);\n\n if (part.invalid) {\n controller.enqueue({\n type: 'tool-input-error',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(part.toolMetadata != null\n ? { toolMetadata: part.toolMetadata }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n errorText: onError(part.error),\n ...(part.title != null ? { title: part.title } : {}),\n });\n } else {\n controller.enqueue({\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(part.toolMetadata != null\n ? { toolMetadata: part.toolMetadata }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n ...(part.title != null ? { title: part.title } : {}),\n });\n }\n\n break;\n }\n\n case 'tool-approval-request': {\n controller.enqueue({\n type: 'tool-approval-request',\n approvalId: part.approvalId,\n toolCallId: part.toolCall.toolCallId,\n });\n break;\n }\n\n case 'tool-result': {\n const dynamic = isDynamic(part);\n\n controller.enqueue({\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(part.toolMetadata != null\n ? { toolMetadata: part.toolMetadata }\n : {}),\n ...(part.preliminary != null\n ? { preliminary: part.preliminary }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n });\n break;\n }\n\n case 'tool-error': {\n const dynamic = isDynamic(part);\n\n controller.enqueue({\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: part.providerExecuted\n ? typeof part.error === 'string'\n ? part.error\n : JSON.stringify(part.error)\n : onError(part.error),\n ...(part.providerExecuted != null\n ? { providerExecuted: part.providerExecuted }\n : {}),\n ...(part.providerMetadata != null\n ? { providerMetadata: part.providerMetadata }\n : {}),\n ...(part.toolMetadata != null\n ? { toolMetadata: part.toolMetadata }\n : {}),\n ...(dynamic != null ? { dynamic } : {}),\n });\n break;\n }\n\n case 'tool-output-denied': {\n controller.enqueue({\n type: 'tool-output-denied',\n toolCallId: part.toolCallId,\n });\n break;\n }\n\n case 'error': {\n controller.enqueue({\n type: 'error',\n errorText: onError(part.error),\n });\n break;\n }\n\n case 'start-step': {\n controller.enqueue({ type: 'start-step' });\n break;\n }\n\n case 'finish-step': {\n controller.enqueue({ type: 'finish-step' });\n break;\n }\n\n case 'start': {\n if (sendStart) {\n controller.enqueue({\n type: 'start',\n ...(messageMetadataValue != null\n ? { messageMetadata: messageMetadataValue }\n : {}),\n ...(responseMessageId != null\n ? { messageId: responseMessageId }\n : {}),\n });\n }\n break;\n }\n\n case 'finish': {\n if (sendFinish) {\n controller.enqueue({\n type: 'finish',\n finishReason: part.finishReason,\n ...(messageMetadataValue != null\n ? { messageMetadata: messageMetadataValue }\n : {}),\n });\n }\n break;\n }\n\n case 'abort': {\n controller.enqueue(part);\n break;\n }\n\n case 'tool-input-end': {\n break;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n break;\n }\n\n default: {\n const exhaustiveCheck: never = partType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n\n // start and finish events already have metadata\n // so we only need to send metadata for other parts\n if (\n messageMetadataValue != null &&\n partType !== 'start' &&\n partType !== 'finish'\n ) {\n controller.enqueue({\n type: 'message-metadata',\n messageMetadata: messageMetadataValue,\n });\n }\n },\n }),\n );\n\n return createAsyncIterableStream(\n handleUIMessageStreamFinish({\n stream: baseStream,\n messageId: responseMessageId ?? generateMessageId?.(),\n originalMessages,\n onFinish,\n onError,\n }),\n );\n }\n\n pipeUIMessageStreamToResponse(\n response: ServerResponse,\n {\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n ...init\n }: UIMessageStreamResponseInit & UIMessageStreamOptions = {},\n ) {\n pipeUIMessageStreamToResponse({\n response,\n stream: this.toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n }),\n ...init,\n });\n }\n\n pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit) {\n pipeTextStreamToResponse({\n response,\n textStream: this.textStream,\n ...init,\n });\n }\n\n toUIMessageStreamResponse({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n ...init\n }: UIMessageStreamResponseInit &\n UIMessageStreamOptions = {}): Response {\n return createUIMessageStreamResponse({\n stream: this.toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n }),\n ...init,\n });\n }\n\n toTextStreamResponse(init?: ResponseInit): Response {\n return createTextStreamResponse({\n textStream: this.textStream,\n ...init,\n });\n }\n}\n","import {\n TypeValidationContext,\n TypeValidationError,\n type JSONObject,\n} from '@ai-sdk/provider';\nimport {\n lazySchema,\n StandardSchemaV1,\n validateTypes,\n zodSchema,\n type FlexibleSchema,\n type Tool,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { InvalidArgumentError } from '../error';\nimport { jsonValueSchema } from '../types/json-value';\nimport { providerMetadataSchema } from '../types/provider-metadata';\nimport type {\n DataUIPart,\n InferUIMessageData,\n InferUIMessageTools,\n ToolUIPart,\n UIMessage,\n} from './ui-messages';\n\nconst toolMetadataSchema: z.ZodType = z.record(\n z.string(),\n jsonValueSchema.optional(),\n);\n\nconst uiMessagesSchema = lazySchema(() =>\n zodSchema(\n z\n .array(\n z.object({\n id: z.string(),\n role: z.enum(['system', 'user', 'assistant']),\n metadata: z.unknown().optional(),\n parts: z\n .array(\n z.union([\n z.object({\n type: z.literal('text'),\n text: z.string(),\n state: z.enum(['streaming', 'done']).optional(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('reasoning'),\n text: z.string(),\n state: z.enum(['streaming', 'done']).optional(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('source-url'),\n sourceId: z.string(),\n url: z.string(),\n title: z.string().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('source-document'),\n sourceId: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('file'),\n mediaType: z.string(),\n filename: z.string().optional(),\n url: z.string(),\n providerMetadata: providerMetadataSchema.optional(),\n }),\n z.object({\n type: z.literal('step-start'),\n }),\n z.object({\n type: z.string().startsWith('data-'),\n id: z.string().optional(),\n data: z.unknown(),\n }),\n z.object({\n type: z.literal('dynamic-tool'),\n toolName: z.string(),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('input-streaming'),\n input: z.unknown().optional(),\n providerExecuted: z.boolean().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n approval: z.never().optional(),\n }),\n z.object({\n type: z.literal('dynamic-tool'),\n toolName: z.string(),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('input-available'),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.never().optional(),\n }),\n z.object({\n type: z.literal('dynamic-tool'),\n toolName: z.string(),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('approval-requested'),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.object({\n id: z.string(),\n approved: z.never().optional(),\n reason: z.never().optional(),\n }),\n }),\n z.object({\n type: z.literal('dynamic-tool'),\n toolName: z.string(),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('approval-responded'),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.object({\n id: z.string(),\n approved: z.boolean(),\n reason: z.string().optional(),\n }),\n }),\n z.object({\n type: z.literal('dynamic-tool'),\n toolName: z.string(),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('output-available'),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n output: z.unknown(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n resultProviderMetadata: providerMetadataSchema.optional(),\n preliminary: z.boolean().optional(),\n approval: z\n .object({\n id: z.string(),\n approved: z.literal(true),\n reason: z.string().optional(),\n })\n .optional(),\n }),\n z.object({\n type: z.literal('dynamic-tool'),\n toolName: z.string(),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('output-error'),\n input: z.unknown(),\n rawInput: z.unknown().optional(),\n providerExecuted: z.boolean().optional(),\n output: z.never().optional(),\n errorText: z.string(),\n callProviderMetadata: providerMetadataSchema.optional(),\n resultProviderMetadata: providerMetadataSchema.optional(),\n approval: z\n .object({\n id: z.string(),\n approved: z.literal(true),\n reason: z.string().optional(),\n })\n .optional(),\n }),\n z.object({\n type: z.literal('dynamic-tool'),\n toolName: z.string(),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('output-denied'),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.object({\n id: z.string(),\n approved: z.literal(false),\n reason: z.string().optional(),\n }),\n }),\n z.object({\n type: z.string().startsWith('tool-'),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('input-streaming'),\n providerExecuted: z.boolean().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n input: z.unknown().optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n approval: z.never().optional(),\n }),\n z.object({\n type: z.string().startsWith('tool-'),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('input-available'),\n providerExecuted: z.boolean().optional(),\n input: z.unknown(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.never().optional(),\n }),\n z.object({\n type: z.string().startsWith('tool-'),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('approval-requested'),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.object({\n id: z.string(),\n approved: z.never().optional(),\n reason: z.never().optional(),\n }),\n }),\n z.object({\n type: z.string().startsWith('tool-'),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('approval-responded'),\n input: z.unknown(),\n providerExecuted: z.boolean().optional(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.object({\n id: z.string(),\n approved: z.boolean(),\n reason: z.string().optional(),\n }),\n }),\n z.object({\n type: z.string().startsWith('tool-'),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('output-available'),\n providerExecuted: z.boolean().optional(),\n input: z.unknown(),\n output: z.unknown(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n resultProviderMetadata: providerMetadataSchema.optional(),\n preliminary: z.boolean().optional(),\n approval: z\n .object({\n id: z.string(),\n approved: z.literal(true),\n reason: z.string().optional(),\n })\n .optional(),\n }),\n z.object({\n type: z.string().startsWith('tool-'),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('output-error'),\n providerExecuted: z.boolean().optional(),\n input: z.unknown(),\n rawInput: z.unknown().optional(),\n output: z.never().optional(),\n errorText: z.string(),\n callProviderMetadata: providerMetadataSchema.optional(),\n resultProviderMetadata: providerMetadataSchema.optional(),\n approval: z\n .object({\n id: z.string(),\n approved: z.literal(true),\n reason: z.string().optional(),\n })\n .optional(),\n }),\n z.object({\n type: z.string().startsWith('tool-'),\n toolCallId: z.string(),\n toolMetadata: toolMetadataSchema.optional(),\n state: z.literal('output-denied'),\n providerExecuted: z.boolean().optional(),\n input: z.unknown(),\n output: z.never().optional(),\n errorText: z.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z.object({\n id: z.string(),\n approved: z.literal(false),\n reason: z.string().optional(),\n }),\n }),\n ]),\n )\n .nonempty('Message must contain at least one part'),\n }),\n )\n .nonempty('Messages array must not be empty'),\n ),\n);\n\nexport type SafeValidateUIMessagesResult =\n | {\n success: true;\n data: Array;\n }\n | {\n success: false;\n error: Error;\n };\n\n/**\n * Validates a list of UI messages like `validateUIMessages`,\n * but instead of throwing it returns `{ success: true, data }`\n * or `{ success: false, error }`.\n */\nexport async function safeValidateUIMessages({\n messages,\n metadataSchema,\n dataSchemas,\n tools,\n}: {\n messages: unknown;\n metadataSchema?: FlexibleSchema;\n dataSchemas?: {\n [NAME in keyof InferUIMessageData & string]?: FlexibleSchema<\n InferUIMessageData[NAME]\n >;\n };\n tools?: {\n [NAME in keyof InferUIMessageTools & string]?: Tool<\n InferUIMessageTools[NAME]['input'],\n InferUIMessageTools[NAME]['output']\n >;\n };\n}): Promise> {\n try {\n if (messages == null) {\n return {\n success: false,\n error: new InvalidArgumentError({\n parameter: 'messages',\n value: messages,\n message: 'messages parameter must be provided',\n }),\n };\n }\n\n const validatedMessages = await validateTypes({\n value: messages,\n schema: uiMessagesSchema,\n });\n\n if (metadataSchema) {\n for (const [msgIdx, message] of validatedMessages.entries()) {\n await validateTypes({\n value: message.metadata,\n schema: metadataSchema,\n context: {\n field: `messages[${msgIdx}].metadata`,\n entityId: message.id,\n },\n });\n }\n }\n\n if (dataSchemas || tools) {\n for (const [msgIdx, message] of validatedMessages.entries()) {\n for (const [partIdx, part] of message.parts.entries()) {\n // Data part validation\n if (dataSchemas && part.type.startsWith('data-')) {\n const dataPart = part as DataUIPart>;\n const dataName = dataPart.type.slice(5);\n const dataSchema = dataSchemas[dataName];\n\n if (!dataSchema) {\n return {\n success: false,\n error: new TypeValidationError({\n value: dataPart.data,\n cause: `No data schema found for data part ${dataName}`,\n context: {\n field: `messages[${msgIdx}].parts[${partIdx}].data`,\n entityName: dataName,\n entityId: dataPart.id,\n },\n }),\n };\n }\n\n await validateTypes({\n value: dataPart.data,\n schema: dataSchema,\n context: {\n field: `messages[${msgIdx}].parts[${partIdx}].data`,\n entityName: dataName,\n entityId: dataPart.id,\n },\n });\n }\n\n // Tool part validation\n if (tools && part.type.startsWith('tool-')) {\n const toolPart = part as ToolUIPart<\n InferUIMessageTools\n >;\n const toolName = toolPart.type.slice(5);\n const tool = tools[toolName];\n\n if (\n !tool &&\n (toolPart.state === 'output-available' ||\n toolPart.state === 'output-error' ||\n toolPart.state === 'output-denied')\n ) {\n continue;\n }\n\n // TODO support dynamic tools\n if (!tool) {\n return {\n success: false,\n error: new TypeValidationError({\n value: toolPart.input,\n cause: `No tool schema found for tool part ${toolName}`,\n context: {\n field: `messages[${msgIdx}].parts[${partIdx}].input`,\n entityName: toolName,\n entityId: toolPart.toolCallId,\n },\n }),\n };\n }\n\n // Tool input validation\n if (\n toolPart.state === 'input-available' ||\n toolPart.state === 'output-available' ||\n (toolPart.state === 'output-error' &&\n toolPart.input !== undefined)\n ) {\n await validateTypes({\n value: toolPart.input,\n schema: tool.inputSchema,\n context: {\n field: `messages[${msgIdx}].parts[${partIdx}].input`,\n entityName: toolName,\n entityId: toolPart.toolCallId,\n },\n });\n }\n\n // Tool output validation\n if (toolPart.state === 'output-available' && tool.outputSchema) {\n await validateTypes({\n value: toolPart.output,\n schema: tool.outputSchema,\n context: {\n field: `messages[${msgIdx}].parts[${partIdx}].output`,\n entityName: toolName,\n entityId: toolPart.toolCallId,\n },\n });\n }\n }\n }\n }\n }\n\n return {\n success: true,\n data: validatedMessages as Array,\n };\n } catch (error) {\n const err = error as Error;\n\n return {\n success: false,\n error: err,\n };\n }\n}\n\n/**\n * Validates a list of UI messages.\n *\n * Metadata, data parts, and generic tool call structures are only validated if\n * the corresponding schemas are provided. Otherwise, they are assumed to be\n * valid.\n */\nexport async function validateUIMessages({\n messages,\n metadataSchema,\n dataSchemas,\n tools,\n}: {\n messages: unknown;\n metadataSchema?: FlexibleSchema;\n dataSchemas?: {\n [NAME in keyof InferUIMessageData & string]?: FlexibleSchema<\n InferUIMessageData[NAME]\n >;\n };\n tools?: {\n [NAME in keyof InferUIMessageTools & string]?: Tool<\n InferUIMessageTools[NAME]['input'],\n InferUIMessageTools[NAME]['output']\n >;\n };\n}): Promise> {\n const response = await safeValidateUIMessages({\n messages,\n metadataSchema,\n dataSchemas,\n tools,\n });\n\n if (!response.success) throw response.error;\n\n return response.data;\n}\n","/**\n * Splits an array into chunks of a specified size.\n *\n * @template T - The type of elements in the array.\n * @param {T[]} array - The array to split.\n * @param {number} chunkSize - The size of each chunk.\n * @returns {T[][]} - A new array containing the chunks.\n */\nexport function splitArray(array: T[], chunkSize: number): T[][] {\n if (chunkSize <= 0) {\n throw new Error('chunkSize must be greater than 0');\n }\n\n const result = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n result.push(array.slice(i, i + chunkSize));\n }\n\n return result;\n}\n","import {\n withUserAgentSuffix,\n type ProviderOptions,\n} from '@ai-sdk/provider-utils';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveEmbeddingModel } from '../model/resolve-model';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport type { Embedding, EmbeddingModel, ProviderMetadata } from '../types';\nimport type { Warning } from '../types/warning';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { splitArray } from '../util/split-array';\nimport type { EmbedManyResult } from './embed-many-result';\nimport { VERSION } from '../version';\n\n/**\n * Embed several values using an embedding model. The type of the value is defined\n * by the embedding model.\n *\n * `embedMany` automatically splits large requests into smaller chunks if the model\n * has a limit on how many embeddings can be generated in a single call.\n *\n * @param model - The embedding model to use.\n * @param values - The values that should be embedded.\n *\n * @param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n * @param abortSignal - An optional abort signal that can be used to cancel the call.\n * @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n *\n * @param maxParallelCalls - Maximum number of concurrent requests. Default: Infinity.\n *\n * @param experimental_telemetry - Optional telemetry configuration (experimental).\n *\n * @param providerOptions - Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n *\n * @returns A result object that contains the embeddings, the value, and additional information.\n */\nexport async function embedMany({\n model: modelArg,\n values,\n maxParallelCalls = Infinity,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n providerOptions,\n experimental_telemetry: telemetry,\n}: {\n /**\n * The embedding model to use.\n */\n model: EmbeddingModel;\n\n /**\n * The values that should be embedded.\n */\n values: Array;\n\n /**\n * Maximum number of retries per embedding model call. Set to 0 to disable retries.\n *\n * @default 2\n */\n maxRetries?: number;\n\n /**\n * Abort signal.\n */\n abortSignal?: AbortSignal;\n\n /**\n * Additional headers to include in the request.\n * Only applicable for HTTP-based providers.\n */\n headers?: Record;\n\n /**\n * Optional telemetry configuration (experimental).\n */\n experimental_telemetry?: TelemetrySettings;\n\n /**\n * Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * Maximum number of concurrent requests.\n *\n * @default Infinity\n */\n maxParallelCalls?: number;\n}): Promise {\n const model = resolveEmbeddingModel(modelArg);\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const headersWithUserAgent = withUserAgentSuffix(\n headers ?? {},\n `ai/${VERSION}`,\n );\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n\n return recordSpan({\n name: 'ai.embedMany',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: 'ai.embedMany', telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => values.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async span => {\n const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([\n model.maxEmbeddingsPerCall,\n model.supportsParallelCalls,\n ]);\n\n // the model has not specified limits on\n // how many embeddings can be generated in a single call\n if (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {\n const { embeddings, usage, warnings, response, providerMetadata } =\n await retry(() => {\n // nested spans to align with the embedMany telemetry data:\n return recordSpan({\n name: 'ai.embedMany.doEmbed',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.embedMany.doEmbed',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => values.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async doEmbedSpan => {\n const modelResponse = await model.doEmbed({\n values,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions,\n });\n\n const embeddings = modelResponse.embeddings;\n const usage = modelResponse.usage ?? { tokens: NaN };\n\n doEmbedSpan.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding =>\n JSON.stringify(embedding),\n ),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return {\n embeddings,\n usage,\n warnings: modelResponse.warnings,\n providerMetadata: modelResponse.providerMetadata,\n response: modelResponse.response,\n };\n },\n });\n });\n\n span.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n logWarnings({\n warnings,\n provider: model.provider,\n model: model.modelId,\n });\n\n return new DefaultEmbedManyResult({\n values,\n embeddings,\n usage,\n warnings,\n providerMetadata,\n responses: [response],\n });\n }\n\n // split the values into chunks that are small enough for the model:\n const valueChunks = splitArray(values, maxEmbeddingsPerCall);\n\n // serially embed the chunks:\n const embeddings: Array = [];\n const warnings: Array = [];\n const responses: Array<\n | {\n headers?: Record;\n body?: unknown;\n }\n | undefined\n > = [];\n let tokens = 0;\n let providerMetadata: ProviderMetadata | undefined;\n\n const parallelChunks = splitArray(\n valueChunks,\n supportsParallelCalls ? maxParallelCalls : 1,\n );\n\n for (const parallelChunk of parallelChunks) {\n const results = await Promise.all(\n parallelChunk.map(chunk => {\n return retry(() => {\n // nested spans to align with the embedMany telemetry data:\n return recordSpan({\n name: 'ai.embedMany.doEmbed',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.embedMany.doEmbed',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.values': {\n input: () => chunk.map(value => JSON.stringify(value)),\n },\n },\n }),\n tracer,\n fn: async doEmbedSpan => {\n const modelResponse = await model.doEmbed({\n values: chunk,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions,\n });\n\n const embeddings = modelResponse.embeddings;\n const usage = modelResponse.usage ?? { tokens: NaN };\n\n doEmbedSpan.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding =>\n JSON.stringify(embedding),\n ),\n },\n 'ai.usage.tokens': usage.tokens,\n },\n }),\n );\n\n return {\n embeddings,\n usage,\n warnings: modelResponse.warnings,\n providerMetadata: modelResponse.providerMetadata,\n response: modelResponse.response,\n };\n },\n });\n });\n }),\n );\n\n for (const result of results) {\n embeddings.push(...result.embeddings);\n warnings.push(...result.warnings);\n responses.push(result.response);\n tokens += result.usage.tokens;\n if (result.providerMetadata) {\n if (!providerMetadata) {\n providerMetadata = { ...result.providerMetadata };\n } else {\n for (const [providerName, metadata] of Object.entries(\n result.providerMetadata,\n )) {\n providerMetadata[providerName] = {\n ...(providerMetadata[providerName] ?? {}),\n ...metadata,\n };\n }\n }\n }\n }\n }\n\n span.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.embeddings': {\n output: () =>\n embeddings.map(embedding => JSON.stringify(embedding)),\n },\n 'ai.usage.tokens': tokens,\n },\n }),\n );\n\n logWarnings({\n warnings,\n provider: model.provider,\n model: model.modelId,\n });\n\n return new DefaultEmbedManyResult({\n values,\n embeddings,\n usage: { tokens },\n warnings,\n providerMetadata: providerMetadata,\n responses,\n });\n },\n });\n}\n\nclass DefaultEmbedManyResult implements EmbedManyResult {\n readonly values: EmbedManyResult['values'];\n readonly embeddings: EmbedManyResult['embeddings'];\n readonly usage: EmbedManyResult['usage'];\n readonly warnings: EmbedManyResult['warnings'];\n readonly providerMetadata: EmbedManyResult['providerMetadata'];\n readonly responses: EmbedManyResult['responses'];\n\n constructor(options: {\n values: EmbedManyResult['values'];\n embeddings: EmbedManyResult['embeddings'];\n usage: EmbedManyResult['usage'];\n warnings: EmbedManyResult['warnings'];\n providerMetadata?: EmbedManyResult['providerMetadata'];\n responses?: EmbedManyResult['responses'];\n }) {\n this.values = options.values;\n this.embeddings = options.embeddings;\n this.usage = options.usage;\n this.warnings = options.warnings;\n this.providerMetadata = options.providerMetadata;\n this.responses = options.responses;\n }\n}\n","import type { JSONValue } from '@ai-sdk/provider';\nimport {\n createIdGenerator,\n withUserAgentSuffix,\n type FlexibleSchema,\n type InferSchema,\n type ProviderOptions,\n} from '@ai-sdk/provider-utils';\nimport { NoObjectGeneratedError } from '../error/no-object-generated-error';\nimport { extractReasoningContent } from '../generate-text/extract-reasoning-content';\nimport { extractTextContent } from '../generate-text/extract-text-content';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport type { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport type {\n CallWarning,\n FinishReason,\n LanguageModel,\n} from '../types/language-model';\nimport type { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { ProviderMetadata } from '../types/provider-metadata';\nimport { asLanguageModelUsage, type LanguageModelUsage } from '../types/usage';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { prepareHeaders } from '../util/prepare-headers';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { VERSION } from '../version';\nimport type { GenerateObjectResult } from './generate-object-result';\nimport { getOutputStrategy } from './output-strategy';\nimport { parseAndValidateObjectResultWithRepair } from './parse-and-validate-object-result';\nimport type { RepairTextFunction } from './repair-text';\nimport { validateObjectGenerationInput } from './validate-object-generation-input';\n\nconst originalGenerateId = createIdGenerator({ prefix: 'aiobj', size: 24 });\n\n/**\n * Generate a structured, typed object for a given prompt and schema using a language model.\n *\n * This function does not stream the output. If you want to stream the output, use `streamObject` instead.\n *\n * @param model - The language model to use.\n *\n * @param system - A system message that will be part of the prompt.\n * @param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n * @param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n * @param allowSystemInMessages - Whether system messages are allowed in the `prompt` or `messages` fields. When unset, system messages are allowed with a warning.\n *\n * @param maxOutputTokens - Maximum number of tokens to generate.\n * @param temperature - Temperature setting.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topP - Nucleus sampling.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topK - Only sample from the top K options for each subsequent token.\n * Used to remove \"long tail\" low probability responses.\n * Recommended for advanced use cases only. You usually only need to use temperature.\n * @param presencePenalty - Presence penalty setting.\n * It affects the likelihood of the model to repeat information that is already in the prompt.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param frequencyPenalty - Frequency penalty setting.\n * It affects the likelihood of the model to repeatedly use the same words or phrases.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param stopSequences - Stop sequences.\n * If set, the model will stop generating text when one of the stop sequences is generated.\n * @param seed - The seed (integer) to use for random sampling.\n * If set and supported by the model, calls will generate deterministic results.\n *\n * @param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n * @param abortSignal - An optional abort signal that can be used to cancel the call.\n * @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n *\n * @param schema - The schema of the object that the model should generate.\n * @param schemaName - Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema name.\n * @param schemaDescription - Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema description.\n *\n * @param output - The type of the output.\n *\n * - 'object': The output is an object.\n * - 'array': The output is an array.\n * - 'enum': The output is an enum.\n * - 'no-schema': The output is not a schema.\n *\n * @param experimental_repairText - A function that attempts to repair the raw output of the model\n * to enable JSON parsing.\n *\n * @param experimental_telemetry - Optional telemetry configuration (experimental).\n *\n * @param providerOptions - Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n *\n * @returns\n * A result object that contains the generated object, the finish reason, the token usage, and additional information.\n *\n * @deprecated Use `generateText` with an `output` setting instead.\n */\nexport async function generateObject<\n SCHEMA extends FlexibleSchema = FlexibleSchema,\n OUTPUT extends 'object' | 'array' | 'enum' | 'no-schema' =\n InferSchema extends string ? 'enum' : 'object',\n RESULT = OUTPUT extends 'array'\n ? Array>\n : InferSchema,\n>(\n options: Omit &\n Prompt &\n (OUTPUT extends 'enum'\n ? {\n /**\n * The enum values that the model should use.\n */\n enum: Array;\n output: 'enum';\n }\n : OUTPUT extends 'no-schema'\n ? {}\n : {\n /**\n * The schema of the object that the model should generate.\n */\n schema: SCHEMA;\n\n /**\n * Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema name.\n */\n schemaName?: string;\n\n /**\n * Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema description.\n */\n schemaDescription?: string;\n }) & {\n output?: OUTPUT;\n\n /**\n * The language model to use.\n */\n model: LanguageModel;\n /**\n * A function that attempts to repair the raw output of the model\n * to enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\n * Optional telemetry configuration (experimental).\n */\n\n experimental_telemetry?: TelemetrySettings;\n\n /**\n * Custom download function to use for URLs.\n *\n * By default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\n * Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n };\n },\n): Promise> {\n const {\n model: modelArg,\n output = 'object',\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n experimental_repairText: repairText,\n experimental_telemetry: telemetry,\n experimental_download: download,\n providerOptions,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n } = {},\n ...settings\n } = options;\n\n const model = resolveLanguageModel(modelArg);\n\n const enumValues = 'enum' in options ? options.enum : undefined;\n const {\n schema: inputSchema,\n schemaDescription,\n schemaName,\n } = 'schema' in options ? options : {};\n\n validateObjectGenerationInput({\n output,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n enumValues,\n });\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const outputStrategy = getOutputStrategy({\n output,\n schema: inputSchema,\n enumValues,\n });\n\n const callSettings = prepareCallSettings(settings);\n\n const headersWithUserAgent = withUserAgentSuffix(\n headers ?? {},\n `ai/${VERSION}`,\n );\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { ...callSettings, maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n const jsonSchema = await outputStrategy.jsonSchema();\n\n try {\n return await recordSpan({\n name: 'ai.generateObject',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateObject',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.schema':\n jsonSchema != null\n ? { input: () => JSON.stringify(jsonSchema) }\n : undefined,\n 'ai.schema.name': schemaName,\n 'ai.schema.description': schemaDescription,\n 'ai.settings.output': outputStrategy.type,\n },\n }),\n tracer,\n fn: async span => {\n let result: string;\n let finishReason: FinishReason;\n let usage: LanguageModelUsage;\n let warnings: CallWarning[] | undefined;\n let response: LanguageModelResponseMetadata;\n let request: LanguageModelRequestMetadata;\n let resultProviderMetadata: ProviderMetadata | undefined;\n let reasoning: string | undefined;\n\n const standardizedPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n supportedUrls: await model.supportedUrls,\n download,\n });\n\n const generateResult = await retry(() =>\n recordSpan({\n name: 'ai.generateObject.doGenerate',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.generateObject.doGenerate',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(promptMessages),\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty':\n callSettings.frequencyPenalty,\n 'gen_ai.request.max_tokens': callSettings.maxOutputTokens,\n 'gen_ai.request.presence_penalty': callSettings.presencePenalty,\n 'gen_ai.request.temperature': callSettings.temperature,\n 'gen_ai.request.top_k': callSettings.topK,\n 'gen_ai.request.top_p': callSettings.topP,\n },\n }),\n tracer,\n fn: async span => {\n const result = await model.doGenerate({\n responseFormat: {\n type: 'json',\n schema: jsonSchema,\n name: schemaName,\n description: schemaDescription,\n },\n ...prepareCallSettings(settings),\n prompt: promptMessages,\n providerOptions,\n abortSignal,\n headers: headersWithUserAgent,\n });\n\n const responseData = {\n id: result.response?.id ?? generateId(),\n timestamp: result.response?.timestamp ?? currentDate(),\n modelId: result.response?.modelId ?? model.modelId,\n headers: result.response?.headers,\n body: result.response?.body,\n };\n\n const text = extractTextContent(result.content);\n const reasoning = extractReasoningContent(result.content);\n\n if (text === undefined) {\n throw new NoObjectGeneratedError({\n message:\n 'No object generated: the model did not return a response.',\n response: responseData,\n usage: asLanguageModelUsage(result.usage),\n finishReason: result.finishReason.unified,\n });\n }\n\n // Add response information to the span:\n span.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': result.finishReason.unified,\n 'ai.response.object': { output: () => text },\n 'ai.response.id': responseData.id,\n 'ai.response.model': responseData.modelId,\n 'ai.response.timestamp':\n responseData.timestamp.toISOString(),\n 'ai.response.providerMetadata': JSON.stringify(\n result.providerMetadata,\n ),\n\n // TODO rename telemetry attributes to inputTokens and outputTokens\n 'ai.usage.promptTokens': result.usage.inputTokens.total,\n 'ai.usage.completionTokens':\n result.usage.outputTokens.total,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [\n result.finishReason.unified,\n ],\n 'gen_ai.response.id': responseData.id,\n 'gen_ai.response.model': responseData.modelId,\n 'gen_ai.usage.input_tokens': result.usage.inputTokens.total,\n 'gen_ai.usage.output_tokens':\n result.usage.outputTokens.total,\n },\n }),\n );\n\n return {\n ...result,\n objectText: text,\n reasoning,\n responseData,\n };\n },\n }),\n );\n\n result = generateResult.objectText;\n finishReason = generateResult.finishReason.unified;\n usage = asLanguageModelUsage(generateResult.usage);\n warnings = generateResult.warnings;\n resultProviderMetadata = generateResult.providerMetadata;\n request = generateResult.request ?? {};\n response = generateResult.responseData;\n reasoning = generateResult.reasoning;\n\n logWarnings({\n warnings,\n provider: model.provider,\n model: model.modelId,\n });\n\n const object = await parseAndValidateObjectResultWithRepair(\n result,\n outputStrategy,\n repairText,\n {\n response,\n usage,\n finishReason,\n },\n );\n\n // Add response information to the span:\n span.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.providerMetadata': JSON.stringify(\n resultProviderMetadata,\n ),\n\n // TODO rename telemetry attributes to inputTokens and outputTokens\n 'ai.usage.promptTokens': usage.inputTokens,\n 'ai.usage.completionTokens': usage.outputTokens,\n },\n }),\n );\n\n return new DefaultGenerateObjectResult({\n object,\n reasoning,\n finishReason,\n usage,\n warnings,\n request,\n response,\n providerMetadata: resultProviderMetadata,\n });\n },\n });\n } catch (error) {\n throw wrapGatewayError(error);\n }\n}\n\nclass DefaultGenerateObjectResult implements GenerateObjectResult {\n readonly object: GenerateObjectResult['object'];\n readonly finishReason: GenerateObjectResult['finishReason'];\n readonly usage: GenerateObjectResult['usage'];\n readonly warnings: GenerateObjectResult['warnings'];\n readonly providerMetadata: GenerateObjectResult['providerMetadata'];\n readonly response: GenerateObjectResult['response'];\n readonly request: GenerateObjectResult['request'];\n readonly reasoning: GenerateObjectResult['reasoning'];\n\n constructor(options: {\n object: GenerateObjectResult['object'];\n finishReason: GenerateObjectResult['finishReason'];\n usage: GenerateObjectResult['usage'];\n warnings: GenerateObjectResult['warnings'];\n providerMetadata: GenerateObjectResult['providerMetadata'];\n response: GenerateObjectResult['response'];\n request: GenerateObjectResult['request'];\n reasoning: GenerateObjectResult['reasoning'];\n }) {\n this.object = options.object;\n this.finishReason = options.finishReason;\n this.usage = options.usage;\n this.warnings = options.warnings;\n this.providerMetadata = options.providerMetadata;\n this.response = options.response;\n this.request = options.request;\n this.reasoning = options.reasoning;\n }\n\n toJsonResponse(init?: ResponseInit): Response {\n return new Response(JSON.stringify(this.object), {\n status: init?.status ?? 200,\n headers: prepareHeaders(init?.headers, {\n 'content-type': 'application/json; charset=utf-8',\n }),\n });\n }\n}\n","import type {\n JSONValue,\n LanguageModelV3FinishReason,\n LanguageModelV3StreamPart,\n LanguageModelV3Usage,\n SharedV3ProviderMetadata,\n SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n createIdGenerator,\n DelayedPromise,\n type FlexibleSchema,\n type ProviderOptions,\n type InferSchema,\n} from '@ai-sdk/provider-utils';\nimport type { ServerResponse } from 'http';\nimport { logWarnings } from '../logger/log-warnings';\nimport { resolveLanguageModel } from '../model/resolve-model';\nimport type { CallSettings } from '../prompt/call-settings';\nimport { convertToLanguageModelPrompt } from '../prompt/convert-to-language-model-prompt';\nimport { prepareCallSettings } from '../prompt/prepare-call-settings';\nimport type { Prompt } from '../prompt/prompt';\nimport { standardizePrompt } from '../prompt/standardize-prompt';\nimport { wrapGatewayError } from '../prompt/wrap-gateway-error';\nimport { assembleOperationName } from '../telemetry/assemble-operation-name';\nimport { getBaseTelemetryAttributes } from '../telemetry/get-base-telemetry-attributes';\nimport { getTracer } from '../telemetry/get-tracer';\nimport { recordSpan } from '../telemetry/record-span';\nimport { selectTelemetryAttributes } from '../telemetry/select-telemetry-attributes';\nimport { stringifyForTelemetry } from '../telemetry/stringify-for-telemetry';\nimport type { TelemetrySettings } from '../telemetry/telemetry-settings';\nimport { createTextStreamResponse } from '../text-stream/create-text-stream-response';\nimport { pipeTextStreamToResponse } from '../text-stream/pipe-text-stream-to-response';\nimport type {\n CallWarning,\n FinishReason,\n LanguageModel,\n} from '../types/language-model';\nimport type { LanguageModelRequestMetadata } from '../types/language-model-request-metadata';\nimport type { LanguageModelResponseMetadata } from '../types/language-model-response-metadata';\nimport type { ProviderMetadata } from '../types/provider-metadata';\nimport {\n asLanguageModelUsage,\n createNullLanguageModelUsage,\n type LanguageModelUsage,\n} from '../types/usage';\nimport { isDeepEqualData, parsePartialJson, type DeepPartial } from '../util';\nimport {\n createAsyncIterableStream,\n type AsyncIterableStream,\n} from '../util/async-iterable-stream';\nimport { createStitchableStream } from '../util/create-stitchable-stream';\nimport type { DownloadFunction } from '../util/download/download-function';\nimport { now as originalNow } from '../util/now';\nimport { prepareRetries } from '../util/prepare-retries';\nimport { getOutputStrategy, type OutputStrategy } from './output-strategy';\nimport { parseAndValidateObjectResultWithRepair } from './parse-and-validate-object-result';\nimport type { RepairTextFunction } from './repair-text';\nimport type {\n ObjectStreamPart,\n StreamObjectResult,\n} from './stream-object-result';\nimport { validateObjectGenerationInput } from './validate-object-generation-input';\n\nconst originalGenerateId = createIdGenerator({ prefix: 'aiobj', size: 24 });\n\n/**\n * Callback that is set using the `onError` option.\n *\n * @param event - The event that is passed to the callback.\n */\nexport type StreamObjectOnErrorCallback = (event: {\n error: unknown;\n}) => Promise | void;\n\n/**\n * Callback that is set using the `onFinish` option.\n *\n * @param event - The event that is passed to the callback.\n */\nexport type StreamObjectOnFinishCallback = (event: {\n /**\n * The token usage of the generated response.\n */\n usage: LanguageModelUsage;\n\n /**\n * The generated object. Can be undefined if the final object does not match the schema.\n */\n object: RESULT | undefined;\n\n /**\n * Optional error object. This is e.g. a TypeValidationError when the final object does not match the schema.\n */\n error: unknown | undefined;\n\n /**\n * Response metadata.\n */\n response: LanguageModelResponseMetadata;\n\n /**\n * Warnings from the model provider (e.g. unsupported settings).\n */\n warnings?: CallWarning[];\n\n /**\n * Additional provider-specific metadata. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerMetadata: ProviderMetadata | undefined;\n}) => Promise | void;\n\n/**\n * Generate a structured, typed object for a given prompt and schema using a language model.\n *\n * This function streams the output. If you do not want to stream the output, use `generateObject` instead.\n *\n * @param model - The language model to use.\n *\n * @param system - A system message that will be part of the prompt.\n * @param prompt - A simple text prompt. You can either use `prompt` or `messages` but not both.\n * @param messages - A list of messages. You can either use `prompt` or `messages` but not both.\n * @param allowSystemInMessages - Whether system messages are allowed in the `prompt` or `messages` fields. When unset, system messages are allowed with a warning.\n *\n * @param maxOutputTokens - Maximum number of tokens to generate.\n * @param temperature - Temperature setting.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topP - Nucleus sampling.\n * The value is passed through to the provider. The range depends on the provider and model.\n * It is recommended to set either `temperature` or `topP`, but not both.\n * @param topK - Only sample from the top K options for each subsequent token.\n * Used to remove \"long tail\" low probability responses.\n * Recommended for advanced use cases only. You usually only need to use temperature.\n * @param presencePenalty - Presence penalty setting.\n * It affects the likelihood of the model to repeat information that is already in the prompt.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param frequencyPenalty - Frequency penalty setting.\n * It affects the likelihood of the model to repeatedly use the same words or phrases.\n * The value is passed through to the provider. The range depends on the provider and model.\n * @param stopSequences - Stop sequences.\n * If set, the model will stop generating text when one of the stop sequences is generated.\n * @param seed - The seed (integer) to use for random sampling.\n * If set and supported by the model, calls will generate deterministic results.\n *\n * @param maxRetries - Maximum number of retries. Set to 0 to disable retries. Default: 2.\n * @param abortSignal - An optional abort signal that can be used to cancel the call.\n * @param headers - Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.\n *\n * @param schema - The schema of the object that the model should generate.\n * @param schemaName - Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema name.\n * @param schemaDescription - Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema description.\n *\n * @param output - The type of the output.\n *\n * - 'object': The output is an object.\n * - 'array': The output is an array.\n * - 'enum': The output is an enum.\n * - 'no-schema': The output is not a schema.\n *\n * @param experimental_telemetry - Optional telemetry configuration (experimental).\n *\n * @param providerOptions - Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n *\n * @returns\n * A result object for accessing the partial object stream and additional information.\n *\n * @deprecated Use `streamText` with an `output` setting instead.\n */\nexport function streamObject<\n SCHEMA extends FlexibleSchema = FlexibleSchema,\n OUTPUT extends 'object' | 'array' | 'enum' | 'no-schema' =\n InferSchema extends string ? 'enum' : 'object',\n RESULT = OUTPUT extends 'array'\n ? Array>\n : InferSchema,\n>(\n options: Omit &\n Prompt &\n (OUTPUT extends 'enum'\n ? {\n /**\n * The enum values that the model should use.\n */\n enum: Array;\n output: 'enum';\n }\n : OUTPUT extends 'no-schema'\n ? {}\n : {\n /**\n * The schema of the object that the model should generate.\n */\n schema: SCHEMA;\n\n /**\n * Optional name of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema name.\n */\n schemaName?: string;\n\n /**\n * Optional description of the output that should be generated.\n * Used by some providers for additional LLM guidance, e.g.\n * via tool or schema description.\n */\n schemaDescription?: string;\n }) & {\n output?: OUTPUT;\n\n /**\n * The language model to use.\n */\n model: LanguageModel;\n\n /**\n * A function that attempts to repair the raw output of the model\n * to enable JSON parsing.\n */\n experimental_repairText?: RepairTextFunction;\n\n /**\n * Optional telemetry configuration (experimental).\n */\n\n experimental_telemetry?: TelemetrySettings;\n\n /**\n * Custom download function to use for URLs.\n *\n * By default, files are downloaded if the model does not support the URL for the given media type.\n */\n experimental_download?: DownloadFunction | undefined;\n\n /**\n * Additional provider-specific options. They are passed through\n * to the provider from the AI SDK and enable provider-specific\n * functionality that can be fully encapsulated in the provider.\n */\n providerOptions?: ProviderOptions;\n\n /**\n * Callback that is invoked when an error occurs during streaming.\n * You can use it to log errors.\n * The stream processing will pause until the callback promise is resolved.\n */\n onError?: StreamObjectOnErrorCallback;\n\n /**\n * Callback that is called when the LLM response and the final object validation are finished.\n */\n onFinish?: StreamObjectOnFinishCallback;\n\n /**\n * Internal. For test use only. May change without notice.\n */\n _internal?: {\n generateId?: () => string;\n currentDate?: () => Date;\n now?: () => number;\n };\n },\n): StreamObjectResult<\n OUTPUT extends 'enum'\n ? string\n : OUTPUT extends 'array'\n ? RESULT\n : DeepPartial,\n OUTPUT extends 'array' ? RESULT : RESULT,\n OUTPUT extends 'array'\n ? RESULT extends Array\n ? AsyncIterableStream\n : never\n : never\n> {\n const {\n model,\n output = 'object',\n system,\n prompt,\n messages,\n allowSystemInMessages,\n maxRetries,\n abortSignal,\n headers,\n experimental_repairText: repairText,\n experimental_telemetry: telemetry,\n experimental_download: download,\n providerOptions,\n onError = ({ error }: { error: unknown }) => {\n console.error(error);\n },\n onFinish,\n _internal: {\n generateId = originalGenerateId,\n currentDate = () => new Date(),\n now = originalNow,\n } = {},\n ...settings\n } = options;\n\n const enumValues =\n 'enum' in options && options.enum ? options.enum : undefined;\n\n const {\n schema: inputSchema,\n schemaDescription,\n schemaName,\n } = 'schema' in options ? options : {};\n\n validateObjectGenerationInput({\n output,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n enumValues,\n });\n\n const outputStrategy = getOutputStrategy({\n output,\n schema: inputSchema,\n enumValues,\n });\n\n return new DefaultStreamObjectResult({\n model,\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n schemaName,\n schemaDescription,\n providerOptions,\n repairText,\n onError,\n onFinish,\n download,\n generateId,\n currentDate,\n now,\n });\n}\n\nclass DefaultStreamObjectResult<\n PARTIAL,\n RESULT,\n ELEMENT_STREAM,\n> implements StreamObjectResult {\n private readonly _object = new DelayedPromise();\n private readonly _usage = new DelayedPromise();\n private readonly _providerMetadata = new DelayedPromise<\n ProviderMetadata | undefined\n >();\n private readonly _warnings = new DelayedPromise();\n private readonly _request =\n new DelayedPromise();\n private readonly _response =\n new DelayedPromise();\n private readonly _finishReason = new DelayedPromise();\n\n private readonly baseStream: ReadableStream>;\n\n private readonly outputStrategy: OutputStrategy<\n PARTIAL,\n RESULT,\n ELEMENT_STREAM\n >;\n\n constructor({\n model: modelArg,\n headers,\n telemetry,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n allowSystemInMessages,\n schemaName,\n schemaDescription,\n providerOptions,\n repairText,\n onError,\n onFinish,\n download,\n generateId,\n currentDate,\n now,\n }: {\n model: LanguageModel;\n telemetry: TelemetrySettings | undefined;\n headers: Record | undefined;\n settings: Omit;\n maxRetries: number | undefined;\n abortSignal: AbortSignal | undefined;\n outputStrategy: OutputStrategy;\n system: Prompt['system'];\n prompt: Prompt['prompt'];\n messages: Prompt['messages'];\n allowSystemInMessages: Prompt['allowSystemInMessages'];\n schemaName: string | undefined;\n schemaDescription: string | undefined;\n providerOptions: ProviderOptions | undefined;\n repairText: RepairTextFunction | undefined;\n onError: StreamObjectOnErrorCallback;\n onFinish: StreamObjectOnFinishCallback | undefined;\n download: DownloadFunction | undefined;\n generateId: () => string;\n currentDate: () => Date;\n now: () => number;\n }) {\n const model = resolveLanguageModel(modelArg);\n\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal,\n });\n\n const callSettings = prepareCallSettings(settings);\n\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...callSettings, maxRetries },\n });\n\n const tracer = getTracer(telemetry);\n const self = this;\n\n const stitchableStream =\n createStitchableStream>();\n\n const eventProcessor = new TransformStream<\n ObjectStreamPart,\n ObjectStreamPart\n >({\n transform(chunk, controller) {\n controller.enqueue(chunk);\n\n if (chunk.type === 'error') {\n onError({ error: wrapGatewayError(chunk.error) });\n }\n },\n });\n\n this.baseStream = stitchableStream.stream.pipeThrough(eventProcessor);\n\n recordSpan({\n name: 'ai.streamObject',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamObject',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n 'ai.prompt': {\n input: () => JSON.stringify({ system, prompt, messages }),\n },\n 'ai.schema': {\n input: async () =>\n JSON.stringify(await outputStrategy.jsonSchema()),\n },\n 'ai.schema.name': schemaName,\n 'ai.schema.description': schemaDescription,\n 'ai.settings.output': outputStrategy.type,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async rootSpan => {\n const standardizedPrompt = await standardizePrompt({\n system,\n prompt,\n messages,\n allowSystemInMessages,\n } as Prompt);\n\n const callOptions = {\n responseFormat: {\n type: 'json' as const,\n schema: await outputStrategy.jsonSchema(),\n name: schemaName,\n description: schemaDescription,\n },\n ...prepareCallSettings(settings),\n prompt: await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n supportedUrls: await model.supportedUrls,\n download,\n }),\n providerOptions,\n abortSignal,\n headers,\n includeRawChunks: false,\n };\n\n const transformer: Transformer<\n LanguageModelV3StreamPart,\n ObjectStreamInputPart\n > = {\n transform: (chunk, controller) => {\n switch (chunk.type) {\n case 'text-delta':\n controller.enqueue(chunk.delta);\n break;\n case 'response-metadata':\n case 'finish':\n case 'error':\n case 'stream-start':\n controller.enqueue(chunk);\n break;\n }\n },\n };\n\n const {\n result: { stream, response, request },\n doStreamSpan,\n startTimestampMs,\n } = await retry(() =>\n recordSpan({\n name: 'ai.streamObject.doStream',\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: 'ai.streamObject.doStream',\n telemetry,\n }),\n ...baseTelemetryAttributes,\n 'ai.prompt.messages': {\n input: () => stringifyForTelemetry(callOptions.prompt),\n },\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.system': model.provider,\n 'gen_ai.request.model': model.modelId,\n 'gen_ai.request.frequency_penalty':\n callSettings.frequencyPenalty,\n 'gen_ai.request.max_tokens': callSettings.maxOutputTokens,\n 'gen_ai.request.presence_penalty': callSettings.presencePenalty,\n 'gen_ai.request.temperature': callSettings.temperature,\n 'gen_ai.request.top_k': callSettings.topK,\n 'gen_ai.request.top_p': callSettings.topP,\n },\n }),\n tracer,\n endWhenDone: false,\n fn: async doStreamSpan => ({\n startTimestampMs: now(),\n doStreamSpan,\n result: await model.doStream(callOptions),\n }),\n }),\n );\n\n self._request.resolve(request ?? {});\n\n // store information for onFinish callback:\n let warnings: SharedV3Warning[] | undefined;\n let usage: LanguageModelUsage = createNullLanguageModelUsage();\n let finishReason: FinishReason | undefined;\n let providerMetadata: ProviderMetadata | undefined;\n let object: RESULT | undefined;\n let error: unknown | undefined;\n\n // pipe chunks through a transformation stream that extracts metadata:\n let accumulatedText = '';\n let textDelta = '';\n let fullResponse: {\n id: string;\n timestamp: Date;\n modelId: string;\n } = {\n id: generateId(),\n timestamp: currentDate(),\n modelId: model.modelId,\n };\n\n // Keep track of raw parse result before type validation, since e.g. Zod might\n // change the object by mapping properties.\n let latestObjectJson: JSONValue | undefined = undefined;\n let latestObject: PARTIAL | undefined = undefined;\n let isFirstChunk = true;\n let isFirstDelta = true;\n\n const transformedStream = stream\n .pipeThrough(new TransformStream(transformer))\n .pipeThrough(\n new TransformStream<\n string | ObjectStreamInputPart,\n ObjectStreamPart\n >({\n async transform(chunk, controller): Promise {\n if (\n typeof chunk === 'object' &&\n chunk.type === 'stream-start'\n ) {\n warnings = chunk.warnings;\n return; // stream start chunks are sent immediately and do not count as first chunk\n }\n\n // Telemetry event for first chunk:\n if (isFirstChunk) {\n const msToFirstChunk = now() - startTimestampMs;\n\n isFirstChunk = false;\n\n doStreamSpan.addEvent('ai.stream.firstChunk', {\n 'ai.stream.msToFirstChunk': msToFirstChunk,\n });\n\n doStreamSpan.setAttributes({\n 'ai.stream.msToFirstChunk': msToFirstChunk,\n });\n }\n\n // process partial text chunks\n if (typeof chunk === 'string') {\n accumulatedText += chunk;\n textDelta += chunk;\n\n const { value: currentObjectJson, state: parseState } =\n await parsePartialJson(accumulatedText);\n\n if (\n currentObjectJson !== undefined &&\n !isDeepEqualData(latestObjectJson, currentObjectJson)\n ) {\n const validationResult =\n await outputStrategy.validatePartialResult({\n value: currentObjectJson,\n textDelta,\n latestObject,\n isFirstDelta,\n isFinalDelta: parseState === 'successful-parse',\n });\n\n if (\n validationResult.success &&\n !isDeepEqualData(\n latestObject,\n validationResult.value.partial,\n )\n ) {\n // inside inner check to correctly parse the final element in array mode:\n latestObjectJson = currentObjectJson;\n latestObject = validationResult.value.partial;\n\n controller.enqueue({\n type: 'object',\n object: latestObject,\n });\n\n controller.enqueue({\n type: 'text-delta',\n textDelta: validationResult.value.textDelta,\n });\n\n textDelta = '';\n isFirstDelta = false;\n }\n }\n\n return;\n }\n\n switch (chunk.type) {\n case 'response-metadata': {\n fullResponse = {\n id: chunk.id ?? fullResponse.id,\n timestamp: chunk.timestamp ?? fullResponse.timestamp,\n modelId: chunk.modelId ?? fullResponse.modelId,\n };\n break;\n }\n\n case 'finish': {\n // send final text delta:\n if (textDelta !== '') {\n controller.enqueue({ type: 'text-delta', textDelta });\n }\n\n // store finish reason for telemetry:\n finishReason = chunk.finishReason.unified;\n\n // store usage and metadata for promises and onFinish callback:\n usage = asLanguageModelUsage(chunk.usage);\n providerMetadata = chunk.providerMetadata;\n\n controller.enqueue({\n ...chunk,\n finishReason: chunk.finishReason.unified,\n usage,\n response: fullResponse,\n });\n\n // log warnings:\n logWarnings({\n warnings: warnings ?? [],\n provider: model.provider,\n model: model.modelId,\n });\n\n // resolve promises that can be resolved now:\n self._usage.resolve(usage);\n self._providerMetadata.resolve(providerMetadata);\n self._warnings.resolve(warnings);\n self._response.resolve({\n ...fullResponse,\n headers: response?.headers,\n });\n self._finishReason.resolve(finishReason ?? 'other');\n\n try {\n object = await parseAndValidateObjectResultWithRepair(\n accumulatedText,\n outputStrategy,\n repairText,\n {\n response: fullResponse,\n usage,\n finishReason,\n },\n );\n self._object.resolve(object);\n } catch (e) {\n error = e;\n self._object.reject(e);\n }\n break;\n }\n\n default: {\n controller.enqueue(chunk);\n break;\n }\n }\n },\n\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n try {\n const finalUsage = usage ?? {\n promptTokens: NaN,\n completionTokens: NaN,\n totalTokens: NaN,\n };\n\n doStreamSpan.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.response.finishReason': finishReason,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.id': fullResponse.id,\n 'ai.response.model': fullResponse.modelId,\n 'ai.response.timestamp':\n fullResponse.timestamp.toISOString(),\n 'ai.response.providerMetadata':\n JSON.stringify(providerMetadata),\n\n 'ai.usage.inputTokens': finalUsage.inputTokens,\n 'ai.usage.outputTokens': finalUsage.outputTokens,\n 'ai.usage.totalTokens': finalUsage.totalTokens,\n 'ai.usage.reasoningTokens': finalUsage.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n finalUsage.cachedInputTokens,\n\n // standardized gen-ai llm span attributes:\n 'gen_ai.response.finish_reasons': [finishReason],\n 'gen_ai.response.id': fullResponse.id,\n 'gen_ai.response.model': fullResponse.modelId,\n 'gen_ai.usage.input_tokens': finalUsage.inputTokens,\n 'gen_ai.usage.output_tokens': finalUsage.outputTokens,\n },\n }),\n );\n\n // finish doStreamSpan before other operations for correct timing:\n doStreamSpan.end();\n\n // Add response information to the root span:\n rootSpan.setAttributes(\n await selectTelemetryAttributes({\n telemetry,\n attributes: {\n 'ai.usage.inputTokens': finalUsage.inputTokens,\n 'ai.usage.outputTokens': finalUsage.outputTokens,\n 'ai.usage.totalTokens': finalUsage.totalTokens,\n 'ai.usage.reasoningTokens': finalUsage.reasoningTokens,\n 'ai.usage.cachedInputTokens':\n finalUsage.cachedInputTokens,\n 'ai.response.object': {\n output: () => JSON.stringify(object),\n },\n 'ai.response.providerMetadata':\n JSON.stringify(providerMetadata),\n },\n }),\n );\n\n // call onFinish callback:\n await onFinish?.({\n usage: finalUsage,\n object,\n error,\n response: {\n ...fullResponse,\n headers: response?.headers,\n },\n warnings,\n providerMetadata,\n });\n } catch (error) {\n controller.enqueue({ type: 'error', error });\n } finally {\n rootSpan.end();\n }\n },\n }),\n );\n\n stitchableStream.addStream(transformedStream);\n },\n })\n .catch(error => {\n // add an empty stream with an error to break the stream:\n stitchableStream.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'error', error });\n controller.close();\n },\n }),\n );\n })\n .finally(() => {\n stitchableStream.close();\n });\n\n this.outputStrategy = outputStrategy;\n }\n\n get object() {\n return this._object.promise;\n }\n\n get usage() {\n return this._usage.promise;\n }\n\n get providerMetadata() {\n return this._providerMetadata.promise;\n }\n\n get warnings() {\n return this._warnings.promise;\n }\n\n get request() {\n return this._request.promise;\n }\n\n get response() {\n return this._response.promise;\n }\n\n get finishReason() {\n return this._finishReason.promise;\n }\n\n get partialObjectStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream, PARTIAL>({\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'object':\n controller.enqueue(chunk.object);\n break;\n\n case 'text-delta':\n case 'finish':\n case 'error': // suppress error (use onError instead)\n break;\n\n default: {\n const _exhaustiveCheck: never = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n },\n }),\n ),\n );\n }\n\n get elementStream(): ELEMENT_STREAM {\n return this.outputStrategy.createElementStream(this.baseStream);\n }\n\n get textStream(): AsyncIterableStream {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream, string>({\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'text-delta':\n controller.enqueue(chunk.textDelta);\n break;\n\n case 'object':\n case 'finish':\n case 'error': // suppress error (use onError instead)\n break;\n\n default: {\n const _exhaustiveCheck: never = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n },\n }),\n ),\n );\n }\n\n get fullStream(): AsyncIterableStream> {\n return createAsyncIterableStream(this.baseStream);\n }\n\n pipeTextStreamToResponse(response: ServerResponse, init?: ResponseInit) {\n pipeTextStreamToResponse({\n response,\n textStream: this.textStream,\n ...init,\n });\n }\n\n toTextStreamResponse(init?: ResponseInit): Response {\n return createTextStreamResponse({\n textStream: this.textStream,\n ...init,\n });\n }\n}\n\nexport type ObjectStreamInputPart =\n | string\n | {\n type: 'stream-start';\n warnings: SharedV3Warning[];\n }\n | {\n type: 'error';\n error: unknown;\n }\n | {\n type: 'response-metadata';\n id?: string;\n timestamp?: Date;\n modelId?: string;\n }\n | {\n type: 'finish';\n finishReason: LanguageModelV3FinishReason;\n usage: LanguageModelV3Usage;\n providerMetadata?: SharedV3ProviderMetadata;\n };\n","import type { MastraDBMessage } from '@mastra/core/agent';\nimport type { MemoryConfigInternal } from '@mastra/core/memory';\nimport { createTool } from '@mastra/core/tools';\nimport type { JSONSchema7 } from 'json-schema';\nimport { estimateTokenCount } from 'tokenx';\n\nimport {\n formatToolResultForObserver,\n resolveToolResultValue,\n truncateStringByTokens,\n} from '../processors/observational-memory/tool-result-helpers';\n\nexport type RecallDetail = 'low' | 'high';\n\nfunction getMessageParts(msg: MastraDBMessage): any[] {\n if (typeof msg.content === 'string') return [];\n if (Array.isArray(msg.content)) return msg.content;\n const parts = msg.content?.parts;\n return Array.isArray(parts) ? parts : [];\n}\n\n/** Returns true if a message has at least one non-data part with visible content. */\nfunction hasVisibleParts(msg: MastraDBMessage): boolean {\n if (typeof msg.content === 'string') return (msg.content as string).length > 0;\n const parts = getMessageParts(msg);\n if (parts.length === 0) return Boolean(msg.content?.content);\n return parts.some((p: { type?: string }) => !p.type?.startsWith('data-'));\n}\n\ntype RecallThread = {\n id: string;\n title?: string;\n resourceId: string;\n createdAt: Date;\n updatedAt: Date;\n};\n\ntype RecallSearchResult = {\n threadId: string;\n score: number;\n groupId?: string;\n range?: string;\n text?: string;\n observedAt?: Date;\n};\n\ntype RecallMemory = {\n getMemoryStore: () => Promise<{\n listMessagesById: (args: { messageIds: string[] }) => Promise<{ messages: MastraDBMessage[] }>;\n }>;\n recall: (args: {\n threadId: string;\n resourceId?: string;\n page: number;\n perPage: number | false;\n orderBy?: { field: 'createdAt'; direction: 'ASC' | 'DESC' };\n filter?: {\n dateRange?: {\n start?: Date;\n end?: Date;\n startExclusive?: boolean;\n endExclusive?: boolean;\n };\n };\n }) => Promise<{\n messages: MastraDBMessage[];\n total: number;\n page: number;\n perPage: number | false;\n hasMore: boolean;\n }>;\n listThreads: (args: {\n perPage?: number | false;\n page?: number;\n orderBy?: { field: string; direction: 'ASC' | 'DESC' };\n filter?: { resourceId?: string; metadata?: Record };\n }) => Promise<{ threads: RecallThread[]; total: number; hasMore: boolean; page: number }>;\n searchMessages?: (args: {\n query: string;\n resourceId: string;\n topK?: number;\n filter?: {\n threadId?: string;\n observedAfter?: Date;\n observedBefore?: Date;\n };\n }) => Promise<{ results: RecallSearchResult[] }>;\n getThreadById?: (args: { threadId: string }) => Promise;\n};\n\nfunction parseRangeFormat(cursor: string): { startId: string; endId: string } | null {\n // Comma-separated merged ranges: \"id1:id2,id3:id4\"\n if (cursor.includes(',')) {\n const parts = cursor\n .split(',')\n .map(p => p.trim())\n .filter(Boolean);\n if (parts.length >= 1) {\n const first = parts[0]!;\n const last = parts[parts.length - 1]!;\n const firstColon = first.indexOf(':');\n const lastColon = last.indexOf(':');\n return {\n startId: firstColon > 0 ? first.slice(0, firstColon) : first,\n endId: lastColon > 0 ? last.slice(lastColon + 1) : last,\n };\n }\n }\n\n // Colon-delimited range: \"startId:endId\"\n const colonIndex = cursor.indexOf(':');\n if (colonIndex > 0 && colonIndex < cursor.length - 1) {\n return { startId: cursor.slice(0, colonIndex), endId: cursor.slice(colonIndex + 1) };\n }\n\n return null;\n}\n\nasync function resolveCursorMessage(\n memory: RecallMemory,\n cursor: string,\n access?: { resourceId?: string; threadScope?: string; enforceThreadScope?: boolean },\n): Promise {\n const normalized = cursor.trim();\n\n if (!normalized) {\n throw new Error('Cursor is required');\n }\n\n const rangeIds = parseRangeFormat(normalized);\n if (rangeIds) {\n return {\n hint: `The cursor \"${cursor}\" looks like a range. Use one of the individual message IDs as the cursor instead: start=\"${rangeIds.startId}\" or end=\"${rangeIds.endId}\".`,\n ...rangeIds,\n };\n }\n\n const memoryStore = await memory.getMemoryStore();\n const result = await memoryStore.listMessagesById({ messageIds: [normalized] });\n let message = result.messages.find(message => message.id === normalized) ?? null;\n\n if (!message) {\n message = await resolveCursorMessageByRecall(memory, normalized, access);\n }\n\n if (!message) {\n throw new Error(`Could not resolve cursor message: ${cursor}`);\n }\n\n // Verify the cursor message belongs to the current resource\n if (access?.resourceId && message.resourceId !== access.resourceId) {\n throw new Error(`Could not resolve cursor message: ${cursor}`);\n }\n\n // In strict thread scope, verify the cursor belongs to the current thread\n if (access?.enforceThreadScope && access.threadScope && message.threadId !== access.threadScope) {\n throw new Error(`Could not resolve cursor message: ${cursor}`);\n }\n\n return message;\n}\n\nasync function resolveCursorMessageByRecall(\n memory: RecallMemory,\n cursor: string,\n access?: { resourceId?: string; threadScope?: string; enforceThreadScope?: boolean },\n): Promise {\n if (access?.enforceThreadScope && access.threadScope) {\n const result = await memory.recall({\n threadId: access.threadScope,\n resourceId: access.resourceId,\n page: 0,\n perPage: false,\n });\n\n return result.messages.find(message => message.id === cursor) ?? null;\n }\n\n if (!access?.resourceId) {\n return null;\n }\n\n const threads = await memory.listThreads({\n page: 0,\n perPage: 100,\n orderBy: { field: 'updatedAt', direction: 'DESC' },\n filter: { resourceId: access.resourceId },\n });\n\n for (const thread of threads.threads) {\n const result = await memory.recall({\n threadId: thread.id,\n resourceId: access.resourceId,\n page: 0,\n perPage: false,\n });\n const message = result.messages.find(message => message.id === cursor);\n if (message) {\n return message;\n }\n }\n\n return null;\n}\n\n// ── Thread listing ──────────────────────────────────────────────────\n\nexport async function listThreadsForResource({\n memory,\n resourceId,\n currentThreadId,\n page = 0,\n limit = 20,\n before,\n after,\n}: {\n memory: RecallMemory;\n resourceId: string;\n currentThreadId: string;\n page?: number;\n limit?: number;\n before?: string;\n after?: string;\n}): Promise<{\n threads: string;\n count: number;\n page: number;\n hasMore: boolean;\n}> {\n if (!resourceId) {\n throw new Error('Resource ID is required to list threads');\n }\n\n const MAX_LIMIT = 50;\n const normalizedLimit = Math.min(Math.max(limit, 1), MAX_LIMIT);\n\n const hasDateFilter = !!(before || after);\n const beforeDate = before ? new Date(before) : null;\n const afterDate = after ? new Date(after) : null;\n\n // When date filtering, fetch all threads and filter client-side\n // (storage layer doesn't support date range on threads)\n const result = await memory.listThreads({\n filter: { resourceId },\n page: hasDateFilter ? 0 : page,\n perPage: hasDateFilter ? false : normalizedLimit,\n orderBy: { field: 'updatedAt', direction: 'DESC' },\n });\n\n let threads = result.threads;\n\n if (beforeDate) {\n threads = threads.filter(t => t.createdAt < beforeDate);\n }\n if (afterDate) {\n threads = threads.filter(t => t.createdAt > afterDate);\n }\n\n // Apply client-side pagination when date-filtered\n let hasMore: boolean;\n if (hasDateFilter) {\n const offset = page * normalizedLimit;\n hasMore = offset + normalizedLimit < threads.length;\n threads = threads.slice(offset, offset + normalizedLimit);\n } else {\n hasMore = result.hasMore;\n }\n\n if (threads.length === 0) {\n return {\n threads: 'No threads found matching the criteria.',\n count: 0,\n page,\n hasMore: false,\n };\n }\n\n const lines: string[] = [];\n for (const thread of threads) {\n const isCurrent = thread.id === currentThreadId;\n const title = thread.title || '(untitled)';\n const updated = formatTimestamp(thread.updatedAt);\n const created = formatTimestamp(thread.createdAt);\n const marker = isCurrent ? ' ← current' : '';\n lines.push(`- **${title}**${marker}`);\n lines.push(` id: ${thread.id}`);\n lines.push(` updated: ${updated} | created: ${created}`);\n }\n\n return {\n threads: lines.join('\\n'),\n count: threads.length,\n page,\n hasMore,\n };\n}\n\n// ── Cross-thread search ─────────────────────────────────────────────\n\nexport async function searchMessagesForResource({\n memory,\n resourceId,\n currentThreadId,\n query,\n topK = 10,\n maxTokens = DEFAULT_MAX_RESULT_TOKENS,\n before,\n after,\n threadScope,\n}: {\n memory: RecallMemory;\n resourceId: string;\n currentThreadId?: string;\n query: string;\n topK?: number;\n maxTokens?: number;\n before?: string;\n after?: string;\n /** When set, restrict search results to only this thread */\n threadScope?: string;\n}): Promise<{\n results: string;\n count: number;\n}> {\n if (!memory.searchMessages) {\n return {\n results:\n 'Search is not configured. Enable it with `retrieval: { vector: true }` and configure a vector store and embedder on your Memory instance.',\n count: 0,\n };\n }\n\n const MAX_TOPK = 20;\n const clampedTopK = Math.min(Math.max(topK, 1), MAX_TOPK);\n const effectiveTopK = threadScope || before || after ? Math.max(clampedTopK * 3, clampedTopK + 10) : clampedTopK;\n const searchTopK = Math.min(MAX_TOPK, effectiveTopK);\n\n const beforeDate = before ? new Date(before) : undefined;\n const afterDate = after ? new Date(after) : undefined;\n\n const { results } = await memory.searchMessages({\n query,\n resourceId,\n topK: searchTopK,\n filter: {\n ...(threadScope ? { threadId: threadScope } : {}),\n ...(afterDate ? { observedAfter: afterDate } : {}),\n ...(beforeDate ? { observedBefore: beforeDate } : {}),\n },\n });\n\n if (results.length === 0) {\n return {\n results: 'No matching messages found.',\n count: 0,\n };\n }\n\n const threadIds = [...new Set(results.map(r => r.threadId))];\n const threadMap = new Map();\n if (memory.getThreadById) {\n await Promise.all(\n threadIds.map(async id => {\n const thread = await memory.getThreadById!({ threadId: id });\n if (thread) threadMap.set(id, thread);\n }),\n );\n }\n\n const filteredMatches = results.filter(match => {\n if (threadScope && match.threadId !== threadScope) return false;\n if (beforeDate && match.observedAt && match.observedAt >= beforeDate) return false;\n if (afterDate && match.observedAt && match.observedAt <= afterDate) return false;\n return true;\n });\n\n if (filteredMatches.length === 0) {\n return { results: 'No matching messages found.', count: 0 };\n }\n\n const limitedMatches = filteredMatches.slice(0, clampedTopK);\n\n const sections = limitedMatches.map(match => {\n const thread = threadMap.get(match.threadId);\n const title = thread?.title || '(untitled)';\n const isCurrentThread = match.threadId === currentThreadId;\n const generationLabel = isCurrentThread ? 'Current thread memory' : 'Older memory from another thread';\n const generationDetail = isCurrentThread\n ? 'This result came from the current thread.'\n : 'This result came from an older memory generation in another thread.';\n const threadLine = `- thread: ${match.threadId}${thread ? ` (${title})` : ''}`;\n const sourceLine = match.range\n ? `- source: raw messages from ID ${match.range.split(':')[0] ?? '(unknown)'} through ID ${match.range.split(':')[1] ?? '(unknown)'}`\n : '- source: raw message range unavailable';\n const updatedLine = thread ? `- thread updated: ${formatTimestamp(thread.updatedAt)}` : undefined;\n const groupLine = match.groupId ? `- observation group: ${match.groupId}` : undefined;\n const scoreLine = `- score: ${match.score.toFixed(2)}`;\n const body = (match.text || '').trim() || '_Observation text unavailable._';\n\n return [\n `### ${generationLabel}`,\n '',\n generationDetail,\n threadLine,\n sourceLine,\n updatedLine,\n groupLine,\n scoreLine,\n '',\n '```text',\n body,\n '```',\n ]\n .filter(Boolean)\n .join('\\n');\n });\n\n const assembled = sections.join('\\n\\n');\n const { text: limited } = truncateByTokens(assembled, maxTokens);\n\n return {\n results: limited,\n count: limitedMatches.length,\n };\n}\n\n// ── Per-part formatting ─────────────────────────────────────────────\n\nconst LOW_DETAIL_PART_TOKENS = 30;\nconst AUTO_EXPAND_TEXT_TOKENS = 100;\nconst AUTO_EXPAND_TOOL_TOKENS = 20;\nconst HIGH_DETAIL_TOOL_RESULT_TOKENS = 4000;\nconst DEFAULT_MAX_RESULT_TOKENS = 2000;\n\nfunction formatTimestamp(date: Date): string {\n return date\n .toISOString()\n .replace('T', ' ')\n .replace(/\\.\\d{3}Z$/, 'Z');\n}\n\ninterface FormattedPart {\n messageId: string;\n partIndex: number;\n role: string;\n type: string;\n text: string;\n /** Full untruncated text — used for auto-expand when token budget allows */\n fullText: string;\n toolName?: string;\n}\n\nfunction truncateByTokens(text: string, maxTokens: number, hint?: string): { text: string; wasTruncated: boolean } {\n if (estimateTokenCount(text) <= maxTokens) return { text, wasTruncated: false };\n // Truncate content to maxTokens, then append hint outside the budget\n const truncated = truncateStringByTokens(text, maxTokens);\n const suffix = hint ? ` [${hint} for more]` : '';\n return { text: truncated + suffix, wasTruncated: true };\n}\n\nfunction lowDetailPartLimit(type: string): number {\n if (type === 'text') return AUTO_EXPAND_TEXT_TOKENS;\n if (type === 'tool-result' || type === 'tool-call') return AUTO_EXPAND_TOOL_TOKENS;\n return LOW_DETAIL_PART_TOKENS;\n}\n\nfunction makePart(\n msg: MastraDBMessage,\n partIndex: number,\n type: string,\n fullText: string,\n detail: RecallDetail,\n toolName?: string,\n): FormattedPart {\n if (detail === 'high') {\n return { messageId: msg.id, partIndex, role: msg.role, type, text: fullText, fullText, toolName };\n }\n const hint = `recall cursor=\"${msg.id}\" partIndex=${partIndex} detail=\"high\"`;\n const { text } = truncateByTokens(fullText, lowDetailPartLimit(type), hint);\n return { messageId: msg.id, partIndex, role: msg.role, type, text, fullText, toolName };\n}\n\nfunction formatMessageParts(msg: MastraDBMessage, detail: RecallDetail): FormattedPart[] {\n const parts: FormattedPart[] = [];\n\n if (typeof msg.content === 'string') {\n parts.push(makePart(msg, 0, 'text', msg.content, detail));\n return parts;\n }\n\n const messageParts = getMessageParts(msg);\n if (messageParts.length > 0) {\n for (let i = 0; i < messageParts.length; i++) {\n const part = messageParts[i]!;\n const partType = (part as { type?: string }).type;\n\n if (partType === 'text') {\n const text = (part as { text?: string }).text;\n if (text) {\n parts.push(makePart(msg, i, 'text', text, detail));\n }\n } else if (partType === 'tool-invocation') {\n const inv = (part as any).toolInvocation;\n if (inv?.toolName) {\n const hasArgs = inv.args != null;\n if (inv.state !== 'partial-call' && hasArgs) {\n const argsStr = detail === 'low' ? '' : `\\n${JSON.stringify(inv.args, null, 2)}`;\n const fullText = `[Tool Call: ${inv.toolName}]${argsStr}`;\n parts.push({\n messageId: msg.id,\n partIndex: i,\n role: msg.role,\n type: 'tool-call',\n text: fullText,\n fullText,\n toolName: inv.toolName,\n });\n }\n\n if (inv.state === 'result') {\n const { value: resultValue } = resolveToolResultValue(\n part as { providerMetadata?: Record },\n inv.result,\n );\n const resultStr = formatToolResultForObserver(resultValue, { maxTokens: HIGH_DETAIL_TOOL_RESULT_TOKENS });\n const fullText = `[Tool Result: ${inv.toolName}]\\n${resultStr}`;\n parts.push(makePart(msg, i, 'tool-result', fullText, detail, inv.toolName));\n }\n }\n } else if (partType === 'tool-call') {\n const toolName = (part as any).toolName;\n if (toolName) {\n const rawArgs = (part as any).input ?? (part as any).args;\n const argsStr =\n detail === 'low' || rawArgs == null\n ? ''\n : `\\n${typeof rawArgs === 'string' ? rawArgs : JSON.stringify(rawArgs, null, 2)}`;\n const fullText = `[Tool Call: ${toolName}]${argsStr}`;\n parts.push({\n messageId: msg.id,\n partIndex: i,\n role: msg.role,\n type: 'tool-call',\n text: fullText,\n fullText,\n toolName,\n });\n }\n } else if (partType === 'tool-result') {\n const toolName = (part as any).toolName;\n if (toolName) {\n const rawResult = (part as any).output ?? (part as any).result;\n const resultStr = formatToolResultForObserver(rawResult, { maxTokens: HIGH_DETAIL_TOOL_RESULT_TOKENS });\n const fullText = `[Tool Result: ${toolName}]\\n${resultStr}`;\n parts.push(makePart(msg, i, 'tool-result', fullText, detail, toolName));\n }\n } else if (partType === 'reasoning') {\n const reasoning = (part as { reasoning?: string; text?: string }).reasoning ?? (part as { text?: string }).text;\n if (reasoning) {\n parts.push(makePart(msg, i, 'reasoning', reasoning, detail));\n }\n } else if (partType === 'image' || partType === 'file') {\n const filename = (part as any).filename;\n const label = filename ? `: ${filename}` : '';\n const fullText = `[${partType === 'image' ? 'Image' : 'File'}${label}]`;\n parts.push({ messageId: msg.id, partIndex: i, role: msg.role, type: partType, text: fullText, fullText });\n } else if (partType?.startsWith('data-')) {\n // skip data parts — these are internal OM markers (buffering, observation, etc.)\n } else if (partType) {\n const fullText = `[${partType}]`;\n parts.push({ messageId: msg.id, partIndex: i, role: msg.role, type: partType, text: fullText, fullText });\n }\n }\n } else if (msg.content?.content) {\n parts.push(makePart(msg, 0, 'text', msg.content.content, detail));\n }\n\n return parts;\n}\n\nfunction buildRenderedText(parts: FormattedPart[], timestamps: Map): string {\n let currentMessageId = '';\n const lines: string[] = [];\n\n for (const part of parts) {\n if (part.messageId !== currentMessageId) {\n currentMessageId = part.messageId;\n const ts = timestamps.get(part.messageId);\n const tsStr = ts ? ` (${formatTimestamp(ts)})` : '';\n if (lines.length > 0) lines.push(''); // blank line between messages\n lines.push(`**${part.role}${tsStr}** [${part.messageId}]:`);\n }\n\n const indexLabel = `[p${part.partIndex}]`;\n lines.push(` ${indexLabel} ${part.text}`);\n }\n\n return lines.join('\\n');\n}\n\nasync function getNextVisibleMessage({\n memory,\n threadId,\n resourceId,\n after,\n}: {\n memory: RecallMemory;\n threadId: string;\n resourceId?: string;\n after: Date;\n}): Promise {\n const result = await memory.recall({\n threadId,\n resourceId,\n page: 0,\n perPage: 50,\n orderBy: { field: 'createdAt', direction: 'ASC' },\n filter: {\n dateRange: {\n start: after,\n startExclusive: true,\n },\n },\n });\n\n return result.messages.find(hasVisibleParts) ?? null;\n}\n\nconst MAX_EXPAND_USER_TEXT_TOKENS = 200;\nconst MAX_EXPAND_OTHER_TOKENS = 50;\n\nfunction expandLimit(part: FormattedPart): number {\n if (part.role === 'user' && part.type === 'text') return MAX_EXPAND_USER_TEXT_TOKENS;\n return MAX_EXPAND_OTHER_TOKENS;\n}\n\nfunction expandPriority(part: FormattedPart): number {\n // Lower number = higher priority for expansion\n if (part.role === 'user' && part.type === 'text') return 0;\n if (part.type === 'text' || part.type === 'reasoning') return 1;\n if (part.type === 'tool-result') return 2;\n if (part.type === 'tool-call') return 3;\n return 4;\n}\n\nfunction renderFormattedParts(\n parts: FormattedPart[],\n timestamps: Map,\n options: { detail: RecallDetail; maxTokens: number },\n): { text: string; truncated: boolean; tokenOffset: number } {\n // Step 1: render with per-part truncated text\n const text = buildRenderedText(parts, timestamps);\n let totalTokens = estimateTokenCount(text);\n\n if (totalTokens > options.maxTokens) {\n // Already over budget even with truncated text — hard-truncate\n const truncated = truncateStringByTokens(text, options.maxTokens);\n return { text: truncated, truncated: true, tokenOffset: totalTokens - options.maxTokens };\n }\n\n // Step 2: we're under budget — try expanding truncated parts with leftover room.\n // Find parts where text !== fullText (i.e., they were truncated).\n const truncatedIndices = parts\n .map((p, i) => ({ part: p, index: i }))\n .filter(({ part }) => part.text !== part.fullText)\n .sort((a, b) => expandPriority(a.part) - expandPriority(b.part));\n\n if (truncatedIndices.length === 0) {\n return { text, truncated: false, tokenOffset: 0 };\n }\n\n let remaining = options.maxTokens - totalTokens;\n\n for (const { part, index } of truncatedIndices) {\n if (remaining <= 0) break;\n\n const maxTokens = expandLimit(part);\n const fullTokens = estimateTokenCount(part.fullText);\n const currentTokens = estimateTokenCount(part.text);\n // Cap at the expand limit for this part type\n const targetTokens = Math.min(fullTokens, maxTokens);\n const delta = targetTokens - currentTokens;\n\n if (delta <= 0) continue; // already at or above expand limit\n\n if (delta <= remaining && targetTokens >= fullTokens) {\n // Full text fits within both expand limit and remaining budget\n parts[index] = { ...part, text: part.fullText };\n remaining -= delta;\n } else {\n // Partial expand — cap at expand limit or remaining budget, whichever is smaller\n const expandedLimit = Math.min(currentTokens + remaining, maxTokens);\n const hint = `recall cursor=\"${part.messageId}\" partIndex=${part.partIndex} detail=\"high\"`;\n const { text: expanded } = truncateByTokens(part.fullText, expandedLimit, hint);\n const expandedDelta = estimateTokenCount(expanded) - currentTokens;\n parts[index] = { ...part, text: expanded };\n remaining -= expandedDelta;\n }\n }\n\n // Step 3: re-render with expanded parts\n const expanded = buildRenderedText(parts, timestamps);\n const expandedTokens = estimateTokenCount(expanded);\n\n if (expandedTokens <= options.maxTokens) {\n return { text: expanded, truncated: false, tokenOffset: 0 };\n }\n\n // Safety net: if token estimates drifted, hard-truncate\n const hardTruncated = truncateStringByTokens(expanded, options.maxTokens);\n return { text: hardTruncated, truncated: true, tokenOffset: expandedTokens - options.maxTokens };\n}\n\n// ── Single-part fetch ────────────────────────────────────────────────\n\nexport async function recallPart({\n memory,\n threadId,\n resourceId,\n cursor,\n partIndex,\n threadScope,\n maxTokens = DEFAULT_MAX_RESULT_TOKENS,\n}: {\n memory: RecallMemory;\n threadId: string;\n resourceId?: string;\n cursor: string;\n partIndex: number;\n threadScope?: string;\n maxTokens?: number;\n}): Promise<{ text: string; messageId: string; partIndex: number; role: string; type: string; truncated: boolean }> {\n if (!memory || typeof memory.getMemoryStore !== 'function') {\n throw new Error('Memory instance is required for recall');\n }\n\n if (!threadId) {\n throw new Error('Thread ID is required for recall');\n }\n\n const resolved = await resolveCursorMessage(memory, cursor, {\n resourceId,\n threadScope,\n enforceThreadScope: false,\n });\n\n if ('hint' in resolved) {\n throw new Error(resolved.hint);\n }\n\n const allParts = formatMessageParts(resolved, 'high');\n\n if (allParts.length === 0) {\n throw new Error(\n `Message ${cursor} has no visible content (it may be an internal system message). Try a neighboring message ID instead.`,\n );\n }\n\n const target = [...allParts].reverse().find(p => p.partIndex === partIndex);\n\n if (!target) {\n const availableIndices = allParts.map(p => p.partIndex).join(', ');\n const highestVisiblePartIndex = Math.max(...allParts.map(p => p.partIndex));\n\n if (partIndex > highestVisiblePartIndex) {\n const nextMessage = await getNextVisibleMessage({\n memory,\n threadId,\n resourceId,\n after: resolved.createdAt,\n });\n\n if (nextMessage) {\n const nextParts = formatMessageParts(nextMessage, 'high');\n const firstNextPart = nextParts[0];\n\n if (firstNextPart) {\n const fallbackNote = `Part index ${partIndex} not found in message ${cursor}; showing partIndex ${firstNextPart.partIndex} from next message ${firstNextPart.messageId}.\\n\\n`;\n const fallbackText = `${fallbackNote}${firstNextPart.text}`;\n const truncatedText = truncateStringByTokens(fallbackText, maxTokens);\n const wasTruncated = truncatedText !== fallbackText;\n\n return {\n text: truncatedText,\n messageId: firstNextPart.messageId,\n partIndex: firstNextPart.partIndex,\n role: firstNextPart.role,\n type: firstNextPart.type,\n truncated: wasTruncated,\n };\n }\n }\n }\n\n throw new Error(`Part index ${partIndex} not found in message ${cursor}. Available indices: ${availableIndices}`);\n }\n\n const truncatedText = truncateStringByTokens(target.text, maxTokens);\n const wasTruncated = truncatedText !== target.text;\n\n return {\n text: truncatedText,\n messageId: target.messageId,\n partIndex: target.partIndex,\n role: target.role,\n type: target.type,\n truncated: wasTruncated,\n };\n}\n\n// ── Paged recall ─────────────────────────────────────────────────────\n\nexport interface RecallResult {\n messages: string;\n count: number;\n cursor: string;\n page: number;\n limit: number;\n detail: RecallDetail;\n hasNextPage: boolean;\n hasPrevPage: boolean;\n truncated: boolean;\n tokenOffset: number;\n}\n\nexport async function recallMessages({\n memory,\n threadId,\n resourceId,\n cursor,\n page = 1,\n limit = 20,\n detail = 'low',\n partType,\n toolName,\n threadScope,\n maxTokens = DEFAULT_MAX_RESULT_TOKENS,\n}: {\n memory: RecallMemory;\n threadId: string;\n resourceId?: string;\n cursor: string;\n page?: number;\n limit?: number;\n detail?: RecallDetail;\n partType?: 'text' | 'tool-call' | 'tool-result' | 'reasoning' | 'image' | 'file';\n toolName?: string;\n threadScope?: string;\n maxTokens?: number;\n}): Promise {\n if (!memory) {\n throw new Error('Memory instance is required for recall');\n }\n\n if (!threadId) {\n throw new Error('Thread ID is required for recall');\n }\n\n if (typeof memory.getMemoryStore !== 'function') {\n throw new Error('recall requires a Memory instance with storage access');\n }\n\n const MAX_PAGE = 50;\n const MAX_LIMIT = 20;\n const rawPage = page === 0 ? 1 : page;\n const normalizedPage = Math.max(Math.min(rawPage, MAX_PAGE), -MAX_PAGE);\n const normalizedLimit = Math.min(limit, MAX_LIMIT);\n\n const resolved = await resolveCursorMessage(memory, cursor, {\n resourceId,\n threadScope,\n enforceThreadScope: false,\n });\n\n if ('hint' in resolved) {\n return {\n messages: resolved.hint,\n count: 0,\n cursor,\n page: normalizedPage,\n limit: normalizedLimit,\n detail,\n hasNextPage: false,\n hasPrevPage: false,\n truncated: false,\n tokenOffset: 0,\n };\n }\n\n const anchor = resolved;\n const crossThreadId = anchor.threadId && anchor.threadId !== threadId ? anchor.threadId : undefined;\n\n if (crossThreadId && threadScope) {\n return {\n messages: `Cursor does not belong to the active thread. Expected thread \"${threadId}\" but cursor \"${cursor}\" belongs to \"${anchor.threadId}\". Pass threadId=\"${anchor.threadId}\" to browse that thread, or omit threadId and use this cursor directly in resource scope.`,\n count: 0,\n cursor,\n page: normalizedPage,\n limit: normalizedLimit,\n detail,\n hasNextPage: false,\n hasPrevPage: false,\n truncated: false,\n tokenOffset: 0,\n };\n }\n\n const resolvedThreadId = crossThreadId ?? threadId;\n if (!resolvedThreadId) {\n throw new Error('Thread ID is required for recall');\n }\n\n const isForward = normalizedPage > 0;\n const pageIndex = Math.max(Math.abs(normalizedPage), 1) - 1;\n const skip = pageIndex * normalizedLimit;\n\n // Fetch skip + limit + 1 to detect whether another page exists beyond this one\n const fetchCount = skip + normalizedLimit + 1;\n\n const result = await memory.recall({\n threadId: resolvedThreadId,\n resourceId,\n page: 0,\n perPage: fetchCount,\n orderBy: { field: 'createdAt', direction: isForward ? 'ASC' : 'DESC' },\n filter: {\n dateRange: isForward\n ? {\n start: anchor.createdAt,\n startExclusive: true,\n }\n : {\n end: anchor.createdAt,\n endExclusive: true,\n },\n },\n });\n\n // Filter out messages with only internal data-* parts so they don't consume page slots.\n const visibleMessages = result.messages.filter(hasVisibleParts);\n\n // Memory.recall() always returns messages sorted chronologically (ASC) via MessageList.\n // For forward pagination: take from the start of the ASC array (oldest first after cursor).\n // For backward pagination: take from the END of the ASC array (closest to cursor).\n // DESC query ensures the DB returns the N messages closest to cursor, but MessageList\n // re-sorts them to ASC. So we slice from the end to get the right page window.\n const total = visibleMessages.length;\n const hasMore = total > skip + normalizedLimit;\n let messages: typeof visibleMessages;\n if (isForward) {\n messages = visibleMessages.slice(skip, skip + normalizedLimit);\n } else {\n // For backward: closest-to-cursor messages are at the end of the ASC-sorted array.\n // Page -1 (skip=0): last `limit` items; page -2 (skip=limit): next `limit` from end; etc.\n const endIdx = Math.max(total - skip, 0);\n const startIdx = Math.max(endIdx - normalizedLimit, 0);\n messages = visibleMessages.slice(startIdx, endIdx);\n }\n\n // Compute pagination flags\n const hasNextPage = isForward ? hasMore : pageIndex > 0;\n const hasPrevPage = isForward ? pageIndex > 0 : hasMore;\n\n // Format parts from returned messages\n let allParts: FormattedPart[] = [];\n const timestamps = new Map();\n for (const msg of messages) {\n timestamps.set(msg.id, msg.createdAt);\n allParts.push(...formatMessageParts(msg, detail));\n }\n\n if (toolName) {\n allParts = allParts.filter(p => (p.type === 'tool-call' || p.type === 'tool-result') && p.toolName === toolName);\n }\n\n if (partType) {\n allParts = allParts.filter(p => p.type === partType);\n }\n\n // High detail: clamp to 1 message and 1 part to avoid token blowup\n if (detail === 'high' && allParts.length > 0) {\n const firstPart = allParts[0]!;\n const sameMsgParts = allParts.filter(p => p.messageId === firstPart.messageId);\n const otherMsgParts = allParts.filter(p => p.messageId !== firstPart.messageId);\n\n const rendered = renderFormattedParts([firstPart], timestamps, { detail, maxTokens });\n\n let text = rendered.text;\n\n // Build continuation hints\n const hints: string[] = [];\n if (sameMsgParts.length > 1) {\n const nextPart = sameMsgParts[1]!;\n hints.push(`next part: partIndex=${nextPart.partIndex} on cursor=\"${firstPart.messageId}\"`);\n }\n if (otherMsgParts.length > 0) {\n const next = otherMsgParts[0]!;\n hints.push(`next message: partIndex=${next.partIndex} on cursor=\"${next.messageId}\"`);\n } else if (hasNextPage) {\n hints.push(`more messages available on page ${normalizedPage + 1}`);\n }\n\n if (hints.length > 0) {\n text += `\\n\\nHigh detail returns 1 part at a time. To continue: ${hints.join(', or ')}.`;\n }\n\n return {\n messages: text,\n count: 1,\n cursor,\n page: normalizedPage,\n limit: normalizedLimit,\n detail,\n hasNextPage: otherMsgParts.length > 0 || hasNextPage,\n hasPrevPage,\n truncated: rendered.truncated,\n tokenOffset: rendered.tokenOffset,\n };\n }\n\n const rendered = renderFormattedParts(allParts, timestamps, { detail, maxTokens });\n const emptyMessage =\n allParts.length === 0\n ? partType || toolName\n ? '(no message parts matched the current filters)'\n : '(no visible message parts found for this page)'\n : '(no messages found)';\n\n return {\n messages: rendered.text || emptyMessage,\n count: messages.length,\n cursor,\n page: normalizedPage,\n limit: normalizedLimit,\n detail,\n hasNextPage,\n hasPrevPage,\n truncated: rendered.truncated,\n tokenOffset: rendered.tokenOffset,\n };\n}\n\n// ── Thread browsing (no cursor) ─────────────────────────────────────\n\nexport async function recallThreadFromStart({\n memory,\n threadId,\n resourceId,\n page = 1,\n limit = 20,\n detail = 'low',\n partType,\n toolName,\n anchor = 'start',\n maxTokens = DEFAULT_MAX_RESULT_TOKENS,\n}: {\n memory: RecallMemory;\n threadId: string;\n resourceId?: string;\n page?: number;\n limit?: number;\n detail?: RecallDetail;\n partType?: 'text' | 'tool-call' | 'tool-result' | 'reasoning' | 'image' | 'file';\n toolName?: string;\n anchor?: 'start' | 'end';\n maxTokens?: number;\n}): Promise {\n if (!memory) {\n throw new Error('Memory instance is required for recall');\n }\n if (!threadId) {\n throw new Error('Thread ID is required for recall');\n }\n\n // Verify the thread belongs to the current resource\n if (resourceId && memory.getThreadById) {\n const thread = await memory.getThreadById({ threadId });\n if (!thread || thread.resourceId !== resourceId) {\n throw new Error('Thread not found');\n }\n }\n\n const MAX_PAGE = 50;\n const MAX_LIMIT = 20;\n const normalizedPage = Math.max(Math.min(page, MAX_PAGE), 1);\n const normalizedLimit = Math.min(Math.max(limit, 1), MAX_LIMIT);\n const pageIndex = normalizedPage - 1;\n const fetchCount = pageIndex * normalizedLimit + normalizedLimit + 1;\n\n const result = await memory.recall({\n threadId,\n resourceId,\n page: 0,\n perPage: fetchCount,\n orderBy: { field: 'createdAt', direction: anchor === 'end' ? 'DESC' : 'ASC' },\n });\n\n const visibleMessages =\n anchor === 'end'\n ? result.messages.slice(0, fetchCount).filter(hasVisibleParts).reverse()\n : result.messages.slice(0, fetchCount).filter(hasVisibleParts);\n const skip = pageIndex * normalizedLimit;\n const messages = visibleMessages.slice(skip, skip + normalizedLimit);\n const hasExtraMessage = visibleMessages.length > skip + messages.length;\n const hasNextPage = messages.length > 0 ? (anchor === 'end' ? pageIndex > 0 : hasExtraMessage) : false;\n const hasPrevPage = messages.length > 0 ? (anchor === 'end' ? hasExtraMessage : pageIndex > 0) : pageIndex > 0;\n\n let allParts: FormattedPart[] = [];\n const timestamps = new Map();\n for (const msg of messages) {\n timestamps.set(msg.id, msg.createdAt);\n allParts.push(...formatMessageParts(msg, detail));\n }\n\n if (toolName) {\n allParts = allParts.filter(p => (p.type === 'tool-call' || p.type === 'tool-result') && p.toolName === toolName);\n }\n\n if (partType) {\n allParts = allParts.filter(p => p.type === partType);\n }\n\n const rendered = renderFormattedParts(allParts, timestamps, { detail, maxTokens });\n const emptyMessage =\n messages.length === 0\n ? pageIndex > 0\n ? `(no messages found on page ${normalizedPage} for this thread)`\n : '(no messages in this thread)'\n : partType || toolName\n ? '(no message parts matched the current filters)'\n : '(no messages found)';\n\n return {\n messages: rendered.text || emptyMessage,\n count: messages.length,\n cursor: messages[0]?.id || '',\n page: normalizedPage,\n limit: normalizedLimit,\n detail,\n hasNextPage,\n hasPrevPage,\n truncated: rendered.truncated,\n tokenOffset: rendered.tokenOffset,\n };\n}\n\nexport const recallTool = (\n _memoryConfig?: MemoryConfigInternal,\n options?: { retrievalScope?: 'thread' | 'resource' },\n) => {\n const retrievalScope = options?.retrievalScope ?? 'thread';\n const isResourceScope = retrievalScope === 'resource';\n\n const description = isResourceScope\n ? 'Browse conversation history. Use mode=\"threads\" to list all threads for the current user. Use mode=\"messages\" (default) to browse messages in the current thread or pass threadId to browse another thread in the active resource. When mode=\"messages\" has no cursor or threadId, it defaults to the current thread and says so at the top of the result. If you pass only a cursor, it must belong to the current thread. Use mode=\"search\" to find messages by content across all threads.'\n : 'Browse conversation history in the current thread. Use mode=\"messages\" (default) to page through messages near a cursor. Use mode=\"search\" to find messages by content in this thread. Use mode=\"threads\" to get the current thread\\'s ID and title.';\n\n return createTool({\n id: 'recall',\n description,\n inputSchema: {\n $schema: 'http://json-schema.org/draft-07/schema#',\n type: 'object',\n properties: {\n ...(isResourceScope\n ? {\n mode: {\n type: 'string',\n enum: ['messages', 'threads', 'search'],\n description:\n 'What to retrieve. \"messages\" (default) pages through message history. \"threads\" lists all threads for the current user. \"search\" finds messages by semantic similarity across all threads.',\n },\n threadId: {\n type: 'string',\n minLength: 1,\n description:\n 'Browse a different thread, or \"current\" for the active thread. Use mode=\"threads\" first to discover thread IDs.',\n },\n before: {\n type: 'string',\n description:\n 'For mode=\"threads\": only show threads created before this date. ISO 8601 or natural date string (e.g. \"2026-03-15\", \"2026-03-10T00:00:00Z\").',\n },\n after: {\n type: 'string',\n description:\n 'For mode=\"threads\": only show threads created after this date. ISO 8601 or natural date string (e.g. \"2026-03-01\", \"2026-03-10T00:00:00Z\").',\n },\n }\n : {\n mode: {\n type: 'string',\n enum: ['messages', 'threads', 'search'],\n description:\n 'What to retrieve. \"messages\" (default) pages through message history. \"threads\" returns info about the current thread. \"search\" finds messages by semantic similarity in this thread.',\n },\n }),\n query: {\n type: 'string',\n minLength: 1,\n description: 'Search query for mode=\"search\". Finds messages semantically similar to this text.',\n },\n cursor: {\n type: 'string',\n minLength: 1,\n description:\n 'A message ID to use as the pagination cursor. For mode=\"messages\", omit both cursor and threadId to browse the current thread. If only cursor is provided, it must belong to the current thread. Extract it from the start or end of an observation group range.',\n },\n anchor: {\n type: 'string',\n enum: ['start', 'end'],\n description:\n 'For mode=\"messages\" without a cursor, page from the start (oldest-first) or end (newest-first) of the thread. Defaults to \"start\".',\n },\n page: {\n type: 'integer',\n minimum: -50,\n maximum: 50,\n description:\n 'Pagination offset. For messages: positive pages move forward from cursor, negative move backward. For threads: page number (0-indexed). 0 is treated as 1 for messages.',\n },\n limit: {\n type: 'integer',\n minimum: 1,\n maximum: 20,\n description: 'Maximum number of items to return per page. Defaults to 20.',\n },\n detail: {\n type: 'string',\n enum: ['low', 'high'],\n description:\n 'Detail level for messages. \"low\" (default) returns truncated text and tool names. \"high\" returns full content with tool args/results.',\n },\n partType: {\n type: 'string',\n enum: ['text', 'tool-call', 'tool-result', 'reasoning', 'image', 'file'],\n description: 'Filter results to only include parts of this type. Only applies to mode=\"messages\".',\n },\n toolName: {\n type: 'string',\n minLength: 1,\n description:\n 'Filter results to only include tool-call and tool-result parts matching this tool name. Only applies to mode=\"messages\".',\n },\n partIndex: {\n type: 'integer',\n minimum: 0,\n description:\n 'Fetch a single part from the cursor message by its positional index. When provided, returns only that part at high detail. Indices are shown as [p0], [p1], etc. in recall results.',\n },\n },\n } satisfies JSONSchema7,\n execute: async (inputData, context) => {\n const {\n mode,\n query,\n cursor,\n threadId: explicitThreadId,\n anchor,\n page,\n limit,\n detail,\n partType,\n toolName,\n partIndex,\n before,\n after,\n } = inputData as {\n mode?: 'messages' | 'threads' | 'search';\n query?: string;\n cursor?: string;\n threadId?: string;\n anchor?: 'start' | 'end';\n page?: number;\n limit?: number;\n detail?: RecallDetail;\n partType?: 'text' | 'tool-call' | 'tool-result' | 'reasoning' | 'image' | 'file';\n toolName?: string;\n partIndex?: number;\n before?: string;\n after?: string;\n };\n const memory = (context as any)?.memory as RecallMemory | undefined;\n const currentThreadId = context?.agent?.threadId;\n const resourceId = context?.agent?.resourceId;\n const resolvedExplicitThreadId = explicitThreadId === 'current' ? currentThreadId : explicitThreadId;\n\n if (!memory) {\n throw new Error('Memory instance is required for recall');\n }\n\n if (explicitThreadId === 'current' && !currentThreadId) {\n throw new Error('Could not resolve current thread.');\n }\n\n // Search mode\n if (mode === 'search') {\n if (!query) {\n throw new Error('query is required for mode=\"search\"');\n }\n if (!resourceId) {\n throw new Error('Resource ID is required for recall');\n }\n return searchMessagesForResource({\n memory,\n resourceId,\n currentThreadId: currentThreadId || undefined,\n query,\n topK: limit ?? 10,\n before,\n after,\n threadScope: !isResourceScope ? currentThreadId || undefined : resolvedExplicitThreadId || undefined,\n });\n }\n\n // Thread listing mode\n if (mode === 'threads') {\n const requestedCurrentThread = explicitThreadId === 'current';\n\n // Thread scope: return current thread info only\n if (!isResourceScope || requestedCurrentThread) {\n if (!currentThreadId || !memory.getThreadById) {\n return { error: 'Could not resolve current thread.' };\n }\n const thread = await memory.getThreadById({ threadId: currentThreadId });\n if (!thread) {\n return { error: 'Could not resolve current thread.' };\n }\n if (isResourceScope && resourceId && thread.resourceId !== resourceId) {\n throw new Error('Thread does not belong to the active resource');\n }\n return {\n threads: `- **${thread.title || '(untitled)'}** ← current\\n id: ${thread.id}\\n updated: ${formatTimestamp(thread.updatedAt)} | created: ${formatTimestamp(thread.createdAt)}`,\n count: 1,\n page: 0,\n hasMore: false,\n };\n }\n if (!resourceId) {\n throw new Error('Resource ID is required for recall');\n }\n return listThreadsForResource({\n memory,\n resourceId,\n currentThreadId: currentThreadId || '',\n page: page ?? 0,\n limit: limit ?? 20,\n before,\n after,\n });\n }\n\n const usedDefaultThreadId = isResourceScope && !explicitThreadId && !cursor && Boolean(currentThreadId);\n const defaultThreadNote = usedDefaultThreadId\n ? `threadId wasn't passed so used default ${currentThreadId}.\\n\\n`\n : '';\n const effectiveThreadId = explicitThreadId || (usedDefaultThreadId ? 'current' : undefined);\n const resolvedThreadId = effectiveThreadId === 'current' ? currentThreadId : effectiveThreadId;\n const hasExplicitThreadId = typeof resolvedThreadId === 'string' && resolvedThreadId.length > 0;\n const hasCursor = typeof cursor === 'string' && cursor.length > 0;\n\n if (!hasExplicitThreadId && !hasCursor) {\n throw new Error('Either cursor or threadId is required for mode=\"messages\"');\n }\n\n let targetThreadId: string | undefined;\n let threadScope: string | undefined;\n\n if (!isResourceScope) {\n targetThreadId = currentThreadId;\n threadScope = currentThreadId || undefined;\n } else if (hasExplicitThreadId) {\n if (!resourceId) {\n throw new Error('Resource ID is required for recall');\n }\n if (!memory.getThreadById) {\n throw new Error('Memory instance cannot verify thread access for recall');\n }\n\n const thread = await memory.getThreadById({ threadId: resolvedThreadId! });\n if (!thread || thread.resourceId !== resourceId) {\n throw new Error('Thread does not belong to the active resource');\n }\n\n targetThreadId = thread.id;\n threadScope = thread.id;\n } else {\n targetThreadId = currentThreadId;\n threadScope = currentThreadId || undefined;\n }\n\n if (hasCursor && !hasExplicitThreadId && !currentThreadId) {\n if (!isResourceScope) {\n throw new Error('Current thread is required when browsing by cursor');\n }\n\n const resolved = await resolveCursorMessage(memory, cursor!, { resourceId });\n if ('hint' in resolved) {\n return {\n messages: resolved.hint,\n count: 0,\n cursor: cursor!,\n page: page ?? 1,\n limit: Math.min(limit ?? 20, 20),\n detail: detail ?? 'low',\n hasNextPage: false,\n hasPrevPage: false,\n truncated: false,\n tokenOffset: 0,\n };\n }\n\n targetThreadId = resolved.threadId;\n }\n\n if (!targetThreadId) {\n throw new Error('Thread ID is required for recall');\n }\n\n // No cursor — read from the start of the thread\n if (!cursor) {\n const result = await recallThreadFromStart({\n memory,\n threadId: targetThreadId,\n resourceId: isResourceScope ? resourceId : undefined,\n page: page ?? 1,\n limit: limit ?? 20,\n detail: detail ?? 'low',\n partType,\n toolName,\n anchor: anchor ?? 'start',\n });\n\n if (defaultThreadNote) {\n return { ...result, messages: `${defaultThreadNote}${result.messages}` };\n }\n\n return result;\n }\n\n // Single-part fetch mode\n if (partIndex !== undefined && partIndex !== null) {\n return recallPart({\n memory,\n threadId: targetThreadId,\n resourceId: isResourceScope ? resourceId : undefined,\n cursor,\n partIndex,\n threadScope,\n });\n }\n\n return recallMessages({\n memory,\n threadId: targetThreadId,\n resourceId: isResourceScope ? resourceId : undefined,\n cursor,\n page,\n limit,\n detail: detail ?? 'low',\n partType,\n toolName,\n threadScope,\n });\n },\n });\n};\n","import type { MemoryConfigInternal } from '@mastra/core/memory';\nimport { isStandardSchemaWithJSON, toStandardSchema } from '@mastra/core/schema';\nimport type { PublicSchema, StandardSchemaWithJSON } from '@mastra/core/schema';\nimport type { ToolAction } from '@mastra/core/tools';\nimport { createTool } from '@mastra/core/tools';\nimport { standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { JSONSchema7 } from 'json-schema';\n\n// Keep these in sync with @mastra/core/memory. @mastra/memory supports older\n// peer-compatible @mastra/core versions that may not export the newer names.\nconst UPDATE_WORKING_MEMORY_TOOL_NAME = 'updateWorkingMemory';\nconst SET_WORKING_MEMORY_TOOL_NAME = 'setWorkingMemory';\n\n/**\n * Deep merges two objects, with special handling for null values (delete) and arrays (replace).\n * - Object properties are recursively merged\n * - null values in the update will delete the corresponding property\n * - Arrays are replaced entirely (not merged element-by-element)\n * - Primitive values are overwritten\n */\nexport function deepMergeWorkingMemory(\n existing: Record | null | undefined,\n update: Record | null | undefined,\n): Record {\n // Handle null/undefined/empty updates - preserve existing or return empty object\n if (!update || typeof update !== 'object' || Object.keys(update).length === 0) {\n return existing && typeof existing === 'object' ? { ...existing } : {};\n }\n\n if (!existing || typeof existing !== 'object') {\n return update;\n }\n\n const result: Record = { ...existing };\n\n for (const key of Object.keys(update)) {\n const updateValue = update[key];\n const existingValue = result[key];\n\n // null means delete the property\n if (updateValue === null) {\n delete result[key];\n }\n // Arrays are replaced entirely (too complex to diff/merge arrays of objects)\n else if (Array.isArray(updateValue)) {\n result[key] = updateValue;\n }\n // Recursively merge nested objects\n else if (\n typeof updateValue === 'object' &&\n updateValue !== null &&\n typeof existingValue === 'object' &&\n existingValue !== null &&\n !Array.isArray(existingValue)\n ) {\n result[key] = deepMergeWorkingMemory(\n existingValue as Record,\n updateValue as Record,\n );\n }\n // Primitive values or new properties: just set them\n else {\n result[key] = updateValue;\n }\n }\n\n return result;\n}\n\nfunction stripNullsFromOptional(value: unknown, schema: Record): unknown {\n if (Array.isArray(value)) {\n const itemSchema = (schema.items as Record) ?? {};\n return value.map(item => stripNullsFromOptional(item, itemSchema));\n }\n\n if (typeof value === 'object' && value !== null) {\n const properties = (schema.properties as Record>) ?? {};\n const required = (schema.required as string[]) ?? [];\n const result: Record = {};\n\n for (const [key, propertyValue] of Object.entries(value as Record)) {\n if (propertyValue === null && !required.includes(key)) {\n continue;\n }\n\n result[key] = stripNullsFromOptional(propertyValue, properties[key] ?? {});\n }\n\n return result;\n }\n\n return value;\n}\n\nexport const updateWorkingMemoryTool = (memoryConfig?: MemoryConfigInternal) => {\n const schema = memoryConfig?.workingMemory?.schema;\n\n // Default input schema for markdown-based working memory\n let inputSchema: PublicSchema<{ memory: any }> = {\n $schema: 'http://json-schema.org/draft-07/schema#',\n type: 'object',\n properties: {\n memory: {\n type: 'string',\n description: `The Markdown formatted working memory content to store. This MUST be a string. Never pass an object.`,\n },\n },\n required: ['memory'],\n } satisfies JSONSchema7;\n\n if (schema) {\n // Convert the schema to StandardSchemaWithJSON first\n const standardSchema: StandardSchemaWithJSON = isStandardSchemaWithJSON(schema) ? schema : toStandardSchema(schema);\n\n // Get JSON schema using .input() since this describes the structure the tool should receive,\n // then wrap it for runtime validation of the tool's inputSchema\n const jsonSchema = standardSchemaToJSONSchema(standardSchema, { io: 'input' });\n delete jsonSchema.$schema;\n\n // Use the JSON Schema only to describe tool input to the model, and validate with\n // the schema's own (e.g. Zod-native) validator. Re-wrapping via toStandardSchema()\n // routed validation through AJV, which uses `new Function`/`eval` and crashes on\n // runtimes that forbid dynamic code generation such as Cloudflare Workers (#17301).\n const wrappedJsonSchema: JSONSchema7 = {\n $schema: 'http://json-schema.org/draft-07/schema#',\n type: 'object',\n description: 'The JSON formatted working memory content to store.',\n properties: {\n memory: jsonSchema,\n },\n required: ['memory'],\n };\n\n // Validate the inner `memory` payload with the original schema's validator and\n // map a successful result back into the `{ memory }` shape the tool expects.\n const validateMemory = (memoryValue: unknown) => standardSchema['~standard'].validate(memoryValue);\n type ValidateResult = Awaited>;\n const toWrappedResult = (result: ValidateResult) =>\n 'issues' in result && result.issues ? result : { value: { memory: result.value } };\n\n inputSchema = {\n '~standard': {\n version: 1,\n vendor: 'mastra',\n validate: (value: unknown) => {\n // Older models sometimes omit the top-level `memory` wrapper, so fall back to\n // stripping nulls from the raw value and validating it as the memory payload.\n const hasWrapper =\n !!value && typeof value === 'object' && !Array.isArray(value) && 'memory' in (value as object);\n const memoryValue = hasWrapper\n ? (value as { memory: unknown }).memory\n : stripNullsFromOptional(value, jsonSchema as Record);\n\n const result = validateMemory(memoryValue);\n return result instanceof Promise ? result.then(toWrappedResult) : toWrappedResult(result);\n },\n jsonSchema: {\n input: () => wrappedJsonSchema,\n output: () => wrappedJsonSchema,\n },\n },\n } as unknown as StandardSchemaWithJSON<{ memory: any }>;\n }\n\n // For schema-based working memory, we use merge semantics\n // For template-based (Markdown), we use replace semantics (existing behavior)\n const usesMergeSemantics = Boolean(schema);\n\n const useStateSignals = memoryConfig?.workingMemory?.useStateSignals === true;\n\n const stateSignalsPreamble = `The current working memory state is delivered to you each turn by the system inside a ... block. That block is system-emitted state, NOT something the user typed — never describe it as the user sharing it. Read from it directly when answering. Only call this tool when the user provides genuinely NEW or CHANGED facts that should be persisted; do NOT call it to re-save unchanged data.`;\n\n const description = schema\n ? useStateSignals\n ? `${stateSignalsPreamble} Data is merged with existing memory — only include fields you want to add or update.`\n : `Update the working memory with new information. Data is merged with existing memory - only include fields you want to add or update. To preserve existing data, omit the field entirely. Arrays are replaced entirely when provided, so pass the complete array or omit it to keep the existing values.`\n : useStateSignals\n ? `${stateSignalsPreamble} Pass the full updated Markdown blob as a string in the memory field.`\n : `Update the working memory with new information. Any data not included will be overwritten. Always pass data as string to the memory field. Never pass an object.`;\n\n return createTool({\n id: 'update-working-memory',\n description,\n inputSchema,\n execute: async (inputData, context) => {\n const workingMemoryInput = inputData as { memory: any };\n const threadId = context?.agent?.threadId;\n const resourceId = context?.agent?.resourceId;\n\n // Memory can be accessed via context.memory (when agent is part of Mastra instance)\n // or context.memory (when agent is standalone with memory passed directly)\n const memory = (context as any)?.memory;\n\n if (!memory) {\n throw new Error('Memory instance is required for working memory updates');\n }\n\n const scope = memoryConfig?.workingMemory?.scope || 'resource';\n if (scope === 'thread' && !threadId) {\n throw new Error('Thread ID is required for thread-scoped working memory updates');\n }\n if (scope === 'resource' && !resourceId) {\n throw new Error('Resource ID is required for resource-scoped working memory updates');\n }\n\n if (threadId) {\n let thread = await memory.getThreadById({ threadId });\n\n if (!thread) {\n thread = await memory.createThread({\n threadId,\n resourceId,\n memoryConfig,\n });\n }\n\n if (thread.resourceId && resourceId && thread.resourceId !== resourceId) {\n throw new Error(`Thread with id ${threadId} resourceId does not match the current resourceId ${resourceId}`);\n }\n }\n\n let workingMemory: string;\n\n if (usesMergeSemantics) {\n // Schema-based: fetch existing, merge, save\n const existingRaw = await memory.getWorkingMemory({\n threadId,\n resourceId,\n memoryConfig,\n });\n\n let existingData: Record | null = null;\n if (existingRaw) {\n try {\n existingData = typeof existingRaw === 'string' ? JSON.parse(existingRaw) : existingRaw;\n } catch {\n // If existing data is not valid JSON, start fresh\n existingData = null;\n }\n }\n\n // Handle case where LLM passes empty object or no memory field\n const memoryInput = workingMemoryInput.memory;\n if (memoryInput === undefined || memoryInput === null) {\n // No data to update - return existing data unchanged\n return { success: true, message: 'No memory data provided, existing memory unchanged.' };\n }\n\n let newData: unknown;\n if (typeof memoryInput === 'string') {\n try {\n newData = JSON.parse(memoryInput);\n } catch (parseError) {\n const errorMessage = parseError instanceof Error ? parseError.message : String(parseError);\n throw new Error(\n `Failed to parse working memory input as JSON: ${errorMessage}. ` +\n `Raw input: ${memoryInput.length > 500 ? memoryInput.slice(0, 500) + '...' : memoryInput}`,\n );\n }\n } else {\n newData = memoryInput;\n }\n\n const mergedData = deepMergeWorkingMemory(existingData, newData as Record);\n workingMemory = JSON.stringify(mergedData);\n } else {\n // Template-based (Markdown): use existing replace semantics\n const memoryInput = workingMemoryInput.memory;\n workingMemory = typeof memoryInput === 'string' ? memoryInput : JSON.stringify(memoryInput);\n\n // Validate that we're not replacing good data with an empty template\n // This prevents accidental data loss when the LLM returns just the template\n const existingRaw = await memory.getWorkingMemory({\n threadId,\n resourceId,\n memoryConfig,\n });\n\n if (existingRaw) {\n const template = await memory.getWorkingMemoryTemplate({ memoryConfig });\n if (template?.content) {\n // Normalize whitespace for comparison\n const normalizedNew = workingMemory.replace(/\\s+/g, ' ').trim();\n const normalizedTemplate = template.content.replace(/\\s+/g, ' ').trim();\n const normalizedExisting = existingRaw.replace(/\\s+/g, ' ').trim();\n\n // If the new content is essentially the empty template and we have meaningful existing data\n if (normalizedNew === normalizedTemplate && normalizedExisting !== normalizedTemplate) {\n return {\n success: false,\n message:\n 'Attempted to replace existing working memory with empty template. Update skipped to prevent data loss.',\n };\n }\n }\n }\n }\n\n // Use the updateWorkingMemory method which handles both thread and resource scope\n await memory.updateWorkingMemory({\n threadId,\n resourceId,\n workingMemory,\n memoryConfig,\n });\n\n return { success: true };\n },\n });\n};\n\nexport const __experimental_updateWorkingMemoryToolVNext = (config: MemoryConfigInternal) => {\n return createTool({\n id: 'update-working-memory',\n description: 'Update the working memory with new information.',\n inputSchema: {\n $schema: 'http://json-schema.org/draft-07/schema#',\n type: 'object',\n properties: {\n newMemory: {\n type: 'string',\n description: `The ${config.workingMemory?.schema ? 'JSON' : 'Markdown'} formatted working memory content to store`,\n },\n searchString: {\n type: 'string',\n description:\n \"The working memory string to find. Will be replaced with the newMemory string. If this is omitted or doesn't exist, the newMemory string will be appended to the end of your working memory. Replacing single lines at a time is encouraged for greater accuracy. If updateReason is not 'append-new-memory', this search string must be provided or the tool call will be rejected.\",\n },\n updateReason: {\n type: 'string',\n enum: ['append-new-memory', 'clarify-existing-memory', 'replace-irrelevant-memory'],\n description:\n \"The reason you're updating working memory. Passing any value other than 'append-new-memory' requires a searchString to be provided. Defaults to append-new-memory\",\n },\n },\n } satisfies JSONSchema7,\n execute: async (inputData, context) => {\n const workingMemoryInput = inputData as {\n newMemory?: string;\n searchString?: string;\n updateReason?: 'append-new-memory' | 'clarify-existing-memory' | 'replace-irrelevant-memory';\n };\n const threadId = context?.agent?.threadId;\n const resourceId = context?.agent?.resourceId;\n\n // Memory can be accessed via context.memory (when agent is part of Mastra instance)\n // or context.memory (when agent is standalone with memory passed directly)\n const memory = (context as any)?.memory;\n\n if (!memory) {\n throw new Error('Memory instance is required for working memory updates');\n }\n\n const scope = config.workingMemory?.scope || 'resource';\n if (scope === 'thread' && !threadId) {\n throw new Error('Thread ID is required for thread-scoped working memory updates');\n }\n if (scope === 'resource' && !resourceId) {\n throw new Error('Resource ID is required for resource-scoped working memory updates');\n }\n\n if (threadId) {\n let thread = await memory.getThreadById({ threadId });\n\n if (!thread) {\n thread = await memory.createThread({\n threadId,\n resourceId,\n memoryConfig: config,\n });\n }\n\n if (thread.resourceId && resourceId && thread.resourceId !== resourceId) {\n throw new Error(`Thread with id ${threadId} resourceId does not match the current resourceId ${resourceId}`);\n }\n }\n\n const workingMemory = workingMemoryInput.newMemory || '';\n if (!workingMemoryInput.updateReason) workingMemoryInput.updateReason = `append-new-memory`;\n\n if (\n workingMemoryInput.searchString &&\n config.workingMemory?.scope === `resource` &&\n workingMemoryInput.updateReason === `replace-irrelevant-memory`\n ) {\n // don't allow replacements due to something not being relevant to the current conversation\n // if there's no searchString, then we will append.\n workingMemoryInput.searchString = undefined;\n }\n\n if (workingMemoryInput.updateReason === `append-new-memory` && workingMemoryInput.searchString) {\n // do not find/replace when append-new-memory is selected\n // some models get confused and pass a search string even when they don't want to replace it.\n // TODO: maybe they're trying to add new info after the search string?\n workingMemoryInput.searchString = undefined;\n }\n\n if (workingMemoryInput.updateReason !== `append-new-memory` && !workingMemoryInput.searchString) {\n return {\n success: false,\n reason: `updateReason was ${workingMemoryInput.updateReason} but no searchString was provided. Unable to replace undefined with \"${workingMemoryInput.newMemory}\"`,\n };\n }\n\n // Use the new updateWorkingMemory method which handles both thread and resource scope\n const result = await memory!.__experimental_updateWorkingMemoryVNext({\n threadId,\n resourceId,\n workingMemory: workingMemory,\n searchString: workingMemoryInput.searchString,\n memoryConfig: config,\n });\n\n if (result) {\n return result;\n }\n\n return { success: true };\n },\n });\n};\n\n/**\n * Returns the working-memory tool plus the wire name it should be registered under.\n *\n * - Default delivery (`useStateSignals: false`): wire name `updateWorkingMemory`,\n * identical shape to today.\n * - State-signals delivery (`useStateSignals: true`): wire name `setWorkingMemory`.\n * The rename keeps legacy strip filters (which match the literal `updateWorkingMemory`)\n * from removing tool-call parts so they persist as a normal audit trail. Any\n * future state-signal-specific tweaks to the tool (e.g. delta-aware results,\n * scoped descriptions) belong here.\n *\n * The VNext vs default tool body decision is left to the caller because Memory\n * owns the `isVNextWorkingMemoryConfig` check; pass `vNext: true` to use the\n * search-and-replace shape.\n */\nexport function createWorkingMemoryTool(\n config: MemoryConfigInternal,\n options: { vNext?: boolean } = {},\n): { name: string; tool: ToolAction } {\n const useStateSignals = config.workingMemory?.useStateSignals === true;\n const tool = options.vNext ? __experimental_updateWorkingMemoryToolVNext(config) : updateWorkingMemoryTool(config);\n const name = useStateSignals ? SET_WORKING_MEMORY_TOOL_NAME : UPDATE_WORKING_MEMORY_TOOL_NAME;\n return { name, tool };\n}\n","import { embedMany } from '@internal/ai-sdk-v4';\nimport type { TextPart } from '@internal/ai-sdk-v4';\nimport { embedMany as embedManyV5 } from '@internal/ai-sdk-v5';\nimport { embedMany as embedManyV6 } from '@internal/ai-v6';\nimport { MessageList } from '@mastra/core/agent';\nimport type { MastraDBMessage } from '@mastra/core/agent';\n\nimport { coreFeatures } from '@mastra/core/features';\nimport type { Mastra } from '@mastra/core/mastra';\nimport { MastraMemory } from '@mastra/core/memory';\nimport type {\n MemoryConfigInternal,\n SharedMemoryConfig,\n StorageThreadType,\n WorkingMemoryTemplate,\n MessageDeleteInput,\n ObservationalMemoryOptions,\n MemoryConfig,\n} from '@mastra/core/memory';\nimport { SpanType, EntityType } from '@mastra/core/observability';\nimport type { ObservabilityContext, MemoryOperationAttributes } from '@mastra/core/observability';\nimport type {\n InputProcessor,\n InputProcessorOrWorkflow,\n OutputProcessor,\n OutputProcessorOrWorkflow,\n} from '@mastra/core/processors';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type {\n StorageListThreadsInput,\n StorageListThreadsOutput,\n StorageListMessagesInput,\n MemoryStorage,\n StorageCloneThreadInput,\n StorageCloneThreadOutput,\n ThreadCloneMetadata,\n ObservationalMemoryRecord,\n BufferedObservationChunk,\n} from '@mastra/core/storage';\nimport type { ToolAction } from '@mastra/core/tools';\nimport { generateEmptyFromSchema } from '@mastra/core/utils';\nimport type { VectorFilter } from '@mastra/core/vector';\nimport { isStandardSchemaWithJSON, toStandardSchema } from '@mastra/schema-compat/schema';\nimport { Mutex } from 'async-mutex';\nimport type { JSONSchema7 } from 'json-schema';\nimport { LRUCache } from 'lru-cache';\nimport xxhash from 'xxhash-wasm';\nimport type { ObservationalMemory, ObservationalMemoryConfig } from './processors/observational-memory';\nimport { recallTool } from './tools/om-tools';\nimport { createWorkingMemoryTool, deepMergeWorkingMemory } from './tools/working-memory';\n\nexport {\n ModelByInputTokens,\n type ModelByInputTokensConfig,\n} from './processors/observational-memory/model-by-input-tokens';\n\n/**\n * Normalize a `boolean | object` observational memory config.\n * Returns the options object if enabled, undefined if disabled.\n * Inlined here to avoid importing runtime exports that don't exist on older @mastra/core versions.\n */\ntype MemoryObservationalMemoryOptions = Omit & {\n model?: ObservationalMemoryConfig['model'];\n observation?: ObservationalMemoryConfig['observation'];\n reflection?: ObservationalMemoryConfig['reflection'];\n activateAfterIdle?: ObservationalMemoryConfig['activateAfterIdle'];\n activateOnProviderChange?: ObservationalMemoryConfig['activateOnProviderChange'];\n temporalMarkers?: boolean;\n};\n\ntype MemoryOptions = Omit & {\n observationalMemory?: boolean | MemoryObservationalMemoryOptions;\n};\n\ntype MemoryConstructorConfig = Omit & {\n options?: MemoryOptions;\n};\n\ntype RuntimeMemoryConfig = Omit & {\n observationalMemory?: boolean | MemoryObservationalMemoryOptions;\n};\n\ntype NormalizedObservationalMemoryConfig = MemoryObservationalMemoryOptions & {\n retrieval?: boolean | { vector?: boolean; scope?: 'thread' | 'resource' };\n};\n\n/*\n * Compatibility note: the working-memory and system-reminder helpers below are\n * intentionally copied from @mastra/core instead of imported from\n * @mastra/core/memory. @mastra/memory's peer range permits older core versions\n * that do not export these newer helper names, and importing them can crash a\n * published memory build during ESM instantiation before user code runs.\n *\n * Until v2 can tighten the peer contract, keep these copies manually in sync\n * with packages/core/src/memory/working-memory-utils.ts and\n * packages/core/src/memory/system-reminders.ts. Those source files also carry\n * compatibility notes that point back here.\n */\nconst WORKING_MEMORY_START_TAG = '';\nconst WORKING_MEMORY_END_TAG = '';\nconst LEGACY_SYSTEM_REMINDER_METADATA_KEY = 'dynamicAgentsMdReminder';\n\nfunction isRecord(value: unknown): value is Record {\n return typeof value === 'object' && value !== null;\n}\n\nexport function extractWorkingMemoryTags(text: string): string[] | null {\n const results: string[] = [];\n let pos = 0;\n\n while (pos < text.length) {\n const start = text.indexOf(WORKING_MEMORY_START_TAG, pos);\n if (start === -1) break;\n\n const end = text.indexOf(WORKING_MEMORY_END_TAG, start + WORKING_MEMORY_START_TAG.length);\n if (end === -1) break;\n\n results.push(text.substring(start, end + WORKING_MEMORY_END_TAG.length));\n pos = end + WORKING_MEMORY_END_TAG.length;\n }\n\n return results.length > 0 ? results : null;\n}\n\nexport function removeWorkingMemoryTags(text: string): string {\n let result = '';\n let pos = 0;\n\n while (pos < text.length) {\n const start = text.indexOf(WORKING_MEMORY_START_TAG, pos);\n if (start === -1) {\n result += text.substring(pos);\n break;\n }\n\n result += text.substring(pos, start);\n\n const end = text.indexOf(WORKING_MEMORY_END_TAG, start + WORKING_MEMORY_START_TAG.length);\n if (end === -1) {\n result += text.substring(start);\n break;\n }\n\n pos = end + WORKING_MEMORY_END_TAG.length;\n }\n\n return result;\n}\n\nexport function extractWorkingMemoryContent(text: string): string | null {\n const start = text.indexOf(WORKING_MEMORY_START_TAG);\n if (start === -1) return null;\n\n const contentStart = start + WORKING_MEMORY_START_TAG.length;\n const end = text.indexOf(WORKING_MEMORY_END_TAG, contentStart);\n if (end === -1) return null;\n\n return text.substring(contentStart, end);\n}\n\nfunction isSystemReminderMessage(message: MastraDBMessage): boolean {\n if (!isRecord(message.content)) {\n return false;\n }\n\n const metadata = message.content.metadata;\n if (message.role === 'signal') {\n return (\n isRecord(metadata) &&\n isRecord(metadata.signal) &&\n (metadata.signal.type === 'system-reminder' || metadata.signal.type === 'reactive')\n );\n }\n\n if (message.role !== 'user') {\n return false;\n }\n\n if (isRecord(metadata) && (isRecord(metadata.systemReminder) || LEGACY_SYSTEM_REMINDER_METADATA_KEY in metadata)) {\n return true;\n }\n\n const firstTextPart = message.content.parts.find(part => part.type === 'text');\n return typeof firstTextPart?.text === 'string' && firstTextPart.text.startsWith(' !isSystemReminderMessage(message));\n}\n\nfunction normalizeObservationalMemoryConfig(\n config: boolean | MemoryObservationalMemoryOptions | undefined,\n): NormalizedObservationalMemoryConfig | undefined {\n if (config === true) return { model: 'google/gemini-2.5-flash' };\n if (config === false || config === undefined) return undefined;\n if (typeof config === 'object' && config.enabled === false) return undefined;\n return config as NormalizedObservationalMemoryConfig;\n}\n\n// Re-export for testing purposes\nexport { deepMergeWorkingMemory };\n\n// Average characters per token based on OpenAI's tokenization\nconst CHARS_PER_TOKEN = 4;\n\nconst DEFAULT_MESSAGE_RANGE = { before: 1, after: 1 } as const;\nconst DEFAULT_TOP_K = 4;\nconst VECTOR_DELETE_BATCH_SIZE = 100;\n\n// Max number of distinct contents whose embeddings are kept in the in-process\n// cache. Bounds memory so a long-running Memory instance can't accumulate every\n// message/query it has ever embedded (each entry holds chunk text + vectors).\n// Matches the default used by the core SemanticRecall embedding cache.\nconst DEFAULT_EMBEDDING_CACHE_MAX_SIZE = 1000;\n\n/**\n * Concrete implementation of MastraMemory that adds support for thread configuration\n * and message injection.\n */\nexport class Memory extends MastraMemory {\n private _omEngine: Promise | undefined;\n private _omEngineInstance: ObservationalMemory | null | undefined;\n private _mastraInstance: Mastra | undefined;\n\n /** The shared ObservationalMemory engine. Lazily created on first access. */\n get omEngine(): Promise {\n if (!this._omEngine) {\n this._omEngine = this._initOMEngine().then(engine => {\n this._omEngineInstance = engine;\n if (engine && this._mastraInstance) {\n engine.__registerMastra(this._mastraInstance);\n }\n return engine;\n });\n }\n return this._omEngine;\n }\n\n __registerMastra(mastra: Mastra): void {\n super.__registerMastra(mastra);\n this._mastraInstance = mastra;\n if (this._omEngineInstance) {\n this._omEngineInstance.__registerMastra(mastra);\n } else {\n void this._omEngine?.then(engine => engine?.__registerMastra(mastra));\n }\n }\n\n constructor(config: MemoryConstructorConfig = {}) {\n super({ name: 'Memory', ...config } as { name: string } & SharedMemoryConfig);\n\n const mergedConfig = this.getMergedThreadConfig({\n workingMemory: config.options?.workingMemory || {\n // these defaults are now set inside @mastra/core/memory in getMergedThreadConfig.\n // In a future release we can remove it from this block - for now if we remove it\n // and someone bumps @mastra/memory without bumping @mastra/core the defaults wouldn't exist yet\n enabled: false,\n template: this.defaultWorkingMemoryTemplate,\n },\n observationalMemory: config.options?.observationalMemory as ObservationalMemoryOptions | boolean | undefined,\n });\n this.assertWorkingMemoryStateSignalsCompatibility(mergedConfig);\n this.threadConfig = mergedConfig;\n\n // Validate retrieval vector config at construction time\n const omConfig = normalizeObservationalMemoryConfig(mergedConfig.observationalMemory);\n if (omConfig?.retrieval && typeof omConfig.retrieval === 'object' && omConfig.retrieval.vector) {\n if (!this.vector) {\n throw new Error(\n '`retrieval: { vector: true }` requires a vector store. Pass a `vector` option to your Memory instance.',\n );\n }\n if (!this.embedder) {\n throw new Error(\n '`retrieval: { vector: true }` requires an embedder. Pass an `embedder` option to your Memory instance.',\n );\n }\n }\n }\n\n /**\n * Gets the memory storage domain, throwing if not available.\n */\n protected async getMemoryStore(): Promise {\n const store = await this.storage.getStore('memory');\n if (!store) {\n throw new Error(`Memory storage domain is not available on ${this.storage.constructor.name}`);\n }\n return store;\n }\n\n async listMessagesByResourceId(args: {\n resourceId: string;\n perPage?: number | false;\n page?: number;\n orderBy?: { field?: 'createdAt'; direction?: 'ASC' | 'DESC' };\n filter?: {\n dateRange?: {\n start?: Date;\n end?: Date;\n startExclusive?: boolean;\n endExclusive?: boolean;\n };\n };\n include?: Array<{\n id: string;\n threadId?: string;\n withPreviousMessages?: number;\n withNextMessages?: number;\n }>;\n }): Promise<{ messages: MastraDBMessage[]; total: number; page: number; perPage: number | false; hasMore: boolean }> {\n const memoryStore = await this.getMemoryStore();\n return memoryStore.listMessagesByResourceId(args);\n }\n\n protected async validateThreadIsOwnedByResource(threadId: string, resourceId: string, config: MemoryConfigInternal) {\n const resourceScope =\n (typeof config?.semanticRecall === 'object' && config?.semanticRecall?.scope !== `thread`) ||\n config.semanticRecall === true;\n\n const thread = await this.getThreadById({ threadId });\n\n // For resource-scoped semantic recall, we don't need to validate that the specific thread exists\n // because we're searching across all threads for the resource\n if (!thread && !resourceScope) {\n throw new Error(`No thread found with id ${threadId}`);\n }\n\n // If thread exists, validate it belongs to the correct resource\n if (thread && thread.resourceId !== resourceId) {\n throw new Error(\n `Thread with id ${threadId} is for resource with id ${thread.resourceId} but resource ${resourceId} was queried.`,\n );\n }\n }\n\n private createMemorySpan(\n operationType: MemoryOperationAttributes['operationType'],\n observabilityContext?: Partial,\n input?: any,\n attributes?: Partial,\n ) {\n const currentSpan = observabilityContext?.tracingContext?.currentSpan;\n if (!currentSpan) return undefined;\n return currentSpan.createChildSpan({\n type: SpanType.MEMORY_OPERATION,\n name: `memory: ${operationType}`,\n entityType: EntityType.MEMORY,\n entityName: 'Memory',\n input,\n attributes: { operationType, ...attributes },\n });\n }\n\n async recall(\n args: StorageListMessagesInput & {\n threadConfig?: MemoryConfigInternal;\n vectorSearchString?: string;\n includeSystemReminders?: boolean;\n threadId: string;\n observabilityContext?: Partial;\n },\n ): Promise<{\n messages: MastraDBMessage[];\n usage?: { tokens: number };\n total: number;\n page: number;\n perPage: number | false;\n hasMore: boolean;\n }> {\n const {\n threadId,\n resourceId,\n perPage: perPageArg,\n page,\n orderBy,\n threadConfig,\n vectorSearchString,\n includeSystemReminders,\n filter,\n } = args;\n const config = this.getMergedThreadConfig(threadConfig || {});\n const semanticRecallEnabled = Boolean(config.semanticRecall);\n\n const span = this.createMemorySpan(\n 'recall',\n args.observabilityContext,\n { threadId, resourceId, vectorSearchString },\n {\n semanticRecallEnabled,\n lastMessages: config.lastMessages,\n },\n );\n\n try {\n if (resourceId) await this.validateThreadIsOwnedByResource(threadId, resourceId, config);\n\n // Use perPage from args if provided, otherwise use threadConfig.lastMessages\n const perPage = perPageArg !== undefined ? perPageArg : config.lastMessages;\n\n // lastMessages: false means \"disable conversation history entirely\".\n // When the resolved perPage is false from config (not an explicit caller override),\n // return empty messages. This prevents recall() from treating false as \"no limit\"\n // and returning ALL messages when the user intended to disable history.\n const historyDisabledByConfig = config.lastMessages === false && perPageArg === undefined;\n\n // When limiting messages (perPage !== false) without explicit orderBy, we need to:\n // 1. Query DESC to get the NEWEST messages (not oldest)\n // 2. Reverse results to restore chronological order for the LLM\n // Without this fix, \"lastMessages: 64\" returns the OLDEST 64 messages, not the last 64.\n const shouldGetNewestAndReverse = !orderBy && perPage !== false;\n const effectiveOrderBy = shouldGetNewestAndReverse\n ? { field: 'createdAt' as const, direction: 'DESC' as const }\n : orderBy;\n\n const vectorResults: {\n id: string;\n score: number;\n metadata?: Record;\n vector?: number[];\n }[] = [];\n\n // Log memory recall parameters, excluding potentially large schema objects\n this.logger.debug('Memory recall', {\n threadId,\n perPage,\n page,\n orderBy: effectiveOrderBy,\n hasWorkingMemorySchema: Boolean(config.workingMemory?.schema),\n workingMemoryEnabled: config.workingMemory?.enabled,\n semanticRecallEnabled,\n historyDisabledByConfig,\n });\n\n const defaultRange = DEFAULT_MESSAGE_RANGE;\n const defaultTopK = DEFAULT_TOP_K;\n\n const vectorConfig =\n typeof config?.semanticRecall === `boolean`\n ? {\n topK: defaultTopK,\n messageRange: defaultRange,\n }\n : {\n topK: config?.semanticRecall?.topK ?? defaultTopK,\n messageRange: config?.semanticRecall?.messageRange ?? defaultRange,\n };\n\n const resourceScope =\n (typeof config?.semanticRecall === 'object' && config?.semanticRecall?.scope !== `thread`) ||\n config.semanticRecall === true;\n\n // Guard: If resource-scoped semantic recall is enabled but no resourceId is provided, throw an error\n if (resourceScope && !resourceId && config?.semanticRecall && vectorSearchString) {\n throw new Error(\n `Memory error: Resource-scoped semantic recall is enabled but no resourceId was provided. ` +\n `Either provide a resourceId or explicitly set semanticRecall.scope to 'thread'.`,\n );\n }\n\n let usage: { tokens: number } | undefined;\n\n // If history is disabled and there's no semantic recall to perform, return empty immediately\n if (historyDisabledByConfig && (!config.semanticRecall || !vectorSearchString || !this.vector)) {\n const result = {\n messages: [],\n usage: undefined,\n total: 0,\n page: page ?? 0,\n perPage: 0,\n hasMore: false,\n };\n span?.end({ output: { success: true }, attributes: { messageCount: 0 } });\n return result;\n }\n\n if (config?.semanticRecall && vectorSearchString && this.vector) {\n const result = await this.embedMessageContent(vectorSearchString!);\n usage = result.usage;\n const { embeddings, dimension } = result;\n const { indexName } = await this.createEmbeddingIndex(dimension, config);\n\n await Promise.all(\n embeddings.map(async embedding => {\n if (typeof this.vector === `undefined`) {\n throw new Error(\n `Tried to query vector index ${indexName} but this Memory instance doesn't have an attached vector db.`,\n );\n }\n\n const scopeFilter = resourceScope ? { resource_id: resourceId } : { thread_id: threadId };\n const userFilter = typeof config.semanticRecall === 'object' ? config.semanticRecall.filter : undefined;\n const combinedFilter = userFilter ? { $and: [scopeFilter, userFilter] } : scopeFilter;\n\n vectorResults.push(\n ...(await this.vector.query({\n indexName,\n queryVector: embedding,\n topK: vectorConfig.topK,\n filter: combinedFilter,\n })),\n );\n }),\n );\n }\n\n // Get raw messages from storage\n const memoryStore = await this.getMemoryStore();\n\n // When history is disabled by config, use perPage: 0 so only semantic recall\n // include results are returned (not the full message history)\n const effectivePerPage = historyDisabledByConfig ? 0 : perPage;\n\n const paginatedResult = await memoryStore.listMessages({\n threadId,\n resourceId,\n perPage: effectivePerPage,\n page,\n orderBy: effectiveOrderBy,\n filter,\n ...(vectorResults?.length\n ? {\n include: vectorResults.map(r => ({\n id: r.metadata?.message_id,\n threadId: r.metadata?.thread_id,\n withNextMessages:\n typeof vectorConfig.messageRange === 'number'\n ? vectorConfig.messageRange\n : vectorConfig.messageRange.after,\n withPreviousMessages:\n typeof vectorConfig.messageRange === 'number'\n ? vectorConfig.messageRange\n : vectorConfig.messageRange.before,\n })),\n }\n : {}),\n });\n // Reverse to restore chronological order if we queried DESC to get newest messages\n const rawMessages = shouldGetNewestAndReverse ? paginatedResult.messages.reverse() : paginatedResult.messages;\n\n const list = new MessageList({ threadId, resourceId }).add(rawMessages, 'memory');\n\n // Always return mastra-db format (V2)\n const messages = filterSystemReminderMessages(list.get.all.db(), includeSystemReminders);\n\n const { total, page: resultPage, perPage: resultPerPage, hasMore } = paginatedResult;\n const recallResult = { messages, usage, total, page: resultPage, perPage: resultPerPage, hasMore };\n\n span?.end({\n output: { success: true },\n attributes: {\n messageCount: messages.length,\n embeddingTokens: usage?.tokens,\n vectorResultCount: vectorResults.length,\n },\n });\n\n return recallResult;\n } catch (error) {\n span?.error({ error: error as Error, endSpan: true });\n throw error;\n }\n }\n\n async getThreadById({\n threadId,\n resourceId,\n }: {\n threadId: string;\n resourceId?: string;\n }): Promise {\n const memoryStore = await this.getMemoryStore();\n return memoryStore.getThreadById({ threadId, resourceId });\n }\n\n async listThreads(args: StorageListThreadsInput): Promise {\n const memoryStore = await this.getMemoryStore();\n return memoryStore.listThreads(args);\n }\n\n private async handleWorkingMemoryFromMetadata({\n workingMemory,\n resourceId,\n memoryConfig,\n }: {\n workingMemory: string;\n resourceId: string;\n memoryConfig?: MemoryConfigInternal;\n }): Promise {\n const config = this.getMergedThreadConfig(memoryConfig || {});\n\n if (config.workingMemory?.enabled) {\n const scope = config.workingMemory.scope || 'resource';\n\n // For resource scope, update the resource's working memory\n if (scope === 'resource' && resourceId) {\n const memoryStore = await this.getMemoryStore();\n await memoryStore.updateResource({\n resourceId,\n workingMemory,\n });\n }\n // For thread scope, the metadata is already saved with the thread\n }\n }\n\n async saveThread({\n thread,\n memoryConfig,\n }: {\n thread: StorageThreadType;\n memoryConfig?: MemoryConfigInternal;\n }): Promise {\n const memoryStore = await this.getMemoryStore();\n const savedThread = await memoryStore.saveThread({ thread });\n\n // Check if metadata contains workingMemory and working memory is enabled\n if (thread.metadata?.workingMemory && typeof thread.metadata.workingMemory === 'string' && thread.resourceId) {\n await this.handleWorkingMemoryFromMetadata({\n workingMemory: thread.metadata.workingMemory,\n resourceId: thread.resourceId,\n memoryConfig,\n });\n }\n\n return savedThread;\n }\n\n async updateThread({\n id,\n title,\n metadata,\n memoryConfig,\n }: {\n id: string;\n title: string;\n metadata: Record;\n memoryConfig?: MemoryConfigInternal;\n }): Promise {\n const memoryStore = await this.getMemoryStore();\n const updatedThread = await memoryStore.updateThread({\n id,\n title,\n metadata,\n });\n\n // Check if metadata contains workingMemory and working memory is enabled\n if (metadata?.workingMemory && typeof metadata.workingMemory === 'string' && updatedThread.resourceId) {\n await this.handleWorkingMemoryFromMetadata({\n workingMemory: metadata.workingMemory as string,\n resourceId: updatedThread.resourceId,\n memoryConfig,\n });\n }\n\n return updatedThread;\n }\n\n async deleteThread(threadId: string): Promise {\n const memoryStore = await this.getMemoryStore();\n const thread = await memoryStore.getThreadById({ threadId });\n await memoryStore.deleteThread({ threadId });\n if (thread?.resourceId && memoryStore.supportsObservationalMemory) {\n await memoryStore.clearObservationalMemory(threadId, thread.resourceId);\n }\n if (this.vector) {\n void this.deleteThreadVectors(threadId);\n }\n }\n\n /**\n * Lists all vector indexes that match the memory messages prefix.\n * Handles separator differences across vector store backends (e.g. '_' vs '-').\n */\n private async getMemoryVectorIndexes(): Promise {\n if (!this.vector) return [];\n const separator = this.vector.indexSeparator ?? '_';\n const prefix = `memory${separator}messages`;\n const indexes = await this.vector.listIndexes();\n return indexes.filter(name => name.startsWith(prefix));\n }\n\n /**\n * Deletes all vector embeddings associated with a thread.\n * This is called internally by deleteThread to clean up orphaned vectors.\n *\n * @param threadId - The ID of the thread whose vectors should be deleted\n */\n private async deleteThreadVectors(threadId: string): Promise {\n try {\n const memoryIndexes = await this.getMemoryVectorIndexes();\n\n await Promise.all(\n memoryIndexes.map(async (indexName: string) => {\n try {\n await this.vector!.deleteVectors({\n indexName,\n filter: { thread_id: threadId },\n });\n } catch {\n this.logger.debug('Failed to delete vectors for thread, skipping', { threadId, indexName });\n }\n }),\n );\n } catch {\n this.logger.debug('Failed to clean up vectors for thread', { threadId });\n }\n }\n\n async updateWorkingMemory({\n threadId,\n resourceId,\n workingMemory,\n memoryConfig,\n observabilityContext,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n memoryConfig?: MemoryConfigInternal;\n observabilityContext?: Partial;\n }): Promise {\n const config = this.getMergedThreadConfig(memoryConfig || {});\n\n if (!config.workingMemory?.enabled) {\n throw new Error('Working memory is not enabled for this memory instance');\n }\n\n const span = this.createMemorySpan(\n 'update',\n observabilityContext,\n { threadId, resourceId },\n {\n workingMemoryEnabled: true,\n },\n );\n\n try {\n const scope = config.workingMemory.scope || 'resource';\n\n // Guard: If resource-scoped working memory is enabled but no resourceId is provided, throw an error\n if (scope === 'resource' && !resourceId) {\n throw new Error(\n `Memory error: Resource-scoped working memory is enabled but no resourceId was provided. ` +\n `Either provide a resourceId or explicitly set workingMemory.scope to 'thread'.`,\n );\n }\n\n // Use mutex to prevent race conditions when multiple concurrent calls update the same resource/thread\n const mutexKey = scope === 'resource' ? `resource-${resourceId}` : `thread-${threadId}`;\n const mutex = this.updateWorkingMemoryMutexes.has(mutexKey)\n ? this.updateWorkingMemoryMutexes.get(mutexKey)!\n : new Mutex();\n this.updateWorkingMemoryMutexes.set(mutexKey, mutex);\n const release = await mutex.acquire();\n\n try {\n const memoryStore = await this.getMemoryStore();\n if (scope === 'resource' && resourceId) {\n await memoryStore.updateResource({\n resourceId,\n workingMemory,\n });\n } else {\n const thread = await this.getThreadById({ threadId });\n if (!thread) {\n throw new Error(`Thread ${threadId} not found`);\n }\n\n await memoryStore.updateThread({\n id: threadId,\n title: thread.title || '',\n metadata: {\n ...thread.metadata,\n workingMemory,\n },\n });\n }\n } finally {\n release();\n }\n\n span?.end({ output: { success: true } });\n } catch (error) {\n span?.error({ error: error as Error, endSpan: true });\n throw error;\n }\n }\n\n private updateWorkingMemoryMutexes = new Map();\n /**\n * @warning experimental! can be removed or changed at any time\n */\n async __experimental_updateWorkingMemoryVNext({\n threadId,\n resourceId,\n workingMemory,\n searchString,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n workingMemory: string;\n searchString?: string;\n memoryConfig?: MemoryConfigInternal;\n }): Promise<{ success: boolean; reason: string }> {\n const config = this.getMergedThreadConfig(memoryConfig || {});\n this.assertWorkingMemoryStateSignalsCompatibility(config);\n\n if (!config.workingMemory?.enabled) {\n throw new Error('Working memory is not enabled for this memory instance');\n }\n\n // If the agent calls the update working memory tool multiple times simultaneously\n // each call could overwrite the other call\n // so get an in memory mutex to make sure this.getWorkingMemory() returns up to date data each time\n const mutexKey =\n memoryConfig?.workingMemory?.scope === `resource` ? `resource-${resourceId}` : `thread-${threadId}`;\n const mutex = this.updateWorkingMemoryMutexes.has(mutexKey)\n ? this.updateWorkingMemoryMutexes.get(mutexKey)!\n : new Mutex();\n this.updateWorkingMemoryMutexes.set(mutexKey, mutex);\n const release = await mutex.acquire();\n\n try {\n const existingWorkingMemory = (await this.getWorkingMemory({ threadId, resourceId, memoryConfig })) || '';\n const template = await this.getWorkingMemoryTemplate({ memoryConfig });\n\n let reason = '';\n\n const templateContent = typeof template?.content === 'string' ? template.content : null;\n\n // Normalize content for comparison (handles whitespace variations)\n // This catches template duplicates even when LLM returns slightly different whitespace\n const normalizeForComparison = (str: string) => str.replace(/\\s+/g, ' ').trim();\n const normalizedNewMemory = normalizeForComparison(workingMemory);\n const normalizedTemplate = templateContent ? normalizeForComparison(templateContent) : '';\n\n if (existingWorkingMemory) {\n if (searchString && existingWorkingMemory?.includes(searchString)) {\n workingMemory = existingWorkingMemory.replace(searchString, workingMemory);\n reason = `found and replaced searchString with newMemory`;\n } else if (\n existingWorkingMemory.includes(workingMemory) ||\n templateContent?.trim() === workingMemory.trim() ||\n // Also check normalized versions to catch template variations with different whitespace\n normalizedNewMemory === normalizedTemplate\n ) {\n return {\n success: false,\n reason: `attempted to insert duplicate data into working memory. this entry was skipped`,\n };\n } else {\n // Before appending, check if the new content is essentially the empty template\n // This prevents template duplication when the LLM sends the template again\n if (normalizedNewMemory === normalizedTemplate) {\n return {\n success: false,\n reason: `attempted to append empty template to working memory. this entry was skipped`,\n };\n }\n\n if (searchString) {\n reason = `attempted to replace working memory string that doesn't exist. Appending to working memory instead.`;\n } else {\n reason = `appended newMemory to end of working memory`;\n }\n\n workingMemory =\n existingWorkingMemory +\n `\n${workingMemory}`;\n }\n } else if (workingMemory === templateContent || normalizedNewMemory === normalizedTemplate) {\n return {\n success: false,\n reason: `try again when you have data to add. newMemory was equal to the working memory template`,\n };\n } else {\n reason = `started new working memory`;\n }\n\n // Remove empty template insertions which models sometimes duplicate\n // Use both exact and normalized matching to catch variations\n if (templateContent) {\n workingMemory = workingMemory.replaceAll(templateContent, '');\n // Also try to remove template with normalized line endings\n const templateWithUnixLineEndings = templateContent.replace(/\\r\\n/g, '\\n');\n const templateWithWindowsLineEndings = templateContent.replace(/\\n/g, '\\r\\n');\n workingMemory = workingMemory.replaceAll(templateWithUnixLineEndings, '');\n workingMemory = workingMemory.replaceAll(templateWithWindowsLineEndings, '');\n }\n\n const scope = config.workingMemory.scope || 'resource';\n\n // Guard: If resource-scoped working memory is enabled but no resourceId is provided, throw an error\n if (scope === 'resource' && !resourceId) {\n throw new Error(\n `Memory error: Resource-scoped working memory is enabled but no resourceId was provided. ` +\n `Either provide a resourceId or explicitly set workingMemory.scope to 'thread'.`,\n );\n }\n\n const memoryStore = await this.getMemoryStore();\n if (scope === 'resource' && resourceId) {\n // Update working memory in resource table\n await memoryStore.updateResource({\n resourceId,\n workingMemory,\n });\n\n if (reason) {\n return { success: true, reason };\n }\n } else {\n // Update working memory in thread metadata (existing behavior)\n const thread = await this.getThreadById({ threadId });\n if (!thread) {\n throw new Error(`Thread ${threadId} not found`);\n }\n\n await memoryStore.updateThread({\n id: threadId,\n title: thread.title || '',\n metadata: {\n ...thread.metadata,\n workingMemory,\n },\n });\n }\n\n return { success: true, reason };\n } catch (e) {\n this.logger.error(e instanceof Error ? e.stack || e.message : JSON.stringify(e));\n return { success: false, reason: 'Tool error.' };\n } finally {\n release();\n }\n }\n\n protected chunkText(text: string, tokenSize = 4096) {\n // Convert token size to character size with some buffer\n const charSize = tokenSize * CHARS_PER_TOKEN;\n const chunks: string[] = [];\n let currentChunk = '';\n\n // Split text into words to avoid breaking words\n const words = text.split(/\\s+/);\n\n for (const word of words) {\n // Add space before word unless it's the first word in the chunk\n const wordWithSpace = currentChunk ? ' ' + word : word;\n\n // If adding this word would exceed the chunk size, start a new chunk\n if (currentChunk.length + wordWithSpace.length > charSize) {\n chunks.push(currentChunk);\n currentChunk = word;\n } else {\n currentChunk += wordWithSpace;\n }\n }\n\n // Add the final chunk if not empty\n if (currentChunk) {\n chunks.push(currentChunk);\n }\n\n return chunks;\n }\n\n private hasher = xxhash();\n\n // Embedding is computationally expensive, so cache content -> embeddings/chunks.\n // Bounded by an LRU so a long-running instance can't retain every embedded\n // message/query (and its vectors + chunk text) for the life of the process.\n private embeddingCache = new LRUCache<\n bigint,\n {\n chunks: string[];\n embeddings: Awaited>['embeddings'];\n usage?: { tokens: number };\n dimension: number | undefined;\n }\n >({ max: DEFAULT_EMBEDDING_CACHE_MAX_SIZE });\n private firstEmbed: Promise | undefined;\n protected async embedMessageContent(content: string) {\n // Key by the content hash (not the content itself) to keep keys small. Use the\n // 64-bit hash: h32 is only 32 bits, so distinct contents collide after ~tens of\n // thousands of entries, which would return another message's cached embeddings.\n const key = (await this.hasher).h64(content);\n const cached = this.embeddingCache.get(key);\n if (cached) {\n this.logger.debug('Embedding cache hit', { contentHash: key.toString(), chunks: cached.chunks.length });\n return cached;\n }\n const chunks = this.chunkText(content);\n\n if (typeof this.embedder === `undefined`) {\n throw new Error(`Tried to embed message content but this Memory instance doesn't have an attached embedder.`);\n }\n // for fastembed multiple initial calls to embed will fail if the model hasn't been downloaded yet.\n const isFastEmbed = this.embedder.provider === `fastembed`;\n if (isFastEmbed && this.firstEmbed instanceof Promise) {\n // so wait for the first one\n await this.firstEmbed;\n }\n\n let embedFn: typeof embedMany | typeof embedManyV5 | typeof embedManyV6;\n const specVersion = this.embedder.specificationVersion;\n\n switch (specVersion) {\n case 'v3':\n embedFn = embedManyV6;\n break;\n case 'v2':\n embedFn = embedManyV5;\n break;\n default:\n embedFn = embedMany;\n break;\n }\n\n const promise = embedFn({\n values: chunks,\n maxRetries: 3,\n // @ts-expect-error - embedder type mismatch\n model: this.embedder,\n ...(this.embedderOptions || {}),\n });\n\n if (isFastEmbed && !this.firstEmbed) this.firstEmbed = promise;\n const { embeddings, usage } = await promise;\n\n const result = {\n embeddings,\n chunks,\n usage,\n dimension: embeddings[0]?.length,\n };\n this.embeddingCache.set(key, result);\n return result;\n }\n\n async saveMessages({\n messages,\n memoryConfig,\n observabilityContext,\n }: {\n messages: MastraDBMessage[];\n memoryConfig?: MemoryConfig | undefined;\n observabilityContext?: Partial;\n }): Promise<{ messages: MastraDBMessage[]; usage?: { tokens: number } }> {\n const span = this.createMemorySpan('save', observabilityContext, undefined, {\n messageCount: messages.length,\n });\n\n try {\n // System messages are runtime instructions and should never be stored in memory.\n // Then strip working memory tags from all persistable messages.\n const updatedMessages = messages\n .filter(m => m.role !== 'system')\n .map(m => {\n return this.updateMessageToHideWorkingMemoryV2(m);\n })\n .filter((m): m is MastraDBMessage => Boolean(m));\n\n const config = this.getMergedThreadConfig(memoryConfig);\n\n // Convert messages to MastraDBMessage format if needed\n const dbMessages = new MessageList({\n generateMessageId: () => this.generateId(),\n })\n .add(updatedMessages, 'memory')\n .get.all.db();\n\n const memoryStore = await this.getMemoryStore();\n const result = await memoryStore.saveMessages({\n messages: dbMessages,\n });\n\n let totalTokens = 0;\n\n if (this.vector && config.semanticRecall) {\n const messagesByThread = new Map();\n updatedMessages.forEach(message => {\n if (message.threadId) {\n if (!messagesByThread.has(message.threadId)) {\n messagesByThread.set(message.threadId, []);\n }\n messagesByThread.get(message.threadId)!.push(message);\n }\n });\n\n const threadMetadataMap = new Map>();\n await Promise.all(\n Array.from(messagesByThread.keys()).map(async threadId => {\n try {\n const thread = await memoryStore.getThreadById({ threadId });\n if (thread?.metadata) {\n threadMetadataMap.set(threadId, thread.metadata);\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(\n `Could not fetch metadata for thread ${threadId} while saving semantic recall embeddings: ${message}`,\n );\n }\n }),\n );\n\n // Collect all embeddings first (embedding is CPU-bound, doesn't use pool connections)\n const embeddingData: Array<{\n embeddings: number[][];\n metadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n >;\n }> = [];\n let dimension: number | undefined;\n\n // Process embeddings concurrently - this doesn't use DB connections\n await Promise.all(\n updatedMessages.map(async message => {\n let textForEmbedding: string | null = null;\n\n if (\n message.content.content &&\n typeof message.content.content === 'string' &&\n message.content.content.trim() !== ''\n ) {\n textForEmbedding = message.content.content;\n } else if (message.content.parts && message.content.parts.length > 0) {\n // Extract text from all text parts, concatenate\n const joined = message.content.parts\n .filter(part => part.type === 'text')\n .map(part => (part as TextPart).text)\n .join(' ')\n .trim();\n if (joined) textForEmbedding = joined;\n }\n\n if (!textForEmbedding) return;\n\n const result = await this.embedMessageContent(textForEmbedding);\n dimension = result.dimension;\n if (result.usage?.tokens) {\n totalTokens += result.usage.tokens;\n }\n\n const threadMetadata = message.threadId ? threadMetadataMap.get(message.threadId) || {} : {};\n\n embeddingData.push({\n embeddings: result.embeddings,\n metadata: result.chunks.map(() => ({\n ...threadMetadata,\n message_id: message.id,\n thread_id: message.threadId,\n resource_id: message.resourceId,\n role: message.role,\n content: textForEmbedding,\n created_at:\n message.createdAt instanceof Date ? message.createdAt.toISOString() : String(message.createdAt),\n })),\n });\n }),\n );\n\n // Batch all vectors into a single upsert call to avoid pool exhaustion\n if (embeddingData.length > 0 && dimension !== undefined) {\n if (typeof this.vector === `undefined`) {\n throw new Error(`Tried to upsert embeddings but this Memory instance doesn't have an attached vector db.`);\n }\n\n const { indexName } = await this.createEmbeddingIndex(dimension, config);\n\n // Flatten all embeddings and metadata into single arrays\n const allVectors: number[][] = [];\n const allMetadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n > = [];\n\n for (const data of embeddingData) {\n allVectors.push(...data.embeddings);\n allMetadata.push(...data.metadata);\n }\n\n await this.vector.upsert({\n indexName,\n vectors: allVectors,\n metadata: allMetadata,\n });\n }\n }\n\n const saveResult = { ...result, usage: totalTokens > 0 ? { tokens: totalTokens } : undefined };\n\n span?.end({\n output: { success: true },\n attributes: {\n messageCount: dbMessages.length,\n embeddingTokens: saveResult.usage?.tokens,\n semanticRecallEnabled: Boolean(config.semanticRecall),\n },\n });\n\n return saveResult;\n } catch (error) {\n span?.error({ error: error as Error, endSpan: true });\n throw error;\n }\n }\n\n protected updateMessageToHideWorkingMemoryV2(message: MastraDBMessage): MastraDBMessage | null {\n const newMessage = { ...message };\n // Only spread content if it's a proper V2 object to avoid corrupting non-object content\n if (message.content && typeof message.content === 'object' && !Array.isArray(message.content)) {\n newMessage.content = { ...message.content };\n }\n\n if (typeof newMessage.content?.content === 'string' && newMessage.content.content.length > 0) {\n newMessage.content.content = removeWorkingMemoryTags(newMessage.content.content).trim();\n }\n\n if (Array.isArray(newMessage.content?.parts)) {\n newMessage.content.parts = newMessage.content.parts\n .filter(part => {\n if (part?.type === 'tool-invocation') {\n return part.toolInvocation?.toolName !== 'updateWorkingMemory';\n }\n return true;\n })\n .map(part => {\n if (part?.type === 'text') {\n const text = typeof part.text === 'string' ? part.text : '';\n return {\n ...part,\n text: removeWorkingMemoryTags(text).trim(),\n };\n }\n return part;\n });\n\n // If all parts were filtered out (e.g., only contained updateWorkingMemory tool calls),\n // only skip the message when it also has no text content left.\n if (newMessage.content.parts.length === 0) {\n const hasContentText =\n typeof newMessage.content.content === 'string' && newMessage.content.content.trim().length > 0;\n\n if (!hasContentText) {\n return null;\n }\n }\n }\n\n return newMessage;\n }\n\n protected parseWorkingMemory(text: string): string | null {\n if (!this.threadConfig.workingMemory?.enabled) return null;\n\n const content = extractWorkingMemoryContent(text);\n return content?.trim() ?? null;\n }\n\n public async getWorkingMemory({\n threadId,\n resourceId,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfigInternal;\n }): Promise {\n const config = this.getMergedThreadConfig(memoryConfig || {});\n if (!config.workingMemory?.enabled) {\n return null;\n }\n\n const scope = config.workingMemory.scope || 'resource';\n let workingMemoryData: string | null = null;\n\n // Guard: If resource-scoped working memory is enabled but no resourceId is provided, throw an error\n if (scope === 'resource' && !resourceId) {\n throw new Error(\n `Memory error: Resource-scoped working memory is enabled but no resourceId was provided. ` +\n `Either provide a resourceId or explicitly set workingMemory.scope to 'thread'.`,\n );\n }\n\n if (scope === 'resource' && resourceId) {\n // Get working memory from resource table\n const memoryStore = await this.getMemoryStore();\n const resource = await memoryStore.getResourceById({ resourceId });\n workingMemoryData = resource?.workingMemory || null;\n } else {\n // Get working memory from thread metadata (default behavior)\n const thread = await this.getThreadById({ threadId });\n workingMemoryData = thread?.metadata?.workingMemory as string;\n }\n\n if (!workingMemoryData) {\n return null;\n }\n\n return workingMemoryData;\n }\n\n /**\n * Gets the working memory template for the current memory configuration.\n * Supports both ZodObject and JSONSchema7 schemas.\n *\n * @param memoryConfig - The memory configuration containing the working memory settings\n * @returns The working memory template with format and content, or null if working memory is disabled\n */\n public async getWorkingMemoryTemplate({\n memoryConfig,\n }: {\n memoryConfig?: MemoryConfigInternal;\n }): Promise {\n const config = this.getMergedThreadConfig(memoryConfig);\n\n if (!config.workingMemory?.enabled) {\n return null;\n }\n\n // Get thread from storage\n if (config.workingMemory?.schema) {\n try {\n const schema = config.workingMemory.schema;\n let convertedSchema: JSONSchema7;\n\n // Convert any PublicSchema to StandardSchemaWithJSON, then extract JSON Schema\n if (isStandardSchemaWithJSON(schema)) {\n convertedSchema = schema['~standard'].jsonSchema.output({ target: 'draft-07' }) as JSONSchema7;\n } else {\n // Convert to standard schema first, then get JSON Schema\n const standardSchema = toStandardSchema(schema);\n convertedSchema = standardSchema['~standard'].jsonSchema.output({ target: 'draft-07' }) as JSONSchema7;\n }\n\n return { format: 'json', content: JSON.stringify(convertedSchema) };\n } catch (error) {\n this.logger.error('Error converting schema', error);\n throw error;\n }\n }\n\n // Return working memory from metadata\n const memory = config.workingMemory.template || this.defaultWorkingMemoryTemplate;\n return { format: 'markdown', content: memory.trim() };\n }\n\n public async getSystemMessage({\n threadId,\n resourceId,\n memoryConfig,\n }: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfigInternal;\n }): Promise {\n const config = this.getMergedThreadConfig(memoryConfig);\n this.assertWorkingMemoryStateSignalsCompatibility(config);\n if (!config.workingMemory?.enabled) {\n return null;\n }\n\n // When working memory is opted into the state-signals delivery path, suppress\n // the system-message rendering. The WorkingMemoryStateProcessor delivers the\n // template + data as a state signal instead.\n if (config.workingMemory?.useStateSignals) {\n return null;\n }\n\n const workingMemoryTemplate = await this.getWorkingMemoryTemplate({ memoryConfig });\n const workingMemoryData = await this.getWorkingMemory({ threadId, resourceId, memoryConfig: config });\n\n if (!workingMemoryTemplate) {\n return null;\n }\n\n // In readOnly mode, provide context without tool instructions\n if (config?.readOnly) {\n return this.getReadOnlyWorkingMemoryInstruction({\n template: workingMemoryTemplate,\n data: workingMemoryData,\n });\n }\n\n return this.isVNextWorkingMemoryConfig(memoryConfig)\n ? this.__experimental_getWorkingMemoryToolInstructionVNext({\n template: workingMemoryTemplate,\n data: workingMemoryData,\n })\n : this.getWorkingMemoryToolInstruction({\n template: workingMemoryTemplate,\n data: workingMemoryData,\n });\n }\n\n /**\n * Get everything needed for an LLM call in one shot.\n *\n * Assembles the system message (observations + working memory), loads\n * unobserved messages from storage, and returns them ready to use.\n *\n * @example\n * ```ts\n * const ctx = await memory.getContext({ threadId });\n * const result = await generateText({\n * model: openai('gpt-4o'),\n * system: ctx.systemMessage,\n * messages: ctx.messages.map(toAiSdkMessage),\n * });\n * ```\n */\n public async getContext(opts: {\n threadId: string;\n resourceId?: string;\n memoryConfig?: MemoryConfigInternal;\n }): Promise<{\n /** Fully-formed system message (observations + instructions + working memory), or undefined if none. */\n systemMessage: string | undefined;\n /** Messages for the LLM — unobserved messages if OM is active, or recent messages from history. */\n messages: MastraDBMessage[];\n /** Whether observations exist for this thread. */\n hasObservations: boolean;\n /** The OM record, if OM is active. */\n omRecord: ObservationalMemoryRecord | null;\n /** The om-continuation reminder message, if OM has observations. Caller decides where to place it. */\n continuationMessage: MastraDBMessage | undefined;\n /** Formatted context blocks from other threads (resource scope only). */\n otherThreadsContext: string | undefined;\n }> {\n const { threadId, resourceId, memoryConfig } = opts;\n const config = this.getMergedThreadConfig(memoryConfig);\n const memoryStore = await this.getMemoryStore();\n\n // Build system message parts\n const systemParts: string[] = [];\n\n // 1. OM observations system message\n let hasObservations = false;\n let omRecord: ObservationalMemoryRecord | null = null;\n let continuationMessage: MastraDBMessage | undefined;\n let otherThreadsContext: string | undefined;\n\n const omEngine = await this.omEngine;\n if (omEngine) {\n omRecord = await omEngine.getRecord(threadId, resourceId);\n if (omRecord?.activeObservations) {\n hasObservations = true;\n\n // For resource scope, load other threads' unobserved context\n if (omEngine.scope === 'resource' && resourceId) {\n otherThreadsContext = await omEngine.getOtherThreadsContext(resourceId, threadId);\n }\n\n const obsSystemMessage = await omEngine.buildContextSystemMessage({\n threadId,\n resourceId,\n record: omRecord,\n unobservedContextBlocks: otherThreadsContext,\n });\n if (obsSystemMessage) {\n systemParts.push(obsSystemMessage);\n }\n\n // Build the continuation reminder message\n const { OBSERVATION_CONTINUATION_HINT } = await import('./processors/observational-memory/constants');\n continuationMessage = {\n id: 'om-continuation',\n role: 'user' as const,\n createdAt: new Date(0),\n content: {\n format: 2 as const,\n parts: [\n {\n type: 'text' as const,\n text: `${OBSERVATION_CONTINUATION_HINT}`,\n },\n ],\n },\n threadId,\n resourceId,\n };\n }\n }\n\n // 2. Working memory system message\n const workingMemoryMessage = await this.getSystemMessage({ threadId, resourceId, memoryConfig: config });\n if (workingMemoryMessage) {\n systemParts.push(workingMemoryMessage);\n }\n\n // 3. Load messages — unobserved if OM is active, or recent N\n let messages: MastraDBMessage[];\n if (omEngine && omRecord) {\n // OM is active: load unobserved messages.\n // When lastObservedAt exists, load only messages after the boundary.\n // When lastObservedAt is NULL (no observations yet), load ALL messages\n // so the threshold check can fire on the full context.\n const dateFilter = omRecord.lastObservedAt\n ? { dateRange: { start: new Date(new Date(omRecord.lastObservedAt).getTime() + 1) } }\n : undefined;\n\n if (omEngine.scope === 'resource' && resourceId) {\n const result = await memoryStore.listMessagesByResourceId({\n resourceId,\n orderBy: { field: 'createdAt', direction: 'ASC' },\n perPage: false,\n filter: dateFilter,\n });\n messages = result.messages;\n } else {\n const result = await memoryStore.listMessages({\n threadId,\n orderBy: { field: 'createdAt', direction: 'ASC' },\n perPage: false,\n filter: dateFilter,\n });\n messages = result.messages;\n }\n } else {\n // No OM: load recent messages\n const lastMessages = config.lastMessages;\n if (lastMessages === false) {\n messages = [];\n } else {\n const result = await memoryStore.listMessages({\n threadId,\n resourceId,\n orderBy: { field: 'createdAt', direction: 'DESC' },\n perPage: typeof lastMessages === 'number' ? lastMessages : undefined,\n });\n messages = result.messages.reverse(); // DESC → chronological order\n }\n }\n\n return {\n systemMessage: systemParts.length > 0 ? systemParts.join('\\n\\n') : undefined,\n messages,\n hasObservations,\n omRecord,\n continuationMessage,\n otherThreadsContext,\n };\n }\n\n /**\n * Raw message upsert — persist messages to storage without embedding or working memory processing.\n * Used by the processor to save sealed messages before firing a background buffer operation.\n */\n async persistMessages(messages: MastraDBMessage[]): Promise {\n if (messages.length === 0) return;\n\n const persistableMessages = messages.filter(m => m.role !== 'system');\n if (persistableMessages.length === 0) return;\n\n const memoryStore = await this.getMemoryStore();\n await memoryStore.saveMessages({ messages: persistableMessages });\n }\n\n /**\n * One-time initialization of the shared ObservationalMemory engine.\n * Called lazily by the `omEngine` getter on first access.\n */\n private async _initOMEngine(): Promise {\n const omConfig = normalizeObservationalMemoryConfig(this.threadConfig.observationalMemory);\n if (!omConfig) return null;\n\n const memoryStore = await this.storage.getStore('memory');\n if (!memoryStore || !memoryStore.supportsObservationalMemory) return null;\n\n const coreSupportsOM = coreFeatures.has('observationalMemory');\n if (!coreSupportsOM) {\n throw new Error(\n 'Observational memory is enabled but the installed version of @mastra/core does not support it. ' +\n 'Please upgrade @mastra/core to a version that includes observational memory support.',\n );\n }\n\n if (omConfig.observation?.bufferTokens !== false && !coreFeatures.has('asyncBuffering')) {\n throw new Error(\n 'Observational memory async buffering is enabled by default but the installed version of @mastra/core does not support it. ' +\n 'Either upgrade @mastra/core, @mastra/memory, and your storage adapter (@mastra/libsql, @mastra/pg, or @mastra/mongodb) to the latest version, ' +\n 'or explicitly disable async buffering by setting `observation: { bufferTokens: false }` in your observationalMemory config.',\n );\n }\n\n if (!coreFeatures.has('request-response-id-rotation')) {\n throw new Error(\n 'Observational memory requires @mastra/core support for request-response-id-rotation. Please bump @mastra/core to a newer version.',\n );\n }\n\n const { ObservationalMemory: OMClass } = await import('./processors/observational-memory');\n\n const onIndexObservations = this.hasRetrievalSearch(omConfig.retrieval)\n ? async (observation: {\n text: string;\n groupId: string;\n range: string;\n threadId: string;\n resourceId: string;\n observedAt?: Date;\n }) => {\n await this.indexObservation(observation);\n }\n : undefined;\n\n return new OMClass({\n storage: memoryStore,\n scope: omConfig.scope,\n retrieval: omConfig.retrieval,\n activateAfterIdle: omConfig.activateAfterIdle,\n activateOnProviderChange: omConfig.activateOnProviderChange,\n shareTokenBudget: omConfig.shareTokenBudget,\n model: omConfig.model,\n mastra: this._mastraInstance,\n onIndexObservations,\n observation: omConfig.observation\n ? {\n model: omConfig.observation.model,\n messageTokens: omConfig.observation.messageTokens,\n modelSettings: omConfig.observation.modelSettings,\n maxTokensPerBatch: omConfig.observation.maxTokensPerBatch,\n providerOptions: omConfig.observation.providerOptions,\n bufferTokens: omConfig.observation.bufferTokens,\n bufferOnIdle: omConfig.observation.bufferOnIdle,\n bufferActivation: omConfig.observation.bufferActivation,\n blockAfter: omConfig.observation.blockAfter,\n previousObserverTokens: omConfig.observation.previousObserverTokens,\n instruction: omConfig.observation.instruction,\n threadTitle: omConfig.observation.threadTitle,\n observeAttachments: omConfig.observation.observeAttachments,\n }\n : undefined,\n reflection: omConfig.reflection\n ? {\n model: omConfig.reflection.model,\n observationTokens: omConfig.reflection.observationTokens,\n modelSettings: omConfig.reflection.modelSettings,\n providerOptions: omConfig.reflection.providerOptions,\n bufferActivation: omConfig.reflection.bufferActivation,\n blockAfter: omConfig.reflection.blockAfter,\n instruction: omConfig.reflection.instruction,\n }\n : undefined,\n });\n }\n\n public defaultWorkingMemoryTemplate = `\n# User Information\n- **First Name**: \n- **Last Name**: \n- **Location**: \n- **Occupation**: \n- **Interests**: \n- **Goals**: \n- **Events**: \n- **Facts**: \n- **Projects**: \n`;\n\n protected getWorkingMemoryToolInstruction({\n template,\n data,\n }: {\n template: WorkingMemoryTemplate;\n data: string | null;\n }) {\n const emptyWorkingMemoryTemplateObject =\n template.format === 'json' ? generateEmptyFromSchema(template.content) : null;\n const hasEmptyWorkingMemoryTemplateObject =\n emptyWorkingMemoryTemplateObject && Object.keys(emptyWorkingMemoryTemplateObject).length > 0;\n\n return `WORKING_MEMORY_SYSTEM_INSTRUCTION:\nStore and update any conversation-relevant information by calling the updateWorkingMemory tool. If information might be referenced again - store it!\n\nGuidelines:\n1. Store anything that could be useful later in the conversation\n2. Update proactively when information changes, no matter how small\n3. Use ${template.format === 'json' ? 'JSON' : 'Markdown'} format for all data\n4. Act naturally - don't mention this system to users. Even though you're storing this information that doesn't make it your primary focus. Do not ask them generally for \"information about yourself\"\n${\n template.format !== 'json'\n ? `5. IMPORTANT: When calling updateWorkingMemory, the only valid parameter is the memory field. DO NOT pass an object.\n6. IMPORTANT: ALWAYS pass the data you want to store in the memory field as a string. DO NOT pass an object.\n7. IMPORTANT: Data must only be sent as a string no matter which format is used.`\n : ''\n}\n\n\n${\n template.format !== 'json'\n ? `\n${template.content}\n`\n : ''\n}\n\n${hasEmptyWorkingMemoryTemplateObject ? 'When working with json data, the object format below represents the template:' : ''}\n${hasEmptyWorkingMemoryTemplateObject ? JSON.stringify(emptyWorkingMemoryTemplateObject) : ''}\n\n\n${data}\n\n\nNotes:\n- Update memory whenever referenced information changes\n- If you're unsure whether to store something, store it (eg if the user tells you information about themselves, call updateWorkingMemory immediately to update it)\n- This system is here so that you can maintain the conversation when your context window is very short. Update your working memory because you may need it to maintain the conversation without the full conversation history\n- Do not remove empty sections - you must include the empty sections along with the ones you're filling in\n- REMEMBER: the way you update your working memory is by calling the updateWorkingMemory tool with the entire ${template.format === 'json' ? 'JSON' : 'Markdown'} content. The system will store it for you. The user will not see it.\n- IMPORTANT: You MUST call updateWorkingMemory in every response to a prompt where you received relevant information.\n- IMPORTANT: Preserve the ${template.format === 'json' ? 'JSON' : 'Markdown'} formatting structure above while updating the content.`;\n }\n\n protected __experimental_getWorkingMemoryToolInstructionVNext({\n template,\n data,\n }: {\n template: WorkingMemoryTemplate;\n data: string | null;\n }) {\n return `WORKING_MEMORY_SYSTEM_INSTRUCTION:\nStore and update any conversation-relevant information by calling the updateWorkingMemory tool.\n\nGuidelines:\n1. Store anything that could be useful later in the conversation\n2. Update proactively when information changes, no matter how small\n3. Use ${template.format === 'json' ? 'JSON' : 'Markdown'} format for all data\n4. Act naturally - don't mention this system to users. Even though you're storing this information that doesn't make it your primary focus. Do not ask them generally for \"information about yourself\"\n5. If your memory has not changed, you do not need to call the updateWorkingMemory tool. By default it will persist and be available for you in future interactions\n6. Information not being relevant to the current conversation is not a valid reason to replace or remove working memory information. Your working memory spans across multiple conversations and may be needed again later, even if it's not currently relevant.\n\n\n${template.content}\n\n\n\n${data}\n\n\nNotes:\n- Update memory whenever referenced information changes\n${\n template.content !== this.defaultWorkingMemoryTemplate\n ? `- Only store information if it's in the working memory template, do not store other information unless the user asks you to remember it, as that non-template information may be irrelevant`\n : `- If you're unsure whether to store something, store it (eg if the user tells you information about themselves, call updateWorkingMemory immediately to update it)\n`\n}\n- This system is here so that you can maintain the conversation when your context window is very short. Update your working memory because you may need it to maintain the conversation without the full conversation history\n- REMEMBER: the way you update your working memory is by calling the updateWorkingMemory tool with the ${template.format === 'json' ? 'JSON' : 'Markdown'} content. The system will store it for you. The user will not see it.\n- IMPORTANT: You MUST call updateWorkingMemory in every response to a prompt where you received relevant information if that information is not already stored.\n- IMPORTANT: Preserve the ${template.format === 'json' ? 'JSON' : 'Markdown'} formatting structure above while updating the content.\n`;\n }\n\n /**\n * Generate read-only working memory instructions.\n * This provides the working memory context without any tool update instructions.\n * Used when memory is in readOnly mode.\n */\n protected getReadOnlyWorkingMemoryInstruction({ data }: { template: WorkingMemoryTemplate; data: string | null }) {\n return `WORKING_MEMORY_SYSTEM_INSTRUCTION (READ-ONLY):\nThe following is your working memory - persistent information about the user and conversation collected over previous interactions. This data is provided for context to help you maintain continuity.\n\n\n${data || 'No working memory data available.'}\n\n\nGuidelines:\n1. Use this information to provide personalized and contextually relevant responses\n2. Act naturally - don't mention this system to users. This information should inform your responses without being explicitly referenced\n3. This memory is read-only in the current session - you cannot update it\n\nNotes:\n- This system is here so that you can maintain the conversation when your context window is very short\n- The user will not see the working memory data directly`;\n }\n\n private isVNextWorkingMemoryConfig(config?: MemoryConfig): boolean {\n if (!config?.workingMemory) return false;\n\n const isMDWorkingMemory =\n !(`schema` in config.workingMemory) &&\n (typeof config.workingMemory.template === `string` || config.workingMemory.template) &&\n config.workingMemory;\n\n return Boolean(isMDWorkingMemory && isMDWorkingMemory.version === `vnext`);\n }\n\n private assertWorkingMemoryStateSignalsCompatibility(config?: MemoryConfigInternal): void {\n if (config?.workingMemory?.useStateSignals === true && this.isVNextWorkingMemoryConfig(config)) {\n throw new Error(\n \"workingMemory.useStateSignals is not supported with workingMemory.version: 'vnext'. Use stable template working memory or disable useStateSignals.\",\n );\n }\n }\n\n private getObservationEmbeddingIndexName(dimensions?: number): string {\n const defaultDimensions = 384;\n const usedDimensions = dimensions ?? defaultDimensions;\n const separator = this.vector?.indexSeparator ?? '_';\n return `memory${separator}observations${separator}${usedDimensions}`;\n }\n\n private async createObservationEmbeddingIndex(dimensions?: number): Promise<{ indexName: string }> {\n const defaultDimensions = 384;\n const usedDimensions = dimensions ?? defaultDimensions;\n const indexName = this.getObservationEmbeddingIndexName(dimensions);\n\n if (typeof this.vector === `undefined`) {\n throw new Error(\n `Tried to create observation embedding index but no vector db is attached to this Memory instance.`,\n );\n }\n\n await this.vector.createIndex({\n indexName,\n dimension: usedDimensions,\n } as any);\n\n return { indexName };\n }\n\n /**\n * Search observation groups across threads by semantic similarity.\n * Requires a vector store and embedder to be configured.\n */\n public async searchMessages({\n query,\n resourceId,\n topK = 10,\n filter,\n }: {\n query: string;\n resourceId: string;\n topK?: number;\n filter?: {\n threadId?: string;\n observedAfter?: Date;\n observedBefore?: Date;\n };\n }): Promise<{\n results: Array<{\n threadId: string;\n score: number;\n groupId?: string;\n range?: string;\n text?: string;\n observedAt?: Date;\n }>;\n }> {\n if (!this.vector) {\n throw new Error('searchMessages requires a vector store. Configure vector and embedder on your Memory instance.');\n }\n\n const { embeddings, dimension } = await this.embedMessageContent(query);\n const { indexName } = await this.createObservationEmbeddingIndex(dimension);\n\n const vectorFilter: VectorFilter = { resource_id: resourceId };\n if (filter?.threadId) {\n vectorFilter.thread_id = filter.threadId;\n }\n if (filter?.observedAfter || filter?.observedBefore) {\n vectorFilter.observed_at = {\n ...(filter.observedAfter ? { $gt: filter.observedAfter.toISOString() } : {}),\n ...(filter.observedBefore ? { $lt: filter.observedBefore.toISOString() } : {}),\n };\n }\n\n const queryResults: Array<{\n threadId: string;\n score: number;\n groupId?: string;\n range?: string;\n text?: string;\n observedAt?: Date;\n }> = [];\n\n await Promise.all(\n embeddings.map(async embedding => {\n const results = await this.vector!.query({\n indexName,\n queryVector: embedding,\n topK,\n filter: vectorFilter,\n });\n for (const r of results) {\n if (!r.metadata?.thread_id) {\n continue;\n }\n\n const groupId = typeof r.metadata.group_id === 'string' ? r.metadata.group_id : undefined;\n if (!groupId) {\n continue;\n }\n\n queryResults.push({\n threadId: r.metadata.thread_id,\n score: r.score,\n groupId,\n range: typeof r.metadata.range === 'string' ? r.metadata.range : undefined,\n text: typeof r.metadata.text === 'string' ? r.metadata.text : undefined,\n observedAt:\n typeof r.metadata.observed_at === 'string' || r.metadata.observed_at instanceof Date\n ? new Date(r.metadata.observed_at)\n : undefined,\n });\n }\n }),\n );\n\n const bestByGroup = new Map();\n for (const result of queryResults) {\n if (!result.groupId) {\n continue;\n }\n\n const existing = bestByGroup.get(result.groupId);\n if (!existing || result.score > existing.score) {\n bestByGroup.set(result.groupId, result);\n }\n }\n\n const results = [...bestByGroup.values()].sort((a, b) => b.score - a.score);\n\n return { results };\n }\n\n /**\n * Index a single observation group into the observation vector store.\n */\n public async indexObservation({\n text,\n groupId,\n range,\n threadId,\n resourceId,\n observedAt,\n }: {\n text: string;\n groupId: string;\n range: string;\n threadId: string;\n resourceId: string;\n observedAt?: Date;\n }): Promise {\n if (!this.vector || !this.embedder) return;\n\n const embedResult = await this.embedMessageContent(text);\n if (embedResult.embeddings.length === 0 || embedResult.dimension === undefined) {\n return;\n }\n\n const { indexName } = await this.createObservationEmbeddingIndex(embedResult.dimension);\n\n await this.vector.upsert({\n indexName,\n vectors: embedResult.embeddings,\n metadata: embedResult.chunks.map(chunk => ({\n group_id: groupId,\n range,\n thread_id: threadId,\n resource_id: resourceId,\n observed_at: observedAt?.toISOString(),\n text: chunk,\n })),\n });\n }\n\n /**\n * Update per-record observational memory config overrides for a thread.\n * The provided config is deep-merged, so you only need to specify fields you want to change.\n *\n * @example\n * ```ts\n * await memory.updateObservationalMemoryConfig({\n * threadId: 'thread-1',\n * config: {\n * observation: { messageTokens: 2000 },\n * reflection: { observationTokens: 8000 },\n * },\n * });\n * ```\n */\n public async updateObservationalMemoryConfig({\n threadId,\n resourceId,\n config,\n }: {\n threadId: string;\n resourceId?: string;\n config: Record;\n }): Promise {\n const omEngine = await this.omEngine;\n if (!omEngine) {\n throw new Error('Observational memory is not enabled');\n }\n await omEngine.updateRecordConfig(threadId, resourceId, config);\n }\n\n /**\n * Index a list of messages directly (without querying storage).\n * Used by observe-time indexing to vectorize newly-observed messages.\n */\n private async indexMessagesList(messages: MastraDBMessage[]): Promise {\n if (!this.vector || !this.embedder) return;\n\n const embeddingData: Array<{\n embeddings: number[][];\n metadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n >;\n }> = [];\n let dimension: number | undefined;\n\n await Promise.all(\n messages.map(async message => {\n let textForEmbedding: string | null = null;\n\n if (\n message.content.content &&\n typeof message.content.content === 'string' &&\n message.content.content.trim() !== ''\n ) {\n textForEmbedding = message.content.content;\n } else if (message.content.parts && message.content.parts.length > 0) {\n const joined = message.content.parts\n .filter((part: any) => part.type === 'text')\n .map((part: any) => part.text)\n .join(' ')\n .trim();\n if (joined) textForEmbedding = joined;\n }\n\n if (!textForEmbedding) return;\n\n const embedResult = await this.embedMessageContent(textForEmbedding);\n dimension = embedResult.dimension;\n\n embeddingData.push({\n embeddings: embedResult.embeddings,\n metadata: embedResult.chunks.map(() => ({\n message_id: message.id,\n thread_id: message.threadId,\n resource_id: message.resourceId,\n role: message.role,\n content: textForEmbedding,\n created_at: message.createdAt instanceof Date ? message.createdAt.toISOString() : String(message.createdAt),\n })),\n });\n }),\n );\n\n if (embeddingData.length > 0 && dimension !== undefined) {\n const { indexName } = await this.createEmbeddingIndex(dimension);\n\n const allVectors: number[][] = [];\n const allMetadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n > = [];\n\n for (const data of embeddingData) {\n allVectors.push(...data.embeddings);\n allMetadata.push(...data.metadata);\n }\n\n await this.vector.upsert({\n indexName,\n vectors: allVectors,\n metadata: allMetadata,\n });\n }\n }\n\n /**\n * Check whether retrieval search (vector-based) is enabled.\n * Returns true when `retrieval: { vector: true }` and Memory has vector + embedder configured.\n */\n hasRetrievalSearch(retrieval: ObservationalMemoryOptions['retrieval']): boolean {\n if (!retrieval || retrieval === true) return false;\n return !!retrieval.vector && !!this.vector && !!this.embedder;\n }\n\n public listTools(config?: MemoryConfigInternal): Record> {\n const mergedConfig = this.getMergedThreadConfig(config);\n this.assertWorkingMemoryStateSignalsCompatibility(mergedConfig);\n const tools: Record> = {};\n\n if (mergedConfig.workingMemory?.enabled && !mergedConfig.readOnly) {\n const { name, tool } = createWorkingMemoryTool(mergedConfig, {\n vNext: this.isVNextWorkingMemoryConfig(mergedConfig),\n });\n tools[name] = tool;\n }\n\n const omConfig = normalizeObservationalMemoryConfig(mergedConfig.observationalMemory);\n if (omConfig?.retrieval) {\n const retrievalScope =\n typeof omConfig.retrieval === 'object' ? (omConfig.retrieval.scope ?? 'resource') : 'resource';\n tools.recall = recallTool(mergedConfig, { retrievalScope });\n }\n\n return tools;\n }\n\n /**\n * Updates a list of messages and syncs the vector database for semantic recall.\n * When message content is updated, the corresponding vector embeddings are also updated\n * to ensure semantic recall stays in sync with the message content.\n *\n * @param messages - The list of messages to update (must include id, can include partial content)\n * @param memoryConfig - Optional memory configuration to determine if semantic recall is enabled\n * @returns The list of updated messages\n */\n public async updateMessages({\n messages,\n memoryConfig,\n }: {\n messages: (Partial & { id: string })[];\n memoryConfig?: MemoryConfigInternal;\n }): Promise {\n if (messages.length === 0) return [];\n\n const memoryStore = await this.getMemoryStore();\n const config = this.getMergedThreadConfig(memoryConfig);\n\n // Update vector database if semantic recall is enabled and any messages have content updates\n if (this.vector && config.semanticRecall) {\n const messagesWithContent = messages.filter(m => m.content !== undefined);\n\n if (messagesWithContent.length > 0) {\n // Get existing messages to obtain threadId and resourceId for vector metadata\n const existingMessagesResult = await memoryStore.listMessagesById({\n messageIds: messagesWithContent.map(m => m.id),\n });\n const existingMessagesMap = new Map(existingMessagesResult.messages.map(m => [m.id, m]));\n\n // Collect embeddings for messages with new text content\n const embeddingData: Array<{\n embeddings: number[][];\n metadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n >;\n }> = [];\n let dimension: number | undefined;\n\n // Track which messages will have new embeddings vs cleared content\n const messageIdsWithNewEmbeddings = new Set();\n const messageIdsWithClearedContent = new Set();\n\n // Prepare new embeddings and track which messages need vector operations\n await Promise.all(\n messagesWithContent.map(async message => {\n const existingMessage = existingMessagesMap.get(message.id);\n if (!existingMessage) return;\n\n // Extract text from the new content\n let textForEmbedding: string | null = null;\n const content = message.content;\n\n if (content) {\n if (\n 'content' in content &&\n content.content &&\n typeof content.content === 'string' &&\n content.content.trim() !== ''\n ) {\n textForEmbedding = content.content;\n } else if (\n 'parts' in content &&\n content.parts &&\n Array.isArray(content.parts) &&\n content.parts.length > 0\n ) {\n // Extract text from all text parts, concatenate\n const joined = (content.parts as any[])\n .filter(part => part?.type === 'text')\n .map(part => (part as TextPart).text)\n .join(' ')\n .trim();\n if (joined) textForEmbedding = joined;\n }\n }\n\n // If there's new text content, embed it\n if (textForEmbedding) {\n const result = await this.embedMessageContent(textForEmbedding);\n dimension = result.dimension;\n\n embeddingData.push({\n embeddings: result.embeddings,\n metadata: result.chunks.map(() => ({\n message_id: message.id,\n thread_id: existingMessage.threadId,\n resource_id: existingMessage.resourceId,\n role: existingMessage.role,\n content: textForEmbedding,\n created_at:\n existingMessage.createdAt instanceof Date\n ? existingMessage.createdAt.toISOString()\n : String(existingMessage.createdAt),\n })),\n });\n messageIdsWithNewEmbeddings.add(message.id);\n } else {\n // Content is empty or has no text - mark for vector deletion only\n messageIdsWithClearedContent.add(message.id);\n }\n }),\n );\n\n // Delete old vectors from all existing memory indexes for messages that need it:\n // - Messages with cleared content: vectors must be removed (no new embeddings will replace them)\n // - Messages with new embeddings: old vectors must be removed before upserting (may be in different indexes if embedding model changed)\n const messageIdsNeedingDeletion = new Set([...messageIdsWithClearedContent, ...messageIdsWithNewEmbeddings]);\n\n if (messageIdsNeedingDeletion.size > 0) {\n try {\n const memoryIndexes = await this.getMemoryVectorIndexes();\n const idsToDelete = [...messageIdsNeedingDeletion];\n\n await Promise.all(\n memoryIndexes.map(async indexName => {\n for (let i = 0; i < idsToDelete.length; i += VECTOR_DELETE_BATCH_SIZE) {\n const batch = idsToDelete.slice(i, i + VECTOR_DELETE_BATCH_SIZE);\n try {\n await this.vector!.deleteVectors({\n indexName,\n filter: { message_id: { $in: batch } },\n });\n } catch {\n this.logger.debug('Failed to delete vector batch, skipping', { indexName, batchOffset: i });\n }\n }\n }),\n );\n } catch {\n this.logger.debug('Failed to clean up old vectors during message update');\n }\n }\n\n // Upsert new embeddings if any\n if (embeddingData.length > 0 && dimension !== undefined) {\n const { indexName } = await this.createEmbeddingIndex(dimension, config);\n\n // Flatten all embeddings and metadata into single arrays\n const allVectors: number[][] = [];\n const allMetadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n > = [];\n\n for (const data of embeddingData) {\n allVectors.push(...data.embeddings);\n allMetadata.push(...data.metadata);\n }\n\n await this.vector.upsert({\n indexName,\n vectors: allVectors,\n metadata: allMetadata,\n });\n }\n }\n }\n\n return memoryStore.updateMessages({ messages });\n }\n\n /**\n * Deletes one or more messages\n * @param input - Must be an array containing either:\n * - Message ID strings\n * - Message objects with 'id' properties\n * @returns Promise that resolves when all messages are deleted\n */\n public async deleteMessages(\n input: MessageDeleteInput,\n observabilityContext?: Partial,\n ): Promise {\n // Normalize input to messageIds before creating span to avoid leaking full message objects into traces\n let messageIds: string[];\n\n if (!Array.isArray(input)) {\n throw new Error('Invalid input: must be an array of message IDs or message objects');\n }\n\n if (input.length === 0) {\n return;\n }\n\n messageIds = input.map(item => {\n if (typeof item === 'string') {\n return item;\n } else if (item && typeof item === 'object' && 'id' in item) {\n return item.id;\n } else {\n throw new Error('Invalid input: array items must be strings or objects with an id property');\n }\n });\n\n const invalidIds = messageIds.filter(id => !id || typeof id !== 'string');\n if (invalidIds.length > 0) {\n throw new Error('All message IDs must be non-empty strings');\n }\n\n const span = this.createMemorySpan('delete', observabilityContext, undefined, {\n messageCount: messageIds.length,\n });\n\n try {\n const memoryStore = await this.getMemoryStore();\n\n await memoryStore.deleteMessages(messageIds);\n if (this.vector) {\n void this.deleteMessageVectors(messageIds);\n }\n\n span?.end({ output: { success: true }, attributes: { messageCount: messageIds.length } });\n } catch (error) {\n span?.error({ error: error as Error, endSpan: true });\n throw error;\n }\n }\n\n /**\n * Deletes vector embeddings for specific messages.\n * This is called internally by deleteMessages to clean up orphaned vectors.\n *\n * @param messageIds - The IDs of the messages whose vectors should be deleted\n */\n private async deleteMessageVectors(messageIds: string[]): Promise {\n try {\n const memoryIndexes = await this.getMemoryVectorIndexes();\n\n await Promise.all(\n memoryIndexes.map(async (indexName: string) => {\n for (let i = 0; i < messageIds.length; i += VECTOR_DELETE_BATCH_SIZE) {\n const batch = messageIds.slice(i, i + VECTOR_DELETE_BATCH_SIZE);\n try {\n await this.vector!.deleteVectors({\n indexName,\n filter: { message_id: { $in: batch } },\n });\n } catch {\n this.logger.debug('Failed to delete vector batch, skipping', { indexName, batchOffset: i });\n }\n }\n }),\n );\n } catch {\n this.logger.debug('Failed to clean up vectors for deleted messages');\n }\n }\n\n /**\n * Clone a thread and its messages to create a new independent thread.\n * The cloned thread will have metadata tracking its source.\n *\n * If semantic recall is enabled, the cloned messages will also be embedded\n * and added to the vector store for semantic search.\n *\n * @param args - Clone configuration options\n * @param args.sourceThreadId - ID of the thread to clone\n * @param args.newThreadId - ID for the new cloned thread (if not provided, a random UUID will be generated)\n * @param args.resourceId - Resource ID for the new thread (defaults to source thread's resourceId)\n * @param args.title - Title for the new cloned thread\n * @param args.metadata - Additional metadata to merge with clone metadata\n * @param args.options - Options for filtering which messages to include\n * @param args.options.messageLimit - Maximum number of messages to copy (from most recent)\n * @param args.options.messageFilter - Filter messages by date range or specific IDs\n * @param memoryConfig - Optional memory configuration override\n * @returns The newly created thread and the cloned messages\n *\n * @example\n * ```typescript\n * // Clone entire thread\n * const { thread, clonedMessages } = await memory.cloneThread({\n * sourceThreadId: 'thread-123',\n * });\n *\n * // Clone with custom ID\n * const { thread, clonedMessages } = await memory.cloneThread({\n * sourceThreadId: 'thread-123',\n * newThreadId: 'my-custom-thread-id',\n * });\n *\n * // Clone with message limit\n * const { thread, clonedMessages } = await memory.cloneThread({\n * sourceThreadId: 'thread-123',\n * title: 'My cloned conversation',\n * options: {\n * messageLimit: 10, // Only clone last 10 messages\n * },\n * });\n *\n * // Clone with date filter\n * const { thread, clonedMessages } = await memory.cloneThread({\n * sourceThreadId: 'thread-123',\n * options: {\n * messageFilter: {\n * startDate: new Date('2024-01-01'),\n * endDate: new Date('2024-06-01'),\n * },\n * },\n * });\n * ```\n */\n public async cloneThread(\n args: StorageCloneThreadInput,\n memoryConfig?: MemoryConfigInternal,\n ): Promise {\n const memoryStore = await this.getMemoryStore();\n const result = await memoryStore.cloneThread(args);\n const config = this.getMergedThreadConfig(memoryConfig);\n\n // Fetch source thread once for working memory and OM cloning\n const sourceThread = await this.getThreadById({ threadId: args.sourceThreadId });\n const sourceResourceId = sourceThread?.resourceId;\n\n // Copy working memory from source thread to cloned thread.\n // Thread-scoped: always copy since each thread has its own working memory.\n // Resource-scoped: only copy when the clone uses a different resourceId (same resourceId shares memory naturally).\n if (config.workingMemory?.enabled) {\n const scope = config.workingMemory.scope || 'resource';\n const shouldCopy =\n scope === 'thread' || (scope === 'resource' && args.resourceId && args.resourceId !== sourceResourceId);\n\n if (shouldCopy) {\n const sourceWm = await this.getWorkingMemory({\n threadId: args.sourceThreadId,\n resourceId: sourceResourceId,\n memoryConfig,\n });\n if (sourceWm) {\n await this.updateWorkingMemory({\n threadId: result.thread.id,\n resourceId: result.thread.resourceId,\n workingMemory: sourceWm,\n memoryConfig,\n });\n }\n }\n }\n\n // Clone observational memory if supported.\n // Thread-scoped: always clone since each thread has its own OM.\n // Resource-scoped: only clone when the resourceId changes (same resourceId shares OM naturally).\n if (memoryStore.supportsObservationalMemory && sourceResourceId) {\n try {\n await this.cloneObservationalMemory(memoryStore, args.sourceThreadId, sourceResourceId, result);\n } catch (error) {\n // Rollback the already-persisted clone to avoid orphaned threads\n try {\n await memoryStore.deleteThread({ threadId: result.thread.id });\n } catch (rollbackError) {\n this.logger.error('Failed to rollback cloned thread after OM clone failure', rollbackError);\n }\n throw error;\n }\n }\n\n // Embed cloned messages only after OM cloning succeeds, so rollback doesn't leave orphan vectors\n if (this.vector && config.semanticRecall && result.clonedMessages.length > 0) {\n await this.embedClonedMessages(result.clonedMessages, config);\n }\n\n return result;\n }\n\n /**\n * Clone observational memory records when cloning a thread.\n * Thread-scoped: always cloned to the new thread.\n * Resource-scoped: cloned only when the resourceId changes (same resourceId shares OM naturally).\n * All stored message/thread IDs are remapped to the cloned IDs.\n */\n private async cloneObservationalMemory(\n memoryStore: MemoryStorage,\n sourceThreadId: string,\n sourceResourceId: string,\n result: StorageCloneThreadOutput,\n ): Promise {\n // Look up OM for thread-scoped first (threadId + resourceId), then resource-scoped (null + resourceId)\n let sourceOM = await memoryStore.getObservationalMemory(sourceThreadId, sourceResourceId);\n if (!sourceOM) {\n sourceOM = await memoryStore.getObservationalMemory(null, sourceResourceId);\n }\n if (!sourceOM) return;\n\n const clonedThreadId = result.thread.id;\n const clonedResourceId = result.thread.resourceId;\n const resourceChanged = clonedResourceId !== sourceResourceId;\n\n // Resource-scoped OM with same resourceId: shared naturally, no clone needed\n if (sourceOM.scope === 'resource' && !resourceChanged) return;\n\n // Build source → clone message ID map\n const messageIdMap = result.messageIdMap ?? {};\n const hasher = await this.hasher;\n\n const cloned = this.remapObservationalMemoryRecord(sourceOM, {\n newThreadId: sourceOM.scope === 'thread' ? clonedThreadId : null,\n newResourceId: clonedResourceId,\n messageIdMap,\n sourceThreadId: resourceChanged ? sourceThreadId : undefined,\n clonedThreadId: resourceChanged ? clonedThreadId : undefined,\n hasher: resourceChanged ? hasher : undefined,\n });\n const now = new Date();\n cloned.id = crypto.randomUUID();\n cloned.createdAt = now;\n cloned.updatedAt = now;\n await memoryStore.insertObservationalMemoryRecord(cloned);\n }\n\n /**\n * Create a remapped copy of an OM record with new thread/message IDs.\n */\n private remapObservationalMemoryRecord(\n record: ObservationalMemoryRecord,\n opts: {\n newThreadId: string | null;\n newResourceId: string;\n messageIdMap: Record;\n sourceThreadId?: string;\n clonedThreadId?: string;\n hasher?: Awaited>;\n },\n ): ObservationalMemoryRecord {\n const { newThreadId, newResourceId, messageIdMap, sourceThreadId, clonedThreadId, hasher } = opts;\n const cloned: ObservationalMemoryRecord = { ...record };\n\n cloned.threadId = newThreadId;\n cloned.resourceId = newResourceId;\n\n // Remap observedMessageIds — drop any IDs not present in the clone's message set\n if (Array.isArray(cloned.observedMessageIds)) {\n cloned.observedMessageIds = cloned.observedMessageIds\n .map(id => messageIdMap[id])\n .filter((id): id is string => Boolean(id));\n } else {\n cloned.observedMessageIds = undefined;\n }\n\n // Remap deprecated bufferedMessageIds\n if (Array.isArray(cloned.bufferedMessageIds)) {\n cloned.bufferedMessageIds = cloned.bufferedMessageIds\n .map(id => messageIdMap[id])\n .filter((id): id is string => Boolean(id));\n } else {\n cloned.bufferedMessageIds = undefined;\n }\n\n // Remap bufferedObservationChunks\n if (Array.isArray(cloned.bufferedObservationChunks)) {\n cloned.bufferedObservationChunks = cloned.bufferedObservationChunks.map(\n (chunk: BufferedObservationChunk): BufferedObservationChunk => ({\n ...chunk,\n messageIds: Array.isArray(chunk.messageIds)\n ? chunk.messageIds.map((id: string) => messageIdMap[id]).filter((id): id is string => Boolean(id))\n : [],\n }),\n );\n } else {\n cloned.bufferedObservationChunks = undefined;\n }\n\n // For resource-scoped OM cloned to a new resource, remap thread tags in text fields\n if (sourceThreadId && clonedThreadId && hasher) {\n const sourceObscured = hasher.h32ToString(sourceThreadId);\n const clonedObscured = hasher.h32ToString(clonedThreadId);\n\n if (sourceObscured !== clonedObscured) {\n const replaceThreadTags = (text: string | undefined): string | undefined => {\n if (!text) return text;\n return text.replaceAll(``, ``);\n };\n\n cloned.activeObservations = replaceThreadTags(cloned.activeObservations) ?? '';\n cloned.bufferedReflection = replaceThreadTags(cloned.bufferedReflection);\n\n if (cloned.bufferedObservationChunks) {\n cloned.bufferedObservationChunks = cloned.bufferedObservationChunks.map(\n (chunk: BufferedObservationChunk): BufferedObservationChunk => ({\n ...chunk,\n observations: replaceThreadTags(chunk.observations) ?? chunk.observations,\n }),\n );\n }\n }\n }\n\n // Reset transient state flags\n cloned.isObserving = false;\n cloned.isReflecting = false;\n cloned.isBufferingObservation = false;\n cloned.isBufferingReflection = false;\n\n return cloned;\n }\n\n /**\n * Embed cloned messages for semantic recall.\n * This is similar to the embedding logic in saveMessages but operates on already-saved messages.\n */\n private async embedClonedMessages(messages: MastraDBMessage[], config: MemoryConfigInternal): Promise {\n if (!this.vector || !this.embedder) {\n return;\n }\n\n const embeddingData: Array<{\n embeddings: number[][];\n metadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n >;\n }> = [];\n let dimension: number | undefined;\n\n // Process embeddings concurrently\n await Promise.all(\n messages.map(async message => {\n let textForEmbedding: string | null = null;\n\n if (\n message.content?.content &&\n typeof message.content.content === 'string' &&\n message.content.content.trim() !== ''\n ) {\n textForEmbedding = message.content.content;\n } else if (message.content?.parts && message.content.parts.length > 0) {\n // Extract text from all text parts, concatenate\n const joined = message.content.parts\n .filter((part: { type: string }) => part.type === 'text')\n .map((part: { type: string; text?: string }) => (part as { type: string; text: string }).text)\n .join(' ')\n .trim();\n if (joined) textForEmbedding = joined;\n }\n\n if (!textForEmbedding) return;\n\n const result = await this.embedMessageContent(textForEmbedding);\n dimension = result.dimension;\n\n embeddingData.push({\n embeddings: result.embeddings,\n metadata: result.chunks.map(() => ({\n message_id: message.id,\n thread_id: message.threadId,\n resource_id: message.resourceId,\n role: message.role,\n content: textForEmbedding,\n created_at: message.createdAt instanceof Date ? message.createdAt.toISOString() : String(message.createdAt),\n })),\n });\n }),\n );\n\n // Batch all vectors into a single upsert call\n if (embeddingData.length > 0 && dimension !== undefined) {\n const { indexName } = await this.createEmbeddingIndex(dimension, config);\n\n // Flatten all embeddings and metadata into single arrays\n const allVectors: number[][] = [];\n const allMetadata: Array<\n Record & {\n message_id: string;\n thread_id: string | undefined;\n resource_id: string | undefined;\n }\n > = [];\n\n for (const data of embeddingData) {\n allVectors.push(...data.embeddings);\n allMetadata.push(...data.metadata);\n }\n\n await this.vector.upsert({\n indexName,\n vectors: allVectors,\n metadata: allMetadata,\n });\n }\n }\n\n /**\n * Get the clone metadata from a thread if it was cloned from another thread.\n *\n * @param thread - The thread to check\n * @returns The clone metadata if the thread is a clone, null otherwise\n *\n * @example\n * ```typescript\n * const thread = await memory.getThreadById({ threadId: 'thread-123' });\n * const cloneInfo = memory.getCloneMetadata(thread);\n * if (cloneInfo) {\n * console.log(`This thread was cloned from ${cloneInfo.sourceThreadId}`);\n * }\n * ```\n */\n public getCloneMetadata(thread: StorageThreadType | null): ThreadCloneMetadata | null {\n if (!thread?.metadata?.clone) {\n return null;\n }\n return thread.metadata.clone as ThreadCloneMetadata;\n }\n\n /**\n * Check if a thread is a clone of another thread.\n *\n * @param thread - The thread to check\n * @returns True if the thread is a clone, false otherwise\n *\n * @example\n * ```typescript\n * const thread = await memory.getThreadById({ threadId: 'thread-123' });\n * if (memory.isClone(thread)) {\n * console.log('This is a cloned thread');\n * }\n * ```\n */\n public isClone(thread: StorageThreadType | null): boolean {\n return this.getCloneMetadata(thread) !== null;\n }\n\n /**\n * Get the source thread that a cloned thread was created from.\n *\n * @param threadId - ID of the cloned thread\n * @returns The source thread if found, null if the thread is not a clone or source doesn't exist\n *\n * @example\n * ```typescript\n * const sourceThread = await memory.getSourceThread('cloned-thread-123');\n * if (sourceThread) {\n * console.log(`Original thread: ${sourceThread.title}`);\n * }\n * ```\n */\n public async getSourceThread(threadId: string): Promise {\n const thread = await this.getThreadById({ threadId });\n const cloneMetadata = this.getCloneMetadata(thread);\n\n if (!cloneMetadata) {\n return null;\n }\n\n return this.getThreadById({ threadId: cloneMetadata.sourceThreadId });\n }\n\n /**\n * List all threads that were cloned from a specific source thread.\n *\n * @param sourceThreadId - ID of the source thread\n * @param resourceId - Optional resource ID to filter by\n * @returns Array of threads that are clones of the source thread\n *\n * @example\n * ```typescript\n * const clones = await memory.listClones('original-thread-123', 'user-456');\n * console.log(`Found ${clones.length} clones of this thread`);\n * ```\n */\n public async listClones(sourceThreadId: string, resourceId?: string): Promise {\n // If resourceId is provided, use it to scope the search\n // Otherwise, get the source thread's resourceId\n let targetResourceId = resourceId;\n\n if (!targetResourceId) {\n const sourceThread = await this.getThreadById({ threadId: sourceThreadId });\n if (!sourceThread) {\n return [];\n }\n targetResourceId = sourceThread.resourceId;\n }\n\n // List all threads for the resource and filter for clones\n const { threads } = await this.listThreads({\n filter: { resourceId: targetResourceId },\n perPage: false, // Get all threads\n });\n\n return threads.filter(thread => {\n const cloneMetadata = this.getCloneMetadata(thread);\n return cloneMetadata?.sourceThreadId === sourceThreadId;\n });\n }\n\n /**\n * Get the clone history chain for a thread (all ancestors back to the original).\n *\n * @param threadId - ID of the thread to get history for\n * @returns Array of threads from oldest ancestor to the given thread (inclusive)\n *\n * @example\n * ```typescript\n * const history = await memory.getCloneHistory('deeply-cloned-thread');\n * // Returns: [originalThread, firstClone, secondClone, deeplyClonedThread]\n * ```\n */\n public async getCloneHistory(threadId: string): Promise {\n const history: StorageThreadType[] = [];\n let currentThreadId: string | null = threadId;\n\n while (currentThreadId) {\n const thread = await this.getThreadById({ threadId: currentThreadId });\n if (!thread) {\n break;\n }\n\n history.unshift(thread); // Add to beginning to maintain order from oldest to newest\n\n const cloneMetadata = this.getCloneMetadata(thread);\n currentThreadId = cloneMetadata?.sourceThreadId ?? null;\n }\n\n return history;\n }\n\n /**\n * Get input processors for this memory instance.\n * Extends the base implementation to add ObservationalMemory processor when configured.\n *\n * @param configuredProcessors - Processors already configured by the user (for deduplication)\n * @param context - Request context for runtime configuration\n * @returns Array of input processors configured for this memory instance\n */\n async getInputProcessors(\n configuredProcessors: InputProcessorOrWorkflow[] = [],\n context?: RequestContext,\n ): Promise {\n // Get base processors from parent class\n const processors = await super.getInputProcessors(configuredProcessors, context);\n\n const om = await this.createOMProcessor(configuredProcessors, context);\n if (om) {\n processors.push(om);\n }\n\n const wm = await this.createWorkingMemoryStateProcessor(configuredProcessors, context);\n if (wm) {\n processors.push(wm);\n }\n\n return processors;\n }\n\n /**\n * Extends the base implementation to add ObservationalMemory as an output processor.\n * OM needs processOutputResult to save messages at the end of the agent turn,\n * even when the observation threshold was never reached during the loop.\n */\n async getOutputProcessors(\n configuredProcessors: OutputProcessorOrWorkflow[] = [],\n context?: RequestContext,\n ): Promise {\n const processors = await super.getOutputProcessors(configuredProcessors, context);\n\n const om = await this.createOMProcessor(configuredProcessors, context);\n if (om) {\n processors.push(om as unknown as OutputProcessor);\n }\n\n return processors;\n }\n\n /**\n * Creates an ObservationalMemory processor wrapping the shared engine.\n * Returns null if OM is not configured, not supported, or already present\n * in the user's configured processors.\n */\n private async createOMProcessor(\n configuredProcessors: (InputProcessorOrWorkflow | OutputProcessorOrWorkflow)[] = [],\n context?: RequestContext,\n ): Promise {\n const hasObservationalMemory = configuredProcessors.some(\n p => !('workflow' in p) && p.id === 'observational-memory',\n );\n if (hasObservationalMemory) return null;\n\n const runtimeMemory = context?.get('MastraMemory') as { memoryConfig?: RuntimeMemoryConfig } | undefined;\n const runtimeObservationalMemory = normalizeObservationalMemoryConfig(\n runtimeMemory?.memoryConfig?.observationalMemory,\n );\n const threadConfig = runtimeObservationalMemory\n ? this.getMergedThreadConfig({\n ...runtimeMemory?.memoryConfig,\n observationalMemory: runtimeObservationalMemory,\n } as MemoryConfigInternal)\n : this.threadConfig;\n\n const effectiveConfig = normalizeObservationalMemoryConfig(threadConfig.observationalMemory);\n if (!effectiveConfig) return null;\n\n const engine = await this.omEngine;\n if (!engine) return null;\n\n const { ObservationalMemoryProcessor } = await import('./processors/observational-memory');\n return new ObservationalMemoryProcessor(engine, this, {\n temporalMarkers: effectiveConfig.temporalMarkers,\n });\n }\n\n /**\n * Creates a WorkingMemoryStateProcessor when working memory is enabled and the\n * `useStateSignals` opt-in is set. Returns null otherwise or if the processor\n * is already present in the user's configured processors.\n */\n private async createWorkingMemoryStateProcessor(\n configuredProcessors: InputProcessorOrWorkflow[] = [],\n context?: RequestContext,\n ): Promise {\n const runtimeMemory = context?.get('MastraMemory') as { memoryConfig?: MemoryConfigInternal } | undefined;\n const mergedConfig = this.getMergedThreadConfig(runtimeMemory?.memoryConfig);\n this.assertWorkingMemoryStateSignalsCompatibility(mergedConfig);\n if (!mergedConfig.workingMemory?.enabled) return null;\n if (!mergedConfig.workingMemory?.useStateSignals) return null;\n\n const { WORKING_MEMORY_STATE_PROCESSOR_ID, WorkingMemoryStateProcessor } =\n await import('./processors/working-memory-state');\n const alreadyConfigured = configuredProcessors.some(\n p => !('workflow' in p) && p.id === WORKING_MEMORY_STATE_PROCESSOR_ID,\n );\n if (alreadyConfigured) return null;\n\n return new WorkingMemoryStateProcessor(this, runtimeMemory?.memoryConfig);\n }\n}\n\n// Re-export memory processors from @mastra/core for backward compatibility\nexport { SemanticRecall, WorkingMemory, MessageHistory } from '@mastra/core/processors';\n\n// Re-export clone-related types for convenience\nexport type { StorageCloneThreadInput, StorageCloneThreadOutput, ThreadCloneMetadata } from '@mastra/core/storage';\n\n// Observational Memory utilities\nexport { getObservationsAsOf } from './processors/observational-memory';\n\n// Working memory state-signal processor (opt-in via workingMemory.useStateSignals)\nexport {\n WorkingMemoryStateProcessor,\n WORKING_MEMORY_STATE_ID,\n WORKING_MEMORY_STATE_PROCESSOR_ID,\n} from './processors/working-memory-state';\n","import type { ToolsInput } from '@mastra/core/agent';\nimport type { MastraModelConfig } from '@mastra/core/llm';\nimport type { MastraStorage } from '@mastra/core/storage';\nimport type { MastraVector } from '@mastra/core/vector';\nimport { z } from 'zod';\n\n/**\n * Configuration options for the AgentBuilder\n */\nexport interface AgentBuilderConfig {\n /** The language model to use for agent generation */\n model: MastraModelConfig;\n /** Storage provider for memory (optional) */\n storage?: MastraStorage;\n /** Vector provider for memory (optional) */\n vectorProvider?: MastraVector;\n /** Additional tools to include beyond the default set */\n tools?: ToolsInput;\n /** Custom instructions to append to the default system prompt */\n instructions?: string;\n /** Memory configuration options */\n memoryConfig?: {\n maxMessages?: number;\n tokenLimit?: number;\n };\n /** Project path */\n projectPath: string;\n /** Summary model */\n summaryModel?: MastraModelConfig;\n /** Mode */\n mode?: 'template' | 'code-editor';\n}\n\n/**\n * Options for generating agents with AgentBuilder\n */\nexport interface GenerateAgentOptions {\n /** Request Context for the generation */\n requestContext?: any;\n /** Output format preference */\n outputFormat?: 'code' | 'explanation' | 'both';\n}\n\n/**\n * Project management action types\n */\nexport type ProjectAction = 'create' | 'install' | 'upgrade' | 'check';\n\n/**\n * Project types that can be created\n */\nexport type ProjectType = 'standalone' | 'api' | 'nextjs';\n\n/**\n * Package manager options\n */\nexport type PackageManager = 'npm' | 'pnpm' | 'yarn';\n\n/**\n * Validation types for code validation\n */\nexport type ValidationType = 'types' | 'schemas' | 'tests' | 'integration';\n\n// Processing order for units (lower index = higher priority)\nexport const UNIT_KINDS = ['mcp-server', 'tool', 'workflow', 'agent', 'integration', 'network', 'other'] as const;\n\n// Types for the merge template workflow\nexport type UnitKind = (typeof UNIT_KINDS)[number];\n\nexport interface TemplateUnit {\n kind: UnitKind;\n id: string;\n file: string;\n}\n\nexport interface TemplateManifest {\n slug: string;\n ref?: string;\n description?: string;\n units: TemplateUnit[];\n}\n\nexport interface MergePlan {\n slug: string;\n commitSha: string;\n templateDir: string;\n units: TemplateUnit[];\n}\n\n// Schema definitions\nexport const TemplateUnitSchema = z.object({\n kind: z.enum(UNIT_KINDS),\n id: z.string(),\n file: z.string(),\n});\n\nexport const TemplateManifestSchema = z.object({\n slug: z.string(),\n ref: z.string().optional(),\n description: z.string().optional(),\n units: z.array(TemplateUnitSchema),\n});\n\nexport const AgentBuilderInputSchema = z.object({\n repo: z.string().describe('Git URL or local path of the template repo'),\n ref: z.string().optional().describe('Tag/branch/commit to checkout (defaults to main/master)'),\n slug: z.string().optional().describe('Slug for branch/scripts; defaults to inferred from repo'),\n targetPath: z.string().optional().describe('Project path to merge into; defaults to current directory'),\n variables: z.record(z.string(), z.string()).optional().describe('Environment variables to set in .env file'),\n});\n\nexport const MergePlanSchema = z.object({\n slug: z.string(),\n commitSha: z.string(),\n templateDir: z.string(),\n units: z.array(TemplateUnitSchema),\n});\n\n// File copy schemas and types\nexport const CopiedFileSchema = z.object({\n source: z.string(),\n destination: z.string(),\n unit: z.object({\n kind: z.enum(UNIT_KINDS),\n id: z.string(),\n }),\n});\n\nexport const ConflictSchema = z.object({\n unit: z.object({\n kind: z.enum(UNIT_KINDS),\n id: z.string(),\n }),\n issue: z.string(),\n sourceFile: z.string(),\n targetFile: z.string(),\n});\n\nexport const FileCopyInputSchema = z.object({\n orderedUnits: z.array(TemplateUnitSchema),\n templateDir: z.string(),\n commitSha: z.string(),\n slug: z.string(),\n targetPath: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n});\n\nexport const FileCopyResultSchema = z.object({\n success: z.boolean(),\n copiedFiles: z.array(CopiedFileSchema),\n conflicts: z.array(ConflictSchema),\n message: z.string(),\n error: z.string().optional(),\n});\n\n// Intelligent merge schemas and types\nexport const ConflictResolutionSchema = z.object({\n unit: z.object({\n kind: z.enum(UNIT_KINDS),\n id: z.string(),\n }),\n issue: z.string(),\n resolution: z.string(),\n});\n\nexport const IntelligentMergeInputSchema = z.object({\n conflicts: z.array(ConflictSchema),\n copiedFiles: z.array(CopiedFileSchema),\n templateDir: z.string(),\n commitSha: z.string(),\n slug: z.string(),\n targetPath: z.string().optional(),\n branchName: z.string().optional(),\n});\n\nexport const IntelligentMergeResultSchema = z.object({\n success: z.boolean(),\n applied: z.boolean(),\n message: z.string(),\n conflictsResolved: z.array(ConflictResolutionSchema),\n error: z.string().optional(),\n});\n\n// Validation schemas and types\nexport const ValidationResultsSchema = z.object({\n valid: z.boolean(),\n errorsFixed: z.number(),\n remainingErrors: z.number(),\n errors: z.array(z.any()).optional(), // Include specific validation errors\n});\n\nexport const ValidationFixInputSchema = z.object({\n commitSha: z.string(),\n slug: z.string(),\n targetPath: z.string().optional(),\n templateDir: z.string(),\n orderedUnits: z.array(TemplateUnitSchema),\n copiedFiles: z.array(CopiedFileSchema),\n conflictsResolved: z.array(ConflictResolutionSchema).optional(),\n maxIterations: z.number().optional().default(5),\n});\n\nexport const ValidationFixResultSchema = z.object({\n success: z.boolean(),\n applied: z.boolean(),\n message: z.string(),\n validationResults: ValidationResultsSchema,\n error: z.string().optional(),\n});\n\n// Final workflow result schema\nexport const ApplyResultSchema = z.object({\n success: z.boolean(),\n applied: z.boolean(),\n branchName: z.string().optional(),\n message: z.string(),\n validationResults: ValidationResultsSchema.optional(),\n error: z.string().optional(),\n errors: z.array(z.string()).optional(),\n stepResults: z\n .object({\n cloneSuccess: z.boolean().optional(),\n analyzeSuccess: z.boolean().optional(),\n discoverSuccess: z.boolean().optional(),\n orderSuccess: z.boolean().optional(),\n prepareBranchSuccess: z.boolean().optional(),\n packageMergeSuccess: z.boolean().optional(),\n installSuccess: z.boolean().optional(),\n copySuccess: z.boolean().optional(),\n mergeSuccess: z.boolean().optional(),\n validationSuccess: z.boolean().optional(),\n filesCopied: z.number(),\n conflictsSkipped: z.number(),\n conflictsResolved: z.number(),\n })\n .optional(),\n});\n\nexport const CloneTemplateResultSchema = z.object({\n templateDir: z.string(),\n commitSha: z.string(),\n slug: z.string(),\n success: z.boolean().optional(),\n error: z.string().optional(),\n targetPath: z.string().optional(),\n});\n\n// Package analysis schemas and types\nexport const PackageAnalysisSchema = z.object({\n name: z.string().optional(),\n version: z.string().optional(),\n description: z.string().optional(),\n dependencies: z.record(z.string(), z.string()).optional(),\n devDependencies: z.record(z.string(), z.string()).optional(),\n peerDependencies: z.record(z.string(), z.string()).optional(),\n scripts: z.record(z.string(), z.string()).optional(),\n success: z.boolean().optional(),\n error: z.string().optional(),\n});\n\n// Discovery step schemas and types\nexport const DiscoveryResultSchema = z.object({\n units: z.array(TemplateUnitSchema),\n success: z.boolean().optional(),\n error: z.string().optional(),\n});\n\n// Unit ordering schemas and types\nexport const OrderedUnitsSchema = z.object({\n orderedUnits: z.array(TemplateUnitSchema),\n success: z.boolean().optional(),\n error: z.string().optional(),\n});\n\n// Package merge schemas and types\nexport const PackageMergeInputSchema = z.object({\n commitSha: z.string(),\n slug: z.string(),\n targetPath: z.string().optional(),\n packageInfo: PackageAnalysisSchema,\n});\n\nexport const PackageMergeResultSchema = z.object({\n success: z.boolean(),\n applied: z.boolean(),\n message: z.string(),\n error: z.string().optional(),\n});\n\n// Install schemas and types\nexport const InstallInputSchema = z.object({\n targetPath: z.string().optional().describe('Path to the project to install packages in'),\n});\n\nexport const InstallResultSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n});\n\nexport const PrepareBranchInputSchema = z.object({\n slug: z.string(),\n commitSha: z.string().optional(), // from clone-template if relevant\n targetPath: z.string().optional(),\n});\n\nexport const PrepareBranchResultSchema = z.object({\n branchName: z.string(),\n success: z.boolean().optional(),\n error: z.string().optional(),\n});\n","import { exec as execNodejs, execFile as execFileNodejs, spawn as nodeSpawn } from 'node:child_process';\nimport type { SpawnOptions } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { copyFile, readFile } from 'node:fs/promises';\nimport { createRequire } from 'node:module';\nimport { dirname, basename, extname, resolve, join } from 'node:path';\nimport { promisify } from 'node:util';\nimport type { MastraLanguageModel, MastraLegacyLanguageModel } from '@mastra/core/agent';\nimport { ModelRouterLanguageModel } from '@mastra/core/llm';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { UNIT_KINDS } from './types';\nimport type { UnitKind } from './types';\n\nexport const exec = promisify(execNodejs);\nexport const execFile = promisify(execFileNodejs);\n\n// Helper function to detect if we're in a workspace subfolder\nfunction isInWorkspaceSubfolder(cwd: string): boolean {\n try {\n // First, check if current directory has package.json (it's a package)\n const currentPackageJson = resolve(cwd, 'package.json');\n if (!existsSync(currentPackageJson)) {\n return false; // Not a package, so not a workspace subfolder\n }\n\n // Walk up the directory tree looking for workspace indicators\n let currentDir = cwd;\n let previousDir = '';\n\n // Keep going up until we reach the filesystem root or stop making progress\n while (currentDir !== previousDir && currentDir !== '/') {\n previousDir = currentDir;\n currentDir = dirname(currentDir);\n\n // Skip if we're back at the original directory\n if (currentDir === cwd) {\n continue;\n }\n\n console.info(`Checking for workspace indicators in: ${currentDir}`);\n\n // Check for pnpm workspace\n if (existsSync(resolve(currentDir, 'pnpm-workspace.yaml'))) {\n return true;\n }\n\n // Check for npm/yarn workspaces in package.json\n const parentPackageJson = resolve(currentDir, 'package.json');\n if (existsSync(parentPackageJson)) {\n try {\n const parentPkg = JSON.parse(readFileSync(parentPackageJson, 'utf-8'));\n if (parentPkg.workspaces) {\n return true; // Found workspace config\n }\n } catch {\n // Ignore JSON parse errors\n }\n }\n\n // Check for lerna\n if (existsSync(resolve(currentDir, 'lerna.json'))) {\n return true;\n }\n }\n\n return false;\n } catch (error) {\n console.warn(`Error in workspace detection: ${error}`);\n return false; // Default to false on any error\n }\n}\n\nexport function spawn(command: string, args: string[], options: any) {\n return new Promise((resolve, reject) => {\n const childProcess = nodeSpawn(command, args, {\n stdio: 'inherit', // Enable proper stdio handling\n ...options,\n });\n childProcess.on('error', error => {\n reject(error);\n });\n childProcess.on('close', code => {\n if (code === 0) {\n resolve(void 0);\n } else {\n reject(new Error(`Command failed with exit code ${code}`));\n }\n });\n });\n}\n\n// --- Git environment probes ---\nexport async function isGitInstalled(): Promise {\n try {\n await spawnWithOutput('git', ['--version'], {});\n return true;\n } catch {\n return false;\n }\n}\n\nexport async function isInsideGitRepo(cwd: string): Promise {\n try {\n if (!(await isGitInstalled())) return false;\n const { stdout } = await spawnWithOutput('git', ['rev-parse', '--is-inside-work-tree'], { cwd });\n return stdout.trim() === 'true';\n } catch {\n return false;\n }\n}\n\n// Variant of spawn that captures stdout and stderr\nexport function spawnWithOutput(\n command: string,\n args: string[],\n options: SpawnOptions,\n): Promise<{ stdout: string; stderr: string; code: number }> {\n return new Promise((resolvePromise, rejectPromise) => {\n const childProcess = nodeSpawn(command, args, {\n ...options,\n });\n let stdout = '';\n let stderr = '';\n childProcess.on('error', error => {\n rejectPromise(error);\n });\n childProcess.stdout?.on('data', chunk => {\n process.stdout.write(chunk);\n stdout += chunk?.toString?.() ?? String(chunk);\n });\n childProcess.stderr?.on('data', chunk => {\n stderr += chunk?.toString?.() ?? String(chunk);\n process.stderr.write(chunk);\n });\n childProcess.on('close', code => {\n if (code === 0) {\n resolvePromise({ stdout, stderr, code: code ?? 0 });\n } else {\n const err = new Error(stderr || `Command failed: ${command} ${args.join(' ')}`);\n // @ts-expect-error augment\n err.code = code;\n rejectPromise(err);\n }\n });\n });\n}\n\nexport async function spawnSWPM(cwd: string, command: string, packageNames: string[]) {\n // 1) Try local swpm module resolution/execution\n try {\n console.info('Running install command with swpm');\n const swpmPath = createRequire(import.meta.filename).resolve('swpm');\n await spawn(swpmPath, [command, ...packageNames], { cwd });\n return;\n } catch (e) {\n console.warn('Failed to run install command with swpm', e);\n // ignore and try fallbacks\n }\n\n // 2) Fallback to native package manager based on lock files\n try {\n // Detect package manager from lock files\n let packageManager: string;\n\n if (existsSync(resolve(cwd, 'pnpm-lock.yaml'))) {\n packageManager = 'pnpm';\n } else if (existsSync(resolve(cwd, 'yarn.lock'))) {\n packageManager = 'yarn';\n } else {\n packageManager = 'npm';\n }\n\n // Normalize command\n let nativeCommand = command === 'add' ? 'add' : command === 'install' ? 'install' : command;\n\n // Build args with non-interactive flags for install commands\n const args = [nativeCommand];\n if (nativeCommand === 'install') {\n const inWorkspace = isInWorkspaceSubfolder(cwd);\n if (packageManager === 'pnpm') {\n args.push('--force'); // pnpm install --force\n\n // Check if we're in a workspace subfolder\n if (inWorkspace) {\n args.push('--ignore-workspace');\n }\n } else if (packageManager === 'npm') {\n args.push('--yes'); // npm install --yes\n\n // Check if we're in a workspace subfolder\n if (inWorkspace) {\n args.push('--ignore-workspaces');\n }\n }\n }\n args.push(...packageNames);\n\n console.info(`Falling back to ${packageManager} ${args.join(' ')}`);\n await spawn(packageManager, args, { cwd });\n return;\n } catch (e) {\n console.warn(`Failed to run install command with native package manager: ${e}`);\n }\n\n throw new Error(`Failed to run install command with swpm and native package managers`);\n}\n\n// Utility functions\nexport function kindWeight(kind: UnitKind): number {\n const idx = UNIT_KINDS.indexOf(kind as any);\n return idx === -1 ? UNIT_KINDS.length : idx;\n}\n\n// Utility functions to work with Mastra templates\nexport async function fetchMastraTemplates(): Promise<\n Array<{\n slug: string;\n title: string;\n description: string;\n githubUrl: string;\n tags: string[];\n agents: string[];\n workflows: string[];\n tools: string[];\n }>\n> {\n try {\n const response = await fetch('https://mastra.ai/api/templates.json');\n const data = (await response.json()) as Array<{\n slug: string;\n title: string;\n description: string;\n githubUrl: string;\n tags: string[];\n agents: string[];\n workflows: string[];\n tools: string[];\n }>;\n return data;\n } catch (error) {\n throw new Error(`Failed to fetch Mastra templates: ${error instanceof Error ? error.message : String(error)}`);\n }\n}\n\n// Helper to get a specific template by slug\nexport async function getMastraTemplate(slug: string) {\n const templates = await fetchMastraTemplates();\n const template = templates.find(t => t.slug === slug);\n if (!template) {\n throw new Error(`Template \"${slug}\" not found. Available templates: ${templates.map(t => t.slug).join(', ')}`);\n }\n return template;\n}\n\n// Git commit tracking utility\nexport async function logGitState(targetPath: string, label: string): Promise {\n try {\n // Skip if not a git repo\n if (!(await isInsideGitRepo(targetPath))) return;\n const gitStatusResult = await git(targetPath, 'status', '--porcelain');\n const gitLogResult = await git(targetPath, 'log', '--oneline', '-3');\n const gitCountResult = await git(targetPath, 'rev-list', '--count', 'HEAD');\n\n console.info(`📊 Git state ${label}:`);\n console.info('Status:', gitStatusResult.stdout.trim() || 'Clean working directory');\n console.info('Recent commits:', gitLogResult.stdout.trim());\n console.info('Total commits:', gitCountResult.stdout.trim());\n } catch (gitError) {\n console.warn(`Could not get git state ${label}:`, gitError);\n }\n}\n\n// Generic git runner that captures stdout/stderr\nexport async function git(cwd: string, ...args: string[]): Promise<{ stdout: string; stderr: string }> {\n const { stdout, stderr } = await spawnWithOutput('git', args, { cwd });\n return { stdout: stdout ?? '', stderr: stderr ?? '' };\n}\n\n// Common git helpers\nexport async function gitClone(repo: string, destDir: string, cwd?: string) {\n await git(cwd ?? process.cwd(), 'clone', repo, destDir);\n}\n\nexport async function gitCheckoutRef(cwd: string, ref: string) {\n if (!(await isInsideGitRepo(cwd))) return;\n await git(cwd, 'checkout', ref);\n}\n\nexport async function gitRevParse(cwd: string, rev: string): Promise {\n if (!(await isInsideGitRepo(cwd))) return '';\n const { stdout } = await git(cwd, 'rev-parse', rev);\n return stdout.trim();\n}\n\nexport async function gitAddFiles(cwd: string, files: string[]) {\n if (!files || files.length === 0) return;\n if (!(await isInsideGitRepo(cwd))) return;\n await git(cwd, 'add', ...files);\n}\n\nexport async function gitAddAll(cwd: string) {\n if (!(await isInsideGitRepo(cwd))) return;\n await git(cwd, 'add', '.');\n}\n\nexport async function gitHasStagedChanges(cwd: string): Promise {\n if (!(await isInsideGitRepo(cwd))) return false;\n const { stdout } = await git(cwd, 'diff', '--cached', '--name-only');\n return stdout.trim().length > 0;\n}\n\nexport async function gitCommit(\n cwd: string,\n message: string,\n opts?: { allowEmpty?: boolean; skipIfNoStaged?: boolean },\n): Promise {\n try {\n if (!(await isInsideGitRepo(cwd))) return false;\n if (opts?.skipIfNoStaged) {\n const has = await gitHasStagedChanges(cwd);\n if (!has) return false;\n }\n const args = ['commit', '-m', message];\n if (opts?.allowEmpty) args.push('--allow-empty');\n await git(cwd, ...args);\n return true;\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n if (/nothing to commit/i.test(msg) || /no changes added to commit/i.test(msg)) {\n return false;\n }\n throw e;\n }\n}\n\nexport async function gitAddAndCommit(\n cwd: string,\n message: string,\n files?: string[],\n opts?: { allowEmpty?: boolean; skipIfNoStaged?: boolean },\n): Promise {\n try {\n if (!(await isInsideGitRepo(cwd))) return false;\n if (files && files.length > 0) {\n await gitAddFiles(cwd, files);\n } else {\n await gitAddAll(cwd);\n }\n return gitCommit(cwd, message, opts);\n } catch (e) {\n console.error(`Failed to add and commit files: ${e instanceof Error ? e.message : String(e)}`);\n return false;\n }\n}\n\nexport async function gitCheckoutBranch(branchName: string, targetPath: string) {\n try {\n if (!(await isInsideGitRepo(targetPath))) return;\n // Try to create new branch using centralized git runner\n await git(targetPath, 'checkout', '-b', branchName);\n console.info(`Created new branch: ${branchName}`);\n } catch (error) {\n // If branch exists, check if we can switch to it or create a unique name\n const errorStr = error instanceof Error ? error.message : String(error);\n if (errorStr.includes('already exists')) {\n try {\n // Try to switch to existing branch\n await git(targetPath, 'checkout', branchName);\n console.info(`Switched to existing branch: ${branchName}`);\n } catch {\n // If can't switch, create a unique branch name\n const timestamp = Date.now().toString().slice(-6);\n const uniqueBranchName = `${branchName}-${timestamp}`;\n await git(targetPath, 'checkout', '-b', uniqueBranchName);\n console.info(`Created unique branch: ${uniqueBranchName}`);\n }\n } else {\n throw error; // Re-throw if it's a different error\n }\n }\n}\n\n// File conflict resolution utilities (for future use)\nexport async function backupAndReplaceFile(sourceFile: string, targetFile: string): Promise {\n // Create backup of existing file\n const backupFile = `${targetFile}.backup-${Date.now()}`;\n await copyFile(targetFile, backupFile);\n console.info(`📦 Created backup: ${basename(backupFile)}`);\n\n // Replace with template file\n await copyFile(sourceFile, targetFile);\n console.info(`🔄 Replaced file with template version (backup created)`);\n}\n\nexport async function renameAndCopyFile(sourceFile: string, targetFile: string): Promise {\n // Find unique filename\n let counter = 1;\n let uniqueTargetFile = targetFile;\n const baseName = basename(targetFile, extname(targetFile));\n const extension = extname(targetFile);\n const directory = dirname(targetFile);\n\n while (existsSync(uniqueTargetFile)) {\n const uniqueName = `${baseName}.template-${counter}${extension}`;\n uniqueTargetFile = resolve(directory, uniqueName);\n counter++;\n }\n\n await copyFile(sourceFile, uniqueTargetFile);\n console.info(`📝 Copied with unique name: ${basename(uniqueTargetFile)}`);\n return uniqueTargetFile;\n}\n\n// Type guard to check if object is a valid language model (V1, V2, or V3)\nexport const isValidMastraLanguageModel = (model: any): model is MastraLanguageModel | MastraLegacyLanguageModel => {\n return model && typeof model === 'object' && typeof model.modelId === 'string';\n};\n\n// Helper function to resolve target path with smart defaults\nexport const resolveTargetPath = (inputData: any, requestContext: any): string => {\n // If explicitly provided, use it\n if (inputData.targetPath) {\n return inputData.targetPath;\n }\n\n // Check request context\n const contextPath = requestContext.get('targetPath');\n if (contextPath) {\n return contextPath;\n }\n\n // Smart resolution logic from prepareAgentBuilderWorkflowInstallation\n const envRoot = process.env.MASTRA_PROJECT_ROOT?.trim();\n if (envRoot) {\n return envRoot;\n }\n\n const cwd = process.cwd();\n const parent = dirname(cwd);\n const grand = dirname(parent);\n\n // Detect when running under `/.mastra/output` and resolve back to project root\n if (basename(cwd) === 'output' && basename(parent) === '.mastra') {\n return grand;\n }\n\n return cwd;\n};\n\n// Helper function to merge .gitignore files intelligently\nexport const mergeGitignoreFiles = (targetContent: string, templateContent: string, templateSlug: string): string => {\n // Normalize line endings and split into lines\n const targetLines = targetContent.replace(/\\r\\n/g, '\\n').split('\\n');\n const templateLines = templateContent.replace(/\\r\\n/g, '\\n').split('\\n');\n\n // Parse existing target entries (normalize for comparison)\n const existingEntries = new Set();\n\n for (const line of targetLines) {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith('#')) {\n // Normalize path for comparison (remove leading ./, handle different separators)\n const normalized = trimmed.replace(/^\\.\\//, '').replace(/\\\\/g, '/');\n existingEntries.add(normalized);\n }\n }\n\n // Extract new entries from template that don't already exist\n const newEntries: string[] = [];\n for (const line of templateLines) {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith('#')) {\n const normalized = trimmed.replace(/^\\.\\//, '').replace(/\\\\/g, '/');\n if (!existingEntries.has(normalized)) {\n // Check for conflicts (e.g., !file vs file)\n const isNegation = normalized.startsWith('!');\n const basePath = isNegation ? normalized.slice(1) : normalized;\n const hasConflict = isNegation ? existingEntries.has(basePath) : existingEntries.has('!' + basePath);\n\n if (!hasConflict) {\n newEntries.push(trimmed);\n } else {\n console.info(`⚠ Skipping conflicting .gitignore rule: ${trimmed} (conflicts with existing rule)`);\n }\n }\n }\n }\n\n // If no new entries, return original content\n if (newEntries.length === 0) {\n return targetContent;\n }\n\n // Build merged content\n const result: string[] = [...targetLines];\n\n // Add a blank line if the file doesn't end with one\n const lastLine = result[result.length - 1];\n if (result.length > 0 && lastLine && lastLine.trim() !== '') {\n result.push('');\n }\n\n // Add template section header\n result.push(`# Added by template: ${templateSlug}`);\n result.push(...newEntries);\n\n return result.join('\\n');\n};\n\n// Helper function to merge .env files intelligently\nexport const mergeEnvFiles = (\n targetContent: string,\n templateVariables: Record,\n templateSlug: string,\n): string => {\n // Parse existing target .env file\n const targetLines = targetContent.replace(/\\r\\n/g, '\\n').split('\\n');\n const existingVars = new Set();\n\n // Extract existing variable names (handle comments and empty lines)\n for (const line of targetLines) {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith('#')) {\n const equalIndex = trimmed.indexOf('=');\n if (equalIndex > 0) {\n const varName = trimmed.substring(0, equalIndex).trim();\n existingVars.add(varName);\n }\n }\n }\n\n // Filter out variables that already exist\n const newVars: Array<{ key: string; value: string }> = [];\n for (const [key, value] of Object.entries(templateVariables)) {\n if (!existingVars.has(key)) {\n newVars.push({ key, value });\n } else {\n console.info(`⚠ Skipping existing environment variable: ${key} (already exists in .env)`);\n }\n }\n\n // If no new variables, return original content\n if (newVars.length === 0) {\n return targetContent;\n }\n\n // Build merged content\n const result: string[] = [...targetLines];\n\n // Add a blank line if the file doesn't end with one\n const lastLine = result[result.length - 1];\n if (result.length > 0 && lastLine && lastLine.trim() !== '') {\n result.push('');\n }\n\n // Add template section header\n result.push(`# Added by template: ${templateSlug}`);\n\n // Add new environment variables\n for (const { key, value } of newVars) {\n result.push(`${key}=${value}`);\n }\n\n return result.join('\\n');\n};\n\n// Helper function to detect AI SDK version from package.json\nexport const detectAISDKVersion = async (projectPath: string): Promise<'v1' | 'v2'> => {\n try {\n const packageJsonPath = join(projectPath, 'package.json');\n\n if (!existsSync(packageJsonPath)) {\n console.info('No package.json found, defaulting to v2');\n return 'v2';\n }\n\n const packageContent = await readFile(packageJsonPath, 'utf-8');\n const packageJson = JSON.parse(packageContent);\n\n const allDeps = {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n ...packageJson.peerDependencies,\n };\n\n // Check individual provider packages for version hints\n const providerPackages = ['@ai-sdk/openai', '@ai-sdk/anthropic', '@ai-sdk/google', '@ai-sdk/groq', '@ai-sdk/xai'];\n for (const pkg of providerPackages) {\n const version = allDeps[pkg];\n if (version) {\n const versionMatch = version.match(/(\\d+)/);\n if (versionMatch) {\n const majorVersion = parseInt(versionMatch[1]);\n if (majorVersion >= 2) {\n console.info(`Detected ${pkg} v${majorVersion} -> using v2 specification`);\n return 'v2';\n } else {\n console.info(`Detected ${pkg} v${majorVersion} -> using v1 specification`);\n return 'v1';\n }\n }\n }\n }\n\n console.info('No AI SDK version detected, defaulting to v2');\n return 'v2';\n } catch (error) {\n console.warn(`Failed to detect AI SDK version: ${error instanceof Error ? error.message : String(error)}`);\n return 'v2';\n }\n};\n\n// Helper function to create model instance based on provider and version\nexport const createModelInstance = async (\n provider: string,\n modelId: string,\n version: 'v1' | 'v2' = 'v2',\n): Promise => {\n try {\n // Dynamic imports to avoid issues if packages aren't available\n const providerMap = {\n v1: {\n openai: async () => {\n const { openai } = await import('@ai-sdk/openai');\n return openai(modelId);\n },\n anthropic: async () => {\n const { anthropic } = await import('@ai-sdk/anthropic');\n return anthropic(modelId);\n },\n groq: async () => {\n const { groq } = await import('@ai-sdk/groq');\n return groq(modelId);\n },\n xai: async () => {\n const { xai } = await import('@ai-sdk/xai');\n return xai(modelId);\n },\n google: async () => {\n const { google } = await import('@ai-sdk/google');\n return google(modelId);\n },\n },\n };\n\n const providerFn =\n version === `v1`\n ? providerMap[version][provider as keyof (typeof providerMap)[typeof version]]\n : () => new ModelRouterLanguageModel(`${provider}/${modelId}`);\n\n if (!providerFn) {\n console.error(`Unsupported provider: ${provider}`);\n return null;\n }\n\n const modelInstance = await providerFn();\n console.info(`Created ${provider} model instance (${version}): ${modelId}`);\n return modelInstance;\n } catch (error) {\n console.error(`Failed to create model instance: ${error instanceof Error ? error.message : String(error)}`);\n return null;\n }\n};\n\n// Helper function to resolve model from request context with AI SDK version detection\nexport const resolveModel = async ({\n requestContext,\n defaultModel = 'openai/gpt-4.1',\n projectPath,\n}: {\n requestContext: RequestContext;\n defaultModel?: MastraLanguageModel | MastraLegacyLanguageModel | string;\n projectPath?: string;\n}): Promise => {\n // First try to get model from request context\n const modelFromContext = requestContext.get('model');\n if (modelFromContext) {\n console.info('Using model from request context');\n // Type check to ensure it's a MastraLanguageModel\n if (isValidMastraLanguageModel(modelFromContext)) {\n return modelFromContext;\n }\n throw new Error(\n 'Invalid model provided. Model must be a MastraLanguageModel instance (e.g., openai(\"gpt-4\"), anthropic(\"claude-3-5-sonnet\"), etc.)',\n );\n }\n\n // Check for selected model info in request context\n const selectedModel = requestContext.get('selectedModel') as { provider: string; modelId: string } | undefined;\n if (selectedModel?.provider && selectedModel?.modelId && projectPath) {\n console.info(`Resolving selected model: ${selectedModel.provider}/${selectedModel.modelId}`);\n\n // Detect AI SDK version from project\n const version = await detectAISDKVersion(projectPath);\n\n // Create model instance with detected version\n const modelInstance = await createModelInstance(selectedModel.provider, selectedModel.modelId, version);\n if (modelInstance) {\n // Store resolved model back in context for other steps to use\n requestContext.set('model', modelInstance);\n return modelInstance;\n }\n }\n\n console.info('Using default model');\n return typeof defaultModel === `string` ? new ModelRouterLanguageModel(defaultModel) : defaultModel;\n};\n","import { spawn as nodeSpawn } from 'node:child_process';\nimport { readFile, writeFile, mkdir, stat, readdir } from 'node:fs/promises';\nimport { join, dirname, relative, isAbsolute, resolve } from 'node:path';\nimport { createTool } from '@mastra/core/tools';\nimport ignore from 'ignore';\nimport { z } from 'zod';\nimport { exec, execFile, spawnSWPM, spawnWithOutput } from './utils';\n\ntype TaskManagerInputType = {\n action: 'create' | 'update' | 'list' | 'complete' | 'remove';\n tasks?: Array<{\n id: string;\n content?: string;\n status: 'pending' | 'in_progress' | 'completed' | 'blocked';\n priority: 'high' | 'medium' | 'low';\n dependencies?: string[];\n notes?: string;\n }>;\n taskId?: string;\n};\n\nexport class AgentBuilderDefaults {\n static DEFAULT_INSTRUCTIONS = (\n projectPath?: string,\n ) => `You are a Mastra Expert Agent, specialized in building production-ready AI applications using the Mastra framework. You excel at creating agents, tools, workflows, and complete applications with real, working implementations.\n\n## Core Identity & Capabilities\n\n**Primary Role:** Transform natural language requirements into working Mastra applications\n**Key Strength:** Deep knowledge of Mastra patterns, conventions, and best practices\n**Output Quality:** Production-ready code that follows Mastra ecosystem standards\n\n## Workflow: The MASTRA Method\n\nFollow this sequence for every coding task:\n\nIF NO PROJECT EXISTS, USE THE MANAGEPROJECT TOOL TO CREATE A NEW PROJECT\n\nDO NOT INCLUDE TODOS IN THE CODE, UNLESS SPECIFICALLY ASKED TO DO SO, CREATE REAL WORLD CODE\n\n### 1. 🔍 **UNDERSTAND** (Information Gathering)\n- **Explore Mastra Docs**: Use docs tools to understand relevant Mastra patterns and APIs\n- **Analyze Project**: Use file exploration to understand existing codebase structure\n- **Web Research**: Search for packages, examples, or solutions when docs are insufficient\n- **Clarify Requirements**: Ask targeted questions only when critical information is missing\n\n### 2. 📋 **PLAN** (Strategy & Design)\n- **Architecture**: Design using Mastra conventions (agents, tools, workflows, memory)\n- **Dependencies**: Identify required packages and Mastra components\n- **Integration**: Plan how to integrate with existing project structure\n- **Validation**: Define how to test and verify the implementation\n\n### 3. 🛠️ **BUILD** (Implementation)\n- **Install First**: Use \\`manageProject\\` tool to install required packages\n- **Follow Patterns**: Implement using established Mastra conventions\n- **Real Code Only**: Build actual working functionality, never mock implementations\n- **Environment Setup**: Create proper .env configuration and documentation\n\n### 4. ✅ **VALIDATE** (Quality Assurance)\n- **Code Validation**: Run \\`validateCode\\` with types and lint checks\n- **Testing**: Execute tests if available\n- **Server Testing**: Use \\`manageServer\\` and \\`httpRequest\\` for API validation\n- **Fix Issues**: Address all errors before completion\n\n## Mastra-Specific Guidelines\n\n### Framework Knowledge\n- **Agents**: Use \\`@mastra/core/agent\\` with proper configuration\n- **Tools**: Create tools with \\`@mastra/core/tools\\` and proper schemas\n- **Memory**: Implement memory with \\`@mastra/memory\\` and appropriate processors\n- **Workflows**: Build workflows with \\`@mastra/core/workflows\\`\n- **Integrations**: Leverage Mastra's extensive integration ecosystem\n\n### Code Standards\n- **TypeScript First**: All code must be properly typed\n- **Zod Schemas**: Use Zod for all data validation\n- **Environment Variables**: Proper .env configuration with examples\n- **Error Handling**: Comprehensive error handling with meaningful messages\n- **Security**: Never expose credentials or sensitive data\n\n### Project Structure\n- Follow Mastra project conventions (\\`src/mastra/\\`, config files)\n- Use proper file organization (agents, tools, workflows in separate directories)\n- Maintain consistent naming conventions\n- Include proper exports and imports\n\n## Communication Style\n\n**Conciseness**: Keep responses focused and actionable\n**Clarity**: Explain complex concepts in simple terms\n**Directness**: State what you're doing and why\n**No Fluff**: Avoid unnecessary explanations or apologies\n\n### Response Format\n1. **Brief Status**: One line stating what you're doing\n2. **Tool Usage**: Execute necessary tools\n3. **Results Summary**: Concise summary of what was accomplished\n4. **Next Steps**: Clear indication of completion or next actions\n\n## Tool Usage Strategy\n\n### File Operations\n- **Project-Relative Paths**: All file paths are resolved relative to the project directory (unless absolute paths are used)\n- **Read First**: Always read files before editing to understand context\n- **Precise Edits**: Use exact text matching for search/replace operations\n- **Batch Operations**: Group related file operations when possible\n\n### Project Management\n- **manageProject**: Use for package installation, project creation, dependency management\n- **validateCode**: Always run after code changes to ensure quality\n- **manageServer**: Use for testing Mastra server functionality\n- **httpRequest**: Test API endpoints and integrations\n\n### Information Gathering\n- **Mastra Docs**: Primary source for Mastra-specific information\n- **Web Search**: Secondary source for packages and external solutions\n- **File Exploration**: Understand existing project structure and patterns\n\n## Error Handling & Recovery\n\n### Validation Failures\n- Fix TypeScript errors immediately\n- Address linting issues systematically\n- Re-validate until clean\n\n### Build Issues\n- Check dependencies and versions\n- Verify Mastra configuration\n- Test in isolation when needed\n\n### Integration Problems\n- Verify API keys and environment setup\n- Test connections independently\n- Debug with logging and error messages\n\n## Security & Best Practices\n\n**Never:**\n- Hard-code API keys or secrets\n- Generate mock or placeholder implementations\n- Skip error handling\n- Ignore TypeScript errors\n- Create insecure code patterns\n- ask for file paths, you should be able to use the provided tools to explore the file system\n\n**Always:**\n- Use environment variables for configuration\n- Implement proper input validation\n- Follow security best practices\n- Create complete, working implementations\n- Test thoroughly before completion\n\n## Output Requirements\n\n### Code Quality\n- ✅ TypeScript compilation passes\n- ✅ ESLint validation passes\n- ✅ Proper error handling implemented\n- ✅ Environment variables configured\n- ✅ Tests included when appropriate\n\n### Documentation\n- ✅ Clear setup instructions\n- ✅ Environment variable documentation\n- ✅ Usage examples provided\n- ✅ API documentation for custom tools\n\n### Integration\n- ✅ Follows Mastra conventions\n- ✅ Integrates with existing project\n- ✅ Proper imports and exports\n- ✅ Compatible with Mastra ecosystem\n\n## Project Context\n\n**Working Directory**: ${projectPath}\n**Focus**: Mastra framework applications\n**Goal**: Production-ready implementations\n\nRemember: You are building real applications, not prototypes. Every implementation should be complete, secure, and ready for production use.\n\n## Enhanced Tool Set\n\nYou have access to an enhanced set of tools based on production coding agent patterns:\n\n### Task Management\n- **taskManager**: Create and track multi-step coding tasks with states (pending, in_progress, completed, blocked). Use this for complex projects that require systematic progress tracking.\n\n### Code Discovery & Analysis\n- **codeAnalyzer**: Analyze codebase structure, discover definitions (functions, classes, interfaces), map dependencies, and understand architectural patterns.\n- **smartSearch**: Intelligent search with context awareness, pattern matching, and relevance scoring.\n\n### Advanced File Operations\n- **readFile**: Read files with optional line ranges, encoding support, metadata\n- **writeFile**: Write files with directory creation\n- **listDirectory**: Directory listing with filtering, recursion, metadata\n- **multiEdit**: Perform multiple search-replace operations across files atomically with backup creation\n- **executeCommand**: Execute shell commands with proper error handling and working directory support\n\n**Important**: All file paths are resolved relative to the project directory unless absolute paths are provided.\n\n### Communication & Workflow\n- **attemptCompletion**: Signal task completion with validation status and confidence metrics.\n\n### Guidelines for Enhanced Tools:\n\n1. **Use taskManager proactively** for any task requiring 3+ steps or complex coordination\n2. **Start with codeAnalyzer** when working with unfamiliar codebases to understand structure\n3. **Use smartSearch** for intelligent pattern discovery across the codebase\n4. **Apply multiEdit** for systematic refactoring across multiple files\n5. **Ask for clarification** when requirements are ambiguous rather than making assumptions\n6. **Signal completion** with comprehensive summaries and validation status\n\nUse the following basic examples to guide your implementation.\n\n\n### Weather Agent\n\\`\\`\\`\n// ./src/agents/weather-agent.ts\nimport { openai } from '@ai-sdk/openai';\nimport { Agent } from '@mastra/core/agent';\nimport { Memory } from '@mastra/memory';\nimport { LibSQLStore } from '@mastra/libsql';\nimport { weatherTool } from '../tools/weather-tool';\n\nexport const weatherAgent = new Agent({\n id: 'weather-agent',\n name: 'Weather Agent',\n instructions: \\${instructions},\n model: openai('gpt-4o-mini'),\n tools: { weatherTool },\n memory: new Memory({\n storage: new LibSQLStore({\n id: 'mastra-memory-storage',\n url: 'file:../mastra.db', // ask user what database to use, use this as the default\n }),\n }),\n});\n\\`\\`\\`\n\n### Weather Tool\n\\`\\`\\`\n// ./src/tools/weather-tool.ts\nimport { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\nimport { getWeather } from '../tools/weather-tool';\n\nexport const weatherTool = createTool({\n id: 'get-weather',\n description: 'Get current weather for a location',\n inputSchema: z.object({\n location: z.string().describe('City name'),\n }),\n outputSchema: z.object({\n temperature: z.number(),\n feelsLike: z.number(),\n humidity: z.number(),\n windSpeed: z.number(),\n windGust: z.number(),\n conditions: z.string(),\n location: z.string(),\n }),\n execute: async (inputData) => {\n return await getWeather(inputData.location);\n },\n});\n\\`\\`\\`\n\n### Weather Workflow\n\\`\\`\\`\n// ./src/workflows/weather-workflow.ts\nimport { createStep, createWorkflow } from '@mastra/core/workflows';\nimport { z } from 'zod';\n\nconst fetchWeather = createStep({\n id: 'fetch-weather',\n description: 'Fetches weather forecast for a given city',\n inputSchema: z.object({\n city: z.string().describe('The city to get the weather for'),\n }),\n outputSchema: forecastSchema,\n execute: async (inputData) => {\n if (!inputData) {\n throw new Error('Input data not found');\n }\n\n const geocodingUrl = \\`https://geocoding-api.open-meteo.com/v1/search?name=\\${encodeURIComponent(inputData.city)}&count=1\\`;\n const geocodingResponse = await fetch(geocodingUrl);\n const geocodingData = (await geocodingResponse.json()) as {\n results: { latitude: number; longitude: number; name: string }[];\n };\n\n if (!geocodingData.results?.[0]) {\n throw new Error(\\`Location '\\${inputData.city}' not found\\`);\n }\n\n const { latitude, longitude, name } = geocodingData.results[0];\n\n const weatherUrl = \\`https://api.open-meteo.com/v1/forecast?latitude=\\${latitude}&longitude=\\${longitude}¤t=precipitation,weathercode&timezone=auto,&hourly=precipitation_probability,temperature_2m\\`\n const response = await fetch(weatherUrl);\n const data = (await response.json()) as {\n current: {\n time: string;\n precipitation: number;\n weathercode: number;\n };\n hourly: {\n precipitation_probability: number[];\n temperature_2m: number[];\n };\n };\n\n const forecast = {\n date: new Date().toISOString(),\n maxTemp: Math.max(...data.hourly.temperature_2m),\n minTemp: Math.min(...data.hourly.temperature_2m),\n condition: getWeatherCondition(data.current.weathercode),\n precipitationChance: data.hourly.precipitation_probability.reduce(\n (acc, curr) => Math.max(acc, curr),\n 0,\n ),\n location: name,\n };\n\n return forecast;\n },\n});\n\nconst planActivities = createStep({\n id: 'plan-activities',\n description: 'Suggests activities based on weather conditions',\n inputSchema: forecastSchema,\n outputSchema: z.object({\n activities: z.string(),\n }),\n execute: async (inputData, context) => {\n const mastra = context?.mastra;\n const forecast = inputData;\n\n if (!forecast) {\n throw new Error('Forecast data not found');\n }\n\n const agent = mastra?.getAgent('weatherAgent');\n if (!agent) {\n throw new Error('Weather agent not found');\n }\n\n const prompt = \\${weatherWorkflowPrompt}\n\n const response = await agent.stream([\n {\n role: 'user',\n content: prompt,\n },\n ]);\n\n let activitiesText = '';\n\n for await (const chunk of response.textStream) {\n process.stdout.write(chunk);\n activitiesText += chunk;\n }\n\n return {\n activities: activitiesText,\n };\n },\n});\n\nconst weatherWorkflow = createWorkflow({\n id: 'weather-workflow',\n inputSchema: z.object({\n city: z.string().describe('The city to get the weather for'),\n }),\n outputSchema: z.object({\n activities: z.string(),\n }),\n})\n .then(fetchWeather)\n .then(planActivities);\n\nweatherWorkflow.commit();\n\\`\\`\\`\nexport { weatherWorkflow };\n\\`\\`\\`\n\n### Mastra instance\n\\`\\`\\`\n// ./src/mastra.ts\n\nimport { Mastra } from '@mastra/core/mastra';\nimport { PinoLogger } from '@mastra/loggers';\nimport { LibSQLStore } from '@mastra/libsql';\nimport { weatherWorkflow } from './workflows/weather-workflow';\nimport { weatherAgent } from './agents/weather-agent';\n\nexport const mastra = new Mastra({\n workflows: { weatherWorkflow },\n agents: { weatherAgent },\n storage: new LibSQLStore({\n id: 'mastra-storage',\n // stores observability, evals, ... into memory storage, if it needs to persist, change to file:../mastra.db\n url: \":memory:\",\n }),\n logger: new PinoLogger({\n name: 'Mastra',\n level: 'info',\n }),\n});\n\\`\\`\\`\n\n`;\n\n static DEFAULT_MEMORY_CONFIG = {\n lastMessages: 20,\n };\n\n static DEFAULT_FOLDER_STRUCTURE = {\n agent: 'src/mastra/agents',\n workflow: 'src/mastra/workflows',\n tool: 'src/mastra/tools',\n 'mcp-server': 'src/mastra/mcp',\n network: 'src/mastra/networks',\n };\n\n static DEFAULT_TOOLS = async (projectPath: string) => {\n return {\n readFile: createTool({\n id: 'read-file',\n description: 'Read contents of a file with optional line range selection.',\n inputSchema: z.object({\n filePath: z.string().describe('Path to the file to read'),\n startLine: z.number().optional().describe('Starting line number (1-indexed)'),\n endLine: z.number().optional().describe('Ending line number (1-indexed, inclusive)'),\n encoding: z.string().default('utf-8').describe('File encoding'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n content: z.string().optional(),\n lines: z.array(z.string()).optional(),\n metadata: z\n .object({\n size: z.number(),\n totalLines: z.number(),\n encoding: z.string(),\n lastModified: z.string(),\n })\n .optional(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.readFile({ ...inputData, projectPath });\n },\n }),\n\n writeFile: createTool({\n id: 'write-file',\n description: 'Write content to a file, with options for creating directories.',\n inputSchema: z.object({\n filePath: z.string().describe('Path to the file to write'),\n content: z.string().describe('Content to write to the file'),\n createDirs: z.boolean().default(true).describe(\"Create parent directories if they don't exist\"),\n encoding: z.string().default('utf-8').describe('File encoding'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n filePath: z.string(),\n bytesWritten: z.number().optional(),\n message: z.string(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.writeFile({ ...inputData, projectPath });\n },\n }),\n\n listDirectory: createTool({\n id: 'list-directory',\n description: 'List contents of a directory with filtering and metadata options.',\n inputSchema: z.object({\n path: z.string().describe('Directory path to list'),\n recursive: z.boolean().default(false).describe('List subdirectories recursively'),\n includeHidden: z.boolean().default(false).describe('Include hidden files and directories'),\n pattern: z.string().default('*').describe('Glob pattern to filter files'),\n maxDepth: z.number().default(10).describe('Maximum recursion depth'),\n includeMetadata: z.boolean().default(true).describe('Include file metadata'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n items: z.array(\n z.object({\n name: z.string(),\n path: z.string(),\n type: z.enum(['file', 'directory', 'symlink']),\n size: z.number().optional(),\n lastModified: z.string().optional(),\n permissions: z.string().optional(),\n }),\n ),\n totalItems: z.number(),\n path: z.string(),\n message: z.string(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.listDirectory({ ...inputData, projectPath });\n },\n }),\n\n executeCommand: createTool({\n id: 'execute-command',\n description: 'Execute shell commands with proper error handling and output capture.',\n inputSchema: z.object({\n command: z.string().describe('Shell command to execute'),\n workingDirectory: z.string().optional().describe('Working directory for command execution'),\n timeout: z.number().default(30000).describe('Timeout in milliseconds'),\n captureOutput: z.boolean().default(true).describe('Capture command output'),\n shell: z.string().optional().describe('Shell to use (defaults to system shell)'),\n env: z.record(z.string(), z.string()).optional().describe('Environment variables'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n exitCode: z.number().optional(),\n stdout: z.string().optional(),\n stderr: z.string().optional(),\n command: z.string(),\n workingDirectory: z.string().optional(),\n executionTime: z.number().optional(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.executeCommand({\n ...inputData,\n workingDirectory: inputData.workingDirectory || projectPath,\n env: inputData.env as Record | undefined,\n });\n },\n }),\n // Enhanced Task Management (Critical for complex coding tasks)\n taskManager: createTool({\n id: 'task-manager',\n description:\n 'Create and manage structured task lists for coding sessions. Use this for complex multi-step tasks to track progress and ensure thoroughness.',\n inputSchema: z.object({\n action: z.enum(['create', 'update', 'list', 'complete', 'remove']).describe('Task management action'),\n tasks: z\n .array(\n z.object({\n id: z.string().describe('Unique task identifier'),\n content: z.string().describe('Task description, optional if just updating the status').optional(),\n status: z.enum(['pending', 'in_progress', 'completed', 'blocked']).describe('Task status'),\n priority: z.enum(['high', 'medium', 'low']).default('medium').describe('Task priority'),\n dependencies: z.array(z.string()).optional().describe('IDs of tasks this depends on'),\n notes: z.string().optional().describe('Additional notes or context'),\n }),\n )\n .optional()\n .describe('Tasks to create or update'),\n taskId: z.string().optional().describe('Specific task ID for single task operations'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n tasks: z.array(\n z.object({\n id: z.string(),\n content: z.string(),\n status: z.string(),\n priority: z.string(),\n dependencies: z.array(z.string()).optional(),\n notes: z.string().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n ),\n message: z.string(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.manageTaskList(inputData as TaskManagerInputType);\n },\n }),\n\n // Advanced File Operations\n multiEdit: createTool({\n id: 'multi-edit',\n description: 'Perform multiple search-replace operations on one or more files in a single atomic operation.',\n inputSchema: z.object({\n operations: z\n .array(\n z.object({\n filePath: z.string().describe('Path to the file to edit'),\n edits: z\n .array(\n z.object({\n oldString: z.string().describe('Exact text to replace'),\n newString: z.string().describe('Replacement text'),\n replaceAll: z.boolean().default(false).describe('Replace all occurrences'),\n }),\n )\n .describe('List of edit operations for this file'),\n }),\n )\n .describe('File edit operations to perform'),\n createBackup: z.boolean().default(false).describe('Create backup files before editing'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n results: z.array(\n z.object({\n filePath: z.string(),\n editsApplied: z.number(),\n errors: z.array(z.string()),\n backup: z.string().optional(),\n }),\n ),\n message: z.string(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.performMultiEdit({ ...inputData, projectPath });\n },\n }),\n\n replaceLines: createTool({\n id: 'replace-lines',\n description:\n 'Replace specific line ranges in files with new content. IMPORTANT: This tool replaces ENTIRE lines, not partial content within lines. Lines are 1-indexed.',\n inputSchema: z.object({\n filePath: z.string().describe('Path to the file to edit'),\n startLine: z\n .number()\n .describe('Starting line number to replace (1-indexed, inclusive). Count from the first line = 1'),\n endLine: z\n .number()\n .describe(\n 'Ending line number to replace (1-indexed, inclusive). To replace single line, use same number as startLine',\n ),\n newContent: z\n .string()\n .describe(\n 'New content to replace the lines with. Use empty string \"\" to delete lines completely. For multiline content, include \\\\n characters',\n ),\n createBackup: z.boolean().default(false).describe('Create backup file before editing'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n message: z.string(),\n linesReplaced: z.number().optional(),\n backup: z.string().optional(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.replaceLines({ ...inputData, projectPath });\n },\n }),\n\n // File diagnostics tool to help debug line replacement issues\n showFileLines: createTool({\n id: 'show-file-lines',\n description:\n 'Show specific lines from a file with line numbers. Useful for debugging before using replaceLines.',\n inputSchema: z.object({\n filePath: z.string().describe('Path to the file to examine'),\n startLine: z\n .number()\n .optional()\n .describe('Starting line number to show (1-indexed). If not provided, shows all lines'),\n endLine: z\n .number()\n .optional()\n .describe(\n 'Ending line number to show (1-indexed, inclusive). If not provided but startLine is, shows only that line',\n ),\n context: z.number().default(2).describe('Number of context lines to show before and after the range'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n lines: z.array(\n z.object({\n lineNumber: z.number(),\n content: z.string(),\n isTarget: z.boolean().describe('Whether this line is in the target range'),\n }),\n ),\n totalLines: z.number(),\n message: z.string(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.showFileLines({ ...inputData, projectPath });\n },\n }),\n\n // Enhanced Pattern Search\n smartSearch: createTool({\n id: 'smart-search',\n description: 'Intelligent search across codebase with context awareness and pattern matching.',\n inputSchema: z.object({\n query: z.string().describe('Search query or pattern'),\n type: z.enum(['text', 'regex', 'fuzzy', 'semantic']).default('text').describe('Type of search to perform'),\n scope: z\n .object({\n paths: z.array(z.string()).optional().describe('Specific paths to search'),\n fileTypes: z.array(z.string()).optional().describe('File extensions to include'),\n excludePaths: z.array(z.string()).optional().describe('Paths to exclude'),\n maxResults: z.number().default(50).describe('Maximum number of results'),\n })\n .optional(),\n context: z\n .object({\n beforeLines: z.number().default(2).describe('Lines of context before match'),\n afterLines: z.number().default(2).describe('Lines of context after match'),\n includeDefinitions: z.boolean().default(false).describe('Include function/class definitions'),\n })\n .optional(),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n matches: z.array(\n z.object({\n file: z.string(),\n line: z.number(),\n column: z.number().optional(),\n match: z.string(),\n context: z.object({\n before: z.array(z.string()),\n after: z.array(z.string()),\n }),\n relevance: z.number().optional(),\n }),\n ),\n summary: z.object({\n totalMatches: z.number(),\n filesSearched: z.number(),\n patterns: z.array(z.string()),\n }),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.performSmartSearch(inputData, projectPath);\n },\n }),\n\n validateCode: createTool({\n id: 'validate-code',\n description:\n 'Validates code using a fast hybrid approach: syntax → semantic → lint. RECOMMENDED: Always provide specific files for optimal performance and accuracy.',\n inputSchema: z.object({\n projectPath: z.string().optional().describe('Path to the project to validate (defaults to current project)'),\n validationType: z\n .array(z.enum(['types', 'lint', 'schemas', 'tests', 'build']))\n .describe('Types of validation to perform. Recommended: [\"types\", \"lint\"] for code quality'),\n files: z\n .array(z.string())\n .optional()\n .describe(\n 'RECOMMENDED: Specific files to validate (e.g., files you created/modified). Uses hybrid validation: fast syntax check → semantic types → ESLint. Without files, falls back to slower CLI validation.',\n ),\n }),\n outputSchema: z.object({\n valid: z.boolean(),\n errors: z.array(\n z.object({\n type: z.enum(['typescript', 'eslint', 'schema', 'test', 'build']),\n severity: z.enum(['error', 'warning', 'info']),\n message: z.string(),\n file: z.string().optional(),\n line: z.number().optional(),\n column: z.number().optional(),\n code: z.string().optional(),\n }),\n ),\n summary: z.object({\n totalErrors: z.number(),\n totalWarnings: z.number(),\n validationsPassed: z.array(z.string()),\n validationsFailed: z.array(z.string()),\n }),\n }),\n execute: async inputData => {\n const { projectPath: validationProjectPath, validationType, files } = inputData;\n const targetPath = validationProjectPath || projectPath;\n\n // BEST PRACTICE: Always provide files array for optimal performance\n // Hybrid approach: syntax (1ms) → semantic (100ms) → ESLint (50ms)\n // Without files: falls back to CLI validation (2000ms+)\n\n return await AgentBuilderDefaults.validateCode({\n projectPath: targetPath,\n validationType,\n files,\n });\n },\n }),\n\n // Web Search (replaces MCP web search)\n webSearch: createTool({\n id: 'web-search',\n description: 'Search the web for current information and return structured results.',\n inputSchema: z.object({\n query: z.string().describe('Search query'),\n maxResults: z.number().default(10).describe('Maximum number of results to return'),\n region: z.string().default('us').describe('Search region/country code'),\n language: z.string().default('en').describe('Search language'),\n includeImages: z.boolean().default(false).describe('Include image results'),\n dateRange: z.enum(['day', 'week', 'month', 'year', 'all']).default('all').describe('Date range filter'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n query: z.string(),\n results: z.array(\n z.object({\n title: z.string(),\n url: z.string(),\n snippet: z.string(),\n domain: z.string(),\n publishDate: z.string().optional(),\n relevanceScore: z.number().optional(),\n }),\n ),\n totalResults: z.number(),\n searchTime: z.number(),\n suggestions: z.array(z.string()).optional(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.webSearch(inputData);\n },\n }),\n\n // Task Completion Signaling\n attemptCompletion: createTool({\n id: 'attempt-completion',\n description: 'Signal that you believe the requested task has been completed and provide a summary.',\n inputSchema: z.object({\n summary: z.string().describe('Summary of what was accomplished'),\n changes: z\n .array(\n z.object({\n type: z.enum(['file_created', 'file_modified', 'file_deleted', 'command_executed', 'dependency_added']),\n description: z.string(),\n path: z.string().optional(),\n }),\n )\n .describe('List of changes made'),\n validation: z\n .object({\n testsRun: z.boolean().default(false),\n buildsSuccessfully: z.boolean().default(false),\n manualTestingRequired: z.boolean().default(false),\n })\n .describe('Validation status'),\n nextSteps: z.array(z.string()).optional().describe('Suggested next steps or follow-up actions'),\n }),\n outputSchema: z.object({\n completionId: z.string(),\n status: z.enum(['completed', 'needs_review', 'needs_testing']),\n summary: z.string(),\n confidence: z.number().min(0).max(100),\n }),\n execute: async inputData => {\n return await AgentBuilderDefaults.signalCompletion(inputData);\n },\n }),\n\n manageProject: createTool({\n id: 'manage-project',\n description:\n 'Handles project management including creating project structures, managing dependencies, and package operations.',\n inputSchema: z.object({\n action: z.enum(['create', 'install', 'upgrade']).describe('The action to perform'),\n features: z\n .array(z.string())\n .optional()\n .describe('Mastra features to include (e.g., [\"agents\", \"memory\", \"workflows\"])'),\n packages: z\n .array(\n z.object({\n name: z.string(),\n version: z.string().optional(),\n }),\n )\n .optional()\n .describe('Packages to install/upgrade'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n installed: z.array(z.string()).optional(),\n upgraded: z.array(z.string()).optional(),\n warnings: z.array(z.string()).optional(),\n message: z.string().optional(),\n details: z.string().optional(),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n const { action, features, packages } = inputData;\n try {\n switch (action) {\n case 'create':\n return await AgentBuilderDefaults.createMastraProject({\n projectName: projectPath,\n features,\n });\n case 'install':\n if (!packages?.length) {\n return {\n success: false,\n message: 'Packages array is required for install action',\n };\n }\n return await AgentBuilderDefaults.installPackages({\n packages,\n projectPath,\n });\n case 'upgrade':\n if (!packages?.length) {\n return {\n success: false,\n message: 'Packages array is required for upgrade action',\n };\n }\n return await AgentBuilderDefaults.upgradePackages({\n packages,\n projectPath,\n });\n default:\n return {\n success: false,\n message: `Unknown action: ${action}`,\n };\n }\n } catch (error) {\n return {\n success: false,\n message: `Error executing ${action}: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n },\n }),\n manageServer: createTool({\n id: 'manage-server',\n description:\n 'Manages the Mastra server - start, stop, restart, and check status, use the terminal tool to make curl requests to the server. There is an openapi spec for the server at http://localhost:{port}/openapi.json',\n inputSchema: z.object({\n action: z.enum(['start', 'stop', 'restart', 'status']).describe('Server management action'),\n port: z.number().optional().default(4200).describe('Port to run the server on'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n status: z.enum(['running', 'stopped', 'starting', 'stopping', 'unknown']),\n pid: z.number().optional(),\n port: z.number().optional(),\n url: z.string().optional(),\n message: z.string().optional(),\n stdout: z.array(z.string()).optional().describe('Server output lines captured during startup'),\n errorMessage: z.string().optional(),\n }),\n execute: async inputData => {\n const { action, port } = inputData;\n try {\n switch (action) {\n case 'start':\n return await AgentBuilderDefaults.startMastraServer({\n port,\n projectPath,\n });\n case 'stop':\n return await AgentBuilderDefaults.stopMastraServer({\n port,\n projectPath,\n });\n case 'restart':\n const stopResult = await AgentBuilderDefaults.stopMastraServer({\n port,\n projectPath,\n });\n if (!stopResult.success) {\n return {\n success: false,\n status: 'unknown' as const,\n message: `Failed to restart: could not stop server on port ${port}`,\n errorMessage: stopResult.errorMessage || 'Unknown stop error',\n };\n }\n await new Promise(resolve => setTimeout(resolve, 500));\n const startResult = await AgentBuilderDefaults.startMastraServer({\n port,\n projectPath,\n });\n if (!startResult.success) {\n return {\n success: false,\n status: 'stopped' as const,\n message: `Failed to restart: server stopped successfully but failed to start on port ${port}`,\n errorMessage: startResult.errorMessage || 'Unknown start error',\n };\n }\n return {\n ...startResult,\n message: `Mastra server restarted successfully on port ${port}`,\n };\n case 'status':\n return await AgentBuilderDefaults.checkMastraServerStatus({\n port,\n projectPath,\n });\n default:\n return {\n success: false,\n status: 'unknown' as const,\n message: `Unknown action: ${action}`,\n };\n }\n } catch (error) {\n return {\n success: false,\n status: 'unknown' as const,\n message: `Error managing server: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n },\n }),\n httpRequest: createTool({\n id: 'http-request',\n description: 'Makes HTTP requests to the Mastra server or external APIs for testing and integration',\n inputSchema: z.object({\n method: z.enum(['GET', 'POST', 'PUT', 'DELETE', 'PATCH']).describe('HTTP method'),\n url: z.string().describe('Full URL or path (if baseUrl provided)'),\n baseUrl: z.string().optional().describe('Base URL for the server (e.g., http://localhost:4200)'),\n headers: z.record(z.string(), z.string()).optional().describe('HTTP headers'),\n body: z.any().optional().describe('Request body (will be JSON stringified if object)'),\n timeout: z.number().optional().default(30000).describe('Request timeout in milliseconds'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n status: z.number().optional(),\n statusText: z.string().optional(),\n headers: z.record(z.string(), z.string()).optional(),\n data: z.any().optional(),\n errorMessage: z.string().optional(),\n url: z.string(),\n method: z.string(),\n }),\n execute: async inputData => {\n const { method, url, baseUrl, headers, body, timeout } = inputData;\n try {\n return await AgentBuilderDefaults.makeHttpRequest({\n method,\n url,\n baseUrl,\n headers: headers as Record | undefined,\n body,\n timeout,\n });\n } catch (error) {\n return {\n success: false,\n url: baseUrl ? `${baseUrl}${url}` : url,\n method,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n },\n }),\n };\n };\n\n /**\n * Filter tools for template builder mode (excludes web search and other advanced tools)\n */\n static filterToolsForTemplateBuilder(tools: Record): Record {\n const templateBuilderTools = [\n 'readFile',\n 'writeFile',\n 'listDirectory',\n 'executeCommand',\n 'taskManager',\n 'multiEdit',\n 'replaceLines',\n 'showFileLines',\n 'smartSearch',\n 'validateCode',\n ];\n\n const filtered: Record> = {};\n for (const toolName of templateBuilderTools) {\n if (tools[toolName]) {\n filtered[toolName] = tools[toolName];\n }\n }\n return filtered;\n }\n\n /**\n * Filter tools for code editor mode (includes all tools)\n */\n static filterToolsForCodeEditor(tools: Record): Record {\n return tools; // Return all tools for code editor mode\n }\n\n /**\n * Get tools for a specific mode\n */\n static async listToolsForMode(\n projectPath: string,\n mode: 'template' | 'code-editor' = 'code-editor',\n ): Promise> {\n const allTools = await AgentBuilderDefaults.DEFAULT_TOOLS(projectPath);\n\n if (mode === 'template') {\n return AgentBuilderDefaults.filterToolsForTemplateBuilder(allTools);\n } else {\n return AgentBuilderDefaults.filterToolsForCodeEditor(allTools);\n }\n }\n\n /**\n * Create a new Mastra project using create-mastra CLI\n */\n static async createMastraProject({ features, projectName }: { features?: string[]; projectName?: string }) {\n try {\n const args = ['pnpx', 'create-mastra@latest', projectName?.replace(/[;&|`$(){}\\[\\]]/g, '') ?? '', '-l', 'openai'];\n if (features && features.length > 0) {\n args.push('--components', features.join(','));\n }\n args.push('--example');\n\n const { stdout, stderr } = await spawnWithOutput(args[0]!, args.slice(1), {});\n\n return {\n success: true,\n projectPath: `./${projectName}`,\n message: `Successfully created Mastra project: ${projectName}.`,\n details: stdout,\n errorMessage: stderr,\n };\n } catch (error) {\n console.error(error);\n return {\n success: false,\n message: `Failed to create project: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Install packages using the detected package manager\n */\n static async installPackages({\n packages,\n projectPath,\n }: {\n packages: Array<{ name: string; version?: string }>;\n projectPath?: string;\n }) {\n try {\n console.info('Installing packages:', JSON.stringify(packages, null, 2));\n\n const packageStrings = packages.map(p => `${p.name}`);\n\n await spawnSWPM(projectPath || '', 'add', packageStrings);\n\n return {\n success: true,\n installed: packageStrings,\n message: `Successfully installed ${packages.length} package(s).`,\n details: '',\n };\n } catch (error) {\n return {\n success: false,\n message: `Failed to install packages: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Upgrade packages using the detected package manager\n */\n static async upgradePackages({\n packages,\n projectPath,\n }: {\n packages?: Array<{ name: string; version?: string }>;\n projectPath?: string;\n }) {\n try {\n console.info('Upgrading specific packages:', JSON.stringify(packages, null, 2));\n\n let packageNames: string[] = [];\n\n if (packages && packages.length > 0) {\n packageNames = packages.map(p => `${p.name}`);\n }\n await spawnSWPM(projectPath || '', 'upgrade', packageNames);\n\n return {\n success: true,\n upgraded: packages?.map(p => p.name) || ['all packages'],\n message: `Packages upgraded successfully.`,\n details: '',\n };\n } catch (error) {\n return {\n success: false,\n message: `Failed to upgrade packages: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Start the Mastra server\n */\n static async startMastraServer({\n port = 4200,\n projectPath,\n env = {},\n }: {\n port?: number;\n projectPath?: string;\n env?: Record;\n }) {\n try {\n const serverEnv = { ...process.env, ...env, PORT: port.toString() };\n const execOptions = {\n cwd: projectPath || process.cwd(),\n env: serverEnv,\n };\n\n const serverProcess = nodeSpawn('pnpm', ['run', 'dev'], {\n ...execOptions,\n detached: true,\n stdio: 'pipe',\n });\n\n const stdoutLines: string[] = [];\n\n const serverStarted = new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n reject(new Error(`Server startup timeout after 30 seconds. Output: ${stdoutLines.join('\\n')}`));\n }, 30000);\n\n serverProcess.stdout?.on('data', data => {\n const output = data.toString();\n const lines = output.split('\\n').filter((line: string) => line.trim());\n stdoutLines.push(...lines);\n\n if (output.includes('Mastra API running')) {\n clearTimeout(timeout);\n resolve({\n success: true,\n status: 'running' as const,\n pid: serverProcess.pid,\n port,\n url: `http://localhost:${port}`,\n message: `Mastra server started successfully on port ${port}`,\n stdout: stdoutLines,\n });\n }\n });\n\n serverProcess.stderr?.on('data', data => {\n const errorOutput = data.toString();\n stdoutLines.push(`[STDERR] ${errorOutput}`);\n clearTimeout(timeout);\n reject(new Error(`Server startup failed with error: ${errorOutput}`));\n });\n\n serverProcess.on('error', error => {\n clearTimeout(timeout);\n reject(error);\n });\n\n serverProcess.on('exit', (code, signal) => {\n clearTimeout(timeout);\n if (code !== 0 && code !== null) {\n reject(\n new Error(\n `Server process exited with code ${code}${signal ? ` (signal: ${signal})` : ''}. Output: ${stdoutLines.join('\\n')}`,\n ),\n );\n }\n });\n });\n\n return await serverStarted;\n } catch (error) {\n return {\n success: false,\n status: 'stopped' as const,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Stop the Mastra server\n */\n static async stopMastraServer({ port = 4200, projectPath: _projectPath }: { port?: number; projectPath?: string }) {\n // Validate port to ensure it is a safe integer\n if (typeof port !== 'number' || !Number.isInteger(port) || port < 1 || port > 65535) {\n return {\n success: false,\n status: 'error' as const,\n errorMessage: `Invalid port value: ${String(port)}`,\n };\n }\n try {\n // Run lsof safely without shell interpretation\n const { stdout } = await execFile('lsof', ['-ti', String(port)]);\n // If no output, treat as \"No process found\"\n const effectiveStdout = stdout.trim() ? stdout : 'No process found';\n\n if (!effectiveStdout || effectiveStdout === 'No process found') {\n return {\n success: true,\n status: 'stopped' as const,\n message: `No Mastra server found running on port ${port}`,\n };\n }\n\n const pids = stdout\n .trim()\n .split('\\n')\n .filter((pid: string) => pid.trim());\n const killedPids: number[] = [];\n const failedPids: number[] = [];\n\n for (const pidStr of pids) {\n const pid = parseInt(pidStr.trim());\n if (isNaN(pid)) continue;\n\n try {\n process.kill(pid, 'SIGTERM');\n killedPids.push(pid);\n } catch (e) {\n failedPids.push(pid);\n console.warn(`Failed to kill process ${pid}:`, e);\n }\n }\n\n // If some processes failed to be killed, still report partial success\n // but include warning about failed processes\n\n if (killedPids.length === 0) {\n return {\n success: false,\n status: 'unknown' as const,\n message: `Failed to stop any processes on port ${port}`,\n errorMessage: `Could not kill PIDs: ${failedPids.join(', ')}`,\n };\n }\n\n // Report partial success if some processes were killed but others failed\n if (failedPids.length > 0) {\n console.warn(\n `Killed ${killedPids.length} processes but failed to kill ${failedPids.length} processes: ${failedPids.join(', ')}`,\n );\n }\n\n // Wait a bit and check if processes are still running\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n try {\n const { stdout: checkStdoutRaw } = await execFile('lsof', ['-ti', String(port)]);\n const checkStdout = checkStdoutRaw.trim() ? checkStdoutRaw : 'No process found';\n if (checkStdout && checkStdout !== 'No process found') {\n // Force kill remaining processes\n const remainingPids = checkStdout\n .trim()\n .split('\\n')\n .filter((pid: string) => pid.trim());\n for (const pidStr of remainingPids) {\n const pid = parseInt(pidStr.trim());\n if (!isNaN(pid)) {\n try {\n process.kill(pid, 'SIGKILL');\n } catch {\n // ignore\n }\n }\n }\n\n // Final check\n await new Promise(resolve => setTimeout(resolve, 1000));\n const { stdout: finalCheckRaw } = await execFile('lsof', ['-ti', String(port)]);\n const finalCheck = finalCheckRaw.trim() ? finalCheckRaw : 'No process found';\n if (finalCheck && finalCheck !== 'No process found') {\n return {\n success: false,\n status: 'unknown' as const,\n message: `Server processes still running on port ${port} after stop attempts`,\n errorMessage: `Remaining PIDs: ${finalCheck.trim()}`,\n };\n }\n }\n } catch (error) {\n console.warn('Failed to verify server stop:', error);\n }\n\n return {\n success: true,\n status: 'stopped' as const,\n message: `Mastra server stopped successfully (port ${port}). Killed PIDs: ${killedPids.join(', ')}`,\n };\n } catch (error) {\n return {\n success: false,\n status: 'unknown' as const,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Check Mastra server status\n */\n static async checkMastraServerStatus({\n port = 4200,\n projectPath: _projectPath,\n }: {\n port?: number;\n projectPath?: string;\n }) {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 5000);\n\n const response = await fetch(`http://localhost:${port}/health`, {\n method: 'GET',\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (response.ok) {\n return {\n success: true,\n status: 'running' as const,\n port,\n url: `http://localhost:${port}`,\n message: 'Mastra server is running and healthy',\n };\n } else {\n return {\n success: false,\n status: 'unknown' as const,\n port,\n message: `Server responding but not healthy (status: ${response.status})`,\n };\n }\n } catch {\n // Check if process exists on port\n try {\n const { stdout } = await execFile('lsof', ['-ti', String(port)]);\n const effectiveStdout = stdout.trim() ? stdout : 'No process found';\n const hasProcess = effectiveStdout && effectiveStdout !== 'No process found';\n\n return {\n success: Boolean(hasProcess),\n status: hasProcess ? ('starting' as const) : ('stopped' as const),\n port,\n message: hasProcess\n ? 'Server process exists but not responding to health checks'\n : 'No server process found on specified port',\n };\n } catch {\n return {\n success: false,\n status: 'stopped' as const,\n port,\n message: 'Server is not running',\n };\n }\n }\n }\n\n // Cache for TypeScript program (lazily loaded)\n private static tsProgram: any | null = null;\n private static programProjectPath: string | null = null;\n\n /**\n * Validate code using hybrid approach: syntax -> types -> lint\n *\n * BEST PRACTICES FOR CODING AGENTS:\n *\n * ✅ RECOMMENDED (Fast & Accurate):\n * validateCode({\n * validationType: ['types', 'lint'],\n * files: ['src/workflows/my-workflow.ts', 'src/components/Button.tsx']\n * })\n *\n * Performance: ~150ms\n * - Syntax check (1ms) - catches 80% of issues instantly\n * - Semantic validation (100ms) - full type checking with dependencies\n * - ESLint (50ms) - style and best practices\n * - Only shows errors from YOUR files\n *\n * ❌ AVOID (Slow & Noisy):\n * validateCode({ validationType: ['types', 'lint'] }) // no files specified\n *\n * Performance: ~2000ms+\n * - Full project CLI validation\n * - Shows errors from all project files (confusing)\n * - Much slower for coding agents\n *\n * @param projectPath - Project root directory (defaults to cwd)\n * @param validationType - ['types', 'lint'] recommended for most use cases\n * @param files - ALWAYS provide this for best performance\n */\n static async validateCode({\n projectPath,\n validationType,\n files,\n }: {\n projectPath?: string;\n validationType: Array<'types' | 'lint' | 'schemas' | 'tests' | 'build'>;\n files?: string[];\n }) {\n const errors: Array<{\n type: 'typescript' | 'eslint' | 'schema' | 'test' | 'build';\n severity: 'error' | 'warning' | 'info';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n code?: string;\n }> = [];\n const validationsPassed: string[] = [];\n const validationsFailed: string[] = [];\n\n const targetProjectPath = projectPath || process.cwd();\n\n // If no files specified, use legacy CLI-based validation for backward compatibility\n if (!files || files.length === 0) {\n return this.validateCodeCLI({ projectPath, validationType });\n }\n\n // Hybrid validation approach for specific files (default behavior)\n for (const filePath of files) {\n const absolutePath = isAbsolute(filePath) ? filePath : resolve(targetProjectPath, filePath);\n\n try {\n const fileContent = await readFile(absolutePath, 'utf-8');\n const fileResults = await this.validateSingleFileHybrid(\n absolutePath,\n fileContent,\n targetProjectPath,\n validationType,\n );\n\n errors.push(...fileResults.errors);\n\n // Track validation results\n for (const type of validationType) {\n const hasErrors = fileResults.errors.some(e => e.type === type && e.severity === 'error');\n if (hasErrors) {\n if (!validationsFailed.includes(type)) validationsFailed.push(type);\n } else {\n if (!validationsPassed.includes(type)) validationsPassed.push(type);\n }\n }\n } catch (error) {\n errors.push({\n type: 'typescript',\n severity: 'error',\n message: `Failed to read file ${filePath}: ${error instanceof Error ? error.message : String(error)}`,\n file: filePath,\n });\n validationsFailed.push('types');\n }\n }\n\n const totalErrors = errors.filter(e => e.severity === 'error').length;\n const totalWarnings = errors.filter(e => e.severity === 'warning').length;\n const isValid = totalErrors === 0;\n\n return {\n valid: isValid,\n errors,\n summary: {\n totalErrors,\n totalWarnings,\n validationsPassed,\n validationsFailed,\n },\n };\n }\n\n /**\n * CLI-based validation for when no specific files are provided\n */\n static async validateCodeCLI({\n projectPath,\n validationType,\n }: {\n projectPath?: string;\n validationType: Array<'types' | 'lint' | 'schemas' | 'tests' | 'build'>;\n }) {\n const errors: Array<{\n type: 'typescript' | 'eslint' | 'schema' | 'test' | 'build';\n severity: 'error' | 'warning' | 'info';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n code?: string;\n }> = [];\n const validationsPassed: string[] = [];\n const validationsFailed: string[] = [];\n\n const execOptions = { cwd: projectPath };\n\n // TypeScript validation (legacy approach)\n if (validationType.includes('types')) {\n try {\n // Use execFile for safe argument passing to avoid shell interpretation\n const args = ['tsc', '--noEmit'];\n await execFile('npx', args, execOptions);\n validationsPassed.push('types');\n } catch (error: any) {\n let tsOutput = '';\n if (error.stdout) {\n tsOutput = error.stdout;\n } else if (error.stderr) {\n tsOutput = error.stderr;\n } else if (error.message) {\n tsOutput = error.message;\n }\n\n errors.push({\n type: 'typescript',\n severity: 'error',\n message: tsOutput.trim() || `TypeScript validation failed: ${error.message || String(error)}`,\n });\n validationsFailed.push('types');\n }\n }\n\n // ESLint validation\n if (validationType.includes('lint')) {\n try {\n const eslintArgs = ['eslint', '--format', 'json'];\n const { stdout } = await execFile('npx', eslintArgs, execOptions);\n\n if (stdout) {\n const eslintResults = JSON.parse(stdout);\n const eslintErrors = AgentBuilderDefaults.parseESLintErrors(eslintResults);\n errors.push(...eslintErrors);\n\n if (eslintErrors.some(e => e.severity === 'error')) {\n validationsFailed.push('lint');\n } else {\n validationsPassed.push('lint');\n }\n } else {\n validationsPassed.push('lint');\n }\n } catch (error: any) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n\n if (errorMessage.includes('\"filePath\"') || errorMessage.includes('messages')) {\n try {\n const eslintResults = JSON.parse(errorMessage);\n const eslintErrors = AgentBuilderDefaults.parseESLintErrors(eslintResults);\n errors.push(...eslintErrors);\n validationsFailed.push('lint');\n } catch {\n errors.push({\n type: 'eslint',\n severity: 'error',\n message: `ESLint validation failed: ${errorMessage}`,\n });\n validationsFailed.push('lint');\n }\n } else {\n validationsPassed.push('lint');\n }\n }\n }\n\n const totalErrors = errors.filter(e => e.severity === 'error').length;\n const totalWarnings = errors.filter(e => e.severity === 'warning').length;\n const isValid = totalErrors === 0;\n\n return {\n valid: isValid,\n errors,\n summary: {\n totalErrors,\n totalWarnings,\n validationsPassed,\n validationsFailed,\n },\n };\n }\n\n /**\n * Hybrid validation for a single file\n */\n static async validateSingleFileHybrid(\n filePath: string,\n fileContent: string,\n projectPath: string,\n validationType: Array<'types' | 'lint' | 'schemas' | 'tests' | 'build'>,\n ) {\n const errors: Array<{\n type: 'typescript' | 'eslint' | 'schema' | 'test' | 'build';\n severity: 'error' | 'warning' | 'info';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n code?: string;\n }> = [];\n\n // Step 1: Fast syntax validation\n if (validationType.includes('types')) {\n const syntaxErrors = await this.validateSyntaxOnly(fileContent, filePath);\n errors.push(...syntaxErrors);\n\n // Fail fast on syntax errors\n if (syntaxErrors.length > 0) {\n return { errors };\n }\n\n // Step 2: TypeScript semantic validation (if syntax is clean)\n const typeErrors = await this.validateTypesSemantic(filePath, projectPath);\n errors.push(...typeErrors);\n }\n\n // Step 3: ESLint validation (only if no critical errors)\n if (validationType.includes('lint') && !errors.some(e => e.severity === 'error')) {\n const lintErrors = await this.validateESLintSingle(filePath, projectPath);\n errors.push(...lintErrors);\n }\n\n return { errors };\n }\n\n /**\n * Fast syntax-only validation using TypeScript parser\n */\n static async validateSyntaxOnly(fileContent: string, fileName: string) {\n const errors: Array<{\n type: 'typescript';\n severity: 'error';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n }> = [];\n\n try {\n // Dynamically import TypeScript to avoid bundling issues\n const ts = await import('typescript');\n\n const sourceFile = ts.createSourceFile(fileName, fileContent, ts.ScriptTarget.Latest, true);\n\n // Create a minimal program to get syntax diagnostics\n const options: any = {\n allowJs: true,\n checkJs: false,\n noEmit: true,\n };\n\n const host: any = {\n getSourceFile: (name: string) => (name === fileName ? sourceFile : undefined),\n writeFile: () => {},\n getCurrentDirectory: () => '',\n getDirectories: () => [],\n fileExists: (name: string) => name === fileName,\n readFile: (name: string) => (name === fileName ? fileContent : undefined),\n getCanonicalFileName: (name: string) => name,\n useCaseSensitiveFileNames: () => true,\n getNewLine: () => '\\n',\n getDefaultLibFileName: () => 'lib.d.ts',\n };\n\n const program = ts.createProgram([fileName], options, host);\n const diagnostics = program.getSyntacticDiagnostics(sourceFile);\n\n for (const diagnostic of diagnostics) {\n if (diagnostic.start !== undefined) {\n const position = sourceFile.getLineAndCharacterOfPosition(diagnostic.start);\n errors.push({\n type: 'typescript',\n severity: 'error',\n message: ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'),\n file: fileName,\n line: position.line + 1,\n column: position.character + 1,\n });\n }\n }\n } catch (error) {\n // If TypeScript is not available, fall back to basic validation\n console.warn('TypeScript not available for syntax validation:', error);\n\n // Basic syntax check - look for common syntax errors\n const lines = fileContent.split('\\n');\n const commonErrors = [\n { pattern: /\\bimport\\s+.*\\s+from\\s+['\"\"][^'\"]*$/, message: 'Unterminated import statement' },\n { pattern: /\\{[^}]*$/, message: 'Unclosed brace' },\n { pattern: /\\([^)]*$/, message: 'Unclosed parenthesis' },\n { pattern: /\\[[^\\]]*$/, message: 'Unclosed bracket' },\n ];\n\n lines.forEach((line, index) => {\n commonErrors.forEach(({ pattern, message }) => {\n if (pattern.test(line)) {\n errors.push({\n type: 'typescript',\n severity: 'error',\n message,\n file: fileName,\n line: index + 1,\n });\n }\n });\n });\n }\n\n return errors;\n }\n\n /**\n * TypeScript semantic validation using incremental program\n */\n static async validateTypesSemantic(filePath: string, projectPath: string) {\n const errors: Array<{\n type: 'typescript';\n severity: 'error' | 'warning';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n }> = [];\n\n try {\n // Initialize or reuse TypeScript program\n const program = await this.getOrCreateTSProgram(projectPath);\n if (!program) {\n return errors; // Fallback to no validation if program creation fails\n }\n\n const sourceFile = program.getSourceFile(filePath);\n if (!sourceFile) {\n return errors; // File not in program\n }\n\n const diagnostics = [\n ...program.getSemanticDiagnostics(sourceFile),\n ...program.getSyntacticDiagnostics(sourceFile),\n ];\n\n // Dynamically import TypeScript for diagnostic processing\n const ts = await import('typescript');\n\n for (const diagnostic of diagnostics) {\n if (diagnostic.start !== undefined) {\n const position = sourceFile.getLineAndCharacterOfPosition(diagnostic.start);\n errors.push({\n type: 'typescript',\n severity: diagnostic.category === ts.DiagnosticCategory.Warning ? 'warning' : 'error',\n message: ts.flattenDiagnosticMessageText(diagnostic.messageText, '\\n'),\n file: filePath,\n line: position.line + 1,\n column: position.character + 1,\n });\n }\n }\n } catch (error) {\n // Fallback to no semantic validation on error\n console.warn(`TypeScript semantic validation failed for ${filePath}:`, error);\n }\n\n return errors;\n }\n\n /**\n * ESLint validation for a single file\n */\n static async validateESLintSingle(filePath: string, projectPath: string) {\n const errors: Array<{\n type: 'eslint';\n severity: 'error' | 'warning';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n code?: string;\n }> = [];\n\n try {\n const { stdout } = await execFile('npx', ['eslint', filePath, '--format', 'json'], { cwd: projectPath });\n\n if (stdout) {\n const eslintResults = JSON.parse(stdout);\n const eslintErrors = this.parseESLintErrors(eslintResults);\n errors.push(...eslintErrors);\n }\n } catch (error: any) {\n // Try to parse error output\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (errorMessage.includes('\"filePath\"') || errorMessage.includes('messages')) {\n try {\n const eslintResults = JSON.parse(errorMessage);\n const eslintErrors = this.parseESLintErrors(eslintResults);\n errors.push(...eslintErrors);\n } catch {\n // Ignore ESLint errors in hybrid mode for now\n }\n }\n }\n\n return errors;\n }\n\n /**\n * Get or create TypeScript program\n */\n static async getOrCreateTSProgram(projectPath: string): Promise {\n // Return cached program if same project\n if (this.tsProgram && this.programProjectPath === projectPath) {\n return this.tsProgram;\n }\n\n try {\n // Dynamically import TypeScript\n const ts = await import('typescript');\n\n const configPath = ts.findConfigFile(projectPath, ts.sys.fileExists, 'tsconfig.json');\n if (!configPath) {\n return null; // No tsconfig found\n }\n\n const configFile = ts.readConfigFile(configPath, ts.sys.readFile);\n if (configFile.error) {\n return null;\n }\n\n const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, projectPath);\n\n if (parsedConfig.errors.length > 0) {\n return null;\n }\n\n // Create regular program\n this.tsProgram = ts.createProgram({\n rootNames: parsedConfig.fileNames,\n options: parsedConfig.options,\n });\n\n this.programProjectPath = projectPath;\n return this.tsProgram;\n } catch (error) {\n console.warn('Failed to create TypeScript program:', error);\n return null;\n }\n }\n\n // Note: Old filterTypeScriptErrors method removed in favor of hybrid validation approach\n\n /**\n * Parse ESLint errors from JSON output\n */\n static parseESLintErrors(eslintResults: any[]): Array<{\n type: 'eslint';\n severity: 'error' | 'warning';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n code?: string;\n }> {\n const errors: Array<{\n type: 'eslint';\n severity: 'error' | 'warning';\n message: string;\n file?: string;\n line?: number;\n column?: number;\n code?: string;\n }> = [];\n\n for (const result of eslintResults) {\n for (const message of result.messages || []) {\n if (message.message) {\n errors.push({\n type: 'eslint',\n severity: message.severity === 1 ? 'warning' : 'error',\n message: message.message,\n file: result.filePath || undefined,\n line: message.line || undefined,\n column: message.column || undefined,\n code: message.ruleId || undefined,\n });\n }\n }\n }\n\n return errors;\n }\n\n /**\n * Make HTTP request to server or external API\n */\n static async makeHttpRequest({\n method,\n url,\n baseUrl,\n headers = {},\n body,\n timeout = 30000,\n }: {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n url: string;\n baseUrl?: string;\n headers?: Record;\n body?: any;\n timeout?: number;\n }) {\n try {\n const fullUrl = baseUrl ? `${baseUrl}${url}` : url;\n\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n const requestOptions: RequestInit = {\n method,\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n signal: controller.signal,\n };\n\n if (body && (method === 'POST' || method === 'PUT' || method === 'PATCH')) {\n requestOptions.body = typeof body === 'string' ? body : JSON.stringify(body);\n }\n\n const response = await fetch(fullUrl, requestOptions);\n clearTimeout(timeoutId);\n\n let data: any;\n const contentType = response.headers.get('content-type');\n if (contentType?.includes('application/json')) {\n data = await response.json();\n } else {\n data = await response.text();\n }\n\n const responseHeaders: Record = {};\n response.headers.forEach((value, key) => {\n responseHeaders[key] = value;\n });\n\n return {\n success: response.ok,\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n data,\n url: fullUrl,\n method,\n };\n } catch (error) {\n return {\n success: false,\n url: baseUrl ? `${baseUrl}${url}` : url,\n method,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Enhanced task management system for complex coding tasks\n */\n static async manageTaskList(context: {\n action: 'create' | 'update' | 'list' | 'complete' | 'remove';\n tasks?: Array<{\n id: string;\n content?: string;\n status: 'pending' | 'in_progress' | 'completed' | 'blocked';\n priority: 'high' | 'medium' | 'low';\n dependencies?: string[];\n notes?: string;\n }>;\n taskId?: string;\n }) {\n // In-memory task storage (could be enhanced with persistent storage)\n if (!AgentBuilderDefaults.taskStorage) {\n AgentBuilderDefaults.taskStorage = new Map();\n }\n\n // Cleanup old sessions to prevent memory leaks\n // Keep only the last 10 sessions\n const sessions = Array.from(AgentBuilderDefaults.taskStorage.keys());\n if (sessions.length > 10) {\n const sessionsToRemove = sessions.slice(0, sessions.length - 10);\n sessionsToRemove.forEach(session => AgentBuilderDefaults.taskStorage.delete(session));\n }\n\n const sessionId = 'current'; // Could be enhanced with proper session management\n const existingTasks = AgentBuilderDefaults.taskStorage.get(sessionId) || [];\n\n try {\n switch (context.action) {\n case 'create':\n if (!context.tasks?.length) {\n return {\n success: false,\n tasks: existingTasks,\n message: 'No tasks provided for creation',\n };\n }\n\n const newTasks = context.tasks.map(task => ({\n ...task,\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n }));\n\n const allTasks = [...existingTasks, ...newTasks];\n AgentBuilderDefaults.taskStorage.set(sessionId, allTasks);\n\n return {\n success: true,\n tasks: allTasks,\n message: `Created ${newTasks.length} new task(s)`,\n };\n\n case 'update':\n if (!context.tasks?.length) {\n return {\n success: false,\n tasks: existingTasks,\n message: 'No tasks provided for update',\n };\n }\n\n const updatedTasks = existingTasks.map(existing => {\n const update = context.tasks!.find(t => t.id === existing.id);\n return update ? { ...existing, ...update, updatedAt: new Date().toISOString() } : existing;\n });\n\n AgentBuilderDefaults.taskStorage.set(sessionId, updatedTasks);\n\n return {\n success: true,\n tasks: updatedTasks,\n message: 'Tasks updated successfully',\n };\n\n case 'complete':\n if (!context.taskId) {\n return {\n success: false,\n tasks: existingTasks,\n message: 'Task ID required for completion',\n };\n }\n\n const completedTasks = existingTasks.map(task =>\n task.id === context.taskId\n ? { ...task, status: 'completed' as const, updatedAt: new Date().toISOString() }\n : task,\n );\n\n AgentBuilderDefaults.taskStorage.set(sessionId, completedTasks);\n\n return {\n success: true,\n tasks: completedTasks,\n message: `Task ${context.taskId} marked as completed`,\n };\n\n case 'remove':\n if (!context.taskId) {\n return {\n success: false,\n tasks: existingTasks,\n message: 'Task ID required for removal',\n };\n }\n\n const filteredTasks = existingTasks.filter(task => task.id !== context.taskId);\n AgentBuilderDefaults.taskStorage.set(sessionId, filteredTasks);\n\n return {\n success: true,\n tasks: filteredTasks,\n message: `Task ${context.taskId} removed`,\n };\n\n case 'list':\n default:\n return {\n success: true,\n tasks: existingTasks,\n message: `Found ${existingTasks.length} task(s)`,\n };\n }\n } catch (error) {\n return {\n success: false,\n tasks: existingTasks,\n message: `Task management error: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Perform multiple edits across files atomically\n */\n static async performMultiEdit(context: {\n operations: Array<{\n filePath: string;\n edits: Array<{\n oldString: string;\n newString: string;\n replaceAll?: boolean;\n }>;\n }>;\n createBackup?: boolean;\n projectPath?: string;\n }) {\n const { operations, createBackup = false, projectPath = process.cwd() } = context;\n const results: Array<{\n filePath: string;\n editsApplied: number;\n errors: string[];\n backup?: string;\n }> = [];\n\n try {\n for (const operation of operations) {\n const filePath = isAbsolute(operation.filePath) ? operation.filePath : join(projectPath, operation.filePath);\n let editsApplied = 0;\n const errors: string[] = [];\n let backup: string | undefined;\n\n try {\n // Create backup if requested\n if (createBackup) {\n const backupPath = `${filePath}.backup.${Date.now()}`;\n const originalContent = await readFile(filePath, 'utf-8');\n await writeFile(backupPath, originalContent, 'utf-8');\n backup = backupPath;\n }\n\n // Read current file content\n let content = await readFile(filePath, 'utf-8');\n\n // Apply each edit\n for (const edit of operation.edits) {\n const { oldString, newString, replaceAll = false } = edit;\n\n if (replaceAll) {\n const regex = new RegExp(oldString.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'g');\n const matches = content.match(regex);\n if (matches) {\n content = content.replace(regex, newString);\n editsApplied += matches.length;\n }\n } else {\n if (content.includes(oldString)) {\n content = content.replace(oldString, newString);\n editsApplied++;\n } else {\n errors.push(`String not found: \"${oldString.substring(0, 50)}${oldString.length > 50 ? '...' : ''}\"`);\n }\n }\n }\n\n // Write updated content back\n await writeFile(filePath, content, 'utf-8');\n } catch (error) {\n errors.push(`File operation error: ${error instanceof Error ? error.message : String(error)}`);\n }\n\n results.push({\n filePath: operation.filePath,\n editsApplied,\n errors,\n backup,\n });\n }\n\n const totalEdits = results.reduce((sum, r) => sum + r.editsApplied, 0);\n const totalErrors = results.reduce((sum, r) => sum + r.errors.length, 0);\n\n return {\n success: totalErrors === 0,\n results,\n message: `Applied ${totalEdits} edits across ${operations.length} files${totalErrors > 0 ? ` with ${totalErrors} errors` : ''}`,\n };\n } catch (error) {\n return {\n success: false,\n results,\n message: `Multi-edit operation failed: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n }\n\n /**\n * Replace specific line ranges in a file with new content\n */\n static async replaceLines(context: {\n filePath: string;\n startLine: number;\n endLine: number;\n newContent: string;\n createBackup?: boolean;\n projectPath?: string;\n }) {\n const { filePath, startLine, endLine, newContent, createBackup = false, projectPath = process.cwd() } = context;\n\n try {\n const fullPath = isAbsolute(filePath) ? filePath : join(projectPath, filePath);\n\n // Read current file content\n const content = await readFile(fullPath, 'utf-8');\n const lines = content.split('\\n');\n\n // Validate line numbers\n if (startLine < 1 || endLine < 1) {\n return {\n success: false,\n message: `Line numbers must be 1 or greater. Got startLine: ${startLine}, endLine: ${endLine}`,\n errorMessage: 'Invalid line range',\n };\n }\n\n if (startLine > lines.length || endLine > lines.length) {\n return {\n success: false,\n message: `Line range ${startLine}-${endLine} is out of bounds. File has ${lines.length} lines. Remember: lines are 1-indexed, so valid range is 1-${lines.length}.`,\n errorMessage: 'Invalid line range',\n };\n }\n\n if (startLine > endLine) {\n return {\n success: false,\n message: `Start line (${startLine}) cannot be greater than end line (${endLine}).`,\n errorMessage: 'Invalid line range',\n };\n }\n\n // Create backup if requested\n let backup: string | undefined;\n if (createBackup) {\n const backupPath = `${fullPath}.backup.${Date.now()}`;\n await writeFile(backupPath, content, 'utf-8');\n backup = backupPath;\n }\n\n // Replace the specified line range\n const beforeLines = lines.slice(0, startLine - 1);\n const afterLines = lines.slice(endLine);\n const newLines = newContent ? newContent.split('\\n') : [];\n\n const updatedLines = [...beforeLines, ...newLines, ...afterLines];\n const updatedContent = updatedLines.join('\\n');\n\n // Write updated content back\n await writeFile(fullPath, updatedContent, 'utf-8');\n\n const linesReplaced = endLine - startLine + 1;\n const newLineCount = newLines.length;\n\n return {\n success: true,\n message: `Successfully replaced ${linesReplaced} lines (${startLine}-${endLine}) with ${newLineCount} new lines in ${filePath}`,\n linesReplaced,\n backup,\n };\n } catch (error) {\n return {\n success: false,\n message: `Failed to replace lines: ${error instanceof Error ? error.message : String(error)}`,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Show file lines with line numbers for debugging\n */\n static async showFileLines(context: {\n filePath: string;\n startLine?: number;\n endLine?: number;\n context?: number;\n projectPath?: string;\n }) {\n const { filePath, startLine, endLine, context: contextLines = 2, projectPath = process.cwd() } = context;\n\n try {\n const fullPath = isAbsolute(filePath) ? filePath : join(projectPath, filePath);\n\n // Read current file content\n const content = await readFile(fullPath, 'utf-8');\n const lines = content.split('\\n');\n\n let targetStart = startLine;\n let targetEnd = endLine;\n\n // If no range specified, show all lines\n if (!targetStart) {\n targetStart = 1;\n targetEnd = lines.length;\n } else if (!targetEnd) {\n targetEnd = targetStart;\n }\n\n // Calculate actual display range with context\n const displayStart = Math.max(1, targetStart - contextLines);\n const displayEnd = Math.min(lines.length, targetEnd + contextLines);\n\n const result = [];\n for (let i = displayStart; i <= displayEnd; i++) {\n const lineIndex = i - 1; // Convert to 0-based for array access\n const isTarget = i >= targetStart && i <= targetEnd;\n\n result.push({\n lineNumber: i,\n content: lineIndex < lines.length ? (lines[lineIndex] ?? '') : '',\n isTarget,\n });\n }\n\n return {\n success: true,\n lines: result,\n totalLines: lines.length,\n message: `Showing lines ${displayStart}-${displayEnd} of ${lines.length} total lines in ${filePath}`,\n };\n } catch (error) {\n return {\n success: false,\n lines: [],\n totalLines: 0,\n message: `Failed to read file: ${error instanceof Error ? error.message : String(error)}`,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Signal task completion\n */\n static async signalCompletion(context: {\n summary: string;\n changes: Array<{\n type: 'file_created' | 'file_modified' | 'file_deleted' | 'command_executed' | 'dependency_added';\n description: string;\n path?: string;\n }>;\n validation: {\n testsRun?: boolean;\n buildsSuccessfully?: boolean;\n manualTestingRequired?: boolean;\n };\n nextSteps?: string[];\n }) {\n const completionId = `completion_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n\n // Calculate confidence based on validation status\n let confidence = 70; // Base confidence\n if (context.validation.testsRun) confidence += 15;\n if (context.validation.buildsSuccessfully) confidence += 15;\n if (context.validation.manualTestingRequired) confidence -= 10;\n\n // Determine status\n let status: 'completed' | 'needs_review' | 'needs_testing';\n if (context.validation.testsRun && context.validation.buildsSuccessfully) {\n status = 'completed';\n } else if (context.validation.manualTestingRequired) {\n status = 'needs_testing';\n } else {\n status = 'needs_review';\n }\n\n return {\n completionId,\n status,\n summary: context.summary,\n confidence: Math.min(100, Math.max(0, confidence)),\n };\n }\n\n /**\n * Perform intelligent search with context\n */\n static async performSmartSearch(\n context: {\n query: string;\n type?: 'text' | 'regex' | 'fuzzy' | 'semantic';\n scope?: {\n paths?: string[];\n fileTypes?: string[];\n excludePaths?: string[];\n maxResults?: number;\n };\n context?: {\n beforeLines?: number;\n afterLines?: number;\n includeDefinitions?: boolean;\n };\n },\n projectPath: string,\n ) {\n try {\n const { query, type = 'text', scope = {}, context: searchContext = {} } = context;\n\n const { paths = ['.'], fileTypes = [], excludePaths = [], maxResults = 50 } = scope;\n\n const { beforeLines = 2, afterLines = 2 } = searchContext;\n\n // Build command and arguments array safely\n const rgArgs: string[] = [];\n\n // Add context lines\n if (beforeLines > 0) {\n rgArgs.push('-B', beforeLines.toString());\n }\n if (afterLines > 0) {\n rgArgs.push('-A', afterLines.toString());\n }\n\n // Add line numbers\n rgArgs.push('-n');\n\n // Handle search type\n if (type === 'regex') {\n rgArgs.push('-e');\n } else if (type === 'fuzzy') {\n rgArgs.push('--fixed-strings');\n }\n\n // Add file type filters\n if (fileTypes.length > 0) {\n fileTypes.forEach(ft => {\n rgArgs.push('--type-add', `custom:*.${ft}`, '-t', 'custom');\n });\n }\n\n // Add exclude patterns\n excludePaths.forEach(path => {\n rgArgs.push('--glob', `!${path}`);\n });\n\n // Add max count\n rgArgs.push('-m', maxResults.toString());\n\n // Add the search query and paths\n rgArgs.push(query);\n rgArgs.push(...paths);\n\n // Execute safely using execFile\n const { stdout } = await execFile('rg', rgArgs, {\n cwd: projectPath,\n });\n const lines = stdout.split('\\n').filter((line: string) => line.trim());\n\n const matches: Array<{\n file: string;\n line: number;\n column?: number;\n match: string;\n context: { before: string[]; after: string[] };\n relevance?: number;\n }> = [];\n\n let currentMatch: any = null;\n\n lines.forEach((line: string) => {\n if (line.includes(':') && !line.startsWith('-')) {\n // This is a match line\n const parts = line.split(':');\n if (parts.length >= 3) {\n // Save previous match if exists\n if (currentMatch) {\n matches.push(currentMatch);\n }\n\n currentMatch = {\n file: parts[0] || '',\n line: parseInt(parts[1] || '0'),\n match: parts.slice(2).join(':'),\n context: { before: [], after: [] },\n relevance: type === 'fuzzy' ? Math.random() * 100 : undefined,\n };\n }\n } else if (line.startsWith('-') && currentMatch) {\n // This is a context line\n const contextLine = line.substring(1);\n if (currentMatch.context.before.length < beforeLines) {\n currentMatch.context.before.push(contextLine);\n } else {\n currentMatch.context.after.push(contextLine);\n }\n }\n });\n\n // Add the last match\n if (currentMatch) {\n matches.push(currentMatch);\n }\n\n // Count files searched (approximate)\n const filesSearched = new Set(matches.map(m => m.file)).size;\n\n return {\n success: true,\n matches: matches.slice(0, maxResults),\n summary: {\n totalMatches: matches.length,\n filesSearched,\n patterns: [query],\n },\n };\n } catch {\n return {\n success: false,\n matches: [],\n summary: {\n totalMatches: 0,\n filesSearched: 0,\n patterns: [context.query],\n },\n };\n }\n }\n\n // Static storage properties\n private static taskStorage: Map;\n private static pendingQuestions: Map;\n\n /**\n * Read file contents with optional line range\n */\n static async readFile(context: {\n filePath: string;\n startLine?: number;\n endLine?: number;\n encoding?: string;\n projectPath?: string;\n }) {\n try {\n const { filePath, startLine, endLine, encoding = 'utf-8', projectPath } = context;\n\n // Resolve path relative to project directory if it's not absolute\n const resolvedPath = isAbsolute(filePath) ? filePath : resolve(projectPath || process.cwd(), filePath);\n\n const stats = await stat(resolvedPath);\n const content = await readFile(resolvedPath, { encoding: encoding as BufferEncoding });\n const lines = content.split('\\n');\n\n let resultContent = content;\n let resultLines = lines;\n\n if (startLine !== undefined || endLine !== undefined) {\n const start = Math.max(0, (startLine || 1) - 1);\n const end = endLine !== undefined ? Math.min(lines.length, endLine) : lines.length;\n resultLines = lines.slice(start, end);\n resultContent = resultLines.join('\\n');\n }\n\n return {\n success: true,\n content: resultContent,\n lines: resultLines,\n metadata: {\n size: stats.size,\n totalLines: lines.length,\n encoding,\n lastModified: stats.mtime.toISOString(),\n },\n };\n } catch (error) {\n return {\n success: false,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Write content to file with directory creation and backup options\n */\n static async writeFile(context: {\n filePath: string;\n content: string;\n createDirs?: boolean;\n encoding?: string;\n projectPath?: string;\n }) {\n try {\n const { filePath, content, createDirs = true, encoding = 'utf-8', projectPath } = context;\n\n // Resolve path relative to project directory if it's not absolute\n const resolvedPath = isAbsolute(filePath) ? filePath : resolve(projectPath || process.cwd(), filePath);\n const dir = dirname(resolvedPath);\n\n // Create directories if needed\n if (createDirs) {\n await mkdir(dir, { recursive: true });\n }\n\n // Write the file\n await writeFile(resolvedPath, content, { encoding: encoding as BufferEncoding });\n\n return {\n success: true,\n filePath: resolvedPath,\n bytesWritten: Buffer.byteLength(content, encoding as BufferEncoding),\n message: `Successfully wrote ${Buffer.byteLength(content, encoding as BufferEncoding)} bytes to ${filePath}`,\n };\n } catch (error) {\n return {\n success: false,\n filePath: context.filePath,\n message: `Failed to write file: ${error instanceof Error ? error.message : String(error)}`,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * List directory contents with filtering and metadata\n */\n static async listDirectory(context: {\n path: string;\n recursive?: boolean;\n includeHidden?: boolean;\n pattern?: string;\n maxDepth?: number;\n includeMetadata?: boolean;\n projectPath?: string;\n }) {\n try {\n const {\n path,\n recursive = false,\n includeHidden = false,\n pattern,\n maxDepth = 10,\n includeMetadata = true,\n projectPath,\n } = context;\n\n const gitignorePath = join(projectPath || process.cwd(), '.gitignore');\n let gitignoreFilter: ignore.Ignore | undefined;\n\n try {\n const gitignoreContent = await readFile(gitignorePath, 'utf-8');\n gitignoreFilter = ignore().add(gitignoreContent);\n } catch (err: any) {\n if (err.code !== 'ENOENT') {\n console.error(`Error reading .gitignore file:`, err);\n }\n // If .gitignore doesn't exist, gitignoreFilter remains undefined, meaning no files are ignored by gitignore.\n }\n\n // Resolve path relative to project directory if it's not absolute\n const resolvedPath = isAbsolute(path) ? path : resolve(projectPath || process.cwd(), path);\n\n const items: Array<{\n name: string;\n path: string;\n type: 'file' | 'directory' | 'symlink';\n size?: number;\n lastModified?: string;\n permissions?: string;\n }> = [];\n\n async function processDirectory(dirPath: string, currentDepth: number = 0) {\n const relativeToProject = relative(projectPath || process.cwd(), dirPath);\n if (gitignoreFilter?.ignores(relativeToProject)) return;\n if (currentDepth > maxDepth) return;\n\n const entries = await readdir(dirPath);\n\n for (const entry of entries) {\n const entryPath = join(dirPath, entry);\n const relativeEntryPath = relative(projectPath || process.cwd(), entryPath);\n if (gitignoreFilter?.ignores(relativeEntryPath)) continue;\n if (!includeHidden && entry.startsWith('.')) continue;\n\n const fullPath = entryPath;\n const relativePath = relative(resolvedPath, fullPath);\n\n if (pattern) {\n // Simple pattern matching\n const regexPattern = pattern.replace(/\\*/g, '.*').replace(/\\?/g, '.');\n if (!new RegExp(regexPattern).test(entry)) continue;\n }\n\n let stats;\n let type: 'file' | 'directory' | 'symlink';\n\n try {\n stats = await stat(fullPath);\n if (stats.isDirectory()) {\n type = 'directory';\n } else if (stats.isSymbolicLink()) {\n type = 'symlink';\n } else {\n type = 'file';\n }\n } catch {\n continue; // Skip entries we can't stat\n }\n\n const item: any = {\n name: entry,\n path: relativePath || entry,\n type,\n };\n\n if (includeMetadata) {\n item.size = stats.size;\n item.lastModified = stats.mtime.toISOString();\n item.permissions = `0${(stats.mode & parseInt('777', 8)).toString(8)}`;\n }\n\n items.push(item);\n\n // Recurse into directories if requested\n if (recursive && type === 'directory') {\n await processDirectory(fullPath, currentDepth + 1);\n }\n }\n }\n\n await processDirectory(resolvedPath);\n\n return {\n success: true,\n items,\n totalItems: items.length,\n path: resolvedPath,\n message: `Listed ${items.length} items in ${resolvedPath}`,\n };\n } catch (error) {\n return {\n success: false,\n items: [],\n totalItems: 0,\n path: context.path,\n message: `Failed to list directory: ${error instanceof Error ? error.message : String(error)}`,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Execute shell commands with proper error handling\n */\n static async executeCommand(context: {\n command: string;\n workingDirectory?: string;\n timeout?: number;\n captureOutput?: boolean;\n shell?: string;\n env?: Record;\n }) {\n const startTime = Date.now();\n try {\n const { command, workingDirectory, timeout = 30000, captureOutput = true, shell, env } = context;\n\n const execOptions: any = {\n timeout,\n env: { ...process.env, ...env },\n };\n\n if (workingDirectory) {\n execOptions.cwd = workingDirectory;\n }\n\n if (shell) {\n execOptions.shell = shell;\n }\n\n const { stdout, stderr } = await exec(command, execOptions);\n const executionTime = Date.now() - startTime;\n\n return {\n success: true,\n exitCode: 0,\n stdout: captureOutput ? String(stdout) : undefined,\n stderr: captureOutput ? String(stderr) : undefined,\n command,\n workingDirectory,\n executionTime,\n };\n } catch (error: any) {\n const executionTime = Date.now() - startTime;\n\n return {\n success: false,\n exitCode: error.code || 1,\n stdout: String(error.stdout || ''),\n stderr: String(error.stderr || ''),\n command: context.command,\n workingDirectory: context.workingDirectory,\n executionTime,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Web search using a simple search approach\n */\n static async webSearch(context: {\n query: string;\n maxResults?: number;\n region?: string;\n language?: string;\n includeImages?: boolean;\n dateRange?: 'day' | 'week' | 'month' | 'year' | 'all';\n }) {\n try {\n const {\n query,\n maxResults = 10,\n // region = 'us',\n // language = 'en',\n // includeImages = false,\n // dateRange = 'all',\n } = context;\n\n const startTime = Date.now();\n\n // For now, implement a basic search using DuckDuckGo's instant answer API\n // In a real implementation, you'd want to use a proper search API\n const searchUrl = `https://api.duckduckgo.com/?q=${encodeURIComponent(query)}&format=json&no_redirect=1&skip_disambig=1`;\n\n const response = await fetch(searchUrl);\n const data: any = await response.json();\n\n const results: Array<{\n title: string;\n url: string;\n snippet: string;\n domain: string;\n publishDate?: string;\n relevanceScore?: number;\n }> = [];\n\n // Parse DuckDuckGo results\n if (data.RelatedTopics && Array.isArray(data.RelatedTopics)) {\n for (const topic of data.RelatedTopics.slice(0, maxResults)) {\n if (topic.FirstURL && topic.Text) {\n const url = new URL(topic.FirstURL);\n results.push({\n title: topic.Text.split(' - ')[0] || topic.Text.substring(0, 60),\n url: topic.FirstURL,\n snippet: topic.Text,\n domain: url.hostname,\n relevanceScore: Math.random() * 100, // Placeholder scoring\n });\n }\n }\n }\n\n // Add abstract as first result if available\n if (data.Abstract && data.AbstractURL) {\n const url = new URL(data.AbstractURL);\n results.unshift({\n title: data.Heading || 'Main Result',\n url: data.AbstractURL,\n snippet: data.Abstract,\n domain: url.hostname,\n relevanceScore: 100,\n });\n }\n\n const searchTime = Date.now() - startTime;\n\n return {\n success: true,\n query,\n results: results.slice(0, maxResults),\n totalResults: results.length,\n searchTime,\n suggestions:\n data.RelatedTopics?.slice(maxResults, maxResults + 3)\n ?.map((t: any) => t.Text?.split(' - ')[0] || t.Text?.substring(0, 30))\n .filter(Boolean) || [],\n };\n } catch (error) {\n return {\n success: false,\n query: context.query,\n results: [],\n totalResults: 0,\n searchTime: 0,\n errorMessage: error instanceof Error ? error.message : String(error),\n };\n }\n }\n}\n","import { Agent } from '@mastra/core/agent';\nimport type { MastraDBMessage, MessageList } from '@mastra/core/agent';\nimport type { MastraModelConfig } from '@mastra/core/llm';\nimport type { Processor } from '@mastra/core/processors';\n\n/**\n * Summarizes tool calls and caches results to avoid re-summarizing identical calls\n */\nexport class ToolSummaryProcessor implements Processor {\n readonly id = 'tool-summary-processor';\n readonly name = 'ToolSummaryProcessor';\n\n private summaryAgent: Agent;\n private summaryCache: Map = new Map();\n\n constructor({ summaryModel }: { summaryModel: MastraModelConfig }) {\n this.summaryAgent = new Agent({\n id: 'tool-summary-agent',\n name: 'Tool Summary Agent',\n description: 'A summary agent that summarizes tool calls and results',\n instructions: 'You are a summary agent that summarizes tool calls and results',\n model: summaryModel,\n });\n }\n\n /**\n * Creates a cache key from tool call arguments\n */\n public createCacheKey(toolCall: any): string {\n if (!toolCall) return 'unknown';\n\n // Create a deterministic key from tool name and arguments\n const toolName = toolCall.toolName || 'unknown';\n const args = toolCall.args || {};\n\n // Sort keys for consistent hashing\n const sortedArgs = Object.keys(args)\n .sort()\n .reduce((result: Record, key) => {\n result[key] = args[key];\n return result;\n }, {});\n\n return `${toolName}:${JSON.stringify(sortedArgs)}`;\n }\n\n /**\n * Clears the summary cache\n */\n public clearCache(): void {\n this.summaryCache.clear();\n }\n\n /**\n * Gets cache statistics\n */\n public getCacheStats(): { size: number; keys: string[] } {\n return {\n size: this.summaryCache.size,\n keys: Array.from(this.summaryCache.keys()),\n };\n }\n\n async processInput({\n messages,\n messageList: _messageList,\n }: {\n messages: MastraDBMessage[];\n messageList: MessageList;\n abort: (reason?: string) => never;\n }): Promise {\n // Collect all tool calls that need summarization\n const summaryTasks: Array<{\n message: MastraDBMessage;\n partIndex: number;\n promise: Promise;\n cacheKey: string;\n }> = [];\n\n // First pass: collect all tool results that need summarization\n for (const message of messages) {\n if (message.content.format === 2 && message.content.parts) {\n for (let partIndex = 0; partIndex < message.content.parts.length; partIndex++) {\n const part = message.content.parts[partIndex];\n\n // Check if this is a tool invocation with a result\n if (part && part.type === 'tool-invocation' && part.toolInvocation?.state === 'result') {\n const cacheKey = this.createCacheKey(part.toolInvocation);\n const cachedSummary = this.summaryCache.get(cacheKey);\n\n if (cachedSummary) {\n // Use cached summary - update the tool invocation result\n message.content.parts[partIndex] = {\n type: 'tool-invocation',\n toolInvocation: {\n state: 'result',\n step: part.toolInvocation.step,\n toolCallId: part.toolInvocation.toolCallId,\n toolName: part.toolInvocation.toolName,\n args: part.toolInvocation.args,\n result: `Tool call summary: ${cachedSummary}`,\n },\n };\n } else {\n // Create a promise for this summary (but don't await yet)\n const summaryPromise = this.summaryAgent.generate(\n `Summarize the following tool call: ${JSON.stringify(part.toolInvocation)}`,\n );\n\n summaryTasks.push({\n message,\n partIndex,\n promise: summaryPromise,\n cacheKey,\n });\n }\n }\n }\n }\n }\n\n // Execute all non-cached summaries in parallel\n if (summaryTasks.length > 0) {\n const summaryResults = await Promise.allSettled(summaryTasks.map(task => task.promise));\n\n // Apply the results back to the content and cache them\n summaryTasks.forEach((task, index) => {\n const result = summaryResults[index];\n if (!result) return;\n\n if (result.status === 'fulfilled') {\n const summaryResult = result.value;\n const summaryText = summaryResult.text;\n\n // Cache the summary for future use\n this.summaryCache.set(task.cacheKey, summaryText);\n\n // Apply to message content\n if (task.message.content.format === 2 && task.message.content.parts) {\n const part = task.message.content.parts[task.partIndex];\n if (part && part.type === 'tool-invocation' && part.toolInvocation?.state === 'result') {\n task.message.content.parts[task.partIndex] = {\n type: 'tool-invocation',\n toolInvocation: {\n state: 'result',\n step: part.toolInvocation.step,\n toolCallId: part.toolInvocation.toolCallId,\n toolName: part.toolInvocation.toolName,\n args: part.toolInvocation.args,\n result: `Tool call summary: ${summaryText}`,\n },\n };\n }\n }\n } else if (result.status === 'rejected') {\n // Handle failed summary - use fallback or log error\n console.warn(`Failed to generate summary for tool call:`, result.reason);\n }\n });\n }\n\n return messages;\n }\n}\n","import { Agent } from '@mastra/core/agent';\nimport type {\n AiMessageType,\n AgentGenerateOptions,\n AgentStreamOptions,\n AgentExecutionOptions,\n AgentExecutionOptionsBase,\n ToolsInput,\n AgentConfig,\n PublicStructuredOutputOptions,\n} from '@mastra/core/agent';\nimport type { MessageListInput } from '@mastra/core/agent/message-list';\nimport type { CoreMessage } from '@mastra/core/llm';\nimport { InMemoryStore } from '@mastra/core/storage';\nimport type { MastraModelOutput, FullOutput } from '@mastra/core/stream';\nimport { Memory } from '@mastra/memory';\nimport type { InferStandardSchemaOutput, StandardSchemaWithJSON } from '@mastra/schema-compat/schema';\nimport { AgentBuilderDefaults } from '../defaults';\nimport { ToolSummaryProcessor } from '../processors/tool-summary';\nimport type { AgentBuilderConfig, GenerateAgentOptions } from '../types';\n\n// =============================================================================\n// Template Merge Workflow Implementation\n// =============================================================================\n//\n// This workflow implements a comprehensive template merging system that:\n// 1. Clones template repositories at specific refs (tags/commits)\n// 2. Discovers units (agents, workflows, MCP servers/tools) in templates\n// 3. Topologically orders units based on dependencies\n// 4. Analyzes conflicts and creates safety classifications\n// 5. Applies changes with git branching and checkpoints per unit\n//\n// The workflow follows the \"auto-decide vs ask\" principles:\n// - Auto: adding new files, missing deps, appending arrays, new scripts with template:slug:* namespace\n// - Prompt: overwriting files, major upgrades, renaming conflicts, new ports, postInstall commands\n// - Block: removing files, downgrading deps, changing TS target/module, modifying CI/CD secrets\n//\n// Usage with Mastra templates (see https://mastra.ai/api/templates.json):\n// const run = await agentBuilderTemplateWorkflow.createRun();\n// const result = await run.start({\n// inputData: {\n// repo: 'https://github.com/mastra-ai/template-pdf-questions',\n// ref: 'main', // optional\n// targetPath: './my-project', // optional, defaults to cwd\n// }\n// });\n// // The workflow will automatically analyze and merge the template structure\n//\n// =============================================================================\n\nexport class AgentBuilder extends Agent<\n 'agent-builder',\n TTools,\n TOutput\n> {\n private builderConfig: AgentBuilderConfig;\n\n /**\n * Constructor for AgentBuilder\n */\n constructor(config: AgentBuilderConfig) {\n const additionalInstructions = config.instructions ? `## Priority Instructions \\n\\n${config.instructions}` : '';\n const combinedInstructions = additionalInstructions + AgentBuilderDefaults.DEFAULT_INSTRUCTIONS(config.projectPath);\n\n // Create Memory with storage for AgentBuilder\n // Use provided storage if available, otherwise fall back to in-memory storage\n const memory = new Memory({\n options: AgentBuilderDefaults.DEFAULT_MEMORY_CONFIG,\n });\n memory.setStorage(config.storage ?? new InMemoryStore());\n\n const agentConfig: AgentConfig<'agent-builder', TTools, TOutput> = {\n id: 'agent-builder',\n name: 'agent-builder',\n description:\n 'An AI agent specialized in generating Mastra agents, tools, and workflows from natural language requirements.',\n instructions: combinedInstructions,\n model: config.model,\n tools: async (): Promise => {\n return {\n ...(await AgentBuilderDefaults.listToolsForMode(config.projectPath, config.mode)),\n ...(config.tools || ({} as TTools)),\n } as TTools;\n },\n memory,\n inputProcessors: [\n // use the write to disk processor to debug the agent's context\n // new WriteToDiskProcessor({ prefix: 'before-filter' }),\n new ToolSummaryProcessor({ summaryModel: config.summaryModel || config.model }),\n // new WriteToDiskProcessor({ prefix: 'after-filter' }),\n ],\n };\n\n super(agentConfig);\n this.builderConfig = config;\n }\n\n /**\n * Enhanced generate method with AgentBuilder-specific configuration\n * Overrides the base Agent generate method to provide additional project context\n */\n generateLegacy: Agent['generateLegacy'] = async (\n messages: string | string[] | CoreMessage[] | AiMessageType[],\n generateOptions: (GenerateAgentOptions & AgentGenerateOptions) | undefined = {},\n ): Promise => {\n const { maxSteps, ...baseOptions } = generateOptions;\n\n const originalInstructions = await this.getInstructions({ requestContext: generateOptions?.requestContext });\n const additionalInstructions = baseOptions.instructions;\n\n let enhancedInstructions = originalInstructions as string;\n if (additionalInstructions) {\n enhancedInstructions = `${originalInstructions}\\n\\n${additionalInstructions}`;\n }\n\n const enhancedContext = [...(baseOptions.context || [])];\n\n const enhancedOptions = {\n ...baseOptions,\n maxSteps: maxSteps || 100, // Higher default for code generation\n temperature: 0.3, // Lower temperature for more consistent code generation\n instructions: enhancedInstructions,\n context: enhancedContext,\n } satisfies AgentGenerateOptions;\n\n this.logger.debug('Starting generation with enhanced context', {\n agent: this.name,\n projectPath: this.builderConfig.projectPath,\n });\n\n return super.generateLegacy(messages, enhancedOptions);\n };\n\n /**\n * Enhanced stream method with AgentBuilder-specific configuration\n * Overrides the base Agent stream method to provide additional project context\n */\n streamLegacy: Agent['streamLegacy'] = async (\n messages: string | string[] | CoreMessage[] | AiMessageType[],\n streamOptions: (GenerateAgentOptions & AgentStreamOptions) | undefined = {},\n ): Promise => {\n const { maxSteps, ...baseOptions } = streamOptions;\n\n const originalInstructions = await this.getInstructions({ requestContext: streamOptions?.requestContext });\n const additionalInstructions = baseOptions.instructions;\n\n let enhancedInstructions = originalInstructions as string;\n if (additionalInstructions) {\n enhancedInstructions = `${originalInstructions}\\n\\n${additionalInstructions}`;\n }\n const enhancedContext = [...(baseOptions.context || [])];\n\n const enhancedOptions = {\n ...baseOptions,\n maxSteps: maxSteps || 100, // Higher default for code generation\n temperature: 0.3, // Lower temperature for more consistent code generation\n instructions: enhancedInstructions,\n context: enhancedContext,\n };\n\n this.logger.debug('Starting streaming with enhanced context', {\n agent: this.name,\n projectPath: this.builderConfig.projectPath,\n });\n\n return super.streamLegacy(messages, enhancedOptions);\n };\n\n /**\n * Enhanced stream method with AgentBuilder-specific configuration\n * Overrides the base Agent stream method to provide additional project context\n */\n async stream<\n OUTPUT extends StandardSchemaWithJSON,\n T extends InferStandardSchemaOutput = InferStandardSchemaOutput,\n >(\n messages: MessageListInput,\n streamOptions: AgentExecutionOptionsBase & {\n structuredOutput: PublicStructuredOutputOptions;\n },\n ): Promise>;\n async stream(\n messages: MessageListInput,\n streamOptions: AgentExecutionOptionsBase & {\n structuredOutput: PublicStructuredOutputOptions;\n },\n ): Promise>;\n async stream(\n messages: MessageListInput,\n streamOptions: AgentExecutionOptionsBase & {\n structuredOutput?: never;\n },\n ): Promise>;\n async stream(messages: MessageListInput): Promise>;\n async stream(\n messages: MessageListInput,\n streamOptions?: AgentExecutionOptionsBase & {\n structuredOutput?: PublicStructuredOutputOptions;\n },\n ): Promise> {\n const { ...baseOptions } = streamOptions || ({} as AgentExecutionOptions);\n\n const originalInstructions = await this.getInstructions({ requestContext: streamOptions?.requestContext });\n const additionalInstructions = baseOptions.instructions;\n\n let enhancedInstructions = originalInstructions as string;\n if (additionalInstructions) {\n enhancedInstructions = `${originalInstructions}\\n\\n${additionalInstructions}`;\n }\n const enhancedContext = [...(baseOptions.context || ([] as AgentExecutionOptions['context'][]))];\n\n const enhancedOptions = {\n ...baseOptions,\n temperature: 0.3, // Lower temperature for more consistent code generation\n maxSteps: baseOptions?.maxSteps || 100,\n instructions: enhancedInstructions,\n context: enhancedContext,\n } as any;\n\n this.logger.debug('Starting streaming with enhanced context', {\n agent: this.name,\n projectPath: this.builderConfig.projectPath,\n });\n\n return super.stream(messages, enhancedOptions);\n }\n\n async generate<\n OUTPUT extends StandardSchemaWithJSON,\n T extends InferStandardSchemaOutput = InferStandardSchemaOutput,\n >(\n messages: MessageListInput,\n options: AgentExecutionOptionsBase & {\n structuredOutput: PublicStructuredOutputOptions;\n },\n ): Promise>;\n async generate(\n messages: MessageListInput,\n options: AgentExecutionOptionsBase & {\n structuredOutput: PublicStructuredOutputOptions;\n },\n ): Promise>;\n async generate(\n messages: MessageListInput,\n options: AgentExecutionOptionsBase & {\n structuredOutput?: never;\n },\n ): Promise>;\n async generate(messages: MessageListInput): Promise>;\n async generate(\n messages: MessageListInput,\n options?: AgentExecutionOptionsBase & {\n structuredOutput?: PublicStructuredOutputOptions;\n },\n ): Promise> {\n const { ...baseOptions } = options || {};\n\n const originalInstructions = await this.getInstructions({ requestContext: options?.requestContext });\n const additionalInstructions = baseOptions.instructions;\n\n let enhancedInstructions = originalInstructions as string;\n if (additionalInstructions) {\n enhancedInstructions = `${originalInstructions}\\n\\n${additionalInstructions}`;\n }\n const enhancedContext = [...(baseOptions.context || [])];\n\n const enhancedOptions = {\n ...baseOptions,\n temperature: 0.3, // Lower temperature for more consistent code generation\n maxSteps: baseOptions?.maxSteps || 100,\n instructions: enhancedInstructions,\n context: enhancedContext,\n } as any;\n\n this.logger.debug('Starting generation with enhanced context', {\n agent: this.name,\n projectPath: this.builderConfig.projectPath,\n });\n\n return super.generate(messages, enhancedOptions);\n }\n}\n","import { existsSync } from 'node:fs';\nimport { mkdtemp, copyFile, readFile, mkdir, readdir, rm, writeFile } from 'node:fs/promises';\nimport { tmpdir } from 'node:os';\nimport { join, dirname, resolve, extname, basename } from 'node:path';\nimport { openai } from '@ai-sdk/openai';\nimport {\n Agent,\n tryGenerateWithJsonFallback,\n tryStreamWithJsonFallback,\n isSupportedLanguageModel,\n} from '@mastra/core/agent';\nimport { toStandardSchema } from '@mastra/core/schema';\nimport type { FullOutput } from '@mastra/core/stream';\nimport { createTool } from '@mastra/core/tools';\nimport { createWorkflow, createStep } from '@mastra/core/workflows';\nimport { standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport { z } from 'zod';\nimport { AgentBuilder } from '../..';\nimport { AgentBuilderDefaults } from '../../defaults';\nimport type { TemplateUnit, UnitKind } from '../../types';\nimport {\n ApplyResultSchema,\n AgentBuilderInputSchema,\n CloneTemplateResultSchema,\n PackageAnalysisSchema,\n DiscoveryResultSchema,\n OrderedUnitsSchema,\n PackageMergeInputSchema,\n PackageMergeResultSchema,\n InstallInputSchema,\n InstallResultSchema,\n FileCopyInputSchema,\n FileCopyResultSchema,\n IntelligentMergeInputSchema,\n IntelligentMergeResultSchema,\n ValidationFixInputSchema,\n ValidationFixResultSchema,\n PrepareBranchInputSchema,\n PrepareBranchResultSchema,\n} from '../../types';\nimport {\n getMastraTemplate,\n kindWeight,\n spawnSWPM,\n logGitState,\n backupAndReplaceFile,\n renameAndCopyFile,\n gitCheckoutBranch,\n gitClone,\n gitCheckoutRef,\n gitRevParse,\n gitAddAndCommit,\n resolveTargetPath,\n mergeGitignoreFiles,\n mergeEnvFiles,\n resolveModel,\n} from '../../utils';\n\ntype AgentBuilderInputSchemaType = z.infer;\n\n// Step 1: Clone template to temp directory\nconst cloneTemplateStep = createStep({\n id: 'clone-template',\n description: 'Clone the template repository to a temporary directory at the specified ref',\n inputSchema: AgentBuilderInputSchema,\n outputSchema: CloneTemplateResultSchema,\n execute: async ({ inputData }) => {\n const { repo, ref = 'main', slug, targetPath } = inputData;\n\n if (!repo) {\n throw new Error('Repository URL or path is required');\n }\n\n // Extract slug from repo URL if not provided\n const inferredSlug =\n slug ||\n repo\n .split('/')\n .pop()\n ?.replace(/\\.git$/, '') ||\n 'template';\n\n // Create temporary directory\n const tempDir = await mkdtemp(join(tmpdir(), 'mastra-template-'));\n\n try {\n // Clone repository\n await gitClone(repo, tempDir);\n\n // Checkout specific ref if provided\n if (ref !== 'main' && ref !== 'master') {\n await gitCheckoutRef(tempDir, ref);\n }\n\n // Get commit SHA\n const commitSha = await gitRevParse(tempDir, 'HEAD');\n\n return {\n templateDir: tempDir,\n commitSha: commitSha.trim(),\n slug: inferredSlug,\n success: true,\n targetPath,\n };\n } catch (error) {\n // Cleanup on error\n try {\n await rm(tempDir, { recursive: true, force: true });\n } catch {}\n\n return {\n templateDir: '',\n commitSha: '',\n slug: slug || 'unknown',\n success: false,\n error: `Failed to clone template: ${error instanceof Error ? error.message : String(error)}`,\n targetPath,\n };\n }\n },\n});\n\n// Step 2: Analyze template package.json for dependencies\nconst analyzePackageStep = createStep({\n id: 'analyze-package',\n description: 'Analyze the template package.json to extract dependency information',\n inputSchema: CloneTemplateResultSchema,\n outputSchema: PackageAnalysisSchema,\n execute: async ({ inputData }) => {\n console.info('Analyzing template package.json...');\n const { templateDir } = inputData;\n const packageJsonPath = join(templateDir, 'package.json');\n\n try {\n const packageJsonContent = await readFile(packageJsonPath, 'utf-8');\n const packageJson = JSON.parse(packageJsonContent);\n\n console.info('Template package.json:', JSON.stringify(packageJson, null, 2));\n\n return {\n dependencies: packageJson.dependencies || {},\n devDependencies: packageJson.devDependencies || {},\n peerDependencies: packageJson.peerDependencies || {},\n scripts: packageJson.scripts || {},\n name: packageJson.name || '',\n version: packageJson.version || '',\n description: packageJson.description || '',\n success: true,\n };\n } catch (error) {\n console.warn(`Failed to read template package.json: ${error instanceof Error ? error.message : String(error)}`);\n return {\n dependencies: {},\n devDependencies: {},\n peerDependencies: {},\n scripts: {},\n name: '',\n version: '',\n description: '',\n success: true, // This is a graceful fallback, not a failure\n };\n }\n },\n});\n\n// Step 3: Discover template units by scanning the templates directory\nconst discoverUnitsStep = createStep({\n id: 'discover-units',\n description: 'Discover template units by analyzing the templates directory structure',\n inputSchema: CloneTemplateResultSchema,\n outputSchema: DiscoveryResultSchema,\n execute: async ({ inputData, requestContext }) => {\n const { templateDir } = inputData;\n const targetPath = resolveTargetPath(inputData, requestContext);\n\n const tools = await AgentBuilderDefaults.DEFAULT_TOOLS(templateDir);\n\n console.info('targetPath', targetPath);\n\n const model = await resolveModel({ requestContext, projectPath: targetPath, defaultModel: openai('gpt-4.1') });\n\n try {\n const agent = new Agent({\n id: 'mastra-project-discoverer',\n model,\n instructions: `You are an expert at analyzing Mastra projects.\n\nYour task is to scan the provided directory and identify all available units (agents, workflows, tools, MCP servers, networks).\n\nMastra Project Structure Analysis:\n- Each Mastra project has a structure like: ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.agent}, ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.workflow}, ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.tool}, ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE['mcp-server']}, ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.network}\n- Analyze TypeScript files in each category directory to identify exported units\n\nCRITICAL: YOU MUST USE YOUR TOOLS (readFile, listDirectory) TO DISCOVER THE UNITS IN THE TEMPLATE DIRECTORY.\n\nIMPORTANT - Agent Discovery Rules:\n1. **Multiple Agent Files**: Some templates have separate files for each agent (e.g., evaluationAgent.ts, researchAgent.ts)\n2. **Single File Multiple Agents**: Some files may export multiple agents (look for multiple 'export const' or 'export default' statements)\n3. **Agent Identification**: Look for exported variables that are instances of 'new Agent()' or similar patterns\n4. **Naming Convention**: Agent names should be extracted from the export name (e.g., 'weatherAgent', 'evaluationAgent')\n\nFor each Mastra project directory you analyze:\n1. Scan all TypeScript files in ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.agent} and identify ALL exported agents\n2. Scan all TypeScript files in ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.workflow} and identify ALL exported workflows\n3. Scan all TypeScript files in ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.tool} and identify ALL exported tools\n4. Scan all TypeScript files in ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE['mcp-server']} and identify ALL exported MCP servers\n5. Scan all TypeScript files in ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.network} and identify ALL exported networks\n6. Scan for any OTHER files in src/mastra that are NOT in the above default folders (e.g., lib/, utils/, types/, etc.) and identify them as 'other' files\n\nIMPORTANT - Naming Consistency Rules:\n- For ALL unit types (including 'other'), the 'name' field should be the filename WITHOUT extension\n- For structured units (agents, workflows, tools, etc.), prefer the actual export name if clearly identifiable\n- use the base filename without extension for the id (e.g., 'util.ts' → name: 'util')\n- use the relative path from the template root for the file (e.g., 'src/mastra/lib/util.ts' → file: 'src/mastra/lib/util.ts')\n\nReturn the actual exported names of the units, as well as the file names.`,\n name: 'Mastra Project Discoverer',\n tools: {\n readFile: tools.readFile,\n listDirectory: tools.listDirectory,\n },\n });\n\n const resolvedModel = await agent.getModel();\n const isSupported = isSupportedLanguageModel(resolvedModel);\n\n const prompt = `Analyze the Mastra project directory structure at \"${templateDir}\".\n\n List directory contents using listDirectory tool, and then analyze each file with readFile tool.\n IMPORTANT:\n - Look inside the actual file content to find export statements like 'export const agentName = new Agent(...)'\n - A single file may contain multiple exports\n - Return the actual exported variable names, as well as the file names\n - If a directory doesn't exist or has no files, return an empty array\n\n Return the analysis in the exact format specified in the output schema.`;\n\n const output = z.object({\n agents: z.array(z.object({ name: z.string(), file: z.string() })).optional(),\n workflows: z.array(z.object({ name: z.string(), file: z.string() })).optional(),\n tools: z.array(z.object({ name: z.string(), file: z.string() })).optional(),\n mcp: z.array(z.object({ name: z.string(), file: z.string() })).optional(),\n networks: z.array(z.object({ name: z.string(), file: z.string() })).optional(),\n other: z.array(z.object({ name: z.string(), file: z.string() })).optional(),\n });\n\n let result: FullOutput>;\n if (isSupported) {\n result = await tryGenerateWithJsonFallback(agent, prompt, {\n structuredOutput: {\n schema: output,\n },\n maxSteps: 100,\n });\n } else {\n const standardSchema = toStandardSchema(output);\n const jsonSchema = standardSchemaToJSONSchema(standardSchema);\n\n result = (await agent.generateLegacy(prompt, {\n experimental_output: jsonSchema,\n maxSteps: 100,\n })) as unknown as FullOutput>;\n }\n\n const template = result.object ?? {};\n\n const units: TemplateUnit[] = [];\n\n // Add agents\n template.agents?.forEach((agentId: { name: string; file: string }) => {\n units.push({ kind: 'agent', id: agentId.name, file: agentId.file });\n });\n\n // Add workflows\n template.workflows?.forEach((workflowId: { name: string; file: string }) => {\n units.push({ kind: 'workflow', id: workflowId.name, file: workflowId.file });\n });\n\n // Add tools\n template.tools?.forEach((toolId: { name: string; file: string }) => {\n units.push({ kind: 'tool', id: toolId.name, file: toolId.file });\n });\n\n // Add MCP servers\n template.mcp?.forEach((mcpId: { name: string; file: string }) => {\n units.push({ kind: 'mcp-server', id: mcpId.name, file: mcpId.file });\n });\n\n // Add networks\n template.networks?.forEach((networkId: { name: string; file: string }) => {\n units.push({ kind: 'network', id: networkId.name, file: networkId.file });\n });\n\n // Add other files\n template.other?.forEach((otherId: { name: string; file: string }) => {\n units.push({ kind: 'other', id: otherId.name, file: otherId.file });\n });\n\n console.info('Discovered units:', JSON.stringify(units, null, 2));\n\n if (units.length === 0) {\n throw new Error(`No Mastra units (agents, workflows, tools) found in template.\n Possible causes:\n - Template may not follow standard Mastra structure\n - AI agent couldn't analyze template files (model/token limits)\n - Template is empty or in wrong branch\n\n Debug steps:\n - Check template has files in src/mastra/ directories\n - Try a different branch\n - Check template repository structure manually`);\n }\n\n return {\n units,\n success: true,\n };\n } catch (error) {\n console.error('Failed to discover units:', error);\n return {\n units: [],\n success: false,\n error: `Failed to discover units: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n },\n});\n\n// Step 4: Topological ordering (simplified)\nconst orderUnitsStep = createStep({\n id: 'order-units',\n description: 'Sort units in topological order based on kind weights',\n inputSchema: DiscoveryResultSchema,\n outputSchema: OrderedUnitsSchema,\n execute: async ({ inputData }) => {\n const { units } = inputData;\n\n // Simple sort by kind weight (mcp-servers first, then tools, agents, workflows, integration last)\n const orderedUnits = [...units].sort((a, b) => {\n const aWeight = kindWeight(a.kind);\n const bWeight = kindWeight(b.kind);\n return aWeight - bWeight;\n });\n\n return {\n orderedUnits,\n success: true,\n };\n },\n});\n\n// Step 5: Prepare branch\nconst prepareBranchStep = createStep({\n id: 'prepare-branch',\n description: 'Create or switch to integration branch before modifications',\n inputSchema: PrepareBranchInputSchema,\n outputSchema: PrepareBranchResultSchema,\n execute: async ({ inputData, requestContext }) => {\n const targetPath = resolveTargetPath(inputData, requestContext);\n\n try {\n const branchName = `feat/install-template-${inputData.slug}`;\n await gitCheckoutBranch(branchName, targetPath);\n\n return {\n branchName,\n success: true,\n };\n } catch (error) {\n console.error('Failed to prepare branch:', error);\n return {\n branchName: `feat/install-template-${inputData.slug}`, // Return the intended name anyway\n success: false,\n error: `Failed to prepare branch: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n },\n});\n\n// Step 6: Package merge\nconst packageMergeStep = createStep({\n id: 'package-merge',\n description: 'Merge template package.json dependencies into target project',\n inputSchema: PackageMergeInputSchema,\n outputSchema: PackageMergeResultSchema,\n execute: async ({ inputData, requestContext }) => {\n console.info('Package merge step starting...');\n const { slug, packageInfo } = inputData;\n const targetPath = resolveTargetPath(inputData, requestContext);\n\n try {\n const targetPkgPath = join(targetPath, 'package.json');\n\n let targetPkgRaw = '{}';\n try {\n targetPkgRaw = await readFile(targetPkgPath, 'utf-8');\n } catch {\n console.warn(`No existing package.json at ${targetPkgPath}, creating a new one`);\n }\n\n let targetPkg: any;\n try {\n targetPkg = JSON.parse(targetPkgRaw || '{}');\n } catch (e) {\n throw new Error(\n `Failed to parse existing package.json at ${targetPkgPath}: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n\n const ensureObj = (o: any) => (o && typeof o === 'object' ? o : {});\n\n targetPkg.dependencies = ensureObj(targetPkg.dependencies);\n targetPkg.devDependencies = ensureObj(targetPkg.devDependencies);\n targetPkg.peerDependencies = ensureObj(targetPkg.peerDependencies);\n targetPkg.scripts = ensureObj(targetPkg.scripts);\n\n const tplDeps = ensureObj(packageInfo.dependencies);\n const tplDevDeps = ensureObj(packageInfo.devDependencies);\n const tplPeerDeps = ensureObj(packageInfo.peerDependencies);\n const tplScripts = ensureObj(packageInfo.scripts);\n\n const existsAnywhere = (name: string) =>\n name in targetPkg.dependencies || name in targetPkg.devDependencies || name in targetPkg.peerDependencies;\n\n // Merge dependencies: add only if missing everywhere\n for (const [name, ver] of Object.entries(tplDeps)) {\n if (!existsAnywhere(name)) {\n (targetPkg.dependencies as Record)[name] = String(ver);\n }\n }\n\n // Merge devDependencies\n for (const [name, ver] of Object.entries(tplDevDeps)) {\n if (!existsAnywhere(name)) {\n (targetPkg.devDependencies as Record)[name] = String(ver);\n }\n }\n\n // Merge peerDependencies\n for (const [name, ver] of Object.entries(tplPeerDeps)) {\n if (!(name in targetPkg.peerDependencies)) {\n (targetPkg.peerDependencies as Record)[name] = String(ver);\n }\n }\n\n // Merge scripts with prefixed keys to avoid collisions\n const prefix = `template:${slug}:`;\n for (const [name, cmd] of Object.entries(tplScripts)) {\n const newKey = `${prefix}${name}`;\n if (!(newKey in targetPkg.scripts)) {\n (targetPkg.scripts as Record)[newKey] = String(cmd);\n }\n }\n\n await writeFile(targetPkgPath, JSON.stringify(targetPkg, null, 2), 'utf-8');\n\n await gitAddAndCommit(targetPath, `feat(template): merge deps for ${slug}`, [targetPkgPath], {\n skipIfNoStaged: true,\n });\n\n return {\n success: true,\n applied: true,\n message: `Successfully merged template dependencies for ${slug}`,\n };\n } catch (error) {\n console.error('Package merge failed:', error);\n return {\n success: false,\n applied: false,\n message: `Package merge failed: ${error instanceof Error ? error.message : String(error)}`,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\n// Step 7: Install\nconst installStep = createStep({\n id: 'install',\n description: 'Install packages based on merged package.json',\n inputSchema: InstallInputSchema,\n outputSchema: InstallResultSchema,\n execute: async ({ inputData, requestContext }) => {\n console.info('Running install step...');\n const targetPath = resolveTargetPath(inputData, requestContext);\n\n try {\n // Run install using swpm (no specific packages)\n await spawnSWPM(targetPath, 'install', []);\n\n const lock = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock']\n .map(f => join(targetPath, f))\n .find(f => existsSync(f));\n\n if (lock) {\n await gitAddAndCommit(targetPath, `chore(template): commit lockfile after install`, [lock], {\n skipIfNoStaged: true,\n });\n }\n\n return {\n success: true,\n };\n } catch (error) {\n console.error('Install failed:', error);\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\n// Step 7: Programmatic File Copy Step - copies template files to target project\nconst programmaticFileCopyStep = createStep({\n id: 'programmatic-file-copy',\n description: 'Programmatically copy template files to target project based on ordered units',\n inputSchema: FileCopyInputSchema,\n outputSchema: FileCopyResultSchema,\n execute: async ({ inputData, requestContext }) => {\n console.info('Programmatic file copy step starting...');\n const { orderedUnits, templateDir, commitSha, slug } = inputData;\n const targetPath = resolveTargetPath(inputData, requestContext);\n\n try {\n const copiedFiles: Array<{\n source: string;\n destination: string;\n unit: { kind: UnitKind; id: string };\n }> = [];\n\n const conflicts: Array<{\n unit: { kind: UnitKind; id: string };\n issue: string;\n sourceFile: string;\n targetFile: string;\n }> = [];\n\n // Analyze target project naming convention first\n const analyzeNamingConvention = async (\n directory: string,\n ): Promise<'camelCase' | 'snake_case' | 'kebab-case' | 'PascalCase' | 'unknown'> => {\n try {\n const files = await readdir(resolve(targetPath, directory), { withFileTypes: true });\n const tsFiles = files.filter(f => f.isFile() && f.name.endsWith('.ts')).map(f => f.name);\n\n if (tsFiles.length === 0) return 'unknown';\n\n // Check for patterns\n const camelCaseCount = tsFiles.filter(f => /^[a-z][a-zA-Z0-9]*\\.ts$/.test(f)).length;\n const snakeCaseCount = tsFiles.filter(f => /^[a-z][a-z0-9_]*\\.ts$/.test(f) && f.includes('_')).length;\n const kebabCaseCount = tsFiles.filter(f => /^[a-z][a-z0-9-]*\\.ts$/.test(f) && f.includes('-')).length;\n const pascalCaseCount = tsFiles.filter(f => /^[A-Z][a-zA-Z0-9]*\\.ts$/.test(f)).length;\n\n const max = Math.max(camelCaseCount, snakeCaseCount, kebabCaseCount, pascalCaseCount);\n if (max === 0) return 'unknown';\n\n if (camelCaseCount === max) return 'camelCase';\n if (snakeCaseCount === max) return 'snake_case';\n if (kebabCaseCount === max) return 'kebab-case';\n if (pascalCaseCount === max) return 'PascalCase';\n\n return 'unknown';\n } catch {\n return 'unknown';\n }\n };\n\n // Convert naming based on convention\n const convertNaming = (name: string, convention: string): string => {\n const baseName = basename(name, extname(name));\n const ext = extname(name);\n\n // Helper: split a name into words by hyphens, underscores, or camelCase boundaries\n const toWords = (s: string): string[] => {\n return (\n s\n .replace(/[-_]/g, ' ')\n // split \"HTTPServer\" -> \"HTTP Server\"\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .split(/\\s+/)\n .filter(Boolean)\n .map(w => w.toLowerCase())\n );\n };\n\n const words = toWords(baseName);\n\n switch (convention) {\n case 'camelCase':\n return words.map((w, i) => (i === 0 ? w : w.charAt(0).toUpperCase() + w.slice(1))).join('') + ext;\n case 'snake_case':\n return words.join('_') + ext;\n case 'kebab-case':\n return words.join('-') + ext;\n case 'PascalCase':\n return words.map(w => w.charAt(0).toUpperCase() + w.slice(1)).join('') + ext;\n default:\n return name;\n }\n };\n\n // Process each unit\n for (const unit of orderedUnits) {\n console.info(`Processing ${unit.kind} unit \"${unit.id}\" from file \"${unit.file}\"`);\n\n // Resolve source file path with fallback logic\n let sourceFile: string;\n let resolvedUnitFile: string;\n\n // Check if unit.file already contains directory structure\n if (unit.file.includes('/')) {\n // unit.file has path structure (e.g., \"src/mastra/agents/weatherAgent.ts\")\n sourceFile = resolve(templateDir, unit.file);\n resolvedUnitFile = unit.file;\n } else {\n // unit.file is just filename (e.g., \"weatherAgent.ts\") - use fallback\n const folderPath =\n AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE[\n unit.kind as keyof typeof AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE\n ];\n if (!folderPath) {\n conflicts.push({\n unit: { kind: unit.kind, id: unit.id },\n issue: `Unknown unit kind: ${unit.kind}`,\n sourceFile: unit.file,\n targetFile: 'N/A',\n });\n continue;\n }\n resolvedUnitFile = `${folderPath}/${unit.file}`;\n sourceFile = resolve(templateDir, resolvedUnitFile);\n }\n\n // Check if source file exists\n if (!existsSync(sourceFile)) {\n conflicts.push({\n unit: { kind: unit.kind, id: unit.id },\n issue: `Source file not found: ${sourceFile}`,\n sourceFile: resolvedUnitFile,\n targetFile: 'N/A',\n });\n continue;\n }\n\n // Extract target directory from resolved unit file path\n const targetDir = dirname(resolvedUnitFile);\n\n // Analyze target naming convention\n const namingConvention = await analyzeNamingConvention(targetDir);\n console.info(`Detected naming convention in ${targetDir}: ${namingConvention}`);\n\n // Convert unit.id to target filename with proper extension\n // Note: Check if unit.id already includes extension to avoid double extensions\n const hasExtension = extname(unit.id) !== '';\n const baseId = hasExtension ? basename(unit.id, extname(unit.id)) : unit.id;\n const fileExtension = extname(unit.file);\n const convertedFileName =\n namingConvention !== 'unknown'\n ? convertNaming(baseId + fileExtension, namingConvention)\n : baseId + fileExtension;\n\n const targetFile = resolve(targetPath, targetDir, convertedFileName);\n\n // Handle file conflicts with strategy-based resolution\n if (existsSync(targetFile)) {\n const strategy = determineConflictStrategy(unit, targetFile);\n console.info(`File exists: ${convertedFileName}, using strategy: ${strategy}`);\n\n switch (strategy) {\n case 'skip':\n conflicts.push({\n unit: { kind: unit.kind, id: unit.id },\n issue: `File exists - skipped: ${convertedFileName}`,\n sourceFile: unit.file,\n targetFile: `${targetDir}/${convertedFileName}`,\n });\n console.info(`⏭️ Skipped ${unit.kind} \"${unit.id}\": file already exists`);\n continue;\n\n case 'backup-and-replace':\n try {\n await backupAndReplaceFile(sourceFile, targetFile);\n copiedFiles.push({\n source: sourceFile,\n destination: targetFile,\n unit: { kind: unit.kind, id: unit.id },\n });\n console.info(\n `🔄 Replaced ${unit.kind} \"${unit.id}\": ${unit.file} → ${convertedFileName} (backup created)`,\n );\n continue;\n } catch (backupError) {\n conflicts.push({\n unit: { kind: unit.kind, id: unit.id },\n issue: `Failed to backup and replace: ${backupError instanceof Error ? backupError.message : String(backupError)}`,\n sourceFile: unit.file,\n targetFile: `${targetDir}/${convertedFileName}`,\n });\n continue;\n }\n\n case 'rename':\n try {\n const uniqueTargetFile = await renameAndCopyFile(sourceFile, targetFile);\n copiedFiles.push({\n source: sourceFile,\n destination: uniqueTargetFile,\n unit: { kind: unit.kind, id: unit.id },\n });\n console.info(`📝 Renamed ${unit.kind} \"${unit.id}\": ${unit.file} → ${basename(uniqueTargetFile)}`);\n continue;\n } catch (renameError) {\n conflicts.push({\n unit: { kind: unit.kind, id: unit.id },\n issue: `Failed to rename and copy: ${renameError instanceof Error ? renameError.message : String(renameError)}`,\n sourceFile: unit.file,\n targetFile: `${targetDir}/${convertedFileName}`,\n });\n continue;\n }\n\n default:\n conflicts.push({\n unit: { kind: unit.kind, id: unit.id },\n issue: `Unknown conflict strategy: ${strategy}`,\n sourceFile: unit.file,\n targetFile: `${targetDir}/${convertedFileName}`,\n });\n continue;\n }\n }\n\n // Ensure target directory exists\n await mkdir(dirname(targetFile), { recursive: true });\n\n // Copy the file\n try {\n await copyFile(sourceFile, targetFile);\n copiedFiles.push({\n source: sourceFile,\n destination: targetFile,\n unit: { kind: unit.kind, id: unit.id },\n });\n console.info(`✓ Copied ${unit.kind} \"${unit.id}\": ${unit.file} → ${convertedFileName}`);\n } catch (copyError) {\n conflicts.push({\n unit: { kind: unit.kind, id: unit.id },\n issue: `Failed to copy file: ${copyError instanceof Error ? copyError.message : String(copyError)}`,\n sourceFile: unit.file,\n targetFile: `${targetDir}/${convertedFileName}`,\n });\n }\n }\n\n // Ensure tsconfig.json exists in target by copying from template if available, else generate a minimal one\n try {\n const targetTsconfig = resolve(targetPath, 'tsconfig.json');\n if (!existsSync(targetTsconfig)) {\n const templateTsconfig = resolve(templateDir, 'tsconfig.json');\n if (existsSync(templateTsconfig)) {\n await copyFile(templateTsconfig, targetTsconfig);\n copiedFiles.push({\n source: templateTsconfig,\n destination: targetTsconfig,\n unit: { kind: 'other', id: 'tsconfig.json' },\n });\n console.info('✓ Copied tsconfig.json from template to target');\n } else {\n // Generate a minimal tsconfig.json as a fallback\n const minimalTsconfig = {\n compilerOptions: {\n target: 'ES2020',\n module: 'NodeNext',\n moduleResolution: 'NodeNext',\n strict: false,\n esModuleInterop: true,\n skipLibCheck: true,\n resolveJsonModule: true,\n outDir: 'dist',\n },\n include: ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'],\n exclude: ['node_modules', 'dist', 'build', '.next', '.output', '.turbo'],\n } as const;\n\n await writeFile(targetTsconfig, JSON.stringify(minimalTsconfig, null, 2), 'utf-8');\n copiedFiles.push({\n source: '[generated tsconfig.json]',\n destination: targetTsconfig,\n unit: { kind: 'other', id: 'tsconfig.json' },\n });\n console.info('✓ Generated minimal tsconfig.json in target');\n }\n }\n } catch (e) {\n conflicts.push({\n unit: { kind: 'other', id: 'tsconfig.json' },\n issue: `Failed to ensure tsconfig.json: ${e instanceof Error ? e.message : String(e)}`,\n sourceFile: 'tsconfig.json',\n targetFile: 'tsconfig.json',\n });\n }\n\n // If the target project has no Mastra index file, copy from template\n try {\n const targetMastraIndex = resolve(targetPath, 'src/mastra/index.ts');\n if (!existsSync(targetMastraIndex)) {\n const templateMastraIndex = resolve(templateDir, 'src/mastra/index.ts');\n if (existsSync(templateMastraIndex)) {\n if (!existsSync(dirname(targetMastraIndex))) {\n await mkdir(dirname(targetMastraIndex), { recursive: true });\n }\n await copyFile(templateMastraIndex, targetMastraIndex);\n copiedFiles.push({\n source: templateMastraIndex,\n destination: targetMastraIndex,\n unit: { kind: 'other', id: 'mastra-index' },\n });\n console.info('✓ Copied Mastra index file from template');\n }\n }\n } catch (e) {\n conflicts.push({\n unit: { kind: 'other', id: 'mastra-index' },\n issue: `Failed to ensure Mastra index file: ${e instanceof Error ? e.message : String(e)}`,\n sourceFile: 'src/mastra/index.ts',\n targetFile: 'src/mastra/index.ts',\n });\n }\n\n // Handle .gitignore file merging\n try {\n const targetGitignore = resolve(targetPath, '.gitignore');\n const templateGitignore = resolve(templateDir, '.gitignore');\n\n const targetExists = existsSync(targetGitignore);\n const templateExists = existsSync(templateGitignore);\n\n if (templateExists) {\n if (!targetExists) {\n // Target has no .gitignore - copy template's completely\n await copyFile(templateGitignore, targetGitignore);\n copiedFiles.push({\n source: templateGitignore,\n destination: targetGitignore,\n unit: { kind: 'other', id: 'gitignore' },\n });\n console.info('✓ Copied .gitignore from template to target');\n } else {\n // Both exist - merge them intelligently\n const targetContent = await readFile(targetGitignore, 'utf-8');\n const templateContent = await readFile(templateGitignore, 'utf-8');\n\n const mergedContent = mergeGitignoreFiles(targetContent, templateContent, slug);\n\n if (mergedContent !== targetContent) {\n const addedLines = mergedContent.split('\\n').length - targetContent.split('\\n').length;\n await writeFile(targetGitignore, mergedContent, 'utf-8');\n copiedFiles.push({\n source: templateGitignore,\n destination: targetGitignore,\n unit: { kind: 'other', id: 'gitignore-merge' },\n });\n console.info(`✓ Merged template .gitignore entries into existing .gitignore (${addedLines} new entries)`);\n } else {\n console.info('ℹ No new .gitignore entries to add from template');\n }\n }\n }\n } catch (e) {\n conflicts.push({\n unit: { kind: 'other', id: 'gitignore' },\n issue: `Failed to handle .gitignore file: ${e instanceof Error ? e.message : String(e)}`,\n sourceFile: '.gitignore',\n targetFile: '.gitignore',\n });\n }\n\n // Handle .env file merging with template variables\n try {\n const { variables } = inputData;\n if (variables && Object.keys(variables).length > 0) {\n const targetEnv = resolve(targetPath, '.env');\n const targetExists = existsSync(targetEnv);\n\n if (!targetExists) {\n // Target has no .env - create new one with template variables\n const envContent = [\n `# Environment variables for ${slug}`,\n ...Object.entries(variables).map(([key, value]) => `${key}=${value}`),\n ].join('\\n');\n\n await writeFile(targetEnv, envContent, 'utf-8');\n copiedFiles.push({\n source: '[template variables]',\n destination: targetEnv,\n unit: { kind: 'other', id: 'env' },\n });\n console.info(`✓ Created .env file with ${Object.keys(variables).length} template variables`);\n } else {\n // Both exist - merge them intelligently\n const targetContent = await readFile(targetEnv, 'utf-8');\n const mergedContent = mergeEnvFiles(targetContent, variables, slug);\n\n if (mergedContent !== targetContent) {\n const addedLines = mergedContent.split('\\n').length - targetContent.split('\\n').length;\n await writeFile(targetEnv, mergedContent, 'utf-8');\n copiedFiles.push({\n source: '[template variables]',\n destination: targetEnv,\n unit: { kind: 'other', id: 'env-merge' },\n });\n console.info(`✓ Merged new environment variables into existing .env file (${addedLines} new entries)`);\n } else {\n console.info('ℹ No new environment variables to add (all already exist in .env)');\n }\n }\n }\n } catch (e) {\n conflicts.push({\n unit: { kind: 'other', id: 'env' },\n issue: `Failed to handle .env file: ${e instanceof Error ? e.message : String(e)}`,\n sourceFile: '.env',\n targetFile: '.env',\n });\n }\n\n // Commit the copied files\n if (copiedFiles.length > 0) {\n try {\n const fileList = copiedFiles.map(f => f.destination);\n await gitAddAndCommit(\n targetPath,\n `feat(template): copy ${copiedFiles.length} files from ${slug}@${commitSha.substring(0, 7)}`,\n fileList,\n { skipIfNoStaged: true },\n );\n console.info(`✓ Committed ${copiedFiles.length} copied files`);\n } catch (commitError) {\n console.warn('Failed to commit copied files:', commitError);\n }\n }\n\n const message = `Programmatic file copy completed. Copied ${copiedFiles.length} files, ${conflicts.length} conflicts detected.`;\n console.info(message);\n\n return {\n success: true,\n copiedFiles,\n conflicts,\n message,\n };\n } catch (error) {\n console.error('Programmatic file copy failed:', error);\n\n return {\n success: false,\n copiedFiles: [],\n conflicts: [],\n message: `Programmatic file copy failed: ${error instanceof Error ? error.message : String(error)}`,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\n// Step 9: Intelligent merging with AgentBuilder\nconst intelligentMergeStep = createStep({\n id: 'intelligent-merge',\n description: 'Use AgentBuilder to intelligently merge template files',\n inputSchema: IntelligentMergeInputSchema,\n outputSchema: IntelligentMergeResultSchema,\n execute: async ({ inputData, requestContext }) => {\n console.info('Intelligent merge step starting...');\n const { conflicts, copiedFiles, commitSha, slug, templateDir, branchName } = inputData;\n const targetPath = resolveTargetPath(inputData, requestContext);\n try {\n const model = await resolveModel({ requestContext, projectPath: targetPath, defaultModel: openai('gpt-4.1') });\n\n // Create copyFile tool for edge cases\n const copyFileTool = createTool({\n id: 'copy-file',\n description:\n 'Copy a file from template to target project (use only for edge cases - most files are already copied programmatically).',\n inputSchema: z.object({\n sourcePath: z.string().describe('Path to the source file relative to template directory'),\n destinationPath: z.string().describe('Path to the destination file relative to target project'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n message: z.string(),\n errorMessage: z.string().optional(),\n }),\n execute: async input => {\n try {\n const { sourcePath, destinationPath } = input;\n\n // Use templateDir directly from input\n const resolvedSourcePath = resolve(templateDir, sourcePath);\n const resolvedDestinationPath = resolve(targetPath, destinationPath);\n\n if (existsSync(resolvedSourcePath) && !existsSync(dirname(resolvedDestinationPath))) {\n await mkdir(dirname(resolvedDestinationPath), { recursive: true });\n }\n\n await copyFile(resolvedSourcePath, resolvedDestinationPath);\n return {\n success: true,\n message: `Successfully copied file from ${sourcePath} to ${destinationPath}`,\n };\n } catch (err) {\n return {\n success: false,\n message: `Failed to copy file: ${err instanceof Error ? err.message : String(err)}`,\n errorMessage: err instanceof Error ? err.message : String(err),\n };\n }\n },\n });\n\n // Initialize AgentBuilder for merge and registration\n const agentBuilder = new AgentBuilder({\n projectPath: targetPath,\n mode: 'template',\n model,\n instructions: `\nYou are an expert at integrating Mastra template components into existing projects.\n\nCRITICAL CONTEXT:\n- Files have been programmatically copied from template to target project\n- Your job is to handle integration issues, registration, and validation\n\nFILES SUCCESSFULLY COPIED:\n${JSON.stringify(copiedFiles, null, 2)}\n\nCONFLICTS TO RESOLVE:\n${JSON.stringify(conflicts, null, 2)}\n\nCRITICAL INSTRUCTIONS:\n1. **Package management**: NO need to install packages (already handled by package merge step)\n2. **File copying**: Most files are already copied programmatically. Only use copyFile tool for edge cases where additional files are needed for conflict resolution\n\nKEY RESPONSIBILITIES:\n1. Resolve any conflicts from the programmatic copy step\n2. Register components in existing Mastra index file (agents, workflows, networks, mcp-servers)\n3. DO NOT register tools in existing Mastra index file - tools should remain standalone\n4. Copy additional files ONLY if needed for conflict resolution\n\nMASTRA INDEX FILE HANDLING (src/mastra/index.ts):\n1. **Verify the file exists**\n - Call readFile\n - If it fails with ENOENT (or listDirectory shows it missing) -> copyFile the template version to src/mastra/index.ts, then confirm it now exists\n - Always verify after copying that the file exists and is accessible\n\n2. **Edit the file**\n - Always work with the full file content\n - Generate the complete, correct source (imports, anchors, registrations, formatting)\n - Keep existing registrations intact and maintain file structure\n - Ensure proper spacing and organization of new additions\n\n3. **Handle anchors and structure**\n - When generating new content, ensure you do not duplicate existing imports or object entries\n - If required anchors (e.g., agents: {}) are missing, add them while generating the new content\n - Add missing anchors just before the closing brace of the Mastra config\n - Do not restructure or reorder existing anchors and registrations\n\nCRITICAL: ALWAYS use writeFile to update the mastra/index.ts file when needed to register new components.\n\nMASTRA-SPECIFIC REGISTRATION:\n- Agents: Register in existing Mastra index file\n- Workflows: Register in existing Mastra index file\n- Networks: Register in existing Mastra index file\n- MCP servers: Register in existing Mastra index file\n- Tools: Copy to ${AgentBuilderDefaults.DEFAULT_FOLDER_STRUCTURE.tool} but DO NOT register in existing Mastra index file\n- If an anchor (e.g., \"agents: {\") is not found, avoid complex restructuring; instead, insert the missing anchor on a new line (e.g., add \"agents: {\" just before the closing brace of the Mastra config) and then proceed with the other registrations.\n\nCONFLICT RESOLUTION AND FILE COPYING:\n- Only copy files if needed to resolve specific conflicts\n- When copying files from template:\n - Ensure you get the right file name and path\n - Verify the destination directory exists\n - Maintain the same relative path structure\n - Only copy files that are actually needed\n- Preserve existing functionality when resolving conflicts\n- Focus on registration and conflict resolution, validation will happen in a later step\n\nTemplate information:\n- Slug: ${slug}\n- Commit: ${commitSha.substring(0, 7)}\n- Branch: ${branchName}\n`,\n tools: {\n copyFile: copyFileTool,\n },\n });\n\n // Create task list for systematic processing\n const tasks = [];\n\n // Add conflict resolution tasks\n conflicts.forEach(conflict => {\n tasks.push({\n id: `conflict-${conflict.unit.kind}-${conflict.unit.id}`,\n content: `Resolve conflict: ${conflict.issue}`,\n status: 'pending' as const,\n priority: 'high' as const,\n notes: `Unit: ${conflict.unit.kind}:${conflict.unit.id}, Issue: ${conflict.issue}, Source: ${conflict.sourceFile}, Target: ${conflict.targetFile}`,\n });\n });\n\n // Add registration tasks for successfully copied files\n const registrableKinds = new Set(['agent', 'workflow', 'network', 'mcp-server']);\n const registrableFiles = copiedFiles.filter(f => registrableKinds.has(f.unit.kind as any));\n const targetMastraIndex = resolve(targetPath, 'src/mastra/index.ts');\n const mastraIndexExists = existsSync(targetMastraIndex);\n console.info(`Mastra index exists: ${mastraIndexExists} at ${targetMastraIndex}`);\n console.info(\n 'Registrable components:',\n registrableFiles.map(f => `${f.unit.kind}:${f.unit.id}`),\n );\n if (registrableFiles.length > 0) {\n tasks.push({\n id: 'register-components',\n content: `Register ${registrableFiles.length} components in existing Mastra index file (src/mastra/index.ts)`,\n status: 'pending' as const,\n priority: 'medium' as const,\n dependencies: conflicts.length > 0 ? conflicts.map(c => `conflict-${c.unit.kind}-${c.unit.id}`) : undefined,\n notes: `Components to register: ${registrableFiles.map(f => `${f.unit.kind}:${f.unit.id}`).join(', ')}`,\n });\n }\n\n // Note: Validation is handled by the dedicated validation step, not here\n\n console.info(`Creating task list with ${tasks.length} tasks...`);\n await AgentBuilderDefaults.manageTaskList({ action: 'create', tasks });\n\n // Log git state before merge operations\n await logGitState(targetPath, 'before intelligent merge');\n\n const prompt = `\nYou need to work through a task list to complete the template integration.\n\nCRITICAL INSTRUCTIONS:\n\n**STEP 1: GET YOUR TASK LIST**\n1. Use manageTaskList tool with action \"list\" to see all pending tasks\n2. Work through tasks in dependency order (complete dependencies first)\n\n**STEP 2: PROCESS EACH TASK SYSTEMATICALLY**\nFor each task:\n1. Use manageTaskList to mark the current task as 'in_progress'\n2. Complete the task according to its requirements\n3. Use manageTaskList to mark the task as 'completed' when done\n4. Continue until all tasks are completed\n\n**TASK TYPES AND REQUIREMENTS:**\n\n**Conflict Resolution Tasks:**\n- Analyze the specific conflict and determine best resolution strategy\n- For file name conflicts: merge content or rename appropriately\n- For missing files: investigate and copy if needed\n- For other issues: apply appropriate fixes\n\n**Component Registration Task:**\n- Update main Mastra instance file to register new components\n- Only register: agents, workflows, networks, mcp-servers\n- DO NOT register tools in main config\n- Ensure proper import paths and naming conventions\n\n**COMMIT STRATEGY:**\n- After resolving conflicts: \"feat(template): resolve conflicts for ${slug}@${commitSha.substring(0, 7)}\"\n- After registration: \"feat(template): register components from ${slug}@${commitSha.substring(0, 7)}\"\n\n**CRITICAL NOTES:**\n- Template source: ${templateDir}\n- Target project: ${targetPath}\n- Focus ONLY on conflict resolution and component registration\n- Use executeCommand for git commits after each task\n- DO NOT perform validation - that's handled by the dedicated validation step\n\nStart by listing your tasks and work through them systematically!\n`;\n\n // Process tasks systematically\n const resolvedModel = await agentBuilder.getModel();\n const isSupported = isSupportedLanguageModel(resolvedModel);\n\n const result = isSupported ? await agentBuilder.stream(prompt) : await agentBuilder.streamLegacy(prompt);\n\n // Extract actual conflict resolution details from agent execution\n const actualResolutions: Array<{\n taskId: string;\n action: string;\n status: string;\n content: string;\n notes?: string;\n }> = [];\n\n for await (const chunk of result.fullStream) {\n if (chunk.type === 'step-finish' || chunk.type === 'step-start') {\n const chunkData = 'payload' in chunk ? chunk.payload : chunk;\n console.info({\n type: chunk.type,\n msgId: chunkData.messageId,\n });\n } else {\n console.info(JSON.stringify(chunk, null, 2));\n\n // Extract task management tool results\n if (chunk.type === 'tool-result') {\n const chunkData = 'payload' in chunk ? chunk.payload : chunk;\n if (chunkData.toolName === 'manageTaskList') {\n try {\n const toolResult = chunkData.result;\n if (toolResult.action === 'update' && toolResult.status === 'completed') {\n actualResolutions.push({\n taskId: toolResult.taskId || '',\n action: toolResult.action,\n status: toolResult.status,\n content: toolResult.content || '',\n notes: toolResult.notes,\n });\n console.info(`📋 Task completed: ${toolResult.taskId} - ${toolResult.content}`);\n }\n } catch (parseError) {\n console.warn('Failed to parse task management result:', parseError);\n }\n }\n }\n }\n }\n\n // Log git state after merge operations\n await logGitState(targetPath, 'after intelligent merge');\n\n // Map actual resolutions back to conflicts\n const conflictResolutions = conflicts.map(conflict => {\n const taskId = `conflict-${conflict.unit.kind}-${conflict.unit.id}`;\n const actualResolution = actualResolutions.find(r => r.taskId === taskId);\n\n if (actualResolution) {\n return {\n unit: conflict.unit,\n issue: conflict.issue,\n resolution:\n actualResolution.notes ||\n actualResolution.content ||\n `Completed: ${conflict.unit.kind} ${conflict.unit.id}`,\n actualWork: true,\n };\n } else {\n return {\n unit: conflict.unit,\n issue: conflict.issue,\n resolution: `No specific resolution found for ${conflict.unit.kind} ${conflict.unit.id}`,\n actualWork: false,\n };\n }\n });\n\n await gitAddAndCommit(targetPath, `feat(template): apply intelligent merge for ${slug}`, undefined, {\n skipIfNoStaged: true,\n });\n\n return {\n success: true,\n applied: true,\n message: `Successfully resolved ${conflicts.length} conflicts from template ${slug}`,\n conflictsResolved: conflictResolutions,\n };\n } catch (error) {\n return {\n success: false,\n applied: false,\n message: `Failed to resolve conflicts: ${error instanceof Error ? error.message : String(error)}`,\n conflictsResolved: [],\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\n// Step 10: Validation and Fix Step - validates merged code and fixes any issues\nconst validationAndFixStep = createStep({\n id: 'validation-and-fix',\n description: 'Validate the merged template code and fix any issues using a specialized agent',\n inputSchema: ValidationFixInputSchema,\n outputSchema: ValidationFixResultSchema,\n execute: async ({ inputData, requestContext }) => {\n console.info('Validation and fix step starting...');\n const { commitSha, slug, orderedUnits, templateDir, copiedFiles, conflictsResolved, maxIterations = 5 } = inputData;\n const targetPath = resolveTargetPath(inputData, requestContext);\n\n // Skip validation if no changes were made\n const hasChanges = copiedFiles.length > 0 || (conflictsResolved && conflictsResolved.length > 0);\n if (!hasChanges) {\n console.info('⏭️ Skipping validation - no files copied or conflicts resolved');\n return {\n success: true,\n applied: false,\n message: 'No changes to validate - template already integrated or no conflicts resolved',\n validationResults: {\n valid: true,\n errorsFixed: 0,\n remainingErrors: 0,\n },\n };\n }\n\n console.info(\n `📋 Changes detected: ${copiedFiles.length} files copied, ${conflictsResolved?.length || 0} conflicts resolved`,\n );\n\n let currentIteration = 1; // Declare at function scope for error handling\n\n try {\n const model = await resolveModel({ requestContext, projectPath: targetPath, defaultModel: openai('gpt-4.1') });\n\n const allTools = await AgentBuilderDefaults.listToolsForMode(targetPath, 'template');\n\n const validationAgent = new Agent({\n id: 'code-validator-fixer',\n name: 'Code Validator Fixer',\n description: 'Specialized agent for validating and fixing template integration issues',\n instructions: `You are a code validation and fixing specialist. Your job is to:\n\n1. **Run comprehensive validation** using the validateCode tool to check for:\n - TypeScript compilation errors\n - ESLint issues\n - Import/export problems\n - Missing dependencies\n - Index file structure and exports\n - Component registration correctness\n - Naming convention compliance\n\n2. **Fix validation errors systematically**:\n - Use readFile to examine files with errors\n - Use multiEdit for simple search-replace fixes (single line changes)\n - Use replaceLines for complex multiline fixes (imports, function signatures, etc.)\n - Use listDirectory to understand project structure when fixing import paths\n - Update file contents to resolve TypeScript and linting issues\n\n3. **Choose the right tool for the job**:\n - multiEdit: Simple replacements, single line changes, small fixes\n - replaceLines: Multiline imports, function signatures, complex code blocks\n - writeFile: ONLY for creating new files (never overwrite existing)\n\n4. **Create missing files ONLY when necessary**:\n - Use writeFile ONLY for creating NEW files that don't exist\n - NEVER overwrite existing files - use multiEdit or replaceLines instead\n - Common cases: missing barrel files (index.ts), missing config files, missing type definitions\n - Always check with readFile first to ensure file doesn't exist\n\n5. **Fix ALL template integration issues**:\n - Fix import path issues in copied files\n - Ensure TypeScript imports and exports are correct\n - Validate integration works properly\n - Fix files copied with new names based on unit IDs\n - Update original template imports that reference old filenames\n - Fix missing imports in index files\n - Fix incorrect file paths in imports\n - Fix type mismatches after integration\n - Fix missing exports in barrel files\n - Use the COPIED FILES mapping below to fix import paths\n - Fix any missing dependencies or module resolution issues\n\n6. **Validate index file structure**:\n - Correct imports for all components\n - Proper anchor structure (agents: {}, etc.)\n - No duplicate registrations\n - Correct export names and paths\n - Proper formatting and organization\n\n7. **Follow naming conventions**:\n Import paths:\n - camelCase: import { myAgent } from './myAgent'\n - snake_case: import { myAgent } from './my_agent'\n - kebab-case: import { myAgent } from './my-agent'\n - PascalCase: import { MyAgent } from './MyAgent'\n\n File names:\n - camelCase: weatherAgent.ts, chatAgent.ts\n - snake_case: weather_agent.ts, chat_agent.ts\n - kebab-case: weather-agent.ts, chat-agent.ts\n - PascalCase: WeatherAgent.ts, ChatAgent.ts\n\n Key Rule: Keep variable/export names unchanged, only adapt file names and import paths\n\n8. **Re-validate after fixes** to ensure all issues are resolved\n\nCRITICAL: Always validate the entire project first to get a complete picture of issues, then fix them systematically, and re-validate to confirm fixes worked.\n\nCRITICAL TOOL SELECTION GUIDE:\n- **multiEdit**: Use for simple string replacements, single-line changes\n Example: changing './oldPath' to './newPath'\n \n- **replaceLines**: Use for multiline fixes, complex code structures\n Example: fixing multiline imports, function signatures, or code blocks\n Usage: replaceLines({ filePath: 'file.ts', startLine: 5, endLine: 8, newContent: 'new multiline content' })\n \n- **writeFile**: ONLY for creating new files that don't exist\n Example: creating missing index.ts barrel files\n\nCRITICAL WRITEFILЕ SAFETY RULES:\n- ONLY use writeFile for creating NEW files that don't exist\n- ALWAYS check with readFile first to verify file doesn't exist\n- NEVER use writeFile to overwrite existing files - use multiEdit or replaceLines instead\n- Common valid uses: missing index.ts barrel files, missing type definitions, missing config files\n\nCRITICAL IMPORT PATH RESOLUTION:\nThe following files were copied from template with new names:\n${JSON.stringify(copiedFiles, null, 2)}\n\nWhen fixing import errors:\n1. Check if the missing module corresponds to a copied file\n2. Use listDirectory to verify actual filenames in target directories\n3. Update import paths to match the actual copied filenames\n4. Ensure exported variable names match what's being imported\n\nEXAMPLE: If error shows \"Cannot find module './tools/download-csv-tool'\" but a file was copied as \"csv-fetcher-tool.ts\", update the import to \"./tools/csv-fetcher-tool\"\n\n${conflictsResolved ? `CONFLICTS RESOLVED BY INTELLIGENT MERGE:\\n${JSON.stringify(conflictsResolved, null, 2)}\\n` : ''}\n\nINTEGRATED UNITS:\n${JSON.stringify(orderedUnits, null, 2)}\n\nBe thorough and methodical. Always use listDirectory to verify actual file existence before fixing imports.`,\n model,\n tools: {\n validateCode: allTools.validateCode,\n readFile: allTools.readFile,\n writeFile: allTools.writeFile,\n multiEdit: allTools.multiEdit,\n replaceLines: allTools.replaceLines,\n listDirectory: allTools.listDirectory,\n executeCommand: allTools.executeCommand,\n },\n });\n\n console.info('Starting validation and fix agent with internal loop...');\n\n let validationResults = {\n valid: false,\n errorsFixed: 0,\n remainingErrors: 1, // Start with 1 to enter the loop\n iteration: currentIteration,\n lastValidationErrors: [] as any[], // Store the actual error details\n };\n\n // Loop up to maxIterations times or until all errors are fixed\n while (validationResults.remainingErrors > 0 && currentIteration <= maxIterations) {\n console.info(`\\n=== Validation Iteration ${currentIteration} ===`);\n\n const iterationPrompt =\n currentIteration === 1\n ? `Please validate the template integration and fix any errors found in the project at ${targetPath}. The template \"${slug}\" (${commitSha.substring(0, 7)}) was just integrated and may have validation issues that need fixing.\n\nStart by running validateCode with all validation types to get a complete picture of any issues, then systematically fix them.`\n : `Continue validation and fixing for the template integration at ${targetPath}. This is iteration ${currentIteration} of validation.\n\nPrevious iterations may have fixed some issues, so start by re-running validateCode to see the current state, then fix any remaining issues.`;\n\n const resolvedModel = await validationAgent.getModel();\n const isSupported = isSupportedLanguageModel(resolvedModel);\n const output = z.object({ success: z.boolean() });\n const result = isSupported\n ? await tryStreamWithJsonFallback(validationAgent, iterationPrompt, {\n structuredOutput: {\n schema: output,\n },\n })\n : await validationAgent.streamLegacy(iterationPrompt, {\n experimental_output: output as any,\n });\n\n let iterationErrors = 0;\n let previousErrors = validationResults.remainingErrors;\n let lastValidationResult: any = null;\n\n for await (const chunk of result.fullStream) {\n if (chunk.type === 'step-finish' || chunk.type === 'step-start') {\n const chunkData = 'payload' in chunk ? chunk.payload : chunk;\n console.info({\n type: chunk.type,\n msgId: chunkData.messageId,\n iteration: currentIteration,\n });\n } else {\n console.info(JSON.stringify(chunk, null, 2));\n }\n if (chunk.type === 'tool-result') {\n // Track validation results\n const chunkData = 'payload' in chunk ? chunk.payload : chunk;\n if (chunkData.toolName === 'validateCode') {\n const toolResult = chunkData.result;\n lastValidationResult = toolResult; // Store the full result\n if (toolResult?.summary) {\n iterationErrors = toolResult.summary.totalErrors || 0;\n console.info(`Iteration ${currentIteration}: Found ${iterationErrors} errors`);\n }\n }\n }\n }\n\n // Update results for this iteration\n validationResults.remainingErrors = iterationErrors;\n validationResults.errorsFixed += Math.max(0, previousErrors - iterationErrors);\n validationResults.valid = iterationErrors === 0;\n validationResults.iteration = currentIteration;\n\n // Store the last validation errors if any remain\n if (iterationErrors > 0 && lastValidationResult?.errors) {\n validationResults.lastValidationErrors = lastValidationResult.errors;\n }\n\n console.info(`Iteration ${currentIteration} complete: ${iterationErrors} errors remaining`);\n\n // Break if no errors or max iterations reached\n if (iterationErrors === 0) {\n console.info(`✅ All validation issues resolved in ${currentIteration} iterations!`);\n break;\n } else if (currentIteration >= maxIterations) {\n console.info(`⚠️ Max iterations (${maxIterations}) reached. ${iterationErrors} errors still remaining.`);\n break;\n }\n\n currentIteration++;\n }\n\n // Commit the validation fixes\n try {\n await gitAddAndCommit(\n targetPath,\n `fix(template): resolve validation errors for ${slug}@${commitSha.substring(0, 7)}`,\n undefined,\n {\n skipIfNoStaged: true,\n },\n );\n } catch (commitError) {\n console.warn('Failed to commit validation fixes:', commitError);\n }\n\n const success = validationResults.valid;\n\n return {\n success,\n applied: true,\n message: `Validation completed in ${currentIteration} iteration${currentIteration > 1 ? 's' : ''}. ${validationResults.valid ? 'All issues resolved!' : `${validationResults.remainingErrors} issue${validationResults.remainingErrors > 1 ? 's' : ''} remaining`}`,\n validationResults: {\n valid: validationResults.valid,\n errorsFixed: validationResults.errorsFixed,\n remainingErrors: validationResults.remainingErrors,\n errors: validationResults.lastValidationErrors,\n },\n };\n } catch (error) {\n console.error('Validation and fix failed:', error);\n return {\n success: false,\n applied: false,\n message: `Validation and fix failed: ${error instanceof Error ? error.message : String(error)}`,\n validationResults: {\n valid: false,\n errorsFixed: 0,\n remainingErrors: -1,\n },\n error: error instanceof Error ? error.message : String(error),\n };\n } finally {\n // Cleanup template directory\n try {\n await rm(templateDir, { recursive: true, force: true });\n console.info(`✓ Cleaned up template directory: ${templateDir}`);\n } catch (cleanupError) {\n console.warn('Failed to cleanup template directory:', cleanupError);\n }\n }\n },\n});\n\n// Create the complete workflow\nexport const agentBuilderTemplateWorkflow = createWorkflow({\n id: 'agent-builder-template',\n description:\n 'Merges a Mastra template repository into the current project using intelligent AgentBuilder-powered merging',\n inputSchema: AgentBuilderInputSchema,\n outputSchema: ApplyResultSchema,\n steps: [\n cloneTemplateStep,\n analyzePackageStep,\n discoverUnitsStep,\n orderUnitsStep,\n packageMergeStep,\n installStep,\n programmaticFileCopyStep,\n intelligentMergeStep,\n validationAndFixStep,\n ],\n})\n .then(cloneTemplateStep)\n .map(async ({ getStepResult }) => {\n const cloneResult = getStepResult(cloneTemplateStep);\n\n // Check for failure in clone step\n if (shouldAbortWorkflow(cloneResult)) {\n throw new Error(`Critical failure in clone step: ${cloneResult.error}`);\n }\n\n return cloneResult;\n })\n .parallel([analyzePackageStep, discoverUnitsStep])\n .map(async ({ getStepResult }) => {\n const analyzeResult = getStepResult(analyzePackageStep);\n const discoverResult = getStepResult(discoverUnitsStep);\n\n // Check for failures in parallel steps\n if (shouldAbortWorkflow(analyzeResult)) {\n throw new Error(`Failure in analyze package step: ${analyzeResult.error || 'Package analysis failed'}`);\n }\n\n if (shouldAbortWorkflow(discoverResult)) {\n throw new Error(`Failure in discover units step: ${discoverResult.error || 'Unit discovery failed'}`);\n }\n\n return discoverResult;\n })\n .then(orderUnitsStep)\n .map(async ({ getStepResult, getInitData }) => {\n const cloneResult = getStepResult(cloneTemplateStep);\n const initData = getInitData();\n return {\n commitSha: cloneResult.commitSha,\n slug: cloneResult.slug,\n targetPath: initData.targetPath,\n };\n })\n .then(prepareBranchStep)\n .map(async ({ getStepResult, getInitData }) => {\n const cloneResult = getStepResult(cloneTemplateStep);\n const packageResult = getStepResult(analyzePackageStep);\n const initData = getInitData();\n return {\n commitSha: cloneResult.commitSha,\n slug: cloneResult.slug,\n targetPath: initData.targetPath,\n packageInfo: packageResult,\n };\n })\n .then(packageMergeStep)\n .map(async ({ getInitData }) => {\n const initData = getInitData();\n return {\n targetPath: initData.targetPath,\n };\n })\n .then(installStep)\n .map(async ({ getStepResult, getInitData }) => {\n const cloneResult = getStepResult(cloneTemplateStep);\n const orderResult = getStepResult(orderUnitsStep);\n const installResult = getStepResult(installStep);\n const initData = getInitData();\n\n if (shouldAbortWorkflow(installResult)) {\n throw new Error(`Failure in install step: ${installResult.error || 'Install failed'}`);\n }\n return {\n orderedUnits: orderResult.orderedUnits,\n templateDir: cloneResult.templateDir,\n commitSha: cloneResult.commitSha,\n slug: cloneResult.slug,\n targetPath: initData.targetPath,\n variables: initData.variables,\n };\n })\n .then(programmaticFileCopyStep)\n .map(async ({ getStepResult, getInitData }) => {\n const copyResult = getStepResult(programmaticFileCopyStep);\n const cloneResult = getStepResult(cloneTemplateStep);\n const initData = getInitData();\n\n return {\n conflicts: copyResult.conflicts,\n copiedFiles: copyResult.copiedFiles,\n commitSha: cloneResult.commitSha,\n slug: cloneResult.slug,\n targetPath: initData.targetPath,\n templateDir: cloneResult.templateDir,\n };\n })\n .then(intelligentMergeStep)\n .map(async ({ getStepResult, getInitData }) => {\n const cloneResult = getStepResult(cloneTemplateStep);\n const orderResult = getStepResult(orderUnitsStep);\n const copyResult = getStepResult(programmaticFileCopyStep);\n const mergeResult = getStepResult(intelligentMergeStep);\n const initData = getInitData();\n\n return {\n commitSha: cloneResult.commitSha,\n slug: cloneResult.slug,\n targetPath: initData.targetPath,\n templateDir: cloneResult.templateDir,\n orderedUnits: orderResult.orderedUnits,\n copiedFiles: copyResult.copiedFiles,\n conflictsResolved: mergeResult.conflictsResolved,\n };\n })\n .then(validationAndFixStep)\n .map(async ({ getStepResult }) => {\n const cloneResult = getStepResult(cloneTemplateStep);\n const analyzeResult = getStepResult(analyzePackageStep);\n const discoverResult = getStepResult(discoverUnitsStep);\n const orderResult = getStepResult(orderUnitsStep);\n const prepareBranchResult = getStepResult(prepareBranchStep);\n const packageMergeResult = getStepResult(packageMergeStep);\n const installResult = getStepResult(installStep);\n const copyResult = getStepResult(programmaticFileCopyStep);\n const intelligentMergeResult = getStepResult(intelligentMergeStep);\n const validationResult = getStepResult(validationAndFixStep);\n\n const branchName = prepareBranchResult.branchName;\n\n // Aggregate errors from all steps\n const allErrors = [\n cloneResult.error,\n analyzeResult.error,\n discoverResult.error,\n orderResult.error,\n prepareBranchResult.error,\n packageMergeResult.error,\n installResult.error,\n copyResult.error,\n intelligentMergeResult.error,\n validationResult.error,\n ].filter(Boolean);\n\n // Determine overall success based on all step results\n const overallSuccess =\n cloneResult.success !== false &&\n analyzeResult.success !== false &&\n discoverResult.success !== false &&\n orderResult.success !== false &&\n prepareBranchResult.success !== false &&\n packageMergeResult.success !== false &&\n installResult.success !== false &&\n copyResult.success !== false &&\n intelligentMergeResult.success !== false &&\n validationResult.success !== false;\n\n // Create comprehensive message\n const messages = [];\n if (copyResult.copiedFiles?.length > 0) {\n messages.push(`${copyResult.copiedFiles.length} files copied`);\n }\n if (copyResult.conflicts?.length > 0) {\n messages.push(`${copyResult.conflicts.length} conflicts skipped`);\n }\n if (intelligentMergeResult.conflictsResolved?.length > 0) {\n messages.push(`${intelligentMergeResult.conflictsResolved.length} conflicts resolved`);\n }\n if (validationResult.validationResults?.errorsFixed > 0) {\n messages.push(`${validationResult.validationResults.errorsFixed} validation errors fixed`);\n }\n\n if (validationResult.validationResults?.remainingErrors > 0) {\n messages.push(`${validationResult.validationResults.remainingErrors} validation issues remain`);\n }\n\n const comprehensiveMessage =\n messages.length > 0\n ? `Template merge completed: ${messages.join(', ')}`\n : validationResult.message || 'Template merge completed';\n\n return {\n success: overallSuccess,\n applied: validationResult.applied || copyResult.copiedFiles?.length > 0 || false,\n message: comprehensiveMessage,\n validationResults: validationResult.validationResults,\n error: allErrors.length > 0 ? allErrors.join('; ') : undefined,\n errors: allErrors.length > 0 ? allErrors : undefined,\n branchName,\n // Additional debugging info\n stepResults: {\n cloneSuccess: cloneResult.success,\n analyzeSuccess: analyzeResult.success,\n discoverSuccess: discoverResult.success,\n orderSuccess: orderResult.success,\n prepareBranchSuccess: prepareBranchResult.success,\n packageMergeSuccess: packageMergeResult.success,\n installSuccess: installResult.success,\n copySuccess: copyResult.success,\n mergeSuccess: intelligentMergeResult.success,\n validationSuccess: validationResult.success,\n filesCopied: copyResult.copiedFiles?.length || 0,\n conflictsSkipped: copyResult.conflicts?.length || 0,\n conflictsResolved: intelligentMergeResult.conflictsResolved?.length || 0,\n },\n };\n })\n .commit();\n\n// Helper to merge a template by slug\nexport async function mergeTemplateBySlug(slug: string, targetPath?: string) {\n const template = await getMastraTemplate(slug);\n const run = await agentBuilderTemplateWorkflow.createRun();\n return await run.start({\n inputData: {\n repo: template.githubUrl,\n slug: template.slug,\n targetPath,\n },\n });\n}\n\n// Helper function to determine conflict resolution strategy\nconst determineConflictStrategy = (\n _unit: { kind: string; id: string },\n _targetFile: string,\n): 'skip' | 'backup-and-replace' | 'rename' => {\n // For now, always skip conflicts to avoid disrupting existing files\n // TODO: Enable advanced strategies based on user feedback\n return 'skip';\n\n // Future logic (currently disabled):\n // if (['agent', 'workflow', 'network'].includes(unit.kind)) {\n // return 'backup-and-replace';\n // }\n // if (unit.kind === 'tool') {\n // return 'rename';\n // }\n // return 'backup-and-replace';\n};\n\n// Helper function to check if a step result indicates a failure\nconst shouldAbortWorkflow = (stepResult: any): boolean => {\n return stepResult?.success === false || stepResult?.error;\n};\n","import type { StepResult } from './step-result';\nimport type { ToolSet } from './tool-set';\n\nexport type StopCondition = (options: {\n steps: Array>;\n}) => PromiseLike | boolean;\n\nexport function stepCountIs(stepCount: number): StopCondition {\n return ({ steps }) => steps.length === stepCount;\n}\n\nexport function hasToolCall(toolName: string): StopCondition {\n return ({ steps }) =>\n steps[steps.length - 1]?.toolCalls?.some(\n toolCall => toolCall.toolName === toolName,\n ) ?? false;\n}\n\nexport async function isStopConditionMet({\n stopConditions,\n steps,\n}: {\n stopConditions: Array>;\n steps: Array>;\n}): Promise {\n return (\n await Promise.all(stopConditions.map(condition => condition({ steps })))\n ).some(result => result);\n}\n","import { z } from 'zod';\n\nexport const TaskSchema = z.array(\n z.object({\n id: z.string().describe('Unique task ID using kebab-case'),\n content: z.string().describe('Specific, actionable task description'),\n status: z.enum(['pending', 'in_progress', 'completed', 'blocked']).default('pending'),\n priority: z.enum(['high', 'medium', 'low']).describe('Task priority'),\n dependencies: z.array(z.string()).optional().describe('IDs of tasks this depends on'),\n notes: z.string().describe('Detailed implementation notes and specifics'),\n }),\n);\n\nexport const QuestionSchema = z.array(\n z.object({\n id: z.string().describe('Unique question ID'),\n question: z.string().describe('Clear, specific question for the user'),\n type: z.enum(['choice', 'text', 'boolean']).describe('Type of answer expected'),\n options: z.array(z.string()).optional().describe('Options for choice questions'),\n context: z.string().optional().describe('Additional context or explanation'),\n }),\n);\nexport const PlanningIterationResultSchema = z.object({\n success: z.boolean(),\n tasks: TaskSchema,\n questions: QuestionSchema,\n reasoning: z.string(),\n planComplete: z.boolean(),\n message: z.string(),\n error: z.string().optional(),\n allPreviousQuestions: z.array(z.any()).optional(),\n allPreviousAnswers: z.record(z.string(), z.string()).optional(),\n});\n","/**\n * Prompts and instructions for task planning workflow\n */\n\nexport interface TaskPlanningPrompts {\n planningAgent: {\n instructions: (context: { storedQAPairs: any[] }) => string;\n refinementPrompt: (context: {\n action: string;\n workflowName?: string;\n description?: string;\n requirements?: string;\n discoveredWorkflows: any[];\n projectStructure: any;\n research: any;\n storedQAPairs: any[];\n hasTaskFeedback: boolean;\n userAnswers?: any;\n }) => string;\n initialPrompt: (context: {\n action: string;\n workflowName?: string;\n description?: string;\n requirements?: string;\n discoveredWorkflows: any[];\n projectStructure: any;\n research: any;\n }) => string;\n };\n taskApproval: {\n message: (questionsCount: number) => string;\n approvalMessage: (tasksCount: number) => string;\n };\n}\n\nexport const taskPlanningPrompts: TaskPlanningPrompts = {\n planningAgent: {\n instructions:\n context => `You are a Mastra workflow planning expert. Your task is to create a detailed, executable task plan.\n\nPLANNING RESPONSIBILITIES:\n1. **Analyze Requirements**: Review the user's description and requirements thoroughly\n2. **Identify Decision Points**: Find any choices that require user input (email providers, databases, APIs, etc.)\n3. **Create Specific Tasks**: Generate concrete, actionable tasks with clear implementation notes\n4. **Ask Clarifying Questions**: If any decisions are unclear, formulate specific questions for the user \n- do not ask about package managers\n- Assume the user is going to use zod for validation\n- You do not need to ask questions if you have none\n- NEVER ask questions that have already been answered before\n5. **Incorporate Feedback**: Use any previous answers or feedback to refine the plan\n\n${\n context.storedQAPairs.length > 0\n ? `PREVIOUS QUESTION-ANSWER PAIRS (${context.storedQAPairs.length} total):\\n${context.storedQAPairs\n .map(\n (pair, index) =>\n `${index + 1}. Q: ${pair.question.question}\\n A: ${pair.answer || 'NOT ANSWERED YET'}\\n Type: ${pair.question.type}\\n Asked: ${pair.askedAt}\\n ${pair.answer ? `Answered: ${pair.answeredAt}` : ''}`,\n )\n .join('\\n\\n')}\\n\\nIMPORTANT: DO NOT ASK ANY QUESTIONS THAT HAVE ALREADY BEEN ASKED!`\n : ''\n}\n\nBased on the context and any user answers, create or refine the task plan.`,\n\n refinementPrompt: context => `Refine the existing task plan based on all user answers collected so far. \n\nANSWERED QUESTIONS AND RESPONSES:\n${context.storedQAPairs\n .filter(pair => pair.answer)\n .map(\n (pair, index) =>\n `${index + 1}. Q: ${pair.question.question}\\n A: ${pair.answer}\\n Context: ${pair.question.context || 'None'}`,\n )\n .join('\\n\\n')}\n\nREQUIREMENTS:\n- Action: ${context.action}\n- Workflow Name: ${context.workflowName || 'To be determined'}\n- Description: ${context.description || 'Not specified'}\n- Requirements: ${context.requirements || 'Not specified'}\n\nPROJECT CONTEXT:\n- Discovered Workflows: ${JSON.stringify(context.discoveredWorkflows, null, 2)}\n- Project Structure: ${JSON.stringify(context.projectStructure, null, 2)}\n- Research: ${JSON.stringify(context.research, null, 2)}\n\n${context.hasTaskFeedback ? `\\nUSER FEEDBACK ON PREVIOUS TASK LIST:\\n${context.userAnswers?.taskFeedback}\\n\\nPLEASE INCORPORATE THIS FEEDBACK INTO THE REFINED TASK LIST.` : ''}\n\nRefine the task list and determine if any additional questions are needed.`,\n\n initialPrompt: context => `Create an initial task plan for ${context.action}ing a Mastra workflow.\n\nREQUIREMENTS:\n- Action: ${context.action}\n- Workflow Name: ${context.workflowName || 'To be determined'}\n- Description: ${context.description || 'Not specified'} \n- Requirements: ${context.requirements || 'Not specified'}\n\nPROJECT CONTEXT:\n- Discovered Workflows: ${JSON.stringify(context.discoveredWorkflows, null, 2)}\n- Project Structure: ${JSON.stringify(context.projectStructure, null, 2)}\n- Research: ${JSON.stringify(context.research, null, 2)}\n\nCreate specific tasks and identify any questions that need user clarification.`,\n },\n\n taskApproval: {\n message: questionsCount => `Please answer ${questionsCount} question(s) to finalize the workflow plan:`,\n approvalMessage: tasksCount => `Please review and approve the ${tasksCount} task(s) for execution:`,\n },\n};\n","import { z } from 'zod';\nimport { PlanningIterationResultSchema, QuestionSchema, TaskSchema } from '../shared/schema';\n\n// Workflow Builder schemas and types\nexport const WorkflowBuilderInputSchema = z.object({\n workflowName: z.string().optional().describe('Name of the workflow to create or edit'),\n action: z.enum(['create', 'edit']).describe('Action to perform: create new or edit existing workflow'),\n description: z.string().optional().describe('Description of what the workflow should do'),\n requirements: z.string().optional().describe('Detailed requirements for the workflow'),\n projectPath: z.string().optional().describe('Path to the Mastra project (defaults to current directory)'),\n});\n\nexport const DiscoveredWorkflowSchema = z.object({\n name: z.string(),\n file: z.string(),\n description: z.string().optional(),\n inputSchema: z.any().optional(),\n outputSchema: z.any().optional(),\n steps: z.array(z.string()).optional(),\n});\n\nexport const WorkflowDiscoveryResultSchema = z.object({\n success: z.boolean(),\n workflows: z.array(DiscoveredWorkflowSchema),\n mastraIndexExists: z.boolean(),\n message: z.string(),\n error: z.string().optional(),\n});\n\nexport const ProjectDiscoveryResultSchema = z.object({\n success: z.boolean(),\n structure: z.object({\n hasWorkflowsDir: z.boolean(),\n hasAgentsDir: z.boolean(),\n hasToolsDir: z.boolean(),\n hasMastraIndex: z.boolean(),\n existingWorkflows: z.array(z.string()),\n existingAgents: z.array(z.string()),\n existingTools: z.array(z.string()),\n }),\n dependencies: z.record(z.string(), z.string()),\n message: z.string(),\n error: z.string().optional(),\n});\n\nexport const WorkflowResearchResultSchema = z.object({\n success: z.boolean(),\n documentation: z.object({\n workflowPatterns: z.array(z.string()),\n stepExamples: z.array(z.string()),\n bestPractices: z.array(z.string()),\n }),\n webResources: z.array(\n z.object({\n title: z.string(),\n url: z.string(),\n snippet: z.string(),\n relevance: z.number(),\n }),\n ),\n message: z.string(),\n error: z.string().optional(),\n});\n\nexport const TaskManagementResultSchema = z.object({\n success: z.boolean(),\n tasks: TaskSchema,\n message: z.string(),\n error: z.string().optional(),\n});\n\nexport const TaskExecutionInputSchema = z.object({\n action: z.enum(['create', 'edit']),\n workflowName: z.string().optional(),\n description: z.string().optional(),\n requirements: z.string().optional(),\n tasks: TaskSchema,\n discoveredWorkflows: z.array(z.any()),\n projectStructure: z.any(),\n research: z.any(),\n projectPath: z.string().optional(),\n});\n\nexport const TaskExecutionSuspendSchema = z.object({\n questions: QuestionSchema,\n currentProgress: z.string(),\n completedTasks: z.array(z.string()),\n message: z.string(),\n});\n\nexport const TaskExecutionResumeSchema = z.object({\n answers: z.array(\n z.object({\n questionId: z.string(),\n answer: z.string(),\n }),\n ),\n});\n\nexport const TaskExecutionResultSchema = z.object({\n success: z.boolean(),\n filesModified: z.array(z.string()),\n validationResults: z.object({\n passed: z.boolean(),\n errors: z.array(z.string()),\n warnings: z.array(z.string()),\n }),\n completedTasks: z.array(z.string()),\n message: z.string(),\n error: z.string().optional(),\n});\n\nexport const UserClarificationInputSchema = z.object({\n questions: QuestionSchema,\n});\n\nexport const UserClarificationResultSchema = z.object({\n answers: z.record(z.string(), z.string()),\n hasAnswers: z.boolean(),\n});\n\nexport const WorkflowBuilderResultSchema = z.object({\n success: z.boolean(),\n action: z.enum(['create', 'edit']),\n workflowName: z.string().optional(),\n workflowFile: z.string().optional(),\n discovery: WorkflowDiscoveryResultSchema.optional(),\n projectStructure: ProjectDiscoveryResultSchema.optional(),\n research: WorkflowResearchResultSchema.optional(),\n planning: PlanningIterationResultSchema.optional(),\n taskManagement: TaskManagementResultSchema.optional(),\n execution: TaskExecutionResultSchema.optional(),\n needsUserInput: z.boolean().optional(),\n questions: QuestionSchema.optional(),\n message: z.string(),\n nextSteps: z.array(z.string()).optional(),\n error: z.string().optional(),\n});\n\nexport const TaskExecutionIterationInputSchema = (taskLength: number) =>\n z.object({\n status: z\n .enum(['in_progress', 'completed', 'needs_clarification'])\n .describe('Status - only use \"completed\" when ALL remaining tasks are finished'),\n progress: z.string().describe('Current progress description'),\n completedTasks: z\n .array(z.string())\n .describe('List of ALL completed task IDs (including previously completed ones)'),\n totalTasksRequired: z.number().describe(`Total number of tasks that must be completed (should be ${taskLength})`),\n tasksRemaining: z.array(z.string()).describe('List of task IDs that still need to be completed'),\n filesModified: z\n .array(z.string())\n .describe('List of files that were created or modified - use these exact paths for validateCode tool'),\n questions: QuestionSchema.optional().describe('Questions for user if clarification is needed'),\n message: z.string().describe('Summary of work completed or current status'),\n error: z.string().optional().describe('Any errors encountered'),\n });\n","import { z } from 'zod';\nimport { QuestionSchema, TaskSchema } from '../shared/schema';\nimport {\n ProjectDiscoveryResultSchema,\n WorkflowResearchResultSchema,\n DiscoveredWorkflowSchema,\n} from '../workflow-builder/schema';\n\nexport const PlanningIterationInputSchema = z.object({\n action: z.enum(['create', 'edit']),\n workflowName: z.string().optional(),\n description: z.string().optional(),\n requirements: z.string().optional(),\n discoveredWorkflows: z.array(DiscoveredWorkflowSchema),\n projectStructure: ProjectDiscoveryResultSchema,\n research: WorkflowResearchResultSchema,\n\n userAnswers: z.record(z.string(), z.string()).optional(),\n});\n\nexport const PlanningIterationSuspendSchema = z.object({\n questions: QuestionSchema,\n message: z.string(),\n currentPlan: z.object({\n tasks: TaskSchema,\n reasoning: z.string(),\n }),\n});\n\nexport const PlanningIterationResumeSchema = z.object({\n answers: z.record(z.string(), z.string()),\n});\n\nexport const PlanningAgentOutputSchema = z.object({\n tasks: TaskSchema,\n questions: QuestionSchema.optional(),\n reasoning: z.string().describe('Explanation of the plan and any questions'),\n planComplete: z.boolean().describe('Whether the plan is ready for execution (no more questions)'),\n});\n\nexport const TaskApprovalOutputSchema = z.object({\n approved: z.boolean(),\n tasks: TaskSchema,\n message: z.string(),\n userFeedback: z.string().optional(),\n});\n\nexport const TaskApprovalSuspendSchema = z.object({\n taskList: TaskSchema,\n summary: z.string(),\n message: z.string(),\n});\n\nexport const TaskApprovalResumeSchema = z.object({\n approved: z.boolean(),\n modifications: z.string().optional(),\n});\n","import { Agent } from '@mastra/core/agent';\nimport { createWorkflow, createStep } from '@mastra/core/workflows';\nimport type z from 'zod';\nimport { resolveModel } from '../../utils';\nimport { PlanningIterationResultSchema } from '../shared/schema';\nimport { taskPlanningPrompts } from './prompts';\nimport {\n PlanningAgentOutputSchema,\n PlanningIterationInputSchema,\n PlanningIterationResumeSchema,\n PlanningIterationSuspendSchema,\n TaskApprovalOutputSchema,\n TaskApprovalResumeSchema,\n TaskApprovalSuspendSchema,\n} from './schema';\n\ntype PlanningIterationResult = z.infer;\n\n// Planning iteration step (with questions and user answers)\nconst planningIterationStep = createStep({\n id: 'planning-iteration',\n description: 'Create or refine task plan with user input',\n inputSchema: PlanningIterationInputSchema,\n outputSchema: PlanningIterationResultSchema,\n suspendSchema: PlanningIterationSuspendSchema,\n resumeSchema: PlanningIterationResumeSchema,\n execute: async ({ inputData, resumeData, suspend, requestContext }) => {\n const {\n action,\n workflowName,\n description,\n requirements,\n discoveredWorkflows,\n projectStructure,\n research,\n userAnswers,\n } = inputData;\n\n console.info('Starting planning iteration...');\n\n // Get or initialize Q&A tracking in request context\n const qaKey = 'workflow-builder-qa';\n let storedQAPairs: Array<{\n question: any;\n answer: string | null;\n askedAt: string;\n answeredAt: string | null;\n }> = requestContext.get(qaKey) || [];\n\n // Process new answers from user input or resume data\n const newAnswers = { ...(userAnswers || {}), ...(resumeData?.answers || {}) };\n\n // console.info('before', storedQAPairs);\n // console.info('newAnswers', newAnswers);\n // Update existing Q&A pairs with new answers\n if (Object.keys(newAnswers).length > 0) {\n storedQAPairs = storedQAPairs.map(pair => {\n const answerValue = newAnswers[pair.question.id];\n if (answerValue) {\n return {\n ...pair,\n answer: String(answerValue) || null,\n answeredAt: new Date().toISOString(),\n };\n }\n return pair;\n });\n\n // Store updated pairs back to request context\n requestContext.set(qaKey, storedQAPairs);\n }\n\n // console.info('after', storedQAPairs);\n\n // console.info(\n // `Current Q&A state: ${storedQAPairs.length} question-answer pairs, ${storedQAPairs.filter(p => p.answer).length} answered`,\n // );\n\n try {\n // const filteredMcpTools = await initializeMcpTools();\n\n const model = await resolveModel({ requestContext });\n\n const planningAgent = new Agent({\n id: 'workflow-planning-agent',\n model,\n instructions: taskPlanningPrompts.planningAgent.instructions({\n storedQAPairs,\n }),\n name: 'Workflow Planning Agent',\n // tools: filteredMcpTools,\n });\n\n // Check if we have user feedback from rejected task list in input data\n const hasTaskFeedback = Boolean(userAnswers && userAnswers.taskFeedback);\n\n const planningPrompt = storedQAPairs.some(pair => pair.answer)\n ? taskPlanningPrompts.planningAgent.refinementPrompt({\n action,\n workflowName,\n description,\n requirements,\n discoveredWorkflows,\n projectStructure,\n research,\n storedQAPairs,\n hasTaskFeedback,\n userAnswers,\n })\n : taskPlanningPrompts.planningAgent.initialPrompt({\n action,\n workflowName,\n description,\n requirements,\n discoveredWorkflows,\n projectStructure,\n research,\n });\n\n const result = await planningAgent.generate(planningPrompt, {\n structuredOutput: {\n schema: PlanningAgentOutputSchema,\n },\n // maxSteps: 15,\n });\n\n const planResult = (await result.object) as unknown as PlanningIterationResult | null;\n if (!planResult) {\n return {\n tasks: [],\n success: false,\n questions: [],\n reasoning: 'Planning agent failed to generate a valid response',\n planComplete: false,\n message: 'Planning failed',\n };\n }\n\n // If we have questions and plan is not complete, suspend for user input\n if (planResult.questions && planResult.questions.length > 0 && !planResult.planComplete) {\n console.info(`Planning needs user clarification: ${planResult.questions.length} questions`);\n\n console.info(planResult.questions);\n\n // Store new questions as Q&A pairs in request context\n const newQAPairs = planResult.questions.map((question: any) => ({\n question,\n answer: null,\n askedAt: new Date().toISOString(),\n answeredAt: null,\n }));\n\n storedQAPairs = [...storedQAPairs, ...newQAPairs];\n requestContext.set(qaKey, storedQAPairs);\n\n console.info(\n `Updated Q&A state: ${storedQAPairs.length} total question-answer pairs, ${storedQAPairs.filter(p => p.answer).length} answered`,\n );\n\n return suspend({\n questions: planResult.questions,\n message: taskPlanningPrompts.taskApproval.message(planResult.questions.length),\n currentPlan: {\n tasks: planResult.tasks,\n reasoning: planResult.reasoning,\n },\n });\n }\n\n // Plan is complete\n console.info(`Planning complete with ${planResult.tasks.length} tasks`);\n\n // Update request context with final state\n requestContext.set(qaKey, storedQAPairs);\n console.info(\n `Final Q&A state: ${storedQAPairs.length} total question-answer pairs, ${storedQAPairs.filter(p => p.answer).length} answered`,\n );\n\n return {\n tasks: planResult.tasks,\n success: true,\n questions: [],\n reasoning: planResult.reasoning,\n planComplete: true,\n message: `Successfully created ${planResult.tasks.length} tasks`,\n allPreviousQuestions: storedQAPairs.map(pair => pair.question),\n allPreviousAnswers: Object.fromEntries(\n storedQAPairs.filter(pair => pair.answer).map(pair => [pair.question.id, pair.answer]),\n ),\n };\n } catch (error) {\n console.error('Planning iteration failed:', error);\n return {\n tasks: [],\n success: false,\n questions: [],\n reasoning: `Planning failed: ${error instanceof Error ? error.message : String(error)}`,\n planComplete: false,\n message: 'Planning iteration failed',\n error: error instanceof Error ? error.message : String(error),\n allPreviousQuestions: storedQAPairs.map(pair => pair.question),\n allPreviousAnswers: Object.fromEntries(\n storedQAPairs.filter(pair => pair.answer).map(pair => [pair.question.id, pair.answer]),\n ),\n };\n }\n },\n});\n\n// Task approval step\nconst taskApprovalStep = createStep({\n id: 'task-approval',\n description: 'Get user approval for the final task list',\n inputSchema: PlanningIterationResultSchema,\n outputSchema: TaskApprovalOutputSchema,\n suspendSchema: TaskApprovalSuspendSchema,\n resumeSchema: TaskApprovalResumeSchema,\n execute: async ({ inputData, resumeData, suspend }) => {\n const { tasks } = inputData;\n\n // If no resume data, suspend for user approval\n if (!resumeData?.approved && resumeData?.approved !== false) {\n console.info(`Requesting user approval for ${tasks.length} tasks`);\n\n const summary = `Task List for Approval:\n\n${tasks.length} tasks planned:\n${tasks.map((task, i) => `${i + 1}. [${task.priority.toUpperCase()}] ${task.content}${task.dependencies?.length ? ` (depends on: ${task.dependencies.join(', ')})` : ''}\\n Notes: ${task.notes || 'None'}`).join('\\n')}`;\n\n return suspend({\n taskList: tasks,\n summary,\n message: taskPlanningPrompts.taskApproval.approvalMessage(tasks.length),\n });\n }\n\n // User responded\n if (resumeData.approved) {\n console.info('Task list approved by user');\n return {\n approved: true,\n tasks,\n message: 'Task list approved, ready for execution',\n };\n } else {\n console.info('Task list rejected by user');\n return {\n approved: false,\n tasks,\n message: 'Task list rejected',\n userFeedback: resumeData.modifications,\n };\n }\n },\n});\n\n// Sub-workflow: Planning and Approval Cycle\nexport const planningAndApprovalWorkflow = createWorkflow({\n id: 'planning-and-approval',\n description: 'Handle iterative planning with questions and task list approval',\n inputSchema: PlanningIterationInputSchema,\n outputSchema: TaskApprovalOutputSchema,\n steps: [planningIterationStep, taskApprovalStep],\n})\n // Step 1: Planning iteration (with questions suspension)\n .dountil(planningIterationStep, async ({ inputData }) => {\n console.info(`Sub-workflow planning check: planComplete=${inputData.planComplete}`);\n return inputData.planComplete === true;\n })\n // Map to approval step input format\n .map(async ({ inputData }) => {\n // After doUntil completes, inputData contains the final result\n return {\n tasks: inputData.tasks || [],\n success: inputData.success || false,\n questions: inputData.questions || [],\n reasoning: inputData.reasoning || '',\n planComplete: inputData.planComplete || false,\n message: inputData.message || '',\n };\n })\n // Step 2: Task list approval\n .then(taskApprovalStep)\n .commit();\n","export const workflowResearch = `\n## 🔍 **COMPREHENSIVE MASTRA WORKFLOW RESEARCH SUMMARY**\n\nBased on extensive research of Mastra documentation and examples, here's essential information for building effective Mastra workflows:\n\n### **📋 WORKFLOW FUNDAMENTALS**\n\n**Core Components:**\n- **\\`createWorkflow()\\`**: Main factory function that creates workflow instances\n- **\\`createStep()\\`**: Creates individual workflow steps with typed inputs/outputs \n- **\\`.commit()\\`**: Finalizes workflow definition (REQUIRED to make workflows executable)\n- **Zod schemas**: Used for strict input/output typing and validation\n\n**Basic Structure:**\n\\`\\`\\`typescript\nimport { createWorkflow, createStep } from \"@mastra/core/workflows\";\nimport { z } from \"zod\";\n\nconst workflow = createWorkflow({\n id: \"unique-workflow-id\", // Required: kebab-case recommended\n description: \"What this workflow does\", // Optional but recommended\n inputSchema: z.object({...}), // Required: Defines workflow inputs\n outputSchema: z.object({...}) // Required: Defines final outputs\n})\n .then(step1) // Chain steps sequentially\n .then(step2)\n .commit(); // CRITICAL: Makes workflow executable\n\\`\\`\\`\n\n### **🔧 STEP CREATION PATTERNS**\n\n**Standard Step Definition:**\n\\`\\`\\`typescript\nconst myStep = createStep({\n id: \"step-id\", // Required: unique identifier\n description: \"Step description\", // Recommended for clarity\n inputSchema: z.object({...}), // Required: input validation\n outputSchema: z.object({...}), // Required: output validation\n execute: async ({ inputData, mastra, getStepResult, getInitData }) => {\n // Step logic here\n return { /* matches outputSchema */ };\n }\n});\n\\`\\`\\`\n\n**Execute Function Parameters:**\n- \\`inputData\\`: Validated input matching inputSchema\n- \\`mastra\\`: Access to Mastra instance (agents, tools, other workflows)\n- \\`getStepResult(stepInstance)\\`: Get results from previous steps\n- \\`getInitData()\\`: Access original workflow input data\n- \\`requestContext\\`: Runtime dependency injection context\n- \\`runCount\\`: Number of times this step has run (useful for retries)\n\n### **🔄 CONTROL FLOW METHODS**\n\n**Sequential Execution:**\n- \\`.then(step)\\`: Execute steps one after another\n- Data flows automatically if schemas match\n\n**Parallel Execution:**\n- \\`.parallel([step1, step2])\\`: Run steps simultaneously\n- All parallel steps complete before continuing\n\n**Conditional Logic:**\n- \\`.branch([[condition, step], [condition, step]])\\`: Execute different steps based on conditions\n- Conditions evaluated sequentially, matching steps run in parallel\n\n**Loops:**\n- \\`.dountil(step, condition)\\`: Repeat until condition becomes true\n- \\`.dowhile(step, condition)\\`: Repeat while condition is true \n- \\`.foreach(step, {concurrency: N})\\`: Execute step for each array item\n\n**Data Transformation:**\n- \\`.map(({ inputData, getStepResult, getInitData }) => transformedData)\\`: Transform data between steps\n\n### **⏸️ SUSPEND & RESUME CAPABILITIES**\n\n**For Human-in-the-Loop Workflows:**\n\\`\\`\\`typescript\nconst userInputStep = createStep({\n id: \"user-input\",\n suspendSchema: z.object({}), // Schema for suspension payload\n resumeSchema: z.object({ // Schema for resume data\n userResponse: z.string()\n }),\n execute: async ({ resumeData, suspend }) => {\n if (!resumeData?.userResponse) {\n await suspend({}); // Pause workflow\n return { response: \"\" };\n }\n return { response: resumeData.userResponse };\n }\n});\n\\`\\`\\`\n\n**Resume Workflow:**\n\\`\\`\\`typescript\nconst result = await run.start({ inputData: {...} });\nif (result.status === \"suspended\") {\n await run.resume({\n step: result.suspended[0], // Or specific step ID\n resumeData: { userResponse: \"answer\" }\n });\n}\n\\`\\`\\`\n\n### **🛠️ INTEGRATING AGENTS & TOOLS**\n\n**Using Agents in Steps:**\n\\`\\`\\`typescript\n// Method 1: Agent as step\nconst agentStep = createStep(myAgent);\n\n// Method 2: Call agent in execute function\nconst step = createStep({\n execute: async ({ inputData }) => {\n const result = await myAgent.generate(prompt);\n return { output: result.text };\n }\n});\n\\`\\`\\`\n\n**Using Tools in Steps:**\n\\`\\`\\`typescript\n// Method 1: Tool as step \nconst toolStep = createStep(myTool);\n\n// Method 2: Call tool in execute function\nconst step = createStep({\n execute: async ({ inputData, requestContext }) => {\n const result = await myTool.execute({\n context: inputData,\n requestContext\n });\n return result;\n }\n});\n\\`\\`\\`\n\n### **🗂️ PROJECT ORGANIZATION PATTERNS**\n\n**MANDATORY Workflow Organization:**\nEach workflow MUST be organized in its own dedicated folder with separated concerns:\n\n\\`\\`\\`\nsrc/mastra/workflows/\n├── my-workflow-name/ # Kebab-case folder name\n│ ├── types.ts # All Zod schemas and TypeScript types\n│ ├── steps.ts # All individual step definitions\n│ ├── workflow.ts # Main workflow composition and export\n│ └── utils.ts # Helper functions (if needed)\n├── another-workflow/\n│ ├── types.ts\n│ ├── steps.ts\n│ ├── workflow.ts\n│ └── utils.ts\n└── index.ts # Export all workflows\n\\`\\`\\`\n\n**CRITICAL File Organization Rules:**\n- **ALWAYS create a dedicated folder** for each workflow\n- **Folder names MUST be kebab-case** version of workflow name\n- **types.ts**: Define all input/output schemas, validation types, and interfaces\n- **steps.ts**: Create all individual step definitions using createStep()\n- **workflow.ts**: Compose steps into workflow using createWorkflow() and export the final workflow\n- **utils.ts**: Any helper functions, constants, or utilities (create only if needed)\n- **NEVER put everything in one file** - always separate concerns properly\n\n**Workflow Registration:**\n\\`\\`\\`typescript\n// src/mastra/index.ts\nexport const mastra = new Mastra({\n workflows: {\n sendEmailWorkflow, // Use camelCase for keys\n dataProcessingWorkflow\n },\n storage: new LibSQLStore({ id: 'mastra-storage', url: 'file:./mastra.db' }), // Required for suspend/resume\n});\n\\`\\`\\`\n\n### **📦 ESSENTIAL DEPENDENCIES**\n\n**Required Packages:**\n\\`\\`\\`json\n{\n \"dependencies\": {\n \"@mastra/core\": \"latest\",\n \"zod\": \"^3.25.67\"\n }\n}\n\\`\\`\\`\n\n**Additional Packages (as needed):**\n- \\`@mastra/libsql\\`: For workflow state persistence\n- \\`@ai-sdk/openai\\`: For AI model integration\n- \\`ai\\`: For AI SDK functionality\n\n### **✅ WORKFLOW BEST PRACTICES**\n\n**Schema Design:**\n- Use descriptive property names in schemas\n- Make schemas as specific as possible (avoid \\`z.any()\\`)\n- Include validation for required business logic\n\n**Error Handling:**\n- Use \\`try/catch\\` blocks in step execute functions\n- Return meaningful error messages\n- Consider using \\`bail()\\` for early successful exits\n\n**Step Organization:**\n- Keep steps focused on single responsibilities\n- Use descriptive step IDs (kebab-case recommended)\n- Create reusable steps for common operations\n\n**Data Flow:**\n- Use \\`.map()\\` when schemas don't align between steps\n- Access previous step results with \\`getStepResult(stepInstance)\\`\n- Use \\`getInitData()\\` to access original workflow input\n\n### **🚀 EXECUTION PATTERNS**\n\n**Running Workflows:**\n\\`\\`\\`typescript\n// Create and start run\nconst run = await workflow.createRun();\nconst result = await run.start({ inputData: {...} });\n\n// Stream execution for real-time monitoring\nconst stream = await run.streamVNext({ inputData: {...} });\nfor await (const chunk of stream) {\n console.log(chunk);\n}\n\n// Watch for events\nrun.watch((event) => console.log(event));\n\\`\\`\\`\n\n**Workflow Status Types:**\n- \\`\"success\"\\`: Completed successfully\n- \\`\"suspended\"\\`: Paused awaiting input\n- \\`\"failed\"\\`: Encountered error\n\n### **🔗 ADVANCED FEATURES**\n\n**Nested Workflows:**\n- Use workflows as steps: \\`.then(otherWorkflow)\\`\n- Enable complex workflow composition\n\n**Request Context:**\n- Pass shared data across all steps\n- Enable dependency injection patterns\n\n**Streaming & Events:**\n- Real-time workflow monitoring\n- Integration with external event systems\n\n**Cloning:**\n- \\`cloneWorkflow(original, {id: \"new-id\"})\\`: Reuse workflow structure\n- \\`cloneStep(original, {id: \"new-id\"})\\`: Reuse step logic\n\nThis comprehensive research provides the foundation for creating robust, maintainable Mastra workflows with proper typing, error handling, and architectural patterns.\n`;\n/**\n * Prompts and instructions for workflow builder agents\n */\n\nexport interface WorkflowBuilderPrompts {\n researchAgent: {\n instructions: string;\n prompt: (context: { projectStructure: any; dependencies: any; hasWorkflowsDir: boolean }) => string;\n };\n executionAgent: {\n instructions: (context: {\n action: string;\n workflowName?: string;\n tasksLength: number;\n currentProjectPath: string;\n discoveredWorkflows: any;\n projectStructure: any;\n research: any;\n tasks: any[];\n resumeData?: any;\n }) => string;\n prompt: (context: { action: string; workflowName?: string; tasks: any[]; resumeData?: any }) => string;\n iterationPrompt: (context: {\n completedTasks: any[];\n pendingTasks: any[];\n workflowName?: string;\n resumeData?: any;\n }) => string;\n };\n validation: {\n instructions: string;\n };\n}\n\nexport const workflowBuilderPrompts: WorkflowBuilderPrompts = {\n researchAgent: {\n instructions: `You are a Mastra workflow research expert. Your task is to gather relevant information about creating Mastra workflows.\n\nRESEARCH OBJECTIVES:\n1. **Core Concepts**: Understand how Mastra workflows work\n2. **Best Practices**: Learn workflow patterns and conventions \n3. **Code Examples**: Find relevant implementation examples\n4. **Technical Details**: Understand schemas, steps, and configuration\n\nUse the available documentation and examples tools to gather comprehensive information about Mastra workflows.`,\n\n prompt: context => `Research everything about Mastra workflows to help create or edit them effectively.\n\nPROJECT CONTEXT:\n- Project Structure: ${JSON.stringify(context.projectStructure, null, 2)}\n- Dependencies: ${JSON.stringify(context.dependencies, null, 2)}\n- Has Workflows Directory: ${context.hasWorkflowsDir}\n\nFocus on:\n1. How to create workflows using createWorkflow()\n2. How to create and chain workflow steps\n3. Best practices for workflow organization\n4. Common workflow patterns and examples\n5. Schema definitions and types\n6. Error handling and debugging\n\nUse the docs and examples tools to gather comprehensive information.`,\n },\n\n executionAgent: {\n instructions: context => `You are executing a workflow ${context.action} task for: \"${context.workflowName}\"\n\nCRITICAL WORKFLOW EXECUTION REQUIREMENTS:\n1. **EXPLORE PROJECT STRUCTURE FIRST**: Use listDirectory and readFile tools to understand the existing project layout, folder structure, and conventions before creating any files\n2. **FOLLOW PROJECT CONVENTIONS**: Look at existing workflows, agents, and file structures to understand where new files should be placed (typically src/mastra/workflows/, src/mastra/agents/, etc.)\n3. **USE PRE-LOADED TASK LIST**: Your task list has been pre-populated in the taskManager tool. Use taskManager with action 'list' to see all tasks, and action 'update' to mark progress\n4. **COMPLETE EVERY SINGLE TASK**: You MUST complete ALL ${context.tasksLength} tasks that are already in the taskManager. Do not stop until every task is marked as 'completed'\n5. **Follow Task Dependencies**: Execute tasks in the correct order, respecting dependencies\n6. **Request User Input When Needed**: If you encounter choices (like email providers, databases, etc.) that require user decision, return questions for clarification\n7. **STRICT WORKFLOW ORGANIZATION**: When creating or editing workflows, you MUST follow this exact structure\n\nMANDATORY WORKFLOW FOLDER STRUCTURE:\nWhen ${context.action === 'create' ? 'creating a new workflow' : 'editing a workflow'}, you MUST organize files as follows:\n\n📁 src/mastra/workflows/${context.workflowName?.toLowerCase().replace(/[^a-z0-9]/g, '-') || 'new-workflow'}/\n├── 📄 types.ts # All Zod schemas and TypeScript types\n├── 📄 steps.ts # All individual step definitions \n├── 📄 workflow.ts # Main workflow composition and export\n└── 📄 utils.ts # Helper functions (if needed)\n\nCRITICAL FILE ORGANIZATION RULES:\n- **ALWAYS create a dedicated folder** for the workflow in src/mastra/workflows/\n- **Folder name MUST be kebab-case** version of workflow name\n- **types.ts**: Define all input/output schemas, validation types, and interfaces\n- **steps.ts**: Create all individual step definitions using createStep()\n- **workflow.ts**: Compose steps into workflow using createWorkflow() and export the final workflow\n- **utils.ts**: Any helper functions, constants, or utilities (create only if needed)\n- **NEVER put everything in one file** - always separate concerns properly\n\nCRITICAL COMPLETION REQUIREMENTS: \n- ALWAYS explore the directory structure before creating files to understand where they should go\n- You MUST complete ALL ${context.tasksLength} tasks before returning status='completed'\n- Use taskManager tool with action 'list' to see your current task list and action 'update' to mark tasks as 'in_progress' or 'completed'\n- If you need to make any decisions during implementation (choosing providers, configurations, etc.), return questions for user clarification\n- DO NOT make assumptions about file locations - explore first!\n- You cannot finish until ALL tasks in the taskManager are marked as 'completed'\n\nPROJECT CONTEXT:\n- Action: ${context.action}\n- Workflow Name: ${context.workflowName}\n- Project Path: ${context.currentProjectPath}\n- Discovered Workflows: ${JSON.stringify(context.discoveredWorkflows, null, 2)}\n- Project Structure: ${JSON.stringify(context.projectStructure, null, 2)}\n\nAVAILABLE RESEARCH:\n${JSON.stringify(context.research, null, 2)}\n\nPRE-LOADED TASK LIST (${context.tasksLength} tasks already in taskManager):\n${context.tasks.map(task => `- ${task.id}: ${task.content} (Priority: ${task.priority})`).join('\\n')}\n\n${context.resumeData ? `USER PROVIDED ANSWERS: ${JSON.stringify(context.resumeData.answers, null, 2)}` : ''}\n\nStart by exploring the project structure, then use 'taskManager' with action 'list' to see your pre-loaded tasks, and work through each task systematically.`,\n\n prompt: context =>\n context.resumeData\n ? `Continue working on the task list. The user has provided answers to your questions: ${JSON.stringify(context.resumeData.answers, null, 2)}. \n\nCRITICAL: You must complete ALL ${context.tasks.length} tasks that are pre-loaded in the taskManager. Use the taskManager tool with action 'list' to check your progress and continue with the next tasks. Do not stop until every single task is marked as 'completed'.`\n : `Begin executing the pre-loaded task list to ${context.action} the workflow \"${context.workflowName}\". \n\nCRITICAL REQUIREMENTS:\n- Your ${context.tasks.length} tasks have been PRE-LOADED into the taskManager tool\n- Start by exploring the project directory structure using listDirectory and readFile tools to understand:\n - Where workflows are typically stored (look for src/mastra/workflows/ or similar)\n - What the existing file structure looks like\n - How other workflows are organized and named\n - Where agent files are stored if needed\n- Then use taskManager with action 'list' to see your pre-loaded tasks\n- Use taskManager with action 'update' to mark tasks as 'in_progress' or 'completed'\n\nCRITICAL FILE ORGANIZATION RULES:\n- **ALWAYS create a dedicated folder** for the workflow in src/mastra/workflows/\n- **Folder name MUST be kebab-case** version of workflow name \n- **NEVER put everything in one file** - separate types, steps, and workflow composition\n- Follow the 4-file structure above for maximum maintainability and clarity\n\n- DO NOT return status='completed' until ALL ${context.tasks.length} tasks are marked as 'completed' in the taskManager\n\nPRE-LOADED TASKS (${context.tasks.length} total tasks in taskManager):\n${context.tasks.map((task, index) => `${index + 1}. [${task.id}] ${task.content}`).join('\\n')}\n\nUse taskManager with action 'list' to see the current status of all tasks. You must complete every single one before finishing.`,\n\n iterationPrompt:\n context => `Continue working on the remaining tasks. You have already completed these tasks: [${context.completedTasks.map(t => t.id).join(', ')}]\n\nREMAINING TASKS TO COMPLETE (${context.pendingTasks.length} tasks):\n${context.pendingTasks.map((task, index) => `${index + 1}. [${task.id}] ${task.content}`).join('\\n')}\n\nCRITICAL: You must complete ALL of these remaining ${context.pendingTasks.length} tasks. Use taskManager with action 'list' to check current status and action 'update' to mark tasks as completed.\n\n${context.resumeData ? `USER PROVIDED ANSWERS: ${JSON.stringify(context.resumeData.answers, null, 2)}` : ''}`,\n },\n\n validation: {\n instructions: `CRITICAL VALIDATION INSTRUCTIONS:\n- When using the validateCode tool, ALWAYS pass the specific files you created or modified using the 'files' parameter\n- The tool uses a hybrid validation approach: fast syntax checking → semantic type checking → ESLint\n- This is much faster than full project compilation and only shows errors from your specific files\n- Example: validateCode({ validationType: ['types', 'lint'], files: ['src/workflows/my-workflow.ts', 'src/agents/my-agent.ts'] })\n- ALWAYS validate after creating or modifying files to ensure they compile correctly`,\n },\n};\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\nimport { AgentBuilderDefaults } from '../../defaults';\n\n// taskManager tool that only allows updates, not creation\nexport const restrictedTaskManager = createTool({\n id: 'task-manager',\n description:\n 'View and update your pre-loaded task list. You can only mark tasks as in_progress or completed, not create new tasks.',\n inputSchema: z.object({\n action: z\n .enum(['list', 'update', 'complete'])\n .describe('List tasks, update status, or mark complete - tasks are pre-loaded'),\n tasks: z\n .array(\n z.object({\n id: z.string().describe('Task ID - must match existing task'),\n content: z.string().optional().describe('Task content (read-only)'),\n status: z.enum(['pending', 'in_progress', 'completed', 'blocked']).describe('Task status'),\n priority: z.enum(['high', 'medium', 'low']).optional().describe('Task priority (read-only)'),\n dependencies: z.array(z.string()).optional().describe('Task dependencies (read-only)'),\n notes: z.string().optional().describe('Additional notes or progress updates'),\n }),\n )\n .optional()\n .describe('Tasks to update (status and notes only)'),\n taskId: z.string().optional().describe('Specific task ID for single task operations'),\n }),\n outputSchema: z.object({\n success: z.boolean(),\n tasks: z.array(\n z.object({\n id: z.string(),\n content: z.string(),\n status: z.string(),\n priority: z.string(),\n dependencies: z.array(z.string()).optional(),\n notes: z.string().optional(),\n createdAt: z.string(),\n updatedAt: z.string(),\n }),\n ),\n message: z.string(),\n }),\n execute: async input => {\n // Convert to the expected format for manageTaskList\n const adaptedContext = {\n ...input,\n action: input.action,\n tasks: input.tasks?.map(task => ({\n ...task,\n priority: task.priority || ('medium' as const),\n })),\n };\n return await AgentBuilderDefaults.manageTaskList(adaptedContext);\n },\n});\n","import { existsSync } from 'node:fs';\nimport { readFile, readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { stepCountIs } from '@internal/ai-sdk-v5';\nimport { Agent } from '@mastra/core/agent';\nimport { createWorkflow, createStep } from '@mastra/core/workflows';\nimport type { z } from 'zod';\nimport { AgentBuilder } from '../../agent';\nimport { AgentBuilderDefaults } from '../../defaults';\nimport { resolveModel } from '../../utils';\nimport { planningAndApprovalWorkflow } from '../task-planning/task-planning';\nimport { workflowBuilderPrompts, workflowResearch as research } from './prompts';\nimport {\n WorkflowBuilderInputSchema,\n WorkflowBuilderResultSchema,\n WorkflowDiscoveryResultSchema,\n ProjectDiscoveryResultSchema,\n WorkflowResearchResultSchema,\n TaskExecutionResultSchema,\n TaskExecutionInputSchema,\n TaskExecutionResumeSchema,\n TaskExecutionSuspendSchema,\n TaskExecutionIterationInputSchema,\n} from './schema';\nimport type { DiscoveredWorkflowSchema } from './schema';\nimport { restrictedTaskManager } from './tools';\n\ntype WorkflowBuilderInputSchemaType = z.infer;\n\n// Step 1: Always discover existing workflows\nconst workflowDiscoveryStep = createStep({\n id: 'workflow-discovery',\n description: 'Discover existing workflows in the project',\n inputSchema: WorkflowBuilderInputSchema,\n outputSchema: WorkflowDiscoveryResultSchema,\n execute: async ({ inputData, requestContext: _requestContext }) => {\n console.info('Starting workflow discovery...');\n const { projectPath = process.cwd() } = inputData;\n\n try {\n // Check if workflows directory exists\n const workflowsPath = join(projectPath, 'src/mastra/workflows');\n if (!existsSync(workflowsPath)) {\n console.info('No workflows directory found');\n return {\n success: true,\n workflows: [],\n mastraIndexExists: existsSync(join(projectPath, 'src/mastra/index.ts')),\n message: 'No existing workflows found in the project',\n };\n }\n\n // Read workflow files directly\n const workflowFiles = await readdir(workflowsPath);\n const workflows: z.infer[] = [];\n\n for (const fileName of workflowFiles) {\n if (fileName.endsWith('.ts') && !fileName.endsWith('.test.ts')) {\n const filePath = join(workflowsPath, fileName);\n try {\n const content = await readFile(filePath, 'utf-8');\n\n // Extract basic workflow info\n const nameMatch = content.match(/createWorkflow\\s*\\(\\s*{\\s*id:\\s*['\"]([^'\"]+)['\"]/);\n const descMatch = content.match(/description:\\s*['\"]([^'\"]*)['\"]/);\n\n if (nameMatch && nameMatch[1]) {\n workflows.push({\n name: nameMatch[1],\n file: filePath,\n description: descMatch?.[1] ?? 'No description available',\n });\n }\n } catch (error) {\n console.warn(`Failed to read workflow file ${filePath}:`, error);\n }\n }\n }\n\n console.info(`Discovered ${workflows.length} existing workflows`);\n return {\n success: true,\n workflows,\n mastraIndexExists: existsSync(join(projectPath, 'src/mastra/index.ts')),\n message:\n workflows.length > 0\n ? `Found ${workflows.length} existing workflow(s): ${workflows.map(w => w.name).join(', ')}`\n : 'No existing workflows found in the project',\n };\n } catch (error) {\n console.error('Workflow discovery failed:', error);\n return {\n success: false,\n workflows: [],\n mastraIndexExists: false,\n message: `Workflow discovery failed: ${error instanceof Error ? error.message : String(error)}`,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\n// Step 2: Always discover project structure\nconst projectDiscoveryStep = createStep({\n id: 'project-discovery',\n description: 'Analyze the project structure and setup',\n inputSchema: WorkflowDiscoveryResultSchema,\n outputSchema: ProjectDiscoveryResultSchema,\n execute: async ({ inputData: _inputData, requestContext: _requestContext }) => {\n console.info('Starting project discovery...');\n\n try {\n // Get project structure - no need for AgentBuilder since we're just checking files\n const projectPath = process.cwd(); // Use current working directory as default\n const projectStructure = {\n hasPackageJson: existsSync(join(projectPath, 'package.json')),\n hasMastraConfig:\n existsSync(join(projectPath, 'mastra.config.js')) || existsSync(join(projectPath, 'mastra.config.ts')),\n hasSrcDirectory: existsSync(join(projectPath, 'src')),\n hasMastraDirectory: existsSync(join(projectPath, 'src/mastra')),\n hasWorkflowsDirectory: existsSync(join(projectPath, 'src/mastra/workflows')),\n hasToolsDirectory: existsSync(join(projectPath, 'src/mastra/tools')),\n hasAgentsDirectory: existsSync(join(projectPath, 'src/mastra/agents')),\n };\n\n // Read package.json if it exists\n let packageInfo = null;\n if (projectStructure.hasPackageJson) {\n try {\n const packageContent = await readFile(join(projectPath, 'package.json'), 'utf-8');\n packageInfo = JSON.parse(packageContent);\n } catch (error) {\n console.warn('Failed to read package.json:', error);\n }\n }\n\n console.info('Project discovery completed');\n return {\n success: true,\n structure: {\n hasWorkflowsDir: projectStructure.hasWorkflowsDirectory,\n hasAgentsDir: projectStructure.hasAgentsDirectory,\n hasToolsDir: projectStructure.hasToolsDirectory,\n hasMastraIndex: existsSync(join(projectPath, 'src/mastra/index.ts')),\n existingWorkflows: [],\n existingAgents: [],\n existingTools: [],\n },\n dependencies: packageInfo?.dependencies || {},\n message: 'Project discovery completed successfully',\n };\n } catch (error) {\n console.error('Project discovery failed:', error);\n return {\n success: false,\n structure: {\n hasWorkflowsDir: false,\n hasAgentsDir: false,\n hasToolsDir: false,\n hasMastraIndex: false,\n existingWorkflows: [],\n existingAgents: [],\n existingTools: [],\n },\n dependencies: {},\n message: 'Project discovery failed',\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\ntype WorkflowResearchResult = z.infer;\n\n// Step 3: Research what is needed to be done\nconst workflowResearchStep = createStep({\n id: 'workflow-research',\n description: 'Research Mastra workflows and gather relevant documentation',\n inputSchema: ProjectDiscoveryResultSchema,\n outputSchema: WorkflowResearchResultSchema,\n execute: async ({ inputData, requestContext }) => {\n console.info('Starting workflow research...');\n\n try {\n // const filteredMcpTools = await initializeMcpTools();\n\n const model = await resolveModel({ requestContext });\n\n const researchAgent = new Agent({\n id: 'workflow-research-agent',\n model,\n instructions: workflowBuilderPrompts.researchAgent.instructions,\n name: 'Workflow Research Agent',\n // tools: filteredMcpTools,\n });\n\n const researchPrompt = workflowBuilderPrompts.researchAgent.prompt({\n projectStructure: inputData.structure,\n dependencies: inputData.dependencies,\n hasWorkflowsDir: inputData.structure.hasWorkflowsDir,\n });\n\n const result = await researchAgent.generate(researchPrompt, {\n structuredOutput: {\n schema: WorkflowResearchResultSchema,\n },\n // stopWhen: stepCountIs(10),\n });\n\n const researchResult = (await result.object) as unknown as WorkflowResearchResult | null;\n if (!researchResult) {\n return {\n success: false,\n documentation: {\n workflowPatterns: [],\n stepExamples: [],\n bestPractices: [],\n },\n webResources: [],\n message: 'Research agent failed to generate valid response',\n error: 'Research agent failed to generate valid response',\n };\n }\n\n console.info('Research completed successfully');\n return {\n success: true,\n documentation: {\n workflowPatterns: researchResult.documentation.workflowPatterns,\n stepExamples: researchResult.documentation.stepExamples,\n bestPractices: researchResult.documentation.bestPractices,\n },\n webResources: researchResult.webResources,\n message: 'Research completed successfully',\n };\n } catch (error) {\n console.error('Workflow research failed:', error);\n return {\n success: false,\n documentation: {\n workflowPatterns: [],\n stepExamples: [],\n bestPractices: [],\n },\n webResources: [],\n message: 'Research failed',\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\n// Task execution step remains the same\nconst taskExecutionStep = createStep({\n id: 'task-execution',\n description: 'Execute the approved task list to create or edit the workflow',\n inputSchema: TaskExecutionInputSchema,\n outputSchema: TaskExecutionResultSchema,\n suspendSchema: TaskExecutionSuspendSchema,\n resumeSchema: TaskExecutionResumeSchema,\n execute: async ({ inputData, resumeData, suspend, requestContext }) => {\n const {\n action,\n workflowName,\n description: _description,\n requirements: _requirements,\n tasks,\n discoveredWorkflows,\n projectStructure,\n research,\n projectPath,\n } = inputData;\n\n console.info(`Starting task execution for ${action}ing workflow: ${workflowName}`);\n console.info(`Executing ${tasks.length} tasks using AgentBuilder stream...`);\n\n try {\n const model = await resolveModel({ requestContext });\n const currentProjectPath = projectPath || process.cwd();\n\n // Pre-populate taskManager with the planned tasks\n console.info('Pre-populating taskManager with planned tasks...');\n const taskManagerContext = {\n action: 'create' as const,\n tasks: tasks.map(task => ({\n id: task.id,\n content: task.content,\n status: 'pending' as const,\n priority: task.priority,\n dependencies: task.dependencies,\n notes: task.notes,\n })),\n };\n\n const taskManagerResult = await AgentBuilderDefaults.manageTaskList(taskManagerContext);\n console.info(`Task manager initialized with ${taskManagerResult.tasks.length} tasks`);\n\n if (!taskManagerResult.success) {\n throw new Error(`Failed to initialize task manager: ${taskManagerResult.message}`);\n }\n\n const executionAgent = new AgentBuilder({\n projectPath: currentProjectPath,\n model,\n tools: {\n 'task-manager': restrictedTaskManager,\n },\n instructions: `${workflowBuilderPrompts.executionAgent.instructions({\n action,\n workflowName,\n tasksLength: tasks.length,\n currentProjectPath,\n discoveredWorkflows,\n projectStructure,\n research,\n tasks,\n resumeData,\n })}\n\n${workflowBuilderPrompts.validation.instructions}`,\n });\n\n const executionPrompt = workflowBuilderPrompts.executionAgent.prompt({\n action,\n workflowName,\n tasks,\n resumeData,\n });\n\n const originalInstructions = await executionAgent.getInstructions({ requestContext: requestContext });\n\n const enhancedOptions = {\n stopWhen: stepCountIs(100),\n temperature: 0.3,\n instructions: originalInstructions,\n };\n\n // Loop until all tasks are completed\n let finalResult: any = null;\n let allTasksCompleted = false;\n let iterationCount = 0;\n const maxIterations = 5;\n\n const expectedTaskIds = tasks.map(task => task.id);\n\n while (!allTasksCompleted && iterationCount < maxIterations) {\n iterationCount++;\n\n const currentTaskStatus = await AgentBuilderDefaults.manageTaskList({ action: 'list' });\n const completedTasks = currentTaskStatus.tasks.filter(task => task.status === 'completed');\n const pendingTasks = currentTaskStatus.tasks.filter(task => task.status !== 'completed');\n\n console.info(`\\n=== EXECUTION ITERATION ${iterationCount} ===`);\n console.info(`Completed tasks: ${completedTasks.length}/${expectedTaskIds.length}`);\n console.info(`Remaining tasks: ${pendingTasks.map(t => t.id).join(', ')}`);\n\n // Check if all tasks are completed\n allTasksCompleted = pendingTasks.length === 0;\n\n if (allTasksCompleted) {\n console.info('All tasks completed! Breaking execution loop.');\n break;\n }\n\n // Create prompt for this iteration\n const iterationPrompt =\n iterationCount === 1\n ? executionPrompt\n : `${workflowBuilderPrompts.executionAgent.iterationPrompt({\n completedTasks,\n pendingTasks,\n workflowName,\n resumeData,\n })}\n\n${workflowBuilderPrompts.validation.instructions}`;\n\n const stream = await executionAgent.stream(iterationPrompt, {\n structuredOutput: {\n schema: TaskExecutionIterationInputSchema(tasks.length),\n model,\n },\n ...enhancedOptions,\n });\n\n let finalMessage = '';\n for await (const chunk of stream.fullStream) {\n if (chunk.type === 'text-delta') {\n finalMessage += chunk.payload.text;\n }\n\n if (chunk.type === 'step-finish') {\n console.info(finalMessage);\n finalMessage = '';\n }\n\n if (chunk.type === 'tool-result') {\n console.info(JSON.stringify(chunk, null, 2));\n }\n\n if (chunk.type === 'finish') {\n console.info(chunk);\n }\n }\n\n await stream.consumeStream();\n finalResult = await stream.object;\n\n console.info(`Iteration ${iterationCount} result:`, { finalResult });\n\n if (!finalResult) {\n throw new Error(`No result received from agent execution on iteration ${iterationCount}`);\n }\n\n const postIterationTaskStatus = await AgentBuilderDefaults.manageTaskList({ action: 'list' });\n const postCompletedTasks = postIterationTaskStatus.tasks.filter(task => task.status === 'completed');\n const postPendingTasks = postIterationTaskStatus.tasks.filter(task => task.status !== 'completed');\n\n allTasksCompleted = postPendingTasks.length === 0;\n\n console.info(\n `After iteration ${iterationCount}: ${postCompletedTasks.length}/${expectedTaskIds.length} tasks completed in taskManager`,\n );\n\n // If agent needs clarification, break out and suspend\n if (finalResult.status === 'needs_clarification' && finalResult.questions && finalResult.questions.length > 0) {\n console.info(\n `Agent needs clarification on iteration ${iterationCount}: ${finalResult.questions.length} questions`,\n );\n break;\n }\n\n // If agent claims completed but taskManager shows pending tasks, continue loop\n if (finalResult.status === 'completed' && !allTasksCompleted) {\n console.info(\n `Agent claimed completion but taskManager shows pending tasks: ${postPendingTasks.map(t => t.id).join(', ')}`,\n );\n // Continue to next iteration\n }\n }\n\n if (iterationCount >= maxIterations && !allTasksCompleted) {\n finalResult.error = `Maximum iterations (${maxIterations}) reached but not all tasks completed`;\n finalResult.status = 'in_progress';\n }\n\n if (!finalResult) {\n throw new Error('No result received from agent execution');\n }\n\n // If the agent needs clarification, suspend the workflow\n if (finalResult.status === 'needs_clarification' && finalResult.questions && finalResult.questions.length > 0) {\n console.info(`Agent needs clarification: ${finalResult.questions.length} questions`);\n\n console.info('finalResult', JSON.stringify(finalResult, null, 2));\n return suspend({\n questions: finalResult.questions,\n currentProgress: finalResult.progress,\n completedTasks: finalResult.completedTasks || [],\n message: finalResult.message,\n });\n }\n\n const finalTaskStatus = await AgentBuilderDefaults.manageTaskList({ action: 'list' });\n const finalCompletedTasks = finalTaskStatus.tasks.filter(task => task.status === 'completed');\n const finalPendingTasks = finalTaskStatus.tasks.filter(task => task.status !== 'completed');\n\n const tasksCompleted = finalCompletedTasks.length;\n const tasksExpected = expectedTaskIds.length;\n const finalAllTasksCompleted = finalPendingTasks.length === 0;\n\n const success = finalAllTasksCompleted && !finalResult.error;\n const message = success\n ? `Successfully completed workflow ${action} - all ${tasksExpected} tasks completed after ${iterationCount} iteration(s): ${finalResult.message}`\n : `Workflow execution finished with issues after ${iterationCount} iteration(s): ${finalResult.message}. Completed: ${tasksCompleted}/${tasksExpected} tasks`;\n\n console.info(message);\n\n const missingTasks = finalPendingTasks.map(task => task.id);\n const validationErrors = [];\n\n if (finalResult.error) {\n validationErrors.push(finalResult.error);\n }\n\n if (!finalAllTasksCompleted) {\n validationErrors.push(\n `Incomplete tasks: ${missingTasks.join(', ')} (${tasksCompleted}/${tasksExpected} completed)`,\n );\n }\n\n return {\n success,\n completedTasks: finalCompletedTasks.map(task => task.id),\n filesModified: finalResult.filesModified || [],\n validationResults: {\n passed: success,\n errors: validationErrors,\n warnings: finalAllTasksCompleted ? [] : [`Missing ${missingTasks.length} tasks: ${missingTasks.join(', ')}`],\n },\n message,\n error: finalResult.error,\n };\n } catch (error) {\n console.error('Task execution failed:', error);\n return {\n success: false,\n completedTasks: [],\n filesModified: [],\n validationResults: {\n passed: false,\n errors: [`Task execution failed: ${error instanceof Error ? error.message : String(error)}`],\n warnings: [],\n },\n message: `Task execution failed: ${error instanceof Error ? error.message : String(error)}`,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n },\n});\n\n// Main Workflow Builder Workflow\nexport const workflowBuilderWorkflow = createWorkflow({\n id: 'workflow-builder',\n description: 'Create or edit Mastra workflows using AI-powered assistance with iterative planning',\n inputSchema: WorkflowBuilderInputSchema,\n outputSchema: WorkflowBuilderResultSchema,\n steps: [\n workflowDiscoveryStep,\n projectDiscoveryStep,\n workflowResearchStep,\n planningAndApprovalWorkflow,\n taskExecutionStep,\n ],\n})\n // Step 1: Always discover existing workflows\n .then(workflowDiscoveryStep)\n // Step 2: Always discover project structure\n .then(projectDiscoveryStep)\n // Step 3: Research workflows and documentation\n .then(workflowResearchStep)\n // Map research result to planning input format\n .map(async ({ getStepResult, getInitData }) => {\n const initData = getInitData();\n const discoveryResult = getStepResult(workflowDiscoveryStep);\n const projectResult = getStepResult(projectDiscoveryStep);\n // const researchResult = getStepResult(workflowResearchStep);\n\n return {\n action: initData.action,\n workflowName: initData.workflowName,\n description: initData.description,\n requirements: initData.requirements,\n discoveredWorkflows: discoveryResult.workflows,\n projectStructure: projectResult,\n // research: researchResult,\n research,\n\n userAnswers: undefined,\n };\n })\n // Step 4: Planning and Approval Sub-workflow (loops until approved)\n .dountil(planningAndApprovalWorkflow, async ({ inputData }) => {\n // Continue looping until user approves the task list\n console.info(`Sub-workflow check: approved=${inputData.approved}`);\n return inputData.approved === true;\n })\n // Map sub-workflow result to task execution input\n .map(async ({ getStepResult, getInitData }) => {\n const initData = getInitData();\n const discoveryResult = getStepResult(workflowDiscoveryStep);\n const projectResult = getStepResult(projectDiscoveryStep);\n // const researchResult = getStepResult(workflowResearchStep);\n const subWorkflowResult = getStepResult(planningAndApprovalWorkflow);\n\n return {\n action: initData.action,\n workflowName: initData.workflowName,\n description: initData.description,\n requirements: initData.requirements,\n tasks: subWorkflowResult.tasks,\n discoveredWorkflows: discoveryResult.workflows,\n projectStructure: projectResult,\n // research: researchResult,\n research,\n projectPath: initData.projectPath || process.cwd(),\n };\n })\n // Step 5: Execute the approved tasks\n .then(taskExecutionStep)\n .commit();\n","import type { Workflow } from '@mastra/core/workflows';\nimport { agentBuilderTemplateWorkflow } from './template-builder/template-builder';\nimport { workflowBuilderWorkflow } from './workflow-builder/workflow-builder';\n\nexport const agentBuilderWorkflows: Record> = {\n 'merge-template': agentBuilderTemplateWorkflow,\n 'workflow-builder': workflowBuilderWorkflow,\n};\n"]}