@jovie/cli 26.9.16 → 26.10.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.
package/dist/cli.js CHANGED
@@ -1,13 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { readFileSync, realpathSync } from 'node:fs';
3
+ import * as http from 'node:http';
3
4
  import { homedir } from 'node:os';
4
5
  import { dirname, resolve } from 'node:path';
5
6
  import { fileURLToPath } from 'node:url';
6
7
  import { parseArgs } from 'node:util';
7
- import { DEFAULT_BASE_URL, JovieInputError, JovieRequestError, normalizeBaseUrl, } from './client.js';
8
+ import { DEFAULT_BASE_URL, displayValue, JovieInputError, JovieRequestError, normalizeBaseUrl, safeDiagnostic, } from './client.js';
8
9
  import { COMMANDS, findCommand } from './commands.js';
9
10
  import { installSkill } from './init.js';
10
11
  import { serveMcp } from './mcp.js';
12
+ import { MESH_FLAG_NAMES, MESH_USAGE, runMesh, } from './mesh.js';
11
13
  import { SKILL_MD } from './skill.js';
12
14
  export const CLI_VERSION_FALLBACK = '0.0.0-private';
13
15
  export function packageVersionFromText(manifestText) {
@@ -36,6 +38,17 @@ export function resolveCliVersion(manifestPath = resolve(dirname(fileURLToPath(i
36
38
  }
37
39
  }
38
40
  const CLI_VERSION = resolveCliVersion();
41
+ const USAGE_HINT = 'Run `jovie --help` for usage.';
42
+ /** `JOVIE_TIMEOUT_MS` bounds every request (1s-120s); CI shortens it. */
43
+ export function timeoutFromEnv(value = process.env.JOVIE_TIMEOUT_MS) {
44
+ if (value === undefined || value === '')
45
+ return undefined;
46
+ const ms = Number(value);
47
+ if (!Number.isInteger(ms) || ms < 1_000 || ms > 120_000) {
48
+ throw new UsageError('JOVIE_TIMEOUT_MS must be a whole number of milliseconds from 1000 to 120000.');
49
+ }
50
+ return ms;
51
+ }
39
52
  class UsageError extends Error {
40
53
  code = 'USAGE_ERROR';
41
54
  }
@@ -53,8 +66,11 @@ function usage() {
53
66
  });
54
67
  return `Usage: jovie <command> [options]
55
68
 
56
- Jovie for agents: create artist profiles from Spotify and read public artist
57
- data. No login or API key. Every command supports --json.
69
+ Jovie for agents: extract public creator data, create artist profiles from
70
+ Spotify, and read public artist data.
71
+ No login or API key is needed for public commands.
72
+ Internal fleet commands require a scoped JOVIE_WORKER_TOKEN supplied by the
73
+ operator. Every command supports --json.
58
74
 
59
75
  Commands:
60
76
  ${lines.join('\n')}
@@ -62,15 +78,23 @@ ${lines.join('\n')}
62
78
  ${'init'.padEnd(width)} Install the Jovie skill into Claude, Codex, OpenClaw, Hermes
63
79
  ${'skill'.padEnd(width)} Print the Jovie SKILL.md
64
80
 
81
+ ${MESH_USAGE}
82
+
65
83
  Options:
66
84
  --base-url <url> Compatible Jovie deployment origin (default: ${DEFAULT_BASE_URL})
67
85
  --json Emit compact JSON; text resources use {"content":"..."}
68
86
  --full Fetch /llms-full.txt (only with docs llms)
69
87
  --dir <path> Skills directory for init (default: every installed agent)
88
+ --debug Print error details (stack and cause) to stderr
70
89
  -h, --help Show this help
71
90
  -v, --version Show the installed CLI version
72
91
 
92
+ Environment:
93
+ JOVIE_TIMEOUT_MS Request deadline in ms, retries included (default 30000)
94
+
73
95
  Examples:
96
+ jovie creator lookup https://www.youtube.com/@creator --json
97
+ jovie creator lookup youtube:@creator --json
74
98
  jovie profile create https://open.spotify.com/artist/<id> --json
75
99
  jovie artist get <username> --json
76
100
  npx -y @jovie/cli mcp
@@ -82,12 +106,24 @@ function writeLine(output, value) {
82
106
  function writeText(output, value) {
83
107
  output.write(value.endsWith('\n') ? value : `${value}\n`);
84
108
  }
109
+ /** Stack and cause chain, only behind --debug; secrets are still redacted. */
110
+ export function debugDetail(error) {
111
+ const lines = [];
112
+ for (let current = error, depth = 0; current && depth < 5; depth++) {
113
+ lines.push(depth === 0 ? '' : 'Caused by:', current instanceof Error
114
+ ? (current.stack ?? `${current.name}: ${current.message}`)
115
+ : String(current));
116
+ current = current.cause;
117
+ }
118
+ return safeDiagnostic(lines.filter(Boolean).join('\n'));
119
+ }
85
120
  function errorPayload(error) {
86
121
  if (error instanceof JovieRequestError) {
87
122
  return {
88
123
  code: error.code,
89
124
  message: error.message,
90
125
  ...(error.apiCode ? { apiCode: error.apiCode } : {}),
126
+ ...(error.retryable === undefined ? {} : { retryable: error.retryable }),
91
127
  ...(error.status === undefined ? {} : { status: error.status }),
92
128
  ...(error.responseBody ? { responseBody: error.responseBody } : {}),
93
129
  ...(error.retryAfterSeconds === undefined
@@ -110,17 +146,41 @@ function errorPayload(error) {
110
146
  const COMMAND_FLAG_NAMES = [
111
147
  ...new Set(COMMANDS.flatMap(command => command.flags ?? []).map(f => f.name)),
112
148
  ];
149
+ function commandFamily(argv) {
150
+ const stringOptions = new Set([
151
+ 'base-url',
152
+ 'dir',
153
+ ...COMMAND_FLAG_NAMES,
154
+ ...MESH_FLAG_NAMES,
155
+ ]);
156
+ for (let index = 0; index < argv.length; index++) {
157
+ const token = argv[index];
158
+ if (token === '--')
159
+ return argv[index + 1];
160
+ if (!token.startsWith('-') || token === '-')
161
+ return token;
162
+ if (token.startsWith('--') &&
163
+ !token.includes('=') &&
164
+ stringOptions.has(token.slice(2)))
165
+ index++;
166
+ }
167
+ return undefined;
168
+ }
113
169
  function parseCliArgs(argv) {
114
170
  const parsed = parseArgs({
115
171
  args: [...argv],
116
172
  options: {
117
173
  'base-url': { type: 'string' },
174
+ debug: { type: 'boolean' },
118
175
  dir: { type: 'string' },
119
176
  full: { type: 'boolean' },
120
177
  help: { type: 'boolean', short: 'h' },
121
178
  json: { type: 'boolean' },
122
179
  version: { type: 'boolean', short: 'v' },
123
- ...Object.fromEntries(COMMAND_FLAG_NAMES.map(name => [name, { type: 'string' }])),
180
+ ...Object.fromEntries([...COMMAND_FLAG_NAMES, ...MESH_FLAG_NAMES].map(name => [
181
+ name,
182
+ { type: 'string' },
183
+ ])),
124
184
  },
125
185
  allowPositionals: true,
126
186
  strict: true,
@@ -129,7 +189,12 @@ function parseCliArgs(argv) {
129
189
  return {
130
190
  values: {
131
191
  baseUrl: values['base-url'],
192
+ debug: values.debug,
132
193
  flags: Object.fromEntries(COMMAND_FLAG_NAMES.filter(name => values[name] !== undefined).map(name => [name, String(values[name])])),
194
+ meshFlags: Object.fromEntries(MESH_FLAG_NAMES.filter(name => values[name] !== undefined).map(name => [
195
+ name,
196
+ String(values[name]),
197
+ ])),
133
198
  dir: values.dir,
134
199
  full: values.full,
135
200
  help: values.help,
@@ -142,6 +207,22 @@ function parseCliArgs(argv) {
142
207
  async function execute(positionals, values, dependencies) {
143
208
  const baseUrl = normalizeBaseUrl(values.baseUrl);
144
209
  const [first] = positionals;
210
+ if (positionals.length === 1 && ['skill', 'init'].includes(first ?? '')) {
211
+ if (values.full ||
212
+ Object.keys(values.flags).length ||
213
+ (first === 'skill' && values.dir))
214
+ throw new UsageError('Unsupported option for this command.');
215
+ }
216
+ if (first === 'mesh') {
217
+ if (values.full || values.dir || Object.keys(values.flags).length)
218
+ throw new UsageError('Unsupported option for mesh.');
219
+ return runMesh(positionals, values.meshFlags, {
220
+ userAgent: `jovie-cli/${CLI_VERSION}`,
221
+ ...dependencies.mesh,
222
+ });
223
+ }
224
+ if (Object.keys(values.meshFlags).length)
225
+ throw new UsageError('Mesh options are only supported by mesh commands.');
145
226
  if (positionals.length === 1 && first === 'skill')
146
227
  return SKILL_MD;
147
228
  if (positionals.length === 1 && first === 'init') {
@@ -149,14 +230,20 @@ async function execute(positionals, values, dependencies) {
149
230
  }
150
231
  const command = findCommand(positionals);
151
232
  if (!command) {
152
- throw new UsageError(`Unknown command: ${positionals.join(' ')}`);
233
+ const family = COMMANDS.filter(entry => !entry.internal && entry.path[0] === first);
234
+ if (family.length && positionals.length === 1) {
235
+ throw new UsageError(`Missing subcommand for ${first}. Try: ${family
236
+ .map(entry => `jovie ${entry.path.join(' ')}`)
237
+ .join(', ')}`);
238
+ }
239
+ throw new UsageError(`Unknown command: ${displayValue(positionals.join(' '), 80)}`);
153
240
  }
154
241
  const expectedLength = command.arg ? 3 : 2;
155
242
  if (command.arg && positionals.length < expectedLength) {
156
243
  throw new UsageError(`Missing required argument <${command.arg.name}> for ${command.path.join(' ')}`);
157
244
  }
158
245
  if (positionals.length !== expectedLength) {
159
- throw new UsageError(`Unknown command: ${positionals.join(' ')}`);
246
+ throw new UsageError(`Too many arguments for ${command.path.join(' ')}. Quote values that contain spaces.`);
160
247
  }
161
248
  if (values.full && !command.acceptsFull) {
162
249
  throw new UsageError('--full is only supported by docs llms');
@@ -173,7 +260,9 @@ async function execute(positionals, values, dependencies) {
173
260
  meta: { channel: 'cli', version: CLI_VERSION },
174
261
  }, {
175
262
  baseUrl,
263
+ workerToken: dependencies.workerToken ?? process.env.JOVIE_WORKER_TOKEN,
176
264
  fetchImpl: dependencies.fetchImpl,
265
+ timeoutMs: dependencies.timeoutMs ?? timeoutFromEnv(),
177
266
  userAgent: `jovie-cli/${CLI_VERSION}`,
178
267
  });
179
268
  }
@@ -181,6 +270,7 @@ export async function runCli(argv, dependencies = {}) {
181
270
  const stdout = dependencies.stdout ?? process.stdout;
182
271
  const stderr = dependencies.stderr ?? process.stderr;
183
272
  const requestedJson = argv.includes('--json');
273
+ let internalInvocation = COMMANDS.some(command => command.internal && command.path[0] === commandFamily(argv));
184
274
  let parsed;
185
275
  try {
186
276
  parsed = parseCliArgs(argv);
@@ -193,24 +283,35 @@ export async function runCli(argv, dependencies = {}) {
193
283
  }
194
284
  else {
195
285
  writeLine(stderr, `${payload.message}`);
196
- writeLine(stderr, 'Run `jovie --help` for usage.');
286
+ writeLine(stderr, USAGE_HINT);
197
287
  }
198
- return 2;
288
+ return internalInvocation ? 3 : 2;
199
289
  }
200
290
  const { values, positionals } = parsed;
291
+ internalInvocation = COMMANDS.some(command => command.internal && command.path[0] === positionals[0]);
201
292
  if (values.version) {
202
- writeLine(stdout, CLI_VERSION);
293
+ writeLine(stdout, values.json ? JSON.stringify({ version: CLI_VERSION }) : CLI_VERSION);
203
294
  return 0;
204
295
  }
205
296
  if (values.help || positionals.length === 0) {
206
- writeText(stdout, usage());
297
+ if (values.json)
298
+ writeLine(stdout, JSON.stringify({ content: usage() }));
299
+ else
300
+ writeText(stdout, usage());
207
301
  return 0;
208
302
  }
209
303
  if (positionals.length === 1 && positionals[0] === 'mcp') {
210
304
  try {
305
+ if (values.full ||
306
+ values.json ||
307
+ values.dir ||
308
+ Object.keys(values.flags).length)
309
+ throw new UsageError('Unsupported option for mcp.');
211
310
  await serveMcp((dependencies.stdin ?? process.stdin), stdout, {
212
311
  version: CLI_VERSION,
312
+ workerToken: dependencies.workerToken ?? process.env.JOVIE_WORKER_TOKEN,
213
313
  baseUrl: normalizeBaseUrl(values.baseUrl),
314
+ timeoutMs: dependencies.timeoutMs ?? timeoutFromEnv(),
214
315
  fetchImpl: dependencies.fetchImpl,
215
316
  });
216
317
  return 0;
@@ -233,6 +334,16 @@ export async function runCli(argv, dependencies = {}) {
233
334
  else {
234
335
  writeLine(stdout, JSON.stringify(result, null, values.json ? 0 : 2));
235
336
  }
337
+ if (result && typeof result === 'object' && 'status' in result) {
338
+ const status = result.status;
339
+ return status === 'completed' || status === 'handoff'
340
+ ? 0
341
+ : status === 'unavailable'
342
+ ? 2
343
+ : status === 'in_progress'
344
+ ? 3
345
+ : 1;
346
+ }
236
347
  return 0;
237
348
  }
238
349
  catch (error) {
@@ -242,18 +353,125 @@ export async function runCli(argv, dependencies = {}) {
242
353
  }
243
354
  else {
244
355
  writeLine(stderr, payload.message);
356
+ if (error instanceof UsageError)
357
+ writeLine(stderr, USAGE_HINT);
245
358
  }
359
+ if (values.debug)
360
+ writeLine(stderr, debugDetail(error));
361
+ if (internalInvocation)
362
+ return 3;
246
363
  return error instanceof UsageError || error instanceof JovieInputError
247
364
  ? 2
248
365
  : 1;
249
366
  }
250
367
  }
251
- const isMain = process.argv[1] !== undefined &&
252
- realpathSync(fileURLToPath(import.meta.url)) ===
253
- realpathSync(resolve(process.argv[1]));
254
- if (isMain) {
255
- runCli(process.argv.slice(2)).then(code => {
256
- process.exitCode = code;
257
- });
368
+ /** Oldest Node major the CLI runs on; enforced before any command executes. */
369
+ export const MIN_NODE_MAJOR = 22;
370
+ export function unsupportedNodeMessage(version = process.versions.node) {
371
+ const major = Number.parseInt(version.split('.')[0] ?? '', 10);
372
+ return major >= MIN_NODE_MAJOR
373
+ ? undefined
374
+ : `Jovie CLI needs Node.js ${MIN_NODE_MAJOR} or newer (found v${version}). Install the current LTS from https://nodejs.org and retry.`;
375
+ }
376
+ /**
377
+ * True when this module is the process entrypoint. npm's Windows shims and
378
+ * symlinked global bins pass a different spelling of the same file, so compare
379
+ * real paths, case-insensitively on Windows, and never throw from an import.
380
+ */
381
+ export function isEntrypoint(moduleUrl, argv1, platform = process.platform, realpath = realpathSync) {
382
+ if (!argv1)
383
+ return false;
384
+ try {
385
+ const self = realpath(fileURLToPath(moduleUrl));
386
+ const entry = realpath(resolve(argv1));
387
+ return platform === 'win32'
388
+ ? self.toLowerCase() === entry.toLowerCase()
389
+ : self === entry;
390
+ }
391
+ catch {
392
+ return false;
393
+ }
394
+ }
395
+ /** A closed pipe (`jovie ... | head`) ends output, not the process with a trace. */
396
+ export function closedPipeListener(exit) {
397
+ return error => {
398
+ // Windows reports a closed pipe as EOF rather than EPIPE.
399
+ if (error.code === 'EPIPE' ||
400
+ error.code === 'EOF' ||
401
+ error.code === 'ERR_STREAM_DESTROYED') {
402
+ exit(Number(process.exitCode ?? 0));
403
+ return;
404
+ }
405
+ throw error;
406
+ };
407
+ }
408
+ /** Last-resort report for a bug that escaped runCli: one line, exit 1. */
409
+ export function reportFatal(argv, error, stdout = process.stdout, stderr = process.stderr) {
410
+ const message = `Unexpected error: ${displayValue(error instanceof Error ? error.message : String(error), 200)}. Rerun with --debug and report it with \`jovie report bug\`.`;
411
+ try {
412
+ if (argv.includes('--json')) {
413
+ writeLine(stdout, JSON.stringify({ error: { code: 'CLI_ERROR', message } }));
414
+ }
415
+ else
416
+ writeLine(stderr, message);
417
+ if (argv.includes('--debug'))
418
+ writeLine(stderr, debugDetail(error));
419
+ }
420
+ catch {
421
+ // Output is gone; the exit code still reports the failure.
422
+ }
423
+ }
424
+ /**
425
+ * Only the standalone process owns its global transport configuration. Node
426
+ * applies NO_PROXY and keeps the configured TLS trust intact. Node 22 lacks
427
+ * the API, so the CLI warns and connects directly instead of failing to load.
428
+ */
429
+ export function applyProxyFromEnv(httpModule, env, stderr, nodeVersion = process.versions.node) {
430
+ if (httpModule.setGlobalProxyFromEnv) {
431
+ httpModule.setGlobalProxyFromEnv();
432
+ return;
433
+ }
434
+ if (['HTTPS_PROXY', 'https_proxy', 'HTTP_PROXY', 'http_proxy'].some(name => env[name]))
435
+ writeLine(stderr, `HTTP(S)_PROXY is set, but Node.js v${nodeVersion} cannot apply it; connecting directly. Use Node.js 24+ for proxy support.`);
436
+ }
437
+ if (isEntrypoint(import.meta.url, process.argv[1])) {
438
+ const argv = process.argv.slice(2);
439
+ const onClosedPipe = closedPipeListener(code => process.exit(code));
440
+ process.stdout.on('error', onClosedPipe);
441
+ process.stderr.on('error', onClosedPipe);
442
+ const fatal = (error) => {
443
+ reportFatal(argv, error);
444
+ process.exitCode = 1;
445
+ // Let the one-line report flush, but never keep a broken process alive.
446
+ setTimeout(() => process.exit(1), 50).unref();
447
+ };
448
+ process.on('uncaughtException', fatal);
449
+ process.on('unhandledRejection', fatal);
450
+ const unsupported = unsupportedNodeMessage();
451
+ if (unsupported) {
452
+ writeLine(process.stderr, unsupported);
453
+ process.exitCode = 1;
454
+ }
455
+ else {
456
+ try {
457
+ applyProxyFromEnv(http, process.env, process.stderr);
458
+ runCli(argv).then(code => {
459
+ process.exitCode = code;
460
+ }, fatal);
461
+ }
462
+ catch {
463
+ // Proxy parser errors can include the URL, including its credentials.
464
+ const error = new JovieInputError('Invalid proxy configuration. Check HTTP_PROXY and HTTPS_PROXY.');
465
+ if (argv.includes('--json')) {
466
+ writeLine(process.stdout, JSON.stringify({ error: errorPayload(error) }));
467
+ }
468
+ else {
469
+ writeLine(process.stderr, error.message);
470
+ }
471
+ process.exitCode = COMMANDS.some(command => command.internal && command.path[0] === commandFamily(argv))
472
+ ? 3
473
+ : 2;
474
+ }
475
+ }
258
476
  }
259
477
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,gBAAgB,EAChB,YAAY,EAEZ,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,eAAe,EACf,UAAU,EAEV,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAEpD,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,IACE,MAAM,KAAK,IAAI;YACf,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACtB,CAAC;YACD,MAAM,OAAO,GAAI,MAAyC,CAAC,OAAO,CAAC;YACnE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,YAAY,GAAG,OAAO,CACpB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,iBAAiB,CAClB;IAED,IAAI,CAAC;QACH,OAAO,sBAAsB,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;AA8BxC,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAEnD,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAC5B,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB;IAEpC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAClB,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAW,SAAQ,KAAK;IACnB,IAAI,GAAG,aAAsB,CAAC;CACxC;AAED,SAAS,KAAK;IACZ,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,IAAI,GAAG;YACX,GAAG,OAAO,CAAC,IAAI;YACf,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;iBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC7B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC;SACxC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO;;;;;;;;;EASP,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACd,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IACnB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;;EAEvB,UAAU;;;wEAG4D,gBAAgB;;;;;;;;;;;;;;;;;CAiBvF,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,MAAiB,EAAE,KAAa;IACjD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,SAAS,CAAC,MAAiB,EAAE,KAAa;IACjD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,OAAO,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAC/B,OAAO,YAAY,KAAK;YACtB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;QACF,OAAO,GAAI,OAA+B,CAAC,KAAK,CAAC;IACnD,CAAC;IACD,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/D,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC;IAED,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,kBAAkB,GAAG;IACzB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CAC9E,CAAC;AAEF,SAAS,aAAa,CAAC,IAAuB;IAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,UAAU;QACV,KAAK;QACL,GAAG,kBAAkB;QACrB,GAAG,eAAe;KACnB,CAAC,CAAC;IACH,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QAC1D,IACE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YACtB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACpB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjC,KAAK,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,IAAuB;IAI3C,MAAM,MAAM,GAAG,SAAS,CAAC;QACvB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;QACf,OAAO,EAAE;YACP,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACxC,GAAG,MAAM,CAAC,WAAW,CACnB,CAAC,GAAG,kBAAkB,EAAE,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,IAAI;gBACJ,EAAE,IAAI,EAAE,QAAiB,EAAE;aAC5B,CAAC,CACH;SACF;QACD,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,MAQrB,CAAC;IAEF,OAAO;QACL,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAC/D,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACrC,CACF;YACD,SAAS,EAAE,MAAM,CAAC,WAAW,CAC3B,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,IAAI;gBACJ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACrB,CAAC,CACH;YACD,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB;QACD,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,WAA8B,EAC9B,MAAiB,EACjB,YAA6B;IAE7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;IAE5B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACxE,IACE,MAAM,CAAC,IAAI;YACX,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;YAChC,CAAC,KAAK,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;YAEjC,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;YAC/D,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE;YAC5C,SAAS,EAAE,aAAa,WAAW,EAAE;YACrC,GAAG,YAAY,CAAC,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM;QACtC,MAAM,IAAI,UAAU,CAAC,mDAAmD,CAAC,CAAC;IAC5E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,QAAQ,CAAC;IACnE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACjD,OAAO,YAAY,CAAC,YAAY,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAC5B,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CACpD,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,UAAU,CAClB,0BAA0B,KAAK,UAAU,MAAM;iBAC5C,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;iBAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,UAAU,CAClB,oBAAoB,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACvD,MAAM,IAAI,UAAU,CAClB,8BAA8B,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAC1C,MAAM,IAAI,UAAU,CAClB,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qCAAqC,CACtF,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAAC,uCAAuC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,UAAU,CAClB,KAAK,KAAK,wBAAwB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC3D,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAChB;QACE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI;QAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE;KAC/C,EACD;QACE,OAAO;QACP,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;QACvE,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,cAAc,EAAE;QACrD,SAAS,EAAE,aAAa,WAAW,EAAE;KACtC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAuB,EACvB,eAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IACrD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CACpC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,CACvE,CAAC;IACF,IAAI,MAAuC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACxC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACvC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAChC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAClE,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,SAAS,CACP,MAAM,EACN,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CACrE,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,IAAI;YAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;;YACpE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,IACE,MAAM,CAAC,IAAI;gBACX,MAAM,CAAC,IAAI;gBACX,MAAM,CAAC,GAAG;gBACV,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM;gBAEhC,MAAM,IAAI,UAAU,CAAC,6BAA6B,CAAC,CAAC;YACtD,MAAM,QAAQ,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAU,EAAE,MAAM,EAAE;gBACrE,OAAO,EAAE,WAAW;gBACpB,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACvE,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzC,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,cAAc,EAAE;gBACrD,SAAS,EAAE,YAAY,CAAC,SAAS;aAClC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,OAAiB,CAAC,CAAC;YACzD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAChE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAI,MAA6B,CAAC,MAAM,CAAC;YACrD,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,SAAS;gBACnD,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,MAAM,KAAK,aAAa;oBACxB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,MAAM,KAAK,aAAa;wBACxB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,OAAiB,CAAC,CAAC;YAC7C,IAAI,KAAK,YAAY,UAAU;gBAAE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,KAAK;YAAE,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,IAAI,kBAAkB;YAAE,OAAO,CAAC,CAAC;QACjC,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,eAAe;YACpE,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,UAAU,sBAAsB,CACpC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;IAE/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,KAAK,IAAI,cAAc;QAC5B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,2BAA2B,cAAc,qBAAqB,OAAO,+DAA+D,CAAC;AAC3I,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAiB,EACjB,KAAyB,EACzB,WAA4B,OAAO,CAAC,QAAQ,EAC5C,WAAqC,YAAY;IAEjD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,OAAO,QAAQ,KAAK,OAAO;YACzB,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;YAC5C,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,kBAAkB,CAChC,IAA4B;IAE5B,OAAO,KAAK,CAAC,EAAE;QACb,0DAA0D;QAC1D,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,KAAK,CAAC,IAAI,KAAK,KAAK;YACpB,KAAK,CAAC,IAAI,KAAK,sBAAsB,EACrC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CACzB,IAAuB,EACvB,KAAc,EACd,SAAoB,OAAO,CAAC,MAAM,EAClC,SAAoB,OAAO,CAAC,MAAM;IAElC,MAAM,OAAO,GAAG,qBAAqB,YAAY,CAC/C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACtD,GAAG,CACJ,+DAA+D,CAAC;IACjE,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,SAAS,CACP,MAAM,EACN,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,CAC1D,CAAC;QACJ,CAAC;;YAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkD,EAClD,GAAsB,EACtB,MAAiB,EACjB,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI;IAEnC,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACrC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACnC,OAAO;IACT,CAAC;IACD,IACE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,IAAI,CAC7D,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAClB;QAED,SAAS,CACP,MAAM,EACN,sCAAsC,WAAW,2EAA2E,CAC7H,CAAC;AACN,CAAC;AAED,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,EAAE;QAC/B,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,wEAAwE;QACxE,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;IAC7C,IAAI,WAAW,EAAE,CAAC;QAChB,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACvC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC1B,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,MAAM,KAAK,GAAG,IAAI,eAAe,CAC/B,gEAAgE,CACjE,CAAC;YACF,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,SAAS,CACP,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAC/C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAC9B,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,CACvE;gBACC,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/client.d.ts CHANGED
@@ -3,6 +3,7 @@ export declare const DEFAULT_TIMEOUT_MS = 30000;
3
3
  export declare const DEFAULT_USER_AGENT = "jovie-cli";
4
4
  export type FetchImplementation = (input: string | URL, init?: RequestInit) => Promise<Response>;
5
5
  export type ResourceOptions = {
6
+ readonly workerToken?: string;
6
7
  readonly baseUrl?: string;
7
8
  readonly fetchImpl?: FetchImplementation;
8
9
  readonly signal?: AbortSignal;
@@ -20,13 +21,22 @@ export declare class JovieRequestError extends Error {
20
21
  readonly retryAfterSeconds?: number | undefined;
21
22
  /** Stable server error code (e.g. RATE_LIMITED) when the API sent one. */
22
23
  readonly apiCode?: string | undefined;
24
+ readonly retryable?: boolean | undefined;
23
25
  readonly code: "REQUEST_FAILED";
24
26
  constructor(message: string, url: string, status?: number | undefined, responseBody?: string | undefined, retryAfterSeconds?: number | undefined,
25
27
  /** Stable server error code (e.g. RATE_LIMITED) when the API sent one. */
26
- apiCode?: string | undefined);
28
+ apiCode?: string | undefined, retryable?: boolean | undefined);
27
29
  }
30
+ export declare function safeDiagnostic(value: string): string;
31
+ /** Echo untrusted text on one bounded terminal line (no escape sequences). */
32
+ export declare function displayValue(value: string, max?: number): string;
33
+ /** Reads make at most this many attempts inside one shared deadline. */
34
+ export declare const MAX_READ_ATTEMPTS = 3;
35
+ /** Response consumption shares the request deadline and has a hard byte cap. */
36
+ export declare function readResponseBody(response: Response, signal: AbortSignal): Promise<string>;
28
37
  /** Normalize a deployment root without accepting credentials or query state. */
29
38
  export declare function normalizeBaseUrl(baseUrl?: string): string;
39
+ export declare function parseRetryAfterSeconds(value: string | null, nowMs?: number): number | undefined;
30
40
  export declare function validateUsername(username: string): string;
31
41
  /** Fetch the public, unauthenticated artist API response. */
32
42
  export declare function fetchArtist(username: string, options?: ResourceOptions): Promise<unknown>;
@@ -42,6 +52,8 @@ export declare function fetchArtistLlms(username: string, options?: ResourceOpti
42
52
  * ownership. Anonymous and rate limited per IP.
43
53
  */
44
54
  export declare function createProfile(spotifyArtistUrl: string, options?: ResourceOptions): Promise<unknown>;
55
+ /** Extract public creator fields without creating or modifying a profile. */
56
+ export declare function lookupCreator(creatorUrl: string, options?: ResourceOptions): Promise<unknown>;
45
57
  export type ReportKind = 'bug' | 'feedback';
46
58
  /** Safe execution context only; never env, credentials, or file contents. */
47
59
  export interface ReportContext {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}