@martini-film/cli 0.2.0 → 0.4.0

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.
Files changed (46) hide show
  1. package/README.md +173 -56
  2. package/dist/api.js +69 -2
  3. package/dist/api.js.map +1 -1
  4. package/dist/approve.js +2 -1
  5. package/dist/approve.js.map +1 -1
  6. package/dist/args.js +31 -6
  7. package/dist/args.js.map +1 -1
  8. package/dist/cli.js +457 -110
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/assets.js +297 -45
  11. package/dist/commands/assets.js.map +1 -1
  12. package/dist/commands/call.js +99 -0
  13. package/dist/commands/call.js.map +1 -0
  14. package/dist/commands/context.js +16 -3
  15. package/dist/commands/context.js.map +1 -1
  16. package/dist/commands/files.js +208 -83
  17. package/dist/commands/files.js.map +1 -1
  18. package/dist/commands/guide.js +67 -0
  19. package/dist/commands/guide.js.map +1 -0
  20. package/dist/commands/init.js +196 -0
  21. package/dist/commands/init.js.map +1 -0
  22. package/dist/commands/login.js +69 -15
  23. package/dist/commands/login.js.map +1 -1
  24. package/dist/commands/tools.js +63 -78
  25. package/dist/commands/tools.js.map +1 -1
  26. package/dist/commands/use.js +143 -0
  27. package/dist/commands/use.js.map +1 -0
  28. package/dist/config.js +87 -6
  29. package/dist/config.js.map +1 -1
  30. package/dist/generated/guide.json +104 -0
  31. package/dist/generated/manifest.json +3885 -241
  32. package/dist/guideCache.js +204 -0
  33. package/dist/guideCache.js.map +1 -0
  34. package/dist/help.js +391 -34
  35. package/dist/help.js.map +1 -1
  36. package/dist/manifest.js +34 -3
  37. package/dist/manifest.js.map +1 -1
  38. package/dist/manifestCache.js +196 -0
  39. package/dist/manifestCache.js.map +1 -0
  40. package/dist/output.js +251 -28
  41. package/dist/output.js.map +1 -1
  42. package/dist/schema.js +132 -15
  43. package/dist/schema.js.map +1 -1
  44. package/dist/wait.js +181 -8
  45. package/dist/wait.js.map +1 -1
  46. package/package.json +2 -2
package/dist/output.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { writeFileSync } from 'node:fs';
2
- import { CliApiError } from './api.js';
2
+ import { extname } from 'node:path';
3
+ import { CliApiError, isMediaBlock as isMediaContentBlock } from './api.js';
3
4
  import { ArgumentError } from './schema.js';
4
5
  import { WaitTimeoutError } from './wait.js';
5
6
  export const EXIT = {
@@ -19,11 +20,17 @@ function writeError(options, text) {
19
20
  (options.stderr ?? (line => process.stderr.write(line)))(text);
20
21
  }
21
22
  export function printResult(value, options = {}) {
23
+ if (options.out && isMediaOutPath(options.out)) {
24
+ const { out, ...rest } = options;
25
+ printWarning('OUT_NOT_MEDIA', `This result is JSON, not media, so nothing was written to ${out}; it is printed here.`, rest);
26
+ printResult(value, rest);
27
+ return;
28
+ }
22
29
  if (options.out) {
23
30
  const text = typeof value === 'string' ? value : JSON.stringify(value, null, 2) + '\n';
24
31
  writeFileSync(options.out, text);
25
- if (!options.quiet)
26
- write(options, `${summarize(value)} → ${options.out}\n`);
32
+ const { out: _out, ...receiptOptions } = options;
33
+ printResult({ path: options.out, bytes: Buffer.byteLength(text), summary: summarize(value) }, receiptOptions);
27
34
  return;
28
35
  }
29
36
  if (options.quiet)
@@ -33,32 +40,223 @@ export function printResult(value, options = {}) {
33
40
  return;
34
41
  }
35
42
  const tty = options.isTTY ?? Boolean(process.stdout.isTTY);
36
- write(options, (tty ? JSON.stringify(value, null, 2) : JSON.stringify(value)) + '\n');
43
+ const printable = withoutMediaBytes(value);
44
+ write(options, (tty ? JSON.stringify(printable, null, 2) : JSON.stringify(printable)) + '\n');
45
+ }
46
+ export const MEDIA_BYTES_HINT = 'The bytes are not printed. Save them with --out <file.jpg|.png|.webp|.mp3|.wav> (a result with one media block; --raw does the same for any file name) or --out-dir <dir> (every block, read-only tools); --out <file.json> writes this JSON with the base64 kept.';
47
+ export const MEDIA_EXTENSIONS = {
48
+ 'image/jpeg': 'jpg',
49
+ 'image/png': 'png',
50
+ 'image/webp': 'webp',
51
+ 'audio/mpeg': 'mp3',
52
+ 'audio/wav': 'wav',
53
+ };
54
+ const MEDIA_OUT_EXTENSIONS = new Set([
55
+ 'jpg',
56
+ 'jpeg',
57
+ 'png',
58
+ 'webp',
59
+ 'gif',
60
+ 'mp3',
61
+ 'wav',
62
+ 'm4a',
63
+ 'aac',
64
+ 'flac',
65
+ 'ogg',
66
+ 'mp4',
67
+ 'mov',
68
+ 'webm',
69
+ ]);
70
+ function extensionOf(path) {
71
+ return extname(path).slice(1).toLowerCase();
72
+ }
73
+ export function isMediaOutPath(path) {
74
+ return MEDIA_OUT_EXTENSIONS.has(extensionOf(path));
75
+ }
76
+ export function mismatchedExtension(path, contentType) {
77
+ const expected = MEDIA_EXTENSIONS[contentType.split(';')[0].trim().toLowerCase()];
78
+ const actual = extensionOf(path);
79
+ if (!expected || !MEDIA_OUT_EXTENSIONS.has(actual))
80
+ return null;
81
+ return actual === expected || (expected === 'jpg' && actual === 'jpeg') ? null : expected;
82
+ }
83
+ function isMediaBlock(block) {
84
+ return block !== null && typeof block === 'object' && typeof block.data === 'string';
85
+ }
86
+ function withoutMediaBytes(value) {
87
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
88
+ return value;
89
+ const media = value.media;
90
+ if (!Array.isArray(media) || !media.some(isMediaBlock))
91
+ return value;
92
+ return {
93
+ ...value,
94
+ media: media.map(block => isMediaBlock(block)
95
+ ? {
96
+ ...block,
97
+ data: {
98
+ omitted: true,
99
+ mimeType: typeof block.mimeType === 'string' ? block.mimeType : null,
100
+ bytes: Buffer.from(block.data, 'base64').byteLength,
101
+ hint: MEDIA_BYTES_HINT,
102
+ },
103
+ }
104
+ : block),
105
+ };
106
+ }
107
+ export function noteMediaStubs(blocks, options = {}) {
108
+ if (blocks.some(block => isMediaContentBlock(block) && !('data' in block))) {
109
+ printWarning('MEDIA_NOT_PRINTED', MEDIA_BYTES_HINT, options);
110
+ }
111
+ }
112
+ export function assertRawDestination(options) {
113
+ if (options.out)
114
+ return;
115
+ if (options.isTTY ?? Boolean(process.stdout.isTTY)) {
116
+ throw new ArgumentError('--raw writes binary media bytes and stdout is a terminal. Add --out <path>, or pipe stdout to a file or program.');
117
+ }
37
118
  }
38
119
  export function printBytes(bytes, options) {
39
120
  if (options.out) {
40
121
  writeFileSync(options.out, bytes);
41
- if (!options.quiet)
42
- write(options, `${bytes.byteLength} bytes${options.contentType ? ` (${options.contentType})` : ''} → ${options.out}\n`);
122
+ const expected = options.contentType ? mismatchedExtension(options.out, options.contentType) : null;
123
+ if (expected) {
124
+ printWarning('EXTENSION_MISMATCH', `${options.out} holds ${options.contentType} bytes; a viewer that trusts the extension may refuse it. Name the file .${expected}.`, options);
125
+ }
126
+ const { out: _out, contentType, meta, fields, ...receiptOptions } = options;
127
+ const receipt = {
128
+ path: options.out,
129
+ bytes: bytes.byteLength,
130
+ ...(contentType ? { contentType } : {}),
131
+ ...(meta !== null && meta !== undefined ? { result: meta } : {}),
132
+ };
133
+ const trimmed = fields?.length ? selectFields(receipt, fields) : receipt;
134
+ printResult(fields?.length && isEmptyProjection(trimmed) ? receipt : trimmed, receiptOptions);
43
135
  return;
44
136
  }
137
+ assertRawDestination(options);
45
138
  process.stdout.write(bytes);
46
139
  }
47
- export function warnNoFieldsMatched(result, fields, options = {}, knownFields = []) {
48
- if (fields.length === 0 || options.quiet)
49
- return;
50
- const empty = result !== null && typeof result === 'object' && Object.keys(result).length === 0;
51
- if (!empty)
140
+ export function printWarning(code, message, options = {}) {
141
+ if (options.quiet)
52
142
  return;
143
+ writeError(options, JSON.stringify({ warning: { code, message } }) + '\n');
144
+ }
145
+ export function isEmptyProjection(result) {
146
+ if (result === null || typeof result !== 'object')
147
+ return false;
148
+ return Object.keys(result).length === 0 || !holdsValue(result);
149
+ }
150
+ export function unmatchedFields(result, fields) {
151
+ return fields.filter(path => !holdsValue(project(result, path.split('.'))));
152
+ }
153
+ function holdsValue(value) {
154
+ if (value === undefined)
155
+ return false;
156
+ if (Array.isArray(value))
157
+ return value.length === 0 || value.some(item => item !== null && holdsValue(item));
158
+ if (value !== null && typeof value === 'object') {
159
+ const values = Object.values(value);
160
+ return values.length === 0 || values.some(holdsValue);
161
+ }
162
+ return true;
163
+ }
164
+ export function noFieldsMatchedMessage(fields, knownFields = []) {
53
165
  const shape = knownFields.length
54
- ? `The result's top-level fields are: ${knownFields.join(', ')} (martini <tool> --help lists the nested ones).`
166
+ ? `The result's top-level fields are: ${knownFields.join(', ')} (--help on this command lists the nested ones).`
55
167
  : 'Run once without --fields to see the shape.';
56
- writeError(options, JSON.stringify({
57
- warning: {
58
- code: 'NO_FIELDS_MATCHED',
59
- message: `--fields ${fields.join(',')} matched nothing in the result. Paths are dotted and case-sensitive (asset.imageUrl, nodes.nodeId). ${shape}`,
60
- },
61
- }) + '\n');
168
+ return `--fields ${fields.join(',')} matched nothing in the result. Paths are dotted and case-sensitive (asset.imageUrl, nodes.nodeId); a field that is a map keyed by id takes a * step, quoted for the shell ('assets.*.status'). ${shape}`;
169
+ }
170
+ export function warnUnmatchedFields(result, fields, options = {}, schema) {
171
+ if (fields.length < 2)
172
+ return;
173
+ const unmatched = unmatchedFields(result, fields);
174
+ const missing = unmatched.filter(path => !isDeclaredPath(path, schema));
175
+ if (missing.length === 0 || unmatched.length === fields.length)
176
+ return;
177
+ printWarning('FIELDS_NOT_FOUND', `--fields ${missing.join(',')} matched nothing in the result; the other paths are printed. Check the spelling; --help on this command lists the result fields it declares.`, options);
178
+ }
179
+ function walkMapPath(path, schema) {
180
+ const out = [];
181
+ const everyRecord = [];
182
+ let undeclaredMapStep = false;
183
+ let node = schema;
184
+ for (const segment of path.split('.')) {
185
+ while (node && node.type === 'array' && node.items)
186
+ node = node.items;
187
+ if (node && segment !== '*' && isIdKeyedMap(node)) {
188
+ let values = node.additionalProperties;
189
+ while (values && values.type === 'array' && values.items)
190
+ values = values.items;
191
+ everyRecord.push('*');
192
+ if (values?.properties?.[segment] === undefined) {
193
+ undeclaredMapStep = true;
194
+ out.push(segment);
195
+ everyRecord.push(segment);
196
+ node = values;
197
+ continue;
198
+ }
199
+ out.push('*');
200
+ node = values;
201
+ }
202
+ out.push(segment);
203
+ everyRecord.push(segment);
204
+ if (!node)
205
+ continue;
206
+ node =
207
+ segment === '*'
208
+ ? typeof node.additionalProperties === 'object'
209
+ ? node.additionalProperties
210
+ : undefined
211
+ : node.properties?.[segment];
212
+ }
213
+ return { path: out.join('.'), everyRecord: everyRecord.join('.'), undeclaredMapStep };
214
+ }
215
+ export function expandMapPaths(paths, schema) {
216
+ if (!schema)
217
+ return [...paths];
218
+ return paths.map(path => walkMapPath(path, schema).path);
219
+ }
220
+ export function hasUndeclaredMapStep(paths, schema) {
221
+ return schema !== undefined && paths.some(path => walkMapPath(path, schema).undeclaredMapStep);
222
+ }
223
+ export function resolveMapPaths(result, paths, schema) {
224
+ if (!schema)
225
+ return [...paths];
226
+ return paths.map(path => {
227
+ const walked = walkMapPath(path, schema);
228
+ if (!walked.undeclaredMapStep)
229
+ return walked.path;
230
+ return isEmptyProjection(selectFields(result, [walked.path])) ? walked.everyRecord : walked.path;
231
+ });
232
+ }
233
+ export function isDeclaredPath(path, schema) {
234
+ let node = schema;
235
+ for (const segment of path.split('.')) {
236
+ while (node && node.type === 'array' && node.items)
237
+ node = node.items;
238
+ if (!node)
239
+ return false;
240
+ const variants = node.anyOf ?? node.oneOf ?? [node];
241
+ const next = variants
242
+ .map((variant) => {
243
+ if (segment === '*')
244
+ return typeof variant.additionalProperties === 'object' ? variant.additionalProperties : undefined;
245
+ return variant.properties?.[segment];
246
+ })
247
+ .find(found => found !== undefined);
248
+ if (next === undefined)
249
+ return false;
250
+ node = next;
251
+ }
252
+ return true;
253
+ }
254
+ function isIdKeyedMap(schema) {
255
+ const values = schema.additionalProperties;
256
+ return (Object.keys(schema.properties ?? {}).length === 0 &&
257
+ values !== null &&
258
+ typeof values === 'object' &&
259
+ Object.keys(values.properties ?? {}).length > 0);
62
260
  }
63
261
  export function selectFields(value, paths) {
64
262
  if (paths.length === 0)
@@ -89,13 +287,20 @@ function project(value, segments) {
89
287
  }
90
288
  return Object.keys(out).length ? out : undefined;
91
289
  }
92
- if (!Object.prototype.hasOwnProperty.call(value, head))
93
- return undefined;
290
+ if (!Object.prototype.hasOwnProperty.call(value, head)) {
291
+ return isIdKeyedData(value) ? project(value, ['*', ...segments]) : undefined;
292
+ }
94
293
  const inner = project(value[head], rest);
95
294
  return inner === undefined ? undefined : { [head]: inner };
96
295
  }
97
296
  return undefined;
98
297
  }
298
+ const ID_KEY = /^(?:[a-z]+-)?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;
299
+ function isIdKeyedData(value) {
300
+ const entries = Object.entries(value);
301
+ return (entries.length > 0 &&
302
+ entries.every(([key, item]) => ID_KEY.test(key) && item !== null && typeof item === 'object' && !Array.isArray(item)));
303
+ }
99
304
  function merge(a, b) {
100
305
  if (a === undefined)
101
306
  return b;
@@ -140,7 +345,11 @@ export function exitCodeFor(error) {
140
345
  /^(INVALID_API_KEY|API_KEY_REVOKED|API_KEY_EXPIRED|API_KEY_DEFAULTS_MISSING)$/.test(error.code)) {
141
346
  return EXIT.auth;
142
347
  }
143
- if (error.code === 'INSUFFICIENT_CREDITS' || error.code === 'INSUFFICIENT_OLIVES' || error.status === 402) {
348
+ if (error.code === 'INSUFFICIENT_CREDITS' ||
349
+ error.code === 'INSUFFICIENT_OLIVES' ||
350
+ error.status === 402 ||
351
+ error.code === 'PLAN_OVER_BUDGET' ||
352
+ error.code === 'PLAN_UNPRICED') {
144
353
  return EXIT.insufficientCredits;
145
354
  }
146
355
  if (/_NOT_READY$/.test(error.code) ||
@@ -148,7 +357,10 @@ export function exitCodeFor(error) {
148
357
  error.code === 'RUN_NOT_ACTIVE' ||
149
358
  error.code === 'LOGIN_PENDING')
150
359
  return EXIT.notReady;
151
- if (error.code === 'INVALID_ARGUMENTS' || error.code === 'INVALID_REQUEST' || error.code === 'TOOL_NOT_FOUND') {
360
+ if (error.code === 'INVALID_ARGUMENTS' ||
361
+ error.code === 'INVALID_REQUEST' ||
362
+ error.code === 'TOOL_NOT_FOUND' ||
363
+ error.code === 'NO_FIELDS_MATCHED') {
152
364
  return EXIT.usage;
153
365
  }
154
366
  return EXIT.toolError;
@@ -157,6 +369,8 @@ export function exitCodeFor(error) {
157
369
  }
158
370
  const RUN_CREDENTIAL_GONE_HINT = 'This execution’s run credential is expired or revoked. Stop and report it; do not run martini login. Retrying or resuming the run provisions a new one.';
159
371
  export function hintFor(error, context = {}) {
372
+ if (error instanceof CliApiError && error.hint)
373
+ return error.hint;
160
374
  if (error instanceof WaitTimeoutError) {
161
375
  return `Still running; nothing was lost. Resume with: ${error.resumeCommand()} — give --timeout the seconds your shell step allows (a video generation takes minutes).`;
162
376
  }
@@ -165,7 +379,7 @@ export function hintFor(error, context = {}) {
165
379
  case 'NO_API_KEY':
166
380
  return context.inRun
167
381
  ? 'This execution’s credential is not selected: MARTINI_CONFIG_FILE and MARTINI_PROFILE must be set by the run. Stop and report it; do not run martini login.'
168
- : 'Run martini login (laptops) or set MARTINI_API_KEY (scripts). Inside a workflow run the harness selects a per-execution profile through MARTINI_CONFIG_FILE (a .martini/config.json under .martini/sessions/).';
382
+ : 'Run martini login (laptops) or set MARTINI_API_KEY (scripts). Inside a Martini workflow run the CLI is already signed in; do not run martini login there.';
169
383
  case 'API_KEY_EXPIRED':
170
384
  case 'API_KEY_REVOKED':
171
385
  return context.inRun ? RUN_CREDENTIAL_GONE_HINT : 'Run martini login again to mint a fresh key.';
@@ -173,6 +387,8 @@ export function hintFor(error, context = {}) {
173
387
  return 'Run keys reach Martini only through the tool commands; this route is not available inside a workflow run.';
174
388
  case 'LOGIN_PENDING':
175
389
  return 'Approve the code in the browser, then run martini login again; the pairing is kept until it expires.';
390
+ case 'CLI_UPDATE_REQUIRED':
391
+ return 'Update the CLI (npm i -g @martini-film/cli@latest), then run martini login again; the approval is kept until it expires.';
176
392
  case 'INVALID_ARGUMENTS':
177
393
  return error.tool ? `Run martini ${error.tool} --help for the flags and their types.` : undefined;
178
394
  case 'TOOL_NOT_FOUND':
@@ -183,6 +399,10 @@ export function hintFor(error, context = {}) {
183
399
  : 'Run keys work only while their workflow run is executing.';
184
400
  case 'INSUFFICIENT_CREDITS':
185
401
  return 'Top up olives in Martini, or lower the batch.';
402
+ case 'PLAN_OVER_BUDGET':
403
+ return 'The quote is on stdout. Ask the person before raising --max-olives, or make the batch smaller.';
404
+ case 'NO_FIELDS_MATCHED':
405
+ return 'Nothing was changed; run the command again with paths the result has.';
186
406
  case 'FFPROBE_MISSING':
187
407
  return 'Install ffmpeg (it ships ffprobe) and make sure it is on PATH.';
188
408
  default:
@@ -191,12 +411,17 @@ export function hintFor(error, context = {}) {
191
411
  return undefined;
192
412
  }
193
413
  }
194
- if (error instanceof ArgumentError)
195
- return 'Run martini <command> --help.';
414
+ if (error instanceof ArgumentError) {
415
+ return error.hint ?? (context.command ? `Run martini ${context.command} --help.` : 'Run martini --help.');
416
+ }
196
417
  return undefined;
197
418
  }
198
419
  export function printError(error, options = {}) {
199
420
  const code = exitCodeFor(error);
421
+ const hint = hintFor(error, {
422
+ inRun: options.inRun ?? false,
423
+ ...(options.command ? { command: options.command } : {}),
424
+ });
200
425
  const payload = {
201
426
  error: {
202
427
  code: error instanceof CliApiError ? error.code : error instanceof ArgumentError ? 'USAGE' : 'CLI_ERROR',
@@ -204,9 +429,7 @@ export function printError(error, options = {}) {
204
429
  ...(error instanceof CliApiError && error.tool ? { tool: error.tool } : {}),
205
430
  ...(error instanceof WaitTimeoutError ? { pending: error.pending } : {}),
206
431
  ...(error instanceof WaitTimeoutError && error.settled.length ? { settled: error.settled } : {}),
207
- ...(hintFor(error, { inRun: options.inRun ?? false })
208
- ? { hint: hintFor(error, { inRun: options.inRun ?? false }) }
209
- : {}),
432
+ ...(hint ? { hint } : {}),
210
433
  exitCode: code,
211
434
  },
212
435
  };
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}