@ai-sdk/provider-utils 3.0.7 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -73,6 +73,45 @@ function extractResponseHeaders(response) {
73
73
  return Object.fromEntries([...response.headers]);
74
74
  }
75
75
 
76
+ // src/get-runtime-environment-user-agent.ts
77
+ function getRuntimeEnvironmentUserAgent(globalThisAny = globalThis) {
78
+ var _a, _b, _c;
79
+ if (globalThisAny.window) {
80
+ return `runtime/browser`;
81
+ }
82
+ if ((_a = globalThisAny.navigator) == null ? void 0 : _a.userAgent) {
83
+ return `runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`;
84
+ }
85
+ if ((_c = (_b = globalThisAny.process) == null ? void 0 : _b.versions) == null ? void 0 : _c.node) {
86
+ return `runtime/node.js/${globalThisAny.process.version.substring(0)}`;
87
+ }
88
+ if (globalThisAny.EdgeRuntime) {
89
+ return `runtime/vercel-edge`;
90
+ }
91
+ return "runtime/unknown";
92
+ }
93
+
94
+ // src/remove-undefined-entries.ts
95
+ function removeUndefinedEntries(record) {
96
+ return Object.fromEntries(
97
+ Object.entries(record).filter(([_key, value]) => value != null)
98
+ );
99
+ }
100
+
101
+ // src/with-user-agent-suffix.ts
102
+ function withUserAgentSuffix(headers, ...userAgentSuffixParts) {
103
+ const cleanedHeaders = removeUndefinedEntries(
104
+ headers != null ? headers : {}
105
+ );
106
+ const normalizedHeaders = new Headers(cleanedHeaders);
107
+ const currentUserAgentHeader = normalizedHeaders.get("user-agent") || "";
108
+ normalizedHeaders.set(
109
+ "user-agent",
110
+ [currentUserAgentHeader, ...userAgentSuffixParts].filter(Boolean).join(" ")
111
+ );
112
+ return Object.fromEntries(normalizedHeaders);
113
+ }
114
+
76
115
  // src/generate-id.ts
77
116
  import { InvalidArgumentError } from "@ai-sdk/provider";
78
117
  var createIdGenerator = ({
@@ -154,12 +193,8 @@ function handleFetchError({
154
193
  return error;
155
194
  }
156
195
 
157
- // src/remove-undefined-entries.ts
158
- function removeUndefinedEntries(record) {
159
- return Object.fromEntries(
160
- Object.entries(record).filter(([_key, value]) => value != null)
161
- );
162
- }
196
+ // src/version.ts
197
+ var VERSION = true ? "3.0.9" : "0.0.0-test";
163
198
 
164
199
  // src/get-from-api.ts
165
200
  var getOriginalFetch = () => globalThis.fetch;
@@ -174,7 +209,11 @@ var getFromApi = async ({
174
209
  try {
175
210
  const response = await fetch(url, {
176
211
  method: "GET",
177
- headers: removeUndefinedEntries(headers),
212
+ headers: withUserAgentSuffix(
213
+ headers,
214
+ `ai-sdk/provider-utils/${VERSION}`,
215
+ getRuntimeEnvironmentUserAgent()
216
+ ),
178
217
  signal: abortSignal
179
218
  });
180
219
  const responseHeaders = extractResponseHeaders(response);
@@ -645,7 +684,11 @@ var postToApi = async ({
645
684
  try {
646
685
  const response = await fetch(url, {
647
686
  method: "POST",
648
- headers: removeUndefinedEntries(headers),
687
+ headers: withUserAgentSuffix(
688
+ headers,
689
+ `ai-sdk/provider-utils/${VERSION}`,
690
+ getRuntimeEnvironmentUserAgent()
691
+ ),
649
692
  body: body.content,
650
693
  signal: abortSignal
651
694
  });
@@ -2248,6 +2291,7 @@ import {
2248
2291
  } from "eventsource-parser/stream";
2249
2292
  export {
2250
2293
  EventSourceParserStream2 as EventSourceParserStream,
2294
+ VERSION,
2251
2295
  asSchema,
2252
2296
  asValidator,
2253
2297
  combineHeaders,
@@ -2271,6 +2315,7 @@ export {
2271
2315
  generateId,
2272
2316
  getErrorMessage,
2273
2317
  getFromApi,
2318
+ getRuntimeEnvironmentUserAgent,
2274
2319
  injectJsonInstructionIntoMessages,
2275
2320
  isAbortError,
2276
2321
  isParsableJson,
@@ -2296,6 +2341,7 @@ export {
2296
2341
  validateTypes,
2297
2342
  validator,
2298
2343
  validatorSymbol,
2344
+ withUserAgentSuffix,
2299
2345
  withoutTrailingSlash,
2300
2346
  zodSchema
2301
2347
  };