@langchain/google-common 0.2.18 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/LICENSE +6 -6
  3. package/dist/_virtual/rolldown_runtime.cjs +25 -0
  4. package/dist/auth.cjs +82 -116
  5. package/dist/auth.cjs.map +1 -0
  6. package/dist/auth.d.cts +46 -0
  7. package/dist/auth.d.cts.map +1 -0
  8. package/dist/auth.d.ts +41 -36
  9. package/dist/auth.d.ts.map +1 -0
  10. package/dist/auth.js +80 -110
  11. package/dist/auth.js.map +1 -0
  12. package/dist/chat_models.cjs +264 -466
  13. package/dist/chat_models.cjs.map +1 -0
  14. package/dist/chat_models.d.cts +109 -0
  15. package/dist/chat_models.d.cts.map +1 -0
  16. package/dist/chat_models.d.ts +98 -73
  17. package/dist/chat_models.d.ts.map +1 -0
  18. package/dist/chat_models.js +258 -457
  19. package/dist/chat_models.js.map +1 -0
  20. package/dist/connection.cjs +321 -466
  21. package/dist/connection.cjs.map +1 -0
  22. package/dist/connection.d.cts +109 -0
  23. package/dist/connection.d.cts.map +1 -0
  24. package/dist/connection.d.ts +98 -91
  25. package/dist/connection.d.ts.map +1 -0
  26. package/dist/connection.js +317 -459
  27. package/dist/connection.js.map +1 -0
  28. package/dist/embeddings.cjs +135 -186
  29. package/dist/embeddings.cjs.map +1 -0
  30. package/dist/embeddings.d.cts +44 -0
  31. package/dist/embeddings.d.cts.map +1 -0
  32. package/dist/embeddings.d.ts +38 -32
  33. package/dist/embeddings.d.ts.map +1 -0
  34. package/dist/embeddings.js +133 -181
  35. package/dist/embeddings.js.map +1 -0
  36. package/dist/experimental/media.cjs +380 -482
  37. package/dist/experimental/media.cjs.map +1 -0
  38. package/dist/experimental/media.d.cts +198 -0
  39. package/dist/experimental/media.d.cts.map +1 -0
  40. package/dist/experimental/media.d.ts +190 -202
  41. package/dist/experimental/media.d.ts.map +1 -0
  42. package/dist/experimental/media.js +369 -468
  43. package/dist/experimental/media.js.map +1 -0
  44. package/dist/experimental/utils/media_core.cjs +403 -517
  45. package/dist/experimental/utils/media_core.cjs.map +1 -0
  46. package/dist/experimental/utils/media_core.d.cts +215 -0
  47. package/dist/experimental/utils/media_core.d.cts.map +1 -0
  48. package/dist/experimental/utils/media_core.d.ts +171 -165
  49. package/dist/experimental/utils/media_core.d.ts.map +1 -0
  50. package/dist/experimental/utils/media_core.js +395 -506
  51. package/dist/experimental/utils/media_core.js.map +1 -0
  52. package/dist/index.cjs +58 -27
  53. package/dist/index.d.cts +13 -0
  54. package/dist/index.d.ts +13 -11
  55. package/dist/index.js +13 -11
  56. package/dist/llms.cjs +157 -244
  57. package/dist/llms.cjs.map +1 -0
  58. package/dist/llms.d.cts +72 -0
  59. package/dist/llms.d.cts.map +1 -0
  60. package/dist/llms.d.ts +64 -54
  61. package/dist/llms.d.ts.map +1 -0
  62. package/dist/llms.js +154 -238
  63. package/dist/llms.js.map +1 -0
  64. package/dist/output_parsers.cjs +148 -173
  65. package/dist/output_parsers.cjs.map +1 -0
  66. package/dist/output_parsers.d.cts +53 -0
  67. package/dist/output_parsers.d.cts.map +1 -0
  68. package/dist/output_parsers.d.ts +46 -42
  69. package/dist/output_parsers.d.ts.map +1 -0
  70. package/dist/output_parsers.js +146 -168
  71. package/dist/output_parsers.js.map +1 -0
  72. package/dist/profiles.cjs +219 -0
  73. package/dist/profiles.cjs.map +1 -0
  74. package/dist/profiles.js +218 -0
  75. package/dist/profiles.js.map +1 -0
  76. package/dist/types-anthropic.d.cts +229 -0
  77. package/dist/types-anthropic.d.cts.map +1 -0
  78. package/dist/types-anthropic.d.ts +221 -215
  79. package/dist/types-anthropic.d.ts.map +1 -0
  80. package/dist/types.cjs +51 -62
  81. package/dist/types.cjs.map +1 -0
  82. package/dist/types.d.cts +748 -0
  83. package/dist/types.d.cts.map +1 -0
  84. package/dist/types.d.ts +669 -656
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +46 -45
  87. package/dist/types.js.map +1 -0
  88. package/dist/utils/anthropic.cjs +598 -821
  89. package/dist/utils/anthropic.cjs.map +1 -0
  90. package/dist/utils/anthropic.js +597 -818
  91. package/dist/utils/anthropic.js.map +1 -0
  92. package/dist/utils/common.cjs +130 -211
  93. package/dist/utils/common.cjs.map +1 -0
  94. package/dist/utils/common.d.cts +13 -0
  95. package/dist/utils/common.d.cts.map +1 -0
  96. package/dist/utils/common.d.ts +12 -7
  97. package/dist/utils/common.d.ts.map +1 -0
  98. package/dist/utils/common.js +128 -207
  99. package/dist/utils/common.js.map +1 -0
  100. package/dist/utils/failed_handler.cjs +28 -30
  101. package/dist/utils/failed_handler.cjs.map +1 -0
  102. package/dist/utils/failed_handler.d.cts +9 -0
  103. package/dist/utils/failed_handler.d.cts.map +1 -0
  104. package/dist/utils/failed_handler.d.ts +8 -2
  105. package/dist/utils/failed_handler.d.ts.map +1 -0
  106. package/dist/utils/failed_handler.js +28 -28
  107. package/dist/utils/failed_handler.js.map +1 -0
  108. package/dist/utils/gemini.cjs +1020 -1488
  109. package/dist/utils/gemini.cjs.map +1 -0
  110. package/dist/utils/gemini.d.cts +51 -0
  111. package/dist/utils/gemini.d.cts.map +1 -0
  112. package/dist/utils/gemini.d.ts +51 -48
  113. package/dist/utils/gemini.d.ts.map +1 -0
  114. package/dist/utils/gemini.js +1015 -1479
  115. package/dist/utils/gemini.js.map +1 -0
  116. package/dist/utils/index.cjs +38 -23
  117. package/dist/utils/index.d.cts +8 -0
  118. package/dist/utils/index.d.ts +8 -7
  119. package/dist/utils/index.js +8 -7
  120. package/dist/utils/palm.d.cts +11 -0
  121. package/dist/utils/palm.d.cts.map +1 -0
  122. package/dist/utils/palm.d.ts +9 -4
  123. package/dist/utils/palm.d.ts.map +1 -0
  124. package/dist/utils/safety.cjs +13 -22
  125. package/dist/utils/safety.cjs.map +1 -0
  126. package/dist/utils/safety.d.cts +12 -0
  127. package/dist/utils/safety.d.cts.map +1 -0
  128. package/dist/utils/safety.d.ts +10 -4
  129. package/dist/utils/safety.d.ts.map +1 -0
  130. package/dist/utils/safety.js +13 -19
  131. package/dist/utils/safety.js.map +1 -0
  132. package/dist/utils/stream.cjs +296 -475
  133. package/dist/utils/stream.cjs.map +1 -0
  134. package/dist/utils/stream.d.cts +165 -0
  135. package/dist/utils/stream.d.cts.map +1 -0
  136. package/dist/utils/stream.d.ts +156 -131
  137. package/dist/utils/stream.d.ts.map +1 -0
  138. package/dist/utils/stream.js +293 -469
  139. package/dist/utils/stream.js.map +1 -0
  140. package/dist/utils/zod_to_gemini_parameters.cjs +43 -81
  141. package/dist/utils/zod_to_gemini_parameters.cjs.map +1 -0
  142. package/dist/utils/zod_to_gemini_parameters.d.cts +22 -0
  143. package/dist/utils/zod_to_gemini_parameters.d.cts.map +1 -0
  144. package/dist/utils/zod_to_gemini_parameters.d.ts +21 -6
  145. package/dist/utils/zod_to_gemini_parameters.d.ts.map +1 -0
  146. package/dist/utils/zod_to_gemini_parameters.js +40 -76
  147. package/dist/utils/zod_to_gemini_parameters.js.map +1 -0
  148. package/package.json +72 -85
  149. package/dist/types-anthropic.cjs +0 -2
  150. package/dist/types-anthropic.js +0 -1
  151. package/dist/utils/anthropic.d.ts +0 -4
  152. package/dist/utils/palm.cjs +0 -2
  153. package/dist/utils/palm.js +0 -1
  154. package/experimental/media.cjs +0 -1
  155. package/experimental/media.d.cts +0 -1
  156. package/experimental/media.d.ts +0 -1
  157. package/experimental/media.js +0 -1
  158. package/experimental/utils/media_core.cjs +0 -1
  159. package/experimental/utils/media_core.d.cts +0 -1
  160. package/experimental/utils/media_core.d.ts +0 -1
  161. package/experimental/utils/media_core.js +0 -1
  162. package/index.cjs +0 -1
  163. package/index.d.cts +0 -1
  164. package/index.d.ts +0 -1
  165. package/index.js +0 -1
  166. package/types.cjs +0 -1
  167. package/types.d.cts +0 -1
  168. package/types.d.ts +0 -1
  169. package/types.js +0 -1
  170. package/utils.cjs +0 -1
  171. package/utils.d.cts +0 -1
  172. package/utils.d.ts +0 -1
  173. package/utils.js +0 -1
@@ -1,78 +1,81 @@
1
1
  import { BaseStore } from "@langchain/core/stores";
2
2
  import { Serializable } from "@langchain/core/load/serializable";
3
- export type MediaBlobData = {
4
- value: string;
5
- type: string;
3
+
4
+ //#region src/experimental/utils/media_core.d.ts
5
+ type MediaBlobData = {
6
+ value: string; // In Base64 encoding
7
+ type: string; // The mime type and possibly encoding
6
8
  };
7
- export interface MediaBlobParameters {
8
- data?: MediaBlobData;
9
- metadata?: Record<string, unknown>;
10
- path?: string;
9
+ interface MediaBlobParameters {
10
+ data?: MediaBlobData;
11
+ metadata?: Record<string, unknown>;
12
+ path?: string;
11
13
  }
12
14
  /**
13
15
  * Represents a chunk of data that can be identified by the path where the
14
16
  * data is (or will be) located, along with optional metadata about the data.
15
17
  */
16
- export declare class MediaBlob extends Serializable implements MediaBlobParameters {
17
- lc_serializable: boolean;
18
- lc_namespace: string[];
19
- data: MediaBlobData;
20
- metadata?: Record<string, any>;
21
- path?: string;
22
- constructor(params: MediaBlobParameters);
23
- get size(): number;
24
- get dataType(): string;
25
- get encoding(): string;
26
- get mimetype(): string;
27
- get asBytes(): Uint8Array;
28
- asString(): Promise<string>;
29
- asBase64(): Promise<string>;
30
- asDataUrl(): Promise<string>;
31
- asUri(): Promise<string>;
32
- encode(): Promise<{
33
- encoded: string;
34
- encoding: string;
35
- }>;
36
- static fromDataUrl(url: string): MediaBlob;
37
- static fromBlob(blob: Blob, other?: Omit<MediaBlobParameters, "data">): Promise<MediaBlob>;
18
+ declare class MediaBlob extends Serializable implements MediaBlobParameters {
19
+ lc_serializable: boolean;
20
+ lc_namespace: string[];
21
+ data: MediaBlobData;
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ metadata?: Record<string, any>;
24
+ path?: string;
25
+ constructor(params: MediaBlobParameters);
26
+ get size(): number;
27
+ get dataType(): string;
28
+ get encoding(): string;
29
+ get mimetype(): string;
30
+ get asBytes(): Uint8Array;
31
+ asString(): Promise<string>;
32
+ asBase64(): Promise<string>;
33
+ asDataUrl(): Promise<string>;
34
+ asUri(): Promise<string>;
35
+ encode(): Promise<{
36
+ encoded: string;
37
+ encoding: string;
38
+ }>;
39
+ static fromDataUrl(url: string): MediaBlob;
40
+ static fromBlob(blob: Blob, other?: Omit<MediaBlobParameters, "data">): Promise<MediaBlob>;
38
41
  }
39
- export type ActionIfInvalidAction = "ignore" | "prefixPath" | "prefixUuid1" | "prefixUuid4" | "prefixUuid6" | "prefixUuid7" | "removePath";
40
- export interface BlobStoreStoreOptions {
41
- /**
42
- * If the path is missing or invalid in the blob, how should we create
43
- * a new path?
44
- * Subclasses may define their own methods, but the following are supported
45
- * by default:
46
- * - Undefined or an emtpy string: Reject the blob
47
- * - "ignore": Attempt to store it anyway (but this may fail)
48
- * - "prefixPath": Use the default prefix for the BlobStore and get the
49
- * unique portion from the URL. The original path is stored in the metadata
50
- * - "prefixUuid": Use the default prefix for the BlobStore and get the
51
- * unique portion from a generated UUID. The original path is stored
52
- * in the metadata
53
- */
54
- actionIfInvalid?: ActionIfInvalidAction;
55
- /**
56
- * The expected prefix for URIs that are stored.
57
- * This may be used to test if a MediaBlob is valid and used to create a new
58
- * path if "prefixPath" or "prefixUuid" is set for actionIfInvalid.
59
- */
60
- pathPrefix?: string;
42
+ type ActionIfInvalidAction = "ignore" | "prefixPath" | "prefixUuid1" | "prefixUuid4" | "prefixUuid6" | "prefixUuid7" | "removePath";
43
+ interface BlobStoreStoreOptions {
44
+ /**
45
+ * If the path is missing or invalid in the blob, how should we create
46
+ * a new path?
47
+ * Subclasses may define their own methods, but the following are supported
48
+ * by default:
49
+ * - Undefined or an emtpy string: Reject the blob
50
+ * - "ignore": Attempt to store it anyway (but this may fail)
51
+ * - "prefixPath": Use the default prefix for the BlobStore and get the
52
+ * unique portion from the URL. The original path is stored in the metadata
53
+ * - "prefixUuid": Use the default prefix for the BlobStore and get the
54
+ * unique portion from a generated UUID. The original path is stored
55
+ * in the metadata
56
+ */
57
+ actionIfInvalid?: ActionIfInvalidAction;
58
+ /**
59
+ * The expected prefix for URIs that are stored.
60
+ * This may be used to test if a MediaBlob is valid and used to create a new
61
+ * path if "prefixPath" or "prefixUuid" is set for actionIfInvalid.
62
+ */
63
+ pathPrefix?: string;
61
64
  }
62
- export type ActionIfBlobMissingAction = "emptyBlob";
63
- export interface BlobStoreFetchOptions {
64
- /**
65
- * If the blob is not found when fetching, what should we do?
66
- * Subclasses may define their own methods, but the following are supported
67
- * by default:
68
- * - Undefined or an empty string: return undefined
69
- * - "emptyBlob": return a new MediaBlob that has the path set, but nothing else.
70
- */
71
- actionIfBlobMissing?: ActionIfBlobMissingAction;
65
+ type ActionIfBlobMissingAction = "emptyBlob";
66
+ interface BlobStoreFetchOptions {
67
+ /**
68
+ * If the blob is not found when fetching, what should we do?
69
+ * Subclasses may define their own methods, but the following are supported
70
+ * by default:
71
+ * - Undefined or an empty string: return undefined
72
+ * - "emptyBlob": return a new MediaBlob that has the path set, but nothing else.
73
+ */
74
+ actionIfBlobMissing?: ActionIfBlobMissingAction;
72
75
  }
73
- export interface BlobStoreOptions {
74
- defaultStoreOptions?: BlobStoreStoreOptions;
75
- defaultFetchOptions?: BlobStoreFetchOptions;
76
+ interface BlobStoreOptions {
77
+ defaultStoreOptions?: BlobStoreStoreOptions;
78
+ defaultFetchOptions?: BlobStoreFetchOptions;
76
79
  }
77
80
  /**
78
81
  * A specialized Store that is designed to handle MediaBlobs and use the
@@ -86,104 +89,104 @@ export interface BlobStoreOptions {
86
89
  * BaseStore may be implemented (or even possible). Those that are not
87
90
  * implemented should be documented and throw an Error if called.
88
91
  */
89
- export declare abstract class BlobStore extends BaseStore<string, MediaBlob> {
90
- lc_namespace: string[];
91
- defaultStoreOptions: BlobStoreStoreOptions;
92
- defaultFetchOptions: BlobStoreFetchOptions;
93
- constructor(opts?: BlobStoreOptions);
94
- protected _realKey(key: string | MediaBlob): Promise<string>;
95
- /**
96
- * Is the path supported by this BlobStore?
97
- *
98
- * Although this is async, this is expected to be a relatively fast operation
99
- * (ie - you shouldn't make network calls).
100
- *
101
- * @param path The path to check
102
- * @param opts Any options (if needed) that may be used to determine if it is valid
103
- * @return If the path is supported
104
- */
105
- hasValidPath(path: string | undefined, opts?: BlobStoreStoreOptions): Promise<boolean>;
106
- protected _blobPathSuffix(blob: MediaBlob): string;
107
- protected _newBlob(oldBlob: MediaBlob, newPath?: string): Promise<MediaBlob>;
108
- protected _validBlobPrefixPath(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
109
- protected _validBlobPrefixUuidFunction(name: ActionIfInvalidAction | string): string;
110
- protected _validBlobPrefixUuid(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
111
- protected _validBlobRemovePath(blob: MediaBlob, _opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
112
- /**
113
- * Based on the blob and options, return a blob that has a valid path
114
- * that can be saved.
115
- * @param blob
116
- * @param opts
117
- */
118
- protected _validStoreBlob(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
119
- store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
120
- protected _missingFetchBlobEmpty(path: string, _opts?: BlobStoreFetchOptions): Promise<MediaBlob>;
121
- protected _missingFetchBlob(path: string, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;
122
- fetch(key: string | MediaBlob, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;
92
+ declare abstract class BlobStore extends BaseStore<string, MediaBlob> {
93
+ lc_namespace: string[]; // FIXME - What should this be? And why?
94
+ defaultStoreOptions: BlobStoreStoreOptions;
95
+ defaultFetchOptions: BlobStoreFetchOptions;
96
+ constructor(opts?: BlobStoreOptions);
97
+ protected _realKey(key: string | MediaBlob): Promise<string>;
98
+ /**
99
+ * Is the path supported by this BlobStore?
100
+ *
101
+ * Although this is async, this is expected to be a relatively fast operation
102
+ * (ie - you shouldn't make network calls).
103
+ *
104
+ * @param path The path to check
105
+ * @param opts Any options (if needed) that may be used to determine if it is valid
106
+ * @return If the path is supported
107
+ */
108
+ hasValidPath(path: string | undefined, opts?: BlobStoreStoreOptions): Promise<boolean>;
109
+ protected _blobPathSuffix(blob: MediaBlob): string;
110
+ protected _newBlob(oldBlob: MediaBlob, newPath?: string): Promise<MediaBlob>;
111
+ protected _validBlobPrefixPath(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
112
+ protected _validBlobPrefixUuidFunction(name: ActionIfInvalidAction | string): string;
113
+ protected _validBlobPrefixUuid(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
114
+ protected _validBlobRemovePath(blob: MediaBlob, _opts?: BlobStoreStoreOptions): Promise<MediaBlob>;
115
+ /**
116
+ * Based on the blob and options, return a blob that has a valid path
117
+ * that can be saved.
118
+ * @param blob
119
+ * @param opts
120
+ */
121
+ protected _validStoreBlob(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
122
+ store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
123
+ protected _missingFetchBlobEmpty(path: string, _opts?: BlobStoreFetchOptions): Promise<MediaBlob>;
124
+ protected _missingFetchBlob(path: string, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;
125
+ fetch(key: string | MediaBlob, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;
123
126
  }
124
- export interface BackedBlobStoreOptions extends BlobStoreOptions {
125
- backingStore: BaseStore<string, MediaBlob>;
127
+ interface BackedBlobStoreOptions extends BlobStoreOptions {
128
+ backingStore: BaseStore<string, MediaBlob>;
126
129
  }
127
- export declare class BackedBlobStore extends BlobStore {
128
- backingStore: BaseStore<string, MediaBlob>;
129
- constructor(opts: BackedBlobStoreOptions);
130
- mdelete(keys: string[]): Promise<void>;
131
- mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
132
- mset(keyValuePairs: [string, MediaBlob][]): Promise<void>;
133
- yieldKeys(prefix: string | undefined): AsyncGenerator<string>;
130
+ declare class BackedBlobStore extends BlobStore {
131
+ backingStore: BaseStore<string, MediaBlob>;
132
+ constructor(opts: BackedBlobStoreOptions);
133
+ mdelete(keys: string[]): Promise<void>;
134
+ mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
135
+ mset(keyValuePairs: [string, MediaBlob][]): Promise<void>;
136
+ yieldKeys(prefix: string | undefined): AsyncGenerator<string>;
134
137
  }
135
- export interface ReadThroughBlobStoreOptions extends BlobStoreOptions {
136
- baseStore: BlobStore;
137
- backingStore: BlobStore;
138
+ interface ReadThroughBlobStoreOptions extends BlobStoreOptions {
139
+ baseStore: BlobStore;
140
+ backingStore: BlobStore;
138
141
  }
139
- export declare class ReadThroughBlobStore extends BlobStore {
140
- baseStore: BlobStore;
141
- backingStore: BlobStore;
142
- constructor(opts: ReadThroughBlobStoreOptions);
143
- store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
144
- mdelete(keys: string[]): Promise<void>;
145
- mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
146
- mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
147
- yieldKeys(prefix: string | undefined): AsyncGenerator<string>;
142
+ declare class ReadThroughBlobStore extends BlobStore {
143
+ baseStore: BlobStore;
144
+ backingStore: BlobStore;
145
+ constructor(opts: ReadThroughBlobStoreOptions);
146
+ store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;
147
+ mdelete(keys: string[]): Promise<void>;
148
+ mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
149
+ mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
150
+ yieldKeys(prefix: string | undefined): AsyncGenerator<string>;
148
151
  }
149
- export declare class SimpleWebBlobStore extends BlobStore {
150
- _notImplementedException(): void;
151
- hasValidPath(path: string | undefined, _opts?: BlobStoreStoreOptions): Promise<boolean>;
152
- _fetch(url: string): Promise<MediaBlob | undefined>;
153
- mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
154
- mdelete(_keys: string[]): Promise<void>;
155
- mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
156
- yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;
152
+ declare class SimpleWebBlobStore extends BlobStore {
153
+ _notImplementedException(): void;
154
+ hasValidPath(path: string | undefined, _opts?: BlobStoreStoreOptions): Promise<boolean>;
155
+ _fetch(url: string): Promise<MediaBlob | undefined>;
156
+ mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
157
+ mdelete(_keys: string[]): Promise<void>;
158
+ mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
159
+ yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;
157
160
  }
158
161
  /**
159
162
  * A blob "store" that works with data: URLs that will turn the URL into
160
163
  * a blob.
161
164
  */
162
- export declare class DataBlobStore extends BlobStore {
163
- _notImplementedException(): void;
164
- hasValidPath(path: string, _opts?: BlobStoreStoreOptions): Promise<boolean>;
165
- _fetch(url: string): MediaBlob;
166
- mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
167
- mdelete(_keys: string[]): Promise<void>;
168
- mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
169
- yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;
165
+ declare class DataBlobStore extends BlobStore {
166
+ _notImplementedException(): void;
167
+ hasValidPath(path: string, _opts?: BlobStoreStoreOptions): Promise<boolean>;
168
+ _fetch(url: string): MediaBlob;
169
+ mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;
170
+ mdelete(_keys: string[]): Promise<void>;
171
+ mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;
172
+ yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;
170
173
  }
171
- export interface MediaManagerConfiguration {
172
- /**
173
- * A store that, given a common URI, returns the corresponding MediaBlob.
174
- * The returned MediaBlob may have a different URI.
175
- * In many cases, this will be a ReadThroughStore or something similar
176
- * that has a cached version of the MediaBlob, but also a way to get
177
- * a new (or refreshed) version.
178
- */
179
- store: BlobStore;
180
- /**
181
- * BlobStores that can resolve a URL into the MediaBlob to save
182
- * in the canonical store. This list is evaluated in order.
183
- * If not provided, a default list (which involves a DataBlobStore
184
- * and a SimpleWebBlobStore) will be used.
185
- */
186
- resolvers?: BlobStore[];
174
+ interface MediaManagerConfiguration {
175
+ /**
176
+ * A store that, given a common URI, returns the corresponding MediaBlob.
177
+ * The returned MediaBlob may have a different URI.
178
+ * In many cases, this will be a ReadThroughStore or something similar
179
+ * that has a cached version of the MediaBlob, but also a way to get
180
+ * a new (or refreshed) version.
181
+ */
182
+ store: BlobStore;
183
+ /**
184
+ * BlobStores that can resolve a URL into the MediaBlob to save
185
+ * in the canonical store. This list is evaluated in order.
186
+ * If not provided, a default list (which involves a DataBlobStore
187
+ * and a SimpleWebBlobStore) will be used.
188
+ */
189
+ resolvers?: BlobStore[];
187
190
  }
188
191
  /**
189
192
  * Responsible for converting a URI (typically a web URL) into a MediaBlob.
@@ -192,18 +195,21 @@ export interface MediaManagerConfiguration {
192
195
  * through the Base64 of the media or through a canonical URI that the LLM
193
196
  * supports.
194
197
  */
195
- export declare class MediaManager {
196
- store: BlobStore;
197
- resolvers: BlobStore[] | undefined;
198
- constructor(config: MediaManagerConfiguration);
199
- defaultResolvers(): BlobStore[];
200
- _isInvalid(blob: MediaBlob | undefined): Promise<boolean>;
201
- /**
202
- * Given the public URI, load what is at this URI and save it
203
- * in the store.
204
- * @param uri The URI to resolve using the resolver
205
- * @return A canonical MediaBlob for this URI
206
- */
207
- _resolveAndSave(uri: string): Promise<MediaBlob | undefined>;
208
- getMediaBlob(uri: string): Promise<MediaBlob | undefined>;
198
+ declare class MediaManager {
199
+ store: BlobStore;
200
+ resolvers: BlobStore[] | undefined;
201
+ constructor(config: MediaManagerConfiguration);
202
+ defaultResolvers(): BlobStore[];
203
+ _isInvalid(blob: MediaBlob | undefined): Promise<boolean>;
204
+ /**
205
+ * Given the public URI, load what is at this URI and save it
206
+ * in the store.
207
+ * @param uri The URI to resolve using the resolver
208
+ * @return A canonical MediaBlob for this URI
209
+ */
210
+ _resolveAndSave(uri: string): Promise<MediaBlob | undefined>;
211
+ getMediaBlob(uri: string): Promise<MediaBlob | undefined>;
209
212
  }
213
+ //#endregion
214
+ export { ActionIfBlobMissingAction, ActionIfInvalidAction, BackedBlobStore, BackedBlobStoreOptions, BlobStore, BlobStoreFetchOptions, BlobStoreOptions, BlobStoreStoreOptions, DataBlobStore, MediaBlob, MediaBlobData, MediaBlobParameters, MediaManager, MediaManagerConfiguration, ReadThroughBlobStore, ReadThroughBlobStoreOptions, SimpleWebBlobStore };
215
+ //# sourceMappingURL=media_core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media_core.d.ts","names":["BaseStore","Serializable","MediaBlobData","MediaBlobParameters","Record","MediaBlob","Uint8Array","Promise","Blob","Omit","ActionIfInvalidAction","BlobStoreStoreOptions","ActionIfBlobMissingAction","BlobStoreFetchOptions","BlobStoreOptions","BlobStore","BackedBlobStoreOptions","BackedBlobStore","AsyncGenerator","ReadThroughBlobStoreOptions","ReadThroughBlobStore","SimpleWebBlobStore","DataBlobStore","MediaManagerConfiguration","MediaManager"],"sources":["../../../src/experimental/utils/media_core.d.ts"],"sourcesContent":["import { BaseStore } from \"@langchain/core/stores\";\nimport { Serializable } from \"@langchain/core/load/serializable\";\nexport type MediaBlobData = {\n value: string; // In Base64 encoding\n type: string; // The mime type and possibly encoding\n};\nexport interface MediaBlobParameters {\n data?: MediaBlobData;\n metadata?: Record<string, unknown>;\n path?: string;\n}\n/**\n * Represents a chunk of data that can be identified by the path where the\n * data is (or will be) located, along with optional metadata about the data.\n */\nexport declare class MediaBlob extends Serializable implements MediaBlobParameters {\n lc_serializable: boolean;\n lc_namespace: string[];\n data: MediaBlobData;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n metadata?: Record<string, any>;\n path?: string;\n constructor(params: MediaBlobParameters);\n get size(): number;\n get dataType(): string;\n get encoding(): string;\n get mimetype(): string;\n get asBytes(): Uint8Array;\n asString(): Promise<string>;\n asBase64(): Promise<string>;\n asDataUrl(): Promise<string>;\n asUri(): Promise<string>;\n encode(): Promise<{\n encoded: string;\n encoding: string;\n }>;\n static fromDataUrl(url: string): MediaBlob;\n static fromBlob(blob: Blob, other?: Omit<MediaBlobParameters, \"data\">): Promise<MediaBlob>;\n}\nexport type ActionIfInvalidAction = \"ignore\" | \"prefixPath\" | \"prefixUuid1\" | \"prefixUuid4\" | \"prefixUuid6\" | \"prefixUuid7\" | \"removePath\";\nexport interface BlobStoreStoreOptions {\n /**\n * If the path is missing or invalid in the blob, how should we create\n * a new path?\n * Subclasses may define their own methods, but the following are supported\n * by default:\n * - Undefined or an emtpy string: Reject the blob\n * - \"ignore\": Attempt to store it anyway (but this may fail)\n * - \"prefixPath\": Use the default prefix for the BlobStore and get the\n * unique portion from the URL. The original path is stored in the metadata\n * - \"prefixUuid\": Use the default prefix for the BlobStore and get the\n * unique portion from a generated UUID. The original path is stored\n * in the metadata\n */\n actionIfInvalid?: ActionIfInvalidAction;\n /**\n * The expected prefix for URIs that are stored.\n * This may be used to test if a MediaBlob is valid and used to create a new\n * path if \"prefixPath\" or \"prefixUuid\" is set for actionIfInvalid.\n */\n pathPrefix?: string;\n}\nexport type ActionIfBlobMissingAction = \"emptyBlob\";\nexport interface BlobStoreFetchOptions {\n /**\n * If the blob is not found when fetching, what should we do?\n * Subclasses may define their own methods, but the following are supported\n * by default:\n * - Undefined or an empty string: return undefined\n * - \"emptyBlob\": return a new MediaBlob that has the path set, but nothing else.\n */\n actionIfBlobMissing?: ActionIfBlobMissingAction;\n}\nexport interface BlobStoreOptions {\n defaultStoreOptions?: BlobStoreStoreOptions;\n defaultFetchOptions?: BlobStoreFetchOptions;\n}\n/**\n * A specialized Store that is designed to handle MediaBlobs and use the\n * key that is included in the blob to determine exactly how it is stored.\n *\n * The full details of a MediaBlob may be changed when it is stored.\n * For example, it may get additional or different Metadata. This should be\n * what is returned when the store() method is called.\n *\n * Although BlobStore extends BaseStore, not all of the methods from\n * BaseStore may be implemented (or even possible). Those that are not\n * implemented should be documented and throw an Error if called.\n */\nexport declare abstract class BlobStore extends BaseStore<string, MediaBlob> {\n lc_namespace: string[]; // FIXME - What should this be? And why?\n defaultStoreOptions: BlobStoreStoreOptions;\n defaultFetchOptions: BlobStoreFetchOptions;\n constructor(opts?: BlobStoreOptions);\n protected _realKey(key: string | MediaBlob): Promise<string>;\n /**\n * Is the path supported by this BlobStore?\n *\n * Although this is async, this is expected to be a relatively fast operation\n * (ie - you shouldn't make network calls).\n *\n * @param path The path to check\n * @param opts Any options (if needed) that may be used to determine if it is valid\n * @return If the path is supported\n */\n hasValidPath(path: string | undefined, opts?: BlobStoreStoreOptions): Promise<boolean>;\n protected _blobPathSuffix(blob: MediaBlob): string;\n protected _newBlob(oldBlob: MediaBlob, newPath?: string): Promise<MediaBlob>;\n protected _validBlobPrefixPath(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;\n protected _validBlobPrefixUuidFunction(name: ActionIfInvalidAction | string): string;\n protected _validBlobPrefixUuid(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob>;\n protected _validBlobRemovePath(blob: MediaBlob, _opts?: BlobStoreStoreOptions): Promise<MediaBlob>;\n /**\n * Based on the blob and options, return a blob that has a valid path\n * that can be saved.\n * @param blob\n * @param opts\n */\n protected _validStoreBlob(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;\n store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;\n protected _missingFetchBlobEmpty(path: string, _opts?: BlobStoreFetchOptions): Promise<MediaBlob>;\n protected _missingFetchBlob(path: string, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;\n fetch(key: string | MediaBlob, opts?: BlobStoreFetchOptions): Promise<MediaBlob | undefined>;\n}\nexport interface BackedBlobStoreOptions extends BlobStoreOptions {\n backingStore: BaseStore<string, MediaBlob>;\n}\nexport declare class BackedBlobStore extends BlobStore {\n backingStore: BaseStore<string, MediaBlob>;\n constructor(opts: BackedBlobStoreOptions);\n mdelete(keys: string[]): Promise<void>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mset(keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(prefix: string | undefined): AsyncGenerator<string>;\n}\nexport interface ReadThroughBlobStoreOptions extends BlobStoreOptions {\n baseStore: BlobStore;\n backingStore: BlobStore;\n}\nexport declare class ReadThroughBlobStore extends BlobStore {\n baseStore: BlobStore;\n backingStore: BlobStore;\n constructor(opts: ReadThroughBlobStoreOptions);\n store(blob: MediaBlob, opts?: BlobStoreStoreOptions): Promise<MediaBlob | undefined>;\n mdelete(keys: string[]): Promise<void>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(prefix: string | undefined): AsyncGenerator<string>;\n}\nexport declare class SimpleWebBlobStore extends BlobStore {\n _notImplementedException(): void;\n hasValidPath(path: string | undefined, _opts?: BlobStoreStoreOptions): Promise<boolean>;\n _fetch(url: string): Promise<MediaBlob | undefined>;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mdelete(_keys: string[]): Promise<void>;\n mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;\n}\n/**\n * A blob \"store\" that works with data: URLs that will turn the URL into\n * a blob.\n */\nexport declare class DataBlobStore extends BlobStore {\n _notImplementedException(): void;\n hasValidPath(path: string, _opts?: BlobStoreStoreOptions): Promise<boolean>;\n _fetch(url: string): MediaBlob;\n mget(keys: string[]): Promise<(MediaBlob | undefined)[]>;\n mdelete(_keys: string[]): Promise<void>;\n mset(_keyValuePairs: [string, MediaBlob][]): Promise<void>;\n yieldKeys(_prefix: string | undefined): AsyncGenerator<string>;\n}\nexport interface MediaManagerConfiguration {\n /**\n * A store that, given a common URI, returns the corresponding MediaBlob.\n * The returned MediaBlob may have a different URI.\n * In many cases, this will be a ReadThroughStore or something similar\n * that has a cached version of the MediaBlob, but also a way to get\n * a new (or refreshed) version.\n */\n store: BlobStore;\n /**\n * BlobStores that can resolve a URL into the MediaBlob to save\n * in the canonical store. This list is evaluated in order.\n * If not provided, a default list (which involves a DataBlobStore\n * and a SimpleWebBlobStore) will be used.\n */\n resolvers?: BlobStore[];\n}\n/**\n * Responsible for converting a URI (typically a web URL) into a MediaBlob.\n * Allows for aliasing / caching of the requested URI and what it resolves to.\n * This MediaBlob is expected to be usable to provide to an LLM, either\n * through the Base64 of the media or through a canonical URI that the LLM\n * supports.\n */\nexport declare class MediaManager {\n store: BlobStore;\n resolvers: BlobStore[] | undefined;\n constructor(config: MediaManagerConfiguration);\n defaultResolvers(): BlobStore[];\n _isInvalid(blob: MediaBlob | undefined): Promise<boolean>;\n /**\n * Given the public URI, load what is at this URI and save it\n * in the store.\n * @param uri The URI to resolve using the resolver\n * @return A canonical MediaBlob for this URI\n */\n _resolveAndSave(uri: string): Promise<MediaBlob | undefined>;\n getMediaBlob(uri: string): Promise<MediaBlob | undefined>;\n}\n"],"mappings":";;;;KAEYE,aAAAA;;EAAAA,IAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAIZ,CAAA;AAAoC,UAAnBC,mBAAAA,CAAmB;EAAA,IACzBD,CAAAA,EAAAA,aAAAA;EAAa,QACTE,CAAAA,EAAAA,MAAAA,CAAAA,MAAAA,EAAAA,OAAAA,CAAAA;EAAM,IAAA,CAAA,EAAA,MAAA;AAOrB;;;;;AAYmBE,cAZED,SAAAA,SAAkBJ,YAAAA,YAAwBE,mBAY5CG,CAAAA;EAAU,eACbC,EAAAA,OAAAA;EAAO,YACPA,EAAAA,MAAAA,EAAAA;EAAO,IACNA,EAZPL,aAYOK;EAAO;EACJ,QACNA,CAAAA,EAZCH,MAYDG,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA;EAAO,IAIgBF,CAAAA,EAAAA,MAAAA;EAAS,WACpBG,CAAAA,MAAAA,EAfFL,mBAeEK;EAAI,IAAeL,IAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAmB,IAAxBM,QAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAI,IAAwCJ,QAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAS,IAAjBE,QAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAO,IAtB5CN,OAAAA,CAAAA,CAAAA,EAYpBK,UAZoBL;EAAY,QAAYE,CAAAA,CAAAA,EAa/CI,OAb+CJ,CAAAA,MAAAA,CAAAA;EAAmB,QAAA,CAAA,CAAA,EAclEI,OAdkE,CAAA,MAAA,CAAA;EAwBtEG,SAAAA,CAAAA,CAAAA,EATKH,OASLG,CAAAA,MAAqB,CAAA;EAChBC,KAAAA,CAAAA,CAAAA,EATJJ,OASII,CAAAA,MAAAA,CAAqB;EAsB1BC,MAAAA,CAAAA,CAAAA,EA9BEL,OA8BFK,CAAAA;IACKC,OAAAA,EAAAA,MAAAA;IAUAC,QAAAA,EAAAA,MAAgB;EAAA,CAAA,CAAA;EAAA,OACPH,WAAAA,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAtCWN,SAsCXM;EAAqB,OACrBE,QAAAA,CAAAA,IAAAA,EAtCAL,IAsCAK,EAAAA,KAAAA,CAAAA,EAtCcJ,IAsCdI,CAtCmBV,mBAsCnBU,EAAAA,MAAAA,CAAAA,CAAAA,EAtCkDN,OAsClDM,CAtC0DR,SAsC1DQ,CAAAA;AAAqB;AAcjBE,KAlDlBL,qBAAAA,GAkD2B,QAAA,GAAA,YAAA,GAAA,aAAA,GAAA,aAAA,GAAA,aAAA,GAAA,aAAA,GAAA,YAAA;AAAA,UAjDtBC,qBAAAA,CAiDsB;EAAA;;;;;;;;;;;;;EAmBW,eAASA,CAAAA,EAtDrCD,qBAsDqCC;EAAqB;;;;;EAEA,UAAWN,CAAAA,EAAAA,MAAAA;;AAClDA,KAjD7BO,yBAAAA,GAiD6BP,WAAAA;AAAmBM,UAhD3CE,qBAAAA,CAgD2CF;EAAqB;;;;;;;EAQxD,mBAASA,CAAAA,EAhDRC,yBAgDQD;;AAAwBJ,UA9CzCO,gBAAAA,CA8CyCP;EAAO,mBACNM,CAAAA,EA9CjCF,qBA8CiCE;EAAqB,mBAAWR,CAAAA,EA7CjEQ,qBA6CiER;;;;;;;;;;AA/BlC;AAmCzD;;;AACkBL,uBApCYe,SAAAA,SAAkBf,SAoC9BA,CAAAA,MAAAA,EApCgDK,SAoChDL,CAAAA,CAAAA;EAAS,YADqBc,EAAAA,MAAAA,EAAAA,CAAAA,CAAAA;EAAgB,mBAAA,EAjCvCH,qBAiCuC;EAG3CM,mBAAe,EAnCXJ,qBAmCW;EAAA,WAAA,CAAA,IAAA,CAAA,EAlCbC,gBAkCa;EAAA,UACAT,QAAAA,CAAAA,GAAAA,EAAAA,MAAAA,GAlCCA,SAkCDA,CAAAA,EAlCaE,OAkCbF,CAAAA,MAAAA,CAAAA;EAAS;;;;;;;;;AADS;EAQrCc,YAAAA,CAAAA,IAAAA,EAAAA,MAAAA,GAAAA,SAA2B,EAAA,IAAA,CAAA,EA9BMR,qBA8BN,CAAA,EA9B8BJ,OA8B9B,CAAA,OAAA,CAAA;EAAA,UAAA,eAAA,CAAA,IAAA,EA7BRF,SA6BQ,CAAA,EAAA,MAAA;EAAA,UAC7BU,QAAAA,CAAAA,OAAAA,EA7BiBV,SA6BjBU,EAAAA,OAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EA7B+CR,OA6B/CQ,CA7BuDV,SA6BvDU,CAAAA;EAAS,UACNA,oBAAAA,CAAAA,IAAAA,EA7BuBV,SA6BvBU,EAAAA,IAAAA,CAAAA,EA7ByCJ,qBA6BzCI,CAAAA,EA7BiER,OA6BjEQ,CA7ByEV,SA6BzEU,CAAAA;EAAS,UAF0BD,4BAAAA,CAAAA,IAAAA,EA1BJJ,qBA0BII,GAAAA,MAAAA,CAAAA,EAAAA,MAAAA;EAAgB,UAAA,oBAAA,CAAA,IAAA,EAzB5BT,SAyB4B,EAAA,IAAA,CAAA,EAzBVM,qBAyBU,CAAA,EAzBcJ,OAyBd,CAzBsBF,SAyBtB,CAAA;EAIhDe,UAAAA,oBAAoB,CAAA,IAAA,EA5BAf,SA4BA,EAAA,KAAA,CAAA,EA5BmBM,qBA4BnB,CAAA,EA5B2CJ,OA4B3C,CA5BmDF,SA4BnD,CAAA;EAAA;;;;;;EAIc,UAAWA,eAAAA,CAAAA,IAAAA,EAzB9BA,SAyB8BA,EAAAA,IAAAA,CAAAA,EAzBZM,qBAyBYN,CAAAA,EAzBYE,OAyBZF,CAzBoBA,SAyBpBA,GAAAA,SAAAA,CAAAA;EAAS,KAAjBE,CAAAA,IAAAA,EAxB1CF,SAwB0CE,EAAAA,IAAAA,CAAAA,EAxBxBI,qBAwBwBJ,CAAAA,EAxBAA,OAwBAA,CAxBQF,SAwBRE,GAAAA,SAAAA,CAAAA;EAAO,UACpCA,sBAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,KAAAA,CAAAA,EAxB8BM,qBAwB9BN,CAAAA,EAxBsDA,OAwBtDA,CAxB8DF,SAwB9DE,CAAAA;EAAO,UACDF,iBAAAA,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,IAAAA,CAAAA,EAxBkBQ,qBAwBlBR,CAAAA,EAxB0CE,OAwB1CF,CAxBkDA,SAwBlDA,GAAAA,SAAAA,CAAAA;EAAS,KAAlBE,CAAAA,GAAAA,EAAAA,MAAAA,GAvBFF,SAuBEE,EAAAA,IAAAA,CAAAA,EAvBgBM,qBAuBhBN,CAAAA,EAvBwCA,OAuBxCA,CAvBgDF,SAuBhDE,GAAAA,SAAAA,CAAAA;;AACuBA,UAtBhCS,sBAAAA,SAA+BF,gBAsBCP,CAAAA;EAAO,YACbW,EAtBzBlB,SAsByBkB,CAAAA,MAAAA,EAtBPb,SAsBOa,CAAAA;;AARgB,cAZtCD,eAAAA,SAAwBF,SAAAA,CAYc;EAUtCM,YAAAA,EArBHrB,SAqBqB,CAAA,MAAA,EArBHK,SAqBG,CAAA;EAAA,WAAA,CAAA,IAAA,EApBjBW,sBAoBiB;EAAA,OAEYL,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EArBtBJ,OAqBsBI,CAAAA,IAAAA,CAAAA;EAAqB,IAAGJ,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EApBjDA,OAoBiDA,CAAAA,CApBxCF,SAoBwCE,GAAAA,SAAAA,CAAAA,EAAAA,CAAAA;EAAO,IACjDF,CAAAA,aAAAA,EAAAA,CAAAA,MAAAA,EApBAA,SAoBAA,CAAAA,EAAAA,CAAAA,EApBeE,OAoBfF,CAAAA,IAAAA,CAAAA;EAAS,SAAjBE,CAAAA,MAAAA,EAAAA,MAAAA,GAAAA,SAAAA,CAAAA,EAnBkBW,cAmBlBX,CAAAA,MAAAA,CAAAA;;AACCA,UAlBTY,2BAAAA,SAAoCL,gBAkB3BP,CAAAA;EAAO,SACHA,EAlBfQ,SAkBeR;EAAO,YACHF,EAlBhBU,SAkBgBV;;AACUa,cAjBvBE,oBAAAA,SAA6BL,SAAAA,CAiBNG;EAAc,SAPVH,EATjCA,SASiCA;EAAS,YAAA,EARvCA,SAQuC;EAapCO,WAAAA,CAAAA,IAAa,EApBZH,2BAoBY;EAAA,KAAA,CAAA,IAAA,EAnBlBd,SAmBkB,EAAA,IAAA,CAAA,EAnBAM,qBAmBA,CAAA,EAnBwBJ,OAmBxB,CAnBgCF,SAmBhC,GAAA,SAAA,CAAA;EAAA,OAEKM,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EApBVJ,OAoBUI,CAAAA,IAAAA,CAAAA;EAAqB,IAAGJ,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAnBrCA,OAmBqCA,CAAAA,CAnB5BF,SAmB4BE,GAAAA,SAAAA,CAAAA,EAAAA,CAAAA;EAAO,IAC7CF,CAAAA,cAAAA,EAAAA,CAAAA,MAAAA,EAnBSA,SAmBTA,CAAAA,EAAAA,CAAAA,EAnBwBE,OAmBxBF,CAAAA,IAAAA,CAAAA;EAAS,SACCA,CAAAA,MAAAA,EAAAA,MAAAA,GAAAA,SAAAA,CAAAA,EAnBQa,cAmBRb,CAAAA,MAAAA,CAAAA;;AACLE,cAlBTc,kBAAAA,SAA2BN,SAAAA,CAkBlBR;EAAO,wBACHF,CAAAA,CAAAA,EAAAA,IAAAA;EAAS,YAAME,CAAAA,IAAAA,EAAAA,MAAAA,GAAAA,SAAAA,EAAAA,KAAAA,CAAAA,EAjBEI,qBAiBFJ,CAAAA,EAjB0BA,OAiB1BA,CAAAA,OAAAA,CAAAA;EAAO,MACZW,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAjBnBX,OAiBmBW,CAjBXb,SAiBWa,GAAAA,SAAAA,CAAAA;EAAc,IAPfH,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EATjBR,OASiBQ,CAAAA,CATRV,SASQU,GAAAA,SAAAA,CAAAA,EAAAA,CAAAA;EAAS,OAAA,CAAA,KAAA,EAAA,MAAA,EAAA,CAAA,EARtBR,OAQsB,CAAA,IAAA,CAAA;EASnCgB,IAAAA,CAAAA,cAAAA,EAAAA,CAAAA,MAAyB,EAhBRlB,SAgBQ,CAAA,EAAA,CAAA,EAhBOE,OAgBP,CAAA,IAAA,CAAA;EAAA,SAAA,CAAA,OAAA,EAAA,MAAA,GAAA,SAAA,CAAA,EAfEW,cAeF,CAAA,MAAA,CAAA;;;AAejB;AASzB;;AACWH,cAlCUO,aAAAA,SAAsBP,SAAAA,CAkChCA;EAAS,wBACLA,CAAAA,CAAAA,EAAAA,IAAAA;EAAS,YACAQ,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,KAAAA,CAAAA,EAlCeZ,qBAkCfY,CAAAA,EAlCuChB,OAkCvCgB,CAAAA,OAAAA,CAAAA;EAAyB,MACzBR,CAAAA,GAAAA,EAAAA,MAAAA,CAAAA,EAlCCV,SAkCDU;EAAS,IACZV,CAAAA,IAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAlCKE,OAkCLF,CAAAA,CAlCcA,SAkCdA,GAAAA,SAAAA,CAAAA,EAAAA,CAAAA;EAAS,OAAeE,CAAAA,KAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EAjCfA,OAiCeA,CAAAA,IAAAA,CAAAA;EAAO,IAOVF,CAAAA,cAAAA,EAAAA,CAAAA,MAAAA,EAvCRA,SAuCQA,CAAAA,EAAAA,CAAAA,EAvCOE,OAuCPF,CAAAA,IAAAA,CAAAA;EAAS,SAAjBE,CAAAA,OAAAA,EAAAA,MAAAA,GAAAA,SAAAA,CAAAA,EAtCUW,cAsCVX,CAAAA,MAAAA,CAAAA;;AACHA,UArCdgB,yBAAAA,CAqCchB;EAAO;;;;;;;SA7B3BQ;;;;;;;cAOKA;;;;;;;;;cASKS,YAAAA;SACVT;aACIA;sBACSQ;sBACAR;mBACHV,wBAAwBE;;;;;;;gCAOXA,QAAQF;6BACXE,QAAQF"}