@ai-sdk/provider-utils 2.2.4 → 3.0.0-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -62,6 +62,14 @@ async function convertResponseStreamToArray(response) {
62
62
  );
63
63
  }
64
64
 
65
+ // src/test/mock-id.ts
66
+ function mockId({
67
+ prefix = "id"
68
+ } = {}) {
69
+ let counter = 0;
70
+ return () => `${prefix}-${counter++}`;
71
+ }
72
+
65
73
  // ../../node_modules/.pnpm/outvariant@1.4.3/node_modules/outvariant/lib/index.mjs
66
74
  var POSITIONALS_EXP = /(%?)(%([sdijo]))/g;
67
75
  function serializePositional(positional, flag) {
@@ -18435,315 +18443,8 @@ var setupServer = (...handlers) => {
18435
18443
  return new SetupServerApi(handlers);
18436
18444
  };
18437
18445
 
18438
- // src/test/json-test-server.ts
18439
- var JsonTestServer = class {
18440
- /**
18441
- * @deprecated Use createTestServer instead
18442
- */
18443
- constructor(url) {
18444
- this.responseHeaders = {};
18445
- this.responseBodyJson = {};
18446
- const responseBodyJson = () => this.responseBodyJson;
18447
- this.server = setupServer(
18448
- http.post(url, ({ request }) => {
18449
- this.request = request;
18450
- return HttpResponse.json(responseBodyJson(), {
18451
- headers: {
18452
- "Content-Type": "application/json",
18453
- ...this.responseHeaders
18454
- }
18455
- });
18456
- })
18457
- );
18458
- }
18459
- async getRequestBodyJson() {
18460
- expect(this.request).toBeDefined();
18461
- return JSON.parse(await this.request.text());
18462
- }
18463
- async getRequestHeaders() {
18464
- expect(this.request).toBeDefined();
18465
- const requestHeaders = this.request.headers;
18466
- const headersObject = {};
18467
- requestHeaders.forEach((value, key) => {
18468
- headersObject[key] = value;
18469
- });
18470
- return headersObject;
18471
- }
18472
- async getRequestUrlSearchParams() {
18473
- expect(this.request).toBeDefined();
18474
- return new URL(this.request.url).searchParams;
18475
- }
18476
- async getRequestUrl() {
18477
- expect(this.request).toBeDefined();
18478
- return new URL(this.request.url).toString();
18479
- }
18480
- setupTestEnvironment() {
18481
- beforeAll(() => this.server.listen());
18482
- beforeEach(() => {
18483
- this.responseBodyJson = {};
18484
- this.request = void 0;
18485
- });
18486
- afterEach(() => this.server.resetHandlers());
18487
- afterAll(() => this.server.close());
18488
- }
18489
- };
18490
-
18491
- // src/test/mock-id.ts
18492
- function mockId({
18493
- prefix = "id"
18494
- } = {}) {
18495
- let counter = 0;
18496
- return () => `${prefix}-${counter++}`;
18497
- }
18498
-
18499
- // src/test/streaming-test-server.ts
18500
- var StreamingTestServer = class {
18501
- /**
18502
- * @deprecated Use createTestServer instead
18503
- */
18504
- constructor(url) {
18505
- this.responseHeaders = {};
18506
- this.responseChunks = [];
18507
- const responseChunks = () => this.responseChunks;
18508
- this.server = setupServer(
18509
- http.post(url, ({ request }) => {
18510
- this.request = request;
18511
- const encoder2 = new TextEncoder();
18512
- const stream = new ReadableStream({
18513
- async start(controller) {
18514
- try {
18515
- for (const chunk of responseChunks()) {
18516
- controller.enqueue(encoder2.encode(chunk));
18517
- }
18518
- } finally {
18519
- controller.close();
18520
- }
18521
- }
18522
- });
18523
- return new HttpResponse(stream, {
18524
- status: 200,
18525
- headers: {
18526
- "Content-Type": "text/event-stream",
18527
- "Cache-Control": "no-cache",
18528
- Connection: "keep-alive",
18529
- ...this.responseHeaders
18530
- }
18531
- });
18532
- })
18533
- );
18534
- }
18535
- async getRequestBodyJson() {
18536
- expect(this.request).toBeDefined();
18537
- return JSON.parse(await this.request.text());
18538
- }
18539
- async getRequestHeaders() {
18540
- expect(this.request).toBeDefined();
18541
- const requestHeaders = this.request.headers;
18542
- const headersObject = {};
18543
- requestHeaders.forEach((value, key) => {
18544
- headersObject[key] = value;
18545
- });
18546
- return headersObject;
18547
- }
18548
- async getRequestUrlSearchParams() {
18549
- expect(this.request).toBeDefined();
18550
- return new URL(this.request.url).searchParams;
18551
- }
18552
- setupTestEnvironment() {
18553
- beforeAll(() => this.server.listen());
18554
- beforeEach(() => {
18555
- this.responseChunks = [];
18556
- this.request = void 0;
18557
- });
18558
- afterEach(() => this.server.resetHandlers());
18559
- afterAll(() => this.server.close());
18560
- }
18561
- };
18562
-
18563
18446
  // src/test/test-server.ts
18564
18447
  var TestServerCall = class {
18565
- constructor(request) {
18566
- this.request = request;
18567
- }
18568
- async getRequestBodyJson() {
18569
- expect(this.request).toBeDefined();
18570
- return JSON.parse(await this.request.text());
18571
- }
18572
- getRequestCredentials() {
18573
- expect(this.request).toBeDefined();
18574
- return this.request.credentials;
18575
- }
18576
- getRequestHeaders() {
18577
- expect(this.request).toBeDefined();
18578
- const requestHeaders = this.request.headers;
18579
- const headersObject = {};
18580
- requestHeaders.forEach((value, key) => {
18581
- headersObject[key] = value;
18582
- });
18583
- return headersObject;
18584
- }
18585
- getRequestUrlSearchParams() {
18586
- expect(this.request).toBeDefined();
18587
- return new URL(this.request.url).searchParams;
18588
- }
18589
- };
18590
- function createServer({
18591
- responses,
18592
- pushCall,
18593
- pushController
18594
- }) {
18595
- const responsesArray = Array.isArray(responses) ? responses : [responses];
18596
- const responsesByUrl = responsesArray.reduce(
18597
- (responsesByUrl2, response) => {
18598
- if (!responsesByUrl2[response.url]) {
18599
- responsesByUrl2[response.url] = [];
18600
- }
18601
- responsesByUrl2[response.url].push(response);
18602
- return responsesByUrl2;
18603
- },
18604
- {}
18605
- );
18606
- const streams = {};
18607
- responsesArray.filter(
18608
- (response) => response.type === "controlled-stream"
18609
- ).forEach((response) => {
18610
- var _a4, _b2;
18611
- let streamController;
18612
- const stream = new ReadableStream({
18613
- start(controller) {
18614
- streamController = controller;
18615
- }
18616
- });
18617
- pushController((_a4 = response.id) != null ? _a4 : "", () => streamController);
18618
- streams[(_b2 = response.id) != null ? _b2 : ""] = stream;
18619
- });
18620
- const urlInvocationCounts = Object.fromEntries(
18621
- Object.entries(responsesByUrl).map(([url]) => [url, 0])
18622
- );
18623
- return setupServer(
18624
- ...Object.entries(responsesByUrl).map(([url, responses2]) => {
18625
- return http.post(url, ({ request }) => {
18626
- var _a4, _b2;
18627
- pushCall(new TestServerCall(request));
18628
- const invocationCount = urlInvocationCounts[url]++;
18629
- const response = responses2[
18630
- // TODO bug needs to be >=
18631
- invocationCount > responses2.length ? responses2.length - 1 : invocationCount
18632
- ];
18633
- switch (response.type) {
18634
- case "json-value":
18635
- return HttpResponse.json(response.content, {
18636
- status: 200,
18637
- headers: {
18638
- "Content-Type": "application/json",
18639
- ...response.headers
18640
- }
18641
- });
18642
- case "stream-values":
18643
- return new HttpResponse(
18644
- convertArrayToReadableStream(response.content).pipeThrough(
18645
- new TextEncoderStream()
18646
- ),
18647
- {
18648
- status: 200,
18649
- headers: {
18650
- "Content-Type": "text/event-stream",
18651
- "Cache-Control": "no-cache",
18652
- Connection: "keep-alive",
18653
- ...response.headers
18654
- }
18655
- }
18656
- );
18657
- case "controlled-stream": {
18658
- return new HttpResponse(
18659
- streams[(_a4 = response.id) != null ? _a4 : ""].pipeThrough(new TextEncoderStream()),
18660
- {
18661
- status: 200,
18662
- headers: {
18663
- "Content-Type": "text/event-stream",
18664
- "Cache-Control": "no-cache",
18665
- Connection: "keep-alive",
18666
- ...response.headers
18667
- }
18668
- }
18669
- );
18670
- }
18671
- case "error":
18672
- return HttpResponse.text((_b2 = response.content) != null ? _b2 : "Error", {
18673
- status: response.status,
18674
- headers: {
18675
- ...response.headers
18676
- }
18677
- });
18678
- }
18679
- });
18680
- })
18681
- );
18682
- }
18683
- function withTestServer(responses, testFunction) {
18684
- return async () => {
18685
- const calls = [];
18686
- const controllers = {};
18687
- const server = createServer({
18688
- responses,
18689
- pushCall: (call) => calls.push(call),
18690
- pushController: (id, controller) => {
18691
- controllers[id] = controller;
18692
- }
18693
- });
18694
- try {
18695
- server.listen();
18696
- await testFunction({
18697
- calls: () => calls,
18698
- call: (index) => calls[index],
18699
- getStreamController: (id) => {
18700
- return controllers[id]();
18701
- },
18702
- get streamController() {
18703
- return controllers[""]();
18704
- }
18705
- });
18706
- } finally {
18707
- server.close();
18708
- }
18709
- };
18710
- }
18711
- function describeWithTestServer(description, responses, testFunction) {
18712
- describe(description, () => {
18713
- let calls;
18714
- let controllers;
18715
- let server;
18716
- beforeAll(() => {
18717
- server = createServer({
18718
- responses,
18719
- pushCall: (call) => calls.push(call),
18720
- pushController: (id, controller) => {
18721
- controllers[id] = controller;
18722
- }
18723
- });
18724
- server.listen();
18725
- });
18726
- beforeEach(() => {
18727
- calls = [];
18728
- controllers = {};
18729
- server.resetHandlers();
18730
- });
18731
- afterAll(() => {
18732
- server.close();
18733
- });
18734
- testFunction({
18735
- calls: () => calls,
18736
- call: (index) => calls[index],
18737
- getStreamController: (id) => controllers[id](),
18738
- get streamController() {
18739
- return controllers[""]();
18740
- }
18741
- });
18742
- });
18743
- }
18744
-
18745
- // src/test/unified-test-server.ts
18746
- var TestServerCall2 = class {
18747
18448
  constructor(request) {
18748
18449
  this.request = request;
18749
18450
  }
@@ -18778,7 +18479,7 @@ function createTestServer(routes) {
18778
18479
  return http.all(url, ({ request }) => {
18779
18480
  var _a4, _b2, _c2;
18780
18481
  const callNumber = calls.length;
18781
- calls.push(new TestServerCall2(request));
18482
+ calls.push(new TestServerCall(request));
18782
18483
  const response = typeof handler.response === "function" ? handler.response({ callNumber }) : Array.isArray(handler.response) ? handler.response[callNumber] : handler.response;
18783
18484
  if (response === void 0) {
18784
18485
  return HttpResponse.json({ error: "Not Found" }, { status: 404 });
@@ -18885,8 +18586,6 @@ var TestResponseController = class {
18885
18586
  }
18886
18587
  };
18887
18588
  export {
18888
- JsonTestServer,
18889
- StreamingTestServer,
18890
18589
  TestResponseController,
18891
18590
  convertArrayToAsyncIterable,
18892
18591
  convertArrayToReadableStream,
@@ -18894,9 +18593,7 @@ export {
18894
18593
  convertReadableStreamToArray,
18895
18594
  convertResponseStreamToArray,
18896
18595
  createTestServer,
18897
- describeWithTestServer,
18898
- mockId,
18899
- withTestServer
18596
+ mockId
18900
18597
  };
18901
18598
  /*! Bundled license information:
18902
18599