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.
- package/README.md +19 -0
- package/dist/Transloadit.d.ts +10 -0
- package/dist/Transloadit.d.ts.map +1 -1
- package/dist/Transloadit.js +20 -0
- package/dist/Transloadit.js.map +1 -1
- package/dist/bearerToken.d.ts +31 -0
- package/dist/bearerToken.d.ts.map +1 -0
- package/dist/bearerToken.js +158 -0
- package/dist/bearerToken.js.map +1 -0
- package/dist/cli/commands/BaseCommand.d.ts.map +1 -1
- package/dist/cli/commands/BaseCommand.js +8 -5
- package/dist/cli/commands/BaseCommand.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +12 -0
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +87 -42
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/helpers.d.ts +10 -2
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +8 -1
- package/dist/cli/helpers.js.map +1 -1
- package/package.json +1 -1
- package/src/Transloadit.ts +32 -0
- package/src/bearerToken.ts +208 -0
- package/src/cli/commands/BaseCommand.ts +8 -7
- package/src/cli/commands/auth.ts +106 -56
- package/src/cli/commands/index.ts +2 -1
- package/src/cli/helpers.ts +16 -1
|
@@ -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 {
|
|
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
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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.
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
|
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
|
|
151
|
-
if (
|
|
152
|
-
console.error(
|
|
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
|
|
172
|
-
if (
|
|
173
|
-
console.error(
|
|
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
|
|
219
|
-
if (
|
|
220
|
-
this.output.error(
|
|
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
|
|
265
|
-
if (
|
|
266
|
-
this.output.error(
|
|
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":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAMzD,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACrD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IACnD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACrD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC;KACD,WAAW,EAAE,CAAA;AAEhB,MAAM,wBAAwB,GAAG,0BAA0B;KACxD,MAAM,CAAC,EAAE,IAAI,EAAE,8BAA8B,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KACrE,OAAO,EAAE;KACT,WAAW,EAAE,CAAA;AAIhB,SAAS,YAAY,CAAC,MAAkB;IACtC,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAA;QAC7C,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAA;IACpC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAC7B,CAAC,IAAI,EAA6B,EAAE,CAClC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,SAAS,CACpF,CAAA;QACD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;IACvD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAgC;IAC1D,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,SAAS,CAAA;IACpC,IAAI,UAA2C,CAAA;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,eAAe,KAAK,SAAS;YAAE,SAAQ;QAC3C,IAAI,UAAU,IAAI,IAAI;YAAE,UAAU,GAAG,EAAE,CAAA;QACvC,UAAU,CAAC,GAAG,CAAC,GAAG,eAAe,CAAA;IACnC,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,cAAc,GAAG,iBAAiB,CAAA;AAKxC,sCAAsC;AACtC,SAAS,iBAAiB,CACxB,KAAa,EACb,WAAoD,EACpD,SAAkB;IAElB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,WAAW,CAAA;IAC3C,IAAI,MAA0B,CAAA;IAE9B,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAqC,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QAC7F,CAAC;QAED,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAA;QAC3F,CAAC;QAED,MAAM,YAAY,GAAG,wBAAwB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC/D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;QAC3F,CAAC;QAED,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAA;QACtC,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAA;QAE5C,MAAM,GAAG;YACP,GAAG,YAAY;YACf,IAAI,EAAE;gBACJ,GAAG,YAAY;gBACf,GAAG,EAAE,OAAO;aACb;SACF,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IACvD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,MAA4B,EAAE,SAAS,CAAC,CAAA;QAC/E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAA;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,iCAAkC,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;IAC1F,CAAC;AACH,CAAC;AAED,0CAA0C;AAC1C,SAAS,mBAAmB,CAC1B,KAAa,EACb,WAAoD;IAEpD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,WAAW,CAAA;IAE3C,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EACH,+HAA+H;SAClI,CAAA;IACH,CAAC;IAED,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAqC,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;IAC7F,CAAC;IAED,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4DAA4D,EAAE,CAAA;IAC3F,CAAC;IAED,MAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC3D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;IAC3F,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,IAAI,CAAA;IACjG,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IAEhD,IAAI,SAA6B,CAAA;IACjC,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;QACtD,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAA;QAC/E,CAAC;QACD,SAAS,GAAG,YAAY,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,YAAY,CAAA;IAC1B,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAE5F,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IACvD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;YAC5C,SAAS;YACT,QAAQ;YACR,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,SAAS;SACV,CAAC,CAAA;QACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qCAAsC,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;IAC9F,CAAC;AACH,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CACX,+FAA+F,CAChG,CAAA;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CAAC;QACrC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,oBAAoB,EAAE,IAAI;KAC3B,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAE1E,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA8B,EAAE;IAChE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CACX,+FAA+F,CAChG,CAAA;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,OAAM;IACR,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CAAC;QACrC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,oBAAoB,EAAE,IAAI;KAC3B,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAEzD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,sBAAsB;IAC1D,MAAM,CAAU,KAAK,GAAG;QACtB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,MAAM,EAAE,KAAK,CAAC;QACf,CAAC,WAAW,CAAC;QACb,CAAC,KAAK,CAAC,EAAE,WAAW;KACrB,CAAA;IAED,MAAM,CAAU,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACpC,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE;;;KAGR;QACD,QAAQ,EAAE;YACR,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;YACvE,CAAC,gBAAgB,EAAE,kEAAkE,CAAC;YACtF,CAAC,aAAa,EAAE,yCAAyC,CAAC;SAC3D;KACF,CAAC,CAAA;IAEF,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;QAC1C,WAAW,EAAE,2DAA2D;KACzE,CAAC,CAAA;IAEQ,KAAK,CAAC,GAAG;QACjB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;QACpC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+FAA+F,CAChG,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAA;QACtE,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAEvE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;YAC1C,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO,CAAC,CAAA;IACV,CAAC;;AAGH;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAClE,MAAM,CAAU,KAAK,GAAG;QACtB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,WAAW,CAAC;QACb,CAAC,WAAW,CAAC,EAAE,WAAW;KAC3B,CAAA;IAED,MAAM,CAAU,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QACpC,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE;;;;KAIR;QACD,QAAQ,EAAE;YACR;gBACE,wBAAwB;gBACxB,+EAA+E;aAChF;YACD;gBACE,aAAa;gBACb,+EAA+E;aAChF;SACF;KACF,CAAC,CAAA;IAEQ,KAAK,CAAC,GAAG;QACjB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;QACpC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+FAA+F,CAChG,CAAA;YACD,OAAO,CAAC,CAAA;QACV,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAA;QACtE,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACvC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAEzD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAA;YAC1C,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO,CAAC,CAAA;IACV,CAAC"}
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/cli/helpers.d.ts
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { Readable } from 'node:stream';
|
|
2
|
-
|
|
2
|
+
type EnvCredentials = {
|
|
3
3
|
authKey: string;
|
|
4
4
|
authSecret: string;
|
|
5
|
-
}
|
|
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;
|
|
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"}
|
package/dist/cli/helpers.js
CHANGED
|
@@ -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
|
-
|
|
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;
|
package/dist/cli/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,GAAG,MAAM,kBAAkB,CAAA;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/cli/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,GAAG,MAAM,kBAAkB,CAAA;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,2BAA2B,GAC/B,+FAA+F,CAAA;AAIjG,SAAS,iBAAiB;IACxB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;IAC/E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA;IAExF,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAExC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;AAChC,CAAC;AAMD,MAAM,UAAU,qBAAqB;IACnC,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAA;IACvC,IAAI,WAAW,IAAI,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA;IACjF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC,KAAK,CAAA;IACtC,OAAO,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAgB;IACnD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IAElC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,IAAI,IAAI,GAAG,EAAE,CAAA;IAEb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,CAAA;IACf,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAcD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAA4B;IAC7D,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IAC1E,MAAM,cAAc,GAAG,aAAa,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,GAAG,CAAC,CAAA;IAExF,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,KAAK,GAAG,IAAI,SAAS,IAAI,IAAI,EAAE,CAAA;IACpF,CAAC;IAED,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACrD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IACrD,CAAC;IAED,IAAI,oBAAoB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,CAAA;IACvC,CAAC;IACD,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,OAAO,CAAA;IACpB,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC;AAQD,MAAM,UAAU,GAAG,CAAI,GAAG,KAAY;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAU,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAM,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
package/src/Transloadit.ts
CHANGED
|
@@ -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 {
|
|
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
|
|
36
|
-
if (!
|
|
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({
|
|
43
|
+
this.client = new TransloaditClient({
|
|
44
|
+
...credsResult.credentials,
|
|
45
|
+
...(endpoint && { endpoint }),
|
|
46
|
+
})
|
|
46
47
|
return true
|
|
47
48
|
}
|
|
48
49
|
|