@langchain/langgraph 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/channels/index.cjs +1 -0
  2. package/dist/errors.d.cts.map +1 -1
  3. package/dist/errors.d.ts.map +1 -1
  4. package/dist/graph/annotation.cjs +3 -0
  5. package/dist/graph/annotation.cjs.map +1 -1
  6. package/dist/graph/annotation.d.cts +1 -0
  7. package/dist/graph/annotation.d.cts.map +1 -1
  8. package/dist/graph/annotation.d.ts +1 -0
  9. package/dist/graph/annotation.d.ts.map +1 -1
  10. package/dist/graph/annotation.js +3 -0
  11. package/dist/graph/annotation.js.map +1 -1
  12. package/dist/graph/graph.cjs +3 -3
  13. package/dist/graph/graph.cjs.map +1 -1
  14. package/dist/graph/graph.js +3 -3
  15. package/dist/graph/graph.js.map +1 -1
  16. package/dist/graph/message.d.cts +2 -2
  17. package/dist/graph/message.d.cts.map +1 -1
  18. package/dist/graph/message.d.ts +2 -2
  19. package/dist/graph/message.d.ts.map +1 -1
  20. package/dist/graph/messages_annotation.d.cts +5 -5
  21. package/dist/graph/messages_annotation.d.cts.map +1 -1
  22. package/dist/graph/messages_annotation.d.ts +5 -5
  23. package/dist/graph/messages_annotation.d.ts.map +1 -1
  24. package/dist/graph/state.cjs +98 -78
  25. package/dist/graph/state.cjs.map +1 -1
  26. package/dist/graph/state.d.cts +68 -35
  27. package/dist/graph/state.d.cts.map +1 -1
  28. package/dist/graph/state.d.ts +68 -35
  29. package/dist/graph/state.d.ts.map +1 -1
  30. package/dist/graph/state.js +99 -79
  31. package/dist/graph/state.js.map +1 -1
  32. package/dist/graph/types.cjs +41 -0
  33. package/dist/graph/types.cjs.map +1 -0
  34. package/dist/graph/types.d.cts +247 -18
  35. package/dist/graph/types.d.cts.map +1 -1
  36. package/dist/graph/types.d.ts +247 -18
  37. package/dist/graph/types.d.ts.map +1 -1
  38. package/dist/graph/types.js +40 -0
  39. package/dist/graph/types.js.map +1 -0
  40. package/dist/graph/zod/index.cjs +1 -0
  41. package/dist/graph/zod/meta.cjs +7 -7
  42. package/dist/graph/zod/meta.cjs.map +1 -1
  43. package/dist/graph/zod/meta.d.cts +3 -3
  44. package/dist/graph/zod/meta.d.cts.map +1 -1
  45. package/dist/graph/zod/meta.d.ts +3 -3
  46. package/dist/graph/zod/meta.d.ts.map +1 -1
  47. package/dist/graph/zod/meta.js +7 -7
  48. package/dist/graph/zod/meta.js.map +1 -1
  49. package/dist/graph/zod/schema.cjs +1 -0
  50. package/dist/graph/zod/schema.cjs.map +1 -1
  51. package/dist/hash.cjs +1 -1
  52. package/dist/hash.cjs.map +1 -1
  53. package/dist/hash.js +1 -1
  54. package/dist/hash.js.map +1 -1
  55. package/dist/index.cjs +1 -0
  56. package/dist/index.cjs.map +1 -1
  57. package/dist/index.d.cts +2 -2
  58. package/dist/index.d.ts +2 -2
  59. package/dist/prebuilt/agent_executor.d.cts +5 -5
  60. package/dist/prebuilt/agent_executor.d.cts.map +1 -1
  61. package/dist/prebuilt/agent_executor.d.ts +5 -5
  62. package/dist/prebuilt/agent_executor.d.ts.map +1 -1
  63. package/dist/prebuilt/index.cjs +1 -0
  64. package/dist/prebuilt/react_agent_executor.cjs +12 -12
  65. package/dist/prebuilt/react_agent_executor.cjs.map +1 -1
  66. package/dist/prebuilt/react_agent_executor.d.cts +3 -3
  67. package/dist/prebuilt/react_agent_executor.d.cts.map +1 -1
  68. package/dist/prebuilt/react_agent_executor.d.ts +3 -3
  69. package/dist/prebuilt/react_agent_executor.d.ts.map +1 -1
  70. package/dist/prebuilt/react_agent_executor.js +12 -12
  71. package/dist/prebuilt/react_agent_executor.js.map +1 -1
  72. package/dist/prebuilt/tool_node.cjs +1 -1
  73. package/dist/prebuilt/tool_node.cjs.map +1 -1
  74. package/dist/prebuilt/tool_node.js +1 -1
  75. package/dist/prebuilt/tool_node.js.map +1 -1
  76. package/dist/pregel/debug.cjs +9 -9
  77. package/dist/pregel/debug.cjs.map +1 -1
  78. package/dist/pregel/debug.js +9 -9
  79. package/dist/pregel/debug.js.map +1 -1
  80. package/dist/pregel/index.cjs +45 -44
  81. package/dist/pregel/index.cjs.map +1 -1
  82. package/dist/pregel/index.js +44 -44
  83. package/dist/pregel/index.js.map +1 -1
  84. package/dist/pregel/loop.cjs +1 -1
  85. package/dist/pregel/loop.cjs.map +1 -1
  86. package/dist/pregel/loop.js +1 -1
  87. package/dist/pregel/loop.js.map +1 -1
  88. package/dist/pregel/utils/subgraph.cjs +2 -2
  89. package/dist/pregel/utils/subgraph.cjs.map +1 -1
  90. package/dist/pregel/utils/subgraph.js +2 -2
  91. package/dist/pregel/utils/subgraph.js.map +1 -1
  92. package/dist/remote.cjs +1 -0
  93. package/dist/state/schema.cjs +2 -2
  94. package/dist/state/schema.cjs.map +1 -1
  95. package/dist/state/schema.js +2 -2
  96. package/dist/state/schema.js.map +1 -1
  97. package/dist/web.cjs +1 -0
  98. package/dist/web.d.cts +2 -2
  99. package/dist/web.d.ts +2 -2
  100. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.cts","names":["InteropZodObject","InteropZodType","InteropZodObjectShape","BaseChannel","META_EXTRAS_DESCRIPTION_PREFIX","ReducedZodChannel","T","TReducerSchema","InteropZodToStateDefinition","TShape","key","Schema","ReducerSchema","V","U","UpdateType","SchemaMeta","TValue","TUpdate","SchemaMetaRegistry","WeakMap","Map","schemaMetaRegistry","withLangGraph","TSchema"],"sources":["../../../src/graph/zod/meta.d.ts"],"sourcesContent":["import { InteropZodObject, InteropZodType, InteropZodObjectShape } from \"@langchain/core/utils/types\";\nimport { BaseChannel } from \"../../channels/base.js\";\nexport declare const META_EXTRAS_DESCRIPTION_PREFIX = \"lg:\";\n/** @internal */\nexport type ReducedZodChannel<T extends InteropZodType, TReducerSchema extends InteropZodType> = T & {\n lg_reducer_schema: TReducerSchema;\n};\n/** @internal */\nexport type InteropZodToStateDefinition<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<infer V> ? ReducerSchema extends InteropZodType<infer U> ? BaseChannel<V, U> : never : never : TShape[key] extends InteropZodType<infer V, infer U> ? BaseChannel<V, U> : never;\n};\nexport type UpdateType<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]?: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<unknown> ? ReducerSchema extends InteropZodType<infer U> ? U : never : never : TShape[key] extends InteropZodType<unknown, infer U> ? U : never;\n};\nexport interface SchemaMeta<TValue = any, TUpdate = TValue> {\n jsonSchemaExtra?: {\n langgraph_nodes?: string[];\n langgraph_type?: \"prompt\" | \"messages\";\n [key: string]: unknown;\n };\n reducer?: {\n schema?: InteropZodType<TUpdate>;\n fn: (a: TValue, b: TUpdate) => TValue;\n };\n default?: () => TValue;\n}\n/**\n * A registry for storing and managing metadata associated with schemas.\n * This class provides methods to get, extend, remove, and check metadata for a given schema.\n */\nexport declare class SchemaMetaRegistry {\n /**\n * Internal map storing schema metadata.\n * @internal\n */\n _map: WeakMap<InteropZodType, SchemaMeta<any, any>>;\n /**\n * Cache for extended schfemas.\n * @internal\n */\n _extensionCache: Map<string, WeakMap<InteropZodType, InteropZodType>>;\n /**\n * Retrieves the metadata associated with a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to retrieve metadata for.\n * @returns The associated SchemaMeta, or undefined if not present.\n */\n get<TValue, TUpdate = TValue>(schema: InteropZodType<TValue>): SchemaMeta<TValue, TUpdate> | undefined;\n /**\n * Extends or sets the metadata for a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to extend metadata for.\n * @param predicate A function that receives the existing metadata (or undefined) and returns the new metadata.\n */\n extend<TValue, TUpdate>(schema: InteropZodType<TValue>, predicate: (meta: SchemaMeta<TValue, TUpdate> | undefined) => SchemaMeta<TValue, TUpdate>): void;\n /**\n * Removes the metadata associated with a given schema.\n * @param schema The schema to remove metadata for.\n * @returns The SchemaMetaRegistry instance (for chaining).\n */\n remove(schema: InteropZodType): this;\n /**\n * Checks if metadata exists for a given schema.\n * @param schema The schema to check.\n * @returns True if metadata exists, false otherwise.\n */\n has(schema: InteropZodType): boolean;\n /**\n * Returns a mapping of channel instances for each property in the schema\n * using the associated metadata in the registry.\n *\n * This is used to create the `channels` object that's passed to the `Graph` constructor.\n *\n * @template T The shape of the schema.\n * @param schema The schema to extract channels from.\n * @returns A mapping from property names to channel instances.\n */\n getChannelsForSchema<T extends InteropZodObject>(schema: T): InteropZodToStateDefinition<T>;\n /**\n * Returns a modified schema that introspectively looks at all keys of the provided\n * object schema, and applies the augmentations based on meta provided with those keys\n * in the registry and the selectors provided in the `effects` parameter.\n *\n * This assumes that the passed in schema is the \"root\" schema object for a graph where\n * the keys of the schema are the channels of the graph. Because we need to represent\n * the input of a graph in a couple of different ways, the `effects` parameter allows\n * us to apply those augmentations based on pre determined conditions.\n *\n * @param schema The root schema object to extend.\n * @param effects The effects that are being applied.\n * @returns The extended schema.\n */\n getExtendedChannelSchemas<T extends InteropZodObject>(schema: T, effects: {\n /**\n * Augments the shape by using the reducer's schema if it exists\n */\n withReducerSchema?: boolean;\n /**\n * Applies the stringified jsonSchemaExtra as a description to the schema.\n */\n withJsonSchemaExtrasAsDescription?: boolean;\n /**\n * Applies the `.partial()` modifier to the schema.\n */\n asPartial?: boolean;\n }): InteropZodObject;\n}\nexport declare const schemaMetaRegistry: SchemaMetaRegistry;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate> & {\n reducer?: undefined;\n}): TSchema;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate>): ReducedZodChannel<TSchema, InteropZodType<TUpdate>>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"meta.d.cts","names":["InteropZodObject","InteropZodType","InteropZodObjectShape","BaseChannel","META_EXTRAS_DESCRIPTION_PREFIX","ReducedZodChannel","T","TReducerSchema","InteropZodToStateDefinition","TShape","key","Schema","ReducerSchema","V","U","UpdateType","SchemaMeta","TValue","TUpdate","SchemaMetaRegistry","Map","schemaMetaRegistry","withLangGraph","TSchema"],"sources":["../../../src/graph/zod/meta.d.ts"],"sourcesContent":["import { InteropZodObject, InteropZodType, InteropZodObjectShape } from \"@langchain/core/utils/types\";\nimport { BaseChannel } from \"../../channels/base.js\";\nexport declare const META_EXTRAS_DESCRIPTION_PREFIX = \"lg:\";\n/** @internal */\nexport type ReducedZodChannel<T extends InteropZodType, TReducerSchema extends InteropZodType> = T & {\n lg_reducer_schema: TReducerSchema;\n};\n/** @internal */\nexport type InteropZodToStateDefinition<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<infer V> ? ReducerSchema extends InteropZodType<infer U> ? BaseChannel<V, U> : never : never : TShape[key] extends InteropZodType<infer V, infer U> ? BaseChannel<V, U> : never;\n};\nexport type UpdateType<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]?: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<unknown> ? ReducerSchema extends InteropZodType<infer U> ? U : never : never : TShape[key] extends InteropZodType<unknown, infer U> ? U : never;\n};\nexport interface SchemaMeta<TValue = any, TUpdate = TValue> {\n jsonSchemaExtra?: {\n langgraph_nodes?: string[];\n langgraph_type?: \"prompt\" | \"messages\";\n [key: string]: unknown;\n };\n reducer?: {\n schema?: InteropZodType<TUpdate>;\n fn: (a: TValue, b: TUpdate) => TValue;\n };\n default?: () => TValue;\n}\n/**\n * A registry for storing and managing metadata associated with schemas.\n * This class provides methods to get, extend, remove, and check metadata for a given schema.\n */\nexport declare class SchemaMetaRegistry {\n /**\n * Internal map storing schema metadata.\n * @internal\n */\n _map: Map<InteropZodType, SchemaMeta<any, any>>;\n /**\n * Cache for extended schemas.\n * @internal\n */\n _extensionCache: Map<string, Map<InteropZodType, InteropZodType>>;\n /**\n * Retrieves the metadata associated with a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to retrieve metadata for.\n * @returns The associated SchemaMeta, or undefined if not present.\n */\n get<TValue, TUpdate = TValue>(schema: InteropZodType<TValue>): SchemaMeta<TValue, TUpdate> | undefined;\n /**\n * Extends or sets the metadata for a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to extend metadata for.\n * @param predicate A function that receives the existing metadata (or undefined) and returns the new metadata.\n */\n extend<TValue, TUpdate>(schema: InteropZodType<TValue>, predicate: (meta: SchemaMeta<TValue, TUpdate> | undefined) => SchemaMeta<TValue, TUpdate>): void;\n /**\n * Removes the metadata associated with a given schema.\n * @param schema The schema to remove metadata for.\n * @returns The SchemaMetaRegistry instance (for chaining).\n */\n remove(schema: InteropZodType): this;\n /**\n * Checks if metadata exists for a given schema.\n * @param schema The schema to check.\n * @returns True if metadata exists, false otherwise.\n */\n has(schema: InteropZodType): boolean;\n /**\n * Returns a mapping of channel instances for each property in the schema\n * using the associated metadata in the registry.\n *\n * This is used to create the `channels` object that's passed to the `Graph` constructor.\n *\n * @template T The shape of the schema.\n * @param schema The schema to extract channels from.\n * @returns A mapping from property names to channel instances.\n */\n getChannelsForSchema<T extends InteropZodObject>(schema: T): InteropZodToStateDefinition<T>;\n /**\n * Returns a modified schema that introspectively looks at all keys of the provided\n * object schema, and applies the augmentations based on meta provided with those keys\n * in the registry and the selectors provided in the `effects` parameter.\n *\n * This assumes that the passed in schema is the \"root\" schema object for a graph where\n * the keys of the schema are the channels of the graph. Because we need to represent\n * the input of a graph in a couple of different ways, the `effects` parameter allows\n * us to apply those augmentations based on pre determined conditions.\n *\n * @param schema The root schema object to extend.\n * @param effects The effects that are being applied.\n * @returns The extended schema.\n */\n getExtendedChannelSchemas<T extends InteropZodObject>(schema: T, effects: {\n /**\n * Augments the shape by using the reducer's schema if it exists\n */\n withReducerSchema?: boolean;\n /**\n * Applies the stringified jsonSchemaExtra as a description to the schema.\n */\n withJsonSchemaExtrasAsDescription?: boolean;\n /**\n * Applies the `.partial()` modifier to the schema.\n */\n asPartial?: boolean;\n }): InteropZodObject;\n}\nexport declare const schemaMetaRegistry: SchemaMetaRegistry;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate> & {\n reducer?: undefined;\n}): TSchema;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate>): ReducedZodChannel<TSchema, InteropZodType<TUpdate>>;\n"],"mappings":";;;;cAEqBI,8BAAAA;;AAAAA,KAETC,iBAFSD,CAAAA,UAEmBH,cAFW,EAAA,uBAE4BA,cAF5B,CAAA,GAE8CK,CAF9C,GAAA;EAEvCD,iBAAAA,EACWE,cADM;CAAA;;AAAkDN,KAInEO,2BAJmEP,CAAAA,UAI7BD,gBAJ6BC,EAAAA,SAIFC,qBAJED,CAIoBK,CAJpBL,CAAAA,CAAAA,GAAAA,UAAkBK,MAK/EG,MAL+EH,GAKtEG,MALsEH,CAK/DI,GAL+DJ,CAAAA,SAKlDD,iBALkDC,CAAAA,KAAAA,OAAAA,EAAAA,KAAAA,cAAAA,CAAAA,GAKKK,MALLL,SAKoBL,cALpBK,CAAAA,KAAAA,EAAAA,CAAAA,GAK8CM,aAL9CN,SAKoEL,cALpEK,CAAAA,KAAAA,EAAAA,CAAAA,GAK8FH,WAL9FG,CAK0GO,CAL1GP,EAK6GQ,CAL7GR,CAAAA,GAAAA,KAAAA,GAAAA,KAAAA,GAKkIG,MALlIH,CAKyII,GALzIJ,CAAAA,SAKsJL,cALtJK,CAAAA,KAAAA,EAAAA,EAAAA,KAAAA,EAAAA,CAAAA,GAKyLH,WALzLG,CAKqMO,CALrMP,EAKwMQ,CALxMR,CAAAA,GAAAA,KAAAA;AAC5D,KAMzBS,UANyB,CAAA,UAMJf,gBANI,EAAA,SAMuBE,qBANvB,CAM6CI,CAN7C,CAAA,CAAA,GAAA,UAGzBE,MAIMC,MAJND,IAIgBC,MAJW,CAIJC,GAJI,CAAA,SAISL,iBAJT,CAAA,KAAA,OAAA,EAAA,KAAA,cAAA,CAAA,GAIgEM,MAJhE,SAI+EV,cAJ/E,CAAA,OAAA,CAAA,GAIyGW,aAJzG,SAI+HX,cAJ/H,CAAA,KAAA,EAAA,CAAA,GAIyJa,CAJzJ,GAAA,KAAA,GAAA,KAAA,GAI6KL,MAJ7K,CAIoLC,GAJpL,CAAA,SAIiMT,cAJjM,CAAA,OAAA,EAAA,KAAA,EAAA,CAAA,GAIoOa,CAJpO,GAAA,KAAA,EAAA;AAAWd,UAMjCgB,UANiChB,CAAAA,SAAAA,GAAAA,EAAAA,UAMEiB,MANFjB,CAAAA,CAAAA;iBAAiDM,CAAAA,EAAAA;IAAtBJ,eAAAA,CAAAA,EAAAA,MAAAA,EAAAA;IAC3DO,cAAAA,CAAAA,EAAAA,QAAAA,GAAAA,UAAAA;IAASA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAAAA,OAAAA;;SAAoBJ,CAAAA,EAAAA;IAAuDM,MAAAA,CAAAA,EAYrFV,cAZqFU,CAYtEO,OAZsEP,CAAAA;IAAeV,EAAAA,EAAAA,CAAAA,CAAAA,EAarGgB,MAbqGhB,EAAAA,CAAAA,EAa1FiB,OAb0FjB,EAAAA,GAa9EgB,MAb8EhB;;SAAgDA,CAAAA,EAAAA,GAAAA,GAejJgB,MAfiJhB;;;;;;AAAkFA,cAqBlOkB,kBAAAA,CArBkOlB;;;;;EAE3Oc,IAAAA,EAwBFK,GAxBEL,CAwBEd,cAxBQ,EAwBQe,UAxBR,CAAA,GAAA,EAAA,GAAA,CAAA,CAAA;EAAA;;;;iBACJP,EA4BGW,GA5BHX,CAAAA,MAAAA,EA4BeW,GA5BfX,CA4BmBR,cA5BnBQ,EA4BmCR,cA5BnCQ,CAAAA,CAAAA;;;;;;;;KAA8KK,CAAAA,MAAAA,EAAAA,UAoCtKG,MApCsKH,CAAAA,CAAAA,MAAAA,EAoCtJb,cApCsJa,CAoCvIG,MApCuIH,CAAAA,CAAAA,EAoC7HE,UApC6HF,CAoClHG,MApCkHH,EAoC1GI,OApC0GJ,CAAAA,GAAAA,SAAAA;;;;;;AAEhM;;QAAoDG,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA,CAAAA,MAAAA,EA0ChBhB,cA1CgBgB,CA0CDA,MA1CCA,CAAAA,EAAAA,SAAAA,EAAAA,CAAAA,IAAAA,EA0C0BD,UA1C1BC,CA0CqCA,MA1CrCA,EA0C6CC,OA1C7CD,CAAAA,GAAAA,SAAAA,EAAAA,GA0CsED,UA1CtEC,CA0CiFA,MA1CjFA,EA0CyFC,OA1CzFD,CAAAA,CAAAA,EAAAA,IAAAA;;;;;;QAUhCA,CAAAA,MAAAA,EAsCDhB,cAtCCgB,CAAAA,EAAAA,IAAAA;EAAM;AAM1B;;;;KAKUG,CAAAA,MAAAA,EAiCMnB,cAjCNmB,CAAAA,EAAAA,OAAAA;;;;;;;;;;;sBAqByCH,CAAAA,UAuBhBjB,gBAvBgBiB,CAAAA,CAAAA,MAAAA,EAuBUX,CAvBVW,CAAAA,EAuBcT,2BAvBdS,CAuB0CX,CAvB1CW,CAAAA;;;;;;;;;;;;;;;2BAsCeX,CAAAA,UAA1BN,gBAA0BM,CAAAA,CAAAA,MAAAA,EAAAA,CAAAA,EAAAA,OAAAA,EAAAA;IAa1DN;;AAER;IACwBsB,iBAAa,CAAA,EAAA,OAAA;IAAA;;;IAAkEC,iCAAAA,CAAAA,EAAAA,OAAAA;IAA0BN;;;IAE7HM,SAAAA,CAAAA,EAAAA,OAAAA;EAAO,CAAA,CAAA,EALHvB,gBAKG;AACX;AAAqC,cAJhBqB,kBAIgB,EAJIF,kBAIJ;AAAiDF,iBAH9DK,aAG8DL,CAAAA,MAAAA,EAAAA,OAAAA,EAAAA,gBAHfhB,cAGegB,CAHAA,MAGAA,CAAAA,CAAAA,CAAAA,MAAAA,EAHiBM,OAGjBN,EAAAA,IAAAA,EAHgCD,UAGhCC,CAH2CA,MAG3CA,EAHmDC,OAGnDD,CAAAA,GAAAA;SAAfhB,CAAAA,EAAAA,SAAAA;IADnEsB,OACmGA;AAA0BN,iBAAzGK,aAAyGL,CAAAA,MAAAA,EAAAA,OAAAA,EAAAA,gBAA1DhB,cAA0DgB,CAA3CA,MAA2CA,CAAAA,CAAAA,CAAAA,MAAAA,EAA1BM,OAA0BN,EAAAA,IAAAA,EAAXD,UAAWC,CAAAA,MAAAA,EAAQC,OAARD,CAAAA,CAAAA,EAAmBZ,iBAAnBY,CAAqCM,OAArCN,EAA8ChB,cAA9CgB,CAA6DC,OAA7DD,CAAAA,CAAAA"}
@@ -31,12 +31,12 @@ declare class SchemaMetaRegistry {
31
31
  * Internal map storing schema metadata.
32
32
  * @internal
33
33
  */
34
- _map: WeakMap<InteropZodType, SchemaMeta<any, any>>;
34
+ _map: Map<InteropZodType, SchemaMeta<any, any>>;
35
35
  /**
36
- * Cache for extended schfemas.
36
+ * Cache for extended schemas.
37
37
  * @internal
38
38
  */
39
- _extensionCache: Map<string, WeakMap<InteropZodType, InteropZodType>>;
39
+ _extensionCache: Map<string, Map<InteropZodType, InteropZodType>>;
40
40
  /**
41
41
  * Retrieves the metadata associated with a given schema.
42
42
  * @template TValue The value type of the schema.
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","names":["InteropZodObject","InteropZodType","InteropZodObjectShape","BaseChannel","META_EXTRAS_DESCRIPTION_PREFIX","ReducedZodChannel","T","TReducerSchema","InteropZodToStateDefinition","TShape","key","Schema","ReducerSchema","V","U","UpdateType","SchemaMeta","TValue","TUpdate","SchemaMetaRegistry","WeakMap","Map","schemaMetaRegistry","withLangGraph","TSchema"],"sources":["../../../src/graph/zod/meta.d.ts"],"sourcesContent":["import { InteropZodObject, InteropZodType, InteropZodObjectShape } from \"@langchain/core/utils/types\";\nimport { BaseChannel } from \"../../channels/base.js\";\nexport declare const META_EXTRAS_DESCRIPTION_PREFIX = \"lg:\";\n/** @internal */\nexport type ReducedZodChannel<T extends InteropZodType, TReducerSchema extends InteropZodType> = T & {\n lg_reducer_schema: TReducerSchema;\n};\n/** @internal */\nexport type InteropZodToStateDefinition<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<infer V> ? ReducerSchema extends InteropZodType<infer U> ? BaseChannel<V, U> : never : never : TShape[key] extends InteropZodType<infer V, infer U> ? BaseChannel<V, U> : never;\n};\nexport type UpdateType<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]?: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<unknown> ? ReducerSchema extends InteropZodType<infer U> ? U : never : never : TShape[key] extends InteropZodType<unknown, infer U> ? U : never;\n};\nexport interface SchemaMeta<TValue = any, TUpdate = TValue> {\n jsonSchemaExtra?: {\n langgraph_nodes?: string[];\n langgraph_type?: \"prompt\" | \"messages\";\n [key: string]: unknown;\n };\n reducer?: {\n schema?: InteropZodType<TUpdate>;\n fn: (a: TValue, b: TUpdate) => TValue;\n };\n default?: () => TValue;\n}\n/**\n * A registry for storing and managing metadata associated with schemas.\n * This class provides methods to get, extend, remove, and check metadata for a given schema.\n */\nexport declare class SchemaMetaRegistry {\n /**\n * Internal map storing schema metadata.\n * @internal\n */\n _map: WeakMap<InteropZodType, SchemaMeta<any, any>>;\n /**\n * Cache for extended schfemas.\n * @internal\n */\n _extensionCache: Map<string, WeakMap<InteropZodType, InteropZodType>>;\n /**\n * Retrieves the metadata associated with a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to retrieve metadata for.\n * @returns The associated SchemaMeta, or undefined if not present.\n */\n get<TValue, TUpdate = TValue>(schema: InteropZodType<TValue>): SchemaMeta<TValue, TUpdate> | undefined;\n /**\n * Extends or sets the metadata for a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to extend metadata for.\n * @param predicate A function that receives the existing metadata (or undefined) and returns the new metadata.\n */\n extend<TValue, TUpdate>(schema: InteropZodType<TValue>, predicate: (meta: SchemaMeta<TValue, TUpdate> | undefined) => SchemaMeta<TValue, TUpdate>): void;\n /**\n * Removes the metadata associated with a given schema.\n * @param schema The schema to remove metadata for.\n * @returns The SchemaMetaRegistry instance (for chaining).\n */\n remove(schema: InteropZodType): this;\n /**\n * Checks if metadata exists for a given schema.\n * @param schema The schema to check.\n * @returns True if metadata exists, false otherwise.\n */\n has(schema: InteropZodType): boolean;\n /**\n * Returns a mapping of channel instances for each property in the schema\n * using the associated metadata in the registry.\n *\n * This is used to create the `channels` object that's passed to the `Graph` constructor.\n *\n * @template T The shape of the schema.\n * @param schema The schema to extract channels from.\n * @returns A mapping from property names to channel instances.\n */\n getChannelsForSchema<T extends InteropZodObject>(schema: T): InteropZodToStateDefinition<T>;\n /**\n * Returns a modified schema that introspectively looks at all keys of the provided\n * object schema, and applies the augmentations based on meta provided with those keys\n * in the registry and the selectors provided in the `effects` parameter.\n *\n * This assumes that the passed in schema is the \"root\" schema object for a graph where\n * the keys of the schema are the channels of the graph. Because we need to represent\n * the input of a graph in a couple of different ways, the `effects` parameter allows\n * us to apply those augmentations based on pre determined conditions.\n *\n * @param schema The root schema object to extend.\n * @param effects The effects that are being applied.\n * @returns The extended schema.\n */\n getExtendedChannelSchemas<T extends InteropZodObject>(schema: T, effects: {\n /**\n * Augments the shape by using the reducer's schema if it exists\n */\n withReducerSchema?: boolean;\n /**\n * Applies the stringified jsonSchemaExtra as a description to the schema.\n */\n withJsonSchemaExtrasAsDescription?: boolean;\n /**\n * Applies the `.partial()` modifier to the schema.\n */\n asPartial?: boolean;\n }): InteropZodObject;\n}\nexport declare const schemaMetaRegistry: SchemaMetaRegistry;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate> & {\n reducer?: undefined;\n}): TSchema;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate>): ReducedZodChannel<TSchema, InteropZodType<TUpdate>>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"meta.d.ts","names":["InteropZodObject","InteropZodType","InteropZodObjectShape","BaseChannel","META_EXTRAS_DESCRIPTION_PREFIX","ReducedZodChannel","T","TReducerSchema","InteropZodToStateDefinition","TShape","key","Schema","ReducerSchema","V","U","UpdateType","SchemaMeta","TValue","TUpdate","SchemaMetaRegistry","Map","schemaMetaRegistry","withLangGraph","TSchema"],"sources":["../../../src/graph/zod/meta.d.ts"],"sourcesContent":["import { InteropZodObject, InteropZodType, InteropZodObjectShape } from \"@langchain/core/utils/types\";\nimport { BaseChannel } from \"../../channels/base.js\";\nexport declare const META_EXTRAS_DESCRIPTION_PREFIX = \"lg:\";\n/** @internal */\nexport type ReducedZodChannel<T extends InteropZodType, TReducerSchema extends InteropZodType> = T & {\n lg_reducer_schema: TReducerSchema;\n};\n/** @internal */\nexport type InteropZodToStateDefinition<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<infer V> ? ReducerSchema extends InteropZodType<infer U> ? BaseChannel<V, U> : never : never : TShape[key] extends InteropZodType<infer V, infer U> ? BaseChannel<V, U> : never;\n};\nexport type UpdateType<T extends InteropZodObject, TShape = InteropZodObjectShape<T>> = {\n [key in keyof TShape]?: TShape[key] extends ReducedZodChannel<infer Schema, infer ReducerSchema> ? Schema extends InteropZodType<unknown> ? ReducerSchema extends InteropZodType<infer U> ? U : never : never : TShape[key] extends InteropZodType<unknown, infer U> ? U : never;\n};\nexport interface SchemaMeta<TValue = any, TUpdate = TValue> {\n jsonSchemaExtra?: {\n langgraph_nodes?: string[];\n langgraph_type?: \"prompt\" | \"messages\";\n [key: string]: unknown;\n };\n reducer?: {\n schema?: InteropZodType<TUpdate>;\n fn: (a: TValue, b: TUpdate) => TValue;\n };\n default?: () => TValue;\n}\n/**\n * A registry for storing and managing metadata associated with schemas.\n * This class provides methods to get, extend, remove, and check metadata for a given schema.\n */\nexport declare class SchemaMetaRegistry {\n /**\n * Internal map storing schema metadata.\n * @internal\n */\n _map: Map<InteropZodType, SchemaMeta<any, any>>;\n /**\n * Cache for extended schemas.\n * @internal\n */\n _extensionCache: Map<string, Map<InteropZodType, InteropZodType>>;\n /**\n * Retrieves the metadata associated with a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to retrieve metadata for.\n * @returns The associated SchemaMeta, or undefined if not present.\n */\n get<TValue, TUpdate = TValue>(schema: InteropZodType<TValue>): SchemaMeta<TValue, TUpdate> | undefined;\n /**\n * Extends or sets the metadata for a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to extend metadata for.\n * @param predicate A function that receives the existing metadata (or undefined) and returns the new metadata.\n */\n extend<TValue, TUpdate>(schema: InteropZodType<TValue>, predicate: (meta: SchemaMeta<TValue, TUpdate> | undefined) => SchemaMeta<TValue, TUpdate>): void;\n /**\n * Removes the metadata associated with a given schema.\n * @param schema The schema to remove metadata for.\n * @returns The SchemaMetaRegistry instance (for chaining).\n */\n remove(schema: InteropZodType): this;\n /**\n * Checks if metadata exists for a given schema.\n * @param schema The schema to check.\n * @returns True if metadata exists, false otherwise.\n */\n has(schema: InteropZodType): boolean;\n /**\n * Returns a mapping of channel instances for each property in the schema\n * using the associated metadata in the registry.\n *\n * This is used to create the `channels` object that's passed to the `Graph` constructor.\n *\n * @template T The shape of the schema.\n * @param schema The schema to extract channels from.\n * @returns A mapping from property names to channel instances.\n */\n getChannelsForSchema<T extends InteropZodObject>(schema: T): InteropZodToStateDefinition<T>;\n /**\n * Returns a modified schema that introspectively looks at all keys of the provided\n * object schema, and applies the augmentations based on meta provided with those keys\n * in the registry and the selectors provided in the `effects` parameter.\n *\n * This assumes that the passed in schema is the \"root\" schema object for a graph where\n * the keys of the schema are the channels of the graph. Because we need to represent\n * the input of a graph in a couple of different ways, the `effects` parameter allows\n * us to apply those augmentations based on pre determined conditions.\n *\n * @param schema The root schema object to extend.\n * @param effects The effects that are being applied.\n * @returns The extended schema.\n */\n getExtendedChannelSchemas<T extends InteropZodObject>(schema: T, effects: {\n /**\n * Augments the shape by using the reducer's schema if it exists\n */\n withReducerSchema?: boolean;\n /**\n * Applies the stringified jsonSchemaExtra as a description to the schema.\n */\n withJsonSchemaExtrasAsDescription?: boolean;\n /**\n * Applies the `.partial()` modifier to the schema.\n */\n asPartial?: boolean;\n }): InteropZodObject;\n}\nexport declare const schemaMetaRegistry: SchemaMetaRegistry;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate> & {\n reducer?: undefined;\n}): TSchema;\nexport declare function withLangGraph<TValue, TUpdate, TSchema extends InteropZodType<TValue>>(schema: TSchema, meta: SchemaMeta<TValue, TUpdate>): ReducedZodChannel<TSchema, InteropZodType<TUpdate>>;\n"],"mappings":"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"}
@@ -13,9 +13,9 @@ var SchemaMetaRegistry = class {
13
13
  * Internal map storing schema metadata.
14
14
  * @internal
15
15
  */
16
- _map = /* @__PURE__ */ new WeakMap();
16
+ _map = /* @__PURE__ */ new Map();
17
17
  /**
18
- * Cache for extended schfemas.
18
+ * Cache for extended schemas.
19
19
  * @internal
20
20
  */
21
21
  _extensionCache = /* @__PURE__ */ new Map();
@@ -94,15 +94,15 @@ var SchemaMetaRegistry = class {
94
94
  getExtendedChannelSchemas(schema, effects) {
95
95
  if (Object.keys(effects).length === 0) return schema;
96
96
  const cacheKey = Object.entries(effects).filter(([, v]) => v === true).sort(([a], [b]) => a.localeCompare(b)).map(([k, v]) => `${k}:${v}`).join("|");
97
- const cache = this._extensionCache.get(cacheKey) ?? /* @__PURE__ */ new WeakMap();
97
+ const cache = this._extensionCache.get(cacheKey) ?? /* @__PURE__ */ new Map();
98
98
  if (cache.has(schema)) return cache.get(schema);
99
99
  let modifiedSchema = schema;
100
100
  if (effects.withReducerSchema || effects.withJsonSchemaExtrasAsDescription) {
101
- const newShapeEntries = Object.entries(getInteropZodObjectShape(schema)).map(([key, schema$1]) => {
102
- const meta = this.get(schema$1);
103
- let outputSchema = effects.withReducerSchema ? meta?.reducer?.schema ?? schema$1 : schema$1;
101
+ const newShapeEntries = Object.entries(getInteropZodObjectShape(schema)).map(([key, schema]) => {
102
+ const meta = this.get(schema);
103
+ let outputSchema = effects.withReducerSchema ? meta?.reducer?.schema ?? schema : schema;
104
104
  if (effects.withJsonSchemaExtrasAsDescription && meta?.jsonSchemaExtra) {
105
- const description = getSchemaDescription(outputSchema) ?? getSchemaDescription(schema$1);
105
+ const description = getSchemaDescription(outputSchema) ?? getSchemaDescription(schema);
106
106
  const strExtras = JSON.stringify({
107
107
  ...meta.jsonSchemaExtra,
108
108
  description
@@ -1 +1 @@
1
- {"version":3,"file":"meta.js","names":["schema"],"sources":["../../../src/graph/zod/meta.ts"],"sourcesContent":["import {\n InferInteropZodOutput,\n InteropZodObject,\n InteropZodType,\n getInteropZodObjectShape,\n extendInteropZodObject,\n getInteropZodDefaultGetter,\n interopZodObjectPartial,\n InteropZodObjectShape,\n isZodSchemaV3,\n getSchemaDescription,\n} from \"@langchain/core/utils/types\";\nimport { BaseChannel } from \"../../channels/base.js\";\nimport { BinaryOperatorAggregate } from \"../../channels/binop.js\";\nimport { LastValue } from \"../../channels/last_value.js\";\n\nexport const META_EXTRAS_DESCRIPTION_PREFIX = \"lg:\";\n\n/** @internal */\nexport type ReducedZodChannel<\n T extends InteropZodType,\n TReducerSchema extends InteropZodType\n> = T & {\n lg_reducer_schema: TReducerSchema;\n};\n\n/** @internal */\nexport type InteropZodToStateDefinition<\n T extends InteropZodObject,\n TShape = InteropZodObjectShape<T>\n> = {\n [key in keyof TShape]: TShape[key] extends ReducedZodChannel<\n infer Schema,\n infer ReducerSchema\n >\n ? Schema extends InteropZodType<infer V>\n ? ReducerSchema extends InteropZodType<infer U>\n ? BaseChannel<V, U>\n : never\n : never\n : TShape[key] extends InteropZodType<infer V, infer U>\n ? BaseChannel<V, U>\n : never;\n};\n\nexport type UpdateType<\n T extends InteropZodObject,\n TShape = InteropZodObjectShape<T>\n> = {\n [key in keyof TShape]?: TShape[key] extends ReducedZodChannel<\n infer Schema,\n infer ReducerSchema\n >\n ? Schema extends InteropZodType<unknown>\n ? ReducerSchema extends InteropZodType<infer U>\n ? U\n : never\n : never\n : TShape[key] extends InteropZodType<unknown, infer U>\n ? U\n : never;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface SchemaMeta<TValue = any, TUpdate = TValue> {\n jsonSchemaExtra?: {\n langgraph_nodes?: string[];\n langgraph_type?: \"prompt\" | \"messages\";\n [key: string]: unknown;\n };\n reducer?: {\n schema?: InteropZodType<TUpdate>;\n fn: (a: TValue, b: TUpdate) => TValue;\n };\n default?: () => TValue;\n}\n\n/**\n * A registry for storing and managing metadata associated with schemas.\n * This class provides methods to get, extend, remove, and check metadata for a given schema.\n */\nexport class SchemaMetaRegistry {\n /**\n * Internal map storing schema metadata.\n * @internal\n */\n _map = new WeakMap<InteropZodType, SchemaMeta>();\n\n /**\n * Cache for extended schfemas.\n * @internal\n */\n _extensionCache = new Map<string, WeakMap<InteropZodType, InteropZodType>>();\n\n /**\n * Retrieves the metadata associated with a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to retrieve metadata for.\n * @returns The associated SchemaMeta, or undefined if not present.\n */\n get<TValue, TUpdate = TValue>(\n schema: InteropZodType<TValue>\n ): SchemaMeta<TValue, TUpdate> | undefined {\n return this._map.get(schema);\n }\n\n /**\n * Extends or sets the metadata for a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to extend metadata for.\n * @param predicate A function that receives the existing metadata (or undefined) and returns the new metadata.\n */\n extend<TValue, TUpdate>(\n schema: InteropZodType<TValue>,\n predicate: (\n meta: SchemaMeta<TValue, TUpdate> | undefined\n ) => SchemaMeta<TValue, TUpdate>\n ) {\n const existingMeta = this.get<TValue, TUpdate>(schema);\n this._map.set(schema, predicate(existingMeta));\n }\n\n /**\n * Removes the metadata associated with a given schema.\n * @param schema The schema to remove metadata for.\n * @returns The SchemaMetaRegistry instance (for chaining).\n */\n remove(schema: InteropZodType): this {\n this._map.delete(schema);\n return this;\n }\n\n /**\n * Checks if metadata exists for a given schema.\n * @param schema The schema to check.\n * @returns True if metadata exists, false otherwise.\n */\n has(schema: InteropZodType): boolean {\n return this._map.has(schema);\n }\n\n /**\n * Returns a mapping of channel instances for each property in the schema\n * using the associated metadata in the registry.\n *\n * This is used to create the `channels` object that's passed to the `Graph` constructor.\n *\n * @template T The shape of the schema.\n * @param schema The schema to extract channels from.\n * @returns A mapping from property names to channel instances.\n */\n getChannelsForSchema<T extends InteropZodObject>(\n schema: T\n ): InteropZodToStateDefinition<T> {\n const channels = {} as Record<string, BaseChannel>;\n const shape = getInteropZodObjectShape(schema);\n for (const [key, channelSchema] of Object.entries(shape)) {\n const meta = this.get(channelSchema);\n if (meta?.reducer) {\n channels[key] = new BinaryOperatorAggregate<\n InferInteropZodOutput<typeof channelSchema>\n >(meta.reducer.fn, meta.default);\n } else {\n channels[key] = new LastValue(meta?.default);\n }\n }\n return channels as InteropZodToStateDefinition<T>;\n }\n\n /**\n * Returns a modified schema that introspectively looks at all keys of the provided\n * object schema, and applies the augmentations based on meta provided with those keys\n * in the registry and the selectors provided in the `effects` parameter.\n *\n * This assumes that the passed in schema is the \"root\" schema object for a graph where\n * the keys of the schema are the channels of the graph. Because we need to represent\n * the input of a graph in a couple of different ways, the `effects` parameter allows\n * us to apply those augmentations based on pre determined conditions.\n *\n * @param schema The root schema object to extend.\n * @param effects The effects that are being applied.\n * @returns The extended schema.\n */\n getExtendedChannelSchemas<T extends InteropZodObject>(\n schema: T,\n effects: {\n /**\n * Augments the shape by using the reducer's schema if it exists\n */\n withReducerSchema?: boolean;\n /**\n * Applies the stringified jsonSchemaExtra as a description to the schema.\n */\n withJsonSchemaExtrasAsDescription?: boolean;\n /**\n * Applies the `.partial()` modifier to the schema.\n */\n asPartial?: boolean;\n }\n ): InteropZodObject {\n // If no effects are being applied, return the schema unchanged\n if (Object.keys(effects).length === 0) {\n return schema;\n }\n\n // Cache key is determined by looking at the effects that are being applied\n const cacheKey = Object.entries(effects)\n .filter(([, v]) => v === true)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([k, v]) => `${k}:${v}`)\n .join(\"|\");\n\n const cache = this._extensionCache.get(cacheKey) ?? new WeakMap();\n if (cache.has(schema)) return cache.get(schema)! as T;\n\n let modifiedSchema: InteropZodObject = schema;\n\n if (\n effects.withReducerSchema ||\n effects.withJsonSchemaExtrasAsDescription\n ) {\n const newShapeEntries = Object.entries(\n getInteropZodObjectShape(schema)\n ).map(([key, schema]) => {\n const meta = this.get(schema);\n let outputSchema = effects.withReducerSchema\n ? meta?.reducer?.schema ?? schema\n : schema;\n if (\n effects.withJsonSchemaExtrasAsDescription &&\n meta?.jsonSchemaExtra\n ) {\n const description =\n getSchemaDescription(outputSchema) ?? getSchemaDescription(schema);\n const strExtras = JSON.stringify({\n ...meta.jsonSchemaExtra,\n description,\n });\n outputSchema = outputSchema.describe(\n `${META_EXTRAS_DESCRIPTION_PREFIX}${strExtras}`\n );\n }\n return [key, outputSchema];\n });\n modifiedSchema = extendInteropZodObject(\n schema,\n Object.fromEntries(newShapeEntries)\n );\n if (isZodSchemaV3(modifiedSchema)) {\n modifiedSchema._def.unknownKeys = \"strip\";\n }\n }\n if (effects.asPartial) {\n modifiedSchema = interopZodObjectPartial(modifiedSchema);\n }\n\n cache.set(schema, modifiedSchema);\n this._extensionCache.set(cacheKey, cache);\n return modifiedSchema;\n }\n}\n\nexport const schemaMetaRegistry = new SchemaMetaRegistry();\n\nexport function withLangGraph<\n TValue,\n TUpdate,\n TSchema extends InteropZodType<TValue>\n>(\n schema: TSchema,\n meta: SchemaMeta<TValue, TUpdate> & { reducer?: undefined }\n): TSchema;\nexport function withLangGraph<\n TValue,\n TUpdate,\n TSchema extends InteropZodType<TValue>\n>(\n schema: TSchema,\n meta: SchemaMeta<TValue, TUpdate>\n): ReducedZodChannel<TSchema, InteropZodType<TUpdate>>;\nexport function withLangGraph<\n TValue,\n TUpdate,\n TSchema extends InteropZodType<TValue>\n>(\n schema: TSchema,\n meta: SchemaMeta<TValue, TUpdate>\n): ReducedZodChannel<TSchema, InteropZodType<TUpdate>> | TSchema {\n if (meta.reducer && !meta.default) {\n const defaultValueGetter = getInteropZodDefaultGetter(schema);\n if (defaultValueGetter != null) {\n // eslint-disable-next-line no-param-reassign\n meta.default = defaultValueGetter;\n }\n }\n if (meta.reducer) {\n const schemaWithReducer = Object.assign(schema, {\n lg_reducer_schema: meta.reducer?.schema ?? schema,\n });\n schemaMetaRegistry.extend(schemaWithReducer, () => meta);\n return schemaWithReducer;\n } else {\n schemaMetaRegistry.extend(schema, () => meta);\n return schema;\n }\n}\n"],"mappings":";;;;;AAgBA,MAAa,iCAAiC;;;;;AAiE9C,IAAa,qBAAb,MAAgC;;;;;CAK9B,uBAAO,IAAI,SAAqC;;;;;CAMhD,kCAAkB,IAAI,KAAsD;;;;;;;;CAS5E,IACE,QACyC;AACzC,SAAO,KAAK,KAAK,IAAI,OAAO;;;;;;;;;CAU9B,OACE,QACA,WAGA;EACA,MAAM,eAAe,KAAK,IAAqB,OAAO;AACtD,OAAK,KAAK,IAAI,QAAQ,UAAU,aAAa,CAAC;;;;;;;CAQhD,OAAO,QAA8B;AACnC,OAAK,KAAK,OAAO,OAAO;AACxB,SAAO;;;;;;;CAQT,IAAI,QAAiC;AACnC,SAAO,KAAK,KAAK,IAAI,OAAO;;;;;;;;;;;;CAa9B,qBACE,QACgC;EAChC,MAAM,WAAW,EAAE;EACnB,MAAM,QAAQ,yBAAyB,OAAO;AAC9C,OAAK,MAAM,CAAC,KAAK,kBAAkB,OAAO,QAAQ,MAAM,EAAE;GACxD,MAAM,OAAO,KAAK,IAAI,cAAc;AACpC,OAAI,MAAM,QACR,UAAS,OAAO,IAAI,wBAElB,KAAK,QAAQ,IAAI,KAAK,QAAQ;OAEhC,UAAS,OAAO,IAAI,UAAU,MAAM,QAAQ;;AAGhD,SAAO;;;;;;;;;;;;;;;;CAiBT,0BACE,QACA,SAckB;AAElB,MAAI,OAAO,KAAK,QAAQ,CAAC,WAAW,EAClC,QAAO;EAIT,MAAM,WAAW,OAAO,QAAQ,QAAQ,CACrC,QAAQ,GAAG,OAAO,MAAM,KAAK,CAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CACtC,KAAK,CAAC,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAC5B,KAAK,IAAI;EAEZ,MAAM,QAAQ,KAAK,gBAAgB,IAAI,SAAS,oBAAI,IAAI,SAAS;AACjE,MAAI,MAAM,IAAI,OAAO,CAAE,QAAO,MAAM,IAAI,OAAO;EAE/C,IAAI,iBAAmC;AAEvC,MACE,QAAQ,qBACR,QAAQ,mCACR;GACA,MAAM,kBAAkB,OAAO,QAC7B,yBAAyB,OAAO,CACjC,CAAC,KAAK,CAAC,KAAKA,cAAY;IACvB,MAAM,OAAO,KAAK,IAAIA,SAAO;IAC7B,IAAI,eAAe,QAAQ,oBACvB,MAAM,SAAS,UAAUA,WACzBA;AACJ,QACE,QAAQ,qCACR,MAAM,iBACN;KACA,MAAM,cACJ,qBAAqB,aAAa,IAAI,qBAAqBA,SAAO;KACpE,MAAM,YAAY,KAAK,UAAU;MAC/B,GAAG,KAAK;MACR;MACD,CAAC;AACF,oBAAe,aAAa,SAC1B,GAAG,iCAAiC,YACrC;;AAEH,WAAO,CAAC,KAAK,aAAa;KAC1B;AACF,oBAAiB,uBACf,QACA,OAAO,YAAY,gBAAgB,CACpC;AACD,OAAI,cAAc,eAAe,CAC/B,gBAAe,KAAK,cAAc;;AAGtC,MAAI,QAAQ,UACV,kBAAiB,wBAAwB,eAAe;AAG1D,QAAM,IAAI,QAAQ,eAAe;AACjC,OAAK,gBAAgB,IAAI,UAAU,MAAM;AACzC,SAAO;;;AAIX,MAAa,qBAAqB,IAAI,oBAAoB;AAkB1D,SAAgB,cAKd,QACA,MAC+D;AAC/D,KAAI,KAAK,WAAW,CAAC,KAAK,SAAS;EACjC,MAAM,qBAAqB,2BAA2B,OAAO;AAC7D,MAAI,sBAAsB,KAExB,MAAK,UAAU;;AAGnB,KAAI,KAAK,SAAS;EAChB,MAAM,oBAAoB,OAAO,OAAO,QAAQ,EAC9C,mBAAmB,KAAK,SAAS,UAAU,QAC5C,CAAC;AACF,qBAAmB,OAAO,yBAAyB,KAAK;AACxD,SAAO;QACF;AACL,qBAAmB,OAAO,cAAc,KAAK;AAC7C,SAAO"}
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/graph/zod/meta.ts"],"sourcesContent":["import {\n InferInteropZodOutput,\n InteropZodObject,\n InteropZodType,\n getInteropZodObjectShape,\n extendInteropZodObject,\n getInteropZodDefaultGetter,\n interopZodObjectPartial,\n InteropZodObjectShape,\n isZodSchemaV3,\n getSchemaDescription,\n} from \"@langchain/core/utils/types\";\nimport { BaseChannel } from \"../../channels/base.js\";\nimport { BinaryOperatorAggregate } from \"../../channels/binop.js\";\nimport { LastValue } from \"../../channels/last_value.js\";\n\nexport const META_EXTRAS_DESCRIPTION_PREFIX = \"lg:\";\n\n/** @internal */\nexport type ReducedZodChannel<\n T extends InteropZodType,\n TReducerSchema extends InteropZodType\n> = T & {\n lg_reducer_schema: TReducerSchema;\n};\n\n/** @internal */\nexport type InteropZodToStateDefinition<\n T extends InteropZodObject,\n TShape = InteropZodObjectShape<T>\n> = {\n [key in keyof TShape]: TShape[key] extends ReducedZodChannel<\n infer Schema,\n infer ReducerSchema\n >\n ? Schema extends InteropZodType<infer V>\n ? ReducerSchema extends InteropZodType<infer U>\n ? BaseChannel<V, U>\n : never\n : never\n : TShape[key] extends InteropZodType<infer V, infer U>\n ? BaseChannel<V, U>\n : never;\n};\n\nexport type UpdateType<\n T extends InteropZodObject,\n TShape = InteropZodObjectShape<T>\n> = {\n [key in keyof TShape]?: TShape[key] extends ReducedZodChannel<\n infer Schema,\n infer ReducerSchema\n >\n ? Schema extends InteropZodType<unknown>\n ? ReducerSchema extends InteropZodType<infer U>\n ? U\n : never\n : never\n : TShape[key] extends InteropZodType<unknown, infer U>\n ? U\n : never;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface SchemaMeta<TValue = any, TUpdate = TValue> {\n jsonSchemaExtra?: {\n langgraph_nodes?: string[];\n langgraph_type?: \"prompt\" | \"messages\";\n [key: string]: unknown;\n };\n reducer?: {\n schema?: InteropZodType<TUpdate>;\n fn: (a: TValue, b: TUpdate) => TValue;\n };\n default?: () => TValue;\n}\n\n/**\n * A registry for storing and managing metadata associated with schemas.\n * This class provides methods to get, extend, remove, and check metadata for a given schema.\n */\nexport class SchemaMetaRegistry {\n /**\n * Internal map storing schema metadata.\n * @internal\n */\n _map = new Map<InteropZodType, SchemaMeta>();\n\n /**\n * Cache for extended schemas.\n * @internal\n */\n _extensionCache = new Map<string, Map<InteropZodType, InteropZodType>>();\n\n /**\n * Retrieves the metadata associated with a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to retrieve metadata for.\n * @returns The associated SchemaMeta, or undefined if not present.\n */\n get<TValue, TUpdate = TValue>(\n schema: InteropZodType<TValue>\n ): SchemaMeta<TValue, TUpdate> | undefined {\n return this._map.get(schema);\n }\n\n /**\n * Extends or sets the metadata for a given schema.\n * @template TValue The value type of the schema.\n * @template TUpdate The update type of the schema (defaults to TValue).\n * @param schema The schema to extend metadata for.\n * @param predicate A function that receives the existing metadata (or undefined) and returns the new metadata.\n */\n extend<TValue, TUpdate>(\n schema: InteropZodType<TValue>,\n predicate: (\n meta: SchemaMeta<TValue, TUpdate> | undefined\n ) => SchemaMeta<TValue, TUpdate>\n ) {\n const existingMeta = this.get<TValue, TUpdate>(schema);\n this._map.set(schema, predicate(existingMeta));\n }\n\n /**\n * Removes the metadata associated with a given schema.\n * @param schema The schema to remove metadata for.\n * @returns The SchemaMetaRegistry instance (for chaining).\n */\n remove(schema: InteropZodType): this {\n this._map.delete(schema);\n return this;\n }\n\n /**\n * Checks if metadata exists for a given schema.\n * @param schema The schema to check.\n * @returns True if metadata exists, false otherwise.\n */\n has(schema: InteropZodType): boolean {\n return this._map.has(schema);\n }\n\n /**\n * Returns a mapping of channel instances for each property in the schema\n * using the associated metadata in the registry.\n *\n * This is used to create the `channels` object that's passed to the `Graph` constructor.\n *\n * @template T The shape of the schema.\n * @param schema The schema to extract channels from.\n * @returns A mapping from property names to channel instances.\n */\n getChannelsForSchema<T extends InteropZodObject>(\n schema: T\n ): InteropZodToStateDefinition<T> {\n const channels = {} as Record<string, BaseChannel>;\n const shape = getInteropZodObjectShape(schema);\n for (const [key, channelSchema] of Object.entries(shape)) {\n const meta = this.get(channelSchema);\n if (meta?.reducer) {\n channels[key] = new BinaryOperatorAggregate<\n InferInteropZodOutput<typeof channelSchema>\n >(meta.reducer.fn, meta.default);\n } else {\n channels[key] = new LastValue(meta?.default);\n }\n }\n return channels as InteropZodToStateDefinition<T>;\n }\n\n /**\n * Returns a modified schema that introspectively looks at all keys of the provided\n * object schema, and applies the augmentations based on meta provided with those keys\n * in the registry and the selectors provided in the `effects` parameter.\n *\n * This assumes that the passed in schema is the \"root\" schema object for a graph where\n * the keys of the schema are the channels of the graph. Because we need to represent\n * the input of a graph in a couple of different ways, the `effects` parameter allows\n * us to apply those augmentations based on pre determined conditions.\n *\n * @param schema The root schema object to extend.\n * @param effects The effects that are being applied.\n * @returns The extended schema.\n */\n getExtendedChannelSchemas<T extends InteropZodObject>(\n schema: T,\n effects: {\n /**\n * Augments the shape by using the reducer's schema if it exists\n */\n withReducerSchema?: boolean;\n /**\n * Applies the stringified jsonSchemaExtra as a description to the schema.\n */\n withJsonSchemaExtrasAsDescription?: boolean;\n /**\n * Applies the `.partial()` modifier to the schema.\n */\n asPartial?: boolean;\n }\n ): InteropZodObject {\n // If no effects are being applied, return the schema unchanged\n if (Object.keys(effects).length === 0) {\n return schema;\n }\n\n // Cache key is determined by looking at the effects that are being applied\n const cacheKey = Object.entries(effects)\n .filter(([, v]) => v === true)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([k, v]) => `${k}:${v}`)\n .join(\"|\");\n\n const cache = this._extensionCache.get(cacheKey) ?? new Map();\n if (cache.has(schema)) return cache.get(schema)! as T;\n\n let modifiedSchema: InteropZodObject = schema;\n\n if (\n effects.withReducerSchema ||\n effects.withJsonSchemaExtrasAsDescription\n ) {\n const newShapeEntries = Object.entries(\n getInteropZodObjectShape(schema)\n ).map(([key, schema]) => {\n const meta = this.get(schema);\n let outputSchema = effects.withReducerSchema\n ? meta?.reducer?.schema ?? schema\n : schema;\n if (\n effects.withJsonSchemaExtrasAsDescription &&\n meta?.jsonSchemaExtra\n ) {\n const description =\n getSchemaDescription(outputSchema) ?? getSchemaDescription(schema);\n const strExtras = JSON.stringify({\n ...meta.jsonSchemaExtra,\n description,\n });\n outputSchema = outputSchema.describe(\n `${META_EXTRAS_DESCRIPTION_PREFIX}${strExtras}`\n );\n }\n return [key, outputSchema];\n });\n modifiedSchema = extendInteropZodObject(\n schema,\n Object.fromEntries(newShapeEntries)\n );\n if (isZodSchemaV3(modifiedSchema)) {\n modifiedSchema._def.unknownKeys = \"strip\";\n }\n }\n if (effects.asPartial) {\n modifiedSchema = interopZodObjectPartial(modifiedSchema);\n }\n\n cache.set(schema, modifiedSchema);\n this._extensionCache.set(cacheKey, cache);\n return modifiedSchema;\n }\n}\n\nexport const schemaMetaRegistry = new SchemaMetaRegistry();\n\nexport function withLangGraph<\n TValue,\n TUpdate,\n TSchema extends InteropZodType<TValue>\n>(\n schema: TSchema,\n meta: SchemaMeta<TValue, TUpdate> & { reducer?: undefined }\n): TSchema;\nexport function withLangGraph<\n TValue,\n TUpdate,\n TSchema extends InteropZodType<TValue>\n>(\n schema: TSchema,\n meta: SchemaMeta<TValue, TUpdate>\n): ReducedZodChannel<TSchema, InteropZodType<TUpdate>>;\nexport function withLangGraph<\n TValue,\n TUpdate,\n TSchema extends InteropZodType<TValue>\n>(\n schema: TSchema,\n meta: SchemaMeta<TValue, TUpdate>\n): ReducedZodChannel<TSchema, InteropZodType<TUpdate>> | TSchema {\n if (meta.reducer && !meta.default) {\n const defaultValueGetter = getInteropZodDefaultGetter(schema);\n if (defaultValueGetter != null) {\n // eslint-disable-next-line no-param-reassign\n meta.default = defaultValueGetter;\n }\n }\n if (meta.reducer) {\n const schemaWithReducer = Object.assign(schema, {\n lg_reducer_schema: meta.reducer?.schema ?? schema,\n });\n schemaMetaRegistry.extend(schemaWithReducer, () => meta);\n return schemaWithReducer;\n } else {\n schemaMetaRegistry.extend(schema, () => meta);\n return schema;\n }\n}\n"],"mappings":";;;;;AAgBA,MAAa,iCAAiC;;;;;AAiE9C,IAAa,qBAAb,MAAgC;;;;;CAK9B,uBAAO,IAAI,KAAiC;;;;;CAM5C,kCAAkB,IAAI,KAAkD;;;;;;;;CASxE,IACE,QACyC;AACzC,SAAO,KAAK,KAAK,IAAI,OAAO;;;;;;;;;CAU9B,OACE,QACA,WAGA;EACA,MAAM,eAAe,KAAK,IAAqB,OAAO;AACtD,OAAK,KAAK,IAAI,QAAQ,UAAU,aAAa,CAAC;;;;;;;CAQhD,OAAO,QAA8B;AACnC,OAAK,KAAK,OAAO,OAAO;AACxB,SAAO;;;;;;;CAQT,IAAI,QAAiC;AACnC,SAAO,KAAK,KAAK,IAAI,OAAO;;;;;;;;;;;;CAa9B,qBACE,QACgC;EAChC,MAAM,WAAW,EAAE;EACnB,MAAM,QAAQ,yBAAyB,OAAO;AAC9C,OAAK,MAAM,CAAC,KAAK,kBAAkB,OAAO,QAAQ,MAAM,EAAE;GACxD,MAAM,OAAO,KAAK,IAAI,cAAc;AACpC,OAAI,MAAM,QACR,UAAS,OAAO,IAAI,wBAElB,KAAK,QAAQ,IAAI,KAAK,QAAQ;OAEhC,UAAS,OAAO,IAAI,UAAU,MAAM,QAAQ;;AAGhD,SAAO;;;;;;;;;;;;;;;;CAiBT,0BACE,QACA,SAckB;AAElB,MAAI,OAAO,KAAK,QAAQ,CAAC,WAAW,EAClC,QAAO;EAIT,MAAM,WAAW,OAAO,QAAQ,QAAQ,CACrC,QAAQ,GAAG,OAAO,MAAM,KAAK,CAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,CACtC,KAAK,CAAC,GAAG,OAAO,GAAG,EAAE,GAAG,IAAI,CAC5B,KAAK,IAAI;EAEZ,MAAM,QAAQ,KAAK,gBAAgB,IAAI,SAAS,oBAAI,IAAI,KAAK;AAC7D,MAAI,MAAM,IAAI,OAAO,CAAE,QAAO,MAAM,IAAI,OAAO;EAE/C,IAAI,iBAAmC;AAEvC,MACE,QAAQ,qBACR,QAAQ,mCACR;GACA,MAAM,kBAAkB,OAAO,QAC7B,yBAAyB,OAAO,CACjC,CAAC,KAAK,CAAC,KAAK,YAAY;IACvB,MAAM,OAAO,KAAK,IAAI,OAAO;IAC7B,IAAI,eAAe,QAAQ,oBACvB,MAAM,SAAS,UAAU,SACzB;AACJ,QACE,QAAQ,qCACR,MAAM,iBACN;KACA,MAAM,cACJ,qBAAqB,aAAa,IAAI,qBAAqB,OAAO;KACpE,MAAM,YAAY,KAAK,UAAU;MAC/B,GAAG,KAAK;MACR;MACD,CAAC;AACF,oBAAe,aAAa,SAC1B,GAAG,iCAAiC,YACrC;;AAEH,WAAO,CAAC,KAAK,aAAa;KAC1B;AACF,oBAAiB,uBACf,QACA,OAAO,YAAY,gBAAgB,CACpC;AACD,OAAI,cAAc,eAAe,CAC/B,gBAAe,KAAK,cAAc;;AAGtC,MAAI,QAAQ,UACV,kBAAiB,wBAAwB,eAAe;AAG1D,QAAM,IAAI,QAAQ,eAAe;AACjC,OAAK,gBAAgB,IAAI,UAAU,MAAM;AACzC,SAAO;;;AAIX,MAAa,qBAAqB,IAAI,oBAAoB;AAkB1D,SAAgB,cAKd,QACA,MAC+D;AAC/D,KAAI,KAAK,WAAW,CAAC,KAAK,SAAS;EACjC,MAAM,qBAAqB,2BAA2B,OAAO;AAC7D,MAAI,sBAAsB,KAExB,MAAK,UAAU;;AAGnB,KAAI,KAAK,SAAS;EAChB,MAAM,oBAAoB,OAAO,OAAO,QAAQ,EAC9C,mBAAmB,KAAK,SAAS,UAAU,QAC5C,CAAC;AACF,qBAAmB,OAAO,yBAAyB,KAAK;AACxD,SAAO;QACF;AACL,qBAAmB,OAAO,cAAc,KAAK;AAC7C,SAAO"}
@@ -1,3 +1,4 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1
2
  const require_meta = require('./meta.cjs');
2
3
  let _langchain_core_utils_json_schema = require("@langchain/core/utils/json_schema");
3
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"schema.cjs","names":["META_EXTRAS_DESCRIPTION_PREFIX","schemaMetaRegistry"],"sources":["../../../src/graph/zod/schema.ts"],"sourcesContent":["import {\n type JSONSchema,\n toJsonSchema as interopToJsonSchema,\n} from \"@langchain/core/utils/json_schema\";\nimport { InteropZodObject } from \"@langchain/core/utils/types\";\nimport {\n META_EXTRAS_DESCRIPTION_PREFIX,\n SchemaMetaRegistry,\n schemaMetaRegistry,\n} from \"./meta.js\";\n\nconst PartialStateSchema = Symbol.for(\"langgraph.state.partial\");\ntype PartialStateSchema = typeof PartialStateSchema;\n\ninterface GraphWithZodLike {\n builder: {\n _schemaRuntimeDefinition: InteropZodObject | undefined;\n _inputRuntimeDefinition: InteropZodObject | PartialStateSchema | undefined;\n _outputRuntimeDefinition: InteropZodObject | undefined;\n _configRuntimeSchema: InteropZodObject | undefined;\n };\n}\n\nfunction isGraphWithZodLike(graph: unknown): graph is GraphWithZodLike {\n if (!graph || typeof graph !== \"object\") return false;\n if (\n !(\"builder\" in graph) ||\n typeof graph.builder !== \"object\" ||\n graph.builder == null\n ) {\n return false;\n }\n return true;\n}\n\nfunction applyJsonSchemaExtrasFromDescription<T>(schema: T): unknown {\n if (Array.isArray(schema)) {\n return schema.map(applyJsonSchemaExtrasFromDescription);\n }\n if (typeof schema === \"object\" && schema != null) {\n const output = Object.fromEntries(\n Object.entries(schema).map(([key, value]) => [\n key,\n applyJsonSchemaExtrasFromDescription(value),\n ])\n );\n\n if (\n \"description\" in output &&\n typeof output.description === \"string\" &&\n output.description.startsWith(META_EXTRAS_DESCRIPTION_PREFIX)\n ) {\n const strMeta = output.description.slice(\n META_EXTRAS_DESCRIPTION_PREFIX.length\n );\n delete output.description;\n Object.assign(output, JSON.parse(strMeta));\n }\n\n return output as T;\n }\n return schema;\n}\n\nfunction toJsonSchema(schema: InteropZodObject): JSONSchema {\n return applyJsonSchemaExtrasFromDescription(\n interopToJsonSchema(schema)\n ) as JSONSchema;\n}\n\n/**\n * Get the state schema for a graph.\n * @param graph - The graph to get the state schema for.\n * @returns The state schema for the graph.\n */\nexport function getStateTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const schemaDef = graph.builder._schemaRuntimeDefinition;\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withJsonSchemaExtrasAsDescription: true,\n })\n );\n}\n\n/**\n * Get the update schema for a graph.\n * @param graph - The graph to get the update schema for.\n * @returns The update schema for the graph.\n */\nexport function getUpdateTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const schemaDef = graph.builder._schemaRuntimeDefinition;\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withReducerSchema: true,\n withJsonSchemaExtrasAsDescription: true,\n asPartial: true,\n })\n );\n}\n\n/**\n * Get the input schema for a graph.\n * @param graph - The graph to get the input schema for.\n * @returns The input schema for the graph.\n */\nexport function getInputTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n let schemaDef = graph.builder._inputRuntimeDefinition;\n if (schemaDef === PartialStateSchema) {\n // No need to pass `.partial()` here, that's being done by `applyPlugin`\n schemaDef = graph.builder._schemaRuntimeDefinition;\n }\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withReducerSchema: true,\n withJsonSchemaExtrasAsDescription: true,\n asPartial: true,\n })\n );\n}\n\n/**\n * Get the output schema for a graph.\n * @param graph - The graph to get the output schema for.\n * @returns The output schema for the graph.\n */\nexport function getOutputTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const schemaDef = graph.builder._outputRuntimeDefinition;\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withJsonSchemaExtrasAsDescription: true,\n })\n );\n}\n\n/**\n * Get the config schema for a graph.\n * @param graph - The graph to get the config schema for.\n * @returns The config schema for the graph.\n */\nexport function getConfigTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const configDef = graph.builder._configRuntimeSchema;\n if (!configDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(configDef, {\n withJsonSchemaExtrasAsDescription: true,\n })\n );\n}\n"],"mappings":";;;;AAWA,MAAM,qBAAqB,OAAO,IAAI,0BAA0B;AAYhE,SAAS,mBAAmB,OAA2C;AACrE,KAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,KACE,EAAE,aAAa,UACf,OAAO,MAAM,YAAY,YACzB,MAAM,WAAW,KAEjB,QAAO;AAET,QAAO;;AAGT,SAAS,qCAAwC,QAAoB;AACnE,KAAI,MAAM,QAAQ,OAAO,CACvB,QAAO,OAAO,IAAI,qCAAqC;AAEzD,KAAI,OAAO,WAAW,YAAY,UAAU,MAAM;EAChD,MAAM,SAAS,OAAO,YACpB,OAAO,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,WAAW,CAC3C,KACA,qCAAqC,MAAM,CAC5C,CAAC,CACH;AAED,MACE,iBAAiB,UACjB,OAAO,OAAO,gBAAgB,YAC9B,OAAO,YAAY,WAAWA,4CAA+B,EAC7D;GACA,MAAM,UAAU,OAAO,YAAY,MACjCA,4CAA+B,OAChC;AACD,UAAO,OAAO;AACd,UAAO,OAAO,QAAQ,KAAK,MAAM,QAAQ,CAAC;;AAG5C,SAAO;;AAET,QAAO;;AAGT,SAAS,aAAa,QAAsC;AAC1D,QAAO,yFACe,OAAO,CAC5B;;;;;;;AAQH,SAAgB,mBACd,OACA,WAA+BC,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW,EAC5C,mCAAmC,MACpC,CAAC,CACH;;;;;;;AAQH,SAAgB,oBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW;EAC5C,mBAAmB;EACnB,mCAAmC;EACnC,WAAW;EACZ,CAAC,CACH;;;;;;;AAQH,SAAgB,mBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,IAAI,YAAY,MAAM,QAAQ;AAC9B,KAAI,cAAc,mBAEhB,aAAY,MAAM,QAAQ;AAE5B,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW;EAC5C,mBAAmB;EACnB,mCAAmC;EACnC,WAAW;EACZ,CAAC,CACH;;;;;;;AAQH,SAAgB,oBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW,EAC5C,mCAAmC,MACpC,CAAC,CACH;;;;;;;AAQH,SAAgB,oBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW,EAC5C,mCAAmC,MACpC,CAAC,CACH"}
1
+ {"version":3,"file":"schema.cjs","names":["META_EXTRAS_DESCRIPTION_PREFIX","schemaMetaRegistry"],"sources":["../../../src/graph/zod/schema.ts"],"sourcesContent":["import {\n type JSONSchema,\n toJsonSchema as interopToJsonSchema,\n} from \"@langchain/core/utils/json_schema\";\nimport { InteropZodObject } from \"@langchain/core/utils/types\";\nimport {\n META_EXTRAS_DESCRIPTION_PREFIX,\n SchemaMetaRegistry,\n schemaMetaRegistry,\n} from \"./meta.js\";\n\nconst PartialStateSchema = Symbol.for(\"langgraph.state.partial\");\ntype PartialStateSchema = typeof PartialStateSchema;\n\ninterface GraphWithZodLike {\n builder: {\n _schemaRuntimeDefinition: InteropZodObject | undefined;\n _inputRuntimeDefinition: InteropZodObject | PartialStateSchema | undefined;\n _outputRuntimeDefinition: InteropZodObject | undefined;\n _configRuntimeSchema: InteropZodObject | undefined;\n };\n}\n\nfunction isGraphWithZodLike(graph: unknown): graph is GraphWithZodLike {\n if (!graph || typeof graph !== \"object\") return false;\n if (\n !(\"builder\" in graph) ||\n typeof graph.builder !== \"object\" ||\n graph.builder == null\n ) {\n return false;\n }\n return true;\n}\n\nfunction applyJsonSchemaExtrasFromDescription<T>(schema: T): unknown {\n if (Array.isArray(schema)) {\n return schema.map(applyJsonSchemaExtrasFromDescription);\n }\n if (typeof schema === \"object\" && schema != null) {\n const output = Object.fromEntries(\n Object.entries(schema).map(([key, value]) => [\n key,\n applyJsonSchemaExtrasFromDescription(value),\n ])\n );\n\n if (\n \"description\" in output &&\n typeof output.description === \"string\" &&\n output.description.startsWith(META_EXTRAS_DESCRIPTION_PREFIX)\n ) {\n const strMeta = output.description.slice(\n META_EXTRAS_DESCRIPTION_PREFIX.length\n );\n delete output.description;\n Object.assign(output, JSON.parse(strMeta));\n }\n\n return output as T;\n }\n return schema;\n}\n\nfunction toJsonSchema(schema: InteropZodObject): JSONSchema {\n return applyJsonSchemaExtrasFromDescription(\n interopToJsonSchema(schema)\n ) as JSONSchema;\n}\n\n/**\n * Get the state schema for a graph.\n * @param graph - The graph to get the state schema for.\n * @returns The state schema for the graph.\n */\nexport function getStateTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const schemaDef = graph.builder._schemaRuntimeDefinition;\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withJsonSchemaExtrasAsDescription: true,\n })\n );\n}\n\n/**\n * Get the update schema for a graph.\n * @param graph - The graph to get the update schema for.\n * @returns The update schema for the graph.\n */\nexport function getUpdateTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const schemaDef = graph.builder._schemaRuntimeDefinition;\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withReducerSchema: true,\n withJsonSchemaExtrasAsDescription: true,\n asPartial: true,\n })\n );\n}\n\n/**\n * Get the input schema for a graph.\n * @param graph - The graph to get the input schema for.\n * @returns The input schema for the graph.\n */\nexport function getInputTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n let schemaDef = graph.builder._inputRuntimeDefinition;\n if (schemaDef === PartialStateSchema) {\n // No need to pass `.partial()` here, that's being done by `applyPlugin`\n schemaDef = graph.builder._schemaRuntimeDefinition;\n }\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withReducerSchema: true,\n withJsonSchemaExtrasAsDescription: true,\n asPartial: true,\n })\n );\n}\n\n/**\n * Get the output schema for a graph.\n * @param graph - The graph to get the output schema for.\n * @returns The output schema for the graph.\n */\nexport function getOutputTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const schemaDef = graph.builder._outputRuntimeDefinition;\n if (!schemaDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(schemaDef, {\n withJsonSchemaExtrasAsDescription: true,\n })\n );\n}\n\n/**\n * Get the config schema for a graph.\n * @param graph - The graph to get the config schema for.\n * @returns The config schema for the graph.\n */\nexport function getConfigTypeSchema(\n graph: unknown,\n registry: SchemaMetaRegistry = schemaMetaRegistry\n): JSONSchema | undefined {\n if (!isGraphWithZodLike(graph)) return undefined;\n const configDef = graph.builder._configRuntimeSchema;\n if (!configDef) return undefined;\n\n return toJsonSchema(\n registry.getExtendedChannelSchemas(configDef, {\n withJsonSchemaExtrasAsDescription: true,\n })\n );\n}\n"],"mappings":";;;;;AAWA,MAAM,qBAAqB,OAAO,IAAI,0BAA0B;AAYhE,SAAS,mBAAmB,OAA2C;AACrE,KAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,KACE,EAAE,aAAa,UACf,OAAO,MAAM,YAAY,YACzB,MAAM,WAAW,KAEjB,QAAO;AAET,QAAO;;AAGT,SAAS,qCAAwC,QAAoB;AACnE,KAAI,MAAM,QAAQ,OAAO,CACvB,QAAO,OAAO,IAAI,qCAAqC;AAEzD,KAAI,OAAO,WAAW,YAAY,UAAU,MAAM;EAChD,MAAM,SAAS,OAAO,YACpB,OAAO,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,WAAW,CAC3C,KACA,qCAAqC,MAAM,CAC5C,CAAC,CACH;AAED,MACE,iBAAiB,UACjB,OAAO,OAAO,gBAAgB,YAC9B,OAAO,YAAY,WAAWA,4CAA+B,EAC7D;GACA,MAAM,UAAU,OAAO,YAAY,MACjCA,4CAA+B,OAChC;AACD,UAAO,OAAO;AACd,UAAO,OAAO,QAAQ,KAAK,MAAM,QAAQ,CAAC;;AAG5C,SAAO;;AAET,QAAO;;AAGT,SAAS,aAAa,QAAsC;AAC1D,QAAO,yFACe,OAAO,CAC5B;;;;;;;AAQH,SAAgB,mBACd,OACA,WAA+BC,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW,EAC5C,mCAAmC,MACpC,CAAC,CACH;;;;;;;AAQH,SAAgB,oBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW;EAC5C,mBAAmB;EACnB,mCAAmC;EACnC,WAAW;EACZ,CAAC,CACH;;;;;;;AAQH,SAAgB,mBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,IAAI,YAAY,MAAM,QAAQ;AAC9B,KAAI,cAAc,mBAEhB,aAAY,MAAM,QAAQ;AAE5B,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW;EAC5C,mBAAmB;EACnB,mCAAmC;EACnC,WAAW;EACZ,CAAC,CACH;;;;;;;AAQH,SAAgB,oBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW,EAC5C,mCAAmC,MACpC,CAAC,CACH;;;;;;;AAQH,SAAgB,oBACd,OACA,WAA+BA,iCACP;AACxB,KAAI,CAAC,mBAAmB,MAAM,CAAE,QAAO;CACvC,MAAM,YAAY,MAAM,QAAQ;AAChC,KAAI,CAAC,UAAW,QAAO;AAEvB,QAAO,aACL,SAAS,0BAA0B,WAAW,EAC5C,mCAAmC,MACpC,CAAC,CACH"}
package/dist/hash.cjs CHANGED
@@ -249,7 +249,7 @@ function XXH3(input, seed = n(0)) {
249
249
  const encoder = new TextEncoder();
250
250
  const data = view(typeof input === "string" ? encoder.encode(input) : input);
251
251
  const len = data.byteLength;
252
- const hexDigest = (data$1) => data$1.toString(16).padStart(32, "0");
252
+ const hexDigest = (data) => data.toString(16).padStart(32, "0");
253
253
  if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));
254
254
  if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));
255
255
  if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));
package/dist/hash.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hash.cjs","names":["data"],"sources":["../src/hash.ts"],"sourcesContent":["/* Converted from https://github.com/i404788/xxh3-ts\n\nBSD 2-Clause License\n\nCopyright (c) 2019, i404788\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nconst n = (n: number | string) => BigInt(n);\nconst view = (data: Uint8Array | DataView, offset: number = 0) =>\n new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);\n\nconst PRIME32_1 = n(\"0x9E3779B1\"); // 0b10011110001101110111100110110001\nconst PRIME32_2 = n(\"0x85EBCA77\"); // 0b10000101111010111100101001110111\nconst PRIME32_3 = n(\"0xC2B2AE3D\"); // 0b11000010101100101010111000111101\nconst PRIME64_1 = n(\"0x9E3779B185EBCA87\"); // 0b1001111000110111011110011011000110000101111010111100101010000111\nconst PRIME64_2 = n(\"0xC2B2AE3D27D4EB4F\"); // 0b1100001010110010101011100011110100100111110101001110101101001111\nconst PRIME64_3 = n(\"0x165667B19E3779F9\"); // 0b0001011001010110011001111011000110011110001101110111100111111001\nconst PRIME64_4 = n(\"0x85EBCA77C2B2AE63\"); // 0b1000010111101011110010100111011111000010101100101010111001100011\nconst PRIME64_5 = n(\"0x27D4EB2F165667C5\"); // 0b0010011111010100111010110010111100010110010101100110011111000101\nconst PRIME_MX1 = n(\"0x165667919E3779F9\"); // 0b0001011001010110011001111001000110011110001101110111100111111001\nconst PRIME_MX2 = n(\"0x9FB21C651E98DF25\"); // 0b1001111110110010000111000110010100011110100110001101111100100101\n\nconst hexToUint8Array = (hex: string) => {\n const strLen = hex.length;\n if (strLen % 2 !== 0) {\n throw new Error(\"String should have an even number of characters\");\n }\n\n const maxLength = strLen / 2;\n const bytes = new Uint8Array(maxLength);\n\n let read = 0;\n let write = 0;\n while (write < maxLength) {\n const slice = hex.slice(read, (read += 2));\n bytes[write] = Number.parseInt(slice, 16);\n write += 1;\n }\n\n return view(bytes);\n};\n\nconst kkey = hexToUint8Array(\n \"b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e\"\n);\n\nconst mask128 = (n(1) << n(128)) - n(1);\nconst mask64 = (n(1) << n(64)) - n(1);\nconst mask32 = (n(1) << n(32)) - n(1);\nconst STRIPE_LEN = 64;\nconst ACC_NB = STRIPE_LEN / 8;\nconst _U64 = 8;\nconst _U32 = 4;\n\nfunction assert(a: boolean) {\n if (!a) throw new Error(\"Assert failed\");\n}\n\nfunction bswap64(a: bigint) {\n const scratchbuf = new DataView(new ArrayBuffer(8));\n scratchbuf.setBigUint64(0, a, true);\n return scratchbuf.getBigUint64(0, false);\n}\n\nfunction bswap32(input: bigint) {\n let a = input;\n a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));\n a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));\n return a; // 32-bit\n}\n\nfunction XXH_mult32to64(a: bigint, b: bigint) {\n return ((a & mask32) * (b & mask32)) & mask64;\n}\n\nfunction rotl32(a: bigint, b: bigint) {\n return ((a << b) | (a >> (n(32) - b))) & mask32;\n}\n\nfunction XXH3_accumulate_512(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView\n) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const data_val = dataView.getBigUint64(i * 8, true);\n const data_key = data_val ^ keyView.getBigUint64(i * 8, true);\n acc[i ^ 1] += data_val;\n acc[i] += XXH_mult32to64(data_key, data_key >> n(32));\n }\n return acc;\n}\n\nfunction XXH3_accumulate(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView,\n nbStripes: number\n) {\n for (let n = 0; n < nbStripes; n += 1) {\n XXH3_accumulate_512(\n acc,\n view(dataView, n * STRIPE_LEN),\n view(keyView, n * 8)\n );\n }\n return acc;\n}\n\nfunction XXH3_scrambleAcc(acc: BigUint64Array, key: DataView) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const key64 = key.getBigUint64(i * 8, true);\n let acc64 = acc[i];\n acc64 = xorshift64(acc64, n(47));\n acc64 ^= key64;\n acc64 *= PRIME32_1;\n acc[i] = acc64 & mask64;\n }\n return acc;\n}\n\nfunction XXH3_mix2Accs(acc: BigUint64Array, key: DataView) {\n return XXH3_mul128_fold64(\n acc[0] ^ key.getBigUint64(0, true),\n acc[1] ^ key.getBigUint64(_U64, true)\n );\n}\n\nfunction XXH3_mergeAccs(acc: BigUint64Array, key: DataView, start: bigint) {\n let result64 = start;\n\n result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));\n\n return XXH3_avalanche(result64 & mask64);\n}\n\nfunction XXH3_hashLong(\n input: BigUint64Array,\n data: DataView,\n secret: DataView,\n f_acc: (acc: BigUint64Array, data: DataView, key: DataView) => BigUint64Array,\n f_scramble: (acc: BigUint64Array, key: DataView) => BigUint64Array\n) {\n let acc = input;\n const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);\n const block_len = STRIPE_LEN * nbStripesPerBlock;\n const nb_blocks = Math.floor((data.byteLength - 1) / block_len);\n\n for (let n = 0; n < nb_blocks; n += 1) {\n acc = XXH3_accumulate(\n acc,\n view(data, n * block_len),\n secret,\n nbStripesPerBlock\n );\n acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));\n }\n\n {\n // Partial block\n const nbStripes = Math.floor(\n (data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN\n );\n acc = XXH3_accumulate(\n acc,\n view(data, nb_blocks * block_len),\n secret,\n nbStripes\n );\n\n // Last Stripe\n acc = f_acc(\n acc,\n view(data, data.byteLength - STRIPE_LEN),\n view(secret, secret.byteLength - STRIPE_LEN - 7)\n );\n }\n return acc;\n}\n\nfunction XXH3_hashLong_128b(data: DataView, secret: DataView) {\n let acc = new BigUint64Array([\n PRIME32_3,\n PRIME64_1,\n PRIME64_2,\n PRIME64_3,\n PRIME64_4,\n PRIME32_2,\n PRIME64_5,\n PRIME32_1,\n ]);\n assert(data.byteLength > 128);\n\n acc = XXH3_hashLong(\n acc,\n data,\n secret,\n XXH3_accumulate_512,\n XXH3_scrambleAcc\n ) as BigUint64Array<ArrayBuffer>;\n\n /* converge into final hash */\n assert(acc.length * 8 === 64);\n {\n const low64 = XXH3_mergeAccs(\n acc,\n view(secret, 11),\n (n(data.byteLength) * PRIME64_1) & mask64\n );\n const high64 = XXH3_mergeAccs(\n acc,\n view(secret, secret.byteLength - STRIPE_LEN - 11),\n ~(n(data.byteLength) * PRIME64_2) & mask64\n );\n return (high64 << n(64)) | low64;\n }\n}\n\nfunction XXH3_mul128_fold64(a: bigint, b: bigint) {\n const lll = (a * b) & mask128;\n return (lll & mask64) ^ (lll >> n(64));\n}\n\nfunction XXH3_mix16B(dataView: DataView, keyView: DataView, seed: bigint) {\n return XXH3_mul128_fold64(\n (dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &\n mask64,\n (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &\n mask64\n );\n}\n\nfunction XXH3_mix32B(\n acc: bigint,\n data1: DataView,\n data2: DataView,\n key: DataView,\n seed: bigint\n) {\n let accl = acc & mask64;\n let acch = (acc >> n(64)) & mask64;\n\n accl += XXH3_mix16B(data1, key, seed);\n accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);\n accl &= mask64;\n acch += XXH3_mix16B(data2, view(key, 16), seed);\n acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);\n acch &= mask64;\n\n return (acch << n(64)) | accl;\n}\n\nfunction XXH3_avalanche(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(37);\n h64 *= PRIME_MX1;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_avalanche64(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(33);\n h64 *= PRIME64_2;\n h64 &= mask64; // 64-bit\n h64 ^= h64 >> n(29);\n h64 *= PRIME64_3;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_len_1to3_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len > 0 && len <= 3);\n\n const combined =\n n(data.getUint8(len - 1)) |\n n(len << 8) |\n n(data.getUint8(0) << 16) |\n n(data.getUint8(len >> 1) << 24);\n\n const blow =\n (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;\n const low = (combined ^ blow) & mask64;\n const bhigh =\n (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;\n const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;\n\n return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);\n}\n\nfunction xorshift64(b: bigint, shift: bigint) {\n return b ^ (b >> shift);\n}\n\nfunction XXH3_len_4to8_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 4 && len <= 8);\n\n {\n const l1 = data.getUint32(0, true);\n const l2 = data.getUint32(len - 4, true);\n const l64 = n(l1) | (n(l2) << n(32));\n const bitflip =\n ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &\n mask64;\n const keyed = l64 ^ bitflip;\n let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;\n m128 += (m128 & mask64) << n(65);\n m128 &= mask128;\n m128 ^= m128 >> n(67);\n\n return (\n xorshift64(\n (xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64,\n n(28)\n ) |\n (XXH3_avalanche(m128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_9to16_128b(data: DataView, key64: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 9 && len <= 16);\n\n {\n const bitflipl =\n ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &\n mask64;\n const bitfliph =\n ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &\n mask64;\n const ll1 = data.getBigUint64(0, true);\n let ll2 = data.getBigUint64(len - 8, true);\n\n let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;\n\n const m128_l = (m128 & mask64) + (n(len - 1) << n(54));\n m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b\n ll2 ^= bitfliph;\n\n m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);\n m128 &= mask128;\n m128 ^= bswap64(m128 >> n(64));\n let h128 = (m128 & mask64) * PRIME64_2;\n h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);\n h128 &= mask128;\n\n return (\n XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_0to16_128b(data: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len <= 16);\n\n if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);\n if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);\n if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);\n\n return (\n XXH3_avalanche64(\n seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)\n ) |\n (XXH3_avalanche64(\n seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)\n ) <<\n n(64))\n );\n}\n\nfunction inv64(x: bigint) {\n // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)\n return (~x + n(1)) & mask64;\n}\n\nfunction XXH3_len_17to128_128b(data: DataView, secret: DataView, seed: bigint) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n let i = n(data.byteLength - 1) / n(32);\n while (i >= 0) {\n const ni = Number(i);\n acc = XXH3_mix32B(\n acc,\n view(data, 16 * ni),\n view(data, data.byteLength - 16 * (ni + 1)),\n view(secret, 32 * ni),\n seed\n );\n i -= n(1);\n }\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\nfunction XXH3_len_129to240_128b(\n data: DataView,\n secret: DataView,\n seed: bigint\n) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n for (let i = 32; i < 160; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, i - 32),\n seed\n );\n }\n acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));\n for (let i = 160; i <= data.byteLength; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, 3 + i - 160),\n seed\n );\n }\n acc = XXH3_mix32B(\n acc,\n view(data, data.byteLength - 16),\n view(data, data.byteLength - 32),\n view(secret, 136 - 17 - 16),\n inv64(seed)\n );\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\n// 16 byte min input\nexport function XXH3(input: Uint8Array | string, seed: bigint = n(0)) {\n const encoder = new TextEncoder();\n const data = view(typeof input === \"string\" ? encoder.encode(input) : input);\n const len = data.byteLength;\n\n const hexDigest = (data: bigint) => data.toString(16).padStart(32, \"0\");\n if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));\n if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));\n if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));\n return hexDigest(XXH3_hashLong_128b(data, kkey));\n}\n\nexport function isXXH3(value: string): boolean {\n // Check if the given string matches the format of XXH3 (128 bit hex digest).\n return /^[0-9a-f]{32}$/.test(value);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hash.cjs","names":[],"sources":["../src/hash.ts"],"sourcesContent":["/* Converted from https://github.com/i404788/xxh3-ts\n\nBSD 2-Clause License\n\nCopyright (c) 2019, i404788\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nconst n = (n: number | string) => BigInt(n);\nconst view = (data: Uint8Array | DataView, offset: number = 0) =>\n new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);\n\nconst PRIME32_1 = n(\"0x9E3779B1\"); // 0b10011110001101110111100110110001\nconst PRIME32_2 = n(\"0x85EBCA77\"); // 0b10000101111010111100101001110111\nconst PRIME32_3 = n(\"0xC2B2AE3D\"); // 0b11000010101100101010111000111101\nconst PRIME64_1 = n(\"0x9E3779B185EBCA87\"); // 0b1001111000110111011110011011000110000101111010111100101010000111\nconst PRIME64_2 = n(\"0xC2B2AE3D27D4EB4F\"); // 0b1100001010110010101011100011110100100111110101001110101101001111\nconst PRIME64_3 = n(\"0x165667B19E3779F9\"); // 0b0001011001010110011001111011000110011110001101110111100111111001\nconst PRIME64_4 = n(\"0x85EBCA77C2B2AE63\"); // 0b1000010111101011110010100111011111000010101100101010111001100011\nconst PRIME64_5 = n(\"0x27D4EB2F165667C5\"); // 0b0010011111010100111010110010111100010110010101100110011111000101\nconst PRIME_MX1 = n(\"0x165667919E3779F9\"); // 0b0001011001010110011001111001000110011110001101110111100111111001\nconst PRIME_MX2 = n(\"0x9FB21C651E98DF25\"); // 0b1001111110110010000111000110010100011110100110001101111100100101\n\nconst hexToUint8Array = (hex: string) => {\n const strLen = hex.length;\n if (strLen % 2 !== 0) {\n throw new Error(\"String should have an even number of characters\");\n }\n\n const maxLength = strLen / 2;\n const bytes = new Uint8Array(maxLength);\n\n let read = 0;\n let write = 0;\n while (write < maxLength) {\n const slice = hex.slice(read, (read += 2));\n bytes[write] = Number.parseInt(slice, 16);\n write += 1;\n }\n\n return view(bytes);\n};\n\nconst kkey = hexToUint8Array(\n \"b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e\"\n);\n\nconst mask128 = (n(1) << n(128)) - n(1);\nconst mask64 = (n(1) << n(64)) - n(1);\nconst mask32 = (n(1) << n(32)) - n(1);\nconst STRIPE_LEN = 64;\nconst ACC_NB = STRIPE_LEN / 8;\nconst _U64 = 8;\nconst _U32 = 4;\n\nfunction assert(a: boolean) {\n if (!a) throw new Error(\"Assert failed\");\n}\n\nfunction bswap64(a: bigint) {\n const scratchbuf = new DataView(new ArrayBuffer(8));\n scratchbuf.setBigUint64(0, a, true);\n return scratchbuf.getBigUint64(0, false);\n}\n\nfunction bswap32(input: bigint) {\n let a = input;\n a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));\n a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));\n return a; // 32-bit\n}\n\nfunction XXH_mult32to64(a: bigint, b: bigint) {\n return ((a & mask32) * (b & mask32)) & mask64;\n}\n\nfunction rotl32(a: bigint, b: bigint) {\n return ((a << b) | (a >> (n(32) - b))) & mask32;\n}\n\nfunction XXH3_accumulate_512(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView\n) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const data_val = dataView.getBigUint64(i * 8, true);\n const data_key = data_val ^ keyView.getBigUint64(i * 8, true);\n acc[i ^ 1] += data_val;\n acc[i] += XXH_mult32to64(data_key, data_key >> n(32));\n }\n return acc;\n}\n\nfunction XXH3_accumulate(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView,\n nbStripes: number\n) {\n for (let n = 0; n < nbStripes; n += 1) {\n XXH3_accumulate_512(\n acc,\n view(dataView, n * STRIPE_LEN),\n view(keyView, n * 8)\n );\n }\n return acc;\n}\n\nfunction XXH3_scrambleAcc(acc: BigUint64Array, key: DataView) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const key64 = key.getBigUint64(i * 8, true);\n let acc64 = acc[i];\n acc64 = xorshift64(acc64, n(47));\n acc64 ^= key64;\n acc64 *= PRIME32_1;\n acc[i] = acc64 & mask64;\n }\n return acc;\n}\n\nfunction XXH3_mix2Accs(acc: BigUint64Array, key: DataView) {\n return XXH3_mul128_fold64(\n acc[0] ^ key.getBigUint64(0, true),\n acc[1] ^ key.getBigUint64(_U64, true)\n );\n}\n\nfunction XXH3_mergeAccs(acc: BigUint64Array, key: DataView, start: bigint) {\n let result64 = start;\n\n result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));\n\n return XXH3_avalanche(result64 & mask64);\n}\n\nfunction XXH3_hashLong(\n input: BigUint64Array,\n data: DataView,\n secret: DataView,\n f_acc: (acc: BigUint64Array, data: DataView, key: DataView) => BigUint64Array,\n f_scramble: (acc: BigUint64Array, key: DataView) => BigUint64Array\n) {\n let acc = input;\n const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);\n const block_len = STRIPE_LEN * nbStripesPerBlock;\n const nb_blocks = Math.floor((data.byteLength - 1) / block_len);\n\n for (let n = 0; n < nb_blocks; n += 1) {\n acc = XXH3_accumulate(\n acc,\n view(data, n * block_len),\n secret,\n nbStripesPerBlock\n );\n acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));\n }\n\n {\n // Partial block\n const nbStripes = Math.floor(\n (data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN\n );\n acc = XXH3_accumulate(\n acc,\n view(data, nb_blocks * block_len),\n secret,\n nbStripes\n );\n\n // Last Stripe\n acc = f_acc(\n acc,\n view(data, data.byteLength - STRIPE_LEN),\n view(secret, secret.byteLength - STRIPE_LEN - 7)\n );\n }\n return acc;\n}\n\nfunction XXH3_hashLong_128b(data: DataView, secret: DataView) {\n let acc = new BigUint64Array([\n PRIME32_3,\n PRIME64_1,\n PRIME64_2,\n PRIME64_3,\n PRIME64_4,\n PRIME32_2,\n PRIME64_5,\n PRIME32_1,\n ]);\n assert(data.byteLength > 128);\n\n acc = XXH3_hashLong(\n acc,\n data,\n secret,\n XXH3_accumulate_512,\n XXH3_scrambleAcc\n ) as BigUint64Array<ArrayBuffer>;\n\n /* converge into final hash */\n assert(acc.length * 8 === 64);\n {\n const low64 = XXH3_mergeAccs(\n acc,\n view(secret, 11),\n (n(data.byteLength) * PRIME64_1) & mask64\n );\n const high64 = XXH3_mergeAccs(\n acc,\n view(secret, secret.byteLength - STRIPE_LEN - 11),\n ~(n(data.byteLength) * PRIME64_2) & mask64\n );\n return (high64 << n(64)) | low64;\n }\n}\n\nfunction XXH3_mul128_fold64(a: bigint, b: bigint) {\n const lll = (a * b) & mask128;\n return (lll & mask64) ^ (lll >> n(64));\n}\n\nfunction XXH3_mix16B(dataView: DataView, keyView: DataView, seed: bigint) {\n return XXH3_mul128_fold64(\n (dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &\n mask64,\n (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &\n mask64\n );\n}\n\nfunction XXH3_mix32B(\n acc: bigint,\n data1: DataView,\n data2: DataView,\n key: DataView,\n seed: bigint\n) {\n let accl = acc & mask64;\n let acch = (acc >> n(64)) & mask64;\n\n accl += XXH3_mix16B(data1, key, seed);\n accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);\n accl &= mask64;\n acch += XXH3_mix16B(data2, view(key, 16), seed);\n acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);\n acch &= mask64;\n\n return (acch << n(64)) | accl;\n}\n\nfunction XXH3_avalanche(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(37);\n h64 *= PRIME_MX1;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_avalanche64(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(33);\n h64 *= PRIME64_2;\n h64 &= mask64; // 64-bit\n h64 ^= h64 >> n(29);\n h64 *= PRIME64_3;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_len_1to3_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len > 0 && len <= 3);\n\n const combined =\n n(data.getUint8(len - 1)) |\n n(len << 8) |\n n(data.getUint8(0) << 16) |\n n(data.getUint8(len >> 1) << 24);\n\n const blow =\n (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;\n const low = (combined ^ blow) & mask64;\n const bhigh =\n (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;\n const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;\n\n return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);\n}\n\nfunction xorshift64(b: bigint, shift: bigint) {\n return b ^ (b >> shift);\n}\n\nfunction XXH3_len_4to8_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 4 && len <= 8);\n\n {\n const l1 = data.getUint32(0, true);\n const l2 = data.getUint32(len - 4, true);\n const l64 = n(l1) | (n(l2) << n(32));\n const bitflip =\n ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &\n mask64;\n const keyed = l64 ^ bitflip;\n let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;\n m128 += (m128 & mask64) << n(65);\n m128 &= mask128;\n m128 ^= m128 >> n(67);\n\n return (\n xorshift64(\n (xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64,\n n(28)\n ) |\n (XXH3_avalanche(m128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_9to16_128b(data: DataView, key64: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 9 && len <= 16);\n\n {\n const bitflipl =\n ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &\n mask64;\n const bitfliph =\n ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &\n mask64;\n const ll1 = data.getBigUint64(0, true);\n let ll2 = data.getBigUint64(len - 8, true);\n\n let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;\n\n const m128_l = (m128 & mask64) + (n(len - 1) << n(54));\n m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b\n ll2 ^= bitfliph;\n\n m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);\n m128 &= mask128;\n m128 ^= bswap64(m128 >> n(64));\n let h128 = (m128 & mask64) * PRIME64_2;\n h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);\n h128 &= mask128;\n\n return (\n XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_0to16_128b(data: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len <= 16);\n\n if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);\n if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);\n if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);\n\n return (\n XXH3_avalanche64(\n seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)\n ) |\n (XXH3_avalanche64(\n seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)\n ) <<\n n(64))\n );\n}\n\nfunction inv64(x: bigint) {\n // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)\n return (~x + n(1)) & mask64;\n}\n\nfunction XXH3_len_17to128_128b(data: DataView, secret: DataView, seed: bigint) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n let i = n(data.byteLength - 1) / n(32);\n while (i >= 0) {\n const ni = Number(i);\n acc = XXH3_mix32B(\n acc,\n view(data, 16 * ni),\n view(data, data.byteLength - 16 * (ni + 1)),\n view(secret, 32 * ni),\n seed\n );\n i -= n(1);\n }\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\nfunction XXH3_len_129to240_128b(\n data: DataView,\n secret: DataView,\n seed: bigint\n) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n for (let i = 32; i < 160; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, i - 32),\n seed\n );\n }\n acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));\n for (let i = 160; i <= data.byteLength; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, 3 + i - 160),\n seed\n );\n }\n acc = XXH3_mix32B(\n acc,\n view(data, data.byteLength - 16),\n view(data, data.byteLength - 32),\n view(secret, 136 - 17 - 16),\n inv64(seed)\n );\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\n// 16 byte min input\nexport function XXH3(input: Uint8Array | string, seed: bigint = n(0)) {\n const encoder = new TextEncoder();\n const data = view(typeof input === \"string\" ? encoder.encode(input) : input);\n const len = data.byteLength;\n\n const hexDigest = (data: bigint) => data.toString(16).padStart(32, \"0\");\n if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));\n if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));\n if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));\n return hexDigest(XXH3_hashLong_128b(data, kkey));\n}\n\nexport function isXXH3(value: string): boolean {\n // Check if the given string matches the format of XXH3 (128 bit hex digest).\n return /^[0-9a-f]{32}$/.test(value);\n}\n"],"mappings":"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"}
package/dist/hash.js CHANGED
@@ -248,7 +248,7 @@ function XXH3(input, seed = n(0)) {
248
248
  const encoder = new TextEncoder();
249
249
  const data = view(typeof input === "string" ? encoder.encode(input) : input);
250
250
  const len = data.byteLength;
251
- const hexDigest = (data$1) => data$1.toString(16).padStart(32, "0");
251
+ const hexDigest = (data) => data.toString(16).padStart(32, "0");
252
252
  if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));
253
253
  if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));
254
254
  if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));
package/dist/hash.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hash.js","names":["data"],"sources":["../src/hash.ts"],"sourcesContent":["/* Converted from https://github.com/i404788/xxh3-ts\n\nBSD 2-Clause License\n\nCopyright (c) 2019, i404788\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nconst n = (n: number | string) => BigInt(n);\nconst view = (data: Uint8Array | DataView, offset: number = 0) =>\n new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);\n\nconst PRIME32_1 = n(\"0x9E3779B1\"); // 0b10011110001101110111100110110001\nconst PRIME32_2 = n(\"0x85EBCA77\"); // 0b10000101111010111100101001110111\nconst PRIME32_3 = n(\"0xC2B2AE3D\"); // 0b11000010101100101010111000111101\nconst PRIME64_1 = n(\"0x9E3779B185EBCA87\"); // 0b1001111000110111011110011011000110000101111010111100101010000111\nconst PRIME64_2 = n(\"0xC2B2AE3D27D4EB4F\"); // 0b1100001010110010101011100011110100100111110101001110101101001111\nconst PRIME64_3 = n(\"0x165667B19E3779F9\"); // 0b0001011001010110011001111011000110011110001101110111100111111001\nconst PRIME64_4 = n(\"0x85EBCA77C2B2AE63\"); // 0b1000010111101011110010100111011111000010101100101010111001100011\nconst PRIME64_5 = n(\"0x27D4EB2F165667C5\"); // 0b0010011111010100111010110010111100010110010101100110011111000101\nconst PRIME_MX1 = n(\"0x165667919E3779F9\"); // 0b0001011001010110011001111001000110011110001101110111100111111001\nconst PRIME_MX2 = n(\"0x9FB21C651E98DF25\"); // 0b1001111110110010000111000110010100011110100110001101111100100101\n\nconst hexToUint8Array = (hex: string) => {\n const strLen = hex.length;\n if (strLen % 2 !== 0) {\n throw new Error(\"String should have an even number of characters\");\n }\n\n const maxLength = strLen / 2;\n const bytes = new Uint8Array(maxLength);\n\n let read = 0;\n let write = 0;\n while (write < maxLength) {\n const slice = hex.slice(read, (read += 2));\n bytes[write] = Number.parseInt(slice, 16);\n write += 1;\n }\n\n return view(bytes);\n};\n\nconst kkey = hexToUint8Array(\n \"b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e\"\n);\n\nconst mask128 = (n(1) << n(128)) - n(1);\nconst mask64 = (n(1) << n(64)) - n(1);\nconst mask32 = (n(1) << n(32)) - n(1);\nconst STRIPE_LEN = 64;\nconst ACC_NB = STRIPE_LEN / 8;\nconst _U64 = 8;\nconst _U32 = 4;\n\nfunction assert(a: boolean) {\n if (!a) throw new Error(\"Assert failed\");\n}\n\nfunction bswap64(a: bigint) {\n const scratchbuf = new DataView(new ArrayBuffer(8));\n scratchbuf.setBigUint64(0, a, true);\n return scratchbuf.getBigUint64(0, false);\n}\n\nfunction bswap32(input: bigint) {\n let a = input;\n a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));\n a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));\n return a; // 32-bit\n}\n\nfunction XXH_mult32to64(a: bigint, b: bigint) {\n return ((a & mask32) * (b & mask32)) & mask64;\n}\n\nfunction rotl32(a: bigint, b: bigint) {\n return ((a << b) | (a >> (n(32) - b))) & mask32;\n}\n\nfunction XXH3_accumulate_512(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView\n) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const data_val = dataView.getBigUint64(i * 8, true);\n const data_key = data_val ^ keyView.getBigUint64(i * 8, true);\n acc[i ^ 1] += data_val;\n acc[i] += XXH_mult32to64(data_key, data_key >> n(32));\n }\n return acc;\n}\n\nfunction XXH3_accumulate(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView,\n nbStripes: number\n) {\n for (let n = 0; n < nbStripes; n += 1) {\n XXH3_accumulate_512(\n acc,\n view(dataView, n * STRIPE_LEN),\n view(keyView, n * 8)\n );\n }\n return acc;\n}\n\nfunction XXH3_scrambleAcc(acc: BigUint64Array, key: DataView) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const key64 = key.getBigUint64(i * 8, true);\n let acc64 = acc[i];\n acc64 = xorshift64(acc64, n(47));\n acc64 ^= key64;\n acc64 *= PRIME32_1;\n acc[i] = acc64 & mask64;\n }\n return acc;\n}\n\nfunction XXH3_mix2Accs(acc: BigUint64Array, key: DataView) {\n return XXH3_mul128_fold64(\n acc[0] ^ key.getBigUint64(0, true),\n acc[1] ^ key.getBigUint64(_U64, true)\n );\n}\n\nfunction XXH3_mergeAccs(acc: BigUint64Array, key: DataView, start: bigint) {\n let result64 = start;\n\n result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));\n\n return XXH3_avalanche(result64 & mask64);\n}\n\nfunction XXH3_hashLong(\n input: BigUint64Array,\n data: DataView,\n secret: DataView,\n f_acc: (acc: BigUint64Array, data: DataView, key: DataView) => BigUint64Array,\n f_scramble: (acc: BigUint64Array, key: DataView) => BigUint64Array\n) {\n let acc = input;\n const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);\n const block_len = STRIPE_LEN * nbStripesPerBlock;\n const nb_blocks = Math.floor((data.byteLength - 1) / block_len);\n\n for (let n = 0; n < nb_blocks; n += 1) {\n acc = XXH3_accumulate(\n acc,\n view(data, n * block_len),\n secret,\n nbStripesPerBlock\n );\n acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));\n }\n\n {\n // Partial block\n const nbStripes = Math.floor(\n (data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN\n );\n acc = XXH3_accumulate(\n acc,\n view(data, nb_blocks * block_len),\n secret,\n nbStripes\n );\n\n // Last Stripe\n acc = f_acc(\n acc,\n view(data, data.byteLength - STRIPE_LEN),\n view(secret, secret.byteLength - STRIPE_LEN - 7)\n );\n }\n return acc;\n}\n\nfunction XXH3_hashLong_128b(data: DataView, secret: DataView) {\n let acc = new BigUint64Array([\n PRIME32_3,\n PRIME64_1,\n PRIME64_2,\n PRIME64_3,\n PRIME64_4,\n PRIME32_2,\n PRIME64_5,\n PRIME32_1,\n ]);\n assert(data.byteLength > 128);\n\n acc = XXH3_hashLong(\n acc,\n data,\n secret,\n XXH3_accumulate_512,\n XXH3_scrambleAcc\n ) as BigUint64Array<ArrayBuffer>;\n\n /* converge into final hash */\n assert(acc.length * 8 === 64);\n {\n const low64 = XXH3_mergeAccs(\n acc,\n view(secret, 11),\n (n(data.byteLength) * PRIME64_1) & mask64\n );\n const high64 = XXH3_mergeAccs(\n acc,\n view(secret, secret.byteLength - STRIPE_LEN - 11),\n ~(n(data.byteLength) * PRIME64_2) & mask64\n );\n return (high64 << n(64)) | low64;\n }\n}\n\nfunction XXH3_mul128_fold64(a: bigint, b: bigint) {\n const lll = (a * b) & mask128;\n return (lll & mask64) ^ (lll >> n(64));\n}\n\nfunction XXH3_mix16B(dataView: DataView, keyView: DataView, seed: bigint) {\n return XXH3_mul128_fold64(\n (dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &\n mask64,\n (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &\n mask64\n );\n}\n\nfunction XXH3_mix32B(\n acc: bigint,\n data1: DataView,\n data2: DataView,\n key: DataView,\n seed: bigint\n) {\n let accl = acc & mask64;\n let acch = (acc >> n(64)) & mask64;\n\n accl += XXH3_mix16B(data1, key, seed);\n accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);\n accl &= mask64;\n acch += XXH3_mix16B(data2, view(key, 16), seed);\n acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);\n acch &= mask64;\n\n return (acch << n(64)) | accl;\n}\n\nfunction XXH3_avalanche(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(37);\n h64 *= PRIME_MX1;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_avalanche64(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(33);\n h64 *= PRIME64_2;\n h64 &= mask64; // 64-bit\n h64 ^= h64 >> n(29);\n h64 *= PRIME64_3;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_len_1to3_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len > 0 && len <= 3);\n\n const combined =\n n(data.getUint8(len - 1)) |\n n(len << 8) |\n n(data.getUint8(0) << 16) |\n n(data.getUint8(len >> 1) << 24);\n\n const blow =\n (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;\n const low = (combined ^ blow) & mask64;\n const bhigh =\n (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;\n const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;\n\n return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);\n}\n\nfunction xorshift64(b: bigint, shift: bigint) {\n return b ^ (b >> shift);\n}\n\nfunction XXH3_len_4to8_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 4 && len <= 8);\n\n {\n const l1 = data.getUint32(0, true);\n const l2 = data.getUint32(len - 4, true);\n const l64 = n(l1) | (n(l2) << n(32));\n const bitflip =\n ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &\n mask64;\n const keyed = l64 ^ bitflip;\n let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;\n m128 += (m128 & mask64) << n(65);\n m128 &= mask128;\n m128 ^= m128 >> n(67);\n\n return (\n xorshift64(\n (xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64,\n n(28)\n ) |\n (XXH3_avalanche(m128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_9to16_128b(data: DataView, key64: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 9 && len <= 16);\n\n {\n const bitflipl =\n ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &\n mask64;\n const bitfliph =\n ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &\n mask64;\n const ll1 = data.getBigUint64(0, true);\n let ll2 = data.getBigUint64(len - 8, true);\n\n let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;\n\n const m128_l = (m128 & mask64) + (n(len - 1) << n(54));\n m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b\n ll2 ^= bitfliph;\n\n m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);\n m128 &= mask128;\n m128 ^= bswap64(m128 >> n(64));\n let h128 = (m128 & mask64) * PRIME64_2;\n h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);\n h128 &= mask128;\n\n return (\n XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_0to16_128b(data: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len <= 16);\n\n if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);\n if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);\n if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);\n\n return (\n XXH3_avalanche64(\n seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)\n ) |\n (XXH3_avalanche64(\n seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)\n ) <<\n n(64))\n );\n}\n\nfunction inv64(x: bigint) {\n // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)\n return (~x + n(1)) & mask64;\n}\n\nfunction XXH3_len_17to128_128b(data: DataView, secret: DataView, seed: bigint) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n let i = n(data.byteLength - 1) / n(32);\n while (i >= 0) {\n const ni = Number(i);\n acc = XXH3_mix32B(\n acc,\n view(data, 16 * ni),\n view(data, data.byteLength - 16 * (ni + 1)),\n view(secret, 32 * ni),\n seed\n );\n i -= n(1);\n }\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\nfunction XXH3_len_129to240_128b(\n data: DataView,\n secret: DataView,\n seed: bigint\n) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n for (let i = 32; i < 160; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, i - 32),\n seed\n );\n }\n acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));\n for (let i = 160; i <= data.byteLength; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, 3 + i - 160),\n seed\n );\n }\n acc = XXH3_mix32B(\n acc,\n view(data, data.byteLength - 16),\n view(data, data.byteLength - 32),\n view(secret, 136 - 17 - 16),\n inv64(seed)\n );\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\n// 16 byte min input\nexport function XXH3(input: Uint8Array | string, seed: bigint = n(0)) {\n const encoder = new TextEncoder();\n const data = view(typeof input === \"string\" ? encoder.encode(input) : input);\n const len = data.byteLength;\n\n const hexDigest = (data: bigint) => data.toString(16).padStart(32, \"0\");\n if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));\n if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));\n if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));\n return hexDigest(XXH3_hashLong_128b(data, kkey));\n}\n\nexport function isXXH3(value: string): boolean {\n // Check if the given string matches the format of XXH3 (128 bit hex digest).\n return /^[0-9a-f]{32}$/.test(value);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hash.js","names":[],"sources":["../src/hash.ts"],"sourcesContent":["/* Converted from https://github.com/i404788/xxh3-ts\n\nBSD 2-Clause License\n\nCopyright (c) 2019, i404788\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nconst n = (n: number | string) => BigInt(n);\nconst view = (data: Uint8Array | DataView, offset: number = 0) =>\n new DataView(data.buffer, data.byteOffset + offset, data.byteLength - offset);\n\nconst PRIME32_1 = n(\"0x9E3779B1\"); // 0b10011110001101110111100110110001\nconst PRIME32_2 = n(\"0x85EBCA77\"); // 0b10000101111010111100101001110111\nconst PRIME32_3 = n(\"0xC2B2AE3D\"); // 0b11000010101100101010111000111101\nconst PRIME64_1 = n(\"0x9E3779B185EBCA87\"); // 0b1001111000110111011110011011000110000101111010111100101010000111\nconst PRIME64_2 = n(\"0xC2B2AE3D27D4EB4F\"); // 0b1100001010110010101011100011110100100111110101001110101101001111\nconst PRIME64_3 = n(\"0x165667B19E3779F9\"); // 0b0001011001010110011001111011000110011110001101110111100111111001\nconst PRIME64_4 = n(\"0x85EBCA77C2B2AE63\"); // 0b1000010111101011110010100111011111000010101100101010111001100011\nconst PRIME64_5 = n(\"0x27D4EB2F165667C5\"); // 0b0010011111010100111010110010111100010110010101100110011111000101\nconst PRIME_MX1 = n(\"0x165667919E3779F9\"); // 0b0001011001010110011001111001000110011110001101110111100111111001\nconst PRIME_MX2 = n(\"0x9FB21C651E98DF25\"); // 0b1001111110110010000111000110010100011110100110001101111100100101\n\nconst hexToUint8Array = (hex: string) => {\n const strLen = hex.length;\n if (strLen % 2 !== 0) {\n throw new Error(\"String should have an even number of characters\");\n }\n\n const maxLength = strLen / 2;\n const bytes = new Uint8Array(maxLength);\n\n let read = 0;\n let write = 0;\n while (write < maxLength) {\n const slice = hex.slice(read, (read += 2));\n bytes[write] = Number.parseInt(slice, 16);\n write += 1;\n }\n\n return view(bytes);\n};\n\nconst kkey = hexToUint8Array(\n \"b8fe6c3923a44bbe7c01812cf721ad1cded46de9839097db7240a4a4b7b3671fcb79e64eccc0e578825ad07dccff7221b8084674f743248ee03590e6813a264c3c2852bb91c300cb88d0658b1b532ea371644897a20df94e3819ef46a9deacd8a8fa763fe39c343ff9dcbbc7c70b4f1d8a51e04bcdb45931c89f7ec9d9787364eac5ac8334d3ebc3c581a0fffa1363eb170ddd51b7f0da49d316552629d4689e2b16be587d47a1fc8ff8b8d17ad031ce45cb3a8f95160428afd7fbcabb4b407e\"\n);\n\nconst mask128 = (n(1) << n(128)) - n(1);\nconst mask64 = (n(1) << n(64)) - n(1);\nconst mask32 = (n(1) << n(32)) - n(1);\nconst STRIPE_LEN = 64;\nconst ACC_NB = STRIPE_LEN / 8;\nconst _U64 = 8;\nconst _U32 = 4;\n\nfunction assert(a: boolean) {\n if (!a) throw new Error(\"Assert failed\");\n}\n\nfunction bswap64(a: bigint) {\n const scratchbuf = new DataView(new ArrayBuffer(8));\n scratchbuf.setBigUint64(0, a, true);\n return scratchbuf.getBigUint64(0, false);\n}\n\nfunction bswap32(input: bigint) {\n let a = input;\n a = ((a & n(0x0000ffff)) << n(16)) | ((a & n(0xffff0000)) >> n(16));\n a = ((a & n(0x00ff00ff)) << n(8)) | ((a & n(0xff00ff00)) >> n(8));\n return a; // 32-bit\n}\n\nfunction XXH_mult32to64(a: bigint, b: bigint) {\n return ((a & mask32) * (b & mask32)) & mask64;\n}\n\nfunction rotl32(a: bigint, b: bigint) {\n return ((a << b) | (a >> (n(32) - b))) & mask32;\n}\n\nfunction XXH3_accumulate_512(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView\n) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const data_val = dataView.getBigUint64(i * 8, true);\n const data_key = data_val ^ keyView.getBigUint64(i * 8, true);\n acc[i ^ 1] += data_val;\n acc[i] += XXH_mult32to64(data_key, data_key >> n(32));\n }\n return acc;\n}\n\nfunction XXH3_accumulate(\n acc: BigUint64Array,\n dataView: DataView,\n keyView: DataView,\n nbStripes: number\n) {\n for (let n = 0; n < nbStripes; n += 1) {\n XXH3_accumulate_512(\n acc,\n view(dataView, n * STRIPE_LEN),\n view(keyView, n * 8)\n );\n }\n return acc;\n}\n\nfunction XXH3_scrambleAcc(acc: BigUint64Array, key: DataView) {\n for (let i = 0; i < ACC_NB; i += 1) {\n const key64 = key.getBigUint64(i * 8, true);\n let acc64 = acc[i];\n acc64 = xorshift64(acc64, n(47));\n acc64 ^= key64;\n acc64 *= PRIME32_1;\n acc[i] = acc64 & mask64;\n }\n return acc;\n}\n\nfunction XXH3_mix2Accs(acc: BigUint64Array, key: DataView) {\n return XXH3_mul128_fold64(\n acc[0] ^ key.getBigUint64(0, true),\n acc[1] ^ key.getBigUint64(_U64, true)\n );\n}\n\nfunction XXH3_mergeAccs(acc: BigUint64Array, key: DataView, start: bigint) {\n let result64 = start;\n\n result64 += XXH3_mix2Accs(acc.slice(0), view(key, 0 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(2), view(key, 4 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(4), view(key, 8 * _U32));\n result64 += XXH3_mix2Accs(acc.slice(6), view(key, 12 * _U32));\n\n return XXH3_avalanche(result64 & mask64);\n}\n\nfunction XXH3_hashLong(\n input: BigUint64Array,\n data: DataView,\n secret: DataView,\n f_acc: (acc: BigUint64Array, data: DataView, key: DataView) => BigUint64Array,\n f_scramble: (acc: BigUint64Array, key: DataView) => BigUint64Array\n) {\n let acc = input;\n const nbStripesPerBlock = Math.floor((secret.byteLength - STRIPE_LEN) / 8);\n const block_len = STRIPE_LEN * nbStripesPerBlock;\n const nb_blocks = Math.floor((data.byteLength - 1) / block_len);\n\n for (let n = 0; n < nb_blocks; n += 1) {\n acc = XXH3_accumulate(\n acc,\n view(data, n * block_len),\n secret,\n nbStripesPerBlock\n );\n acc = f_scramble(acc, view(secret, secret.byteLength - STRIPE_LEN));\n }\n\n {\n // Partial block\n const nbStripes = Math.floor(\n (data.byteLength - 1 - block_len * nb_blocks) / STRIPE_LEN\n );\n acc = XXH3_accumulate(\n acc,\n view(data, nb_blocks * block_len),\n secret,\n nbStripes\n );\n\n // Last Stripe\n acc = f_acc(\n acc,\n view(data, data.byteLength - STRIPE_LEN),\n view(secret, secret.byteLength - STRIPE_LEN - 7)\n );\n }\n return acc;\n}\n\nfunction XXH3_hashLong_128b(data: DataView, secret: DataView) {\n let acc = new BigUint64Array([\n PRIME32_3,\n PRIME64_1,\n PRIME64_2,\n PRIME64_3,\n PRIME64_4,\n PRIME32_2,\n PRIME64_5,\n PRIME32_1,\n ]);\n assert(data.byteLength > 128);\n\n acc = XXH3_hashLong(\n acc,\n data,\n secret,\n XXH3_accumulate_512,\n XXH3_scrambleAcc\n ) as BigUint64Array<ArrayBuffer>;\n\n /* converge into final hash */\n assert(acc.length * 8 === 64);\n {\n const low64 = XXH3_mergeAccs(\n acc,\n view(secret, 11),\n (n(data.byteLength) * PRIME64_1) & mask64\n );\n const high64 = XXH3_mergeAccs(\n acc,\n view(secret, secret.byteLength - STRIPE_LEN - 11),\n ~(n(data.byteLength) * PRIME64_2) & mask64\n );\n return (high64 << n(64)) | low64;\n }\n}\n\nfunction XXH3_mul128_fold64(a: bigint, b: bigint) {\n const lll = (a * b) & mask128;\n return (lll & mask64) ^ (lll >> n(64));\n}\n\nfunction XXH3_mix16B(dataView: DataView, keyView: DataView, seed: bigint) {\n return XXH3_mul128_fold64(\n (dataView.getBigUint64(0, true) ^ (keyView.getBigUint64(0, true) + seed)) &\n mask64,\n (dataView.getBigUint64(8, true) ^ (keyView.getBigUint64(8, true) - seed)) &\n mask64\n );\n}\n\nfunction XXH3_mix32B(\n acc: bigint,\n data1: DataView,\n data2: DataView,\n key: DataView,\n seed: bigint\n) {\n let accl = acc & mask64;\n let acch = (acc >> n(64)) & mask64;\n\n accl += XXH3_mix16B(data1, key, seed);\n accl ^= data2.getBigUint64(0, true) + data2.getBigUint64(8, true);\n accl &= mask64;\n acch += XXH3_mix16B(data2, view(key, 16), seed);\n acch ^= data1.getBigUint64(0, true) + data1.getBigUint64(8, true);\n acch &= mask64;\n\n return (acch << n(64)) | accl;\n}\n\nfunction XXH3_avalanche(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(37);\n h64 *= PRIME_MX1;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_avalanche64(input: bigint) {\n let h64 = input;\n h64 ^= h64 >> n(33);\n h64 *= PRIME64_2;\n h64 &= mask64; // 64-bit\n h64 ^= h64 >> n(29);\n h64 *= PRIME64_3;\n h64 &= mask64;\n h64 ^= h64 >> n(32);\n return h64;\n}\n\nfunction XXH3_len_1to3_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len > 0 && len <= 3);\n\n const combined =\n n(data.getUint8(len - 1)) |\n n(len << 8) |\n n(data.getUint8(0) << 16) |\n n(data.getUint8(len >> 1) << 24);\n\n const blow =\n (n(key32.getUint32(0, true)) ^ n(key32.getUint32(4, true))) + seed;\n const low = (combined ^ blow) & mask64;\n const bhigh =\n (n(key32.getUint32(8, true)) ^ n(key32.getUint32(12, true))) - seed;\n const high = (rotl32(bswap32(combined), n(13)) ^ bhigh) & mask64;\n\n return ((XXH3_avalanche64(high) & mask64) << n(64)) | XXH3_avalanche64(low);\n}\n\nfunction xorshift64(b: bigint, shift: bigint) {\n return b ^ (b >> shift);\n}\n\nfunction XXH3_len_4to8_128b(data: DataView, key32: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 4 && len <= 8);\n\n {\n const l1 = data.getUint32(0, true);\n const l2 = data.getUint32(len - 4, true);\n const l64 = n(l1) | (n(l2) << n(32));\n const bitflip =\n ((key32.getBigUint64(16, true) ^ key32.getBigUint64(24, true)) + seed) &\n mask64;\n const keyed = l64 ^ bitflip;\n let m128 = (keyed * (PRIME64_1 + (n(len) << n(2)))) & mask128;\n m128 += (m128 & mask64) << n(65);\n m128 &= mask128;\n m128 ^= m128 >> n(67);\n\n return (\n xorshift64(\n (xorshift64(m128 & mask64, n(35)) * PRIME_MX2) & mask64,\n n(28)\n ) |\n (XXH3_avalanche(m128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_9to16_128b(data: DataView, key64: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len >= 9 && len <= 16);\n\n {\n const bitflipl =\n ((key64.getBigUint64(32, true) ^ key64.getBigUint64(40, true)) + seed) &\n mask64;\n const bitfliph =\n ((key64.getBigUint64(48, true) ^ key64.getBigUint64(56, true)) - seed) &\n mask64;\n const ll1 = data.getBigUint64(0, true);\n let ll2 = data.getBigUint64(len - 8, true);\n\n let m128 = (ll1 ^ ll2 ^ bitflipl) * PRIME64_1;\n\n const m128_l = (m128 & mask64) + (n(len - 1) << n(54));\n m128 = (m128 & (mask128 ^ mask64)) | m128_l; // eqv. to adding only to lower 64b\n ll2 ^= bitfliph;\n\n m128 += (ll2 + (ll2 & mask32) * (PRIME32_2 - n(1))) << n(64);\n m128 &= mask128;\n m128 ^= bswap64(m128 >> n(64));\n let h128 = (m128 & mask64) * PRIME64_2;\n h128 += ((m128 >> n(64)) * PRIME64_2) << n(64);\n h128 &= mask128;\n\n return (\n XXH3_avalanche(h128 & mask64) | (XXH3_avalanche(h128 >> n(64)) << n(64))\n );\n }\n}\n\nfunction XXH3_len_0to16_128b(data: DataView, seed: bigint) {\n const len = data.byteLength;\n assert(len <= 16);\n\n if (len > 8) return XXH3_len_9to16_128b(data, kkey, seed);\n if (len >= 4) return XXH3_len_4to8_128b(data, kkey, seed);\n if (len > 0) return XXH3_len_1to3_128b(data, kkey, seed);\n\n return (\n XXH3_avalanche64(\n seed ^ kkey.getBigUint64(64, true) ^ kkey.getBigUint64(72, true)\n ) |\n (XXH3_avalanche64(\n seed ^ kkey.getBigUint64(80, true) ^ kkey.getBigUint64(88, true)\n ) <<\n n(64))\n );\n}\n\nfunction inv64(x: bigint) {\n // NOTE: `AND` fixes signedness (but because of 2's complement we need to re-add 1)\n return (~x + n(1)) & mask64;\n}\n\nfunction XXH3_len_17to128_128b(data: DataView, secret: DataView, seed: bigint) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n let i = n(data.byteLength - 1) / n(32);\n while (i >= 0) {\n const ni = Number(i);\n acc = XXH3_mix32B(\n acc,\n view(data, 16 * ni),\n view(data, data.byteLength - 16 * (ni + 1)),\n view(secret, 32 * ni),\n seed\n );\n i -= n(1);\n }\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\nfunction XXH3_len_129to240_128b(\n data: DataView,\n secret: DataView,\n seed: bigint\n) {\n let acc = (n(data.byteLength) * PRIME64_1) & mask64;\n for (let i = 32; i < 160; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, i - 32),\n seed\n );\n }\n acc = XXH3_avalanche(acc & mask64) | (XXH3_avalanche(acc >> n(64)) << n(64));\n for (let i = 160; i <= data.byteLength; i += 32) {\n acc = XXH3_mix32B(\n acc,\n view(data, i - 32),\n view(data, i - 16),\n view(secret, 3 + i - 160),\n seed\n );\n }\n acc = XXH3_mix32B(\n acc,\n view(data, data.byteLength - 16),\n view(data, data.byteLength - 32),\n view(secret, 136 - 17 - 16),\n inv64(seed)\n );\n\n let h128l = (acc + (acc >> n(64))) & mask64;\n h128l = XXH3_avalanche(h128l);\n let h128h =\n (acc & mask64) * PRIME64_1 +\n (acc >> n(64)) * PRIME64_4 +\n ((n(data.byteLength) - seed) & mask64) * PRIME64_2;\n h128h &= mask64;\n\n h128h = inv64(XXH3_avalanche(h128h));\n return h128l | (h128h << n(64));\n}\n\n// 16 byte min input\nexport function XXH3(input: Uint8Array | string, seed: bigint = n(0)) {\n const encoder = new TextEncoder();\n const data = view(typeof input === \"string\" ? encoder.encode(input) : input);\n const len = data.byteLength;\n\n const hexDigest = (data: bigint) => data.toString(16).padStart(32, \"0\");\n if (len <= 16) return hexDigest(XXH3_len_0to16_128b(data, seed));\n if (len <= 128) return hexDigest(XXH3_len_17to128_128b(data, kkey, seed));\n if (len <= 240) return hexDigest(XXH3_len_129to240_128b(data, kkey, seed));\n return hexDigest(XXH3_hashLong_128b(data, kkey));\n}\n\nexport function isXXH3(value: string): boolean {\n // Check if the given string matches the format of XXH3 (128 bit hex digest).\n return /^[0-9a-f]{32}$/.test(value);\n}\n"],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1,3 +1,4 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1
2
  const require_async_local_storage = require('./setup/async_local_storage.cjs');
2
3
  const require_errors = require('./errors.cjs');
3
4
  const require_base = require('./channels/base.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["initializeAsyncLocalStorageSingleton"],"sources":["../src/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { initializeAsyncLocalStorageSingleton } from \"./setup/async_local_storage.js\";\n\n// Initialize global async local storage instance for tracing\ninitializeAsyncLocalStorageSingleton();\n\nexport * from \"./web.js\";\n\nexport { interrupt } from \"./interrupt.js\";\nexport { writer } from \"./writer.js\";\nexport { pushMessage } from \"./graph/message.js\";\nexport { getStore, getWriter, getConfig } from \"./pregel/utils/config.js\";\nexport { getPreviousState } from \"./func/index.js\";\nexport { getCurrentTaskInput } from \"./pregel/utils/config.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAKAA,kEAAsC"}
1
+ {"version":3,"file":"index.cjs","names":["initializeAsyncLocalStorageSingleton"],"sources":["../src/index.ts"],"sourcesContent":["/* __LC_ALLOW_ENTRYPOINT_SIDE_EFFECTS__ */\n\nimport { initializeAsyncLocalStorageSingleton } from \"./setup/async_local_storage.js\";\n\n// Initialize global async local storage instance for tracing\ninitializeAsyncLocalStorageSingleton();\n\nexport * from \"./web.js\";\n\nexport { interrupt } from \"./interrupt.js\";\nexport { writer } from \"./writer.js\";\nexport { pushMessage } from \"./graph/message.js\";\nexport { getStore, getWriter, getConfig } from \"./pregel/utils/config.js\";\nexport { getPreviousState } from \"./func/index.js\";\nexport { getCurrentTaskInput } from \"./pregel/utils/config.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAKAA,kEAAsC"}
package/dist/index.d.cts CHANGED
@@ -21,7 +21,7 @@ import { isSerializableSchema, isStandardSchema } from "./state/types.cjs";
21
21
  import { ReducedValue, ReducedValueInit } from "./state/values/reduced.cjs";
22
22
  import { UntrackedValue, UntrackedValueInit } from "./state/values/untracked.cjs";
23
23
  import { InferStateSchemaUpdate, InferStateSchemaValue, StateSchema, StateSchemaField, StateSchemaFields } from "./state/schema.cjs";
24
- import { ConditionalEdgeRouter, ExtractStateType, ExtractUpdateType, GraphNode } from "./graph/types.cjs";
24
+ import { ConditionalEdgeRouter, ConditionalEdgeRouterTypes, ContextSchemaInit, ExtractStateType, ExtractUpdateType, GraphNode, GraphNodeReturnValue, GraphNodeTypes, StateDefinitionInit, StateGraphInit, StateGraphOptions } from "./graph/types.cjs";
25
25
  import { CompiledStateGraph, StateGraph, StateGraphArgs } from "./graph/state.cjs";
26
26
  import { Messages, REMOVE_ALL_MESSAGES, messagesStateReducer } from "./graph/messages_reducer.cjs";
27
27
  import { MessageGraph, pushMessage } from "./graph/message.cjs";
@@ -32,4 +32,4 @@ import { getJsonSchemaFromSchema, getSchemaDefaultGetter } from "./state/adapter
32
32
  import { MessagesValue } from "./state/prebuilt/messages.cjs";
33
33
  import { AsyncBatchedStore, BaseCheckpointSaver, BaseStore, Checkpoint, CheckpointMetadata, CheckpointTuple, GetOperation, InMemoryStore, Item, ListNamespacesOperation, MatchCondition, MemorySaver, NameSpacePath, NamespaceMatchType, Operation, OperationResults, PutOperation, SearchOperation, copyCheckpoint, emptyCheckpoint } from "./web.cjs";
34
34
  import { getConfig, getCurrentTaskInput, getStore, getWriter } from "./pregel/utils/config.cjs";
35
- export { Annotation, AnnotationRoot, AnyValue, AsyncBatchedStore, BaseChannel, BaseCheckpointSaver, BaseLangGraphError, BaseLangGraphErrorFields, BaseStore, BinaryOperator, BinaryOperatorAggregate, Checkpoint, CheckpointMetadata, CheckpointTuple, Command, CommandParams, CompiledGraph, CompiledStateGraph, ConditionalEdgeRouter, DynamicBarrierValue, END, EmptyChannelError, EmptyInputError, EntrypointOptions, EphemeralValue, ExtractStateType, ExtractUpdateType, GetOperation, GetStateOptions, Graph, GraphBubbleUp, GraphInterrupt, GraphNode, GraphRecursionError, GraphValueError, INTERRUPT, InMemoryStore, InferStateSchemaUpdate, InferStateSchemaValue, Interrupt, InvalidUpdateError, Item, LangGraphRunnableConfig, LastValue, ListNamespacesOperation, MatchCondition, MemorySaver, MessageGraph, Messages, MessagesAnnotation, MessagesValue, MessagesZodMeta, MessagesZodState, MultipleChannelSubscriptionOptions, MultipleSubgraphsError, NameSpacePath, NamedBarrierValue, NamespaceMatchType, NodeInterrupt, NodeType, Operation, OperationResults, ParentCommand, Pregel, PregelNode, PregelOptions, PregelParams, PutOperation, REMOVE_ALL_MESSAGES, ReducedValue, ReducedValueInit, RemoteException, RetryPolicy, Runtime, START, SearchOperation, Send, SingleChannelSubscriptionOptions, SingleReducer, StateDefinition, StateGraph, StateGraphArgs, StateGraphInputError, StateSchema, StateSchemaField, StateSchemaFields, StateSnapshot, StateType, StreamMode, StreamOutputMap, TaskOptions, Topic, UnreachableNodeError, UntrackedValue, UntrackedValueChannel, UntrackedValueInit, UpdateType, WaitForNames, messagesStateReducer as addMessages, copyCheckpoint, emptyCheckpoint, entrypoint, getConfig, getCurrentTaskInput, getJsonSchemaFromSchema, getPreviousState, getSchemaDefaultGetter, getStore, getSubgraphsSeenSet, getWriter, interrupt, isCommand, isGraphBubbleUp, isGraphInterrupt, isInterrupted, isParentCommand, isSerializableSchema, isStandardSchema, messagesStateReducer, pushMessage, task, writer };
35
+ export { Annotation, AnnotationRoot, AnyValue, AsyncBatchedStore, BaseChannel, BaseCheckpointSaver, BaseLangGraphError, BaseLangGraphErrorFields, BaseStore, BinaryOperator, BinaryOperatorAggregate, Checkpoint, CheckpointMetadata, CheckpointTuple, Command, CommandParams, CompiledGraph, CompiledStateGraph, ConditionalEdgeRouter, ConditionalEdgeRouterTypes, ContextSchemaInit, DynamicBarrierValue, END, EmptyChannelError, EmptyInputError, EntrypointOptions, EphemeralValue, ExtractStateType, ExtractUpdateType, GetOperation, GetStateOptions, Graph, GraphBubbleUp, GraphInterrupt, GraphNode, GraphNodeReturnValue, GraphNodeTypes, GraphRecursionError, GraphValueError, INTERRUPT, InMemoryStore, InferStateSchemaUpdate, InferStateSchemaValue, Interrupt, InvalidUpdateError, Item, LangGraphRunnableConfig, LastValue, ListNamespacesOperation, MatchCondition, MemorySaver, MessageGraph, Messages, MessagesAnnotation, MessagesValue, MessagesZodMeta, MessagesZodState, MultipleChannelSubscriptionOptions, MultipleSubgraphsError, NameSpacePath, NamedBarrierValue, NamespaceMatchType, NodeInterrupt, NodeType, Operation, OperationResults, ParentCommand, Pregel, PregelNode, PregelOptions, PregelParams, PutOperation, REMOVE_ALL_MESSAGES, ReducedValue, ReducedValueInit, RemoteException, RetryPolicy, Runtime, START, SearchOperation, Send, SingleChannelSubscriptionOptions, SingleReducer, StateDefinition, StateDefinitionInit, StateGraph, StateGraphArgs, StateGraphInit, StateGraphInputError, StateGraphOptions, StateSchema, StateSchemaField, StateSchemaFields, StateSnapshot, StateType, StreamMode, StreamOutputMap, TaskOptions, Topic, UnreachableNodeError, UntrackedValue, UntrackedValueChannel, UntrackedValueInit, UpdateType, WaitForNames, messagesStateReducer as addMessages, copyCheckpoint, emptyCheckpoint, entrypoint, getConfig, getCurrentTaskInput, getJsonSchemaFromSchema, getPreviousState, getSchemaDefaultGetter, getStore, getSubgraphsSeenSet, getWriter, interrupt, isCommand, isGraphBubbleUp, isGraphInterrupt, isInterrupted, isParentCommand, isSerializableSchema, isStandardSchema, messagesStateReducer, pushMessage, task, writer };
package/dist/index.d.ts CHANGED
@@ -21,7 +21,7 @@ import { isSerializableSchema, isStandardSchema } from "./state/types.js";
21
21
  import { ReducedValue, ReducedValueInit } from "./state/values/reduced.js";
22
22
  import { UntrackedValue, UntrackedValueInit } from "./state/values/untracked.js";
23
23
  import { InferStateSchemaUpdate, InferStateSchemaValue, StateSchema, StateSchemaField, StateSchemaFields } from "./state/schema.js";
24
- import { ConditionalEdgeRouter, ExtractStateType, ExtractUpdateType, GraphNode } from "./graph/types.js";
24
+ import { ConditionalEdgeRouter, ConditionalEdgeRouterTypes, ContextSchemaInit, ExtractStateType, ExtractUpdateType, GraphNode, GraphNodeReturnValue, GraphNodeTypes, StateDefinitionInit, StateGraphInit, StateGraphOptions } from "./graph/types.js";
25
25
  import { CompiledStateGraph, StateGraph, StateGraphArgs } from "./graph/state.js";
26
26
  import { Messages, REMOVE_ALL_MESSAGES, messagesStateReducer } from "./graph/messages_reducer.js";
27
27
  import { MessageGraph, pushMessage } from "./graph/message.js";
@@ -32,4 +32,4 @@ import { getJsonSchemaFromSchema, getSchemaDefaultGetter } from "./state/adapter
32
32
  import { MessagesValue } from "./state/prebuilt/messages.js";
33
33
  import { AsyncBatchedStore, BaseCheckpointSaver, BaseStore, Checkpoint, CheckpointMetadata, CheckpointTuple, GetOperation, InMemoryStore, Item, ListNamespacesOperation, MatchCondition, MemorySaver, NameSpacePath, NamespaceMatchType, Operation, OperationResults, PutOperation, SearchOperation, copyCheckpoint, emptyCheckpoint } from "./web.js";
34
34
  import { getConfig, getCurrentTaskInput, getStore, getWriter } from "./pregel/utils/config.js";
35
- export { Annotation, AnnotationRoot, AnyValue, AsyncBatchedStore, BaseChannel, BaseCheckpointSaver, BaseLangGraphError, BaseLangGraphErrorFields, BaseStore, BinaryOperator, BinaryOperatorAggregate, Checkpoint, CheckpointMetadata, CheckpointTuple, Command, CommandParams, CompiledGraph, CompiledStateGraph, ConditionalEdgeRouter, DynamicBarrierValue, END, EmptyChannelError, EmptyInputError, EntrypointOptions, EphemeralValue, ExtractStateType, ExtractUpdateType, GetOperation, GetStateOptions, Graph, GraphBubbleUp, GraphInterrupt, GraphNode, GraphRecursionError, GraphValueError, INTERRUPT, InMemoryStore, InferStateSchemaUpdate, InferStateSchemaValue, Interrupt, InvalidUpdateError, Item, LangGraphRunnableConfig, LastValue, ListNamespacesOperation, MatchCondition, MemorySaver, MessageGraph, Messages, MessagesAnnotation, MessagesValue, MessagesZodMeta, MessagesZodState, MultipleChannelSubscriptionOptions, MultipleSubgraphsError, NameSpacePath, NamedBarrierValue, NamespaceMatchType, NodeInterrupt, NodeType, Operation, OperationResults, ParentCommand, Pregel, PregelNode, PregelOptions, PregelParams, PutOperation, REMOVE_ALL_MESSAGES, ReducedValue, ReducedValueInit, RemoteException, RetryPolicy, Runtime, START, SearchOperation, Send, SingleChannelSubscriptionOptions, SingleReducer, StateDefinition, StateGraph, StateGraphArgs, StateGraphInputError, StateSchema, StateSchemaField, StateSchemaFields, StateSnapshot, StateType, StreamMode, StreamOutputMap, TaskOptions, Topic, UnreachableNodeError, UntrackedValue, UntrackedValueChannel, UntrackedValueInit, UpdateType, WaitForNames, messagesStateReducer as addMessages, copyCheckpoint, emptyCheckpoint, entrypoint, getConfig, getCurrentTaskInput, getJsonSchemaFromSchema, getPreviousState, getSchemaDefaultGetter, getStore, getSubgraphsSeenSet, getWriter, interrupt, isCommand, isGraphBubbleUp, isGraphInterrupt, isInterrupted, isParentCommand, isSerializableSchema, isStandardSchema, messagesStateReducer, pushMessage, task, writer };
35
+ export { Annotation, AnnotationRoot, AnyValue, AsyncBatchedStore, BaseChannel, BaseCheckpointSaver, BaseLangGraphError, BaseLangGraphErrorFields, BaseStore, BinaryOperator, BinaryOperatorAggregate, Checkpoint, CheckpointMetadata, CheckpointTuple, Command, CommandParams, CompiledGraph, CompiledStateGraph, ConditionalEdgeRouter, ConditionalEdgeRouterTypes, ContextSchemaInit, DynamicBarrierValue, END, EmptyChannelError, EmptyInputError, EntrypointOptions, EphemeralValue, ExtractStateType, ExtractUpdateType, GetOperation, GetStateOptions, Graph, GraphBubbleUp, GraphInterrupt, GraphNode, GraphNodeReturnValue, GraphNodeTypes, GraphRecursionError, GraphValueError, INTERRUPT, InMemoryStore, InferStateSchemaUpdate, InferStateSchemaValue, Interrupt, InvalidUpdateError, Item, LangGraphRunnableConfig, LastValue, ListNamespacesOperation, MatchCondition, MemorySaver, MessageGraph, Messages, MessagesAnnotation, MessagesValue, MessagesZodMeta, MessagesZodState, MultipleChannelSubscriptionOptions, MultipleSubgraphsError, NameSpacePath, NamedBarrierValue, NamespaceMatchType, NodeInterrupt, NodeType, Operation, OperationResults, ParentCommand, Pregel, PregelNode, PregelOptions, PregelParams, PutOperation, REMOVE_ALL_MESSAGES, ReducedValue, ReducedValueInit, RemoteException, RetryPolicy, Runtime, START, SearchOperation, Send, SingleChannelSubscriptionOptions, SingleReducer, StateDefinition, StateDefinitionInit, StateGraph, StateGraphArgs, StateGraphInit, StateGraphInputError, StateGraphOptions, StateSchema, StateSchemaField, StateSchemaFields, StateSnapshot, StateType, StreamMode, StreamOutputMap, TaskOptions, Topic, UnreachableNodeError, UntrackedValue, UntrackedValueChannel, UntrackedValueInit, UpdateType, WaitForNames, messagesStateReducer as addMessages, copyCheckpoint, emptyCheckpoint, entrypoint, getConfig, getCurrentTaskInput, getJsonSchemaFromSchema, getPreviousState, getSchemaDefaultGetter, getStore, getSubgraphsSeenSet, getWriter, interrupt, isCommand, isGraphBubbleUp, isGraphInterrupt, isInterrupted, isParentCommand, isSerializableSchema, isStandardSchema, messagesStateReducer, pushMessage, task, writer };