@martini-film/cli 0.3.0 → 0.4.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.
Files changed (44) hide show
  1. package/README.md +169 -44
  2. package/dist/api.js +71 -23
  3. package/dist/api.js.map +1 -1
  4. package/dist/approve.js +16 -1
  5. package/dist/approve.js.map +1 -1
  6. package/dist/cli.js +487 -142
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/assets.js +165 -29
  9. package/dist/commands/assets.js.map +1 -1
  10. package/dist/commands/call.js +131 -0
  11. package/dist/commands/call.js.map +1 -0
  12. package/dist/commands/context.js +11 -2
  13. package/dist/commands/context.js.map +1 -1
  14. package/dist/commands/files.js +117 -9
  15. package/dist/commands/files.js.map +1 -1
  16. package/dist/commands/guide.js +71 -0
  17. package/dist/commands/guide.js.map +1 -0
  18. package/dist/commands/init.js +213 -0
  19. package/dist/commands/init.js.map +1 -0
  20. package/dist/commands/login.js +37 -6
  21. package/dist/commands/login.js.map +1 -1
  22. package/dist/commands/tools.js +88 -80
  23. package/dist/commands/tools.js.map +1 -1
  24. package/dist/commands/use.js +148 -0
  25. package/dist/commands/use.js.map +1 -0
  26. package/dist/config.js +87 -6
  27. package/dist/config.js.map +1 -1
  28. package/dist/generated/guide.json +104 -0
  29. package/dist/generated/manifest.json +73 -24
  30. package/dist/guideCache.js +204 -0
  31. package/dist/guideCache.js.map +1 -0
  32. package/dist/help.js +391 -34
  33. package/dist/help.js.map +1 -1
  34. package/dist/manifest.js +27 -0
  35. package/dist/manifest.js.map +1 -1
  36. package/dist/manifestCache.js +196 -0
  37. package/dist/manifestCache.js.map +1 -0
  38. package/dist/output.js +289 -30
  39. package/dist/output.js.map +1 -1
  40. package/dist/schema.js +281 -16
  41. package/dist/schema.js.map +1 -1
  42. package/dist/wait.js +33 -2
  43. package/dist/wait.js.map +1 -1
  44. package/package.json +2 -2
package/dist/output.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { writeFileSync } from 'node:fs';
2
- import { CliApiError } from './api.js';
3
- import { ArgumentError } from './schema.js';
2
+ import { extname } from 'node:path';
3
+ import { CliApiError, isMediaBlock as isMediaContentBlock } from './api.js';
4
+ import { ArgumentError, likelyKeys } from './schema.js';
4
5
  import { WaitTimeoutError } from './wait.js';
5
6
  export const EXIT = {
6
7
  ok: 0,
@@ -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)
@@ -36,7 +43,43 @@ export function printResult(value, options = {}) {
36
43
  const printable = withoutMediaBytes(value);
37
44
  write(options, (tty ? JSON.stringify(printable, null, 2) : JSON.stringify(printable)) + '\n');
38
45
  }
39
- export const MEDIA_BYTES_HINT = 'The bytes are not printed. Write them with --out <path> plus --raw (a result with one media block) or --out-dir <dir> (every block, read-only tools); --out <path> alone writes this JSON with the base64 kept.';
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
+ }
40
83
  function isMediaBlock(block) {
41
84
  return block !== null && typeof block === 'object' && typeof block.data === 'string';
42
85
  }
@@ -61,6 +104,11 @@ function withoutMediaBytes(value) {
61
104
  : block),
62
105
  };
63
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
+ }
64
112
  export function assertRawDestination(options) {
65
113
  if (options.out)
66
114
  return;
@@ -70,9 +118,24 @@ export function assertRawDestination(options) {
70
118
  }
71
119
  export function printBytes(bytes, options) {
72
120
  if (options.out) {
73
- writeFileSync(options.out, bytes);
74
- if (!options.quiet)
75
- write(options, `${bytes.byteLength} bytes${options.contentType ? ` (${options.contentType})` : ''} → ${options.out}\n`);
121
+ const expected = options.contentType ? mismatchedExtension(options.out, options.contentType) : null;
122
+ if (expected && !options.wrote) {
123
+ throw new ArgumentError(`--out ${options.out} names another media type than the bytes, which are ${options.contentType}; nothing was written. Name the file .${expected} and run the command again.`);
124
+ }
125
+ const path = options.out;
126
+ writeFileSync(path, bytes);
127
+ if (expected) {
128
+ printWarning('EXTENSION_MISMATCH', `${path} holds ${options.contentType} bytes; a reader that trusts the extension may refuse it. It was written as named because the tool already did its work: rename it .${expected}.`, options);
129
+ }
130
+ const { out: _out, contentType, meta, fields, wrote: _wrote, ...receiptOptions } = options;
131
+ const receipt = {
132
+ path,
133
+ bytes: bytes.byteLength,
134
+ ...(contentType ? { contentType } : {}),
135
+ ...(meta !== null && meta !== undefined ? { result: meta } : {}),
136
+ };
137
+ const trimmed = fields?.length ? selectFields(receipt, fields) : receipt;
138
+ printResult(fields?.length && isEmptyProjection(trimmed) ? receipt : trimmed, receiptOptions);
76
139
  return;
77
140
  }
78
141
  assertRawDestination(options);
@@ -83,21 +146,194 @@ export function printWarning(code, message, options = {}) {
83
146
  return;
84
147
  writeError(options, JSON.stringify({ warning: { code, message } }) + '\n');
85
148
  }
86
- export function warnNoFieldsMatched(result, fields, options = {}, knownFields = []) {
87
- if (fields.length === 0 || options.quiet)
88
- return;
89
- const empty = result !== null && typeof result === 'object' && Object.keys(result).length === 0;
90
- if (!empty)
149
+ export function printNotice(code, message, options = {}, detail = {}) {
150
+ if (options.quiet)
91
151
  return;
152
+ writeError(options, JSON.stringify({ notice: { code, message, ...detail } }) + '\n');
153
+ }
154
+ export function isEmptyProjection(result) {
155
+ if (result === null || typeof result !== 'object')
156
+ return false;
157
+ return Object.keys(result).length === 0 || !holdsValue(result);
158
+ }
159
+ export function unmatchedFields(result, fields) {
160
+ return fields.filter(path => !holdsValue(project(result, path.split('.'))));
161
+ }
162
+ function holdsValue(value) {
163
+ if (value === undefined)
164
+ return false;
165
+ if (Array.isArray(value))
166
+ return value.length === 0 || value.some(item => item !== null && holdsValue(item));
167
+ if (value !== null && typeof value === 'object') {
168
+ const values = Object.values(value);
169
+ return values.length === 0 || values.some(holdsValue);
170
+ }
171
+ return true;
172
+ }
173
+ export function noFieldsMatchedMessage(fields, knownFields = [], result, schema) {
92
174
  const shape = knownFields.length
93
- ? `The result's top-level fields are: ${knownFields.join(', ')} (martini <tool> --help lists the nested ones).`
175
+ ? `The result's top-level fields are: ${knownFields.join(', ')} (--help on this command lists the nested ones).`
94
176
  : 'Run once without --fields to see the shape.';
95
- writeError(options, JSON.stringify({
96
- warning: {
97
- code: 'NO_FIELDS_MATCHED',
98
- message: `--fields ${fields.join(',')} matched nothing in the result. Paths are dotted and case-sensitive (asset.imageUrl, nodes.nodeId). ${shape}`,
99
- },
100
- }) + '\n');
177
+ const meant = didYouMean(result, fields, schema);
178
+ return `--fields ${fields.join(',')} matched nothing in the result.${meant} Paths are dotted and case-sensitive (asset.imageUrl, nodes.nodeId); a map keyed by id is stepped into by its records' field (assets.status), or by a * step quoted for the shell ('assets.*.status'). ${shape}`;
179
+ }
180
+ export function didYouMean(result, fields, schema) {
181
+ const suggestions = [
182
+ ...new Set(fields.flatMap(path => [...suggestPaths(result, path), ...(schema ? schemaSuggestions(schema, path) : [])])),
183
+ ].slice(0, 4);
184
+ if (suggestions.length === 0)
185
+ return '';
186
+ const last = suggestions.length > 1 ? ` or ${suggestions.at(-1)}` : '';
187
+ return ` Did you mean ${suggestions.slice(0, -1).join(', ') || suggestions[0]}${suggestions.length > 1 ? last : ''}?`;
188
+ }
189
+ function suggestPaths(result, path) {
190
+ const segments = path.split('.');
191
+ let level = [result];
192
+ const prefix = [];
193
+ for (const segment of segments) {
194
+ const objects = level.flatMap(recordsOf);
195
+ const keys = [...new Set(objects.flatMap(object => Object.keys(object)))];
196
+ if (segment !== '*' && !keys.includes(segment)) {
197
+ const mapKeys = objects.length === 1 && keys.length > 0 && keys.every(isIdLike);
198
+ if (mapKeys) {
199
+ const records = objects.flatMap(object => Object.values(object)).flatMap(recordsOf);
200
+ const fields = [...new Set(records.flatMap(record => Object.keys(record)))];
201
+ return likelyKeys(segment, fields).map(key => [...prefix, '*', key].join('.'));
202
+ }
203
+ return likelyKeys(segment, keys).map(key => [...prefix, key].join('.'));
204
+ }
205
+ level = segment === '*' ? objects.flatMap(object => Object.values(object)) : objects.map(object => object[segment]);
206
+ prefix.push(segment);
207
+ }
208
+ return [];
209
+ }
210
+ function schemaSuggestions(root, path) {
211
+ let current = root;
212
+ const prefix = [];
213
+ for (const segment of path.split('.')) {
214
+ if (!current)
215
+ return [];
216
+ while (current.items && !current.properties)
217
+ current = current.items;
218
+ const map = !current.properties && current.additionalProperties && typeof current.additionalProperties === 'object'
219
+ ? current.additionalProperties
220
+ : undefined;
221
+ if (segment === '*') {
222
+ current = map ?? current.items;
223
+ prefix.push(segment);
224
+ continue;
225
+ }
226
+ const record = map ?? current;
227
+ const next = record.properties?.[segment];
228
+ if (!next) {
229
+ const keys = Object.keys(record.properties ?? {});
230
+ return likelyKeys(segment, keys).map(key => [...prefix, ...(map ? ['*'] : []), key].join('.'));
231
+ }
232
+ if (map)
233
+ prefix.push('*');
234
+ prefix.push(segment);
235
+ current = next;
236
+ }
237
+ return [];
238
+ }
239
+ function recordsOf(value) {
240
+ if (Array.isArray(value))
241
+ return value.slice(0, 50).flatMap(recordsOf);
242
+ return value !== null && typeof value === 'object' ? [value] : [];
243
+ }
244
+ function isIdLike(key) {
245
+ return /^(?:asset-)?[0-9a-f]{8}-[0-9a-f-]{27,}$/i.test(key) || /^[A-Za-z0-9_-]{16,}$/.test(key);
246
+ }
247
+ export function warnUnmatchedFields(result, fields, options = {}, schema) {
248
+ if (fields.length < 2)
249
+ return;
250
+ const unmatched = unmatchedFields(result, fields);
251
+ const missing = unmatched.filter(path => !isDeclaredPath(path, schema));
252
+ if (missing.length === 0 || unmatched.length === fields.length)
253
+ return;
254
+ printWarning('FIELDS_NOT_FOUND', `--fields ${missing.join(',')} matched nothing in the result; the other paths are printed.${didYouMean(result, missing, schema)} Check the spelling; --help on this command lists the result fields it declares.`, options);
255
+ }
256
+ function walkMapPath(path, schema) {
257
+ const out = [];
258
+ const everyRecord = [];
259
+ let undeclaredMapStep = false;
260
+ let node = schema;
261
+ for (const segment of path.split('.')) {
262
+ while (node && node.type === 'array' && node.items)
263
+ node = node.items;
264
+ if (node && segment !== '*' && isIdKeyedMap(node)) {
265
+ let values = node.additionalProperties;
266
+ while (values && values.type === 'array' && values.items)
267
+ values = values.items;
268
+ everyRecord.push('*');
269
+ if (values?.properties?.[segment] === undefined) {
270
+ undeclaredMapStep = true;
271
+ out.push(segment);
272
+ everyRecord.push(segment);
273
+ node = values;
274
+ continue;
275
+ }
276
+ out.push('*');
277
+ node = values;
278
+ }
279
+ out.push(segment);
280
+ everyRecord.push(segment);
281
+ if (!node)
282
+ continue;
283
+ node =
284
+ segment === '*'
285
+ ? typeof node.additionalProperties === 'object'
286
+ ? node.additionalProperties
287
+ : undefined
288
+ : node.properties?.[segment];
289
+ }
290
+ return { path: out.join('.'), everyRecord: everyRecord.join('.'), undeclaredMapStep };
291
+ }
292
+ export function expandMapPaths(paths, schema) {
293
+ if (!schema)
294
+ return [...paths];
295
+ return paths.map(path => walkMapPath(path, schema).path);
296
+ }
297
+ export function hasUndeclaredMapStep(paths, schema) {
298
+ return schema !== undefined && paths.some(path => walkMapPath(path, schema).undeclaredMapStep);
299
+ }
300
+ export function resolveMapPaths(result, paths, schema) {
301
+ if (!schema)
302
+ return [...paths];
303
+ return paths.map(path => {
304
+ const walked = walkMapPath(path, schema);
305
+ if (!walked.undeclaredMapStep)
306
+ return walked.path;
307
+ return isEmptyProjection(selectFields(result, [walked.path])) ? walked.everyRecord : walked.path;
308
+ });
309
+ }
310
+ export function isDeclaredPath(path, schema) {
311
+ let node = schema;
312
+ for (const segment of path.split('.')) {
313
+ while (node && node.type === 'array' && node.items)
314
+ node = node.items;
315
+ if (!node)
316
+ return false;
317
+ const variants = node.anyOf ?? node.oneOf ?? [node];
318
+ const next = variants
319
+ .map((variant) => {
320
+ if (segment === '*')
321
+ return typeof variant.additionalProperties === 'object' ? variant.additionalProperties : undefined;
322
+ return variant.properties?.[segment];
323
+ })
324
+ .find(found => found !== undefined);
325
+ if (next === undefined)
326
+ return false;
327
+ node = next;
328
+ }
329
+ return true;
330
+ }
331
+ function isIdKeyedMap(schema) {
332
+ const values = schema.additionalProperties;
333
+ return (Object.keys(schema.properties ?? {}).length === 0 &&
334
+ values !== null &&
335
+ typeof values === 'object' &&
336
+ Object.keys(values.properties ?? {}).length > 0);
101
337
  }
102
338
  export function selectFields(value, paths) {
103
339
  if (paths.length === 0)
@@ -128,13 +364,20 @@ function project(value, segments) {
128
364
  }
129
365
  return Object.keys(out).length ? out : undefined;
130
366
  }
131
- if (!Object.prototype.hasOwnProperty.call(value, head))
132
- return undefined;
367
+ if (!Object.prototype.hasOwnProperty.call(value, head)) {
368
+ return isIdKeyedData(value) ? project(value, ['*', ...segments]) : undefined;
369
+ }
133
370
  const inner = project(value[head], rest);
134
371
  return inner === undefined ? undefined : { [head]: inner };
135
372
  }
136
373
  return undefined;
137
374
  }
375
+ 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;
376
+ function isIdKeyedData(value) {
377
+ const entries = Object.entries(value);
378
+ return (entries.length > 0 &&
379
+ entries.every(([key, item]) => ID_KEY.test(key) && item !== null && typeof item === 'object' && !Array.isArray(item)));
380
+ }
138
381
  function merge(a, b) {
139
382
  if (a === undefined)
140
383
  return b;
@@ -179,7 +422,11 @@ export function exitCodeFor(error) {
179
422
  /^(INVALID_API_KEY|API_KEY_REVOKED|API_KEY_EXPIRED|API_KEY_DEFAULTS_MISSING)$/.test(error.code)) {
180
423
  return EXIT.auth;
181
424
  }
182
- if (error.code === 'INSUFFICIENT_CREDITS' || error.code === 'INSUFFICIENT_OLIVES' || error.status === 402) {
425
+ if (error.code === 'INSUFFICIENT_CREDITS' ||
426
+ error.code === 'INSUFFICIENT_OLIVES' ||
427
+ error.status === 402 ||
428
+ error.code === 'PLAN_OVER_BUDGET' ||
429
+ error.code === 'PLAN_UNPRICED') {
183
430
  return EXIT.insufficientCredits;
184
431
  }
185
432
  if (/_NOT_READY$/.test(error.code) ||
@@ -187,7 +434,10 @@ export function exitCodeFor(error) {
187
434
  error.code === 'RUN_NOT_ACTIVE' ||
188
435
  error.code === 'LOGIN_PENDING')
189
436
  return EXIT.notReady;
190
- if (error.code === 'INVALID_ARGUMENTS' || error.code === 'INVALID_REQUEST' || error.code === 'TOOL_NOT_FOUND') {
437
+ if (error.code === 'INVALID_ARGUMENTS' ||
438
+ error.code === 'INVALID_REQUEST' ||
439
+ error.code === 'TOOL_NOT_FOUND' ||
440
+ error.code === 'NO_FIELDS_MATCHED') {
191
441
  return EXIT.usage;
192
442
  }
193
443
  return EXIT.toolError;
@@ -196,6 +446,8 @@ export function exitCodeFor(error) {
196
446
  }
197
447
  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.';
198
448
  export function hintFor(error, context = {}) {
449
+ if (error instanceof CliApiError && error.hint)
450
+ return error.hint;
199
451
  if (error instanceof WaitTimeoutError) {
200
452
  return `Still running; nothing was lost. Resume with: ${error.resumeCommand()} — give --timeout the seconds your shell step allows (a video generation takes minutes).`;
201
453
  }
@@ -204,7 +456,7 @@ export function hintFor(error, context = {}) {
204
456
  case 'NO_API_KEY':
205
457
  return context.inRun
206
458
  ? '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.'
207
- : '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.';
459
+ : 'Run martini login (laptops; an agent runs martini login --no-wait, tells the person the code, and runs it again once they approved; --api-url <url> for an API other than the default) or set MARTINI_API_KEY with MARTINI_API_URL (scripts). Inside a Martini workflow run the CLI is already signed in; do not run martini login there.';
208
460
  case 'API_KEY_EXPIRED':
209
461
  case 'API_KEY_REVOKED':
210
462
  return context.inRun ? RUN_CREDENTIAL_GONE_HINT : 'Run martini login again to mint a fresh key.';
@@ -224,6 +476,10 @@ export function hintFor(error, context = {}) {
224
476
  : 'Run keys work only while their workflow run is executing.';
225
477
  case 'INSUFFICIENT_CREDITS':
226
478
  return 'Top up olives in Martini, or lower the batch.';
479
+ case 'PLAN_OVER_BUDGET':
480
+ return 'The quote is on stdout. Ask the person before raising --max-olives, or make the batch smaller.';
481
+ case 'NO_FIELDS_MATCHED':
482
+ return 'Nothing was changed; run the command again with paths the result has.';
227
483
  case 'FFPROBE_MISSING':
228
484
  return 'Install ffmpeg (it ships ffprobe) and make sure it is on PATH.';
229
485
  default:
@@ -232,12 +488,17 @@ export function hintFor(error, context = {}) {
232
488
  return undefined;
233
489
  }
234
490
  }
235
- if (error instanceof ArgumentError)
236
- return 'Run martini <command> --help.';
491
+ if (error instanceof ArgumentError) {
492
+ return error.hint ?? (context.command ? `Run martini ${context.command} --help.` : 'Run martini --help.');
493
+ }
237
494
  return undefined;
238
495
  }
239
496
  export function printError(error, options = {}) {
240
497
  const code = exitCodeFor(error);
498
+ const hint = hintFor(error, {
499
+ inRun: options.inRun ?? false,
500
+ ...(options.command ? { command: options.command } : {}),
501
+ });
241
502
  const payload = {
242
503
  error: {
243
504
  code: error instanceof CliApiError ? error.code : error instanceof ArgumentError ? 'USAGE' : 'CLI_ERROR',
@@ -245,9 +506,7 @@ export function printError(error, options = {}) {
245
506
  ...(error instanceof CliApiError && error.tool ? { tool: error.tool } : {}),
246
507
  ...(error instanceof WaitTimeoutError ? { pending: error.pending } : {}),
247
508
  ...(error instanceof WaitTimeoutError && error.settled.length ? { settled: error.settled } : {}),
248
- ...(hintFor(error, { inRun: options.inRun ?? false })
249
- ? { hint: hintFor(error, { inRun: options.inRun ?? false }) }
250
- : {}),
509
+ ...(hint ? { hint } : {}),
251
510
  exitCode: code,
252
511
  },
253
512
  };
@@ -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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"}