@artblocks/abx-token-api 0.1.0-alpha.5 → 0.1.0-alpha.7

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.
@@ -8,7 +8,7 @@
8
8
  * (sendJson, the bearer guard) live here and the read plane imports them.
9
9
  */
10
10
  import type { IncomingMessage, ServerResponse } from 'node:http';
11
- import { type ProjectState, type ServiceDescriptor } from '@artblocks/abx-sdk';
11
+ import { type ProjectState, type ServiceDescriptor, type ServiceErrorCode } from '@artblocks/abx-sdk';
12
12
  import type { SelfHostIndexer } from '@artblocks/abx-indexer';
13
13
  import type { StorageBackend } from '@artblocks/abx-storage';
14
14
  export interface ControlPlaneContext {
@@ -22,6 +22,9 @@ export interface ControlPlaneContext {
22
22
  baseUrl: string;
23
23
  }
24
24
  export declare function sendJson(res: ServerResponse, status: number, body: unknown): void;
25
+ /** Every non-2xx control-plane response: `{error: <human>, code: <machine>}` — clients key off
26
+ * `code`, never off prose (specs/self-host-toolkit/remote-services.md → Errors). */
27
+ export declare function sendError(res: ServerResponse, status: number, code: ServiceErrorCode, message: string, extra?: Record<string, unknown>): void;
25
28
  /**
26
29
  * The ONE bearer guard for every gated route: 404 code `disabled` when no token is configured on
27
30
  * the host (the write surface honestly doesn't exist — the descriptor omits the control-plane
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAC,eAAe,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AAC/D,OAAO,EAWL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAEvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,uGAAuG;IACvG,OAAO,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAGjF;AAQD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAUhF;AA+BD,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY;;;;;;;;;;;;EAcxC;AAED,uGAAuG;AACvG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAS7E;AAcD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,SAAS,UAAQ,GAChB;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,GAAG,IAAI,CAK3C;AAuCD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuB5F;AAID;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
1
+ {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAC,eAAe,EAAE,cAAc,EAAC,MAAM,WAAW,CAAC;AAC/D,OAAO,EAaL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,uGAAuG;IACvG,OAAO,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAGjF;AAED;qFACqF;AACrF,wBAAgB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE7I;AAuDD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAUhF;AA+BD,qGAAqG;AACrG,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY;;;;;;;;;;;;EAcxC;AAED,uGAAuG;AACvG,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAS7E;AAcD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,SAAS,UAAQ,GAChB;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,GAAG,IAAI,CAK3C;AAuCD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuB5F;AAID;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
@@ -19,9 +19,56 @@ export function sendJson(res, status, body) {
19
19
  }
20
20
  /** Every non-2xx control-plane response: `{error: <human>, code: <machine>}` — clients key off
21
21
  * `code`, never off prose (specs/self-host-toolkit/remote-services.md → Errors). */
22
- function sendError(res, status, code, message, extra) {
22
+ export function sendError(res, status, code, message, extra) {
23
23
  sendJson(res, status, { error: message, code, ...extra });
24
24
  }
25
+ /**
26
+ * How long a register/reindex may hold the HTTP request open before answering `202 backfilling` and
27
+ * finishing in the background. Registration is durable BEFORE catch-up starts, so the deadline only
28
+ * decides who waits — never whether the add survives.
29
+ *
30
+ * The default keeps the common case synchronous (a fresh deploy is a few-hundred-block window: the
31
+ * client gets real counts, which is the honest answer) and stops the pathological case from holding a
32
+ * socket for minutes (a cold replay of an old contract on a rate-limited RPC — the case where the
33
+ * client used to time out and re-POST, doubling the load on the RPC that was already the problem).
34
+ */
35
+ function registerDeadlineMs() {
36
+ const raw = process.env.ABX_REGISTER_DEADLINE_MS;
37
+ if (raw === undefined || raw === '')
38
+ return 8_000;
39
+ const n = Number(raw);
40
+ return Number.isFinite(n) && n >= 0 ? n : 8_000;
41
+ }
42
+ /** Resolve to the catch-up result if it finishes within the deadline, else `undefined` — the work
43
+ * keeps running either way (the caller must attach its own completion/failure handling). */
44
+ async function withinDeadline(work, ms) {
45
+ let timer;
46
+ const deadline = new Promise((resolve) => {
47
+ timer = setTimeout(() => resolve(undefined), ms);
48
+ });
49
+ try {
50
+ // The rejection case belongs to the caller's handler; here a failure just means "not finished
51
+ // in time with a result", and the caller reports the recorded status instead.
52
+ return await Promise.race([work.catch(() => undefined), deadline]);
53
+ }
54
+ finally {
55
+ clearTimeout(timer);
56
+ }
57
+ }
58
+ /** The lifecycle state to report for a project right now — never a silent nothing (see
59
+ * `SelfHostIndexer.indexStatus` for what an unstamped registration reads as). */
60
+ function indexStatusOf(ctx, address) {
61
+ return ctx.indexer.indexStatus(address).status;
62
+ }
63
+ /** The lifecycle fields shared by the status route and the register/reindex responses. */
64
+ function lifecycle(ctx, address) {
65
+ const row = ctx.indexer.indexStatus(address);
66
+ return {
67
+ status: row.status,
68
+ ...(row.errorClass ? { error: { class: row.errorClass, ...(row.errorMessage ? { message: row.errorMessage } : {}) } } : {}),
69
+ attempts: row.attempts,
70
+ };
71
+ }
25
72
  /**
26
73
  * The ONE bearer guard for every gated route: 404 code `disabled` when no token is configured on
27
74
  * the host (the write surface honestly doesn't exist — the descriptor omits the control-plane
@@ -335,6 +382,8 @@ async function registerProject(req, res, ctx) {
335
382
  if (body.contentLocators !== undefined) {
336
383
  contentLocators = mergeLocators(existing?.contentLocators, body.contentLocators);
337
384
  }
385
+ // DURABLE FIRST (normative): the registration is written before any catch-up, so a flaky RPC
386
+ // mid-reconstruct can never lose the add — it becomes a slower backfill, not a failed request.
338
387
  indexer.register({
339
388
  address: address,
340
389
  chainKey: ctx.chainKey,
@@ -347,9 +396,62 @@ async function registerProject(req, res, ctx) {
347
396
  tokenAttributes,
348
397
  contentLocators,
349
398
  });
350
- const { state, elapsedMs, mode } = await indexer.reindex(address, { full });
351
- notifyEffects(address);
352
- return sendJson(res, 200, { ok: true, mode, elapsedMs, project: summarize(state) });
399
+ return catchUpAndRespond(res, ctx, address, { full });
400
+ }
401
+ /**
402
+ * Start (or join) catch-up and answer in one of the two conformant shapes: `200` with the completed
403
+ * summary when it lands inside the deadline, `202` + the lifecycle state when it doesn't. Shared by
404
+ * register and reindex so both branches behave identically.
405
+ *
406
+ * Single process, no queue: the work continues on the same event loop after the 202 goes out, and
407
+ * `reindexShared` guarantees a second POST joins that run instead of starting a rival reconstruct.
408
+ */
409
+ async function catchUpAndRespond(res, ctx, address, opts) {
410
+ const { indexer } = ctx;
411
+ const work = indexer.reindexShared(address, opts);
412
+ // Attach terminal handling ONCE, up front: whichever way we answer, a completed catch-up must
413
+ // notify the effects layer and a failed one must not surface as an unhandled rejection (its status
414
+ // is already recorded by reindex()).
415
+ let finished = false;
416
+ const settled = work.then((r) => {
417
+ finished = true;
418
+ notifyEffects(address);
419
+ return r;
420
+ }, (err) => {
421
+ finished = true;
422
+ console.error(`[control-plane] catch-up failed for ${address}: ${err.message}`);
423
+ return undefined;
424
+ });
425
+ const done = await withinDeadline(settled, registerDeadlineMs());
426
+ if (!done && !finished) {
427
+ // About to tell the client "wait": make sure the stored state says so. An INCREMENTAL catch-up
428
+ // deliberately keeps its prior status (so a live project doesn't flicker on every watcher tick) —
429
+ // but a client polling a run we deferred must not read `live` and stop waiting on stale counts.
430
+ // Guarded by `finished` so a run that just completed keeps its own `live`/`failed`.
431
+ const current = indexStatusOf(ctx, address);
432
+ if (current !== 'backfilling' && current !== 'failed') {
433
+ indexer.store.setIndexStatus(address, { status: 'backfilling' });
434
+ }
435
+ }
436
+ if (done) {
437
+ return sendJson(res, 200, {
438
+ ok: true,
439
+ mode: done.mode,
440
+ elapsedMs: done.elapsedMs,
441
+ project: { ...summarize(done.state), status: indexStatusOf(ctx, address) },
442
+ });
443
+ }
444
+ // Still working (or it failed and the client should read the class from status, not from a 500 that
445
+ // would imply the registration didn't land).
446
+ return sendJson(res, 202, {
447
+ ok: true,
448
+ accepted: true,
449
+ project: {
450
+ address,
451
+ name: indexer.getProject(address)?.name ?? null,
452
+ ...lifecycle(ctx, address),
453
+ },
454
+ });
353
455
  }
354
456
  /** `GET /v1/projects` — the projects visible to this token. Single-tenant reference: the token IS
355
457
  * the node's one credential, so it sees every registration. */
@@ -363,11 +465,16 @@ function listProjects(res, ctx) {
363
465
  catch {
364
466
  /* unknown stored key — fall back to the node's chain */
365
467
  }
468
+ // `status` (+ the error CLASS, never the hint) rides the list so a client renders
469
+ // "3 live, 1 backfilling, 1 failed (rpc_rate_limited)" without a round trip per project.
470
+ const life = lifecycle(ctx, reg.address);
366
471
  return {
367
472
  chainId,
368
473
  address: reg.address,
369
474
  label: reg.label ?? null,
370
475
  name: state?.name ?? null,
476
+ status: life.status,
477
+ ...(life.error ? { error: { class: life.error.class } } : {}),
371
478
  eventCount: state?.eventCount ?? 0,
372
479
  tokenCount: state?.tokens.length ?? 0,
373
480
  mintedCount: state?.tokens.filter((t) => t.minted).length ?? 0,
@@ -390,23 +497,29 @@ async function reindexProject(res, ctx, address) {
390
497
  if (!ctx.indexer.store.getRegistration(address)) {
391
498
  return sendError(res, 404, 'not_registered', 'not registered');
392
499
  }
393
- const { state, elapsedMs, mode } = await ctx.indexer.reindex(address, { full: true });
394
- notifyEffects(address);
395
- return sendJson(res, 200, { ok: true, mode, elapsedMs, project: summarize(state) });
500
+ return catchUpAndRespond(res, ctx, address, { full: true });
396
501
  }
397
502
  /** `GET /v1/projects/{chainId}/{address}/status` — indexing freshness: the registration's floor,
398
503
  * the projection's watermarks, and the chain watcher's liveness (all already in the store). */
399
- function projectStatus(res, ctx, address) {
504
+ async function projectStatus(res, ctx, address) {
400
505
  const reg = ctx.indexer.store.getRegistration(address);
401
506
  if (!reg)
402
507
  return sendError(res, 404, 'not_registered', 'not registered');
403
508
  const state = ctx.indexer.getProject(address);
404
509
  const pollAt = ctx.indexer.store.getMeta('watch:pollAt');
510
+ // The head the watcher last saw. Top-level (not just under `watcher`) because it's what a client
511
+ // computes lag / "N of M blocks" from, and it must not require knowing this node HAS a watcher.
512
+ const watcherHead = ctx.indexer.store.getMeta(`watch:${reg.chainKey}:head`);
513
+ // No watcher head yet (a fresh node's first backfill — exactly when a client most wants a
514
+ // percentage, and when it's most likely to be polling) ⇒ read head once, cached.
515
+ const head = watcherHead ?? (await cachedHead(ctx, reg.chainKey));
405
516
  return sendJson(res, 200, {
406
517
  chainId: ctx.chainId,
407
518
  address: reg.address,
519
+ ...lifecycle(ctx, address),
408
520
  fromBlock: reg.fromBlock,
409
521
  toBlock: state?.toBlock ?? null,
522
+ headBlock: head,
410
523
  eventCount: state?.eventCount ?? 0,
411
524
  tokenCount: state?.tokens.length ?? 0,
412
525
  mintedCount: state?.tokens.filter((t) => t.minted).length ?? 0,
@@ -414,11 +527,28 @@ function projectStatus(res, ctx, address) {
414
527
  watcher: {
415
528
  watching: pollAt !== null,
416
529
  pollAt,
417
- head: ctx.indexer.store.getMeta(`watch:${reg.chainKey}:head`),
530
+ head: watcherHead,
418
531
  intervalMs: watchIntervalMs(),
419
532
  },
420
533
  });
421
534
  }
535
+ // Head is per-chain and moves slowly relative to a client's poll cadence, so one cached read serves
536
+ // a whole wait loop. Best-effort by design: a status read must never fail because the RPC is down —
537
+ // that's precisely when a caller needs the status.
538
+ let headCache = null;
539
+ const HEAD_CACHE_MS = 5_000;
540
+ async function cachedHead(ctx, chainKey) {
541
+ if (headCache && headCache.chainKey === chainKey && Date.now() - headCache.at < HEAD_CACHE_MS)
542
+ return headCache.head;
543
+ try {
544
+ const head = (await ctx.indexer.publicClient(chainKey).getBlockNumber()).toString();
545
+ headCache = { at: Date.now(), chainKey, head };
546
+ return head;
547
+ }
548
+ catch {
549
+ return null;
550
+ }
551
+ }
422
552
  /**
423
553
  * `POST /v1/effect-artifacts {chainId, address, tokenId, inputsHash, output?, effectKey?, locator? |
424
554
  * bytes_base64?, contentType?}` — a conforming effect runner publishes a render output so a
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AACrC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,GASpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,cAAc,CAAC;AAa5D,MAAM,UAAU,QAAQ,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa;IACzE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAC,cAAc,EAAE,iCAAiC,EAAC,CAAC,CAAC;IAC3E,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;qFACqF;AACrF,MAAM,UAAU,SAAS,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAsB,EAAE,OAAe,EAAE,KAA+B;IACrI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,EAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,kBAAkB;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACjD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAED;6FAC6F;AAC7F,KAAK,UAAU,cAAc,CAAI,IAAgB,EAAE,EAAU;IAC3D,IAAI,KAAqB,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;QAClD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,8FAA8F;QAC9F,8EAA8E;QAC9E,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAM,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;kFACkF;AAClF,SAAS,aAAa,CAAC,GAAwB,EAAE,OAAe;IAC9D,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,OAAkB,CAAC,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED,0FAA0F;AAC1F,SAAS,SAAS,CAAC,GAAwB,EAAE,OAAe;IAK1D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,OAAkB,CAAC,CAAC;IACxD,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrH,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAoB,EAAE,GAAmB;IACrE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;QAC1C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,8FAA8F,CAAC,CAAC;QAChI,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,mDAAmD,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;yBACyB;AACzB,SAAS,gBAAgB,CAAC,GAAoB;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,YAAY,CAAC,GAAoB,EAAE,QAAQ,GAAG,EAAE,GAAG,IAAI;IACpE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,IAAK,KAAgB,CAAC,MAAM,CAAC;QACjC,IAAI,IAAI,GAAG,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA4B,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,qGAAqG;AACrG,MAAM,UAAU,SAAS,CAAC,CAAe;IACvC,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;QAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;QACpD,eAAe,EAAE,CAAC,CAAC,eAAe;KACnC,CAAC;AACJ,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;QACxD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9F,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;iGACiG;AACjG,SAAS,aAAa,CAAC,YAAgC,EAAE,QAAiB;IACxE,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAmC,CAAC,EAAE,CAAC;YACzE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAAiC,EACjC,iBAAqC,EACrC,SAAS,GAAG,KAAK;IAEjB,MAAM,SAAS,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC1F,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,IAAI,GAAG,SAAS,IAAI,iBAAiB,KAAK,SAAS,IAAI,SAAS,KAAK,iBAAiB,CAAC;IAC7F,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;AAC3B,CAAC;AAED,mFAAmF;AAEnF;2EAC2E;AAC3E,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAsC,CAAC;QAChH,OAAO,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,0BAA0B,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,OAAO,EAAC,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAC,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAID,iGAAiG;AACjG,oFAAoF;AACpF,IAAI,YAAY,GAAoE,IAAI,CAAC;AACzF,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAC3C,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,EAAE,GAAG,oBAAoB,EAAE,CAAC;QACpG,OAAO,YAAY,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,GAAyB,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;QACnG,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAwB,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC,OAAwB,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,CAAC,CAAC,mEAAmE;IACrF,CAAC;IACD,YAAY,GAAG,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC;IAC9C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAwB;IAC9D,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IAC5D,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAsB;QACpC,OAAO,EAAE,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAC;QAC/E,UAAU,EAAE,YAAY;YACtB,CAAC,CAAC,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,yBAAyB,CAAC;YAC3E,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACzB,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QACjB,UAAU,CAAC,IAAI,GAAG;YAChB,MAAM,EAAE,QAAQ;YAChB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC/C,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,MAAM,GAAG,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC,UAAU,CAAC,EAAC,CAAC;IACtF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,mFAAmF;AAEnF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAoB,EACpB,GAAmB,EACnB,GAAwB,EACxB,KAAe;IAEf,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;QAAE,OAAO;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;IAEnC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,MAAM,KAAK,MAAM;gBAAE,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7D,IAAI,MAAM,KAAK,KAAK;gBAAE,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpD,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,6DAA6D,CAAC,CAAC;QAC/G,CAAC;QACD,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,6EAA6E,CAAC,CAAC;QAC/H,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC;YAAE,OAAO;QAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,4DAA4D,CAAC,CAAC;QAC9G,CAAC;QACD,MAAM,OAAO,GAAG,OAAkB,CAAC;QACnC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,6CAA6C,CAAC,CAAC;QAC/F,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,MAAM,KAAK,MAAM;gBAAE,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,mDAAmD,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IAAI,MAAM,KAAK,KAAK;gBAAE,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,iDAAiD,CAAC,CAAC;QACnG,CAAC;QACD,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,2BAA2B,GAAG,sBAAsB,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,kBAAkB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACnE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,+BAA+B,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,4BAA4B,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,CAAC,CAAC;AAC/E,CAAC;AAED,0FAA0F;AAC1F,SAAS,UAAU,CAAC,GAAmB,EAAE,GAAwB,EAAE,KAAc;IAC/E,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,2CAA2C,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,6BAA6B,GAAG,CAAC,OAAO,SAAS,CAAC,EAAE,EAAE,EAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;QACxH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,eAAe,CAAC,GAAoB,EAAE,GAAmB,EAAE,GAAwB;IAChG,MAAM,EAAC,OAAO,EAAC,GAAG,GAAG,CAAC;IACtB,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;IACnD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,oDAAoD,CAAC,CAAC;IACtG,CAAC;IACD,kFAAkF;IAClF,wFAAwF;IACxF,gGAAgG;IAChG,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,SAA+B,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,yFAAyF;QACzF,2FAA2F;QAC3F,yFAAyF;QACzF,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAkB,CAAC,CAAC;QACrG,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,OAAO,SAAS,CACd,GAAG,EACH,GAAG,EACH,iBAAiB,EACjB,iGAAiG;gBAC/F,gKAAgK,CACnK,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,EAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;IACxD,CAAC;IACD,MAAM,EAAC,SAAS,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC;IAC/B,6FAA6F;IAC7F,8FAA8F;IAC9F,IAAI,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC;IACtC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3G,CAAC;IACD,iGAAiG;IACjG,0FAA0F;IAC1F,IAAI,eAAe,GAAG,QAAQ,EAAE,eAAe,CAAC;IAChD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI;YAAE,eAAe,GAAG,SAAS,CAAC;aAC1D,CAAC;YACJ,MAAM,IAAI,GAAuC,EAAE,CAAC;YACpD,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAA0C,CAAC,EAAE,CAAC;gBAC3F,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,CAAC,MAAM;oBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YACD,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChF,CAAC;IACH,CAAC;IACD,IAAI,eAAe,GAAG,QAAQ,EAAE,eAAe,CAAC;IAChD,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACvC,eAAe,GAAG,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACnF,CAAC;IACD,6FAA6F;IAC7F,+FAA+F;IAC/F,OAAO,CAAC,QAAQ,CAAC;QACf,OAAO,EAAE,OAAkB;QAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS;QACT,OAAO,EAAG,IAAI,CAAC,OAA8B,IAAI,QAAQ,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI;QACrG,KAAK,EAAG,IAAI,CAAC,KAA4B,IAAI,QAAQ,EAAE,KAAK;QAC5D,WAAW,EAAG,IAAI,CAAC,WAAkC,IAAI,QAAQ,EAAE,WAAW;QAC9E,WAAW,EAAG,IAAI,CAAC,WAAkC,IAAI,QAAQ,EAAE,WAAW;QAC9E,UAAU;QACV,eAAe;QACf,eAAe;KAChB,CAAC,CAAC;IACH,OAAO,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAkB,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAAmB,EACnB,GAAwB,EACxB,OAAgB,EAChB,IAAsB;IAEtB,MAAM,EAAC,OAAO,EAAC,GAAG,GAAG,CAAC;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,8FAA8F;IAC9F,mGAAmG;IACnG,qCAAqC;IACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE;QACJ,QAAQ,GAAG,IAAI,CAAC;QAChB,aAAa,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;QACN,QAAQ,GAAG,IAAI,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,uCAAuC,OAAO,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,OAAO,SAAS,CAAC;IACnB,CAAC,CACF,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,+FAA+F;QAC/F,kGAAkG;QAClG,gGAAgG;QAChG,oFAAoF;QACpF,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,aAAa,EAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;YACxB,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,EAAC,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,EAAC;SACzE,CAAC,CAAC;IACL,CAAC;IACD,oGAAoG;IACpG,6CAA6C;IAC7C,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;QACxB,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE;YACP,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI;YAC/C,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;SAC3B;KACF,CAAC,CAAC;AACL,CAAC;AAED;gEACgE;AAChE,SAAS,YAAY,CAAC,GAAmB,EAAE,GAAwB;IACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAkB,CAAC,CAAC;QAC7D,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QACD,kFAAkF;QAClF,yFAAyF;QACzF,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO;YACL,OAAO;YACP,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;YACxB,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC;YAClC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;YACrC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC;YAC9D,eAAe,EAAE,KAAK,EAAE,eAAe,IAAI,IAAI;SAChD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;AACxC,CAAC;AAED,2FAA2F;AAC3F,SAAS,aAAa,CAAC,GAAmB,EAAE,GAAwB,EAAE,OAAgB;IACpF,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC7E,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;AACjD,CAAC;AAED;kGACkG;AAClG,KAAK,UAAU,cAAc,CAAC,GAAmB,EAAE,GAAwB,EAAE,OAAgB;IAC3F,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAC5D,CAAC;AAED;gGACgG;AAChG,KAAK,UAAU,aAAa,CAAC,GAAmB,EAAE,GAAwB,EAAE,OAAgB;IAC1F,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzD,iGAAiG;IACjG,gGAAgG;IAChG,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,QAAQ,OAAO,CAAC,CAAC;IAC5E,0FAA0F;IAC1F,iFAAiF;IACjF,MAAM,IAAI,GAAG,WAAW,IAAI,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;QACxB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI;QAC/B,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC;QAClC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;QACrC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC;QAC9D,eAAe,EAAE,KAAK,EAAE,eAAe,IAAI,IAAI;QAC/C,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,KAAK,IAAI;YACzB,MAAM;YACN,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,eAAe,EAAE;SAC9B;KACF,CAAC,CAAC;AACL,CAAC;AAED,oGAAoG;AACpG,oGAAoG;AACpG,mDAAmD;AACnD,IAAI,SAAS,GAAwD,IAAI,CAAC;AAC1E,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,KAAK,UAAU,UAAU,CAAC,GAAwB,EAAE,QAAgB;IAClE,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,aAAa;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC;IACrH,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpF,SAAS,GAAG,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,qBAAqB,CAAC,GAAoB,EAAE,GAAmB,EAAE,GAAwB;IACtG,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,GAAG,CAAC;IAC/B,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,0DAA0D;IAC7G,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;IACnD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,oDAAoD,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAgC,CAAC;IAC5D,IAAI,CAAC,aAAa,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,mGAAmG,CAAC,CAAC;IACrJ,CAAC;IACD,wFAAwF;IACxF,iCAAiC;IACjC,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACtF,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnG,MAAM,WAAW,GAAI,IAAI,CAAC,WAAkC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACzH,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAkB,EAAE,OAAO,EAAE,aAAoB,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACjH,yFAAyF;IACzF,2FAA2F;IAC3F,MAAM,GAAG,GAAG,EAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAC,CAAC;IAE1G,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAC,GAAG,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAC,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,6EAA6E,CAAC,CAAC;AAC/H,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAAC,GAAoB,EAAE,GAAmB,EAAE,GAAwB;IACnG,MAAM,EAAC,OAAO,EAAC,GAAG,GAAG,CAAC;IACtB,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAyB,CAAC;IAC3C,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,gEAAgE,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAA6B,CAAC;IACnD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,oDAAoD,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAA4B,CAAC;IACjD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,qDAAqD,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;QAC5B,GAAG;QACH,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACnC,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QAC3F,MAAM;QACN,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QACxE,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACxE,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,MAAM,EAAsB,MAAM,WAAW,CAAC;AAC/F,OAAO,EAaL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAiB,KAAK,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAmC3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAA;CAAC,CAAC,CAsB3D;AAaD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAYxF;AAED,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,IAAI,SAAe,GAAG,MAAM,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAqB3D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAwBhE;AAYD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAAC,CAO/F;AAsZD,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;GAetF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,MAAM,EAAsB,MAAM,WAAW,CAAC;AAC/F,OAAO,EAaL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAiB,KAAK,cAAc,EAAC,MAAM,wBAAwB,CAAC;AAoC3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yGAAyG;IACzG,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAA;CAAC,CAAC,CAsB3D;AAaD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAYxF;AAED,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,IAAI,SAAe,GAAG,MAAM,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAqB3D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAwBhE;AAYD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAAC,CAO/F;AAocD,wBAAsB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,OAAO,EAAE,cAAc;;;;;;;;;;;;;;;GAetF"}
package/dist/server.js CHANGED
@@ -9,7 +9,7 @@ import { ABX_JS } from './abxjs.js';
9
9
  import { resolveFieldBytes, resolveFieldRendered, COLLECTION_TOKEN_ID } from './resolve.js';
10
10
  import { renderDashboard, renderIndex } from './dashboard.js';
11
11
  import { watchIntervalMs } from './watcher.js';
12
- import { requireBearer, routeControlPlane, safeLocators, sendJson, serviceDescriptor, summarize, } from './control-plane.js';
12
+ import { requireBearer, routeControlPlane, safeLocators, sendError, sendJson, serviceDescriptor, summarize, } from './control-plane.js';
13
13
  // A read-only client for resolving on-chain `reader`-represented content (eth_call).
14
14
  const chainClient = makePublicClient();
15
15
  // The chain this resolver serves. The path grammar carries the chainId
@@ -197,7 +197,7 @@ async function route(req, res, indexer, baseUrl, storage) {
197
197
  return wrongChain(res, parts[1]);
198
198
  const state = indexer.getProject(parts[2]);
199
199
  if (!state)
200
- return sendJson(res, 404, { error: 'unknown project' });
200
+ return unknownProject(res);
201
201
  res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' });
202
202
  res.end(renderDashboard(state, baseUrl, SERVER_CHAIN_ID));
203
203
  return;
@@ -230,10 +230,10 @@ async function route(req, res, indexer, baseUrl, storage) {
230
230
  return wrongChain(res, parts[1]);
231
231
  const state = indexer.getProject(parts[2]);
232
232
  if (!state)
233
- return sendJson(res, 404, { error: 'unknown project' });
233
+ return unknownProject(res);
234
234
  const token = resolveTokenView(state, parts[3]);
235
235
  if (!token)
236
- return sendJson(res, 404, { error: 'unknown token' });
236
+ return sendError(res, 404, 'not_registered', 'unknown token — not minted, and outside this project\'s supply cap');
237
237
  const view = await resolveLiveView(chainClient, state, token);
238
238
  if (!view)
239
239
  return sendJson(res, 404, { error: 'no live view — not a code project' });
@@ -274,7 +274,7 @@ async function route(req, res, indexer, baseUrl, storage) {
274
274
  return wrongChain(res, parts[2]);
275
275
  const state = indexer.getProject(parts[3]);
276
276
  if (!state)
277
- return sendJson(res, 404, { error: 'unknown project' });
277
+ return unknownProject(res);
278
278
  return sendJson(res, 200, await depStatusReport(chainClient, state));
279
279
  }
280
280
  if (parts[1] === 'project' && parts[2]) {
@@ -295,16 +295,18 @@ async function route(req, res, indexer, baseUrl, storage) {
295
295
  if (parts[3] === 'effects') {
296
296
  const state = indexer.getProject(address);
297
297
  if (!state)
298
- return sendJson(res, 404, { error: 'unknown project' });
298
+ return unknownProject(res);
299
299
  return sendJson(res, 200, await effectStatusReport(indexer, state, storage));
300
300
  }
301
301
  // GET /api/project/:addr
302
302
  const state = indexer.getProject(address);
303
303
  if (!state)
304
- return sendJson(res, 404, { error: 'unknown project' });
304
+ return unknownProject(res);
305
305
  return sendJson(res, 200, state);
306
306
  }
307
- return sendJson(res, 404, { error: 'unknown api route' });
307
+ return sendError(res, 404, 'unknown_route', 'unknown api route', {
308
+ routes: ['/api/projects', '/api/watch', '/api/project/:address', '/api/project/:address/effects', '/api/project/:address/verify', '/api/deps/:chainId/:address'],
309
+ });
308
310
  }
309
311
  // GET /t/:chainId/:addr/:id and /t/:chainId/:addr/:id/image
310
312
  if (parts[0] === 't' && parts[1] && parts[2] && parts[3] !== undefined) {
@@ -314,12 +316,12 @@ async function route(req, res, indexer, baseUrl, storage) {
314
316
  const tokenId = parts[3];
315
317
  const state = indexer.getProject(address);
316
318
  if (!state)
317
- return sendJson(res, 404, { error: 'unknown project' });
319
+ return unknownProject(res);
318
320
  // Resolve the issuance token → its metadata-id slot (identity vs. content), synthesizing a
319
321
  // pre-mint view for a not-yet-issued id within the cap so metadata warms before mint.
320
322
  const token = resolveTokenView(state, tokenId);
321
323
  if (!token)
322
- return sendJson(res, 404, { error: 'unknown token' });
324
+ return sendError(res, 404, 'not_registered', 'unknown token — not minted, and outside this project\'s supply cap');
323
325
  if (parts[4] === 'image') {
324
326
  // the render-effect seam: no explicit image field + a code project ⇒ serve the
325
327
  // artifact stored at the CURRENT inputsHash address, when a producer has run.
@@ -384,13 +386,49 @@ async function route(req, res, indexer, baseUrl, storage) {
384
386
  const address = parts[2];
385
387
  const state = indexer.getProject(address);
386
388
  if (!state)
387
- return sendJson(res, 404, { error: 'unknown project' });
389
+ return unknownProject(res);
388
390
  if (parts[3] === 'data' && parts[4]) {
389
391
  return serveFieldArtifact(res, state, null, parts[4], storage, displayMeta(indexer, address));
390
392
  }
391
393
  return sendJson(res, 200, await buildContractMetadata(chainClient, state, baseUrl, SERVER_CHAIN_ID, displayMeta(indexer, address), storage));
392
394
  }
393
- sendJson(res, 404, { error: 'not found' });
395
+ return sendRouteError(res, parts);
396
+ }
397
+ /**
398
+ * The last word of the router: nothing matched. A BARE 404 here is actively misleading — it's the
399
+ * same answer as "this project isn't indexed", so a client that hand-built a URL (dropping the
400
+ * `:id` off `/t/:chainId/:address/:id` and expecting collection metadata is the observed case)
401
+ * reads its own mistake as a service outage and reports a non-bug.
402
+ *
403
+ * So: a KNOWN route prefix with the wrong segment count is a **400 `invalid_request`** naming the
404
+ * correct template, and anything else is a **404 `unknown_route`**. Same `{error, code}` shape the
405
+ * control plane already uses (remote-services.md → Errors), so clients key off `code`, not prose.
406
+ *
407
+ * These are hints, not a discoverable API: the route grammar is fixed by the `abx-token-api/v1`
408
+ * interface and committed on-chain per contract (`tokenURIBase`/`contractURIBase`). The real fix for
409
+ * a client is to read the URL off the contract (`abx tokenuri` / `abx contracturi`) rather than
410
+ * assembling one — so every hint below points at the grammar it should already have, and never
411
+ * invites a client to treat routes as per-node negotiable.
412
+ */
413
+ const ROUTE_TEMPLATES = {
414
+ t: { template: '/t/:chainId/:address/:id (· /image · /data/:field)', what: 'ERC-721 token metadata' },
415
+ c: { template: '/c/:chainId/:address (· /data/:field)', what: 'ERC-7572 collection metadata' },
416
+ a: { template: '/a/:chainId/:address/:id', what: 'the live view of a code project' },
417
+ d: { template: '/d/:chainId/:address', what: 'the per-contract read-only dashboard' },
418
+ };
419
+ function sendRouteError(res, parts) {
420
+ const known = parts[0] ? ROUTE_TEMPLATES[parts[0]] : undefined;
421
+ if (known) {
422
+ // The single highest-value hint: a `/t/:chainId/:address` with no token id is almost always
423
+ // someone reaching for collection metadata. Name `/c/…` explicitly.
424
+ const missingId = (parts[0] === 't' || parts[0] === 'a') && parts.length === 3;
425
+ return sendError(res, 400, 'invalid_request', `malformed ${known.what} path — use ${known.template}` +
426
+ (missingId ? '. For COLLECTION-level metadata (no token id) use /c/:chainId/:address' : ''), { route: known.template, ...(missingId ? { didYouMean: `/c/${parts[1]}/${parts[2]}` } : {}) });
427
+ }
428
+ return sendError(res, 404, 'unknown_route', 'this node serves no route at that path', {
429
+ routes: Object.values(ROUTE_TEMPLATES).map((r) => r.template.split(' ')[0]),
430
+ hint: 'a contract commits its own metadata URL on-chain (tokenURIBase/contractURIBase) — read it with `abx tokenuri` / `abx contracturi` instead of building a path',
431
+ });
394
432
  }
395
433
  /** The manifest's read surface over the effect-artifact registry (metadata.ts stays store-free). */
396
434
  function planeAccess(indexer) {
@@ -635,8 +673,26 @@ function watchStatusReport(indexer) {
635
673
  chains,
636
674
  };
637
675
  }
638
- /** 404 for a path whose chainId segment isn't the chain this resolver serves. */
676
+ /**
677
+ * The path was well-formed and on the right chain — this node just doesn't index that contract.
678
+ * Code `not_registered` (the control plane's own code for the same condition) so a client can tell
679
+ * it apart from a malformed path (400 `invalid_request`) and a nonexistent route (404
680
+ * `unknown_route`). Those three used to be one indistinguishable `{error: '…'}` 404.
681
+ */
682
+ function unknownProject(res) {
683
+ sendError(res, 404, 'not_registered', 'this node does not index that contract', {
684
+ hint: 'register it with `abx add <address> --remote <name|url>` (bearer-gated control plane), then `abx index <address> --remote`',
685
+ });
686
+ }
687
+ /**
688
+ * A path whose chainId segment isn't the chain this resolver serves. **400 `unsupported_chain`**,
689
+ * matching the control plane's `checkChain` exactly (control-plane.ts) — it's a request error, not a
690
+ * missing resource, and answering 404 made it indistinguishable from "that project isn't indexed
691
+ * here", which sent at least one client hunting a phantom outage. `chains` says what IS served.
692
+ */
639
693
  function wrongChain(res, got) {
640
- sendJson(res, 404, { error: `this resolver serves chain ${SERVER_CHAIN_ID}, not ${got}` });
694
+ sendError(res, 400, 'unsupported_chain', `this resolver serves chain ${SERVER_CHAIN_ID}, not ${got}`, {
695
+ chains: [SERVER_CHAIN_ID],
696
+ });
641
697
  }
642
698
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,CAAC,CAAC;IACxE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAWD,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,wBAAgB,eAAe,IAAI,MAAM,CAKxC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAWxE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG;IAAC,IAAI,IAAI,IAAI,CAAC;IAAC,MAAM,IAAI,aAAa,CAAA;CAAC,CAiJ/F"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC,CAAC,CAAC;IACxE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAkDD,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,wBAAgB,eAAe,IAAI,MAAM,CAKxC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAWxE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG;IAAC,IAAI,IAAI,IAAI,CAAC;IAAC,MAAM,IAAI,aAAa,CAAA;CAAC,CAuO/F"}
package/dist/watcher.js CHANGED
@@ -1,9 +1,48 @@
1
1
  import { parseEventLogs } from 'viem';
2
- import { spineEventAbi } from '@artblocks/abx-sdk';
2
+ import { classifyIndexError, spineEventAbi } from '@artblocks/abx-sdk';
3
3
  /** Largest block window one tick will scan; a longer gap (resolver was down) continues next tick. */
4
4
  const MAX_BLOCKS_PER_TICK = 5000n;
5
5
  /** Consecutive-failure backoff cap (multiplier on the base interval). */
6
6
  const MAX_BACKOFF = 8;
7
+ /**
8
+ * How far behind head the watcher may fall before the projects it tracks are reported `stale`
9
+ * (still serving, but honestly not tracking head — see the lifecycle in
10
+ * specs/self-host-toolkit/remote-services.md).
11
+ *
12
+ * Measured against the WATCHER'S WATERMARK, never a project's own `toBlock`: the watermark advances
13
+ * every tick, while a quiet project's `toBlock` only moves when it has events — so lag-by-`toBlock`
14
+ * would slowly mark every idle project stale, which is exactly wrong.
15
+ */
16
+ const DEFAULT_STALE_LAG_BLOCKS = 5000n;
17
+ /** How many queued/retryable projects one tick will pick up (bounded so a burst of registrations
18
+ * can't monopolize a tick — the rest come next tick). */
19
+ const DRAIN_PER_TICK = 2;
20
+ /** Consecutive tick failures before the tracked projects are reported `stale`. One failed tick is
21
+ * weather; two in a row is a condition worth surfacing. */
22
+ const FAILURES_BEFORE_STALE = 2;
23
+ function staleLagBlocks() {
24
+ const raw = process.env.ABX_STALE_LAG_BLOCKS;
25
+ if (raw === undefined || raw === '')
26
+ return DEFAULT_STALE_LAG_BLOCKS;
27
+ try {
28
+ const n = BigInt(raw);
29
+ return n > 0n ? n : DEFAULT_STALE_LAG_BLOCKS;
30
+ }
31
+ catch {
32
+ return DEFAULT_STALE_LAG_BLOCKS;
33
+ }
34
+ }
35
+ /**
36
+ * A `failed` project is retried with exponential backoff off its attempt count — the point of
37
+ * recording `attempts` at all. Without this a rate-limited RPC gets hammered every tick, which is how
38
+ * a transient throttle becomes a permanent one.
39
+ */
40
+ function dueForRetry(row, baseMs, now) {
41
+ if (!row.lastAttemptAt)
42
+ return true;
43
+ const wait = Math.min(baseMs * 2 ** Math.min(row.attempts, 8), 15 * 60_000);
44
+ return now - new Date(row.lastAttemptAt).getTime() >= wait;
45
+ }
7
46
  /** Steady-state proof-of-life cadence: on a quiet stretch (nothing else logged) the watcher emits
8
47
  * ONE "alive" line at most this often, so `tail`ing a resolver shows it's watching, not hung —
9
48
  * without per-tick spam. Deltas and first-run lines reset the clock (they're proof enough). */
@@ -52,6 +91,61 @@ export function startChainWatcher(opts) {
52
91
  let stopped = false;
53
92
  let timer = null;
54
93
  let failures = 0;
94
+ /**
95
+ * Flip the tracked projects between `live` and `stale` — and ONLY those two. A project that is
96
+ * `queued`/`backfilling`/`failed` is mid-lifecycle and owns its own status; overwriting it here
97
+ * would erase a recorded failure class or claim a backfill finished.
98
+ */
99
+ function markLag(addresses, lag, error) {
100
+ for (const addr of addresses) {
101
+ const row = indexer.store.getIndexStatus(addr);
102
+ if (!row)
103
+ continue;
104
+ if (lag === 'behind' && row.status === 'live') {
105
+ indexer.store.setIndexStatus(addr, {
106
+ status: 'stale',
107
+ ...(error ? { error: classifyIndexError(error) } : {}),
108
+ });
109
+ }
110
+ else if (lag === 'caught-up' && row.status === 'stale') {
111
+ indexer.store.setIndexStatus(addr, { status: 'live', error: null });
112
+ }
113
+ }
114
+ }
115
+ /**
116
+ * Pick up projects whose catch-up hasn't happened or didn't finish: a `queued` registration (a
117
+ * register that answered 202 and handed the work here, or one interrupted by a restart) and a
118
+ * `failed` one whose backoff has elapsed. This is what makes a deferred registration eventually
119
+ * become `live` with nobody watching — and what repairs the old silent failure mode where an
120
+ * interrupted `add` left a registered project that only a manual `abx index` would fix.
121
+ */
122
+ async function drainPending() {
123
+ const now = Date.now();
124
+ const pending = indexer.store
125
+ .listIndexStatuses()
126
+ .filter((row) => {
127
+ if (indexer.isCatchingUp(row.address))
128
+ return false;
129
+ if (row.status === 'queued')
130
+ return true;
131
+ return row.status === 'failed' && dueForRetry(row, intervalMs, now);
132
+ })
133
+ .slice(0, DRAIN_PER_TICK);
134
+ for (const row of pending) {
135
+ if (!indexer.store.getRegistration(row.address))
136
+ continue; // deregistered under us
137
+ try {
138
+ const { state, mode } = await indexer.reindexShared(row.address);
139
+ notify(row.address);
140
+ log(`${row.address}: catch-up complete (${mode}, ${state.eventCount} event(s)) → live`);
141
+ }
142
+ catch (err) {
143
+ // reindex() already recorded status + the credential-free class; one project's failure must
144
+ // not abort the tick (or hold the whole chain's watermark).
145
+ log(`${row.address}: catch-up failed (${classifyIndexError(err).class}) — will retry with backoff`);
146
+ }
147
+ }
148
+ }
55
149
  async function tick() {
56
150
  const regs = indexer.store.listRegistrations();
57
151
  if (regs.length === 0)
@@ -81,6 +175,10 @@ export function startChainWatcher(opts) {
81
175
  continue;
82
176
  }
83
177
  const watermark = BigInt(stored);
178
+ // Honest lag: the watcher itself is behind head (a restart after downtime, a slow/failing RPC).
179
+ // Projects still serve their last-known state — that's what `stale` means, as opposed to
180
+ // `failed`. Cleared as soon as the watermark catches back up.
181
+ markLag(addresses, head - watermark > staleLagBlocks() ? 'behind' : 'caught-up');
84
182
  if (head <= watermark)
85
183
  continue; // no new blocks
86
184
  const from = watermark + 1n;
@@ -102,7 +200,9 @@ export function startChainWatcher(opts) {
102
200
  touched.set(key, list);
103
201
  }
104
202
  for (const [addr, projectLogs] of touched) {
105
- await indexer.reindex(addr); // throws ⇒ watermark holds; same window retries next tick
203
+ // Shared: if a register's backfill for this project is still running, join it rather than
204
+ // starting a rival reconstruct. Throws ⇒ watermark holds; same window retries next tick.
205
+ await indexer.reindexShared(addr);
106
206
  const hint = tokenHint(projectLogs);
107
207
  notify(addr, hint);
108
208
  log(`${chainKey}: ${addr} changed (${projectLogs.length} log(s), blocks ${from}–${to}) → notified effects${hint ? ` [tokens ${hint.join(',')}]` : ' [all]'}`);
@@ -113,6 +213,11 @@ export function startChainWatcher(opts) {
113
213
  indexer.store.putMeta(metaKey, to.toString());
114
214
  status.chains[chainKey].watermark = to.toString();
115
215
  }
216
+ // AFTER the delta lane, deliberately: a project the delta scan just reindexed needs nothing more,
217
+ // and draining first would duplicate that work (and its notification) in the same tick. What's
218
+ // left here is what the delta lane can't fix — a deferred registration, an interrupted backfill,
219
+ // a catch-up that failed with no pending window to retry it.
220
+ await drainPending();
116
221
  // Tick completed. Record it (proof-of-life for the API) and, if we've been quiet a while, emit
117
222
  // one heartbeat so a human tailing the resolver sees the watcher is alive between changes.
118
223
  indexer.store.putMeta('watch:pollAt', new Date().toISOString());
@@ -160,11 +265,29 @@ export function startChainWatcher(opts) {
160
265
  catch (err) {
161
266
  failures = Math.min(failures + 1, MAX_BACKOFF);
162
267
  status.lastError = err.message;
268
+ // Repeated tick failures mean this node is no longer tracking head for anything — say so on
269
+ // the projects themselves, so `abx status` / a provider's status route shows it. Until this,
270
+ // a watcher that had been failing for an hour was visible only in the node's own log.
271
+ if (failures >= FAILURES_BEFORE_STALE) {
272
+ markLag(indexer.store.listRegistrations().map((r) => r.address), 'behind', err);
273
+ }
163
274
  log(`tick failed (retry with backoff): ${err.message}`);
164
275
  }
165
276
  loop();
166
277
  }, intervalMs * Math.max(1, failures)); // linear backoff up to MAX_BACKOFF× on repeated failure
167
278
  }
279
+ // A `backfilling` row at startup belonged to a process that is gone (the catch-up ran in-process
280
+ // and died with it), so nothing would ever finish it. Reset to `queued` and let drainPending pick
281
+ // it up — the repair for an `add` interrupted by a restart or a deploy.
282
+ for (const row of indexer.store.listIndexStatuses()) {
283
+ // …unless a catch-up for it is running in THIS process: `abx serve` starts the watcher after the
284
+ // server is already accepting registers, so a backfill that began moments ago is still alive and
285
+ // owns its own status.
286
+ if (row.status === 'backfilling' && !indexer.isCatchingUp(row.address)) {
287
+ indexer.store.setIndexStatus(row.address, { status: 'queued' });
288
+ log(`${row.address}: backfill was interrupted — re-queued`);
289
+ }
290
+ }
168
291
  loop();
169
292
  return {
170
293
  stop() {
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artblocks/abx-token-api",
3
- "version": "0.1.0-alpha.5",
3
+ "version": "0.1.0-alpha.7",
4
4
  "license": "MIT",
5
5
  "description": "ABX Self-Host Toolkit (Layer 3) — the reference token API + byte-custody server. Serves standard ERC-721 metadata, the image, a JSON state API, and a demo dashboard, all from the reconstructed projection.",
6
6
  "type": "module",
@@ -39,9 +39,9 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "viem": "^2.21.0",
42
- "@artblocks/abx-sdk": "0.1.0-alpha.2",
43
- "@artblocks/abx-indexer": "0.1.0-alpha.3",
44
- "@artblocks/abx-storage": "0.1.0-alpha.2"
42
+ "@artblocks/abx-sdk": "0.1.0-alpha.4",
43
+ "@artblocks/abx-indexer": "0.1.0-alpha.5",
44
+ "@artblocks/abx-storage": "0.1.0-alpha.4"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsc -b tsconfig.build.json"