ai 5.1.0-beta.8 → 6.0.0-beta.100

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, ImageModelV2, LanguageModelV2, ProviderV2, 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,84 +8,100 @@ 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
 
20
- declare class MockImageModelV2 implements ImageModelV2 {
21
- readonly specificationVersion = "v2";
22
- readonly provider: ImageModelV2['provider'];
23
- readonly modelId: ImageModelV2['modelId'];
24
- readonly maxImagesPerCall: ImageModelV2['maxImagesPerCall'];
25
- doGenerate: ImageModelV2['doGenerate'];
21
+ declare class MockImageModelV3 implements ImageModelV3 {
22
+ readonly specificationVersion = "v3";
23
+ readonly provider: ImageModelV3['provider'];
24
+ readonly modelId: ImageModelV3['modelId'];
25
+ readonly maxImagesPerCall: ImageModelV3['maxImagesPerCall'];
26
+ doGenerate: ImageModelV3['doGenerate'];
26
27
  constructor({ provider, modelId, maxImagesPerCall, doGenerate, }?: {
27
- provider?: ImageModelV2['provider'];
28
- modelId?: ImageModelV2['modelId'];
29
- maxImagesPerCall?: ImageModelV2['maxImagesPerCall'];
30
- doGenerate?: ImageModelV2['doGenerate'];
28
+ provider?: ImageModelV3['provider'];
29
+ modelId?: ImageModelV3['modelId'];
30
+ maxImagesPerCall?: ImageModelV3['maxImagesPerCall'];
31
+ doGenerate?: ImageModelV3['doGenerate'];
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
- declare class MockProviderV2 implements ProviderV2 {
54
- languageModel: ProviderV2['languageModel'];
55
- textEmbeddingModel: ProviderV2['textEmbeddingModel'];
56
- imageModel: ProviderV2['imageModel'];
57
- transcriptionModel: ProviderV2['transcriptionModel'];
58
- speechModel: ProviderV2['speechModel'];
59
- constructor({ languageModels, embeddingModels, imageModels, transcriptionModels, speechModels, }?: {
60
- languageModels?: Record<string, LanguageModelV2>;
54
+ declare class MockProviderV3 implements ProviderV3 {
55
+ readonly specificationVersion: "v3";
56
+ languageModel: ProviderV3['languageModel'];
57
+ textEmbeddingModel: ProviderV3['textEmbeddingModel'];
58
+ imageModel: ProviderV3['imageModel'];
59
+ transcriptionModel: ProviderV3['transcriptionModel'];
60
+ speechModel: ProviderV3['speechModel'];
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
- imageModels?: Record<string, ImageModelV2>;
63
- transcriptionModels?: Record<string, TranscriptionModelV2>;
64
- speechModels?: Record<string, SpeechModelV2>;
65
+ imageModels?: Record<string, ImageModelV3>;
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, MockImageModelV2, MockLanguageModelV2, MockProviderV2, MockSpeechModelV2, MockTranscriptionModelV2, mockValues, simulateReadableStream };
133
+ export { MockEmbeddingModelV3, MockImageModelV3, MockLanguageModelV3, MockProviderV3, MockRerankingModelV3, MockSpeechModelV3, MockTranscriptionModelV3, mockValues, simulateReadableStream };
@@ -21,11 +21,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var test_exports = {};
22
22
  __export(test_exports, {
23
23
  MockEmbeddingModelV3: () => MockEmbeddingModelV3,
24
- MockImageModelV2: () => MockImageModelV2,
25
- MockLanguageModelV2: () => MockLanguageModelV2,
26
- MockProviderV2: () => MockProviderV2,
27
- MockSpeechModelV2: () => MockSpeechModelV2,
28
- MockTranscriptionModelV2: () => MockTranscriptionModelV2,
24
+ MockImageModelV3: () => MockImageModelV3,
25
+ MockLanguageModelV3: () => MockLanguageModelV3,
26
+ MockProviderV3: () => MockProviderV3,
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,
@@ -41,7 +42,7 @@ function notImplemented() {
41
42
  throw new Error("Not implemented");
42
43
  }
43
44
 
44
- // src/test/mock-embedding-model-v2.ts
45
+ // src/test/mock-embedding-model-v3.ts
45
46
  var MockEmbeddingModelV3 = class {
46
47
  constructor({
47
48
  provider = "mock-provider",
@@ -51,23 +52,33 @@ 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
 
62
- // src/test/mock-image-model-v2.ts
63
- var MockImageModelV2 = class {
73
+ // src/test/mock-image-model-v3.ts
74
+ var MockImageModelV3 = class {
64
75
  constructor({
65
76
  provider = "mock-provider",
66
77
  modelId = "mock-model-id",
67
78
  maxImagesPerCall = 1,
68
79
  doGenerate = notImplemented
69
80
  } = {}) {
70
- this.specificationVersion = "v2";
81
+ this.specificationVersion = "v3";
71
82
  this.provider = provider;
72
83
  this.modelId = modelId;
73
84
  this.maxImagesPerCall = maxImagesPerCall;
@@ -75,8 +86,8 @@ var MockImageModelV2 = 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;
@@ -116,16 +127,18 @@ var MockLanguageModelV2 = class {
116
127
  }
117
128
  };
118
129
 
119
- // src/test/mock-provider-v2.ts
130
+ // src/test/mock-provider-v3.ts
120
131
  var import_provider = require("@ai-sdk/provider");
121
- var MockProviderV2 = class {
132
+ var MockProviderV3 = class {
122
133
  constructor({
123
134
  languageModels,
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 MockProviderV2 = 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;
@@ -226,11 +259,12 @@ var simulateReadableStream2 = simulateReadableStream;
226
259
  // Annotate the CommonJS export names for ESM import in node:
227
260
  0 && (module.exports = {
228
261
  MockEmbeddingModelV3,
229
- MockImageModelV2,
230
- MockLanguageModelV2,
231
- MockProviderV2,
232
- MockSpeechModelV2,
233
- MockTranscriptionModelV2,
262
+ MockImageModelV3,
263
+ MockLanguageModelV3,
264
+ MockProviderV3,
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-v2.ts","../../src/test/mock-image-model-v2.ts","../../src/test/mock-language-model-v2.ts","../../src/test/mock-provider-v2.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-v2';\nexport { MockImageModelV2 } from '../src/test/mock-image-model-v2';\nexport { MockLanguageModelV2 } from '../src/test/mock-language-model-v2';\nexport { MockProviderV2 } from '../src/test/mock-provider-v2';\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 { ImageModelV2 } from '@ai-sdk/provider';\nimport { notImplemented } from './not-implemented';\n\nexport class MockImageModelV2 implements ImageModelV2 {\n readonly specificationVersion = 'v2';\n readonly provider: ImageModelV2['provider'];\n readonly modelId: ImageModelV2['modelId'];\n readonly maxImagesPerCall: ImageModelV2['maxImagesPerCall'];\n\n doGenerate: ImageModelV2['doGenerate'];\n\n constructor({\n provider = 'mock-provider',\n modelId = 'mock-model-id',\n maxImagesPerCall = 1,\n doGenerate = notImplemented,\n }: {\n provider?: ImageModelV2['provider'];\n modelId?: ImageModelV2['modelId'];\n maxImagesPerCall?: ImageModelV2['maxImagesPerCall'];\n doGenerate?: ImageModelV2['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 ImageModelV2,\n LanguageModelV2,\n NoSuchModelError,\n ProviderV2,\n SpeechModelV2,\n TranscriptionModelV2,\n} from '@ai-sdk/provider';\n\nexport class MockProviderV2 implements ProviderV2 {\n languageModel: ProviderV2['languageModel'];\n textEmbeddingModel: ProviderV2['textEmbeddingModel'];\n imageModel: ProviderV2['imageModel'];\n transcriptionModel: ProviderV2['transcriptionModel'];\n speechModel: ProviderV2['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, ImageModelV2>;\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","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":";;;;;;;;;;;;;;;;;;;;AAAA;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,EAY1E,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,uBAAuB;AAAA,IACvB,wBAAwB;AAAA,IACxB,UAAU;AAAA,EACZ,IAWI,CAAC,GAAG;AA5BR,SAAS,uBAAuB;AAShC,wBAAoE,CAAC;AAoBnE,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,uBAAuB,wBAAwB;AACpD,SAAK,wBAAwB;AAC7B,SAAK,UAAU,OAAM,YAAW;AAC9B,WAAK,aAAa,KAAK,OAAO;AAE9B,UAAI,OAAO,YAAY,YAAY;AACjC,eAAO,QAAQ,OAAO;AAAA,MACxB,WAAW,MAAM,QAAQ,OAAO,GAAG;AACjC,eAAO,QAAQ,KAAK,aAAa,MAAM;AAAA,MACzC,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;;;AC9CO,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,sBASO;AAEA,IAAM,iBAAN,MAA2C;AAAA,EAUhD,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAOI,CAAC,GAAG;AAvBR,SAAS,uBAAuB;AAwB9B,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,YAAmC;AACrD,UAAI,CAAC,eAAe,OAAO,GAAG;AAC5B,cAAM,IAAI,iCAAiB,EAAE,SAAS,WAAW,cAAc,CAAC;AAAA,MAClE;AACA,aAAO,aAAa,OAAO;AAAA,IAC7B;AACA,SAAK,iBAAiB,CAAC,YAAoB;AACzC,UAAI,CAAC,kBAAkB,OAAO,GAAG;AAC/B,cAAM,IAAI,iCAAiB,EAAE,SAAS,WAAW,iBAAiB,CAAC;AAAA,MACrE;AACA,aAAO,gBAAgB,OAAO;AAAA,IAChC;AAAA,EACF;AACF;;;AC5EO,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;;;ACpBO,IAAM,uBAAN,MAAuD;AAAA,EAQ5D,YAAY;AAAA,IACV,WAAW;AAAA,IACX,UAAU;AAAA,IACV,WAAW;AAAA,EACb,IAII,CAAC,GAAG;AAfR,SAAS,uBAAuB;AAgB9B,SAAK,WAAW;AAChB,SAAK,UAAU;AACf,SAAK,WAAW;AAAA,EAClB;AACF;;;ACxBO,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;;;AVlBO,IAAMC,0BAAyB;","names":["simulateReadableStream","delayFunction","simulateReadableStream"]}
@@ -11,7 +11,7 @@ function notImplemented() {
11
11
  throw new Error("Not implemented");
12
12
  }
13
13
 
14
- // src/test/mock-embedding-model-v2.ts
14
+ // src/test/mock-embedding-model-v3.ts
15
15
  var MockEmbeddingModelV3 = class {
16
16
  constructor({
17
17
  provider = "mock-provider",
@@ -21,23 +21,33 @@ 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
 
32
- // src/test/mock-image-model-v2.ts
33
- var MockImageModelV2 = class {
42
+ // src/test/mock-image-model-v3.ts
43
+ var MockImageModelV3 = class {
34
44
  constructor({
35
45
  provider = "mock-provider",
36
46
  modelId = "mock-model-id",
37
47
  maxImagesPerCall = 1,
38
48
  doGenerate = notImplemented
39
49
  } = {}) {
40
- this.specificationVersion = "v2";
50
+ this.specificationVersion = "v3";
41
51
  this.provider = provider;
42
52
  this.modelId = modelId;
43
53
  this.maxImagesPerCall = maxImagesPerCall;
@@ -45,8 +55,8 @@ var MockImageModelV2 = 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;
@@ -86,18 +96,20 @@ var MockLanguageModelV2 = class {
86
96
  }
87
97
  };
88
98
 
89
- // src/test/mock-provider-v2.ts
99
+ // src/test/mock-provider-v3.ts
90
100
  import {
91
101
  NoSuchModelError
92
102
  } from "@ai-sdk/provider";
93
- var MockProviderV2 = class {
103
+ var MockProviderV3 = class {
94
104
  constructor({
95
105
  languageModels,
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 MockProviderV2 = 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;
@@ -197,11 +229,12 @@ function simulateReadableStream({
197
229
  var simulateReadableStream2 = simulateReadableStream;
198
230
  export {
199
231
  MockEmbeddingModelV3,
200
- MockImageModelV2,
201
- MockLanguageModelV2,
202
- MockProviderV2,
203
- MockSpeechModelV2,
204
- MockTranscriptionModelV2,
232
+ MockImageModelV3,
233
+ MockLanguageModelV3,
234
+ MockProviderV3,
235
+ MockRerankingModelV3,
236
+ MockSpeechModelV3,
237
+ MockTranscriptionModelV3,
205
238
  convertArrayToAsyncIterable,
206
239
  convertArrayToReadableStream,
207
240
  convertReadableStreamToArray,