@langchain/google-common 2.1.4 → 2.1.6-dev-1767748783694
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 +7 -0
- package/dist/chat_models.cjs.map +1 -1
- package/dist/chat_models.js.map +1 -1
- package/dist/connection.cjs.map +1 -1
- package/dist/connection.js.map +1 -1
- package/dist/embeddings.cjs.map +1 -1
- package/dist/embeddings.js.map +1 -1
- package/dist/experimental/media.cjs.map +1 -1
- package/dist/experimental/media.d.cts.map +1 -1
- package/dist/experimental/media.js.map +1 -1
- package/dist/utils/gemini.cjs.map +1 -1
- package/dist/utils/gemini.js.map +1 -1
- package/dist/utils/zod_to_gemini_parameters.cjs.map +1 -1
- package/dist/utils/zod_to_gemini_parameters.js.map +1 -1
- package/package.json +4 -5
- package/experimental/media.cjs +0 -1
- package/experimental/media.d.cts +0 -1
- package/experimental/media.d.ts +0 -1
- package/experimental/media.js +0 -1
- package/experimental/utils/media_core.cjs +0 -1
- package/experimental/utils/media_core.d.cts +0 -1
- package/experimental/utils/media_core.d.ts +0 -1
- package/experimental/utils/media_core.js +0 -1
- package/types.cjs +0 -1
- package/types.d.cts +0 -1
- package/types.d.ts +0 -1
- package/types.js +0 -1
- package/utils.cjs +0 -1
- package/utils.d.cts +0 -1
- package/utils.d.ts +0 -1
- package/utils.js +0 -1
package/dist/embeddings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.js","names":["fields: BaseGoogleEmbeddingsParams<AuthOptions> | undefined","caller: AsyncCaller","client: GoogleAbstractedClient","streaming: boolean","input: VertexEmbeddingsInstance[]","parameters: VertexEmbeddingsParameters","parts: GeminiPartText[]","instance: VertexEmbeddingsInstance","ret: AIStudioEmbeddingsRequest","key: keyof AIStudioEmbeddingsRequest","fields: BaseGoogleEmbeddingsParams<AuthOptions>","apiKey: string","fields?: GoogleConnectionParams<AuthOptions>","ret: VertexEmbeddingsParameters","key: keyof VertexEmbeddingsParameters","response: VertexEmbeddingsResponse","predictions: VertexEmbeddingsResponsePrediction[]","prediction: VertexEmbeddingsResponsePrediction","response: AIStudioEmbeddingsResponse","value: number[]","response: GoogleEmbeddingsResponse","documents: string[]","instanceChunks: VertexEmbeddingsInstance[][]","result: number[][]","document: string"],"sources":["../src/embeddings.ts"],"sourcesContent":["import { Embeddings } from \"@langchain/core/embeddings\";\nimport {\n AsyncCaller,\n AsyncCallerCallOptions,\n} from \"@langchain/core/utils/async_caller\";\nimport { chunkArray } from \"@langchain/core/utils/chunk_array\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\n\nimport { GoogleAIConnection } from \"./connection.js\";\nimport { ApiKeyGoogleAuth, GoogleAbstractedClient } from \"./auth.js\";\nimport {\n BaseGoogleEmbeddingsOptions,\n BaseGoogleEmbeddingsParams,\n GoogleConnectionParams,\n VertexEmbeddingsInstance,\n GoogleEmbeddingsResponse,\n VertexEmbeddingsParameters,\n GoogleEmbeddingsRequest,\n VertexEmbeddingsResponse,\n AIStudioEmbeddingsResponse,\n VertexEmbeddingsResponsePrediction,\n AIStudioEmbeddingsRequest,\n GeminiPartText,\n VertexEmbeddingsRequest,\n} from \"./types.js\";\n\nclass EmbeddingsConnection<\n CallOptions extends AsyncCallerCallOptions,\n AuthOptions\n> extends GoogleAIConnection<\n CallOptions,\n VertexEmbeddingsInstance[],\n AuthOptions,\n GoogleEmbeddingsResponse\n> {\n convertSystemMessageToHumanContent: boolean | undefined;\n\n constructor(\n fields: BaseGoogleEmbeddingsParams<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient,\n streaming: boolean\n ) {\n super(fields, caller, client, streaming);\n }\n\n buildUrlMethodAiStudio(): string {\n return \"embedContent\";\n }\n\n buildUrlMethodVertex(): string {\n return \"predict\";\n }\n\n async buildUrlMethod(): Promise<string> {\n switch (this.platform) {\n case \"gcp\":\n return this.buildUrlMethodVertex();\n case \"gai\":\n return this.buildUrlMethodAiStudio();\n default:\n throw new Error(\n `Unknown platform when building method: ${this.platform}`\n );\n }\n }\n\n get modelPublisher(): string {\n // All the embedding models are currently published by \"google\"\n return \"google\";\n }\n\n formatDataAiStudio(\n input: VertexEmbeddingsInstance[],\n parameters: VertexEmbeddingsParameters\n ): AIStudioEmbeddingsRequest {\n const parts: GeminiPartText[] = input.map(\n (instance: VertexEmbeddingsInstance) => ({\n text: instance.content,\n })\n );\n const content = {\n parts,\n };\n const outputDimensionality = parameters?.outputDimensionality;\n\n const ret: AIStudioEmbeddingsRequest = {\n content,\n outputDimensionality,\n };\n\n // Remove undefined attributes\n let key: keyof AIStudioEmbeddingsRequest;\n for (key in ret) {\n if (ret[key] === undefined) {\n delete ret[key];\n }\n }\n\n return ret;\n }\n\n formatDataVertex(\n input: VertexEmbeddingsInstance[],\n parameters: VertexEmbeddingsParameters\n ): VertexEmbeddingsRequest {\n return {\n instances: input,\n parameters,\n };\n }\n\n async formatData(\n input: VertexEmbeddingsInstance[],\n parameters: VertexEmbeddingsParameters\n ): Promise<GoogleEmbeddingsRequest> {\n switch (this.platform) {\n case \"gcp\":\n return this.formatDataVertex(input, parameters);\n case \"gai\":\n return this.formatDataAiStudio(input, parameters);\n default:\n throw new Error(\n `Unknown platform to format embeddings ${this.platform}`\n );\n }\n }\n}\n\n/**\n * Enables calls to Google APIs for generating\n * text embeddings.\n */\nexport abstract class BaseGoogleEmbeddings<AuthOptions>\n extends Embeddings\n implements BaseGoogleEmbeddingsParams<AuthOptions>\n{\n model: string;\n\n dimensions?: number;\n\n private connection: EmbeddingsConnection<\n BaseGoogleEmbeddingsOptions,\n AuthOptions\n >;\n\n constructor(fields: BaseGoogleEmbeddingsParams<AuthOptions>) {\n super(fields);\n\n this.model = fields.model;\n this.dimensions = fields.dimensions ?? fields.outputDimensionality;\n\n this.connection = new EmbeddingsConnection(\n { ...fields, ...this },\n this.caller,\n this.buildClient(fields),\n false\n );\n }\n\n abstract buildAbstractedClient(\n fields?: GoogleConnectionParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(\n fields?: GoogleConnectionParams<AuthOptions>\n ): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: GoogleConnectionParams<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n return this.buildAbstractedClient(fields);\n }\n }\n\n buildParameters(): VertexEmbeddingsParameters {\n const ret: VertexEmbeddingsParameters = {\n outputDimensionality: this.dimensions,\n };\n\n // Remove undefined attributes\n let key: keyof VertexEmbeddingsParameters;\n for (key in ret) {\n if (ret[key] === undefined) {\n delete ret[key];\n }\n }\n\n return ret;\n }\n\n vertexResponseToValues(response: VertexEmbeddingsResponse): number[][] {\n const predictions: VertexEmbeddingsResponsePrediction[] =\n response?.data?.predictions ?? [];\n return predictions.map(\n (prediction: VertexEmbeddingsResponsePrediction): number[] =>\n prediction.embeddings.values\n );\n }\n\n aiStudioResponseToValues(response: AIStudioEmbeddingsResponse): number[][] {\n const value: number[] = response?.data?.embedding?.values ?? [];\n return [value];\n }\n\n responseToValues(response: GoogleEmbeddingsResponse): number[][] {\n switch (this.connection.platform) {\n case \"gcp\":\n return this.vertexResponseToValues(\n response as VertexEmbeddingsResponse\n );\n case \"gai\":\n return this.aiStudioResponseToValues(\n response as AIStudioEmbeddingsResponse\n );\n default:\n throw new Error(\n `Unknown response platform: ${this.connection.platform}`\n );\n }\n }\n\n /**\n * Takes an array of documents as input and returns a promise that\n * resolves to a 2D array of embeddings for each document. It splits the\n * documents into chunks and makes requests to the Google Vertex AI API to\n * generate embeddings.\n * @param documents An array of documents to be embedded.\n * @returns A promise that resolves to a 2D array of embeddings for each document.\n */\n async embedDocuments(documents: string[]): Promise<number[][]> {\n // Vertex \"text-\" models could do up 5 documents at once,\n // but the \"gemini-embedding-001\" can only do 1.\n // AI Studio can only do a chunk size of 1.\n // TODO: Make this configurable\n const chunkSize = 1;\n const instanceChunks: VertexEmbeddingsInstance[][] = chunkArray(\n documents.map((document) => ({\n content: document,\n })),\n chunkSize\n );\n const parameters: VertexEmbeddingsParameters = this.buildParameters();\n const options = {};\n const responses = await Promise.all(\n instanceChunks.map((instances) =>\n this.connection.request(instances, parameters, options)\n )\n );\n const result: number[][] =\n responses?.map((response) => this.responseToValues(response)).flat() ??\n [];\n return result;\n }\n\n /**\n * Takes a document as input and returns a promise that resolves to an\n * embedding for the document. It calls the embedDocuments method with the\n * document as the input.\n * @param document A document to be embedded.\n * @returns A promise that resolves to an embedding for the document.\n */\n async embedQuery(document: string): Promise<number[]> {\n const data = await this.embedDocuments([document]);\n return data[0];\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embeddings.js","names":["fields: BaseGoogleEmbeddingsParams<AuthOptions> | undefined","caller: AsyncCaller","client: GoogleAbstractedClient","streaming: boolean","input: VertexEmbeddingsInstance[]","parameters: VertexEmbeddingsParameters","parts: GeminiPartText[]","instance: VertexEmbeddingsInstance","ret: AIStudioEmbeddingsRequest","key: keyof AIStudioEmbeddingsRequest","fields: BaseGoogleEmbeddingsParams<AuthOptions>","apiKey: string","fields?: GoogleConnectionParams<AuthOptions>","ret: VertexEmbeddingsParameters","key: keyof VertexEmbeddingsParameters","response: VertexEmbeddingsResponse","predictions: VertexEmbeddingsResponsePrediction[]","prediction: VertexEmbeddingsResponsePrediction","response: AIStudioEmbeddingsResponse","value: number[]","response: GoogleEmbeddingsResponse","documents: string[]","instanceChunks: VertexEmbeddingsInstance[][]","result: number[][]","document: string"],"sources":["../src/embeddings.ts"],"sourcesContent":["import { Embeddings } from \"@langchain/core/embeddings\";\nimport {\n AsyncCaller,\n AsyncCallerCallOptions,\n} from \"@langchain/core/utils/async_caller\";\nimport { chunkArray } from \"@langchain/core/utils/chunk_array\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\n\nimport { GoogleAIConnection } from \"./connection.js\";\nimport { ApiKeyGoogleAuth, GoogleAbstractedClient } from \"./auth.js\";\nimport {\n BaseGoogleEmbeddingsOptions,\n BaseGoogleEmbeddingsParams,\n GoogleConnectionParams,\n VertexEmbeddingsInstance,\n GoogleEmbeddingsResponse,\n VertexEmbeddingsParameters,\n GoogleEmbeddingsRequest,\n VertexEmbeddingsResponse,\n AIStudioEmbeddingsResponse,\n VertexEmbeddingsResponsePrediction,\n AIStudioEmbeddingsRequest,\n GeminiPartText,\n VertexEmbeddingsRequest,\n} from \"./types.js\";\n\nclass EmbeddingsConnection<\n CallOptions extends AsyncCallerCallOptions,\n AuthOptions,\n> extends GoogleAIConnection<\n CallOptions,\n VertexEmbeddingsInstance[],\n AuthOptions,\n GoogleEmbeddingsResponse\n> {\n convertSystemMessageToHumanContent: boolean | undefined;\n\n constructor(\n fields: BaseGoogleEmbeddingsParams<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient,\n streaming: boolean\n ) {\n super(fields, caller, client, streaming);\n }\n\n buildUrlMethodAiStudio(): string {\n return \"embedContent\";\n }\n\n buildUrlMethodVertex(): string {\n return \"predict\";\n }\n\n async buildUrlMethod(): Promise<string> {\n switch (this.platform) {\n case \"gcp\":\n return this.buildUrlMethodVertex();\n case \"gai\":\n return this.buildUrlMethodAiStudio();\n default:\n throw new Error(\n `Unknown platform when building method: ${this.platform}`\n );\n }\n }\n\n get modelPublisher(): string {\n // All the embedding models are currently published by \"google\"\n return \"google\";\n }\n\n formatDataAiStudio(\n input: VertexEmbeddingsInstance[],\n parameters: VertexEmbeddingsParameters\n ): AIStudioEmbeddingsRequest {\n const parts: GeminiPartText[] = input.map(\n (instance: VertexEmbeddingsInstance) => ({\n text: instance.content,\n })\n );\n const content = {\n parts,\n };\n const outputDimensionality = parameters?.outputDimensionality;\n\n const ret: AIStudioEmbeddingsRequest = {\n content,\n outputDimensionality,\n };\n\n // Remove undefined attributes\n let key: keyof AIStudioEmbeddingsRequest;\n for (key in ret) {\n if (ret[key] === undefined) {\n delete ret[key];\n }\n }\n\n return ret;\n }\n\n formatDataVertex(\n input: VertexEmbeddingsInstance[],\n parameters: VertexEmbeddingsParameters\n ): VertexEmbeddingsRequest {\n return {\n instances: input,\n parameters,\n };\n }\n\n async formatData(\n input: VertexEmbeddingsInstance[],\n parameters: VertexEmbeddingsParameters\n ): Promise<GoogleEmbeddingsRequest> {\n switch (this.platform) {\n case \"gcp\":\n return this.formatDataVertex(input, parameters);\n case \"gai\":\n return this.formatDataAiStudio(input, parameters);\n default:\n throw new Error(\n `Unknown platform to format embeddings ${this.platform}`\n );\n }\n }\n}\n\n/**\n * Enables calls to Google APIs for generating\n * text embeddings.\n */\nexport abstract class BaseGoogleEmbeddings<AuthOptions>\n extends Embeddings\n implements BaseGoogleEmbeddingsParams<AuthOptions>\n{\n model: string;\n\n dimensions?: number;\n\n private connection: EmbeddingsConnection<\n BaseGoogleEmbeddingsOptions,\n AuthOptions\n >;\n\n constructor(fields: BaseGoogleEmbeddingsParams<AuthOptions>) {\n super(fields);\n\n this.model = fields.model;\n this.dimensions = fields.dimensions ?? fields.outputDimensionality;\n\n this.connection = new EmbeddingsConnection(\n { ...fields, ...this },\n this.caller,\n this.buildClient(fields),\n false\n );\n }\n\n abstract buildAbstractedClient(\n fields?: GoogleConnectionParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(\n fields?: GoogleConnectionParams<AuthOptions>\n ): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: GoogleConnectionParams<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n return this.buildAbstractedClient(fields);\n }\n }\n\n buildParameters(): VertexEmbeddingsParameters {\n const ret: VertexEmbeddingsParameters = {\n outputDimensionality: this.dimensions,\n };\n\n // Remove undefined attributes\n let key: keyof VertexEmbeddingsParameters;\n for (key in ret) {\n if (ret[key] === undefined) {\n delete ret[key];\n }\n }\n\n return ret;\n }\n\n vertexResponseToValues(response: VertexEmbeddingsResponse): number[][] {\n const predictions: VertexEmbeddingsResponsePrediction[] =\n response?.data?.predictions ?? [];\n return predictions.map(\n (prediction: VertexEmbeddingsResponsePrediction): number[] =>\n prediction.embeddings.values\n );\n }\n\n aiStudioResponseToValues(response: AIStudioEmbeddingsResponse): number[][] {\n const value: number[] = response?.data?.embedding?.values ?? [];\n return [value];\n }\n\n responseToValues(response: GoogleEmbeddingsResponse): number[][] {\n switch (this.connection.platform) {\n case \"gcp\":\n return this.vertexResponseToValues(\n response as VertexEmbeddingsResponse\n );\n case \"gai\":\n return this.aiStudioResponseToValues(\n response as AIStudioEmbeddingsResponse\n );\n default:\n throw new Error(\n `Unknown response platform: ${this.connection.platform}`\n );\n }\n }\n\n /**\n * Takes an array of documents as input and returns a promise that\n * resolves to a 2D array of embeddings for each document. It splits the\n * documents into chunks and makes requests to the Google Vertex AI API to\n * generate embeddings.\n * @param documents An array of documents to be embedded.\n * @returns A promise that resolves to a 2D array of embeddings for each document.\n */\n async embedDocuments(documents: string[]): Promise<number[][]> {\n // Vertex \"text-\" models could do up 5 documents at once,\n // but the \"gemini-embedding-001\" can only do 1.\n // AI Studio can only do a chunk size of 1.\n // TODO: Make this configurable\n const chunkSize = 1;\n const instanceChunks: VertexEmbeddingsInstance[][] = chunkArray(\n documents.map((document) => ({\n content: document,\n })),\n chunkSize\n );\n const parameters: VertexEmbeddingsParameters = this.buildParameters();\n const options = {};\n const responses = await Promise.all(\n instanceChunks.map((instances) =>\n this.connection.request(instances, parameters, options)\n )\n );\n const result: number[][] =\n responses?.map((response) => this.responseToValues(response)).flat() ??\n [];\n return result;\n }\n\n /**\n * Takes a document as input and returns a promise that resolves to an\n * embedding for the document. It calls the embedDocuments method with the\n * document as the input.\n * @param document A document to be embedded.\n * @returns A promise that resolves to an embedding for the document.\n */\n async embedQuery(document: string): Promise<number[]> {\n const data = await this.embedDocuments([document]);\n return data[0];\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.cjs","names":["GoogleHostConnection","fields: GoogleConnectionParams<AuthOptions> | undefined","caller: AsyncCaller","client: GoogleAbstractedClient","separator: string","data: MediaBlob","metadata: Record<string, unknown>","options: CallOptions","GoogleRawConnection","BlobStore","fields?: BlobStoreGoogleParams<AuthOptions>","AsyncCaller","keyValuePair: [string, MediaBlob]","keyValuePairs: [string, MediaBlob][]","key: string","MediaBlob","keys: string[]","_prefix: string | undefined","uri: string","fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>","fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","fields: GoogleCloudStorageRawConnectionParams<AuthOptions>","fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>","params: GoogleCloudStorageUploadConnectionParams<AuthOptions>","ret: GoogleCloudStorageObject","params: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","params: GoogleCloudStorageRawConnectionParams<AuthOptions>","value: string","field: string","fields: AIStudioFileDownloadConnectionParams<AuthOptions>","fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>","params: BlobStoreAIStudioFileBaseParams<AuthOptions>","path: string","apiKey: string","ApiKeyGoogleAuth","params: AIStudioFileDownloadConnectionParams<AuthOptions>","_key: string","data: MediaBlobData"],"sources":["../../src/experimental/media.ts"],"sourcesContent":["import {\n AsyncCaller,\n AsyncCallerCallOptions,\n AsyncCallerParams,\n} from \"@langchain/core/utils/async_caller\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n MediaBlob,\n BlobStore,\n BlobStoreOptions,\n MediaBlobData,\n} from \"./utils/media_core.js\";\nimport {\n GoogleConnectionParams,\n GoogleRawResponse,\n GoogleResponse,\n} from \"../types.js\";\nimport { GoogleHostConnection, GoogleRawConnection } from \"../connection.js\";\nimport {\n ApiKeyGoogleAuth,\n GoogleAbstractedClient,\n GoogleAbstractedClientOpsMethod,\n} from \"../auth.js\";\n\nexport interface GoogleUploadConnectionParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions> {}\n\nexport abstract class GoogleMultipartUploadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n constructor(\n fields: GoogleConnectionParams<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n }\n\n async _body(\n separator: string,\n data: MediaBlob,\n metadata: Record<string, unknown>\n ): Promise<string> {\n const contentType = data.mimetype;\n const { encoded, encoding } = await data.encode();\n const body = [\n `--${separator}`,\n \"Content-Type: application/json; charset=UTF-8\",\n \"\",\n JSON.stringify(metadata),\n \"\",\n `--${separator}`,\n `Content-Type: ${contentType}`,\n `Content-Transfer-Encoding: ${encoding}`,\n \"\",\n encoded,\n `--${separator}--`,\n ];\n return body.join(\"\\n\");\n }\n\n async request(\n data: MediaBlob,\n metadata: Record<string, unknown>,\n options: CallOptions\n ): Promise<ResponseType> {\n const separator = `separator-${Date.now()}`;\n const body = await this._body(separator, data, metadata);\n const requestHeaders = {\n \"Content-Type\": `multipart/related; boundary=${separator}`,\n \"X-Goog-Upload-Protocol\": \"multipart\",\n };\n const response = this._request(body, options, requestHeaders);\n return response;\n }\n}\n\nexport abstract class GoogleDownloadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n async request(options: CallOptions): Promise<ResponseType> {\n return this._request(undefined, options);\n }\n}\n\nexport abstract class GoogleDownloadRawConnection<\n CallOptions extends AsyncCallerCallOptions,\n AuthOptions\n> extends GoogleRawConnection<CallOptions, AuthOptions> {\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return \"GET\";\n }\n\n async request(options: CallOptions): Promise<GoogleRawResponse> {\n return this._request(undefined, options);\n }\n}\n\nexport interface BlobStoreGoogleParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions>,\n AsyncCallerParams,\n BlobStoreOptions {}\n\nexport abstract class BlobStoreGoogle<\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends BlobStore {\n caller: AsyncCaller;\n\n client: GoogleAbstractedClient;\n\n constructor(fields?: BlobStoreGoogleParams<AuthOptions>) {\n super(fields);\n this.caller = new AsyncCaller(fields ?? {});\n this.client = this.buildClient(fields);\n }\n\n abstract buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n abstract buildSetMetadata([key, blob]: [string, MediaBlob]): Record<\n string,\n unknown\n >;\n\n abstract buildSetConnection([key, blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _set(keyValuePair: [string, MediaBlob]): Promise<ResponseType> {\n const [, blob] = keyValuePair;\n const setMetadata = this.buildSetMetadata(keyValuePair);\n const metadata = setMetadata;\n const options = {};\n const connection = this.buildSetConnection(keyValuePair);\n const response = await connection.request(blob, metadata, options);\n return response;\n }\n\n async mset(keyValuePairs: [string, MediaBlob][]): Promise<void> {\n const ret = keyValuePairs.map((keyValue) => this._set(keyValue));\n await Promise.all(ret);\n }\n\n abstract buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _getMetadata(key: string): Promise<Record<string, unknown>> {\n const connection = this.buildGetMetadataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n abstract buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n\n async _getData(key: string): Promise<Blob> {\n const connection = this.buildGetDataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n _getMimetypeFromMetadata(metadata: Record<string, unknown>): string {\n return metadata.contentType as string;\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n const data = await this._getData(key);\n if (data && metadata) {\n const ret = await MediaBlob.fromBlob(data, { metadata, path: key });\n return ret;\n } else {\n return undefined;\n }\n }\n\n async mget(keys: string[]): Promise<(MediaBlob | undefined)[]> {\n const ret = keys.map((key) => this._get(key));\n return await Promise.all(ret);\n }\n\n abstract buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n >;\n\n async _del(key: string): Promise<void> {\n const connection = this.buildDeleteConnection(key);\n const options = {};\n await connection.request(options);\n }\n\n async mdelete(keys: string[]): Promise<void> {\n const ret = keys.map((key) => this._del(key));\n await Promise.all(ret);\n }\n\n // eslint-disable-next-line require-yield\n async *yieldKeys(_prefix: string | undefined): AsyncGenerator<string> {\n // TODO: Implement. Most have an implementation that uses nextToken.\n throw new Error(\"yieldKeys is not implemented\");\n }\n}\n\n/**\n * Based on https://cloud.google.com/storage/docs/json_api/v1/objects#resource\n */\nexport interface GoogleCloudStorageObject extends Record<string, unknown> {\n id?: string;\n name?: string;\n contentType?: string;\n metadata?: Record<string, unknown>;\n // This is incomplete.\n}\n\nexport interface GoogleCloudStorageResponse extends GoogleResponse {\n data: GoogleCloudStorageObject;\n}\n\nexport type BucketAndPath = {\n bucket: string;\n path: string;\n};\n\nexport class GoogleCloudStorageUri {\n static uriRegexp = /gs:\\/\\/([a-z0-9][a-z0-9._-]+[a-z0-9])\\/(.*)/;\n\n bucket: string;\n\n path: string;\n\n constructor(uri: string) {\n const bucketAndPath = GoogleCloudStorageUri.uriToBucketAndPath(uri);\n this.bucket = bucketAndPath.bucket;\n this.path = bucketAndPath.path;\n }\n\n get uri() {\n return `gs://${this.bucket}/${this.path}`;\n }\n\n get isValid() {\n return (\n typeof this.bucket !== \"undefined\" && typeof this.path !== \"undefined\"\n );\n }\n\n static uriToBucketAndPath(uri: string): BucketAndPath {\n const match = this.uriRegexp.exec(uri);\n if (!match) {\n throw new Error(`Invalid gs:// URI: ${uri}`);\n }\n return {\n bucket: match[1],\n path: match[2],\n };\n }\n\n static isValidUri(uri: string): boolean {\n return this.uriRegexp.test(uri);\n }\n}\n\nexport interface GoogleCloudStorageConnectionParams {\n uri: string;\n}\n\nexport interface GoogleCloudStorageUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n GoogleCloudStorageConnectionParams {}\n\nexport class GoogleCloudStorageUploadConnection<\n AuthOptions\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n return `https://storage.googleapis.com/upload/storage/${this.apiVersion}/b/${this.uri.bucket}/o?uploadType=multipart`;\n }\n}\n\nexport interface GoogleCloudStorageDownloadConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n}\n\nexport class GoogleCloudStorageDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n method: GoogleAbstractedClientOpsMethod;\n\n alt: \"media\" | undefined;\n\n constructor(\n fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n this.method = fields.method;\n this.alt = fields.alt;\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}`;\n return this.alt ? `${ret}?alt=${this.alt}` : ret;\n }\n}\n\nexport interface GoogleCloudStorageRawConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {}\n\nexport class GoogleCloudStorageRawConnection<\n AuthOptions\n> extends GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageRawConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}?alt=media`;\n return ret;\n }\n}\n\nexport interface BlobStoreGoogleCloudStorageBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n uriPrefix: GoogleCloudStorageUri;\n}\n\nexport abstract class BlobStoreGoogleCloudStorageBase<\n AuthOptions\n> extends BlobStoreGoogle<GoogleCloudStorageResponse, AuthOptions> {\n params: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>;\n\n constructor(fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>) {\n super(fields);\n this.params = fields;\n this.defaultStoreOptions = {\n ...this.defaultStoreOptions,\n pathPrefix: fields.uriPrefix.uri,\n };\n }\n\n buildSetConnection([key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageUploadConnectionParams<AuthOptions> = {\n ...this.params,\n uri: key,\n };\n return new GoogleCloudStorageUploadConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown> {\n const uri = new GoogleCloudStorageUri(key);\n const ret: GoogleCloudStorageObject = {\n name: uri.path,\n metadata: blob.metadata,\n contentType: blob.mimetype,\n };\n return ret;\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"GET\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleCloudStorageResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n const params: GoogleCloudStorageRawConnectionParams<AuthOptions> = {\n uri: key,\n };\n return new GoogleCloudStorageRawConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"DELETE\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n\nexport type AIStudioFileState =\n | \"PROCESSING\"\n | \"ACTIVE\"\n | \"FAILED\"\n | \"STATE_UNSPECIFIED\";\n\nexport type AIStudioFileVideoMetadata = {\n videoMetadata: {\n videoDuration: string; // Duration in seconds, possibly with fractional, ending in \"s\"\n };\n};\n\nexport type AIStudioFileMetadata = AIStudioFileVideoMetadata;\n\nexport interface AIStudioFileObject {\n name?: string;\n displayName?: string;\n mimeType?: string;\n sizeBytes?: string; // int64 format\n createTime?: string; // timestamp format\n updateTime?: string; // timestamp format\n expirationTime?: string; // timestamp format\n sha256Hash?: string; // base64 encoded\n uri?: string;\n state?: AIStudioFileState;\n error?: {\n code: number;\n message: string;\n details: Record<string, unknown>[];\n };\n metadata?: AIStudioFileMetadata;\n}\n\nexport class AIStudioMediaBlob extends MediaBlob {\n _valueAsDate(value: string): Date {\n if (!value) {\n return new Date(0);\n }\n return new Date(value);\n }\n\n _metadataFieldAsDate(field: string): Date {\n return this._valueAsDate(this.metadata?.[field]);\n }\n\n get createDate(): Date {\n return this._metadataFieldAsDate(\"createTime\");\n }\n\n get updateDate(): Date {\n return this._metadataFieldAsDate(\"updateTime\");\n }\n\n get expirationDate(): Date {\n return this._metadataFieldAsDate(\"expirationTime\");\n }\n\n get isExpired(): boolean {\n const now = new Date().toISOString();\n const exp = this.metadata?.expirationTime ?? now;\n return exp <= now;\n }\n}\n\nexport interface AIStudioFileGetResponse extends GoogleResponse {\n data: AIStudioFileObject;\n}\n\nexport interface AIStudioFileSaveResponse extends GoogleResponse {\n data: {\n file: AIStudioFileObject;\n };\n}\n\nexport interface AIStudioFileListResponse extends GoogleResponse {\n data: {\n files: AIStudioFileObject[];\n nextPageToken: string;\n };\n}\n\nexport type AIStudioFileResponse =\n | AIStudioFileGetResponse\n | AIStudioFileSaveResponse\n | AIStudioFileListResponse;\n\nexport interface AIStudioFileConnectionParams {}\n\nexport interface AIStudioFileUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n AIStudioFileConnectionParams {}\n\nexport class AIStudioFileUploadConnection<\n AuthOptions\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileSaveResponse,\n AuthOptions\n> {\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/upload/${this.apiVersion}/files`;\n }\n}\n\nexport interface AIStudioFileDownloadConnectionParams<AuthOptions>\n extends AIStudioFileConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n}\n\nexport class AIStudioFileDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n method: GoogleAbstractedClientOpsMethod;\n\n name: string;\n\n constructor(\n fields: AIStudioFileDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.method = fields.method;\n this.name = fields.name;\n }\n\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/${this.apiVersion}/files/${this.name}`;\n }\n}\n\nexport interface BlobStoreAIStudioFileBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n retryTime?: number;\n}\n\nexport abstract class BlobStoreAIStudioFileBase<\n AuthOptions\n> extends BlobStoreGoogle<AIStudioFileResponse, AuthOptions> {\n params?: BlobStoreAIStudioFileBaseParams<AuthOptions>;\n\n retryTime: number = 1000;\n\n constructor(fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>) {\n const params: BlobStoreAIStudioFileBaseParams<AuthOptions> = {\n defaultStoreOptions: {\n pathPrefix: \"https://generativelanguage.googleapis.com/v1beta/files/\",\n actionIfInvalid: \"removePath\",\n },\n ...fields,\n };\n super(params);\n this.params = params;\n this.retryTime = params?.retryTime ?? this.retryTime ?? 1000;\n }\n\n _pathToName(path: string): string {\n return path.split(\"/\").pop() ?? path;\n }\n\n abstract buildAbstractedClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(fields?: BlobStoreGoogleParams<AuthOptions>): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n // TODO: Test that you can use OAuth to access\n return this.buildAbstractedClient(fields);\n }\n }\n\n async _regetMetadata(key: string): Promise<AIStudioFileObject> {\n // Sleep for some time period\n await new Promise((resolve) => setTimeout(resolve, this.retryTime));\n\n // Fetch the latest metadata\n return this._getMetadata(key);\n }\n\n async _set([key, blob]: [\n string,\n MediaBlob\n ]): Promise<AIStudioFileSaveResponse> {\n const response = (await super._set([\n key,\n blob,\n ])) as AIStudioFileSaveResponse;\n\n let file = response.data?.file ?? { state: \"FAILED\" };\n while (file.state === \"PROCESSING\" && file.uri && this.retryTime > 0) {\n file = await this._regetMetadata(file.uri);\n }\n\n // The response should contain the name (and valid URI), so we need to\n // update the blob with this. We can't return a new blob, since mset()\n // doesn't return anything.\n blob.path = file.uri;\n blob.metadata = {\n ...blob.metadata,\n ...file,\n };\n return response;\n }\n\n buildSetConnection([_key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n return new AIStudioFileUploadConnection(\n this.params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([_key, _blob]: [string, MediaBlob]): Record<\n string,\n unknown\n > {\n return {};\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"GET\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n _key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n throw new Error(\"AI Studio File API does not provide data\");\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n if (metadata) {\n const contentType =\n (metadata?.mimeType as string) ?? \"application/octet-stream\";\n // TODO - Get the actual data (and other metadata) from an optional backing store\n const data: MediaBlobData = {\n value: \"\",\n type: contentType,\n };\n\n return new MediaBlob({\n path: key,\n data,\n metadata,\n });\n } else {\n return undefined;\n }\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"DELETE\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media.cjs","names":["GoogleHostConnection","fields: GoogleConnectionParams<AuthOptions> | undefined","caller: AsyncCaller","client: GoogleAbstractedClient","separator: string","data: MediaBlob","metadata: Record<string, unknown>","options: CallOptions","GoogleRawConnection","BlobStore","fields?: BlobStoreGoogleParams<AuthOptions>","AsyncCaller","keyValuePair: [string, MediaBlob]","keyValuePairs: [string, MediaBlob][]","key: string","MediaBlob","keys: string[]","_prefix: string | undefined","uri: string","fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>","fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","fields: GoogleCloudStorageRawConnectionParams<AuthOptions>","fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>","params: GoogleCloudStorageUploadConnectionParams<AuthOptions>","ret: GoogleCloudStorageObject","params: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","params: GoogleCloudStorageRawConnectionParams<AuthOptions>","value: string","field: string","fields: AIStudioFileDownloadConnectionParams<AuthOptions>","fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>","params: BlobStoreAIStudioFileBaseParams<AuthOptions>","path: string","apiKey: string","ApiKeyGoogleAuth","params: AIStudioFileDownloadConnectionParams<AuthOptions>","_key: string","data: MediaBlobData"],"sources":["../../src/experimental/media.ts"],"sourcesContent":["import {\n AsyncCaller,\n AsyncCallerCallOptions,\n AsyncCallerParams,\n} from \"@langchain/core/utils/async_caller\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n MediaBlob,\n BlobStore,\n BlobStoreOptions,\n MediaBlobData,\n} from \"./utils/media_core.js\";\nimport {\n GoogleConnectionParams,\n GoogleRawResponse,\n GoogleResponse,\n} from \"../types.js\";\nimport { GoogleHostConnection, GoogleRawConnection } from \"../connection.js\";\nimport {\n ApiKeyGoogleAuth,\n GoogleAbstractedClient,\n GoogleAbstractedClientOpsMethod,\n} from \"../auth.js\";\n\nexport interface GoogleUploadConnectionParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions> {}\n\nexport abstract class GoogleMultipartUploadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n constructor(\n fields: GoogleConnectionParams<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n }\n\n async _body(\n separator: string,\n data: MediaBlob,\n metadata: Record<string, unknown>\n ): Promise<string> {\n const contentType = data.mimetype;\n const { encoded, encoding } = await data.encode();\n const body = [\n `--${separator}`,\n \"Content-Type: application/json; charset=UTF-8\",\n \"\",\n JSON.stringify(metadata),\n \"\",\n `--${separator}`,\n `Content-Type: ${contentType}`,\n `Content-Transfer-Encoding: ${encoding}`,\n \"\",\n encoded,\n `--${separator}--`,\n ];\n return body.join(\"\\n\");\n }\n\n async request(\n data: MediaBlob,\n metadata: Record<string, unknown>,\n options: CallOptions\n ): Promise<ResponseType> {\n const separator = `separator-${Date.now()}`;\n const body = await this._body(separator, data, metadata);\n const requestHeaders = {\n \"Content-Type\": `multipart/related; boundary=${separator}`,\n \"X-Goog-Upload-Protocol\": \"multipart\",\n };\n const response = this._request(body, options, requestHeaders);\n return response;\n }\n}\n\nexport abstract class GoogleDownloadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n async request(options: CallOptions): Promise<ResponseType> {\n return this._request(undefined, options);\n }\n}\n\nexport abstract class GoogleDownloadRawConnection<\n CallOptions extends AsyncCallerCallOptions,\n AuthOptions,\n> extends GoogleRawConnection<CallOptions, AuthOptions> {\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return \"GET\";\n }\n\n async request(options: CallOptions): Promise<GoogleRawResponse> {\n return this._request(undefined, options);\n }\n}\n\nexport interface BlobStoreGoogleParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions>,\n AsyncCallerParams,\n BlobStoreOptions {}\n\nexport abstract class BlobStoreGoogle<\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends BlobStore {\n caller: AsyncCaller;\n\n client: GoogleAbstractedClient;\n\n constructor(fields?: BlobStoreGoogleParams<AuthOptions>) {\n super(fields);\n this.caller = new AsyncCaller(fields ?? {});\n this.client = this.buildClient(fields);\n }\n\n abstract buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n abstract buildSetMetadata([key, blob]: [string, MediaBlob]): Record<\n string,\n unknown\n >;\n\n abstract buildSetConnection([key, blob]: [\n string,\n MediaBlob,\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _set(keyValuePair: [string, MediaBlob]): Promise<ResponseType> {\n const [, blob] = keyValuePair;\n const setMetadata = this.buildSetMetadata(keyValuePair);\n const metadata = setMetadata;\n const options = {};\n const connection = this.buildSetConnection(keyValuePair);\n const response = await connection.request(blob, metadata, options);\n return response;\n }\n\n async mset(keyValuePairs: [string, MediaBlob][]): Promise<void> {\n const ret = keyValuePairs.map((keyValue) => this._set(keyValue));\n await Promise.all(ret);\n }\n\n abstract buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _getMetadata(key: string): Promise<Record<string, unknown>> {\n const connection = this.buildGetMetadataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n abstract buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n\n async _getData(key: string): Promise<Blob> {\n const connection = this.buildGetDataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n _getMimetypeFromMetadata(metadata: Record<string, unknown>): string {\n return metadata.contentType as string;\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n const data = await this._getData(key);\n if (data && metadata) {\n const ret = await MediaBlob.fromBlob(data, { metadata, path: key });\n return ret;\n } else {\n return undefined;\n }\n }\n\n async mget(keys: string[]): Promise<(MediaBlob | undefined)[]> {\n const ret = keys.map((key) => this._get(key));\n return await Promise.all(ret);\n }\n\n abstract buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n >;\n\n async _del(key: string): Promise<void> {\n const connection = this.buildDeleteConnection(key);\n const options = {};\n await connection.request(options);\n }\n\n async mdelete(keys: string[]): Promise<void> {\n const ret = keys.map((key) => this._del(key));\n await Promise.all(ret);\n }\n\n // eslint-disable-next-line require-yield\n async *yieldKeys(_prefix: string | undefined): AsyncGenerator<string> {\n // TODO: Implement. Most have an implementation that uses nextToken.\n throw new Error(\"yieldKeys is not implemented\");\n }\n}\n\n/**\n * Based on https://cloud.google.com/storage/docs/json_api/v1/objects#resource\n */\nexport interface GoogleCloudStorageObject extends Record<string, unknown> {\n id?: string;\n name?: string;\n contentType?: string;\n metadata?: Record<string, unknown>;\n // This is incomplete.\n}\n\nexport interface GoogleCloudStorageResponse extends GoogleResponse {\n data: GoogleCloudStorageObject;\n}\n\nexport type BucketAndPath = {\n bucket: string;\n path: string;\n};\n\nexport class GoogleCloudStorageUri {\n static uriRegexp = /gs:\\/\\/([a-z0-9][a-z0-9._-]+[a-z0-9])\\/(.*)/;\n\n bucket: string;\n\n path: string;\n\n constructor(uri: string) {\n const bucketAndPath = GoogleCloudStorageUri.uriToBucketAndPath(uri);\n this.bucket = bucketAndPath.bucket;\n this.path = bucketAndPath.path;\n }\n\n get uri() {\n return `gs://${this.bucket}/${this.path}`;\n }\n\n get isValid() {\n return (\n typeof this.bucket !== \"undefined\" && typeof this.path !== \"undefined\"\n );\n }\n\n static uriToBucketAndPath(uri: string): BucketAndPath {\n const match = this.uriRegexp.exec(uri);\n if (!match) {\n throw new Error(`Invalid gs:// URI: ${uri}`);\n }\n return {\n bucket: match[1],\n path: match[2],\n };\n }\n\n static isValidUri(uri: string): boolean {\n return this.uriRegexp.test(uri);\n }\n}\n\nexport interface GoogleCloudStorageConnectionParams {\n uri: string;\n}\n\nexport interface GoogleCloudStorageUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n GoogleCloudStorageConnectionParams {}\n\nexport class GoogleCloudStorageUploadConnection<\n AuthOptions,\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n return `https://storage.googleapis.com/upload/storage/${this.apiVersion}/b/${this.uri.bucket}/o?uploadType=multipart`;\n }\n}\n\nexport interface GoogleCloudStorageDownloadConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n}\n\nexport class GoogleCloudStorageDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n method: GoogleAbstractedClientOpsMethod;\n\n alt: \"media\" | undefined;\n\n constructor(\n fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n this.method = fields.method;\n this.alt = fields.alt;\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}`;\n return this.alt ? `${ret}?alt=${this.alt}` : ret;\n }\n}\n\nexport interface GoogleCloudStorageRawConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {}\n\nexport class GoogleCloudStorageRawConnection<\n AuthOptions,\n> extends GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageRawConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}?alt=media`;\n return ret;\n }\n}\n\nexport interface BlobStoreGoogleCloudStorageBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n uriPrefix: GoogleCloudStorageUri;\n}\n\nexport abstract class BlobStoreGoogleCloudStorageBase<\n AuthOptions,\n> extends BlobStoreGoogle<GoogleCloudStorageResponse, AuthOptions> {\n params: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>;\n\n constructor(fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>) {\n super(fields);\n this.params = fields;\n this.defaultStoreOptions = {\n ...this.defaultStoreOptions,\n pathPrefix: fields.uriPrefix.uri,\n };\n }\n\n buildSetConnection([key, _blob]: [\n string,\n MediaBlob,\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageUploadConnectionParams<AuthOptions> = {\n ...this.params,\n uri: key,\n };\n return new GoogleCloudStorageUploadConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown> {\n const uri = new GoogleCloudStorageUri(key);\n const ret: GoogleCloudStorageObject = {\n name: uri.path,\n metadata: blob.metadata,\n contentType: blob.mimetype,\n };\n return ret;\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"GET\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleCloudStorageResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n const params: GoogleCloudStorageRawConnectionParams<AuthOptions> = {\n uri: key,\n };\n return new GoogleCloudStorageRawConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"DELETE\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n\nexport type AIStudioFileState =\n | \"PROCESSING\"\n | \"ACTIVE\"\n | \"FAILED\"\n | \"STATE_UNSPECIFIED\";\n\nexport type AIStudioFileVideoMetadata = {\n videoMetadata: {\n videoDuration: string; // Duration in seconds, possibly with fractional, ending in \"s\"\n };\n};\n\nexport type AIStudioFileMetadata = AIStudioFileVideoMetadata;\n\nexport interface AIStudioFileObject {\n name?: string;\n displayName?: string;\n mimeType?: string;\n sizeBytes?: string; // int64 format\n createTime?: string; // timestamp format\n updateTime?: string; // timestamp format\n expirationTime?: string; // timestamp format\n sha256Hash?: string; // base64 encoded\n uri?: string;\n state?: AIStudioFileState;\n error?: {\n code: number;\n message: string;\n details: Record<string, unknown>[];\n };\n metadata?: AIStudioFileMetadata;\n}\n\nexport class AIStudioMediaBlob extends MediaBlob {\n _valueAsDate(value: string): Date {\n if (!value) {\n return new Date(0);\n }\n return new Date(value);\n }\n\n _metadataFieldAsDate(field: string): Date {\n return this._valueAsDate(this.metadata?.[field]);\n }\n\n get createDate(): Date {\n return this._metadataFieldAsDate(\"createTime\");\n }\n\n get updateDate(): Date {\n return this._metadataFieldAsDate(\"updateTime\");\n }\n\n get expirationDate(): Date {\n return this._metadataFieldAsDate(\"expirationTime\");\n }\n\n get isExpired(): boolean {\n const now = new Date().toISOString();\n const exp = this.metadata?.expirationTime ?? now;\n return exp <= now;\n }\n}\n\nexport interface AIStudioFileGetResponse extends GoogleResponse {\n data: AIStudioFileObject;\n}\n\nexport interface AIStudioFileSaveResponse extends GoogleResponse {\n data: {\n file: AIStudioFileObject;\n };\n}\n\nexport interface AIStudioFileListResponse extends GoogleResponse {\n data: {\n files: AIStudioFileObject[];\n nextPageToken: string;\n };\n}\n\nexport type AIStudioFileResponse =\n | AIStudioFileGetResponse\n | AIStudioFileSaveResponse\n | AIStudioFileListResponse;\n\nexport interface AIStudioFileConnectionParams {}\n\nexport interface AIStudioFileUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n AIStudioFileConnectionParams {}\n\nexport class AIStudioFileUploadConnection<\n AuthOptions,\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileSaveResponse,\n AuthOptions\n> {\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/upload/${this.apiVersion}/files`;\n }\n}\n\nexport interface AIStudioFileDownloadConnectionParams<AuthOptions>\n extends AIStudioFileConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n}\n\nexport class AIStudioFileDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n method: GoogleAbstractedClientOpsMethod;\n\n name: string;\n\n constructor(\n fields: AIStudioFileDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.method = fields.method;\n this.name = fields.name;\n }\n\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/${this.apiVersion}/files/${this.name}`;\n }\n}\n\nexport interface BlobStoreAIStudioFileBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n retryTime?: number;\n}\n\nexport abstract class BlobStoreAIStudioFileBase<\n AuthOptions,\n> extends BlobStoreGoogle<AIStudioFileResponse, AuthOptions> {\n params?: BlobStoreAIStudioFileBaseParams<AuthOptions>;\n\n retryTime: number = 1000;\n\n constructor(fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>) {\n const params: BlobStoreAIStudioFileBaseParams<AuthOptions> = {\n defaultStoreOptions: {\n pathPrefix: \"https://generativelanguage.googleapis.com/v1beta/files/\",\n actionIfInvalid: \"removePath\",\n },\n ...fields,\n };\n super(params);\n this.params = params;\n this.retryTime = params?.retryTime ?? this.retryTime ?? 1000;\n }\n\n _pathToName(path: string): string {\n return path.split(\"/\").pop() ?? path;\n }\n\n abstract buildAbstractedClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(fields?: BlobStoreGoogleParams<AuthOptions>): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n // TODO: Test that you can use OAuth to access\n return this.buildAbstractedClient(fields);\n }\n }\n\n async _regetMetadata(key: string): Promise<AIStudioFileObject> {\n // Sleep for some time period\n await new Promise((resolve) => setTimeout(resolve, this.retryTime));\n\n // Fetch the latest metadata\n return this._getMetadata(key);\n }\n\n async _set([key, blob]: [\n string,\n MediaBlob,\n ]): Promise<AIStudioFileSaveResponse> {\n const response = (await super._set([\n key,\n blob,\n ])) as AIStudioFileSaveResponse;\n\n let file = response.data?.file ?? { state: \"FAILED\" };\n while (file.state === \"PROCESSING\" && file.uri && this.retryTime > 0) {\n file = await this._regetMetadata(file.uri);\n }\n\n // The response should contain the name (and valid URI), so we need to\n // update the blob with this. We can't return a new blob, since mset()\n // doesn't return anything.\n blob.path = file.uri;\n blob.metadata = {\n ...blob.metadata,\n ...file,\n };\n return response;\n }\n\n buildSetConnection([_key, _blob]: [\n string,\n MediaBlob,\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n return new AIStudioFileUploadConnection(\n this.params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([_key, _blob]: [string, MediaBlob]): Record<\n string,\n unknown\n > {\n return {};\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"GET\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n _key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n throw new Error(\"AI Studio File API does not provide data\");\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n if (metadata) {\n const contentType =\n (metadata?.mimeType as string) ?? \"application/octet-stream\";\n // TODO - Get the actual data (and other metadata) from an optional backing store\n const data: MediaBlobData = {\n value: \"\",\n type: contentType,\n };\n\n return new MediaBlob({\n path: key,\n data,\n metadata,\n });\n } else {\n return undefined;\n }\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"DELETE\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.cts","names":["AsyncCaller","AsyncCallerCallOptions","AsyncCallerParams","MediaBlob","BlobStore","BlobStoreOptions","GoogleConnectionParams","GoogleRawResponse","GoogleResponse","GoogleHostConnection","GoogleRawConnection","GoogleAbstractedClient","GoogleAbstractedClientOpsMethod","GoogleUploadConnectionParams","AuthOptions","GoogleMultipartUploadConnection","CallOptions","ResponseType","Record","Promise","GoogleDownloadConnection","GoogleDownloadRawConnection","BlobStoreGoogleParams","BlobStoreGoogle","Blob","AsyncGenerator","GoogleCloudStorageObject","GoogleCloudStorageResponse","BucketAndPath","GoogleCloudStorageUri","RegExp","GoogleCloudStorageConnectionParams","GoogleCloudStorageUploadConnectionParams","GoogleCloudStorageUploadConnection","GoogleCloudStorageDownloadConnectionParams","GoogleCloudStorageDownloadConnection","GoogleCloudStorageRawConnectionParams","GoogleCloudStorageRawConnection","BlobStoreGoogleCloudStorageBaseParams","BlobStoreGoogleCloudStorageBase","AIStudioFileState","AIStudioFileVideoMetadata","AIStudioFileMetadata","AIStudioFileObject","AIStudioMediaBlob","Date","AIStudioFileGetResponse","AIStudioFileSaveResponse","AIStudioFileListResponse","AIStudioFileResponse","AIStudioFileConnectionParams","AIStudioFileUploadConnectionParams","AIStudioFileUploadConnection","AIStudioFileDownloadConnectionParams","AIStudioFileDownloadConnection","BlobStoreAIStudioFileBaseParams","BlobStoreAIStudioFileBase"],"sources":["../../src/experimental/media.d.ts"],"sourcesContent":["import { AsyncCaller, AsyncCallerCallOptions, AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { MediaBlob, BlobStore, BlobStoreOptions } from \"./utils/media_core.js\";\nimport { GoogleConnectionParams, GoogleRawResponse, GoogleResponse } from \"../types.js\";\nimport { GoogleHostConnection, GoogleRawConnection } from \"../connection.js\";\nimport { GoogleAbstractedClient, GoogleAbstractedClientOpsMethod } from \"../auth.js\";\nexport interface GoogleUploadConnectionParams<AuthOptions> extends GoogleConnectionParams<AuthOptions> {\n}\nexport declare abstract class GoogleMultipartUploadConnection<CallOptions extends AsyncCallerCallOptions, ResponseType extends GoogleResponse, AuthOptions> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n constructor(fields: GoogleConnectionParams<AuthOptions> | undefined, caller: AsyncCaller, client: GoogleAbstractedClient);\n _body(separator: string, data: MediaBlob, metadata: Record<string, unknown>): Promise<string>;\n request(data: MediaBlob, metadata: Record<string, unknown>, options: CallOptions): Promise<ResponseType>;\n}\nexport declare abstract class GoogleDownloadConnection<CallOptions extends AsyncCallerCallOptions, ResponseType extends GoogleResponse, AuthOptions> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n request(options: CallOptions): Promise<ResponseType>;\n}\nexport declare abstract class GoogleDownloadRawConnection<CallOptions extends AsyncCallerCallOptions, AuthOptions> extends GoogleRawConnection<CallOptions, AuthOptions> {\n buildMethod(): GoogleAbstractedClientOpsMethod;\n request(options: CallOptions): Promise<GoogleRawResponse>;\n}\nexport interface BlobStoreGoogleParams<AuthOptions> extends GoogleConnectionParams<AuthOptions>, AsyncCallerParams, BlobStoreOptions {\n}\nexport declare abstract class BlobStoreGoogle<ResponseType extends GoogleResponse, AuthOptions> extends BlobStore {\n caller: AsyncCaller;\n client: GoogleAbstractedClient;\n constructor(fields?: BlobStoreGoogleParams<AuthOptions>);\n abstract buildClient(fields?: BlobStoreGoogleParams<AuthOptions>): GoogleAbstractedClient;\n abstract buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown>;\n abstract buildSetConnection([key, blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions>;\n _set(keyValuePair: [string, MediaBlob]): Promise<ResponseType>;\n mset(keyValuePairs: [string, MediaBlob][]): Promise<void>;\n abstract buildGetMetadataConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions>;\n _getMetadata(key: string): Promise<Record<string, unknown>>;\n abstract buildGetDataConnection(key: string): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n _getData(key: string): Promise<Blob>;\n _getMimetypeFromMetadata(metadata: Record<string, unknown>): string;\n _get(key: string): Promise<MediaBlob | undefined>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n abstract buildDeleteConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, GoogleResponse, AuthOptions>;\n _del(key: string): Promise<void>;\n mdelete(keys: string[]): Promise<void>;\n yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;\n}\n/**\n * Based on https://cloud.google.com/storage/docs/json_api/v1/objects#resource\n */\nexport interface GoogleCloudStorageObject extends Record<string, unknown> {\n id?: string;\n name?: string;\n contentType?: string;\n metadata?: Record<string, unknown>;\n}\nexport interface GoogleCloudStorageResponse extends GoogleResponse {\n data: GoogleCloudStorageObject;\n}\nexport type BucketAndPath = {\n bucket: string;\n path: string;\n};\nexport declare class GoogleCloudStorageUri {\n static uriRegexp: RegExp;\n bucket: string;\n path: string;\n constructor(uri: string);\n get uri(): string;\n get isValid(): boolean;\n static uriToBucketAndPath(uri: string): BucketAndPath;\n static isValidUri(uri: string): boolean;\n}\nexport interface GoogleCloudStorageConnectionParams {\n uri: string;\n}\nexport interface GoogleCloudStorageUploadConnectionParams<AuthOptions> extends GoogleUploadConnectionParams<AuthOptions>, GoogleCloudStorageConnectionParams {\n}\nexport declare class GoogleCloudStorageUploadConnection<AuthOptions> extends GoogleMultipartUploadConnection<AsyncCallerCallOptions, GoogleCloudStorageResponse, AuthOptions> {\n uri: GoogleCloudStorageUri;\n constructor(fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n buildUrl(): Promise<string>;\n}\nexport interface GoogleCloudStorageDownloadConnectionParams<AuthOptions> extends GoogleCloudStorageConnectionParams, GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n}\nexport declare class GoogleCloudStorageDownloadConnection<ResponseType extends GoogleResponse, AuthOptions> extends GoogleDownloadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions> {\n uri: GoogleCloudStorageUri;\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n constructor(fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n buildMethod(): GoogleAbstractedClientOpsMethod;\n buildUrl(): Promise<string>;\n}\nexport interface GoogleCloudStorageRawConnectionParams<AuthOptions> extends GoogleCloudStorageConnectionParams, GoogleConnectionParams<AuthOptions> {\n}\nexport declare class GoogleCloudStorageRawConnection<AuthOptions> extends GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n uri: GoogleCloudStorageUri;\n constructor(fields: GoogleCloudStorageRawConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n buildUrl(): Promise<string>;\n}\nexport interface BlobStoreGoogleCloudStorageBaseParams<AuthOptions> extends BlobStoreGoogleParams<AuthOptions> {\n uriPrefix: GoogleCloudStorageUri;\n}\nexport declare abstract class BlobStoreGoogleCloudStorageBase<AuthOptions> extends BlobStoreGoogle<GoogleCloudStorageResponse, AuthOptions> {\n params: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>;\n constructor(fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>);\n buildSetConnection([key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<AsyncCallerCallOptions, GoogleCloudStorageResponse, AuthOptions>;\n buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown>;\n buildGetMetadataConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, GoogleCloudStorageResponse, AuthOptions>;\n buildGetDataConnection(key: string): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n buildDeleteConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, GoogleResponse, AuthOptions>;\n}\nexport type AIStudioFileState = \"PROCESSING\" | \"ACTIVE\" | \"FAILED\" | \"STATE_UNSPECIFIED\";\nexport type AIStudioFileVideoMetadata = {\n videoMetadata: {\n videoDuration: string;\n };\n};\nexport type AIStudioFileMetadata = AIStudioFileVideoMetadata;\nexport interface AIStudioFileObject {\n name?: string;\n displayName?: string;\n mimeType?: string;\n sizeBytes?: string;\n createTime?: string;\n updateTime?: string;\n expirationTime?: string;\n sha256Hash?: string;\n uri?: string;\n state?: AIStudioFileState;\n error?: {\n code: number;\n message: string;\n details: Record<string, unknown>[];\n };\n metadata?: AIStudioFileMetadata;\n}\nexport declare class AIStudioMediaBlob extends MediaBlob {\n _valueAsDate(value: string): Date;\n _metadataFieldAsDate(field: string): Date;\n get createDate(): Date;\n get updateDate(): Date;\n get expirationDate(): Date;\n get isExpired(): boolean;\n}\nexport interface AIStudioFileGetResponse extends GoogleResponse {\n data: AIStudioFileObject;\n}\nexport interface AIStudioFileSaveResponse extends GoogleResponse {\n data: {\n file: AIStudioFileObject;\n };\n}\nexport interface AIStudioFileListResponse extends GoogleResponse {\n data: {\n files: AIStudioFileObject[];\n nextPageToken: string;\n };\n}\nexport type AIStudioFileResponse = AIStudioFileGetResponse | AIStudioFileSaveResponse | AIStudioFileListResponse;\nexport interface AIStudioFileConnectionParams {\n}\nexport interface AIStudioFileUploadConnectionParams<AuthOptions> extends GoogleUploadConnectionParams<AuthOptions>, AIStudioFileConnectionParams {\n}\nexport declare class AIStudioFileUploadConnection<AuthOptions> extends GoogleMultipartUploadConnection<AsyncCallerCallOptions, AIStudioFileSaveResponse, AuthOptions> {\n get computedApiVersion(): string;\n buildUrl(): Promise<string>;\n}\nexport interface AIStudioFileDownloadConnectionParams<AuthOptions> extends AIStudioFileConnectionParams, GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n}\nexport declare class AIStudioFileDownloadConnection<ResponseType extends GoogleResponse, AuthOptions> extends GoogleDownloadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n constructor(fields: AIStudioFileDownloadConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n get computedApiVersion(): string;\n buildMethod(): GoogleAbstractedClientOpsMethod;\n buildUrl(): Promise<string>;\n}\nexport interface BlobStoreAIStudioFileBaseParams<AuthOptions> extends BlobStoreGoogleParams<AuthOptions> {\n retryTime?: number;\n}\nexport declare abstract class BlobStoreAIStudioFileBase<AuthOptions> extends BlobStoreGoogle<AIStudioFileResponse, AuthOptions> {\n params?: BlobStoreAIStudioFileBaseParams<AuthOptions>;\n retryTime: number;\n constructor(fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>);\n _pathToName(path: string): string;\n abstract buildAbstractedClient(fields?: BlobStoreGoogleParams<AuthOptions>): GoogleAbstractedClient;\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient;\n buildApiKey(fields?: BlobStoreGoogleParams<AuthOptions>): string | undefined;\n buildClient(fields?: BlobStoreGoogleParams<AuthOptions>): GoogleAbstractedClient;\n _regetMetadata(key: string): Promise<AIStudioFileObject>;\n _set([key, blob]: [\n string,\n MediaBlob\n ]): Promise<AIStudioFileSaveResponse>;\n buildSetConnection([_key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<AsyncCallerCallOptions, AIStudioFileResponse, AuthOptions>;\n buildSetMetadata([_key, _blob]: [string, MediaBlob]): Record<string, unknown>;\n buildGetMetadataConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, AIStudioFileResponse, AuthOptions>;\n buildGetDataConnection(_key: string): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n _get(key: string): Promise<MediaBlob | undefined>;\n buildDeleteConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, AIStudioFileResponse, AuthOptions>;\n}\n//# sourceMappingURL=media.d.ts.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media.d.cts","names":["AsyncCaller","AsyncCallerCallOptions","AsyncCallerParams","MediaBlob","BlobStore","BlobStoreOptions","GoogleConnectionParams","GoogleRawResponse","GoogleResponse","GoogleHostConnection","GoogleRawConnection","GoogleAbstractedClient","GoogleAbstractedClientOpsMethod","GoogleUploadConnectionParams","AuthOptions","GoogleMultipartUploadConnection","CallOptions","ResponseType","Record","Promise","GoogleDownloadConnection","GoogleDownloadRawConnection","BlobStoreGoogleParams","BlobStoreGoogle","Blob","AsyncGenerator","GoogleCloudStorageObject","GoogleCloudStorageResponse","BucketAndPath","GoogleCloudStorageUri","RegExp","GoogleCloudStorageConnectionParams","GoogleCloudStorageUploadConnectionParams","GoogleCloudStorageUploadConnection","GoogleCloudStorageDownloadConnectionParams","GoogleCloudStorageDownloadConnection","GoogleCloudStorageRawConnectionParams","GoogleCloudStorageRawConnection","BlobStoreGoogleCloudStorageBaseParams","BlobStoreGoogleCloudStorageBase","AIStudioFileState","AIStudioFileVideoMetadata","AIStudioFileMetadata","AIStudioFileObject","AIStudioMediaBlob","Date","AIStudioFileGetResponse","AIStudioFileSaveResponse","AIStudioFileListResponse","AIStudioFileResponse","AIStudioFileConnectionParams","AIStudioFileUploadConnectionParams","AIStudioFileUploadConnection","AIStudioFileDownloadConnectionParams","AIStudioFileDownloadConnection","BlobStoreAIStudioFileBaseParams","BlobStoreAIStudioFileBase"],"sources":["../../src/experimental/media.d.ts"],"sourcesContent":["import { AsyncCaller, AsyncCallerCallOptions, AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { MediaBlob, BlobStore, BlobStoreOptions } from \"./utils/media_core.js\";\nimport { GoogleConnectionParams, GoogleRawResponse, GoogleResponse } from \"../types.js\";\nimport { GoogleHostConnection, GoogleRawConnection } from \"../connection.js\";\nimport { GoogleAbstractedClient, GoogleAbstractedClientOpsMethod } from \"../auth.js\";\nexport interface GoogleUploadConnectionParams<AuthOptions> extends GoogleConnectionParams<AuthOptions> {\n}\nexport declare abstract class GoogleMultipartUploadConnection<CallOptions extends AsyncCallerCallOptions, ResponseType extends GoogleResponse, AuthOptions> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n constructor(fields: GoogleConnectionParams<AuthOptions> | undefined, caller: AsyncCaller, client: GoogleAbstractedClient);\n _body(separator: string, data: MediaBlob, metadata: Record<string, unknown>): Promise<string>;\n request(data: MediaBlob, metadata: Record<string, unknown>, options: CallOptions): Promise<ResponseType>;\n}\nexport declare abstract class GoogleDownloadConnection<CallOptions extends AsyncCallerCallOptions, ResponseType extends GoogleResponse, AuthOptions> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n request(options: CallOptions): Promise<ResponseType>;\n}\nexport declare abstract class GoogleDownloadRawConnection<CallOptions extends AsyncCallerCallOptions, AuthOptions> extends GoogleRawConnection<CallOptions, AuthOptions> {\n buildMethod(): GoogleAbstractedClientOpsMethod;\n request(options: CallOptions): Promise<GoogleRawResponse>;\n}\nexport interface BlobStoreGoogleParams<AuthOptions> extends GoogleConnectionParams<AuthOptions>, AsyncCallerParams, BlobStoreOptions {\n}\nexport declare abstract class BlobStoreGoogle<ResponseType extends GoogleResponse, AuthOptions> extends BlobStore {\n caller: AsyncCaller;\n client: GoogleAbstractedClient;\n constructor(fields?: BlobStoreGoogleParams<AuthOptions>);\n abstract buildClient(fields?: BlobStoreGoogleParams<AuthOptions>): GoogleAbstractedClient;\n abstract buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown>;\n abstract buildSetConnection([key, blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions>;\n _set(keyValuePair: [string, MediaBlob]): Promise<ResponseType>;\n mset(keyValuePairs: [string, MediaBlob][]): Promise<void>;\n abstract buildGetMetadataConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions>;\n _getMetadata(key: string): Promise<Record<string, unknown>>;\n abstract buildGetDataConnection(key: string): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n _getData(key: string): Promise<Blob>;\n _getMimetypeFromMetadata(metadata: Record<string, unknown>): string;\n _get(key: string): Promise<MediaBlob | undefined>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n abstract buildDeleteConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, GoogleResponse, AuthOptions>;\n _del(key: string): Promise<void>;\n mdelete(keys: string[]): Promise<void>;\n yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;\n}\n/**\n * Based on https://cloud.google.com/storage/docs/json_api/v1/objects#resource\n */\nexport interface GoogleCloudStorageObject extends Record<string, unknown> {\n id?: string;\n name?: string;\n contentType?: string;\n metadata?: Record<string, unknown>;\n}\nexport interface GoogleCloudStorageResponse extends GoogleResponse {\n data: GoogleCloudStorageObject;\n}\nexport type BucketAndPath = {\n bucket: string;\n path: string;\n};\nexport declare class GoogleCloudStorageUri {\n static uriRegexp: RegExp;\n bucket: string;\n path: string;\n constructor(uri: string);\n get uri(): string;\n get isValid(): boolean;\n static uriToBucketAndPath(uri: string): BucketAndPath;\n static isValidUri(uri: string): boolean;\n}\nexport interface GoogleCloudStorageConnectionParams {\n uri: string;\n}\nexport interface GoogleCloudStorageUploadConnectionParams<AuthOptions> extends GoogleUploadConnectionParams<AuthOptions>, GoogleCloudStorageConnectionParams {\n}\nexport declare class GoogleCloudStorageUploadConnection<AuthOptions> extends GoogleMultipartUploadConnection<AsyncCallerCallOptions, GoogleCloudStorageResponse, AuthOptions> {\n uri: GoogleCloudStorageUri;\n constructor(fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n buildUrl(): Promise<string>;\n}\nexport interface GoogleCloudStorageDownloadConnectionParams<AuthOptions> extends GoogleCloudStorageConnectionParams, GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n}\nexport declare class GoogleCloudStorageDownloadConnection<ResponseType extends GoogleResponse, AuthOptions> extends GoogleDownloadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions> {\n uri: GoogleCloudStorageUri;\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n constructor(fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n buildMethod(): GoogleAbstractedClientOpsMethod;\n buildUrl(): Promise<string>;\n}\nexport interface GoogleCloudStorageRawConnectionParams<AuthOptions> extends GoogleCloudStorageConnectionParams, GoogleConnectionParams<AuthOptions> {\n}\nexport declare class GoogleCloudStorageRawConnection<AuthOptions> extends GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n uri: GoogleCloudStorageUri;\n constructor(fields: GoogleCloudStorageRawConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n buildUrl(): Promise<string>;\n}\nexport interface BlobStoreGoogleCloudStorageBaseParams<AuthOptions> extends BlobStoreGoogleParams<AuthOptions> {\n uriPrefix: GoogleCloudStorageUri;\n}\nexport declare abstract class BlobStoreGoogleCloudStorageBase<AuthOptions> extends BlobStoreGoogle<GoogleCloudStorageResponse, AuthOptions> {\n params: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>;\n constructor(fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>);\n buildSetConnection([key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<AsyncCallerCallOptions, GoogleCloudStorageResponse, AuthOptions>;\n buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown>;\n buildGetMetadataConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, GoogleCloudStorageResponse, AuthOptions>;\n buildGetDataConnection(key: string): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n buildDeleteConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, GoogleResponse, AuthOptions>;\n}\nexport type AIStudioFileState = \"PROCESSING\" | \"ACTIVE\" | \"FAILED\" | \"STATE_UNSPECIFIED\";\nexport type AIStudioFileVideoMetadata = {\n videoMetadata: {\n videoDuration: string;\n };\n};\nexport type AIStudioFileMetadata = AIStudioFileVideoMetadata;\nexport interface AIStudioFileObject {\n name?: string;\n displayName?: string;\n mimeType?: string;\n sizeBytes?: string;\n createTime?: string;\n updateTime?: string;\n expirationTime?: string;\n sha256Hash?: string;\n uri?: string;\n state?: AIStudioFileState;\n error?: {\n code: number;\n message: string;\n details: Record<string, unknown>[];\n };\n metadata?: AIStudioFileMetadata;\n}\nexport declare class AIStudioMediaBlob extends MediaBlob {\n _valueAsDate(value: string): Date;\n _metadataFieldAsDate(field: string): Date;\n get createDate(): Date;\n get updateDate(): Date;\n get expirationDate(): Date;\n get isExpired(): boolean;\n}\nexport interface AIStudioFileGetResponse extends GoogleResponse {\n data: AIStudioFileObject;\n}\nexport interface AIStudioFileSaveResponse extends GoogleResponse {\n data: {\n file: AIStudioFileObject;\n };\n}\nexport interface AIStudioFileListResponse extends GoogleResponse {\n data: {\n files: AIStudioFileObject[];\n nextPageToken: string;\n };\n}\nexport type AIStudioFileResponse = AIStudioFileGetResponse | AIStudioFileSaveResponse | AIStudioFileListResponse;\nexport interface AIStudioFileConnectionParams {\n}\nexport interface AIStudioFileUploadConnectionParams<AuthOptions> extends GoogleUploadConnectionParams<AuthOptions>, AIStudioFileConnectionParams {\n}\nexport declare class AIStudioFileUploadConnection<AuthOptions> extends GoogleMultipartUploadConnection<AsyncCallerCallOptions, AIStudioFileSaveResponse, AuthOptions> {\n get computedApiVersion(): string;\n buildUrl(): Promise<string>;\n}\nexport interface AIStudioFileDownloadConnectionParams<AuthOptions> extends AIStudioFileConnectionParams, GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n}\nexport declare class AIStudioFileDownloadConnection<ResponseType extends GoogleResponse, AuthOptions> extends GoogleDownloadConnection<AsyncCallerCallOptions, ResponseType, AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n constructor(fields: AIStudioFileDownloadConnectionParams<AuthOptions>, caller: AsyncCaller, client: GoogleAbstractedClient);\n get computedApiVersion(): string;\n buildMethod(): GoogleAbstractedClientOpsMethod;\n buildUrl(): Promise<string>;\n}\nexport interface BlobStoreAIStudioFileBaseParams<AuthOptions> extends BlobStoreGoogleParams<AuthOptions> {\n retryTime?: number;\n}\nexport declare abstract class BlobStoreAIStudioFileBase<AuthOptions> extends BlobStoreGoogle<AIStudioFileResponse, AuthOptions> {\n params?: BlobStoreAIStudioFileBaseParams<AuthOptions>;\n retryTime: number;\n constructor(fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>);\n _pathToName(path: string): string;\n abstract buildAbstractedClient(fields?: BlobStoreGoogleParams<AuthOptions>): GoogleAbstractedClient;\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient;\n buildApiKey(fields?: BlobStoreGoogleParams<AuthOptions>): string | undefined;\n buildClient(fields?: BlobStoreGoogleParams<AuthOptions>): GoogleAbstractedClient;\n _regetMetadata(key: string): Promise<AIStudioFileObject>;\n _set([key, blob]: [\n string,\n MediaBlob\n ]): Promise<AIStudioFileSaveResponse>;\n buildSetConnection([_key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<AsyncCallerCallOptions, AIStudioFileResponse, AuthOptions>;\n buildSetMetadata([_key, _blob]: [string, MediaBlob]): Record<string, unknown>;\n buildGetMetadataConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, AIStudioFileResponse, AuthOptions>;\n buildGetDataConnection(_key: string): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n _get(key: string): Promise<MediaBlob | undefined>;\n buildDeleteConnection(key: string): GoogleDownloadConnection<AsyncCallerCallOptions, AIStudioFileResponse, AuthOptions>;\n}\n//# sourceMappingURL=media.d.ts.map"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","names":["fields: GoogleConnectionParams<AuthOptions> | undefined","caller: AsyncCaller","client: GoogleAbstractedClient","separator: string","data: MediaBlob","metadata: Record<string, unknown>","options: CallOptions","fields?: BlobStoreGoogleParams<AuthOptions>","keyValuePair: [string, MediaBlob]","keyValuePairs: [string, MediaBlob][]","key: string","keys: string[]","_prefix: string | undefined","uri: string","fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>","fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","fields: GoogleCloudStorageRawConnectionParams<AuthOptions>","fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>","params: GoogleCloudStorageUploadConnectionParams<AuthOptions>","ret: GoogleCloudStorageObject","params: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","params: GoogleCloudStorageRawConnectionParams<AuthOptions>","value: string","field: string","fields: AIStudioFileDownloadConnectionParams<AuthOptions>","fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>","params: BlobStoreAIStudioFileBaseParams<AuthOptions>","path: string","apiKey: string","params: AIStudioFileDownloadConnectionParams<AuthOptions>","_key: string","data: MediaBlobData"],"sources":["../../src/experimental/media.ts"],"sourcesContent":["import {\n AsyncCaller,\n AsyncCallerCallOptions,\n AsyncCallerParams,\n} from \"@langchain/core/utils/async_caller\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n MediaBlob,\n BlobStore,\n BlobStoreOptions,\n MediaBlobData,\n} from \"./utils/media_core.js\";\nimport {\n GoogleConnectionParams,\n GoogleRawResponse,\n GoogleResponse,\n} from \"../types.js\";\nimport { GoogleHostConnection, GoogleRawConnection } from \"../connection.js\";\nimport {\n ApiKeyGoogleAuth,\n GoogleAbstractedClient,\n GoogleAbstractedClientOpsMethod,\n} from \"../auth.js\";\n\nexport interface GoogleUploadConnectionParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions> {}\n\nexport abstract class GoogleMultipartUploadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n constructor(\n fields: GoogleConnectionParams<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n }\n\n async _body(\n separator: string,\n data: MediaBlob,\n metadata: Record<string, unknown>\n ): Promise<string> {\n const contentType = data.mimetype;\n const { encoded, encoding } = await data.encode();\n const body = [\n `--${separator}`,\n \"Content-Type: application/json; charset=UTF-8\",\n \"\",\n JSON.stringify(metadata),\n \"\",\n `--${separator}`,\n `Content-Type: ${contentType}`,\n `Content-Transfer-Encoding: ${encoding}`,\n \"\",\n encoded,\n `--${separator}--`,\n ];\n return body.join(\"\\n\");\n }\n\n async request(\n data: MediaBlob,\n metadata: Record<string, unknown>,\n options: CallOptions\n ): Promise<ResponseType> {\n const separator = `separator-${Date.now()}`;\n const body = await this._body(separator, data, metadata);\n const requestHeaders = {\n \"Content-Type\": `multipart/related; boundary=${separator}`,\n \"X-Goog-Upload-Protocol\": \"multipart\",\n };\n const response = this._request(body, options, requestHeaders);\n return response;\n }\n}\n\nexport abstract class GoogleDownloadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n async request(options: CallOptions): Promise<ResponseType> {\n return this._request(undefined, options);\n }\n}\n\nexport abstract class GoogleDownloadRawConnection<\n CallOptions extends AsyncCallerCallOptions,\n AuthOptions\n> extends GoogleRawConnection<CallOptions, AuthOptions> {\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return \"GET\";\n }\n\n async request(options: CallOptions): Promise<GoogleRawResponse> {\n return this._request(undefined, options);\n }\n}\n\nexport interface BlobStoreGoogleParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions>,\n AsyncCallerParams,\n BlobStoreOptions {}\n\nexport abstract class BlobStoreGoogle<\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends BlobStore {\n caller: AsyncCaller;\n\n client: GoogleAbstractedClient;\n\n constructor(fields?: BlobStoreGoogleParams<AuthOptions>) {\n super(fields);\n this.caller = new AsyncCaller(fields ?? {});\n this.client = this.buildClient(fields);\n }\n\n abstract buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n abstract buildSetMetadata([key, blob]: [string, MediaBlob]): Record<\n string,\n unknown\n >;\n\n abstract buildSetConnection([key, blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _set(keyValuePair: [string, MediaBlob]): Promise<ResponseType> {\n const [, blob] = keyValuePair;\n const setMetadata = this.buildSetMetadata(keyValuePair);\n const metadata = setMetadata;\n const options = {};\n const connection = this.buildSetConnection(keyValuePair);\n const response = await connection.request(blob, metadata, options);\n return response;\n }\n\n async mset(keyValuePairs: [string, MediaBlob][]): Promise<void> {\n const ret = keyValuePairs.map((keyValue) => this._set(keyValue));\n await Promise.all(ret);\n }\n\n abstract buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _getMetadata(key: string): Promise<Record<string, unknown>> {\n const connection = this.buildGetMetadataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n abstract buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n\n async _getData(key: string): Promise<Blob> {\n const connection = this.buildGetDataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n _getMimetypeFromMetadata(metadata: Record<string, unknown>): string {\n return metadata.contentType as string;\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n const data = await this._getData(key);\n if (data && metadata) {\n const ret = await MediaBlob.fromBlob(data, { metadata, path: key });\n return ret;\n } else {\n return undefined;\n }\n }\n\n async mget(keys: string[]): Promise<(MediaBlob | undefined)[]> {\n const ret = keys.map((key) => this._get(key));\n return await Promise.all(ret);\n }\n\n abstract buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n >;\n\n async _del(key: string): Promise<void> {\n const connection = this.buildDeleteConnection(key);\n const options = {};\n await connection.request(options);\n }\n\n async mdelete(keys: string[]): Promise<void> {\n const ret = keys.map((key) => this._del(key));\n await Promise.all(ret);\n }\n\n // eslint-disable-next-line require-yield\n async *yieldKeys(_prefix: string | undefined): AsyncGenerator<string> {\n // TODO: Implement. Most have an implementation that uses nextToken.\n throw new Error(\"yieldKeys is not implemented\");\n }\n}\n\n/**\n * Based on https://cloud.google.com/storage/docs/json_api/v1/objects#resource\n */\nexport interface GoogleCloudStorageObject extends Record<string, unknown> {\n id?: string;\n name?: string;\n contentType?: string;\n metadata?: Record<string, unknown>;\n // This is incomplete.\n}\n\nexport interface GoogleCloudStorageResponse extends GoogleResponse {\n data: GoogleCloudStorageObject;\n}\n\nexport type BucketAndPath = {\n bucket: string;\n path: string;\n};\n\nexport class GoogleCloudStorageUri {\n static uriRegexp = /gs:\\/\\/([a-z0-9][a-z0-9._-]+[a-z0-9])\\/(.*)/;\n\n bucket: string;\n\n path: string;\n\n constructor(uri: string) {\n const bucketAndPath = GoogleCloudStorageUri.uriToBucketAndPath(uri);\n this.bucket = bucketAndPath.bucket;\n this.path = bucketAndPath.path;\n }\n\n get uri() {\n return `gs://${this.bucket}/${this.path}`;\n }\n\n get isValid() {\n return (\n typeof this.bucket !== \"undefined\" && typeof this.path !== \"undefined\"\n );\n }\n\n static uriToBucketAndPath(uri: string): BucketAndPath {\n const match = this.uriRegexp.exec(uri);\n if (!match) {\n throw new Error(`Invalid gs:// URI: ${uri}`);\n }\n return {\n bucket: match[1],\n path: match[2],\n };\n }\n\n static isValidUri(uri: string): boolean {\n return this.uriRegexp.test(uri);\n }\n}\n\nexport interface GoogleCloudStorageConnectionParams {\n uri: string;\n}\n\nexport interface GoogleCloudStorageUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n GoogleCloudStorageConnectionParams {}\n\nexport class GoogleCloudStorageUploadConnection<\n AuthOptions\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n return `https://storage.googleapis.com/upload/storage/${this.apiVersion}/b/${this.uri.bucket}/o?uploadType=multipart`;\n }\n}\n\nexport interface GoogleCloudStorageDownloadConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n}\n\nexport class GoogleCloudStorageDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n method: GoogleAbstractedClientOpsMethod;\n\n alt: \"media\" | undefined;\n\n constructor(\n fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n this.method = fields.method;\n this.alt = fields.alt;\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}`;\n return this.alt ? `${ret}?alt=${this.alt}` : ret;\n }\n}\n\nexport interface GoogleCloudStorageRawConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {}\n\nexport class GoogleCloudStorageRawConnection<\n AuthOptions\n> extends GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageRawConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}?alt=media`;\n return ret;\n }\n}\n\nexport interface BlobStoreGoogleCloudStorageBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n uriPrefix: GoogleCloudStorageUri;\n}\n\nexport abstract class BlobStoreGoogleCloudStorageBase<\n AuthOptions\n> extends BlobStoreGoogle<GoogleCloudStorageResponse, AuthOptions> {\n params: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>;\n\n constructor(fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>) {\n super(fields);\n this.params = fields;\n this.defaultStoreOptions = {\n ...this.defaultStoreOptions,\n pathPrefix: fields.uriPrefix.uri,\n };\n }\n\n buildSetConnection([key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageUploadConnectionParams<AuthOptions> = {\n ...this.params,\n uri: key,\n };\n return new GoogleCloudStorageUploadConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown> {\n const uri = new GoogleCloudStorageUri(key);\n const ret: GoogleCloudStorageObject = {\n name: uri.path,\n metadata: blob.metadata,\n contentType: blob.mimetype,\n };\n return ret;\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"GET\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleCloudStorageResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n const params: GoogleCloudStorageRawConnectionParams<AuthOptions> = {\n uri: key,\n };\n return new GoogleCloudStorageRawConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"DELETE\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n\nexport type AIStudioFileState =\n | \"PROCESSING\"\n | \"ACTIVE\"\n | \"FAILED\"\n | \"STATE_UNSPECIFIED\";\n\nexport type AIStudioFileVideoMetadata = {\n videoMetadata: {\n videoDuration: string; // Duration in seconds, possibly with fractional, ending in \"s\"\n };\n};\n\nexport type AIStudioFileMetadata = AIStudioFileVideoMetadata;\n\nexport interface AIStudioFileObject {\n name?: string;\n displayName?: string;\n mimeType?: string;\n sizeBytes?: string; // int64 format\n createTime?: string; // timestamp format\n updateTime?: string; // timestamp format\n expirationTime?: string; // timestamp format\n sha256Hash?: string; // base64 encoded\n uri?: string;\n state?: AIStudioFileState;\n error?: {\n code: number;\n message: string;\n details: Record<string, unknown>[];\n };\n metadata?: AIStudioFileMetadata;\n}\n\nexport class AIStudioMediaBlob extends MediaBlob {\n _valueAsDate(value: string): Date {\n if (!value) {\n return new Date(0);\n }\n return new Date(value);\n }\n\n _metadataFieldAsDate(field: string): Date {\n return this._valueAsDate(this.metadata?.[field]);\n }\n\n get createDate(): Date {\n return this._metadataFieldAsDate(\"createTime\");\n }\n\n get updateDate(): Date {\n return this._metadataFieldAsDate(\"updateTime\");\n }\n\n get expirationDate(): Date {\n return this._metadataFieldAsDate(\"expirationTime\");\n }\n\n get isExpired(): boolean {\n const now = new Date().toISOString();\n const exp = this.metadata?.expirationTime ?? now;\n return exp <= now;\n }\n}\n\nexport interface AIStudioFileGetResponse extends GoogleResponse {\n data: AIStudioFileObject;\n}\n\nexport interface AIStudioFileSaveResponse extends GoogleResponse {\n data: {\n file: AIStudioFileObject;\n };\n}\n\nexport interface AIStudioFileListResponse extends GoogleResponse {\n data: {\n files: AIStudioFileObject[];\n nextPageToken: string;\n };\n}\n\nexport type AIStudioFileResponse =\n | AIStudioFileGetResponse\n | AIStudioFileSaveResponse\n | AIStudioFileListResponse;\n\nexport interface AIStudioFileConnectionParams {}\n\nexport interface AIStudioFileUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n AIStudioFileConnectionParams {}\n\nexport class AIStudioFileUploadConnection<\n AuthOptions\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileSaveResponse,\n AuthOptions\n> {\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/upload/${this.apiVersion}/files`;\n }\n}\n\nexport interface AIStudioFileDownloadConnectionParams<AuthOptions>\n extends AIStudioFileConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n}\n\nexport class AIStudioFileDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n method: GoogleAbstractedClientOpsMethod;\n\n name: string;\n\n constructor(\n fields: AIStudioFileDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.method = fields.method;\n this.name = fields.name;\n }\n\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/${this.apiVersion}/files/${this.name}`;\n }\n}\n\nexport interface BlobStoreAIStudioFileBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n retryTime?: number;\n}\n\nexport abstract class BlobStoreAIStudioFileBase<\n AuthOptions\n> extends BlobStoreGoogle<AIStudioFileResponse, AuthOptions> {\n params?: BlobStoreAIStudioFileBaseParams<AuthOptions>;\n\n retryTime: number = 1000;\n\n constructor(fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>) {\n const params: BlobStoreAIStudioFileBaseParams<AuthOptions> = {\n defaultStoreOptions: {\n pathPrefix: \"https://generativelanguage.googleapis.com/v1beta/files/\",\n actionIfInvalid: \"removePath\",\n },\n ...fields,\n };\n super(params);\n this.params = params;\n this.retryTime = params?.retryTime ?? this.retryTime ?? 1000;\n }\n\n _pathToName(path: string): string {\n return path.split(\"/\").pop() ?? path;\n }\n\n abstract buildAbstractedClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(fields?: BlobStoreGoogleParams<AuthOptions>): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n // TODO: Test that you can use OAuth to access\n return this.buildAbstractedClient(fields);\n }\n }\n\n async _regetMetadata(key: string): Promise<AIStudioFileObject> {\n // Sleep for some time period\n await new Promise((resolve) => setTimeout(resolve, this.retryTime));\n\n // Fetch the latest metadata\n return this._getMetadata(key);\n }\n\n async _set([key, blob]: [\n string,\n MediaBlob\n ]): Promise<AIStudioFileSaveResponse> {\n const response = (await super._set([\n key,\n blob,\n ])) as AIStudioFileSaveResponse;\n\n let file = response.data?.file ?? { state: \"FAILED\" };\n while (file.state === \"PROCESSING\" && file.uri && this.retryTime > 0) {\n file = await this._regetMetadata(file.uri);\n }\n\n // The response should contain the name (and valid URI), so we need to\n // update the blob with this. We can't return a new blob, since mset()\n // doesn't return anything.\n blob.path = file.uri;\n blob.metadata = {\n ...blob.metadata,\n ...file,\n };\n return response;\n }\n\n buildSetConnection([_key, _blob]: [\n string,\n MediaBlob\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n return new AIStudioFileUploadConnection(\n this.params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([_key, _blob]: [string, MediaBlob]): Record<\n string,\n unknown\n > {\n return {};\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"GET\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n _key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n throw new Error(\"AI Studio File API does not provide data\");\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n if (metadata) {\n const contentType =\n (metadata?.mimeType as string) ?? \"application/octet-stream\";\n // TODO - Get the actual data (and other metadata) from an optional backing store\n const data: MediaBlobData = {\n value: \"\",\n type: contentType,\n };\n\n return new MediaBlob({\n path: key,\n data,\n metadata,\n });\n } else {\n return undefined;\n }\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"DELETE\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media.js","names":["fields: GoogleConnectionParams<AuthOptions> | undefined","caller: AsyncCaller","client: GoogleAbstractedClient","separator: string","data: MediaBlob","metadata: Record<string, unknown>","options: CallOptions","fields?: BlobStoreGoogleParams<AuthOptions>","keyValuePair: [string, MediaBlob]","keyValuePairs: [string, MediaBlob][]","key: string","keys: string[]","_prefix: string | undefined","uri: string","fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>","fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","fields: GoogleCloudStorageRawConnectionParams<AuthOptions>","fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>","params: GoogleCloudStorageUploadConnectionParams<AuthOptions>","ret: GoogleCloudStorageObject","params: GoogleCloudStorageDownloadConnectionParams<AuthOptions>","params: GoogleCloudStorageRawConnectionParams<AuthOptions>","value: string","field: string","fields: AIStudioFileDownloadConnectionParams<AuthOptions>","fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>","params: BlobStoreAIStudioFileBaseParams<AuthOptions>","path: string","apiKey: string","params: AIStudioFileDownloadConnectionParams<AuthOptions>","_key: string","data: MediaBlobData"],"sources":["../../src/experimental/media.ts"],"sourcesContent":["import {\n AsyncCaller,\n AsyncCallerCallOptions,\n AsyncCallerParams,\n} from \"@langchain/core/utils/async_caller\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport {\n MediaBlob,\n BlobStore,\n BlobStoreOptions,\n MediaBlobData,\n} from \"./utils/media_core.js\";\nimport {\n GoogleConnectionParams,\n GoogleRawResponse,\n GoogleResponse,\n} from \"../types.js\";\nimport { GoogleHostConnection, GoogleRawConnection } from \"../connection.js\";\nimport {\n ApiKeyGoogleAuth,\n GoogleAbstractedClient,\n GoogleAbstractedClientOpsMethod,\n} from \"../auth.js\";\n\nexport interface GoogleUploadConnectionParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions> {}\n\nexport abstract class GoogleMultipartUploadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n constructor(\n fields: GoogleConnectionParams<AuthOptions> | undefined,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n }\n\n async _body(\n separator: string,\n data: MediaBlob,\n metadata: Record<string, unknown>\n ): Promise<string> {\n const contentType = data.mimetype;\n const { encoded, encoding } = await data.encode();\n const body = [\n `--${separator}`,\n \"Content-Type: application/json; charset=UTF-8\",\n \"\",\n JSON.stringify(metadata),\n \"\",\n `--${separator}`,\n `Content-Type: ${contentType}`,\n `Content-Transfer-Encoding: ${encoding}`,\n \"\",\n encoded,\n `--${separator}--`,\n ];\n return body.join(\"\\n\");\n }\n\n async request(\n data: MediaBlob,\n metadata: Record<string, unknown>,\n options: CallOptions\n ): Promise<ResponseType> {\n const separator = `separator-${Date.now()}`;\n const body = await this._body(separator, data, metadata);\n const requestHeaders = {\n \"Content-Type\": `multipart/related; boundary=${separator}`,\n \"X-Goog-Upload-Protocol\": \"multipart\",\n };\n const response = this._request(body, options, requestHeaders);\n return response;\n }\n}\n\nexport abstract class GoogleDownloadConnection<\n CallOptions extends AsyncCallerCallOptions,\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleHostConnection<CallOptions, ResponseType, AuthOptions> {\n async request(options: CallOptions): Promise<ResponseType> {\n return this._request(undefined, options);\n }\n}\n\nexport abstract class GoogleDownloadRawConnection<\n CallOptions extends AsyncCallerCallOptions,\n AuthOptions,\n> extends GoogleRawConnection<CallOptions, AuthOptions> {\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return \"GET\";\n }\n\n async request(options: CallOptions): Promise<GoogleRawResponse> {\n return this._request(undefined, options);\n }\n}\n\nexport interface BlobStoreGoogleParams<AuthOptions>\n extends GoogleConnectionParams<AuthOptions>,\n AsyncCallerParams,\n BlobStoreOptions {}\n\nexport abstract class BlobStoreGoogle<\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends BlobStore {\n caller: AsyncCaller;\n\n client: GoogleAbstractedClient;\n\n constructor(fields?: BlobStoreGoogleParams<AuthOptions>) {\n super(fields);\n this.caller = new AsyncCaller(fields ?? {});\n this.client = this.buildClient(fields);\n }\n\n abstract buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n abstract buildSetMetadata([key, blob]: [string, MediaBlob]): Record<\n string,\n unknown\n >;\n\n abstract buildSetConnection([key, blob]: [\n string,\n MediaBlob,\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _set(keyValuePair: [string, MediaBlob]): Promise<ResponseType> {\n const [, blob] = keyValuePair;\n const setMetadata = this.buildSetMetadata(keyValuePair);\n const metadata = setMetadata;\n const options = {};\n const connection = this.buildSetConnection(keyValuePair);\n const response = await connection.request(blob, metadata, options);\n return response;\n }\n\n async mset(keyValuePairs: [string, MediaBlob][]): Promise<void> {\n const ret = keyValuePairs.map((keyValue) => this._set(keyValue));\n await Promise.all(ret);\n }\n\n abstract buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n >;\n\n async _getMetadata(key: string): Promise<Record<string, unknown>> {\n const connection = this.buildGetMetadataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n abstract buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions>;\n\n async _getData(key: string): Promise<Blob> {\n const connection = this.buildGetDataConnection(key);\n const options = {};\n const response = await connection.request(options);\n return response.data;\n }\n\n _getMimetypeFromMetadata(metadata: Record<string, unknown>): string {\n return metadata.contentType as string;\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n const data = await this._getData(key);\n if (data && metadata) {\n const ret = await MediaBlob.fromBlob(data, { metadata, path: key });\n return ret;\n } else {\n return undefined;\n }\n }\n\n async mget(keys: string[]): Promise<(MediaBlob | undefined)[]> {\n const ret = keys.map((key) => this._get(key));\n return await Promise.all(ret);\n }\n\n abstract buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n >;\n\n async _del(key: string): Promise<void> {\n const connection = this.buildDeleteConnection(key);\n const options = {};\n await connection.request(options);\n }\n\n async mdelete(keys: string[]): Promise<void> {\n const ret = keys.map((key) => this._del(key));\n await Promise.all(ret);\n }\n\n // eslint-disable-next-line require-yield\n async *yieldKeys(_prefix: string | undefined): AsyncGenerator<string> {\n // TODO: Implement. Most have an implementation that uses nextToken.\n throw new Error(\"yieldKeys is not implemented\");\n }\n}\n\n/**\n * Based on https://cloud.google.com/storage/docs/json_api/v1/objects#resource\n */\nexport interface GoogleCloudStorageObject extends Record<string, unknown> {\n id?: string;\n name?: string;\n contentType?: string;\n metadata?: Record<string, unknown>;\n // This is incomplete.\n}\n\nexport interface GoogleCloudStorageResponse extends GoogleResponse {\n data: GoogleCloudStorageObject;\n}\n\nexport type BucketAndPath = {\n bucket: string;\n path: string;\n};\n\nexport class GoogleCloudStorageUri {\n static uriRegexp = /gs:\\/\\/([a-z0-9][a-z0-9._-]+[a-z0-9])\\/(.*)/;\n\n bucket: string;\n\n path: string;\n\n constructor(uri: string) {\n const bucketAndPath = GoogleCloudStorageUri.uriToBucketAndPath(uri);\n this.bucket = bucketAndPath.bucket;\n this.path = bucketAndPath.path;\n }\n\n get uri() {\n return `gs://${this.bucket}/${this.path}`;\n }\n\n get isValid() {\n return (\n typeof this.bucket !== \"undefined\" && typeof this.path !== \"undefined\"\n );\n }\n\n static uriToBucketAndPath(uri: string): BucketAndPath {\n const match = this.uriRegexp.exec(uri);\n if (!match) {\n throw new Error(`Invalid gs:// URI: ${uri}`);\n }\n return {\n bucket: match[1],\n path: match[2],\n };\n }\n\n static isValidUri(uri: string): boolean {\n return this.uriRegexp.test(uri);\n }\n}\n\nexport interface GoogleCloudStorageConnectionParams {\n uri: string;\n}\n\nexport interface GoogleCloudStorageUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n GoogleCloudStorageConnectionParams {}\n\nexport class GoogleCloudStorageUploadConnection<\n AuthOptions,\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageUploadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n return `https://storage.googleapis.com/upload/storage/${this.apiVersion}/b/${this.uri.bucket}/o?uploadType=multipart`;\n }\n}\n\nexport interface GoogleCloudStorageDownloadConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n alt: \"media\" | undefined;\n}\n\nexport class GoogleCloudStorageDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n uri: GoogleCloudStorageUri;\n\n method: GoogleAbstractedClientOpsMethod;\n\n alt: \"media\" | undefined;\n\n constructor(\n fields: GoogleCloudStorageDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n this.method = fields.method;\n this.alt = fields.alt;\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}`;\n return this.alt ? `${ret}?alt=${this.alt}` : ret;\n }\n}\n\nexport interface GoogleCloudStorageRawConnectionParams<AuthOptions>\n extends GoogleCloudStorageConnectionParams,\n GoogleConnectionParams<AuthOptions> {}\n\nexport class GoogleCloudStorageRawConnection<\n AuthOptions,\n> extends GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n uri: GoogleCloudStorageUri;\n\n constructor(\n fields: GoogleCloudStorageRawConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.uri = new GoogleCloudStorageUri(fields.uri);\n }\n\n async buildUrl(): Promise<string> {\n const path = encodeURIComponent(this.uri.path);\n const ret = `https://storage.googleapis.com/storage/${this.apiVersion}/b/${this.uri.bucket}/o/${path}?alt=media`;\n return ret;\n }\n}\n\nexport interface BlobStoreGoogleCloudStorageBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n uriPrefix: GoogleCloudStorageUri;\n}\n\nexport abstract class BlobStoreGoogleCloudStorageBase<\n AuthOptions,\n> extends BlobStoreGoogle<GoogleCloudStorageResponse, AuthOptions> {\n params: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>;\n\n constructor(fields: BlobStoreGoogleCloudStorageBaseParams<AuthOptions>) {\n super(fields);\n this.params = fields;\n this.defaultStoreOptions = {\n ...this.defaultStoreOptions,\n pathPrefix: fields.uriPrefix.uri,\n };\n }\n\n buildSetConnection([key, _blob]: [\n string,\n MediaBlob,\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageUploadConnectionParams<AuthOptions> = {\n ...this.params,\n uri: key,\n };\n return new GoogleCloudStorageUploadConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([key, blob]: [string, MediaBlob]): Record<string, unknown> {\n const uri = new GoogleCloudStorageUri(key);\n const ret: GoogleCloudStorageObject = {\n name: uri.path,\n metadata: blob.metadata,\n contentType: blob.mimetype,\n };\n return ret;\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleCloudStorageResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"GET\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleCloudStorageResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n const params: GoogleCloudStorageRawConnectionParams<AuthOptions> = {\n uri: key,\n };\n return new GoogleCloudStorageRawConnection<AuthOptions>(\n params,\n this.caller,\n this.client\n );\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n GoogleResponse,\n AuthOptions\n > {\n const params: GoogleCloudStorageDownloadConnectionParams<AuthOptions> = {\n uri: key,\n method: \"DELETE\",\n alt: undefined,\n };\n return new GoogleCloudStorageDownloadConnection<\n GoogleResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n\nexport type AIStudioFileState =\n | \"PROCESSING\"\n | \"ACTIVE\"\n | \"FAILED\"\n | \"STATE_UNSPECIFIED\";\n\nexport type AIStudioFileVideoMetadata = {\n videoMetadata: {\n videoDuration: string; // Duration in seconds, possibly with fractional, ending in \"s\"\n };\n};\n\nexport type AIStudioFileMetadata = AIStudioFileVideoMetadata;\n\nexport interface AIStudioFileObject {\n name?: string;\n displayName?: string;\n mimeType?: string;\n sizeBytes?: string; // int64 format\n createTime?: string; // timestamp format\n updateTime?: string; // timestamp format\n expirationTime?: string; // timestamp format\n sha256Hash?: string; // base64 encoded\n uri?: string;\n state?: AIStudioFileState;\n error?: {\n code: number;\n message: string;\n details: Record<string, unknown>[];\n };\n metadata?: AIStudioFileMetadata;\n}\n\nexport class AIStudioMediaBlob extends MediaBlob {\n _valueAsDate(value: string): Date {\n if (!value) {\n return new Date(0);\n }\n return new Date(value);\n }\n\n _metadataFieldAsDate(field: string): Date {\n return this._valueAsDate(this.metadata?.[field]);\n }\n\n get createDate(): Date {\n return this._metadataFieldAsDate(\"createTime\");\n }\n\n get updateDate(): Date {\n return this._metadataFieldAsDate(\"updateTime\");\n }\n\n get expirationDate(): Date {\n return this._metadataFieldAsDate(\"expirationTime\");\n }\n\n get isExpired(): boolean {\n const now = new Date().toISOString();\n const exp = this.metadata?.expirationTime ?? now;\n return exp <= now;\n }\n}\n\nexport interface AIStudioFileGetResponse extends GoogleResponse {\n data: AIStudioFileObject;\n}\n\nexport interface AIStudioFileSaveResponse extends GoogleResponse {\n data: {\n file: AIStudioFileObject;\n };\n}\n\nexport interface AIStudioFileListResponse extends GoogleResponse {\n data: {\n files: AIStudioFileObject[];\n nextPageToken: string;\n };\n}\n\nexport type AIStudioFileResponse =\n | AIStudioFileGetResponse\n | AIStudioFileSaveResponse\n | AIStudioFileListResponse;\n\nexport interface AIStudioFileConnectionParams {}\n\nexport interface AIStudioFileUploadConnectionParams<AuthOptions>\n extends GoogleUploadConnectionParams<AuthOptions>,\n AIStudioFileConnectionParams {}\n\nexport class AIStudioFileUploadConnection<\n AuthOptions,\n> extends GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileSaveResponse,\n AuthOptions\n> {\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/upload/${this.apiVersion}/files`;\n }\n}\n\nexport interface AIStudioFileDownloadConnectionParams<AuthOptions>\n extends AIStudioFileConnectionParams,\n GoogleConnectionParams<AuthOptions> {\n method: GoogleAbstractedClientOpsMethod;\n name: string;\n}\n\nexport class AIStudioFileDownloadConnection<\n ResponseType extends GoogleResponse,\n AuthOptions,\n> extends GoogleDownloadConnection<\n AsyncCallerCallOptions,\n ResponseType,\n AuthOptions\n> {\n method: GoogleAbstractedClientOpsMethod;\n\n name: string;\n\n constructor(\n fields: AIStudioFileDownloadConnectionParams<AuthOptions>,\n caller: AsyncCaller,\n client: GoogleAbstractedClient\n ) {\n super(fields, caller, client);\n this.method = fields.method;\n this.name = fields.name;\n }\n\n get computedApiVersion(): string {\n return \"v1beta\";\n }\n\n buildMethod(): GoogleAbstractedClientOpsMethod {\n return this.method;\n }\n\n async buildUrl(): Promise<string> {\n return `https://generativelanguage.googleapis.com/${this.apiVersion}/files/${this.name}`;\n }\n}\n\nexport interface BlobStoreAIStudioFileBaseParams<AuthOptions>\n extends BlobStoreGoogleParams<AuthOptions> {\n retryTime?: number;\n}\n\nexport abstract class BlobStoreAIStudioFileBase<\n AuthOptions,\n> extends BlobStoreGoogle<AIStudioFileResponse, AuthOptions> {\n params?: BlobStoreAIStudioFileBaseParams<AuthOptions>;\n\n retryTime: number = 1000;\n\n constructor(fields?: BlobStoreAIStudioFileBaseParams<AuthOptions>) {\n const params: BlobStoreAIStudioFileBaseParams<AuthOptions> = {\n defaultStoreOptions: {\n pathPrefix: \"https://generativelanguage.googleapis.com/v1beta/files/\",\n actionIfInvalid: \"removePath\",\n },\n ...fields,\n };\n super(params);\n this.params = params;\n this.retryTime = params?.retryTime ?? this.retryTime ?? 1000;\n }\n\n _pathToName(path: string): string {\n return path.split(\"/\").pop() ?? path;\n }\n\n abstract buildAbstractedClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient;\n\n buildApiKeyClient(apiKey: string): GoogleAbstractedClient {\n return new ApiKeyGoogleAuth(apiKey);\n }\n\n buildApiKey(fields?: BlobStoreGoogleParams<AuthOptions>): string | undefined {\n return fields?.apiKey ?? getEnvironmentVariable(\"GOOGLE_API_KEY\");\n }\n\n buildClient(\n fields?: BlobStoreGoogleParams<AuthOptions>\n ): GoogleAbstractedClient {\n const apiKey = this.buildApiKey(fields);\n if (apiKey) {\n return this.buildApiKeyClient(apiKey);\n } else {\n // TODO: Test that you can use OAuth to access\n return this.buildAbstractedClient(fields);\n }\n }\n\n async _regetMetadata(key: string): Promise<AIStudioFileObject> {\n // Sleep for some time period\n await new Promise((resolve) => setTimeout(resolve, this.retryTime));\n\n // Fetch the latest metadata\n return this._getMetadata(key);\n }\n\n async _set([key, blob]: [\n string,\n MediaBlob,\n ]): Promise<AIStudioFileSaveResponse> {\n const response = (await super._set([\n key,\n blob,\n ])) as AIStudioFileSaveResponse;\n\n let file = response.data?.file ?? { state: \"FAILED\" };\n while (file.state === \"PROCESSING\" && file.uri && this.retryTime > 0) {\n file = await this._regetMetadata(file.uri);\n }\n\n // The response should contain the name (and valid URI), so we need to\n // update the blob with this. We can't return a new blob, since mset()\n // doesn't return anything.\n blob.path = file.uri;\n blob.metadata = {\n ...blob.metadata,\n ...file,\n };\n return response;\n }\n\n buildSetConnection([_key, _blob]: [\n string,\n MediaBlob,\n ]): GoogleMultipartUploadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n return new AIStudioFileUploadConnection(\n this.params,\n this.caller,\n this.client\n );\n }\n\n buildSetMetadata([_key, _blob]: [string, MediaBlob]): Record<\n string,\n unknown\n > {\n return {};\n }\n\n buildGetMetadataConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"GET\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n\n buildGetDataConnection(\n _key: string\n ): GoogleDownloadRawConnection<AsyncCallerCallOptions, AuthOptions> {\n throw new Error(\"AI Studio File API does not provide data\");\n }\n\n async _get(key: string): Promise<MediaBlob | undefined> {\n const metadata = await this._getMetadata(key);\n if (metadata) {\n const contentType =\n (metadata?.mimeType as string) ?? \"application/octet-stream\";\n // TODO - Get the actual data (and other metadata) from an optional backing store\n const data: MediaBlobData = {\n value: \"\",\n type: contentType,\n };\n\n return new MediaBlob({\n path: key,\n data,\n metadata,\n });\n } else {\n return undefined;\n }\n }\n\n buildDeleteConnection(\n key: string\n ): GoogleDownloadConnection<\n AsyncCallerCallOptions,\n AIStudioFileResponse,\n AuthOptions\n > {\n const params: AIStudioFileDownloadConnectionParams<AuthOptions> = {\n ...this.params,\n method: \"DELETE\",\n name: this._pathToName(key),\n };\n return new AIStudioFileDownloadConnection<\n AIStudioFileResponse,\n AuthOptions\n >(params, this.caller, this.client);\n }\n}\n"],"mappings":";;;;;;;AA2BA,IAAsB,kCAAtB,cAIU,qBAA6D;CACrE,YACEA,QACAC,QACAC,QACA;EACA,MAAM,QAAQ,QAAQ,OAAO;CAC9B;CAED,MAAM,MACJC,WACAC,MACAC,UACiB;EACjB,MAAM,cAAc,KAAK;EACzB,MAAM,EAAE,SAAS,UAAU,GAAG,MAAM,KAAK,QAAQ;EACjD,MAAM,OAAO;GACX,CAAC,EAAE,EAAE,WAAW;GAChB;GACA;GACA,KAAK,UAAU,SAAS;GACxB;GACA,CAAC,EAAE,EAAE,WAAW;GAChB,CAAC,cAAc,EAAE,aAAa;GAC9B,CAAC,2BAA2B,EAAE,UAAU;GACxC;GACA;GACA,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;EACnB;AACD,SAAO,KAAK,KAAK,KAAK;CACvB;CAED,MAAM,QACJD,MACAC,UACAC,SACuB;EACvB,MAAM,YAAY,CAAC,UAAU,EAAE,KAAK,KAAK,EAAE;EAC3C,MAAM,OAAO,MAAM,KAAK,MAAM,WAAW,MAAM,SAAS;EACxD,MAAM,iBAAiB;GACrB,gBAAgB,CAAC,4BAA4B,EAAE,WAAW;GAC1D,0BAA0B;EAC3B;EACD,MAAM,WAAW,KAAK,SAAS,MAAM,SAAS,eAAe;AAC7D,SAAO;CACR;AACF;AAED,IAAsB,2BAAtB,cAIU,qBAA6D;CACrE,MAAM,QAAQA,SAA6C;AACzD,SAAO,KAAK,SAAS,QAAW,QAAQ;CACzC;AACF;AAED,IAAsB,8BAAtB,cAGU,oBAA8C;CACtD,cAA+C;AAC7C,SAAO;CACR;CAED,MAAM,QAAQA,SAAkD;AAC9D,SAAO,KAAK,SAAS,QAAW,QAAQ;CACzC;AACF;AAOD,IAAsB,kBAAtB,cAGU,UAAU;CAClB;CAEA;CAEA,YAAYC,QAA6C;EACvD,MAAM,OAAO;EACb,KAAK,SAAS,IAAI,YAAY,UAAU,CAAE;EAC1C,KAAK,SAAS,KAAK,YAAY,OAAO;CACvC;CAoBD,MAAM,KAAKC,cAA0D;EACnE,MAAM,GAAG,KAAK,GAAG;EACjB,MAAM,cAAc,KAAK,iBAAiB,aAAa;EACvD,MAAM,WAAW;EACjB,MAAM,UAAU,CAAE;EAClB,MAAM,aAAa,KAAK,mBAAmB,aAAa;EACxD,MAAM,WAAW,MAAM,WAAW,QAAQ,MAAM,UAAU,QAAQ;AAClE,SAAO;CACR;CAED,MAAM,KAAKC,eAAqD;EAC9D,MAAM,MAAM,cAAc,IAAI,CAAC,aAAa,KAAK,KAAK,SAAS,CAAC;EAChE,MAAM,QAAQ,IAAI,IAAI;CACvB;CAUD,MAAM,aAAaC,KAA+C;EAChE,MAAM,aAAa,KAAK,2BAA2B,IAAI;EACvD,MAAM,UAAU,CAAE;EAClB,MAAM,WAAW,MAAM,WAAW,QAAQ,QAAQ;AAClD,SAAO,SAAS;CACjB;CAMD,MAAM,SAASA,KAA4B;EACzC,MAAM,aAAa,KAAK,uBAAuB,IAAI;EACnD,MAAM,UAAU,CAAE;EAClB,MAAM,WAAW,MAAM,WAAW,QAAQ,QAAQ;AAClD,SAAO,SAAS;CACjB;CAED,yBAAyBL,UAA2C;AAClE,SAAO,SAAS;CACjB;CAED,MAAM,KAAKK,KAA6C;EACtD,MAAM,WAAW,MAAM,KAAK,aAAa,IAAI;EAC7C,MAAM,OAAO,MAAM,KAAK,SAAS,IAAI;AACrC,MAAI,QAAQ,UAAU;GACpB,MAAM,MAAM,MAAM,UAAU,SAAS,MAAM;IAAE;IAAU,MAAM;GAAK,EAAC;AACnE,UAAO;EACR,MACC,QAAO;CAEV;CAED,MAAM,KAAKC,MAAoD;EAC7D,MAAM,MAAM,KAAK,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC;AAC7C,SAAO,MAAM,QAAQ,IAAI,IAAI;CAC9B;CAUD,MAAM,KAAKD,KAA4B;EACrC,MAAM,aAAa,KAAK,sBAAsB,IAAI;EAClD,MAAM,UAAU,CAAE;EAClB,MAAM,WAAW,QAAQ,QAAQ;CAClC;CAED,MAAM,QAAQC,MAA+B;EAC3C,MAAM,MAAM,KAAK,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC;EAC7C,MAAM,QAAQ,IAAI,IAAI;CACvB;CAGD,OAAO,UAAUC,SAAqD;AAEpE,QAAM,IAAI,MAAM;CACjB;AACF;AAsBD,IAAa,wBAAb,MAAa,sBAAsB;CACjC,OAAO,YAAY;CAEnB;CAEA;CAEA,YAAYC,KAAa;EACvB,MAAM,gBAAgB,sBAAsB,mBAAmB,IAAI;EACnE,KAAK,SAAS,cAAc;EAC5B,KAAK,OAAO,cAAc;CAC3B;CAED,IAAI,MAAM;AACR,SAAO,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,EAAE,KAAK,MAAM;CAC1C;CAED,IAAI,UAAU;AACZ,SACE,OAAO,KAAK,WAAW,eAAe,OAAO,KAAK,SAAS;CAE9D;CAED,OAAO,mBAAmBA,KAA4B;EACpD,MAAM,QAAQ,KAAK,UAAU,KAAK,IAAI;AACtC,MAAI,CAAC,MACH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAE7C,SAAO;GACL,QAAQ,MAAM;GACd,MAAM,MAAM;EACb;CACF;CAED,OAAO,WAAWA,KAAsB;AACtC,SAAO,KAAK,UAAU,KAAK,IAAI;CAChC;AACF;AAUD,IAAa,qCAAb,cAEU,gCAIR;CACA;CAEA,YACEC,QACAb,QACAC,QACA;EACA,MAAM,QAAQ,QAAQ,OAAO;EAC7B,KAAK,MAAM,IAAI,sBAAsB,OAAO;CAC7C;CAED,MAAM,WAA4B;AAChC,SAAO,CAAC,8CAA8C,EAAE,KAAK,WAAW,GAAG,EAAE,KAAK,IAAI,OAAO,uBAAuB,CAAC;CACtH;AACF;AASD,IAAa,uCAAb,cAGU,yBAIR;CACA;CAEA;CAEA;CAEA,YACEa,QACAd,QACAC,QACA;EACA,MAAM,QAAQ,QAAQ,OAAO;EAC7B,KAAK,MAAM,IAAI,sBAAsB,OAAO;EAC5C,KAAK,SAAS,OAAO;EACrB,KAAK,MAAM,OAAO;CACnB;CAED,cAA+C;AAC7C,SAAO,KAAK;CACb;CAED,MAAM,WAA4B;EAChC,MAAM,OAAO,mBAAmB,KAAK,IAAI,KAAK;EAC9C,MAAM,MAAM,CAAC,uCAAuC,EAAE,KAAK,WAAW,GAAG,EAAE,KAAK,IAAI,OAAO,GAAG,EAAE,MAAM;AACtG,SAAO,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,KAAK,KAAK,GAAG;CAC9C;AACF;AAMD,IAAa,kCAAb,cAEU,4BAAiE;CACzE;CAEA,YACEc,QACAf,QACAC,QACA;EACA,MAAM,QAAQ,QAAQ,OAAO;EAC7B,KAAK,MAAM,IAAI,sBAAsB,OAAO;CAC7C;CAED,MAAM,WAA4B;EAChC,MAAM,OAAO,mBAAmB,KAAK,IAAI,KAAK;EAC9C,MAAM,MAAM,CAAC,uCAAuC,EAAE,KAAK,WAAW,GAAG,EAAE,KAAK,IAAI,OAAO,GAAG,EAAE,KAAK,UAAU,CAAC;AAChH,SAAO;CACR;AACF;AAOD,IAAsB,kCAAtB,cAEU,gBAAyD;CACjE;CAEA,YAAYe,QAA4D;EACtE,MAAM,OAAO;EACb,KAAK,SAAS;EACd,KAAK,sBAAsB;GACzB,GAAG,KAAK;GACR,YAAY,OAAO,UAAU;EAC9B;CACF;CAED,mBAAmB,CAAC,KAAK,MAGxB,EAIC;EACA,MAAMC,SAAgE;GACpE,GAAG,KAAK;GACR,KAAK;EACN;AACD,SAAO,IAAI,mCACT,QACA,KAAK,QACL,KAAK;CAER;CAED,iBAAiB,CAAC,KAAK,KAA0B,EAA2B;EAC1E,MAAM,MAAM,IAAI,sBAAsB;EACtC,MAAMC,MAAgC;GACpC,MAAM,IAAI;GACV,UAAU,KAAK;GACf,aAAa,KAAK;EACnB;AACD,SAAO;CACR;CAED,2BACET,KAKA;EACA,MAAMU,SAAkE;GACtE,KAAK;GACL,QAAQ;GACR,KAAK;EACN;AACD,SAAO,IAAI,qCAGT,QAAQ,KAAK,QAAQ,KAAK;CAC7B;CAED,uBACEV,KACkE;EAClE,MAAMW,SAA6D,EACjE,KAAK,IACN;AACD,SAAO,IAAI,gCACT,QACA,KAAK,QACL,KAAK;CAER;CAED,sBACEX,KAKA;EACA,MAAMU,SAAkE;GACtE,KAAK;GACL,QAAQ;GACR,KAAK;EACN;AACD,SAAO,IAAI,qCAGT,QAAQ,KAAK,QAAQ,KAAK;CAC7B;AACF;AAmCD,IAAa,oBAAb,cAAuC,UAAU;CAC/C,aAAaE,OAAqB;AAChC,MAAI,CAAC,MACH,wBAAO,IAAI,KAAK;AAElB,SAAO,IAAI,KAAK;CACjB;CAED,qBAAqBC,OAAqB;AACxC,SAAO,KAAK,aAAa,KAAK,WAAW,OAAO;CACjD;CAED,IAAI,aAAmB;AACrB,SAAO,KAAK,qBAAqB,aAAa;CAC/C;CAED,IAAI,aAAmB;AACrB,SAAO,KAAK,qBAAqB,aAAa;CAC/C;CAED,IAAI,iBAAuB;AACzB,SAAO,KAAK,qBAAqB,iBAAiB;CACnD;CAED,IAAI,YAAqB;EACvB,MAAM,uBAAM,IAAI,QAAO,aAAa;EACpC,MAAM,MAAM,KAAK,UAAU,kBAAkB;AAC7C,SAAO,OAAO;CACf;AACF;AA8BD,IAAa,+BAAb,cAEU,gCAIR;CACA,IAAI,qBAA6B;AAC/B,SAAO;CACR;CAED,MAAM,WAA4B;AAChC,SAAO,CAAC,iDAAiD,EAAE,KAAK,WAAW,MAAM,CAAC;CACnF;AACF;AASD,IAAa,iCAAb,cAGU,yBAIR;CACA;CAEA;CAEA,YACEC,QACAvB,QACAC,QACA;EACA,MAAM,QAAQ,QAAQ,OAAO;EAC7B,KAAK,SAAS,OAAO;EACrB,KAAK,OAAO,OAAO;CACpB;CAED,IAAI,qBAA6B;AAC/B,SAAO;CACR;CAED,cAA+C;AAC7C,SAAO,KAAK;CACb;CAED,MAAM,WAA4B;AAChC,SAAO,CAAC,0CAA0C,EAAE,KAAK,WAAW,OAAO,EAAE,KAAK,MAAM;CACzF;AACF;AAOD,IAAsB,4BAAtB,cAEU,gBAAmD;CAC3D;CAEA,YAAoB;CAEpB,YAAYuB,QAAuD;EACjE,MAAMC,SAAuD;GAC3D,qBAAqB;IACnB,YAAY;IACZ,iBAAiB;GAClB;GACD,GAAG;EACJ;EACD,MAAM,OAAO;EACb,KAAK,SAAS;EACd,KAAK,YAAY,QAAQ,aAAa,KAAK,aAAa;CACzD;CAED,YAAYC,MAAsB;AAChC,SAAO,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI;CACjC;CAMD,kBAAkBC,QAAwC;AACxD,SAAO,IAAI,iBAAiB;CAC7B;CAED,YAAYrB,QAAiE;AAC3E,SAAO,QAAQ,UAAU,uBAAuB,iBAAiB;CAClE;CAED,YACEA,QACwB;EACxB,MAAM,SAAS,KAAK,YAAY,OAAO;AACvC,MAAI,OACF,QAAO,KAAK,kBAAkB,OAAO;MAGrC,QAAO,KAAK,sBAAsB,OAAO;CAE5C;CAED,MAAM,eAAeG,KAA0C;EAE7D,MAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,KAAK,UAAU;AAGlE,SAAO,KAAK,aAAa,IAAI;CAC9B;CAED,MAAM,KAAK,CAAC,KAAK,KAGhB,EAAqC;EACpC,MAAM,WAAY,MAAM,MAAM,KAAK,CACjC,KACA,IACD,EAAC;EAEF,IAAI,OAAO,SAAS,MAAM,QAAQ,EAAE,OAAO,SAAU;AACrD,SAAO,KAAK,UAAU,gBAAgB,KAAK,OAAO,KAAK,YAAY,GACjE,OAAO,MAAM,KAAK,eAAe,KAAK,IAAI;EAM5C,KAAK,OAAO,KAAK;EACjB,KAAK,WAAW;GACd,GAAG,KAAK;GACR,GAAG;EACJ;AACD,SAAO;CACR;CAED,mBAAmB,CAAC,MAAM,MAGzB,EAIC;AACA,SAAO,IAAI,6BACT,KAAK,QACL,KAAK,QACL,KAAK;CAER;CAED,iBAAiB,CAAC,MAAM,MAA2B,EAGjD;AACA,SAAO,CAAE;CACV;CAED,2BACEA,KAKA;EACA,MAAMmB,SAA4D;GAChE,GAAG,KAAK;GACR,QAAQ;GACR,MAAM,KAAK,YAAY,IAAI;EAC5B;AACD,SAAO,IAAI,+BAGT,QAAQ,KAAK,QAAQ,KAAK;CAC7B;CAED,uBACEC,MACkE;AAClE,QAAM,IAAI,MAAM;CACjB;CAED,MAAM,KAAKpB,KAA6C;EACtD,MAAM,WAAW,MAAM,KAAK,aAAa,IAAI;AAC7C,MAAI,UAAU;GACZ,MAAM,cACH,UAAU,YAAuB;GAEpC,MAAMqB,OAAsB;IAC1B,OAAO;IACP,MAAM;GACP;AAED,UAAO,IAAI,UAAU;IACnB,MAAM;IACN;IACA;GACD;EACF,MACC,QAAO;CAEV;CAED,sBACErB,KAKA;EACA,MAAMmB,SAA4D;GAChE,GAAG,KAAK;GACR,QAAQ;GACR,MAAM,KAAK,YAAY,IAAI;EAC5B;AACD,SAAO,IAAI,+BAGT,QAAQ,KAAK,QAAQ,KAAK;CAC7B;AACF"}
|