@langchain/langgraph
Version:
1 lines • 3.67 kB
Source Map (JSON)
{"version":3,"file":"plugin.cjs","names":["withLangGraph","z3","z4"],"sources":["../../../src/graph/zod/plugin.ts"],"sourcesContent":["import { z as z4 } from \"zod/v4\";\nimport { z as z3 } from \"zod/v3\";\nimport {\n getInteropZodDefaultGetter,\n InteropZodType,\n} from \"@langchain/core/utils/types\";\nimport { SchemaMeta, withLangGraph } from \"./meta.js\";\n\nconst metaSymbol = Symbol.for(\"langgraph-zod\");\n\ninterface ZodLangGraphTypesV3<T extends z3.ZodTypeAny, Output> {\n reducer<Input = z3.output<T>>(\n transform: (a: Output, arg: Input) => Output,\n options?: z3.ZodType<Input>\n ): z3.ZodType<Output, z3.ZodEffectsDef<T>, Input>;\n\n metadata(payload: {\n langgraph_nodes?: string[];\n langgraph_type?: \"prompt\";\n\n [key: string]: unknown;\n }): T;\n}\n\ndeclare module \"zod\" {\n interface ZodType<Output> {\n /**\n * @deprecated Using the langgraph zod plugin is deprecated and will be removed in future versions\n * Consider upgrading to zod 4 and using the exported langgraph meta registry. {@link langgraphRegistry}\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n langgraph: ZodLangGraphTypesV3<any, Output>;\n }\n}\ndeclare module \"zod/v3\" {\n interface ZodType<Output> {\n /**\n * @deprecated Using the langgraph zod plugin is deprecated and will be removed in future versions\n * Consider upgrading to zod 4 and using the exported langgraph meta registry. {@link langgraphRegistry}\n */\n langgraph: ZodLangGraphTypesV3<this, Output>;\n }\n}\n\ninterface PluginGlobalType {\n [metaSymbol]?: WeakSet<object>;\n}\n\nif (!(metaSymbol in globalThis)) {\n (globalThis as PluginGlobalType)[metaSymbol] = new WeakSet();\n}\n\nfunction applyPluginPrototype(prototype: object) {\n const cache = (globalThis as PluginGlobalType)[metaSymbol]!;\n if (cache.has(prototype)) {\n return; // Already applied\n }\n\n Object.defineProperty(prototype, \"langgraph\", {\n get(this: InteropZodType) {\n // Actual return type is provided by module augmentation\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const zodThis = this;\n\n return {\n metadata(jsonSchemaExtra: SchemaMeta[\"jsonSchemaExtra\"]) {\n return withLangGraph(zodThis, { jsonSchemaExtra });\n },\n reducer(\n fn: (a: unknown, arg: unknown) => unknown,\n schema?: InteropZodType\n ) {\n const defaultFn = getInteropZodDefaultGetter(zodThis);\n return withLangGraph(zodThis, {\n default: defaultFn,\n reducer: { schema, fn },\n });\n },\n };\n },\n });\n cache.add(prototype);\n}\n\ntry {\n applyPluginPrototype(z3.ZodType.prototype);\n applyPluginPrototype(z4.ZodType.prototype);\n} catch (error) {\n throw new Error(\n \"Failed to extend Zod with LangGraph-related methods. This is most likely a bug, consider opening an issue and/or using `withLangGraph` to augment your Zod schema.\",\n { cause: error }\n );\n}\n"],"mappings":";;;;;AAQA,MAAM,aAAa,OAAO,IAAI,gBAAgB;AAwC9C,IAAI,EAAE,cAAc,YACjB,YAAgC,8BAAc,IAAI,SAAS;AAG9D,SAAS,qBAAqB,WAAmB;CAC/C,MAAM,QAAS,WAAgC;AAC/C,KAAI,MAAM,IAAI,UAAU,CACtB;AAGF,QAAO,eAAe,WAAW,aAAa,EAC5C,MAA0B;EAGxB,MAAM,UAAU;AAEhB,SAAO;GACL,SAAS,iBAAgD;AACvD,WAAOA,aAAAA,cAAc,SAAS,EAAE,iBAAiB,CAAC;;GAEpD,QACE,IACA,QACA;AAEA,WAAOA,aAAAA,cAAc,SAAS;KAC5B,UAAA,GAAA,4BAAA,4BAF2C,QAAQ;KAGnD,SAAS;MAAE;MAAQ;MAAI;KACxB,CAAC;;GAEL;IAEJ,CAAC;AACF,OAAM,IAAI,UAAU;;AAGtB,IAAI;AACF,sBAAqBC,OAAAA,EAAG,QAAQ,UAAU;AAC1C,sBAAqBC,OAAAA,EAAG,QAAQ,UAAU;SACnC,OAAO;AACd,OAAM,IAAI,MACR,sKACA,EAAE,OAAO,OAAO,CACjB"}