ai 5.1.0-beta.9 → 6.0.0-beta.101

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.
@@ -1,5 +1,5 @@
1
1
  export { convertArrayToAsyncIterable, convertArrayToReadableStream, convertReadableStreamToArray, mockId } from '@ai-sdk/provider-utils/test';
2
- import { EmbeddingModelV3, ImageModelV3, LanguageModelV2, ProviderV3, TranscriptionModelV2, SpeechModelV2 } from '@ai-sdk/provider';
2
+ import { EmbeddingModelV3, ImageModelV3, LanguageModelV3, ProviderV3, TranscriptionModelV3, SpeechModelV3, RerankingModelV3 } from '@ai-sdk/provider';
3
3
 
4
4
  declare class MockEmbeddingModelV3<VALUE> implements EmbeddingModelV3<VALUE> {
5
5
  readonly specificationVersion = "v3";
@@ -8,12 +8,13 @@ declare class MockEmbeddingModelV3<VALUE> implements EmbeddingModelV3<VALUE> {
8
8
  readonly maxEmbeddingsPerCall: EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall'];
9
9
  readonly supportsParallelCalls: EmbeddingModelV3<VALUE>['supportsParallelCalls'];
10
10
  doEmbed: EmbeddingModelV3<VALUE>['doEmbed'];
11
+ doEmbedCalls: Parameters<EmbeddingModelV3<VALUE>['doEmbed']>[0][];
11
12
  constructor({ provider, modelId, maxEmbeddingsPerCall, supportsParallelCalls, doEmbed, }?: {
12
13
  provider?: EmbeddingModelV3<VALUE>['provider'];
13
14
  modelId?: EmbeddingModelV3<VALUE>['modelId'];
14
15
  maxEmbeddingsPerCall?: EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall'] | null;
15
16
  supportsParallelCalls?: EmbeddingModelV3<VALUE>['supportsParallelCalls'];
16
- doEmbed?: EmbeddingModelV3<VALUE>['doEmbed'];
17
+ doEmbed?: EmbeddingModelV3<VALUE>['doEmbed'] | Awaited<ReturnType<EmbeddingModelV3<VALUE>['doEmbed']>> | Awaited<ReturnType<EmbeddingModelV3<VALUE>['doEmbed']>>[];
17
18
  });
18
19
  }
19
20
 
@@ -31,61 +32,76 @@ declare class MockImageModelV3 implements ImageModelV3 {
31
32
  });
32
33
  }
33
34
 
34
- declare class MockLanguageModelV2 implements LanguageModelV2 {
35
- readonly specificationVersion = "v2";
35
+ declare class MockLanguageModelV3 implements LanguageModelV3 {
36
+ readonly specificationVersion = "v3";
36
37
  private _supportedUrls;
37
- readonly provider: LanguageModelV2['provider'];
38
- readonly modelId: LanguageModelV2['modelId'];
39
- doGenerate: LanguageModelV2['doGenerate'];
40
- doStream: LanguageModelV2['doStream'];
41
- doGenerateCalls: Parameters<LanguageModelV2['doGenerate']>[0][];
42
- doStreamCalls: Parameters<LanguageModelV2['doStream']>[0][];
38
+ readonly provider: LanguageModelV3['provider'];
39
+ readonly modelId: LanguageModelV3['modelId'];
40
+ doGenerate: LanguageModelV3['doGenerate'];
41
+ doStream: LanguageModelV3['doStream'];
42
+ doGenerateCalls: Parameters<LanguageModelV3['doGenerate']>[0][];
43
+ doStreamCalls: Parameters<LanguageModelV3['doStream']>[0][];
43
44
  constructor({ provider, modelId, supportedUrls, doGenerate, doStream, }?: {
44
- provider?: LanguageModelV2['provider'];
45
- modelId?: LanguageModelV2['modelId'];
46
- supportedUrls?: LanguageModelV2['supportedUrls'] | (() => LanguageModelV2['supportedUrls']);
47
- doGenerate?: LanguageModelV2['doGenerate'] | Awaited<ReturnType<LanguageModelV2['doGenerate']>> | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];
48
- doStream?: LanguageModelV2['doStream'] | Awaited<ReturnType<LanguageModelV2['doStream']>> | Awaited<ReturnType<LanguageModelV2['doStream']>>[];
45
+ provider?: LanguageModelV3['provider'];
46
+ modelId?: LanguageModelV3['modelId'];
47
+ supportedUrls?: LanguageModelV3['supportedUrls'] | (() => LanguageModelV3['supportedUrls']);
48
+ doGenerate?: LanguageModelV3['doGenerate'] | Awaited<ReturnType<LanguageModelV3['doGenerate']>> | Awaited<ReturnType<LanguageModelV3['doGenerate']>>[];
49
+ doStream?: LanguageModelV3['doStream'] | Awaited<ReturnType<LanguageModelV3['doStream']>> | Awaited<ReturnType<LanguageModelV3['doStream']>>[];
49
50
  });
50
51
  get supportedUrls(): Record<string, RegExp[]> | PromiseLike<Record<string, RegExp[]>>;
51
52
  }
52
53
 
53
54
  declare class MockProviderV3 implements ProviderV3 {
55
+ readonly specificationVersion: "v3";
54
56
  languageModel: ProviderV3['languageModel'];
55
57
  textEmbeddingModel: ProviderV3['textEmbeddingModel'];
56
58
  imageModel: ProviderV3['imageModel'];
57
59
  transcriptionModel: ProviderV3['transcriptionModel'];
58
60
  speechModel: ProviderV3['speechModel'];
59
- constructor({ languageModels, embeddingModels, imageModels, transcriptionModels, speechModels, }?: {
60
- languageModels?: Record<string, LanguageModelV2>;
61
+ rerankingModel: ProviderV3['rerankingModel'];
62
+ constructor({ languageModels, embeddingModels, imageModels, transcriptionModels, speechModels, rerankingModels, }?: {
63
+ languageModels?: Record<string, LanguageModelV3>;
61
64
  embeddingModels?: Record<string, EmbeddingModelV3<string>>;
62
65
  imageModels?: Record<string, ImageModelV3>;
63
- transcriptionModels?: Record<string, TranscriptionModelV2>;
64
- speechModels?: Record<string, SpeechModelV2>;
66
+ transcriptionModels?: Record<string, TranscriptionModelV3>;
67
+ speechModels?: Record<string, SpeechModelV3>;
68
+ rerankingModels?: Record<string, RerankingModelV3>;
65
69
  });
66
70
  }
67
71
 
68
- declare class MockSpeechModelV2 implements SpeechModelV2 {
69
- readonly specificationVersion = "v2";
70
- readonly provider: SpeechModelV2['provider'];
71
- readonly modelId: SpeechModelV2['modelId'];
72
- doGenerate: SpeechModelV2['doGenerate'];
72
+ declare class MockSpeechModelV3 implements SpeechModelV3 {
73
+ readonly specificationVersion = "v3";
74
+ readonly provider: SpeechModelV3['provider'];
75
+ readonly modelId: SpeechModelV3['modelId'];
76
+ doGenerate: SpeechModelV3['doGenerate'];
73
77
  constructor({ provider, modelId, doGenerate, }?: {
74
- provider?: SpeechModelV2['provider'];
75
- modelId?: SpeechModelV2['modelId'];
76
- doGenerate?: SpeechModelV2['doGenerate'];
78
+ provider?: SpeechModelV3['provider'];
79
+ modelId?: SpeechModelV3['modelId'];
80
+ doGenerate?: SpeechModelV3['doGenerate'];
77
81
  });
78
82
  }
79
83
 
80
- declare class MockTranscriptionModelV2 implements TranscriptionModelV2 {
81
- readonly specificationVersion = "v2";
82
- readonly provider: TranscriptionModelV2['provider'];
83
- readonly modelId: TranscriptionModelV2['modelId'];
84
- doGenerate: TranscriptionModelV2['doGenerate'];
84
+ declare class MockTranscriptionModelV3 implements TranscriptionModelV3 {
85
+ readonly specificationVersion = "v3";
86
+ readonly provider: TranscriptionModelV3['provider'];
87
+ readonly modelId: TranscriptionModelV3['modelId'];
88
+ doGenerate: TranscriptionModelV3['doGenerate'];
85
89
  constructor({ provider, modelId, doGenerate, }?: {
86
- provider?: TranscriptionModelV2['provider'];
87
- modelId?: TranscriptionModelV2['modelId'];
88
- doGenerate?: TranscriptionModelV2['doGenerate'];
90
+ provider?: TranscriptionModelV3['provider'];
91
+ modelId?: TranscriptionModelV3['modelId'];
92
+ doGenerate?: TranscriptionModelV3['doGenerate'];
93
+ });
94
+ }
95
+
96
+ declare class MockRerankingModelV3 implements RerankingModelV3 {
97
+ readonly specificationVersion = "v3";
98
+ readonly provider: RerankingModelV3['provider'];
99
+ readonly modelId: RerankingModelV3['modelId'];
100
+ doRerank: RerankingModelV3['doRerank'];
101
+ constructor({ provider, modelId, doRerank, }?: {
102
+ provider?: RerankingModelV3['provider'];
103
+ modelId?: RerankingModelV3['modelId'];
104
+ doRerank?: RerankingModelV3['doRerank'];
89
105
  });
90
106
  }
91
107
 
@@ -114,4 +130,4 @@ declare function simulateReadableStream$1<T>({ chunks, initialDelayInMs, chunkDe
114
130
  */
115
131
  declare const simulateReadableStream: typeof simulateReadableStream$1;
116
132
 
117
- export { MockEmbeddingModelV3, MockImageModelV3, MockLanguageModelV2, MockProviderV3, MockSpeechModelV2, MockTranscriptionModelV2, mockValues, simulateReadableStream };
133
+ export { MockEmbeddingModelV3, MockImageModelV3, MockLanguageModelV3, MockProviderV3, MockRerankingModelV3, MockSpeechModelV3, MockTranscriptionModelV3, mockValues, simulateReadableStream };
@@ -22,10 +22,11 @@ var test_exports = {};
22
22
  __export(test_exports, {
23
23
  MockEmbeddingModelV3: () => MockEmbeddingModelV3,
24
24
  MockImageModelV3: () => MockImageModelV3,
25
- MockLanguageModelV2: () => MockLanguageModelV2,
25
+ MockLanguageModelV3: () => MockLanguageModelV3,
26
26
  MockProviderV3: () => MockProviderV3,
27
- MockSpeechModelV2: () => MockSpeechModelV2,
28
- MockTranscriptionModelV2: () => MockTranscriptionModelV2,
27
+ MockRerankingModelV3: () => MockRerankingModelV3,
28
+ MockSpeechModelV3: () => MockSpeechModelV3,
29
+ MockTranscriptionModelV3: () => MockTranscriptionModelV3,
29
30
  convertArrayToAsyncIterable: () => import_test.convertArrayToAsyncIterable,
30
31
  convertArrayToReadableStream: () => import_test.convertArrayToReadableStream,
31
32
  convertReadableStreamToArray: () => import_test.convertReadableStreamToArray,
@@ -51,11 +52,21 @@ var MockEmbeddingModelV3 = class {
51
52
  doEmbed = notImplemented
52
53
  } = {}) {
53
54
  this.specificationVersion = "v3";
55
+ this.doEmbedCalls = [];
54
56
  this.provider = provider;
55
57
  this.modelId = modelId;
56
58
  this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? void 0;
57
59
  this.supportsParallelCalls = supportsParallelCalls;
58
- this.doEmbed = doEmbed;
60
+ this.doEmbed = async (options) => {
61
+ this.doEmbedCalls.push(options);
62
+ if (typeof doEmbed === "function") {
63
+ return doEmbed(options);
64
+ } else if (Array.isArray(doEmbed)) {
65
+ return doEmbed[this.doEmbedCalls.length];
66
+ } else {
67
+ return doEmbed;
68
+ }
69
+ };
59
70
  }
60
71
  };
61
72
 
@@ -75,8 +86,8 @@ var MockImageModelV3 = class {
75
86
  }
76
87
  };
77
88
 
78
- // src/test/mock-language-model-v2.ts
79
- var MockLanguageModelV2 = class {
89
+ // src/test/mock-language-model-v3.ts
90
+ var MockLanguageModelV3 = class {
80
91
  constructor({
81
92
  provider = "mock-provider",
82
93
  modelId = "mock-model-id",
@@ -84,7 +95,7 @@ var MockLanguageModelV2 = class {
84
95
  doGenerate = notImplemented,
85
96
  doStream = notImplemented
86
97
  } = {}) {
87
- this.specificationVersion = "v2";
98
+ this.specificationVersion = "v3";
88
99
  this.doGenerateCalls = [];
89
100
  this.doStreamCalls = [];
90
101
  this.provider = provider;
@@ -124,8 +135,10 @@ var MockProviderV3 = class {
124
135
  embeddingModels,
125
136
  imageModels,
126
137
  transcriptionModels,
127
- speechModels
138
+ speechModels,
139
+ rerankingModels
128
140
  } = {}) {
141
+ this.specificationVersion = "v3";
129
142
  this.languageModel = (modelId) => {
130
143
  if (!languageModels?.[modelId]) {
131
144
  throw new import_provider.NoSuchModelError({ modelId, modelType: "languageModel" });
@@ -162,37 +175,57 @@ var MockProviderV3 = class {
162
175
  }
163
176
  return speechModels[modelId];
164
177
  };
178
+ this.rerankingModel = (modelId) => {
179
+ if (!rerankingModels?.[modelId]) {
180
+ throw new import_provider.NoSuchModelError({ modelId, modelType: "rerankingModel" });
181
+ }
182
+ return rerankingModels[modelId];
183
+ };
165
184
  }
166
185
  };
167
186
 
168
- // src/test/mock-speech-model-v2.ts
169
- var MockSpeechModelV2 = class {
187
+ // src/test/mock-speech-model-v3.ts
188
+ var MockSpeechModelV3 = class {
170
189
  constructor({
171
190
  provider = "mock-provider",
172
191
  modelId = "mock-model-id",
173
192
  doGenerate = notImplemented
174
193
  } = {}) {
175
- this.specificationVersion = "v2";
194
+ this.specificationVersion = "v3";
176
195
  this.provider = provider;
177
196
  this.modelId = modelId;
178
197
  this.doGenerate = doGenerate;
179
198
  }
180
199
  };
181
200
 
182
- // src/test/mock-transcription-model-v2.ts
183
- var MockTranscriptionModelV2 = class {
201
+ // src/test/mock-transcription-model-v3.ts
202
+ var MockTranscriptionModelV3 = class {
184
203
  constructor({
185
204
  provider = "mock-provider",
186
205
  modelId = "mock-model-id",
187
206
  doGenerate = notImplemented
188
207
  } = {}) {
189
- this.specificationVersion = "v2";
208
+ this.specificationVersion = "v3";
190
209
  this.provider = provider;
191
210
  this.modelId = modelId;
192
211
  this.doGenerate = doGenerate;
193
212
  }
194
213
  };
195
214
 
215
+ // src/test/mock-reranking-model-v3.ts
216
+ var MockRerankingModelV3 = class {
217
+ constructor({
218
+ provider = "mock-provider",
219
+ modelId = "mock-model-id",
220
+ doRerank = notImplemented
221
+ } = {}) {
222
+ this.specificationVersion = "v3";
223
+ this.provider = provider;
224
+ this.modelId = modelId;
225
+ this.doRerank = doRerank;
226
+ }
227
+ };
228
+
196
229
  // src/test/mock-values.ts
197
230
  function mockValues(...values) {
198
231
  let counter = 0;
@@ -227,10 +260,11 @@ var simulateReadableStream2 = simulateReadableStream;
227
260
  0 && (module.exports = {
228
261
  MockEmbeddingModelV3,
229
262
  MockImageModelV3,
230
- MockLanguageModelV2,
263
+ MockLanguageModelV3,
231
264
  MockProviderV3,
232
- MockSpeechModelV2,
233
- MockTranscriptionModelV2,
265
+ MockRerankingModelV3,
266
+ MockSpeechModelV3,
267
+ MockTranscriptionModelV3,
234
268
  convertArrayToAsyncIterable,
235
269
  convertArrayToReadableStream,
236
270
  convertReadableStreamToArray,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../test/index.ts","../../src/test/not-implemented.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-language-model-v2.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-speech-model-v2.ts","../../src/test/mock-transcription-model-v2.ts","../../src/test/mock-values.ts","../../src/util/simulate-readable-stream.ts"],"sourcesContent":["export {\n convertArrayToAsyncIterable,\n convertArrayToReadableStream,\n convertReadableStreamToArray,\n mockId,\n} from '@ai-sdk/provider-utils/test';\nexport { MockEmbeddingModelV3 } from '../src/test/mock-embedding-model-v3';\nexport { MockImageModelV3 } from '../src/test/mock-image-model-v3';\nexport { MockLanguageModelV2 } from '../src/test/mock-language-model-v2';\nexport { MockProviderV3 } from '../src/test/mock-provider-v3';\nexport { MockSpeechModelV2 } from '../src/test/mock-speech-model-v2';\nexport { MockTranscriptionModelV2 } from '../src/test/mock-transcription-model-v2';\nexport { mockValues } from '../src/test/mock-values';\n\nimport { simulateReadableStream as originalSimulateReadableStream } from '../src/util/simulate-readable-stream';\n\n/**\n * @deprecated Use `simulateReadableStream` from `ai` instead.\n */\nexport const simulateReadableStream = originalSimulateReadableStream;\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { EmbeddingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV3<VALUE> implements EmbeddingModelV3<VALUE> {\n readonly specificationVersion = 'v3';\n\n readonly provider: EmbeddingModelV3<VALUE>['provider'];\n readonly modelId: EmbeddingModelV3<VALUE>['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall'];\n readonly supportsParallelCalls: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV3<VALUE>['doEmbed'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV3<VALUE>['provider'];\n modelId?: EmbeddingModelV3<VALUE>['modelId'];\n maxEmbeddingsPerCall?:\n | EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall']\n | null;\n supportsParallelCalls?: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n doEmbed?: EmbeddingModelV3<VALUE>['doEmbed'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = doEmbed;\n }\n}\n","import { ImageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV3 implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: ImageModelV3['provider'];\n readonly modelId: ImageModelV3['modelId'];\n readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];\n\n doGenerate: ImageModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV3['provider'];\n modelId?: ImageModelV3['modelId'];\n maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];\n doGenerate?: ImageModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import { LanguageModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV2 implements LanguageModelV2 {\n readonly specificationVersion = 'v2';\n\n private _supportedUrls: () => LanguageModelV2['supportedUrls'];\n\n readonly provider: LanguageModelV2['provider'];\n readonly modelId: LanguageModelV2['modelId'];\n\n doGenerate: LanguageModelV2['doGenerate'];\n doStream: LanguageModelV2['doStream'];\n\n doGenerateCalls: Parameters<LanguageModelV2['doGenerate']>[0][] = [];\n doStreamCalls: Parameters<LanguageModelV2['doStream']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV2['provider'];\n modelId?: LanguageModelV2['modelId'];\n supportedUrls?:\n | LanguageModelV2['supportedUrls']\n | (() => LanguageModelV2['supportedUrls']);\n doGenerate?:\n | LanguageModelV2['doGenerate']\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n doStream?:\n | LanguageModelV2['doStream']\n | Awaited<ReturnType<LanguageModelV2['doStream']>>\n | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import {\n EmbeddingModelV3,\n ImageModelV3,\n LanguageModelV2,\n NoSuchModelError,\n ProviderV3,\n SpeechModelV2,\n TranscriptionModelV2,\n} from '@ai-sdk/provider';\n\nexport class MockProviderV3 implements ProviderV3 {\n languageModel: ProviderV3['languageModel'];\n textEmbeddingModel: ProviderV3['textEmbeddingModel'];\n imageModel: ProviderV3['imageModel'];\n transcriptionModel: ProviderV3['transcriptionModel'];\n speechModel: ProviderV3['speechModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n }: {\n languageModels?: Record<string, LanguageModelV2>;\n embeddingModels?: Record<string, EmbeddingModelV3<string>>;\n imageModels?: Record<string, ImageModelV3>;\n transcriptionModels?: Record<string, TranscriptionModelV2>;\n speechModels?: Record<string, SpeechModelV2>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.textEmbeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'textEmbeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string) => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n }\n}\n","import { SpeechModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV2 implements SpeechModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider: SpeechModelV2['provider'];\n readonly modelId: SpeechModelV2['modelId'];\n\n doGenerate: SpeechModelV2['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV2['provider'];\n modelId?: SpeechModelV2['modelId'];\n doGenerate?: SpeechModelV2['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import { TranscriptionModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV2 implements TranscriptionModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider: TranscriptionModelV2['provider'];\n readonly modelId: TranscriptionModelV2['modelId'];\n\n doGenerate: TranscriptionModelV2['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: TranscriptionModelV2['provider'];\n modelId?: TranscriptionModelV2['modelId'];\n doGenerate?: TranscriptionModelV2['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","export function mockValues<T>(...values: T[]): () => T {\n let counter = 0;\n return () => values[counter++] ?? values[values.length - 1];\n}\n","import { delay as delayFunction } from '@ai-sdk/provider-utils';\n\n/**\n * Creates a ReadableStream that emits the provided values with an optional delay between each value.\n *\n * @param options - The configuration options\n * @param options.chunks - Array of values to be emitted by the stream\n * @param options.initialDelayInMs - Optional initial delay in milliseconds before emitting the first value (default: 0). Can be set to `null` to skip the initial delay. The difference between `initialDelayInMs: null` and `initialDelayInMs: 0` is that `initialDelayInMs: null` will emit the values without any delay, while `initialDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @param options.chunkDelayInMs - Optional delay in milliseconds between emitting each value (default: 0). Can be set to `null` to skip the delay. The difference between `chunkDelayInMs: null` and `chunkDelayInMs: 0` is that `chunkDelayInMs: null` will emit the values without any delay, while `chunkDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @returns A ReadableStream that emits the provided values\n */\nexport function simulateReadableStream<T>({\n chunks,\n initialDelayInMs = 0,\n chunkDelayInMs = 0,\n _internal,\n}: {\n chunks: T[];\n initialDelayInMs?: number | null;\n chunkDelayInMs?: number | null;\n _internal?: {\n delay?: (ms: number | null) => Promise<void>;\n };\n}): ReadableStream<T> {\n const delay = _internal?.delay ?? delayFunction;\n\n let index = 0;\n\n return new ReadableStream({\n async pull(controller) {\n if (index < chunks.length) {\n await delay(index === 0 ? initialDelayInMs : chunkDelayInMs);\n controller.enqueue(chunks[index++]);\n } else {\n controller.close();\n }\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAAA;AAAA;AAAA;AAAA,kBAKO;;;ACLA,SAAS,iBAAwB;AACtC,QAAM,IAAI,MAAM,iBAAiB;AACnC;;;ACCO,IAAM,uBAAN,MAAqE;AAAA,EAU1E,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,uBAAuB;AAAA,IACvB,wBAAwB;AAAA,IACxB,UAAU;AAAA,EACZ,IAQI,CAAC,GAAG;AAvBR,SAAS,uBAAuB;AAwB9B,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,uBAAuB,wBAAwB;AACpD,SAAK,wBAAwB;AAC7B,SAAK,UAAU;AAAA,EACjB;AACF;;;AC/BO,IAAM,mBAAN,MAA+C;AAAA,EAQpD,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,aAAa;AAAA,EACf,IAKI,CAAC,GAAG;AAjBR,SAAS,uBAAuB;AAkB9B,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,mBAAmB;AACxB,SAAK,aAAa;AAAA,EACpB;AACF;;;ACxBO,IAAM,sBAAN,MAAqD;AAAA,EAc1D,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,gBAAgB,CAAC;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,EACb,IAcI,CAAC,GAAG;AAjCR,SAAS,uBAAuB;AAUhC,2BAAkE,CAAC;AACnE,yBAA8D,CAAC;AAuB7D,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,aAAa,OAAM,YAAW;AACjC,WAAK,gBAAgB,KAAK,OAAO;AAEjC,UAAI,OAAO,eAAe,YAAY;AACpC,eAAO,WAAW,OAAO;AAAA,MAC3B,WAAW,MAAM,QAAQ,UAAU,GAAG;AACpC,eAAO,WAAW,KAAK,gBAAgB,MAAM;AAAA,MAC/C,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AACA,SAAK,WAAW,OAAM,YAAW;AAC/B,WAAK,cAAc,KAAK,OAAO;AAE/B,UAAI,OAAO,aAAa,YAAY;AAClC,eAAO,SAAS,OAAO;AAAA,MACzB,WAAW,MAAM,QAAQ,QAAQ,GAAG;AAClC,eAAO,SAAS,KAAK,cAAc,MAAM;AAAA,MAC3C,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AACA,SAAK,iBACH,OAAO,kBAAkB,aACrB,gBACA,YAAY;AAAA,EACpB;AAAA,EAEA,IAAI,gBAAgB;AAClB,WAAO,KAAK,eAAe;AAAA,EAC7B;AACF;;;ACvEA,sBAQO;AAEA,IAAM,iBAAN,MAA2C;AAAA,EAOhD,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAMI,CAAC,GAAG;AACN,SAAK,gBAAgB,CAAC,YAAoB;AACxC,UAAI,CAAC,iBAAiB,OAAO,GAAG;AAC9B,cAAM,IAAI,iCAAiB,EAAE,SAAS,WAAW,gBAAgB,CAAC;AAAA,MACpE;AACA,aAAO,eAAe,OAAO;AAAA,IAC/B;AACA,SAAK,qBAAqB,CAAC,YAAoB;AAC7C,UAAI,CAAC,kBAAkB,OAAO,GAAG;AAC/B,cAAM,IAAI,iCAAiB;AAAA,UACzB;AAAA,UACA,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AACA,aAAO,gBAAgB,OAAO;AAAA,IAChC;AACA,SAAK,aAAa,CAAC,YAAoB;AACrC,UAAI,CAAC,cAAc,OAAO,GAAG;AAC3B,cAAM,IAAI,iCAAiB,EAAE,SAAS,WAAW,aAAa,CAAC;AAAA,MACjE;AACA,aAAO,YAAY,OAAO;AAAA,IAC5B;AACA,SAAK,qBAAqB,CAAC,YAAoB;AAC7C,UAAI,CAAC,sBAAsB,OAAO,GAAG;AACnC,cAAM,IAAI,iCAAiB;AAAA,UACzB;AAAA,UACA,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AACA,aAAO,oBAAoB,OAAO;AAAA,IACpC;AACA,SAAK,cAAc,CAAC,YAAoB;AACtC,UAAI,CAAC,eAAe,OAAO,GAAG;AAC5B,cAAM,IAAI,iCAAiB,EAAE,SAAS,WAAW,cAAc,CAAC;AAAA,MAClE;AACA,aAAO,aAAa,OAAO;AAAA,IAC7B;AAAA,EACF;AACF;;;AChEO,IAAM,oBAAN,MAAiD;AAAA,EAOtD,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aAAa;AAAA,EACf,IAII,CAAC,GAAG;AAdR,SAAS,uBAAuB;AAe9B,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,aAAa;AAAA,EACpB;AACF;;;ACpBO,IAAM,2BAAN,MAA+D;AAAA,EAOpE,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aAAa;AAAA,EACf,IAII,CAAC,GAAG;AAdR,SAAS,uBAAuB;AAe9B,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,aAAa;AAAA,EACpB;AACF;;;ACvBO,SAAS,cAAiB,QAAsB;AACrD,MAAI,UAAU;AACd,SAAO,MAAM,OAAO,SAAS,KAAK,OAAO,OAAO,SAAS,CAAC;AAC5D;;;ACHA,4BAAuC;AAWhC,SAAS,uBAA0B;AAAA,EACxC;AAAA,EACA,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB;AACF,GAOsB;AACpB,QAAM,QAAQ,WAAW,SAAS,sBAAAC;AAElC,MAAI,QAAQ;AAEZ,SAAO,IAAI,eAAe;AAAA,IACxB,MAAM,KAAK,YAAY;AACrB,UAAI,QAAQ,OAAO,QAAQ;AACzB,cAAM,MAAM,UAAU,IAAI,mBAAmB,cAAc;AAC3D,mBAAW,QAAQ,OAAO,OAAO,CAAC;AAAA,MACpC,OAAO;AACL,mBAAW,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;ATnBO,IAAMC,0BAAyB;","names":["simulateReadableStream","delayFunction","simulateReadableStream"]}
1
+ {"version":3,"sources":["../../test/index.ts","../../src/test/not-implemented.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-language-model-v3.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-speech-model-v3.ts","../../src/test/mock-transcription-model-v3.ts","../../src/test/mock-reranking-model-v3.ts","../../src/test/mock-values.ts","../../src/util/simulate-readable-stream.ts"],"sourcesContent":["export {\n convertArrayToAsyncIterable,\n convertArrayToReadableStream,\n convertReadableStreamToArray,\n mockId,\n} from '@ai-sdk/provider-utils/test';\nexport { MockEmbeddingModelV3 } from '../src/test/mock-embedding-model-v3';\nexport { MockImageModelV3 } from '../src/test/mock-image-model-v3';\nexport { MockLanguageModelV3 } from '../src/test/mock-language-model-v3';\nexport { MockProviderV3 } from '../src/test/mock-provider-v3';\nexport { MockSpeechModelV3 } from '../src/test/mock-speech-model-v3';\nexport { MockTranscriptionModelV3 } from '../src/test/mock-transcription-model-v3';\nexport { MockRerankingModelV3 } from '../src/test/mock-reranking-model-v3';\nexport { mockValues } from '../src/test/mock-values';\n\nimport { simulateReadableStream as originalSimulateReadableStream } from '../src/util/simulate-readable-stream';\n\n/**\n * @deprecated Use `simulateReadableStream` from `ai` instead.\n */\nexport const simulateReadableStream = originalSimulateReadableStream;\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { EmbeddingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV3<VALUE> implements EmbeddingModelV3<VALUE> {\n readonly specificationVersion = 'v3';\n\n readonly provider: EmbeddingModelV3<VALUE>['provider'];\n readonly modelId: EmbeddingModelV3<VALUE>['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall'];\n readonly supportsParallelCalls: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV3<VALUE>['doEmbed'];\n\n doEmbedCalls: Parameters<EmbeddingModelV3<VALUE>['doEmbed']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV3<VALUE>['provider'];\n modelId?: EmbeddingModelV3<VALUE>['modelId'];\n maxEmbeddingsPerCall?:\n | EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall']\n | null;\n supportsParallelCalls?: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n doEmbed?:\n | EmbeddingModelV3<VALUE>['doEmbed']\n | Awaited<ReturnType<EmbeddingModelV3<VALUE>['doEmbed']>>\n | Awaited<ReturnType<EmbeddingModelV3<VALUE>['doEmbed']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = async options => {\n this.doEmbedCalls.push(options);\n\n if (typeof doEmbed === 'function') {\n return doEmbed(options);\n } else if (Array.isArray(doEmbed)) {\n return doEmbed[this.doEmbedCalls.length];\n } else {\n return doEmbed;\n }\n };\n }\n}\n","import { ImageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV3 implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: ImageModelV3['provider'];\n readonly modelId: ImageModelV3['modelId'];\n readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];\n\n doGenerate: ImageModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV3['provider'];\n modelId?: ImageModelV3['modelId'];\n maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];\n doGenerate?: ImageModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import { LanguageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV3 implements LanguageModelV3 {\n readonly specificationVersion = 'v3';\n\n private _supportedUrls: () => LanguageModelV3['supportedUrls'];\n\n readonly provider: LanguageModelV3['provider'];\n readonly modelId: LanguageModelV3['modelId'];\n\n doGenerate: LanguageModelV3['doGenerate'];\n doStream: LanguageModelV3['doStream'];\n\n doGenerateCalls: Parameters<LanguageModelV3['doGenerate']>[0][] = [];\n doStreamCalls: Parameters<LanguageModelV3['doStream']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV3['provider'];\n modelId?: LanguageModelV3['modelId'];\n supportedUrls?:\n | LanguageModelV3['supportedUrls']\n | (() => LanguageModelV3['supportedUrls']);\n doGenerate?:\n | LanguageModelV3['doGenerate']\n | Awaited<ReturnType<LanguageModelV3['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV3['doGenerate']>>[];\n doStream?:\n | LanguageModelV3['doStream']\n | Awaited<ReturnType<LanguageModelV3['doStream']>>\n | Awaited<ReturnType<LanguageModelV3['doStream']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import {\n EmbeddingModelV3,\n ImageModelV3,\n LanguageModelV3,\n NoSuchModelError,\n ProviderV3,\n SpeechModelV3,\n TranscriptionModelV3,\n RerankingModelV3,\n} from '@ai-sdk/provider';\n\nexport class MockProviderV3 implements ProviderV3 {\n readonly specificationVersion = 'v3' as const;\n\n languageModel: ProviderV3['languageModel'];\n textEmbeddingModel: ProviderV3['textEmbeddingModel'];\n imageModel: ProviderV3['imageModel'];\n transcriptionModel: ProviderV3['transcriptionModel'];\n speechModel: ProviderV3['speechModel'];\n rerankingModel: ProviderV3['rerankingModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n rerankingModels,\n }: {\n languageModels?: Record<string, LanguageModelV3>;\n embeddingModels?: Record<string, EmbeddingModelV3<string>>;\n imageModels?: Record<string, ImageModelV3>;\n transcriptionModels?: Record<string, TranscriptionModelV3>;\n speechModels?: Record<string, SpeechModelV3>;\n rerankingModels?: Record<string, RerankingModelV3>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.textEmbeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'textEmbeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string): SpeechModelV3 => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n this.rerankingModel = (modelId: string) => {\n if (!rerankingModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'rerankingModel' });\n }\n return rerankingModels[modelId];\n };\n }\n}\n","import { SpeechModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV3 implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: SpeechModelV3['provider'];\n readonly modelId: SpeechModelV3['modelId'];\n\n doGenerate: SpeechModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV3['provider'];\n modelId?: SpeechModelV3['modelId'];\n doGenerate?: SpeechModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import { TranscriptionModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV3 implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: TranscriptionModelV3['provider'];\n readonly modelId: TranscriptionModelV3['modelId'];\n\n doGenerate: TranscriptionModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: TranscriptionModelV3['provider'];\n modelId?: TranscriptionModelV3['modelId'];\n doGenerate?: TranscriptionModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import { RerankingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockRerankingModelV3 implements RerankingModelV3 {\n readonly specificationVersion = 'v3';\n\n readonly provider: RerankingModelV3['provider'];\n readonly modelId: RerankingModelV3['modelId'];\n\n doRerank: RerankingModelV3['doRerank'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doRerank = notImplemented,\n }: {\n provider?: RerankingModelV3['provider'];\n modelId?: RerankingModelV3['modelId'];\n doRerank?: RerankingModelV3['doRerank'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doRerank = doRerank;\n }\n}\n","export function mockValues<T>(...values: T[]): () => T {\n let counter = 0;\n return () => values[counter++] ?? values[values.length - 1];\n}\n","import { delay as delayFunction } from '@ai-sdk/provider-utils';\n\n/**\n * Creates a ReadableStream that emits the provided values with an optional delay between each value.\n *\n * @param options - The configuration options\n * @param options.chunks - Array of values to be emitted by the stream\n * @param options.initialDelayInMs - Optional initial delay in milliseconds before emitting the first value (default: 0). Can be set to `null` to skip the initial delay. The difference between `initialDelayInMs: null` and `initialDelayInMs: 0` is that `initialDelayInMs: null` will emit the values without any delay, while `initialDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @param options.chunkDelayInMs - Optional delay in milliseconds between emitting each value (default: 0). Can be set to `null` to skip the delay. The difference between `chunkDelayInMs: null` and `chunkDelayInMs: 0` is that `chunkDelayInMs: null` will emit the values without any delay, while `chunkDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @returns A ReadableStream that emits the provided values\n */\nexport function simulateReadableStream<T>({\n chunks,\n initialDelayInMs = 0,\n chunkDelayInMs = 0,\n _internal,\n}: {\n chunks: T[];\n initialDelayInMs?: number | null;\n chunkDelayInMs?: number | null;\n _internal?: {\n delay?: (ms: number | null) => Promise<void>;\n };\n}): ReadableStream<T> {\n const delay = _internal?.delay ?? delayFunction;\n\n let index = 0;\n\n return new ReadableStream({\n async pull(controller) {\n if (index < chunks.length) {\n await delay(index === 0 ? initialDelayInMs : chunkDelayInMs);\n controller.enqueue(chunks[index++]);\n } else {\n controller.close();\n }\n },\n });\n}\n"],"mappings":"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","names":["simulateReadableStream","delayFunction","simulateReadableStream"]}
@@ -21,11 +21,21 @@ var MockEmbeddingModelV3 = class {
21
21
  doEmbed = notImplemented
22
22
  } = {}) {
23
23
  this.specificationVersion = "v3";
24
+ this.doEmbedCalls = [];
24
25
  this.provider = provider;
25
26
  this.modelId = modelId;
26
27
  this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? void 0;
27
28
  this.supportsParallelCalls = supportsParallelCalls;
28
- this.doEmbed = doEmbed;
29
+ this.doEmbed = async (options) => {
30
+ this.doEmbedCalls.push(options);
31
+ if (typeof doEmbed === "function") {
32
+ return doEmbed(options);
33
+ } else if (Array.isArray(doEmbed)) {
34
+ return doEmbed[this.doEmbedCalls.length];
35
+ } else {
36
+ return doEmbed;
37
+ }
38
+ };
29
39
  }
30
40
  };
31
41
 
@@ -45,8 +55,8 @@ var MockImageModelV3 = class {
45
55
  }
46
56
  };
47
57
 
48
- // src/test/mock-language-model-v2.ts
49
- var MockLanguageModelV2 = class {
58
+ // src/test/mock-language-model-v3.ts
59
+ var MockLanguageModelV3 = class {
50
60
  constructor({
51
61
  provider = "mock-provider",
52
62
  modelId = "mock-model-id",
@@ -54,7 +64,7 @@ var MockLanguageModelV2 = class {
54
64
  doGenerate = notImplemented,
55
65
  doStream = notImplemented
56
66
  } = {}) {
57
- this.specificationVersion = "v2";
67
+ this.specificationVersion = "v3";
58
68
  this.doGenerateCalls = [];
59
69
  this.doStreamCalls = [];
60
70
  this.provider = provider;
@@ -96,8 +106,10 @@ var MockProviderV3 = class {
96
106
  embeddingModels,
97
107
  imageModels,
98
108
  transcriptionModels,
99
- speechModels
109
+ speechModels,
110
+ rerankingModels
100
111
  } = {}) {
112
+ this.specificationVersion = "v3";
101
113
  this.languageModel = (modelId) => {
102
114
  if (!languageModels?.[modelId]) {
103
115
  throw new NoSuchModelError({ modelId, modelType: "languageModel" });
@@ -134,37 +146,57 @@ var MockProviderV3 = class {
134
146
  }
135
147
  return speechModels[modelId];
136
148
  };
149
+ this.rerankingModel = (modelId) => {
150
+ if (!rerankingModels?.[modelId]) {
151
+ throw new NoSuchModelError({ modelId, modelType: "rerankingModel" });
152
+ }
153
+ return rerankingModels[modelId];
154
+ };
137
155
  }
138
156
  };
139
157
 
140
- // src/test/mock-speech-model-v2.ts
141
- var MockSpeechModelV2 = class {
158
+ // src/test/mock-speech-model-v3.ts
159
+ var MockSpeechModelV3 = class {
142
160
  constructor({
143
161
  provider = "mock-provider",
144
162
  modelId = "mock-model-id",
145
163
  doGenerate = notImplemented
146
164
  } = {}) {
147
- this.specificationVersion = "v2";
165
+ this.specificationVersion = "v3";
148
166
  this.provider = provider;
149
167
  this.modelId = modelId;
150
168
  this.doGenerate = doGenerate;
151
169
  }
152
170
  };
153
171
 
154
- // src/test/mock-transcription-model-v2.ts
155
- var MockTranscriptionModelV2 = class {
172
+ // src/test/mock-transcription-model-v3.ts
173
+ var MockTranscriptionModelV3 = class {
156
174
  constructor({
157
175
  provider = "mock-provider",
158
176
  modelId = "mock-model-id",
159
177
  doGenerate = notImplemented
160
178
  } = {}) {
161
- this.specificationVersion = "v2";
179
+ this.specificationVersion = "v3";
162
180
  this.provider = provider;
163
181
  this.modelId = modelId;
164
182
  this.doGenerate = doGenerate;
165
183
  }
166
184
  };
167
185
 
186
+ // src/test/mock-reranking-model-v3.ts
187
+ var MockRerankingModelV3 = class {
188
+ constructor({
189
+ provider = "mock-provider",
190
+ modelId = "mock-model-id",
191
+ doRerank = notImplemented
192
+ } = {}) {
193
+ this.specificationVersion = "v3";
194
+ this.provider = provider;
195
+ this.modelId = modelId;
196
+ this.doRerank = doRerank;
197
+ }
198
+ };
199
+
168
200
  // src/test/mock-values.ts
169
201
  function mockValues(...values) {
170
202
  let counter = 0;
@@ -198,10 +230,11 @@ var simulateReadableStream2 = simulateReadableStream;
198
230
  export {
199
231
  MockEmbeddingModelV3,
200
232
  MockImageModelV3,
201
- MockLanguageModelV2,
233
+ MockLanguageModelV3,
202
234
  MockProviderV3,
203
- MockSpeechModelV2,
204
- MockTranscriptionModelV2,
235
+ MockRerankingModelV3,
236
+ MockSpeechModelV3,
237
+ MockTranscriptionModelV3,
205
238
  convertArrayToAsyncIterable,
206
239
  convertArrayToReadableStream,
207
240
  convertReadableStreamToArray,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../test/index.ts","../../src/test/not-implemented.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-language-model-v2.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-speech-model-v2.ts","../../src/test/mock-transcription-model-v2.ts","../../src/test/mock-values.ts","../../src/util/simulate-readable-stream.ts"],"sourcesContent":["export {\n convertArrayToAsyncIterable,\n convertArrayToReadableStream,\n convertReadableStreamToArray,\n mockId,\n} from '@ai-sdk/provider-utils/test';\nexport { MockEmbeddingModelV3 } from '../src/test/mock-embedding-model-v3';\nexport { MockImageModelV3 } from '../src/test/mock-image-model-v3';\nexport { MockLanguageModelV2 } from '../src/test/mock-language-model-v2';\nexport { MockProviderV3 } from '../src/test/mock-provider-v3';\nexport { MockSpeechModelV2 } from '../src/test/mock-speech-model-v2';\nexport { MockTranscriptionModelV2 } from '../src/test/mock-transcription-model-v2';\nexport { mockValues } from '../src/test/mock-values';\n\nimport { simulateReadableStream as originalSimulateReadableStream } from '../src/util/simulate-readable-stream';\n\n/**\n * @deprecated Use `simulateReadableStream` from `ai` instead.\n */\nexport const simulateReadableStream = originalSimulateReadableStream;\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { EmbeddingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV3<VALUE> implements EmbeddingModelV3<VALUE> {\n readonly specificationVersion = 'v3';\n\n readonly provider: EmbeddingModelV3<VALUE>['provider'];\n readonly modelId: EmbeddingModelV3<VALUE>['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall'];\n readonly supportsParallelCalls: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV3<VALUE>['doEmbed'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV3<VALUE>['provider'];\n modelId?: EmbeddingModelV3<VALUE>['modelId'];\n maxEmbeddingsPerCall?:\n | EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall']\n | null;\n supportsParallelCalls?: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n doEmbed?: EmbeddingModelV3<VALUE>['doEmbed'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = doEmbed;\n }\n}\n","import { ImageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV3 implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: ImageModelV3['provider'];\n readonly modelId: ImageModelV3['modelId'];\n readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];\n\n doGenerate: ImageModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV3['provider'];\n modelId?: ImageModelV3['modelId'];\n maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];\n doGenerate?: ImageModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import { LanguageModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV2 implements LanguageModelV2 {\n readonly specificationVersion = 'v2';\n\n private _supportedUrls: () => LanguageModelV2['supportedUrls'];\n\n readonly provider: LanguageModelV2['provider'];\n readonly modelId: LanguageModelV2['modelId'];\n\n doGenerate: LanguageModelV2['doGenerate'];\n doStream: LanguageModelV2['doStream'];\n\n doGenerateCalls: Parameters<LanguageModelV2['doGenerate']>[0][] = [];\n doStreamCalls: Parameters<LanguageModelV2['doStream']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV2['provider'];\n modelId?: LanguageModelV2['modelId'];\n supportedUrls?:\n | LanguageModelV2['supportedUrls']\n | (() => LanguageModelV2['supportedUrls']);\n doGenerate?:\n | LanguageModelV2['doGenerate']\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV2['doGenerate']>>[];\n doStream?:\n | LanguageModelV2['doStream']\n | Awaited<ReturnType<LanguageModelV2['doStream']>>\n | Awaited<ReturnType<LanguageModelV2['doStream']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import {\n EmbeddingModelV3,\n ImageModelV3,\n LanguageModelV2,\n NoSuchModelError,\n ProviderV3,\n SpeechModelV2,\n TranscriptionModelV2,\n} from '@ai-sdk/provider';\n\nexport class MockProviderV3 implements ProviderV3 {\n languageModel: ProviderV3['languageModel'];\n textEmbeddingModel: ProviderV3['textEmbeddingModel'];\n imageModel: ProviderV3['imageModel'];\n transcriptionModel: ProviderV3['transcriptionModel'];\n speechModel: ProviderV3['speechModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n }: {\n languageModels?: Record<string, LanguageModelV2>;\n embeddingModels?: Record<string, EmbeddingModelV3<string>>;\n imageModels?: Record<string, ImageModelV3>;\n transcriptionModels?: Record<string, TranscriptionModelV2>;\n speechModels?: Record<string, SpeechModelV2>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.textEmbeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'textEmbeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string) => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n }\n}\n","import { SpeechModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV2 implements SpeechModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider: SpeechModelV2['provider'];\n readonly modelId: SpeechModelV2['modelId'];\n\n doGenerate: SpeechModelV2['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV2['provider'];\n modelId?: SpeechModelV2['modelId'];\n doGenerate?: SpeechModelV2['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import { TranscriptionModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV2 implements TranscriptionModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider: TranscriptionModelV2['provider'];\n readonly modelId: TranscriptionModelV2['modelId'];\n\n doGenerate: TranscriptionModelV2['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: TranscriptionModelV2['provider'];\n modelId?: TranscriptionModelV2['modelId'];\n doGenerate?: TranscriptionModelV2['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","export function mockValues<T>(...values: T[]): () => T {\n let counter = 0;\n return () => values[counter++] ?? values[values.length - 1];\n}\n","import { delay as delayFunction } from '@ai-sdk/provider-utils';\n\n/**\n * Creates a ReadableStream that emits the provided values with an optional delay between each value.\n *\n * @param options - The configuration options\n * @param options.chunks - Array of values to be emitted by the stream\n * @param options.initialDelayInMs - Optional initial delay in milliseconds before emitting the first value (default: 0). Can be set to `null` to skip the initial delay. The difference between `initialDelayInMs: null` and `initialDelayInMs: 0` is that `initialDelayInMs: null` will emit the values without any delay, while `initialDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @param options.chunkDelayInMs - Optional delay in milliseconds between emitting each value (default: 0). Can be set to `null` to skip the delay. The difference between `chunkDelayInMs: null` and `chunkDelayInMs: 0` is that `chunkDelayInMs: null` will emit the values without any delay, while `chunkDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @returns A ReadableStream that emits the provided values\n */\nexport function simulateReadableStream<T>({\n chunks,\n initialDelayInMs = 0,\n chunkDelayInMs = 0,\n _internal,\n}: {\n chunks: T[];\n initialDelayInMs?: number | null;\n chunkDelayInMs?: number | null;\n _internal?: {\n delay?: (ms: number | null) => Promise<void>;\n };\n}): ReadableStream<T> {\n const delay = _internal?.delay ?? delayFunction;\n\n let index = 0;\n\n return new ReadableStream({\n async pull(controller) {\n if (index < chunks.length) {\n await delay(index === 0 ? initialDelayInMs : chunkDelayInMs);\n controller.enqueue(chunks[index++]);\n } else {\n controller.close();\n }\n },\n });\n}\n"],"mappings":"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","names":["simulateReadableStream"]}
1
+ {"version":3,"sources":["../../test/index.ts","../../src/test/not-implemented.ts","../../src/test/mock-embedding-model-v3.ts","../../src/test/mock-image-model-v3.ts","../../src/test/mock-language-model-v3.ts","../../src/test/mock-provider-v3.ts","../../src/test/mock-speech-model-v3.ts","../../src/test/mock-transcription-model-v3.ts","../../src/test/mock-reranking-model-v3.ts","../../src/test/mock-values.ts","../../src/util/simulate-readable-stream.ts"],"sourcesContent":["export {\n convertArrayToAsyncIterable,\n convertArrayToReadableStream,\n convertReadableStreamToArray,\n mockId,\n} from '@ai-sdk/provider-utils/test';\nexport { MockEmbeddingModelV3 } from '../src/test/mock-embedding-model-v3';\nexport { MockImageModelV3 } from '../src/test/mock-image-model-v3';\nexport { MockLanguageModelV3 } from '../src/test/mock-language-model-v3';\nexport { MockProviderV3 } from '../src/test/mock-provider-v3';\nexport { MockSpeechModelV3 } from '../src/test/mock-speech-model-v3';\nexport { MockTranscriptionModelV3 } from '../src/test/mock-transcription-model-v3';\nexport { MockRerankingModelV3 } from '../src/test/mock-reranking-model-v3';\nexport { mockValues } from '../src/test/mock-values';\n\nimport { simulateReadableStream as originalSimulateReadableStream } from '../src/util/simulate-readable-stream';\n\n/**\n * @deprecated Use `simulateReadableStream` from `ai` instead.\n */\nexport const simulateReadableStream = originalSimulateReadableStream;\n","export function notImplemented(): never {\n throw new Error('Not implemented');\n}\n","import { EmbeddingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockEmbeddingModelV3<VALUE> implements EmbeddingModelV3<VALUE> {\n readonly specificationVersion = 'v3';\n\n readonly provider: EmbeddingModelV3<VALUE>['provider'];\n readonly modelId: EmbeddingModelV3<VALUE>['modelId'];\n readonly maxEmbeddingsPerCall: EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall'];\n readonly supportsParallelCalls: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n\n doEmbed: EmbeddingModelV3<VALUE>['doEmbed'];\n\n doEmbedCalls: Parameters<EmbeddingModelV3<VALUE>['doEmbed']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxEmbeddingsPerCall = 1,\n supportsParallelCalls = false,\n doEmbed = notImplemented,\n }: {\n provider?: EmbeddingModelV3<VALUE>['provider'];\n modelId?: EmbeddingModelV3<VALUE>['modelId'];\n maxEmbeddingsPerCall?:\n | EmbeddingModelV3<VALUE>['maxEmbeddingsPerCall']\n | null;\n supportsParallelCalls?: EmbeddingModelV3<VALUE>['supportsParallelCalls'];\n doEmbed?:\n | EmbeddingModelV3<VALUE>['doEmbed']\n | Awaited<ReturnType<EmbeddingModelV3<VALUE>['doEmbed']>>\n | Awaited<ReturnType<EmbeddingModelV3<VALUE>['doEmbed']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxEmbeddingsPerCall = maxEmbeddingsPerCall ?? undefined;\n this.supportsParallelCalls = supportsParallelCalls;\n this.doEmbed = async options => {\n this.doEmbedCalls.push(options);\n\n if (typeof doEmbed === 'function') {\n return doEmbed(options);\n } else if (Array.isArray(doEmbed)) {\n return doEmbed[this.doEmbedCalls.length];\n } else {\n return doEmbed;\n }\n };\n }\n}\n","import { ImageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV3 implements ImageModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: ImageModelV3['provider'];\n readonly modelId: ImageModelV3['modelId'];\n readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];\n\n doGenerate: ImageModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV3['provider'];\n modelId?: ImageModelV3['modelId'];\n maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];\n doGenerate?: ImageModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.maxImagesPerCall = maxImagesPerCall;\n this.doGenerate = doGenerate;\n }\n}\n","import { LanguageModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockLanguageModelV3 implements LanguageModelV3 {\n readonly specificationVersion = 'v3';\n\n private _supportedUrls: () => LanguageModelV3['supportedUrls'];\n\n readonly provider: LanguageModelV3['provider'];\n readonly modelId: LanguageModelV3['modelId'];\n\n doGenerate: LanguageModelV3['doGenerate'];\n doStream: LanguageModelV3['doStream'];\n\n doGenerateCalls: Parameters<LanguageModelV3['doGenerate']>[0][] = [];\n doStreamCalls: Parameters<LanguageModelV3['doStream']>[0][] = [];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n supportedUrls = {},\n doGenerate = notImplemented,\n doStream = notImplemented,\n }: {\n provider?: LanguageModelV3['provider'];\n modelId?: LanguageModelV3['modelId'];\n supportedUrls?:\n | LanguageModelV3['supportedUrls']\n | (() => LanguageModelV3['supportedUrls']);\n doGenerate?:\n | LanguageModelV3['doGenerate']\n | Awaited<ReturnType<LanguageModelV3['doGenerate']>>\n | Awaited<ReturnType<LanguageModelV3['doGenerate']>>[];\n doStream?:\n | LanguageModelV3['doStream']\n | Awaited<ReturnType<LanguageModelV3['doStream']>>\n | Awaited<ReturnType<LanguageModelV3['doStream']>>[];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = async options => {\n this.doGenerateCalls.push(options);\n\n if (typeof doGenerate === 'function') {\n return doGenerate(options);\n } else if (Array.isArray(doGenerate)) {\n return doGenerate[this.doGenerateCalls.length];\n } else {\n return doGenerate;\n }\n };\n this.doStream = async options => {\n this.doStreamCalls.push(options);\n\n if (typeof doStream === 'function') {\n return doStream(options);\n } else if (Array.isArray(doStream)) {\n return doStream[this.doStreamCalls.length];\n } else {\n return doStream;\n }\n };\n this._supportedUrls =\n typeof supportedUrls === 'function'\n ? supportedUrls\n : async () => supportedUrls;\n }\n\n get supportedUrls() {\n return this._supportedUrls();\n }\n}\n","import {\n EmbeddingModelV3,\n ImageModelV3,\n LanguageModelV3,\n NoSuchModelError,\n ProviderV3,\n SpeechModelV3,\n TranscriptionModelV3,\n RerankingModelV3,\n} from '@ai-sdk/provider';\n\nexport class MockProviderV3 implements ProviderV3 {\n readonly specificationVersion = 'v3' as const;\n\n languageModel: ProviderV3['languageModel'];\n textEmbeddingModel: ProviderV3['textEmbeddingModel'];\n imageModel: ProviderV3['imageModel'];\n transcriptionModel: ProviderV3['transcriptionModel'];\n speechModel: ProviderV3['speechModel'];\n rerankingModel: ProviderV3['rerankingModel'];\n\n constructor({\n languageModels,\n embeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n rerankingModels,\n }: {\n languageModels?: Record<string, LanguageModelV3>;\n embeddingModels?: Record<string, EmbeddingModelV3<string>>;\n imageModels?: Record<string, ImageModelV3>;\n transcriptionModels?: Record<string, TranscriptionModelV3>;\n speechModels?: Record<string, SpeechModelV3>;\n rerankingModels?: Record<string, RerankingModelV3>;\n } = {}) {\n this.languageModel = (modelId: string) => {\n if (!languageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'languageModel' });\n }\n return languageModels[modelId];\n };\n this.textEmbeddingModel = (modelId: string) => {\n if (!embeddingModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'textEmbeddingModel',\n });\n }\n return embeddingModels[modelId];\n };\n this.imageModel = (modelId: string) => {\n if (!imageModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n }\n return imageModels[modelId];\n };\n this.transcriptionModel = (modelId: string) => {\n if (!transcriptionModels?.[modelId]) {\n throw new NoSuchModelError({\n modelId,\n modelType: 'transcriptionModel',\n });\n }\n return transcriptionModels[modelId];\n };\n this.speechModel = (modelId: string): SpeechModelV3 => {\n if (!speechModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'speechModel' });\n }\n return speechModels[modelId];\n };\n this.rerankingModel = (modelId: string) => {\n if (!rerankingModels?.[modelId]) {\n throw new NoSuchModelError({ modelId, modelType: 'rerankingModel' });\n }\n return rerankingModels[modelId];\n };\n }\n}\n","import { SpeechModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockSpeechModelV3 implements SpeechModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: SpeechModelV3['provider'];\n readonly modelId: SpeechModelV3['modelId'];\n\n doGenerate: SpeechModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: SpeechModelV3['provider'];\n modelId?: SpeechModelV3['modelId'];\n doGenerate?: SpeechModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import { TranscriptionModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockTranscriptionModelV3 implements TranscriptionModelV3 {\n readonly specificationVersion = 'v3';\n readonly provider: TranscriptionModelV3['provider'];\n readonly modelId: TranscriptionModelV3['modelId'];\n\n doGenerate: TranscriptionModelV3['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doGenerate = notImplemented,\n }: {\n provider?: TranscriptionModelV3['provider'];\n modelId?: TranscriptionModelV3['modelId'];\n doGenerate?: TranscriptionModelV3['doGenerate'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doGenerate = doGenerate;\n }\n}\n","import { RerankingModelV3 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockRerankingModelV3 implements RerankingModelV3 {\n readonly specificationVersion = 'v3';\n\n readonly provider: RerankingModelV3['provider'];\n readonly modelId: RerankingModelV3['modelId'];\n\n doRerank: RerankingModelV3['doRerank'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n doRerank = notImplemented,\n }: {\n provider?: RerankingModelV3['provider'];\n modelId?: RerankingModelV3['modelId'];\n doRerank?: RerankingModelV3['doRerank'];\n } = {}) {\n this.provider = provider;\n this.modelId = modelId;\n this.doRerank = doRerank;\n }\n}\n","export function mockValues<T>(...values: T[]): () => T {\n let counter = 0;\n return () => values[counter++] ?? values[values.length - 1];\n}\n","import { delay as delayFunction } from '@ai-sdk/provider-utils';\n\n/**\n * Creates a ReadableStream that emits the provided values with an optional delay between each value.\n *\n * @param options - The configuration options\n * @param options.chunks - Array of values to be emitted by the stream\n * @param options.initialDelayInMs - Optional initial delay in milliseconds before emitting the first value (default: 0). Can be set to `null` to skip the initial delay. The difference between `initialDelayInMs: null` and `initialDelayInMs: 0` is that `initialDelayInMs: null` will emit the values without any delay, while `initialDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @param options.chunkDelayInMs - Optional delay in milliseconds between emitting each value (default: 0). Can be set to `null` to skip the delay. The difference between `chunkDelayInMs: null` and `chunkDelayInMs: 0` is that `chunkDelayInMs: null` will emit the values without any delay, while `chunkDelayInMs: 0` will emit the values with a delay of 0 milliseconds.\n * @returns A ReadableStream that emits the provided values\n */\nexport function simulateReadableStream<T>({\n chunks,\n initialDelayInMs = 0,\n chunkDelayInMs = 0,\n _internal,\n}: {\n chunks: T[];\n initialDelayInMs?: number | null;\n chunkDelayInMs?: number | null;\n _internal?: {\n delay?: (ms: number | null) => Promise<void>;\n };\n}): ReadableStream<T> {\n const delay = _internal?.delay ?? delayFunction;\n\n let index = 0;\n\n return new ReadableStream({\n async pull(controller) {\n if (index < chunks.length) {\n await delay(index === 0 ? initialDelayInMs : chunkDelayInMs);\n controller.enqueue(chunks[index++]);\n } else {\n controller.close();\n }\n },\n });\n}\n"],"mappings":"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","names":["simulateReadableStream"]}