@mux/ai 0.17.0 → 0.17.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.
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import '@ai-sdk/anthropic';
9
9
  import '@ai-sdk/google';
10
10
  import '@ai-sdk/openai';
11
11
 
12
- var version = "0.17.0";
12
+ var version = "0.17.1";
13
13
 
14
14
  type MuxAiErrorType = "validation_error" | "processing_error" | "timeout_error";
15
15
  /**
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ var __export = (target, all) => {
5
5
  };
6
6
 
7
7
  // package.json
8
- var version = "0.17.0";
8
+ var version = "0.17.1";
9
9
 
10
10
  // src/lib/mux-ai-error.ts
11
11
  var MuxAiError = class extends Error {
@@ -54,6 +54,10 @@ var EnvSchema = z.object({
54
54
  "Override for Mux image base URL (defaults to https://image.mux.com).",
55
55
  "Mux image URL override"
56
56
  ),
57
+ MUX_STREAM_URL_OVERRIDE: optionalString(
58
+ "Override for Mux stream base URL (defaults to https://stream.mux.com).",
59
+ "Mux stream URL override"
60
+ ),
57
61
  // Test-only helpers (used by this repo's integration tests)
58
62
  MUX_TEST_ASSET_ID: optionalString("Mux asset ID used by integration tests.", "Mux test asset id"),
59
63
  MUX_TEST_ASSET_ID_CHAPTERS: optionalString("Mux asset ID used by integration tests for chapters.", "Mux test asset id for chapters"),
@@ -1244,22 +1248,24 @@ async function waitForShotsForAsset(assetId, options = {}) {
1244
1248
  );
1245
1249
  }
1246
1250
 
1247
- // src/lib/mux-image-url.ts
1251
+ // src/lib/mux-url.ts
1248
1252
  var DEFAULT_MUX_IMAGE_ORIGIN = "https://image.mux.com";
1249
- function normalizeMuxImageOrigin(value) {
1253
+ var DEFAULT_MUX_STREAM_ORIGIN = "https://stream.mux.com";
1254
+ function normalizeOrigin(value, envVarName) {
1250
1255
  const trimmed = value.trim();
1251
1256
  const candidate = trimmed.includes("://") ? trimmed : `https://${trimmed}`;
1257
+ const exampleHostname = envVarName === "MUX_IMAGE_URL_OVERRIDE" ? "image.example.mux.com" : "stream.example.mux.com";
1252
1258
  let parsed;
1253
1259
  try {
1254
1260
  parsed = new URL(candidate);
1255
1261
  } catch {
1256
1262
  throw new Error(
1257
- `Invalid MUX_IMAGE_URL_OVERRIDE. Provide a hostname like "image.example.mux.com" (or a URL origin such as "https://image.example.mux.com").`
1263
+ `Invalid ${envVarName}. Provide a hostname (e.g. "${exampleHostname}") or a URL origin (e.g. "https://${exampleHostname}").`
1258
1264
  );
1259
1265
  }
1260
1266
  if (parsed.username || parsed.password || parsed.search || parsed.hash || parsed.pathname && parsed.pathname !== "/") {
1261
1267
  throw new Error(
1262
- "Invalid MUX_IMAGE_URL_OVERRIDE. Only a hostname/origin is allowed (no credentials, query params, hash fragments, or path)."
1268
+ `Invalid ${envVarName}. Only a hostname/origin is allowed (no credentials, query params, hash fragments, or path).`
1263
1269
  );
1264
1270
  }
1265
1271
  return parsed.origin;
@@ -1269,7 +1275,14 @@ function getMuxImageOrigin() {
1269
1275
  if (!override) {
1270
1276
  return DEFAULT_MUX_IMAGE_ORIGIN;
1271
1277
  }
1272
- return normalizeMuxImageOrigin(override);
1278
+ return normalizeOrigin(override, "MUX_IMAGE_URL_OVERRIDE");
1279
+ }
1280
+ function getMuxStreamOrigin() {
1281
+ const override = env_default.MUX_STREAM_URL_OVERRIDE;
1282
+ if (!override) {
1283
+ return DEFAULT_MUX_STREAM_ORIGIN;
1284
+ }
1285
+ return normalizeOrigin(override, "MUX_STREAM_URL_OVERRIDE");
1273
1286
  }
1274
1287
  function getMuxImageBaseUrl(playbackId, assetType) {
1275
1288
  const origin = getMuxImageOrigin();
@@ -2123,7 +2136,7 @@ function concatenateVttSegments(segments, preamble = "WEBVTT") {
2123
2136
  }
2124
2137
  async function buildTranscriptUrl(playbackId, trackId, shouldSign = false, credentials) {
2125
2138
  "use step";
2126
- const baseUrl = `https://stream.mux.com/${playbackId}/text/${trackId}.vtt`;
2139
+ const baseUrl = `${getMuxStreamOrigin()}/${playbackId}/text/${trackId}.vtt`;
2127
2140
  if (shouldSign) {
2128
2141
  return signUrl(baseUrl, playbackId, "video", void 0, credentials);
2129
2142
  }
@@ -5725,7 +5738,7 @@ async function translateAudio(assetId, toLanguageCode, options = {}) {
5725
5738
  { type: "validation_error" }
5726
5739
  );
5727
5740
  }
5728
- let audioUrl = `https://stream.mux.com/${playbackId}/audio.m4a`;
5741
+ let audioUrl = `${getMuxStreamOrigin()}/${playbackId}/audio.m4a`;
5729
5742
  if (policy === "signed") {
5730
5743
  audioUrl = await signUrl(audioUrl, playbackId, "video", void 0, credentials);
5731
5744
  }