pixivflow 2.19.1 → 2.19.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/commands/ExecuteSlotCommand.js +1 -1
  2. package/dist/commands/SchedulerCommand.js +3 -1
  3. package/dist/commands/SchedulerRunOnceCommand.js +1 -1
  4. package/dist/commands/scheduler-runtime.d.ts +31 -2
  5. package/dist/commands/scheduler-runtime.js +63 -9
  6. package/dist/delivery/DeliveryLedgerPort.d.ts +14 -0
  7. package/dist/delivery/DeliveryLedgerPort.js +43 -0
  8. package/dist/delivery/OutboxWorker.d.ts +2 -0
  9. package/dist/delivery/OutboxWorker.js +25 -13
  10. package/dist/delivery/errorClass.d.ts +1 -1
  11. package/dist/delivery/errorClass.js +7 -0
  12. package/dist/download/DownloadManager.d.ts +5 -0
  13. package/dist/download/DownloadManager.js +12 -2
  14. package/dist/download/handlers/IllustrationTargetHandler.d.ts +27 -1
  15. package/dist/download/handlers/IllustrationTargetHandler.js +105 -7
  16. package/dist/download/handlers/NovelTargetHandler.d.ts +27 -1
  17. package/dist/download/handlers/NovelTargetHandler.js +107 -3
  18. package/dist/notification/NotificationPolicy.d.ts +11 -0
  19. package/dist/notification/NotificationPolicy.js +22 -5
  20. package/dist/package.json +1 -1
  21. package/dist/pixiv-client/TargetSearchRunner.js +24 -8
  22. package/dist/scheduler/SlotCoordinator.d.ts +74 -1
  23. package/dist/scheduler/SlotCoordinator.js +108 -1
  24. package/dist/scheduler/WorkIdentity.d.ts +49 -0
  25. package/dist/scheduler/WorkIdentity.js +31 -0
  26. package/dist/storage/repositories/DeliveryRepository.d.ts +9 -0
  27. package/dist/storage/repositories/DeliveryRepository.js +16 -0
  28. package/dist/storage/repositories/OutboxRepository.d.ts +15 -0
  29. package/dist/storage/repositories/OutboxRepository.js +31 -0
  30. package/dist/storage/repositories/SlotRepository.d.ts +27 -0
  31. package/dist/storage/repositories/SlotRepository.js +45 -0
  32. package/dist/topic/TopicPipeline.js +4 -0
  33. package/dist/utils/errors.d.ts +9 -0
  34. package/dist/utils/errors.js +14 -1
  35. package/dist/version.js +1 -1
  36. package/dist/webui/package.json +1 -1
  37. package/node_modules/@redtidev/pixiv-client/dist/transport/transport.d.ts +9 -0
  38. package/node_modules/@redtidev/pixiv-client/dist/transport/transport.d.ts.map +1 -1
  39. package/node_modules/@redtidev/pixiv-client/dist/transport/transport.js +66 -14
  40. package/node_modules/@redtidev/pixiv-client/dist/transport/transport.js.map +1 -1
  41. package/node_modules/@redtidev/pixiv-client/src/transport/__tests__/transport-cancellation.test.ts +257 -0
  42. package/node_modules/@redtidev/pixiv-client/src/transport/transport.ts +81 -18
  43. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSingleWorkCell = isSingleWorkCell;
4
+ /**
5
+ * True when one cell of this target selects at most ONE work per run — the only
6
+ * shape the (slotId, targetId) -> workId invariant can hold for.
7
+ *
8
+ * A target that intentionally pulls N works per run (limit > 1, a novel series,
9
+ * a user feed) owns N works inside a single cell, so pinning that cell to one
10
+ * locked id on resume would silently shrink the run to a single work. Those keep
11
+ * per-run candidate selection; the work-identity contract covers single-work
12
+ * cells, which is what a scheduled "one post per slot" target is.
13
+ */
14
+ function isSingleWorkCell(target) {
15
+ // An explicit limit is the operator's own answer to "how many per run?".
16
+ if (typeof target.limit === 'number' && target.limit > 0)
17
+ return target.limit === 1;
18
+ // Pinned single-work targets.
19
+ if (target.type === 'novel' && target.novelId !== undefined && target.novelId !== null)
20
+ return true;
21
+ if (target.type !== 'novel' && target.illustId)
22
+ return true;
23
+ // N-work containers never collapse into a single identity.
24
+ if (target.userId)
25
+ return false;
26
+ if (target.type === 'novel' && target.seriesId)
27
+ return false;
28
+ // Search/ranking default to ten works per run; a topic run defaults to one.
29
+ return target.mode === 'topic';
30
+ }
31
+ //# sourceMappingURL=WorkIdentity.js.map
@@ -43,6 +43,15 @@ export declare class DeliveryRepository extends BaseRepository {
43
43
  };
44
44
  getById(id: string): DeliveryRow | null;
45
45
  getByIdempotencyKey(key: string): DeliveryRow | null;
46
+ /**
47
+ * Every delivery intent this ledger recorded for ONE slot cell, oldest first.
48
+ *
49
+ * Scoped by (slot_id, target_id) on purpose: the dedup key above is per WORK,
50
+ * so it structurally cannot answer "does this logical item still owe a
51
+ * delivery?" — which is the question crash recovery has to ask before it is
52
+ * allowed to re-run selection for a `delivery_pending` cell.
53
+ */
54
+ listForCell(deliveryTarget: string, slotId: string, targetId: string): DeliveryRow[];
46
55
  /**
47
56
  * True when this exact work is already CONFIRMED (delivered, or an attested
48
57
  * historical duplicate) for this target. Pending/failed intents do not block
@@ -39,6 +39,22 @@ class DeliveryRepository extends BaseRepository_1.BaseRepository {
39
39
  const row = this.db.prepare(`SELECT * FROM deliveries WHERE idempotency_key = ?`).get(key);
40
40
  return row ? this.toRow(row) : null;
41
41
  }
42
+ /**
43
+ * Every delivery intent this ledger recorded for ONE slot cell, oldest first.
44
+ *
45
+ * Scoped by (slot_id, target_id) on purpose: the dedup key above is per WORK,
46
+ * so it structurally cannot answer "does this logical item still owe a
47
+ * delivery?" — which is the question crash recovery has to ask before it is
48
+ * allowed to re-run selection for a `delivery_pending` cell.
49
+ */
50
+ listForCell(deliveryTarget, slotId, targetId) {
51
+ const rows = this.db
52
+ .prepare(`SELECT * FROM deliveries
53
+ WHERE delivery_target = ? AND slot_id = ? AND target_id = ?
54
+ ORDER BY created_at ASC`)
55
+ .all(deliveryTarget, slotId, targetId);
56
+ return rows.map((r) => this.toRow(r));
57
+ }
42
58
  /**
43
59
  * True when this exact work is already CONFIRMED (delivered, or an attested
44
60
  * historical duplicate) for this target. Pending/failed intents do not block
@@ -72,6 +72,15 @@ export declare class OutboxRepository extends BaseRepository {
72
72
  enqueue(input: NewOutboxItem, now?: number): OutboxRow;
73
73
  get(id: string): OutboxRow | null;
74
74
  getByKey(kind: OutboxKind, key: string): OutboxRow | null;
75
+ /**
76
+ * True when this delivery intent still has a row the worker can act on
77
+ * (pending / claimed / waiting to retry).
78
+ *
79
+ * This is the "the outbox still owns it" test. A delivery whose outbox row is
80
+ * done/dead/cancelled is NOT actionable: whatever happened downstream is
81
+ * terminal, so nobody is going to converge that delivery by retrying it.
82
+ */
83
+ hasActionableDelivery(deliveryId: string): boolean;
75
84
  list(status?: OutboxStatus, limit?: number): OutboxRow[];
76
85
  /**
77
86
  * Claim up to `limit` due rows for `owner`. Due = pending/retry_wait whose
@@ -81,6 +90,12 @@ export declare class OutboxRepository extends BaseRepository {
81
90
  */
82
91
  claimDue(owner: string, leaseMs: number, limit: number, now?: number): OutboxRow[];
83
92
  markDone(id: string, now?: number): void;
93
+ /**
94
+ * Dead-letter a row whose failure cannot be fixed by retrying — a local
95
+ * configuration error is re-read identically on every attempt, so scheduling
96
+ * retries would only keep the row in `retry_wait` until the budget runs out.
97
+ */
98
+ markDead(id: string, error: string, now?: number): void;
84
99
  /** Schedule a later retry, or flip to dead once attempts are exhausted. */
85
100
  markRetry(id: string, nextAt: number, error: string, now?: number): OutboxStatus;
86
101
  /** Release a processing row back to pending without counting a retry. */
@@ -53,6 +53,23 @@ class OutboxRepository extends BaseRepository_1.BaseRepository {
53
53
  .get(kind, key);
54
54
  return row ? this.toRow(row) : null;
55
55
  }
56
+ /**
57
+ * True when this delivery intent still has a row the worker can act on
58
+ * (pending / claimed / waiting to retry).
59
+ *
60
+ * This is the "the outbox still owns it" test. A delivery whose outbox row is
61
+ * done/dead/cancelled is NOT actionable: whatever happened downstream is
62
+ * terminal, so nobody is going to converge that delivery by retrying it.
63
+ */
64
+ hasActionableDelivery(deliveryId) {
65
+ const row = this.db
66
+ .prepare(`SELECT 1 FROM outbox
67
+ WHERE delivery_id = ? AND kind = 'delivery'
68
+ AND status IN ('pending','processing','retry_wait')
69
+ LIMIT 1`)
70
+ .get(deliveryId);
71
+ return Boolean(row);
72
+ }
56
73
  list(status, limit = 100) {
57
74
  const bounded = Math.max(1, Math.min(Math.trunc(limit), 500));
58
75
  const rows = status
@@ -103,6 +120,20 @@ class OutboxRepository extends BaseRepository_1.BaseRepository {
103
120
  WHERE id=@id`)
104
121
  .run({ id, now });
105
122
  }
123
+ /**
124
+ * Dead-letter a row whose failure cannot be fixed by retrying — a local
125
+ * configuration error is re-read identically on every attempt, so scheduling
126
+ * retries would only keep the row in `retry_wait` until the budget runs out.
127
+ */
128
+ markDead(id, error, now = Date.now()) {
129
+ this.db
130
+ .prepare(`UPDATE outbox
131
+ SET attempts=attempts+1, status='dead',
132
+ lease_owner=NULL, lease_until=NULL,
133
+ last_error=@error, updated_at=@now
134
+ WHERE id=@id`)
135
+ .run({ id, error: error.slice(0, 1000), now });
136
+ }
106
137
  /** Schedule a later retry, or flip to dead once attempts are exhausted. */
107
138
  markRetry(id, nextAt, error, now = Date.now()) {
108
139
  const row = this.get(id);
@@ -92,6 +92,33 @@ export declare class SlotRepository extends BaseRepository {
92
92
  * candidate replacement is a separate explicit operator action (clearCellWork).
93
93
  */
94
94
  lockCellWork(slotId: string, targetId: string, workId: string, workType: string): SlotItemRecord;
95
+ /**
96
+ * Compare-and-set the cell's work binding, with real concurrency semantics.
97
+ *
98
+ * `lockCellWork` above only stops *this* process from overwriting an existing
99
+ * id (COALESCE); it cannot elect a winner between two callers that both read
100
+ * "no binding". This one can: the write is guarded by `work_id IS NULL OR
101
+ * work_id = @workId`, so if two workers select A and B at the same instant
102
+ * exactly one UPDATE lands. The returned record is authoritative — a losing
103
+ * caller MUST continue with `cell.workId`, never with its own candidate, or
104
+ * the cell would process a work it does not own.
105
+ */
106
+ tryLockCellWork(slotId: string, targetId: string, workId: string, workType: string): {
107
+ cell: SlotItemRecord;
108
+ won: boolean;
109
+ };
110
+ /**
111
+ * Roll back a PROVISIONAL binding taken for a work that produced no local
112
+ * artifact (a candidate that failed while the cell was still unbound).
113
+ *
114
+ * Deliberately narrow: it only clears the row while it still holds exactly
115
+ * `workId` AND is still `selected`. Once the cell moved on (an artifact was
116
+ * persisted -> delivery_pending/submitted/..., or another writer rebound it)
117
+ * the release is refused, so it can never erase a committed work identity.
118
+ * Re-selecting is only ever allowed while nothing was committed — that is what
119
+ * keeps (slotId,targetId) -> workId stable.
120
+ */
121
+ releaseCellWork(slotId: string, targetId: string, workId: string): boolean;
95
122
  /** Explicit operator action: forget the locked work so a re-run picks another candidate. */
96
123
  clearCellWork(slotId: string, targetId: string): void;
97
124
  setCellStatus(slotId: string, targetId: string, status: CellStatus, error?: string): void;
@@ -137,6 +137,51 @@ class SlotRepository extends BaseRepository_1.BaseRepository {
137
137
  .run({ slotId, targetId, workId, workType });
138
138
  return this.getCell(slotId, targetId);
139
139
  }
140
+ /**
141
+ * Compare-and-set the cell's work binding, with real concurrency semantics.
142
+ *
143
+ * `lockCellWork` above only stops *this* process from overwriting an existing
144
+ * id (COALESCE); it cannot elect a winner between two callers that both read
145
+ * "no binding". This one can: the write is guarded by `work_id IS NULL OR
146
+ * work_id = @workId`, so if two workers select A and B at the same instant
147
+ * exactly one UPDATE lands. The returned record is authoritative — a losing
148
+ * caller MUST continue with `cell.workId`, never with its own candidate, or
149
+ * the cell would process a work it does not own.
150
+ */
151
+ tryLockCellWork(slotId, targetId, workId, workType) {
152
+ this.db
153
+ .prepare(`UPDATE schedule_slot_items
154
+ SET work_id = @workId,
155
+ work_type = CASE WHEN work_id IS NULL THEN @workType ELSE work_type END,
156
+ status = CASE WHEN status = 'pending' THEN 'selected' ELSE status END,
157
+ attempt_count = CASE WHEN work_id IS NULL THEN attempt_count + 1 ELSE attempt_count END,
158
+ updated_at = CURRENT_TIMESTAMP
159
+ WHERE slot_id = @slotId AND target_id = @targetId
160
+ AND (work_id IS NULL OR work_id = @workId)`)
161
+ .run({ slotId, targetId, workId, workType });
162
+ const cell = this.getCell(slotId, targetId);
163
+ return { cell, won: cell.workId === workId };
164
+ }
165
+ /**
166
+ * Roll back a PROVISIONAL binding taken for a work that produced no local
167
+ * artifact (a candidate that failed while the cell was still unbound).
168
+ *
169
+ * Deliberately narrow: it only clears the row while it still holds exactly
170
+ * `workId` AND is still `selected`. Once the cell moved on (an artifact was
171
+ * persisted -> delivery_pending/submitted/..., or another writer rebound it)
172
+ * the release is refused, so it can never erase a committed work identity.
173
+ * Re-selecting is only ever allowed while nothing was committed — that is what
174
+ * keeps (slotId,targetId) -> workId stable.
175
+ */
176
+ releaseCellWork(slotId, targetId, workId) {
177
+ const info = this.db
178
+ .prepare(`UPDATE schedule_slot_items
179
+ SET work_id = NULL, status = 'pending', updated_at = CURRENT_TIMESTAMP
180
+ WHERE slot_id = @slotId AND target_id = @targetId
181
+ AND work_id = @workId AND status = 'selected'`)
182
+ .run({ slotId, targetId, workId });
183
+ return info.changes > 0;
184
+ }
140
185
  /** Explicit operator action: forget the locked work so a re-run picks another candidate. */
141
186
  clearCellWork(slotId, targetId) {
142
187
  this.db
@@ -123,6 +123,10 @@ class TopicPipeline {
123
123
  // A cancellation must not be degraded into "no results for this tag": that
124
124
  // would silently continue the cancelled run across the remaining tags.
125
125
  (0, errors_1.rethrowIfCancelled)(error, this.signal);
126
+ // A broken pager contract must not degrade either: reporting "no works
127
+ // today" would hide the failure and let the run claim success.
128
+ if (error instanceof errors_1.PaginationError)
129
+ throw error;
126
130
  logger_1.logger.warn('[TopicCollector] search failed tag=' + tag + ' type=' + contentType + ': ' + (error instanceof Error ? error.message : String(error)));
127
131
  return [];
128
132
  }
@@ -33,6 +33,15 @@ export declare class NetworkError extends PixivFlowError {
33
33
  waitTime?: number;
34
34
  });
35
35
  }
36
+ /**
37
+ * The pagination adapter returned a cursor it had already handed back (the same
38
+ * `next` twice, or a cycle). Re-requesting would repeat the previous page
39
+ * forever, which is exactly the Attempt 2 fallback-day failure, so the pager
40
+ * fails deterministically instead of spinning.
41
+ */
42
+ export declare class PaginationError extends PixivFlowError {
43
+ constructor(message: string, cause?: Error);
44
+ }
36
45
  export declare class DownloadError extends PixivFlowError {
37
46
  readonly itemId?: number | undefined;
38
47
  readonly itemType?: "illustration" | "novel" | undefined;
@@ -4,7 +4,7 @@
4
4
  * Provides consistent error types and handling patterns across the application
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ErrorRecoveryStrategy = exports.HelpRequest = exports.VersionRequest = exports.OperationCancelledError = exports.DatabaseError = exports.PendingDeliveryError = exports.DownloadError = exports.NetworkError = exports.AuthenticationError = exports.ConfigError = exports.PixivFlowError = exports.PixivTimeoutError = exports.PixivRateLimitError = exports.PixivNotFoundError = exports.PixivNetworkError = exports.PixivHttpError = exports.PixivError = void 0;
7
+ exports.ErrorRecoveryStrategy = exports.HelpRequest = exports.VersionRequest = exports.OperationCancelledError = exports.DatabaseError = exports.PendingDeliveryError = exports.DownloadError = exports.PaginationError = exports.NetworkError = exports.AuthenticationError = exports.ConfigError = exports.PixivFlowError = exports.PixivTimeoutError = exports.PixivRateLimitError = exports.PixivNotFoundError = exports.PixivNetworkError = exports.PixivHttpError = exports.PixivError = void 0;
8
8
  exports.isPixivKitError = isPixivKitError;
9
9
  exports.toNetworkError = toNetworkError;
10
10
  exports.isOperationCancelled = isOperationCancelled;
@@ -92,6 +92,19 @@ class NetworkError extends PixivFlowError {
92
92
  }
93
93
  }
94
94
  exports.NetworkError = NetworkError;
95
+ /**
96
+ * The pagination adapter returned a cursor it had already handed back (the same
97
+ * `next` twice, or a cycle). Re-requesting would repeat the previous page
98
+ * forever, which is exactly the Attempt 2 fallback-day failure, so the pager
99
+ * fails deterministically instead of spinning.
100
+ */
101
+ class PaginationError extends PixivFlowError {
102
+ constructor(message, cause) {
103
+ super(message, 'PAGINATION_ERROR', undefined, cause);
104
+ this.name = 'PaginationError';
105
+ }
106
+ }
107
+ exports.PaginationError = PaginationError;
95
108
  class DownloadError extends PixivFlowError {
96
109
  itemId;
97
110
  itemType;
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BUILD = void 0;
4
4
  // GENERATED by scripts/write-version.js — do not edit manually.
5
- exports.BUILD = { version: '2.19.1', commit: '065ad6260150' };
5
+ exports.BUILD = { version: '2.19.3', commit: '699f027bb45a' };
6
6
  //# sourceMappingURL=version.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "pixivflow-webui-backend",
4
- "version": "2.19.1",
4
+ "version": "2.19.3",
5
5
  "description": "PixivFlow WebUI Backend - CommonJS module"
6
6
  }
@@ -59,6 +59,15 @@ export declare class Transport {
59
59
  private maybeTransientRetry;
60
60
  private linearBackoffMs;
61
61
  private waitRetry;
62
+ /**
63
+ * Effective per-attempt signal = the caller's/run cancellation **OR** the
64
+ * per-request timeout, whichever fires first.
65
+ *
66
+ * Both sources must stay armed. A caller signal may not replace the timeout:
67
+ * that would let a single hung socket wait for the whole schedule timeout
68
+ * (the caller only cancels at run level). The timeout may not replace the
69
+ * caller signal either: a cancelled run must not keep its request alive.
70
+ */
62
71
  private withTimeout;
63
72
  private safeText;
64
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAaxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,cAAc,EAEf,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAwBD;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsD;IAE9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;gBAEtD,GAAG,EAAE,eAAe;IAiDhC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASrC,qEAAqE;IAC/D,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK7E,mDAAmD;IAC7C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAInF,gFAAgF;IAC1E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0BxF,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,WAAW;YAKL,gBAAgB;YAuChB,WAAW;YA6BX,aAAa;IAwB3B,sEAAsE;YACxD,UAAU;IAwCxB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;YAoBL,eAAe;YA6Cf,eAAe;IAiD7B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,eAAe;YAIT,SAAS;IAWvB,OAAO,CAAC,WAAW;YAaL,QAAQ;CAOvB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAaxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,cAAc,EAEf,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAyCD;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsD;IAE9E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAa;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyC;gBAEtD,GAAG,EAAE,eAAe;IAiDhC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASrC,qEAAqE;IAC/D,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK7E,mDAAmD;IAC7C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAInF,gFAAgF;IAC1E,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IA0BxF,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,WAAW;YAKL,gBAAgB;YAuChB,WAAW;YA6BX,aAAa;IAwB3B,sEAAsE;YACxD,UAAU;IAwCxB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;YAoBL,eAAe;YA6Cf,eAAe;IA+D7B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,eAAe;YAIT,SAAS;IAgBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;YA+BL,QAAQ;CAOvB"}
@@ -14,6 +14,20 @@ const APP_HEADERS = {
14
14
  'App-OS-Version': '14.6',
15
15
  'App-Version': '7.13.3',
16
16
  };
17
+ /**
18
+ * Marker reason for the per-request timeout abort. `withTimeout()` aborts its
19
+ * own controller with it so the retry path can tell our own timeout apart from
20
+ * a caller/run cancellation: the caller reason is opaque (the downloader passes
21
+ * a plain string) and must not be inspected.
22
+ */
23
+ const TIMEOUT_REASON = '__pixiv_timeout__';
24
+ /** Structural AbortError test: also matches DOMException (not an Error subclass). */
25
+ function isAbortErrorLike(e) {
26
+ return typeof e === 'object' && e !== null && e.name === 'AbortError';
27
+ }
28
+ function isTimeoutReason(e) {
29
+ return e instanceof Error && e.message === TIMEOUT_REASON;
30
+ }
17
31
  function proxyUrl(p) {
18
32
  const protocol = (p.protocol ?? 'http').toLowerCase();
19
33
  const auth = p.username && p.password
@@ -341,17 +355,26 @@ class Transport {
341
355
  if (e instanceof errors_1.PixivAbortError) {
342
356
  return { action: 'throw', error: e };
343
357
  }
344
- // AbortError from fetch/axios: distinguish our own timeout abort from a
345
- // caller-provided signal abort. The internal timeout controller has NO
346
- // external signal, so callerAborted cleanly separates the two cases
347
- // (undici/axios attach different reasons; do not rely on their internals).
348
- if (e instanceof Error && e.name === 'AbortError') {
349
- const reason = e.cause;
350
- const isOurTimeout = !callerAborted ||
351
- (reason instanceof Error && reason.message === '__pixiv_timeout__');
352
- if (isOurTimeout) {
353
- return this.maybeTransientRetry(new errors_1.PixivTimeoutError(`Request timeout after ${this.timeoutMs}ms`, { endpoint: url, cause: e, code: 'timeout' }), attempt, url);
354
- }
358
+ // Tell our own per-request timeout apart from a caller/run cancellation.
359
+ // The abort reason is authoritative, not the error shape:
360
+ // - our timeout aborts with TIMEOUT_REASON; undici rejects the fetch with
361
+ // that reason object directly (so it arrives as a plain Error, NOT an
362
+ // AbortError), while abort-wrapping runtimes expose it via `cause`;
363
+ // - the caller reason is opaque (a plain string from the downloader), so
364
+ // it must be classified from the signal state.
365
+ const abortCause = e?.cause;
366
+ if (isTimeoutReason(e) || isTimeoutReason(abortCause)) {
367
+ return this.maybeTransientRetry(new errors_1.PixivTimeoutError(`Request timeout after ${this.timeoutMs}ms`, { endpoint: url, cause: e, code: 'timeout' }), attempt, url);
368
+ }
369
+ if (isAbortErrorLike(e) && !callerAborted) {
370
+ // An abort we cannot attribute to the caller can only be our own timeout
371
+ // (the only other abort source on this path).
372
+ return this.maybeTransientRetry(new errors_1.PixivTimeoutError(`Request timeout after ${this.timeoutMs}ms`, { endpoint: url, cause: e, code: 'timeout' }), attempt, url);
373
+ }
374
+ if (callerAborted) {
375
+ // Run/scheduler cancellation is terminal by definition and must never be
376
+ // charged to the retry budget (waitRetry would otherwise sit out the
377
+ // back-off before the next attempt noticed the cancel).
355
378
  return { action: 'throw', error: new errors_1.PixivAbortError('Request aborted', { cause: e, endpoint: url }) };
356
379
  }
357
380
  if (e instanceof errors_1.PixivTimeoutError) {
@@ -373,6 +396,11 @@ class Transport {
373
396
  return Math.min(1000 * (attempt + 1), 5000);
374
397
  }
375
398
  async waitRetry(waitMs, signal) {
399
+ // An already-aborted signal never fires 'abort' again, so the sleeper would
400
+ // sit out the entire back-off before the next attempt noticed the cancel.
401
+ if (signal?.aborted) {
402
+ throw new errors_1.PixivAbortError('aborted before retry back-off');
403
+ }
376
404
  if (waitMs <= 0)
377
405
  return;
378
406
  try {
@@ -383,17 +411,41 @@ class Transport {
383
411
  }
384
412
  }
385
413
  // -- helpers ---------------------------------------------------------------
414
+ /**
415
+ * Effective per-attempt signal = the caller's/run cancellation **OR** the
416
+ * per-request timeout, whichever fires first.
417
+ *
418
+ * Both sources must stay armed. A caller signal may not replace the timeout:
419
+ * that would let a single hung socket wait for the whole schedule timeout
420
+ * (the caller only cancels at run level). The timeout may not replace the
421
+ * caller signal either: a cancelled run must not keep its request alive.
422
+ */
386
423
  withTimeout(timeoutMs, external) {
387
- if (external)
388
- return { signal: external, cancel: () => { } };
389
424
  const controller = new AbortController();
390
- const timer = setTimeout(() => controller.abort(new Error('__pixiv_timeout__')), timeoutMs);
425
+ const timer = setTimeout(() => controller.abort(new Error(TIMEOUT_REASON)), timeoutMs);
391
426
  if (typeof timer.unref === 'function')
392
427
  timer.unref();
428
+ if (!external) {
429
+ return {
430
+ signal: controller.signal,
431
+ cancel: () => {
432
+ clearTimeout(timer);
433
+ },
434
+ };
435
+ }
436
+ // Forward the caller reason verbatim so cancellation stays observable.
437
+ const onExternalAbort = () => controller.abort(external.reason);
438
+ if (external.aborted) {
439
+ onExternalAbort();
440
+ }
441
+ else {
442
+ external.addEventListener('abort', onExternalAbort, { once: true });
443
+ }
393
444
  return {
394
445
  signal: controller.signal,
395
446
  cancel: () => {
396
447
  clearTimeout(timer);
448
+ external.removeEventListener('abort', onExternalAbort);
397
449
  },
398
450
  };
399
451
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAoC;AACpC,yDAAoD;AACpD,kDAAkD;AAElD,yCAAwE;AACxE,6CAW0B;AA0B1B,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,MAAM;IACxB,aAAa,EAAE,QAAQ;CACxB,CAAC;AAGF,SAAS,QAAQ,CAAC,CAAe;IAC/B,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ;QACnC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG;QACxE,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,GAAG,QAAQ,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AASD;;;;GAIG;AACH,MAAa,SAAS;IACH,OAAO,CAAS;IAChB,SAAS,CAAU;IACnB,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,KAAK,CAAgB;IACrB,IAAI,CAAsB;IAC1B,IAAI,CAAgB;IACpB,MAAM,CAAa;IACnB,IAAI,CAAoB;IACxB,SAAS,CAAY;IACrB,QAAQ,CAAU;IAClB,OAAO,CAAsD;IAE7D,cAAc,CAAc;IAC5B,aAAa,CAAiB;IAC9B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAElE,YAAY,GAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,OAAO;YACV,GAAG,CAAC,KAAK;gBACT,CAAC,CAAC,EAAU,EAAE,MAAoB,EAAE,EAAE,CACpC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACpC,oEAAoE;oBACpE,uEAAuE;oBACvE,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAClC,MAAM,EAAE,gBAAgB,CACtB,OAAO,EACP,GAAG,EAAE;wBACH,YAAY,CAAC,CAAC,CAAC,CAAC;wBAChB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;oBACtE,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;gBACJ,CAAC,CAAC,CAAC,CAAC;QAER,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QACjC,CAAC;aAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC3E,sEAAsE;gBACtE,MAAM,KAAK,GAAG,IAAI,mCAAe,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBACpG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,GAAG,IAAI,mBAAU,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,EAAW,CAA0B,CAAC;YACzH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAa,CAA0B,CAAC;QACjF,CAAC;IACH,CAAC;IAED,6EAA6E;IAE7E,UAAU,CAAC,SAAiB;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1E,OAAO,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,OAAO,CAAI,SAAiB,EAAE,UAA0B,EAAE;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;IACnC,CAAC;IAED,mDAAmD;IACnD,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,UAA0B,EAAE;QAC/D,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,UAA0B,EAAE;QAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;QAEvF,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;gBACtG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAChC,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/F,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;oBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC;gBACtD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAErE,IAAI,CAAC,SAAiB,EAAE,OAAuB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAClF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7F,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEO,WAAW,CAAC,GAAW,EAAE,OAAuB;QACtD,uEAAuE;QACvE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,OAAuB;QACjE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,CAAC;gBACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;gBACvF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC;gBACjF,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACpD,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;oBAChH,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBAChC,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;oBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC;gBAEtD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAClC,YAAY,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;oBAC9D,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjH,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;oBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC;gBACtD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,WAAW,CACvB,GAAW,EACX,OAAuB,EACvB,YAAqB;QAErB,MAAM,OAAO,GAA2B;YACtC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,4BAA4B;YACrC,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,YAAY,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,CAAC;gBACpD,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpD,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,KAAK;gBAAE,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;QACvD,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACxF,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,OAAuB;QAC9D,MAAM,OAAO,GAA2B;YACtC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,4BAA4B;YACrC,GAAG,OAAO,CAAC,OAAO;SACnB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,KAAK;gBAAE,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,OAAO;YACP,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,IAAiB;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,OAAO,CAAC;YACjD,GAAG;YACH,MAAM,EAAG,IAAI,CAAC,MAAiB,IAAI,KAAK;YACxC,OAAO,EAAE,IAAI,CAAC,OAAiC;YAC/C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;YAChC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;YAC1B,YAAY,EAAE,MAAM;YACpB,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5D,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrG,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,EAAE,EAAE,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG;YACnD,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,EAAE;YAC3E,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;YACtB,WAAW,EAAE,KAAK,IAAI,EAAE;gBACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAc,CAAC,OAAO,CAAC;oBAC5C,GAAG;oBACH,MAAM,EAAG,IAAI,CAAC,MAAiB,IAAI,KAAK;oBACxC,OAAO,EAAE,IAAI,CAAC,OAAiC;oBAC/C,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;oBAChC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;oBAC1B,YAAY,EAAE,aAAa;iBAC5B,CAAC,CAAC;gBACH,OAAO,GAAG,CAAC,IAAmB,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,4EAA4E;IAEpE,cAAc,CAAC,MAAiB,EAAE,GAAW;QACnD,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;IACxG,CAAC;IAEO,WAAW,CAAC,MAAc,EAAE,UAAkB,EAAE,IAAY,EAAE,GAAW;QAC/E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,SAA+B,EAAE,CAAC;QAC5F,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,IAAI,uBAAc,CAAC,mCAAmC,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACzG,KAAK,GAAG;gBACN,OAAO,IAAI,iCAAwB,CAAC,oCAAoC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3F,KAAK,GAAG;gBACN,OAAO,IAAI,4BAAmB,CAAC,iCAAiC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YACnF,KAAK,GAAG;gBACN,OAAO,IAAI,2BAAkB,CAAC,iCAAiC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YAClF,KAAK,GAAG;gBACN,OAAO,IAAI,4BAAmB,CAAC,kCAAkC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YACpF;gBACE,IAAI,MAAM,IAAI,GAAG;oBAAE,OAAO,IAAI,yBAAgB,CAAC,oBAAoB,MAAM,IAAI,UAAU,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3G,OAAO,IAAI,uBAAc,CAAC,oBAAoB,MAAM,IAAI,UAAU,GAAG,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,UAAoD,EACpD,MAAiB,EACjB,GAAW,EACX,OAAe,EACf,KAAc;QAMd,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE/B,IAAI,KAAK,YAAY,iCAAwB,EAAE,CAAC;YAC9C,wCAAwC;YACxC,IAAI,OAAO,KAAK,CAAC,IAAI,IAAA,qBAAa,EAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC5E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,KAAK,YAAY,4BAAmB,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,KAAe,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACzD,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACtD,sEAAsE;YACtE,sEAAsE;YACtE,IAAI,aAAa,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC5G,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,YAAY,yBAAgB,EAAE,CAAC;YACtC,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7E,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC5G,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACrC,CAAC;QAED,8CAA8C;QAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,CAAU,EACV,OAAe,EACf,GAAW,EACX,OAAe,EACf,aAAa,GAAG,KAAK;QAKrB,sEAAsE;QACtE,IAAI,CAAC,YAAY,uBAAc;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,YAAY,8BAAqB;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC7E,IAAI,CAAC,YAAY,wBAAe,EAAE,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACvC,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,oEAAoE;QACpE,2EAA2E;QAC3E,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAClD,MAAM,MAAM,GAAI,CAAyB,CAAC,KAAK,CAAC;YAChD,MAAM,YAAY,GAChB,CAAC,aAAa;gBACd,CAAC,MAAM,YAAY,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,mBAAmB,CAAC,CAAC;YACtE,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,mBAAmB,CAC7B,IAAI,0BAAiB,CAAC,yBAAyB,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAChH,OAAO,EACP,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,wBAAe,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACzG,CAAC;QAED,IAAI,CAAC,YAAY,0BAAiB,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,0BAAiB,CACnC,wBAAwB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACpE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAG,CAAuB,EAAE,IAAI,IAAI,eAAe,EAAE,CACrF,CAAC;QACF,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAEO,mBAAmB,CACzB,KAA8D,EAC9D,OAAe,EACf,GAAW;QAEX,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,MAAoB;QAC1D,IAAI,MAAM,IAAI,CAAC;YAAE,OAAO;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,wBAAe,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,6EAA6E;IAErE,WAAW,CAAC,SAAiB,EAAE,QAAsB;QAC3D,IAAI,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC5F,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,MAAM,EAAE,GAAG,EAAE;gBACX,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAiB;QACtC,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AA9aD,8BA8aC"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"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"}