@langchain/google 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/LICENSE +21 -0
- package/README.md +97 -0
- package/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/chat_models/api-types.d.cts +1506 -0
- package/dist/chat_models/api-types.d.ts +1506 -0
- package/dist/chat_models/base.cjs +445 -0
- package/dist/chat_models/base.cjs.map +1 -0
- package/dist/chat_models/base.d.cts +319 -0
- package/dist/chat_models/base.d.ts +319 -0
- package/dist/chat_models/base.js +442 -0
- package/dist/chat_models/base.js.map +1 -0
- package/dist/chat_models/index.cjs +23 -0
- package/dist/chat_models/index.cjs.map +1 -0
- package/dist/chat_models/index.d.cts +39 -0
- package/dist/chat_models/index.d.ts +39 -0
- package/dist/chat_models/index.js +22 -0
- package/dist/chat_models/index.js.map +1 -0
- package/dist/chat_models/node.cjs +35 -0
- package/dist/chat_models/node.cjs.map +1 -0
- package/dist/chat_models/node.d.cts +13 -0
- package/dist/chat_models/node.d.ts +13 -0
- package/dist/chat_models/node.js +34 -0
- package/dist/chat_models/node.js.map +1 -0
- package/dist/chat_models/profiles.cjs +373 -0
- package/dist/chat_models/profiles.cjs.map +1 -0
- package/dist/chat_models/profiles.js +372 -0
- package/dist/chat_models/profiles.js.map +1 -0
- package/dist/chat_models/types.d.cts +250 -0
- package/dist/chat_models/types.d.ts +250 -0
- package/dist/clients/index.cjs +219 -0
- package/dist/clients/index.cjs.map +1 -0
- package/dist/clients/index.d.cts +49 -0
- package/dist/clients/index.d.ts +49 -0
- package/dist/clients/index.js +217 -0
- package/dist/clients/index.js.map +1 -0
- package/dist/clients/node.cjs +327 -0
- package/dist/clients/node.cjs.map +1 -0
- package/dist/clients/node.d.cts +59 -0
- package/dist/clients/node.d.ts +59 -0
- package/dist/clients/node.js +325 -0
- package/dist/clients/node.js.map +1 -0
- package/dist/const.cjs +13 -0
- package/dist/const.cjs.map +1 -0
- package/dist/const.js +9 -0
- package/dist/const.js.map +1 -0
- package/dist/converters/messages.cjs +697 -0
- package/dist/converters/messages.cjs.map +1 -0
- package/dist/converters/messages.js +691 -0
- package/dist/converters/messages.js.map +1 -0
- package/dist/converters/params.cjs +205 -0
- package/dist/converters/params.cjs.map +1 -0
- package/dist/converters/params.js +202 -0
- package/dist/converters/params.js.map +1 -0
- package/dist/converters/tools.cjs +356 -0
- package/dist/converters/tools.cjs.map +1 -0
- package/dist/converters/tools.js +353 -0
- package/dist/converters/tools.js.map +1 -0
- package/dist/index.cjs +7 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/node.cjs +7 -0
- package/dist/node.d.cts +3 -0
- package/dist/node.d.ts +3 -0
- package/dist/node.js +4 -0
- package/dist/utils/errors.cjs +543 -0
- package/dist/utils/errors.cjs.map +1 -0
- package/dist/utils/errors.js +535 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/gcp-auth.cjs +188 -0
- package/dist/utils/gcp-auth.cjs.map +1 -0
- package/dist/utils/gcp-auth.d.cts +43 -0
- package/dist/utils/gcp-auth.d.ts +43 -0
- package/dist/utils/gcp-auth.js +186 -0
- package/dist/utils/gcp-auth.js.map +1 -0
- package/dist/utils/handler.cjs +67 -0
- package/dist/utils/handler.cjs.map +1 -0
- package/dist/utils/handler.d.cts +34 -0
- package/dist/utils/handler.d.ts +34 -0
- package/dist/utils/handler.js +64 -0
- package/dist/utils/handler.js.map +1 -0
- package/dist/utils/misc.cjs +10 -0
- package/dist/utils/misc.cjs.map +1 -0
- package/dist/utils/misc.d.cts +14 -0
- package/dist/utils/misc.d.ts +14 -0
- package/dist/utils/misc.js +9 -0
- package/dist/utils/misc.js.map +1 -0
- package/dist/utils/stream.cjs +26 -0
- package/dist/utils/stream.cjs.map +1 -0
- package/dist/utils/stream.js +25 -0
- package/dist/utils/stream.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/handler.d.ts
|
|
4
|
+
interface GoogleCustomEventInfo {
|
|
5
|
+
subEvent: string;
|
|
6
|
+
module: string;
|
|
7
|
+
}
|
|
8
|
+
declare abstract class GoogleRequestCallbackHandler extends BaseCallbackHandler {
|
|
9
|
+
customEventInfo(eventName: string): GoogleCustomEventInfo;
|
|
10
|
+
abstract handleCustomRequestEvent(eventName: string, eventInfo: GoogleCustomEventInfo, data: any, runId: string, tags?: string[], metadata?: Record<string, any>): any;
|
|
11
|
+
abstract handleCustomResponseEvent(eventName: string, eventInfo: GoogleCustomEventInfo, data: any, runId: string, tags?: string[], metadata?: Record<string, any>): any;
|
|
12
|
+
abstract handleCustomChunkEvent(eventName: string, eventInfo: GoogleCustomEventInfo, data: any, runId: string, tags?: string[], metadata?: Record<string, any>): any;
|
|
13
|
+
handleCustomEvent(eventName: string, data: any, runId: string, tags?: string[], metadata?: Record<string, any>): any;
|
|
14
|
+
}
|
|
15
|
+
declare class GoogleRequestLogger extends GoogleRequestCallbackHandler {
|
|
16
|
+
name: string;
|
|
17
|
+
shortenStringLength: number;
|
|
18
|
+
log(eventName: string, data: any, tags?: string[]): undefined;
|
|
19
|
+
handleCustomRequestEvent(eventName: string, _eventInfo: GoogleCustomEventInfo, data: any, _runId: string, tags?: string[], _metadata?: Record<string, any>): any;
|
|
20
|
+
handleCustomResponseEvent(eventName: string, _eventInfo: GoogleCustomEventInfo, data: any, _runId: string, tags?: string[], _metadata?: Record<string, any>): any;
|
|
21
|
+
handleCustomChunkEvent(eventName: string, _eventInfo: GoogleCustomEventInfo, data: any, _runId: string, tags?: string[], _metadata?: Record<string, any>): any;
|
|
22
|
+
}
|
|
23
|
+
declare class GoogleRequestRecorder extends GoogleRequestCallbackHandler {
|
|
24
|
+
name: string;
|
|
25
|
+
request: any;
|
|
26
|
+
response: any;
|
|
27
|
+
chunk: any[];
|
|
28
|
+
handleCustomRequestEvent(_eventName: string, _eventInfo: GoogleCustomEventInfo, data: any, _runId: string, _tags?: string[], _metadata?: Record<string, any>): any;
|
|
29
|
+
handleCustomResponseEvent(_eventName: string, _eventInfo: GoogleCustomEventInfo, data: any, _runId: string, _tags?: string[], _metadata?: Record<string, any>): any;
|
|
30
|
+
handleCustomChunkEvent(_eventName: string, _eventInfo: GoogleCustomEventInfo, data: any, _runId: string, _tags?: string[], _metadata?: Record<string, any>): any;
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { GoogleCustomEventInfo, GoogleRequestCallbackHandler, GoogleRequestLogger, GoogleRequestRecorder };
|
|
34
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/handler.ts
|
|
4
|
+
var GoogleRequestCallbackHandler = class extends BaseCallbackHandler {
|
|
5
|
+
customEventInfo(eventName) {
|
|
6
|
+
const names = eventName.split("-");
|
|
7
|
+
return {
|
|
8
|
+
subEvent: names[1],
|
|
9
|
+
module: names[2]
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
handleCustomEvent(eventName, data, runId, tags, metadata) {
|
|
13
|
+
if (!eventName) return void 0;
|
|
14
|
+
const eventInfo = this.customEventInfo(eventName);
|
|
15
|
+
switch (eventInfo.subEvent) {
|
|
16
|
+
case "request": return this.handleCustomRequestEvent(eventName, eventInfo, data, runId, tags, metadata);
|
|
17
|
+
case "response": return this.handleCustomResponseEvent(eventName, eventInfo, data, runId, tags, metadata);
|
|
18
|
+
case "chunk": return this.handleCustomChunkEvent(eventName, eventInfo, data, runId, tags, metadata);
|
|
19
|
+
default: console.error(`Unexpected eventInfo for ${eventName} ${JSON.stringify(eventInfo, null, 1)}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var GoogleRequestLogger = class extends GoogleRequestCallbackHandler {
|
|
24
|
+
name = "GoogleRequestLogger";
|
|
25
|
+
shortenStringLength = 40;
|
|
26
|
+
log(eventName, data, tags) {
|
|
27
|
+
const splitLen = this.shortenStringLength;
|
|
28
|
+
const half = splitLen / 2;
|
|
29
|
+
const replacer = (_key, value) => {
|
|
30
|
+
if (typeof value === "string" && splitLen > 0 && value.length > splitLen) return `${value.substring(0, half)}...${value.substring(value.length - half)}`;
|
|
31
|
+
return value;
|
|
32
|
+
};
|
|
33
|
+
const tagStr = tags ? `[${tags}]` : "[]";
|
|
34
|
+
console.log(`${eventName} ${tagStr} ${JSON.stringify(data, replacer, 1)}`);
|
|
35
|
+
}
|
|
36
|
+
handleCustomRequestEvent(eventName, _eventInfo, data, _runId, tags, _metadata) {
|
|
37
|
+
this.log(eventName, data, tags);
|
|
38
|
+
}
|
|
39
|
+
handleCustomResponseEvent(eventName, _eventInfo, data, _runId, tags, _metadata) {
|
|
40
|
+
this.log(eventName, data, tags);
|
|
41
|
+
}
|
|
42
|
+
handleCustomChunkEvent(eventName, _eventInfo, data, _runId, tags, _metadata) {
|
|
43
|
+
this.log(eventName, data, tags);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var GoogleRequestRecorder = class extends GoogleRequestCallbackHandler {
|
|
47
|
+
name = "GoogleRequestRecorder";
|
|
48
|
+
request = {};
|
|
49
|
+
response = {};
|
|
50
|
+
chunk = [];
|
|
51
|
+
handleCustomRequestEvent(_eventName, _eventInfo, data, _runId, _tags, _metadata) {
|
|
52
|
+
this.request = data;
|
|
53
|
+
}
|
|
54
|
+
handleCustomResponseEvent(_eventName, _eventInfo, data, _runId, _tags, _metadata) {
|
|
55
|
+
this.response = data;
|
|
56
|
+
}
|
|
57
|
+
handleCustomChunkEvent(_eventName, _eventInfo, data, _runId, _tags, _metadata) {
|
|
58
|
+
this.chunk.push(data);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
//#endregion
|
|
63
|
+
export { GoogleRequestCallbackHandler, GoogleRequestLogger, GoogleRequestRecorder };
|
|
64
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","names":["eventName: string","data: any","runId: string","tags?: string[]","metadata?: Record<string, any>","_key: string","value: any","_eventInfo: GoogleCustomEventInfo","_runId: string","_metadata?: Record<string, any>","_eventName: string","_tags?: string[]"],"sources":["../../src/utils/handler.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { BaseCallbackHandler } from \"@langchain/core/callbacks/base\";\n\nexport interface GoogleCustomEventInfo {\n subEvent: string;\n module: string;\n}\n\nexport abstract class GoogleRequestCallbackHandler extends BaseCallbackHandler {\n customEventInfo(eventName: string): GoogleCustomEventInfo {\n const names = eventName.split(\"-\");\n return {\n subEvent: names[1],\n module: names[2],\n };\n }\n\n abstract handleCustomRequestEvent(\n eventName: string,\n eventInfo: GoogleCustomEventInfo,\n data: any,\n runId: string,\n tags?: string[],\n metadata?: Record<string, any>\n ): any;\n\n abstract handleCustomResponseEvent(\n eventName: string,\n eventInfo: GoogleCustomEventInfo,\n data: any,\n runId: string,\n tags?: string[],\n metadata?: Record<string, any>\n ): any;\n\n abstract handleCustomChunkEvent(\n eventName: string,\n eventInfo: GoogleCustomEventInfo,\n data: any,\n runId: string,\n tags?: string[],\n metadata?: Record<string, any>\n ): any;\n\n handleCustomEvent(\n eventName: string,\n data: any,\n runId: string,\n tags?: string[],\n metadata?: Record<string, any>\n ): any {\n if (!eventName) {\n return undefined;\n }\n const eventInfo = this.customEventInfo(eventName);\n switch (eventInfo.subEvent) {\n case \"request\":\n return this.handleCustomRequestEvent(\n eventName,\n eventInfo,\n data,\n runId,\n tags,\n metadata\n );\n case \"response\":\n return this.handleCustomResponseEvent(\n eventName,\n eventInfo,\n data,\n runId,\n tags,\n metadata\n );\n case \"chunk\":\n return this.handleCustomChunkEvent(\n eventName,\n eventInfo,\n data,\n runId,\n tags,\n metadata\n );\n default:\n console.error(\n `Unexpected eventInfo for ${eventName} ${JSON.stringify(\n eventInfo,\n null,\n 1\n )}`\n );\n }\n }\n}\n\nexport class GoogleRequestLogger extends GoogleRequestCallbackHandler {\n name: string = \"GoogleRequestLogger\";\n\n shortenStringLength = 40;\n\n log(eventName: string, data: any, tags?: string[]): undefined {\n const splitLen = this.shortenStringLength;\n const half = splitLen / 2;\n const replacer = (_key: string, value: any) => {\n if (\n typeof value === \"string\" &&\n splitLen > 0 &&\n value.length > splitLen\n ) {\n return `${value.substring(0, half)}...${value.substring(\n value.length - half\n )}`;\n }\n return value;\n };\n const tagStr = tags ? `[${tags}]` : \"[]\";\n console.log(`${eventName} ${tagStr} ${JSON.stringify(data, replacer, 1)}`);\n }\n\n handleCustomRequestEvent(\n eventName: string,\n _eventInfo: GoogleCustomEventInfo,\n data: any,\n _runId: string,\n tags?: string[],\n _metadata?: Record<string, any>\n ): any {\n this.log(eventName, data, tags);\n }\n\n handleCustomResponseEvent(\n eventName: string,\n _eventInfo: GoogleCustomEventInfo,\n data: any,\n _runId: string,\n tags?: string[],\n _metadata?: Record<string, any>\n ): any {\n this.log(eventName, data, tags);\n }\n\n handleCustomChunkEvent(\n eventName: string,\n _eventInfo: GoogleCustomEventInfo,\n data: any,\n _runId: string,\n tags?: string[],\n _metadata?: Record<string, any>\n ): any {\n this.log(eventName, data, tags);\n }\n}\n\nexport class GoogleRequestRecorder extends GoogleRequestCallbackHandler {\n name = \"GoogleRequestRecorder\";\n\n request: any = {};\n\n response: any = {};\n\n chunk: any[] = [];\n\n handleCustomRequestEvent(\n _eventName: string,\n _eventInfo: GoogleCustomEventInfo,\n data: any,\n _runId: string,\n _tags?: string[],\n _metadata?: Record<string, any>\n ): any {\n this.request = data;\n }\n\n handleCustomResponseEvent(\n _eventName: string,\n _eventInfo: GoogleCustomEventInfo,\n data: any,\n _runId: string,\n _tags?: string[],\n _metadata?: Record<string, any>\n ): any {\n this.response = data;\n }\n\n handleCustomChunkEvent(\n _eventName: string,\n _eventInfo: GoogleCustomEventInfo,\n data: any,\n _runId: string,\n _tags?: string[],\n _metadata?: Record<string, any>\n ): any {\n this.chunk.push(data);\n }\n}\n"],"mappings":";;;AAQA,IAAsB,+BAAtB,cAA2D,oBAAoB;CAC7E,gBAAgBA,WAA0C;EACxD,MAAM,QAAQ,UAAU,MAAM,IAAI;AAClC,SAAO;GACL,UAAU,MAAM;GAChB,QAAQ,MAAM;EACf;CACF;CA6BD,kBACEA,WACAC,MACAC,OACAC,MACAC,UACK;AACL,MAAI,CAAC,UACH,QAAO;EAET,MAAM,YAAY,KAAK,gBAAgB,UAAU;AACjD,UAAQ,UAAU,UAAlB;GACE,KAAK,UACH,QAAO,KAAK,yBACV,WACA,WACA,MACA,OACA,MACA,SACD;GACH,KAAK,WACH,QAAO,KAAK,0BACV,WACA,WACA,MACA,OACA,MACA,SACD;GACH,KAAK,QACH,QAAO,KAAK,uBACV,WACA,WACA,MACA,OACA,MACA,SACD;GACH,SACE,QAAQ,MACN,CAAC,yBAAyB,EAAE,UAAU,CAAC,EAAE,KAAK,UAC5C,WACA,MACA,EACD,EAAE,CACJ;EACJ;CACF;AACF;AAED,IAAa,sBAAb,cAAyC,6BAA6B;CACpE,OAAe;CAEf,sBAAsB;CAEtB,IAAIJ,WAAmBC,MAAWE,MAA4B;EAC5D,MAAM,WAAW,KAAK;EACtB,MAAM,OAAO,WAAW;EACxB,MAAM,WAAW,CAACE,MAAcC,UAAe;AAC7C,OACE,OAAO,UAAU,YACjB,WAAW,KACX,MAAM,SAAS,SAEf,QAAO,GAAG,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,UAC5C,MAAM,SAAS,KAChB,EAAE;AAEL,UAAO;EACR;EACD,MAAM,SAAS,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG;EACpC,QAAQ,IAAI,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,UAAU,MAAM,UAAU,EAAE,EAAE,CAAC;CAC3E;CAED,yBACEN,WACAO,YACAN,MACAO,QACAL,MACAM,WACK;EACL,KAAK,IAAI,WAAW,MAAM,KAAK;CAChC;CAED,0BACET,WACAO,YACAN,MACAO,QACAL,MACAM,WACK;EACL,KAAK,IAAI,WAAW,MAAM,KAAK;CAChC;CAED,uBACET,WACAO,YACAN,MACAO,QACAL,MACAM,WACK;EACL,KAAK,IAAI,WAAW,MAAM,KAAK;CAChC;AACF;AAED,IAAa,wBAAb,cAA2C,6BAA6B;CACtE,OAAO;CAEP,UAAe,CAAE;CAEjB,WAAgB,CAAE;CAElB,QAAe,CAAE;CAEjB,yBACEC,YACAH,YACAN,MACAO,QACAG,OACAF,WACK;EACL,KAAK,UAAU;CAChB;CAED,0BACEC,YACAH,YACAN,MACAO,QACAG,OACAF,WACK;EACL,KAAK,WAAW;CACjB;CAED,uBACEC,YACAH,YACAN,MACAO,QACAG,OACAF,WACK;EACL,KAAK,MAAM,KAAK,KAAK;CACtB;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.cjs","names":["fn: () => T"],"sources":["../../src/utils/misc.ts"],"sourcesContent":["/**\n * Immediately invokes the provided function and returns its result.\n */\nexport const iife = <T>(fn: () => T): T => fn();\n\n/**\n * Type utility that recursively resolves object shape, removing type aliases,\n * intersections, and unions for easier type introspection and error output.\n *\n * Usage:\n * type Input = { a: string } & { b: number };\n * type Output = Prettify<Input>; // { a: string; b: number }\n */\nexport type Prettify<T> = T extends object\n ? { [K in keyof T]: Prettify<T[K]> }\n : T;\n"],"mappings":";;;;;AAGA,MAAa,OAAO,CAAIA,OAAmB,IAAI"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/utils/misc.d.ts
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Type utility that recursively resolves object shape, removing type aliases,
|
|
5
|
+
* intersections, and unions for easier type introspection and error output.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* type Input = { a: string } & { b: number };
|
|
9
|
+
* type Output = Prettify<Input>; // { a: string; b: number }
|
|
10
|
+
*/
|
|
11
|
+
type Prettify<T> = T extends object ? { [K in keyof T]: Prettify<T[K]> } : T;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Prettify };
|
|
14
|
+
//# sourceMappingURL=misc.d.cts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/utils/misc.d.ts
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Type utility that recursively resolves object shape, removing type aliases,
|
|
5
|
+
* intersections, and unions for easier type introspection and error output.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* type Input = { a: string } & { b: number };
|
|
9
|
+
* type Output = Prettify<Input>; // { a: string; b: number }
|
|
10
|
+
*/
|
|
11
|
+
type Prettify<T> = T extends object ? { [K in keyof T]: Prettify<T[K]> } : T;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Prettify };
|
|
14
|
+
//# sourceMappingURL=misc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","names":["fn: () => T"],"sources":["../../src/utils/misc.ts"],"sourcesContent":["/**\n * Immediately invokes the provided function and returns its result.\n */\nexport const iife = <T>(fn: () => T): T => fn();\n\n/**\n * Type utility that recursively resolves object shape, removing type aliases,\n * intersections, and unions for easier type introspection and error output.\n *\n * Usage:\n * type Input = { a: string } & { b: number };\n * type Output = Prettify<Input>; // { a: string; b: number }\n */\nexport type Prettify<T> = T extends object\n ? { [K in keyof T]: Prettify<T[K]> }\n : T;\n"],"mappings":";;;;AAGA,MAAa,OAAO,CAAIA,OAAmB,IAAI"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
//#region src/utils/stream.ts
|
|
3
|
+
/**
|
|
4
|
+
* A transform stream that safely parses JSON from EventSource messages.
|
|
5
|
+
*
|
|
6
|
+
* This stream takes EventSourceMessage objects and attempts to parse the `data`
|
|
7
|
+
* field as JSON. If parsing fails, it passes through the original message.
|
|
8
|
+
*/
|
|
9
|
+
var SafeJsonEventParserStream = class extends TransformStream {
|
|
10
|
+
constructor() {
|
|
11
|
+
super({ transform(chunk, controller) {
|
|
12
|
+
try {
|
|
13
|
+
if (chunk.data) {
|
|
14
|
+
const parsed = JSON.parse(chunk.data);
|
|
15
|
+
controller.enqueue(parsed);
|
|
16
|
+
} else controller.enqueue(null);
|
|
17
|
+
} catch {
|
|
18
|
+
controller.enqueue(null);
|
|
19
|
+
}
|
|
20
|
+
} });
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.SafeJsonEventParserStream = SafeJsonEventParserStream;
|
|
26
|
+
//# sourceMappingURL=stream.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.cjs","names":[],"sources":["../../src/utils/stream.ts"],"sourcesContent":["import { EventSourceMessage } from \"eventsource-parser/stream\";\n\n/**\n * A transform stream that safely parses JSON from EventSource messages.\n *\n * This stream takes EventSourceMessage objects and attempts to parse the `data`\n * field as JSON. If parsing fails, it passes through the original message.\n */\nexport class SafeJsonEventParserStream<T> extends TransformStream<\n EventSourceMessage,\n T | null\n> {\n constructor() {\n super({\n transform(chunk, controller) {\n try {\n if (chunk.data) {\n const parsed = JSON.parse(chunk.data);\n controller.enqueue(parsed);\n } else {\n controller.enqueue(null);\n }\n } catch {\n // If parsing fails, enqueue null to indicate invalid JSON\n controller.enqueue(null);\n }\n },\n });\n }\n}\n"],"mappings":";;;;;;;;AAQA,IAAa,4BAAb,cAAkD,gBAGhD;CACA,cAAc;EACZ,MAAM,EACJ,UAAU,OAAO,YAAY;AAC3B,OAAI;AACF,QAAI,MAAM,MAAM;KACd,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;KACrC,WAAW,QAAQ,OAAO;IAC3B,OACC,WAAW,QAAQ,KAAK;GAE3B,QAAO;IAEN,WAAW,QAAQ,KAAK;GACzB;EACF,EACF,EAAC;CACH;AACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/utils/stream.ts
|
|
2
|
+
/**
|
|
3
|
+
* A transform stream that safely parses JSON from EventSource messages.
|
|
4
|
+
*
|
|
5
|
+
* This stream takes EventSourceMessage objects and attempts to parse the `data`
|
|
6
|
+
* field as JSON. If parsing fails, it passes through the original message.
|
|
7
|
+
*/
|
|
8
|
+
var SafeJsonEventParserStream = class extends TransformStream {
|
|
9
|
+
constructor() {
|
|
10
|
+
super({ transform(chunk, controller) {
|
|
11
|
+
try {
|
|
12
|
+
if (chunk.data) {
|
|
13
|
+
const parsed = JSON.parse(chunk.data);
|
|
14
|
+
controller.enqueue(parsed);
|
|
15
|
+
} else controller.enqueue(null);
|
|
16
|
+
} catch {
|
|
17
|
+
controller.enqueue(null);
|
|
18
|
+
}
|
|
19
|
+
} });
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { SafeJsonEventParserStream };
|
|
25
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","names":[],"sources":["../../src/utils/stream.ts"],"sourcesContent":["import { EventSourceMessage } from \"eventsource-parser/stream\";\n\n/**\n * A transform stream that safely parses JSON from EventSource messages.\n *\n * This stream takes EventSourceMessage objects and attempts to parse the `data`\n * field as JSON. If parsing fails, it passes through the original message.\n */\nexport class SafeJsonEventParserStream<T> extends TransformStream<\n EventSourceMessage,\n T | null\n> {\n constructor() {\n super({\n transform(chunk, controller) {\n try {\n if (chunk.data) {\n const parsed = JSON.parse(chunk.data);\n controller.enqueue(parsed);\n } else {\n controller.enqueue(null);\n }\n } catch {\n // If parsing fails, enqueue null to indicate invalid JSON\n controller.enqueue(null);\n }\n },\n });\n }\n}\n"],"mappings":";;;;;;;AAQA,IAAa,4BAAb,cAAkD,gBAGhD;CACA,cAAc;EACZ,MAAM,EACJ,UAAU,OAAO,YAAY;AAC3B,OAAI;AACF,QAAI,MAAM,MAAM;KACd,MAAM,SAAS,KAAK,MAAM,MAAM,KAAK;KACrC,WAAW,QAAQ,OAAO;IAC3B,OACC,WAAW,QAAQ,KAAK;GAE3B,QAAO;IAEN,WAAW,QAAQ,KAAK;GACzB;EACF,EACF,EAAC;CACH;AACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@langchain/google",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Google integrations for LangChain.js",
|
|
5
|
+
"author": "LangChain",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"engines": {
|
|
9
|
+
"node": ">=20"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git@github.com:langchain-ai/langchainjs.git",
|
|
14
|
+
"directory": "libs/providers/langchain-google"
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"eventsource-parser": "^3.0.6",
|
|
18
|
+
"google-auth-library": "^10.5.0",
|
|
19
|
+
"jose": "^6.1.2"
|
|
20
|
+
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@langchain/core": "^1.0.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@tsconfig/recommended": "^1.0.10",
|
|
26
|
+
"dpdm": "^3.14.0",
|
|
27
|
+
"eslint": "^9.34.0",
|
|
28
|
+
"prettier": "^2.8.3",
|
|
29
|
+
"sparktype": "^0.1.3",
|
|
30
|
+
"typescript": "~5.8.3",
|
|
31
|
+
"vitest": "^3.2.4",
|
|
32
|
+
"zod": "^3.25.76 || ^4",
|
|
33
|
+
"zod-to-json-schema": "^3.24.6",
|
|
34
|
+
"@langchain/eslint": "0.1.1",
|
|
35
|
+
"@langchain/standard-tests": "0.0.23",
|
|
36
|
+
"@langchain/core": "^1.1.23"
|
|
37
|
+
},
|
|
38
|
+
"publishConfig": {
|
|
39
|
+
"access": "public"
|
|
40
|
+
},
|
|
41
|
+
"exports": {
|
|
42
|
+
".": {
|
|
43
|
+
"input": "./src/index.ts",
|
|
44
|
+
"require": {
|
|
45
|
+
"types": "./dist/index.d.cts",
|
|
46
|
+
"default": "./dist/index.cjs"
|
|
47
|
+
},
|
|
48
|
+
"import": {
|
|
49
|
+
"types": "./dist/index.d.ts",
|
|
50
|
+
"default": "./dist/index.js"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"./node": {
|
|
54
|
+
"input": "./src/node.ts",
|
|
55
|
+
"require": {
|
|
56
|
+
"types": "./dist/node.d.cts",
|
|
57
|
+
"default": "./dist/node.cjs"
|
|
58
|
+
},
|
|
59
|
+
"import": {
|
|
60
|
+
"types": "./dist/node.d.ts",
|
|
61
|
+
"default": "./dist/node.js"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"./package.json": "./package.json"
|
|
65
|
+
},
|
|
66
|
+
"files": [
|
|
67
|
+
"dist/",
|
|
68
|
+
"CHANGELOG.md",
|
|
69
|
+
"README.md",
|
|
70
|
+
"LICENSE"
|
|
71
|
+
],
|
|
72
|
+
"main": "./dist/index.cjs",
|
|
73
|
+
"module": "./dist/index.js",
|
|
74
|
+
"types": "./dist/index.d.cts",
|
|
75
|
+
"scripts": {
|
|
76
|
+
"build": "turbo build:compile --filter @langchain/google --output-logs new-only",
|
|
77
|
+
"build:compile": "tsdown",
|
|
78
|
+
"lint:eslint": "eslint --cache src/",
|
|
79
|
+
"lint:dpdm": "dpdm --skip-dynamic-imports circular --exit-code circular:1 --no-warning --no-tree src/**/*.ts",
|
|
80
|
+
"lint": "pnpm lint:eslint && pnpm lint:dpdm",
|
|
81
|
+
"lint:fix": "pnpm lint:eslint --fix && pnpm lint:dpdm",
|
|
82
|
+
"clean": "rm -rf .turbo dist/",
|
|
83
|
+
"test": "vitest run",
|
|
84
|
+
"test:watch": "vitest",
|
|
85
|
+
"test:int": "vitest run --mode int",
|
|
86
|
+
"test:standard:unit": "vitest run --mode standard-unit",
|
|
87
|
+
"test:standard:int": "vitest run --mode standard-int",
|
|
88
|
+
"test:standard": "pnpm test:standard:unit && pnpm test:standard:int",
|
|
89
|
+
"format": "prettier --config .prettierrc --write \"src\"",
|
|
90
|
+
"format:check": "prettier --config .prettierrc --check \"src\"",
|
|
91
|
+
"typegen": "pnpm run typegen:sparktype && pnpm run typegen:profiles",
|
|
92
|
+
"typegen:sparktype": "sparktype generate",
|
|
93
|
+
"typegen:profiles": "pnpm --filter @langchain/model-profiles make --config profiles.toml",
|
|
94
|
+
"typegen:check": "sparktype check"
|
|
95
|
+
}
|
|
96
|
+
}
|