transloadit 4.7.2 → 4.7.4

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.
@@ -2,8 +2,9 @@ import process from 'node:process';
2
2
  import { Command, Option } from 'clipanion';
3
3
  import { z } from 'zod';
4
4
  import { assemblyAuthInstructionsSchema, assemblyInstructionsSchema, } from "../../alphalib/types/template.js";
5
+ import { mintBearerTokenWithCredentials } from "../../bearerToken.js";
5
6
  import { Transloadit } from "../../Transloadit.js";
6
- import { getEnvCredentials, readCliInput } from "../helpers.js";
7
+ import { readCliInput, requireEnvCredentials } from "../helpers.js";
7
8
  import { UnauthenticatedCommand } from "./BaseCommand.js";
8
9
  const smartCdnParamsSchema = z
9
10
  .object({
@@ -52,7 +53,23 @@ function normalizeUrlParams(params) {
52
53
  }
53
54
  return normalized;
54
55
  }
55
- const getCredentials = getEnvCredentials;
56
+ function parseJsonObject(input, schema) {
57
+ let parsed;
58
+ try {
59
+ parsed = JSON.parse(input);
60
+ }
61
+ catch (error) {
62
+ return { ok: false, error: `Failed to parse JSON from stdin: ${error.message}` };
63
+ }
64
+ if (parsed == null || typeof parsed !== 'object' || Array.isArray(parsed)) {
65
+ return { ok: false, error: 'Invalid params provided via stdin. Expected a JSON object.' };
66
+ }
67
+ const parsedResult = schema.safeParse(parsed);
68
+ if (!parsedResult.success) {
69
+ return { ok: false, error: `Invalid params: ${formatIssues(parsedResult.error.issues)}` };
70
+ }
71
+ return { ok: true, value: parsedResult.data };
72
+ }
56
73
  // Core logic for signature generation
57
74
  function generateSignature(input, credentials, algorithm) {
58
75
  const { authKey, authSecret } = credentials;
@@ -61,21 +78,11 @@ function generateSignature(input, credentials, algorithm) {
61
78
  params = { auth: { key: authKey } };
62
79
  }
63
80
  else {
64
- let parsed;
65
- try {
66
- parsed = JSON.parse(input);
67
- }
68
- catch (error) {
69
- return { ok: false, error: `Failed to parse JSON from stdin: ${error.message}` };
70
- }
71
- if (parsed == null || typeof parsed !== 'object' || Array.isArray(parsed)) {
72
- return { ok: false, error: 'Invalid params provided via stdin. Expected a JSON object.' };
73
- }
74
- const parsedResult = cliSignatureParamsSchema.safeParse(parsed);
75
- if (!parsedResult.success) {
76
- return { ok: false, error: `Invalid params: ${formatIssues(parsedResult.error.issues)}` };
81
+ const parsedResult = parseJsonObject(input, cliSignatureParamsSchema);
82
+ if (!parsedResult.ok) {
83
+ return { ok: false, error: parsedResult.error };
77
84
  }
78
- const parsedParams = parsedResult.data;
85
+ const parsedParams = parsedResult.value;
79
86
  const existingAuth = parsedParams.auth ?? {};
80
87
  params = {
81
88
  ...parsedParams,
@@ -103,21 +110,11 @@ function generateSmartCdnUrl(input, credentials) {
103
110
  error: 'Missing params provided via stdin. Expected a JSON object with workspace, template, input, and optional Smart CDN parameters.',
104
111
  };
105
112
  }
106
- let parsed;
107
- try {
108
- parsed = JSON.parse(input);
109
- }
110
- catch (error) {
111
- return { ok: false, error: `Failed to parse JSON from stdin: ${error.message}` };
112
- }
113
- if (parsed == null || typeof parsed !== 'object' || Array.isArray(parsed)) {
114
- return { ok: false, error: 'Invalid params provided via stdin. Expected a JSON object.' };
113
+ const parsedResult = parseJsonObject(input, smartCdnParamsSchema);
114
+ if (!parsedResult.ok) {
115
+ return { ok: false, error: parsedResult.error };
115
116
  }
116
- const parsedResult = smartCdnParamsSchema.safeParse(parsed);
117
- if (!parsedResult.success) {
118
- return { ok: false, error: `Invalid params: ${formatIssues(parsedResult.error.issues)}` };
119
- }
120
- const { workspace, template, input: inputFieldRaw, url_params, expire_at_ms } = parsedResult.data;
117
+ const { workspace, template, input: inputFieldRaw, url_params, expire_at_ms } = parsedResult.value;
121
118
  const urlParams = normalizeUrlParams(url_params);
122
119
  let expiresAt;
123
120
  if (typeof expire_at_ms === 'string') {
@@ -147,12 +144,13 @@ function generateSmartCdnUrl(input, credentials) {
147
144
  }
148
145
  }
149
146
  export async function runSig(options = {}) {
150
- const credentials = getCredentials();
151
- if (credentials == null) {
152
- console.error('Missing credentials. Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET environment variables.');
147
+ const credentialsResult = requireEnvCredentials();
148
+ if (!credentialsResult.ok) {
149
+ console.error(credentialsResult.error);
153
150
  process.exitCode = 1;
154
151
  return;
155
152
  }
153
+ const credentials = credentialsResult.credentials;
156
154
  const { content } = await readCliInput({
157
155
  providedInput: options.providedInput,
158
156
  allowStdinWhenNoPath: true,
@@ -168,12 +166,13 @@ export async function runSig(options = {}) {
168
166
  }
169
167
  }
170
168
  export async function runSmartSig(options = {}) {
171
- const credentials = getCredentials();
172
- if (credentials == null) {
173
- console.error('Missing credentials. Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET environment variables.');
169
+ const credentialsResult = requireEnvCredentials();
170
+ if (!credentialsResult.ok) {
171
+ console.error(credentialsResult.error);
174
172
  process.exitCode = 1;
175
173
  return;
176
174
  }
175
+ const credentials = credentialsResult.credentials;
177
176
  const { content } = await readCliInput({
178
177
  providedInput: options.providedInput,
179
178
  allowStdinWhenNoPath: true,
@@ -215,11 +214,12 @@ export class SignatureCommand extends UnauthenticatedCommand {
215
214
  description: 'Signature algorithm to use (sha1, sha256, sha384, sha512)',
216
215
  });
217
216
  async run() {
218
- const credentials = getCredentials();
219
- if (credentials == null) {
220
- this.output.error('Missing credentials. Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET environment variables.');
217
+ const credentialsResult = requireEnvCredentials();
218
+ if (!credentialsResult.ok) {
219
+ this.output.error(credentialsResult.error);
221
220
  return 1;
222
221
  }
222
+ const credentials = credentialsResult.credentials;
223
223
  const { content } = await readCliInput({ allowStdinWhenNoPath: true });
224
224
  const rawInput = (content ?? '').trim();
225
225
  const result = generateSignature(rawInput, credentials, this.algorithm);
@@ -261,11 +261,12 @@ export class SmartCdnSignatureCommand extends UnauthenticatedCommand {
261
261
  ],
262
262
  });
263
263
  async run() {
264
- const credentials = getCredentials();
265
- if (credentials == null) {
266
- this.output.error('Missing credentials. Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET environment variables.');
264
+ const credentialsResult = requireEnvCredentials();
265
+ if (!credentialsResult.ok) {
266
+ this.output.error(credentialsResult.error);
267
267
  return 1;
268
268
  }
269
+ const credentials = credentialsResult.credentials;
269
270
  const { content } = await readCliInput({ allowStdinWhenNoPath: true });
270
271
  const rawInput = (content ?? '').trim();
271
272
  const result = generateSmartCdnUrl(rawInput, credentials);
@@ -277,4 +278,48 @@ export class SmartCdnSignatureCommand extends UnauthenticatedCommand {
277
278
  return 1;
278
279
  }
279
280
  }
281
+ /**
282
+ * Mint a short-lived bearer token via POST /token (HTTP Basic Auth).
283
+ *
284
+ * This is intentionally stdout-clean JSON so it can be used by agents and scripts.
285
+ */
286
+ export class TokenCommand extends UnauthenticatedCommand {
287
+ static paths = [['auth', 'token']];
288
+ static usage = Command.Usage({
289
+ category: 'Auth',
290
+ description: 'Mint a short-lived bearer token',
291
+ details: `
292
+ Calls POST /token using HTTP Basic Auth (TRANSLOADIT_KEY + TRANSLOADIT_SECRET) and prints the
293
+ JSON response to stdout.
294
+ `,
295
+ examples: [
296
+ ['Mint an MCP token (default aud)', 'transloadit auth token'],
297
+ ['Override audience', 'transloadit auth token --aud api2'],
298
+ ],
299
+ });
300
+ aud = Option.String('--aud', {
301
+ description: 'Token audience (default: mcp).',
302
+ });
303
+ scope = Option.String('--scope', {
304
+ description: 'Comma-separated list of scopes to request (defaults to auth key scopes). Example: assemblies:write,templates:read',
305
+ });
306
+ async run() {
307
+ const credentialsResult = requireEnvCredentials();
308
+ if (!credentialsResult.ok) {
309
+ this.output.error(credentialsResult.error);
310
+ return 1;
311
+ }
312
+ const result = await mintBearerTokenWithCredentials(credentialsResult.credentials, {
313
+ endpoint: this.endpoint,
314
+ aud: this.aud,
315
+ scope: this.scope,
316
+ });
317
+ if (result.ok) {
318
+ process.stdout.write(`${result.raw}\n`);
319
+ return undefined;
320
+ }
321
+ this.output.error(result.error);
322
+ return 1;
323
+ }
324
+ }
280
325
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,GAAG,EAAE,MAAM,WAAW,CAAA;AA4BzC,wBAAgB,SAAS,IAAI,GAAG,CA6C/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,GAAG,EAAE,MAAM,WAAW,CAAA;AA4BzC,wBAAgB,SAAS,IAAI,GAAG,CA8C/B"}
@@ -1,7 +1,7 @@
1
1
  import { Builtins, Cli } from 'clipanion';
2
2
  import packageJson from '../../../package.json' with { type: 'json' };
3
3
  import { AssembliesCreateCommand, AssembliesDeleteCommand, AssembliesGetCommand, AssembliesLintCommand, AssembliesListCommand, AssembliesReplayCommand, } from "./assemblies.js";
4
- import { SignatureCommand, SmartCdnSignatureCommand } from "./auth.js";
4
+ import { SignatureCommand, SmartCdnSignatureCommand, TokenCommand } from "./auth.js";
5
5
  import { BillsGetCommand } from "./bills.js";
6
6
  import { DocsRobotsGetCommand, DocsRobotsListCommand } from "./docs.js";
7
7
  import { NotificationsReplayCommand } from "./notifications.js";
@@ -19,6 +19,7 @@ export function createCli() {
19
19
  // Auth commands (signature generation)
20
20
  cli.register(SignatureCommand);
21
21
  cli.register(SmartCdnSignatureCommand);
22
+ cli.register(TokenCommand);
22
23
  // Assemblies commands
23
24
  cli.register(AssembliesCreateCommand);
24
25
  cli.register(AssembliesListCommand);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAErE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAA;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QAClB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,WAAW,CAAC,OAAO;KACnC,CAAC,CAAA;IAEF,oBAAoB;IACpB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAClC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAErC,uCAAuC;IACvC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAC9B,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;IAEtC,sBAAsB;IACtB,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IACrC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IACnC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAClC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IACrC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IACrC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IAEnC,qBAAqB;IACrB,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IACpC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IACjC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IACpC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IACpC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAClC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAElC,iBAAiB;IACjB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;IAE7B,yBAAyB;IACzB,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAA;IAExC,mBAAmB;IACnB,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAE3B,4CAA4C;IAC5C,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IACnC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAElC,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAErE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAEpF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QAClB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,WAAW,CAAC,OAAO;KACnC,CAAC,CAAA;IAEF,oBAAoB;IACpB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAClC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAErC,uCAAuC;IACvC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAC9B,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAA;IACtC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IAE1B,sBAAsB;IACtB,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IACrC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IACnC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAClC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IACrC,GAAG,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAA;IACrC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IAEnC,qBAAqB;IACrB,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IACpC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IACjC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IACpC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAA;IACpC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAClC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAElC,iBAAiB;IACjB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;IAE7B,yBAAyB;IACzB,GAAG,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAA;IAExC,mBAAmB;IACnB,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;IAE3B,4CAA4C;IAC5C,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;IACnC,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;IAElC,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -1,8 +1,16 @@
1
1
  import type { Readable } from 'node:stream';
2
- export declare function getEnvCredentials(): {
2
+ type EnvCredentials = {
3
3
  authKey: string;
4
4
  authSecret: string;
5
- } | null;
5
+ };
6
+ type RequireEnvCredentialsResult = {
7
+ ok: true;
8
+ credentials: EnvCredentials;
9
+ } | {
10
+ ok: false;
11
+ error: string;
12
+ };
13
+ export declare function requireEnvCredentials(): RequireEnvCredentialsResult;
6
14
  export declare function createReadStream(file: string): Readable;
7
15
  export declare function streamToBuffer(stream: Readable): Promise<Buffer>;
8
16
  export interface CliInputResult {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAG3C,wBAAgB,iBAAiB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOlF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAGvD;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAeD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsBxF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAQnD;AAGD,cAAc;AACd,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAC3D,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAM3C,KAAK,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAW7D,KAAK,2BAA2B,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,cAAc,CAAA;CAAE,GACzC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhC,wBAAgB,qBAAqB,IAAI,2BAA2B,CAInE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAGvD;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;AAeD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAsBxF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAQnD;AAGD,cAAc;AACd,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE1C,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAA;AAC3D,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAA"}
@@ -1,13 +1,20 @@
1
1
  import fs from 'node:fs';
2
2
  import fsp from 'node:fs/promises';
3
3
  import { isAPIError } from "./types.js";
4
- export function getEnvCredentials() {
4
+ const MISSING_CREDENTIALS_MESSAGE = 'Missing credentials. Please set TRANSLOADIT_KEY and TRANSLOADIT_SECRET environment variables.';
5
+ function getEnvCredentials() {
5
6
  const authKey = process.env.TRANSLOADIT_KEY ?? process.env.TRANSLOADIT_AUTH_KEY;
6
7
  const authSecret = process.env.TRANSLOADIT_SECRET ?? process.env.TRANSLOADIT_AUTH_SECRET;
7
8
  if (!authKey || !authSecret)
8
9
  return null;
9
10
  return { authKey, authSecret };
10
11
  }
12
+ export function requireEnvCredentials() {
13
+ const credentials = getEnvCredentials();
14
+ if (credentials == null)
15
+ return { ok: false, error: MISSING_CREDENTIALS_MESSAGE };
16
+ return { ok: true, credentials };
17
+ }
11
18
  export function createReadStream(file) {
12
19
  if (file === '-')
13
20
  return process.stdin;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "transloadit",
3
- "version": "4.7.2",
3
+ "version": "4.7.4",
4
4
  "description": "Node.js SDK for Transloadit",
5
5
  "homepage": "https://github.com/transloadit/node-sdk/tree/main/packages/node",
6
6
  "bugs": {
@@ -44,6 +44,8 @@ import type {
44
44
  TemplateCredentialsResponse,
45
45
  TemplateResponse,
46
46
  } from './apiTypes.ts'
47
+ import type { BearerTokenResponse, MintBearerTokenOptions } from './bearerToken.ts'
48
+ import { mintBearerTokenWithCredentials } from './bearerToken.ts'
47
49
  import InconsistentResponseError from './InconsistentResponseError.ts'
48
50
  import type {
49
51
  LintAssemblyInstructionsInput,
@@ -543,6 +545,36 @@ export class Transloadit {
543
545
  })
544
546
  }
545
547
 
548
+ /**
549
+ * Mint a short-lived bearer token via POST /token.
550
+ *
551
+ * This uses HTTP Basic Auth (authKey + authSecret) and can optionally request a narrowed scope.
552
+ * If `scope` is omitted, the token inherits the auth key's scope.
553
+ */
554
+ async mintBearerToken(
555
+ options: Omit<MintBearerTokenOptions, 'endpoint'> & { endpoint?: string } = {},
556
+ ): Promise<BearerTokenResponse> {
557
+ if (this._authToken) {
558
+ throw new Error(
559
+ 'Cannot mint bearer tokens when using authToken authentication. Provide authKey + authSecret instead.',
560
+ )
561
+ }
562
+
563
+ const result = await mintBearerTokenWithCredentials(
564
+ { authKey: this._authKey, authSecret: this._authSecret },
565
+ {
566
+ ...options,
567
+ endpoint: options.endpoint ?? this._endpoint,
568
+ },
569
+ )
570
+
571
+ if (!result.ok) {
572
+ throw new Error(result.error)
573
+ }
574
+
575
+ return result.data
576
+ }
577
+
546
578
  async resumeAssemblyUploads(
547
579
  opts: ResumeAssemblyUploadsOptions,
548
580
  ): Promise<AssemblyStatusWithUploadUrls> {
@@ -0,0 +1,208 @@
1
+ import { z } from 'zod'
2
+
3
+ export type BearerTokenAudience = 'mcp' | 'api2' | (string & {})
4
+
5
+ export type BearerTokenResponse = {
6
+ access_token: string
7
+ token_type: 'Bearer'
8
+ expires_in: number
9
+ scope?: string
10
+ }
11
+
12
+ export type MintBearerTokenOptions = {
13
+ endpoint?: string
14
+ aud?: BearerTokenAudience | string
15
+ /**
16
+ * Requested scopes. Must be a subset of the auth key's scope.
17
+ *
18
+ * If omitted, the token inherits the auth key's scope.
19
+ */
20
+ scope?: string[] | string
21
+ timeoutMs?: number
22
+ }
23
+
24
+ export type MintBearerTokenResult =
25
+ | { ok: true; raw: string; data: BearerTokenResponse }
26
+ | { ok: false; error: string }
27
+
28
+ const tokenErrorSchema = z
29
+ .object({
30
+ error: z.string(),
31
+ message: z.string().optional(),
32
+ })
33
+ .passthrough()
34
+
35
+ const tokenSuccessSchema = z
36
+ .object({
37
+ access_token: z.string().min(1),
38
+ token_type: z.literal('Bearer').optional(),
39
+ expires_in: z.number(),
40
+ scope: z.string().optional(),
41
+ })
42
+ .passthrough()
43
+
44
+ const buildBasicAuthHeaderValue = (credentials: { authKey: string; authSecret: string }): string =>
45
+ `Basic ${Buffer.from(`${credentials.authKey}:${credentials.authSecret}`, 'utf8').toString('base64')}`
46
+
47
+ const isLoopbackHost = (hostname: string): boolean =>
48
+ hostname === 'localhost' || hostname === '::1' || hostname.startsWith('127.')
49
+
50
+ type TokenBaseResult = { ok: true; baseUrl: URL } | { ok: false; error: string }
51
+
52
+ const normalizeTokenBaseEndpoint = (raw?: string): TokenBaseResult => {
53
+ const baseRaw = (raw || process.env.TRANSLOADIT_ENDPOINT || 'https://api2.transloadit.com').trim()
54
+
55
+ let url: URL
56
+ try {
57
+ url = new URL(baseRaw)
58
+ } catch {
59
+ return {
60
+ ok: false,
61
+ error:
62
+ 'Invalid endpoint URL. Use --endpoint https://api2.transloadit.com (or set TRANSLOADIT_ENDPOINT).',
63
+ }
64
+ }
65
+
66
+ if (url.username || url.password) {
67
+ return { ok: false, error: 'Endpoint must not include username/password.' }
68
+ }
69
+ if (url.search || url.hash) {
70
+ return { ok: false, error: 'Endpoint must not include query string or hash.' }
71
+ }
72
+
73
+ if (url.protocol !== 'https:') {
74
+ if (url.protocol === 'http:' && isLoopbackHost(url.hostname)) {
75
+ // Allowed for local development only.
76
+ } else {
77
+ return {
78
+ ok: false,
79
+ error:
80
+ 'Refusing to send credentials to a non-HTTPS endpoint. Use https://... (or http://localhost for local development).',
81
+ }
82
+ }
83
+ }
84
+
85
+ // If someone pasted the token URL, normalize it back to the API base to avoid /token/token.
86
+ const pathLower = url.pathname.toLowerCase()
87
+ if (pathLower === '/token' || pathLower === '/token/') {
88
+ url.pathname = '/'
89
+ }
90
+
91
+ if (!url.pathname.endsWith('/')) {
92
+ url.pathname = `${url.pathname}/`
93
+ }
94
+
95
+ return { ok: true, baseUrl: url }
96
+ }
97
+
98
+ const normalizeScopeInput = (input?: string[] | string): string | undefined => {
99
+ if (input == null) return undefined
100
+
101
+ const raw = Array.isArray(input) ? input.join(' ') : String(input)
102
+ const trimmed = raw.trim()
103
+ if (!trimmed) return undefined
104
+
105
+ const parts = trimmed.split(/[\s,]+/).map((p) => p.trim())
106
+ const seen = new Set<string>()
107
+ const out: string[] = []
108
+ for (const part of parts) {
109
+ if (!part || seen.has(part)) continue
110
+ seen.add(part)
111
+ out.push(part)
112
+ }
113
+
114
+ return out.length > 0 ? out.join(' ') : undefined
115
+ }
116
+
117
+ export async function mintBearerTokenWithCredentials(
118
+ credentials: { authKey: string; authSecret: string },
119
+ options: MintBearerTokenOptions = {},
120
+ ): Promise<MintBearerTokenResult> {
121
+ const endpointResult = normalizeTokenBaseEndpoint(options.endpoint)
122
+ if (!endpointResult.ok) {
123
+ return { ok: false, error: endpointResult.error }
124
+ }
125
+
126
+ const url = new URL('token', endpointResult.baseUrl).toString()
127
+ const aud = (options.aud ?? 'mcp').trim() || 'mcp'
128
+ const scope = normalizeScopeInput(options.scope)
129
+ const timeoutMs = options.timeoutMs ?? 15_000
130
+
131
+ const params = new URLSearchParams({
132
+ grant_type: 'client_credentials',
133
+ aud,
134
+ })
135
+ if (scope) params.set('scope', scope)
136
+
137
+ let res: Response
138
+ const controller = new AbortController()
139
+ const timeout = setTimeout(() => controller.abort(), timeoutMs)
140
+ try {
141
+ res = await fetch(url, {
142
+ method: 'POST',
143
+ // Never follow redirects with Basic Auth credentials.
144
+ redirect: 'error',
145
+ signal: controller.signal,
146
+ headers: {
147
+ Authorization: buildBasicAuthHeaderValue(credentials),
148
+ Accept: 'application/json',
149
+ 'Content-Type': 'application/x-www-form-urlencoded',
150
+ },
151
+ body: params.toString(),
152
+ })
153
+ } catch (err) {
154
+ clearTimeout(timeout)
155
+ if (err instanceof Error && err.name === 'AbortError') {
156
+ return {
157
+ ok: false,
158
+ error: `Failed to mint bearer token: request timed out after ${Math.round(timeoutMs / 1000)}s.`,
159
+ }
160
+ }
161
+ const message = err instanceof Error ? err.message : String(err)
162
+ return { ok: false, error: `Failed to mint bearer token: ${message}` }
163
+ } finally {
164
+ clearTimeout(timeout)
165
+ }
166
+
167
+ const text = await res.text()
168
+ const trimmed = text.trim()
169
+
170
+ let parsedJson: unknown = null
171
+ try {
172
+ parsedJson = trimmed ? JSON.parse(trimmed) : null
173
+ } catch {
174
+ parsedJson = null
175
+ }
176
+
177
+ if (res.ok) {
178
+ if (parsedJson == null) {
179
+ return { ok: false, error: 'Token response was not valid JSON.' }
180
+ }
181
+
182
+ const parsed = tokenSuccessSchema.safeParse(parsedJson)
183
+ if (!parsed.success) {
184
+ return { ok: false, error: 'Token response did not include an access_token.' }
185
+ }
186
+
187
+ const data: BearerTokenResponse = {
188
+ ...parsed.data,
189
+ token_type: parsed.data.token_type ?? 'Bearer',
190
+ }
191
+ return { ok: true, raw: trimmed, data }
192
+ }
193
+
194
+ const parsedError = tokenErrorSchema.safeParse(parsedJson)
195
+ if (parsedError.success) {
196
+ return {
197
+ ok: false,
198
+ error: parsedError.data.message
199
+ ? `${parsedError.data.error}: ${parsedError.data.message}`
200
+ : parsedError.data.error,
201
+ }
202
+ }
203
+
204
+ return {
205
+ ok: false,
206
+ error: `Token request failed (${res.status}): ${trimmed || res.statusText}`,
207
+ }
208
+ }
@@ -2,7 +2,7 @@ import 'dotenv/config'
2
2
  import process from 'node:process'
3
3
  import { Command, Option } from 'clipanion'
4
4
  import { Transloadit as TransloaditClient } from '../../Transloadit.ts'
5
- import { getEnvCredentials } from '../helpers.ts'
5
+ import { requireEnvCredentials } from '../helpers.ts'
6
6
  import type { IOutputCtl } from '../OutputCtl.ts'
7
7
  import OutputCtl, { LOG_LEVEL_DEFAULT, LOG_LEVEL_NAMES, parseLogLevel } from '../OutputCtl.ts'
8
8
 
@@ -32,17 +32,18 @@ abstract class BaseCommand extends Command {
32
32
  }
33
33
 
34
34
  protected setupClient(): boolean {
35
- const creds = getEnvCredentials()
36
- if (!creds) {
37
- this.output.error(
38
- 'Please provide API authentication in the environment variables TRANSLOADIT_KEY and TRANSLOADIT_SECRET',
39
- )
35
+ const credsResult = requireEnvCredentials()
36
+ if (!credsResult.ok) {
37
+ this.output.error(credsResult.error)
40
38
  return false
41
39
  }
42
40
 
43
41
  const endpoint = this.endpoint || process.env.TRANSLOADIT_ENDPOINT
44
42
 
45
- this.client = new TransloaditClient({ ...creds, ...(endpoint && { endpoint }) })
43
+ this.client = new TransloaditClient({
44
+ ...credsResult.credentials,
45
+ ...(endpoint && { endpoint }),
46
+ })
46
47
  return true
47
48
  }
48
49