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.
- package/dist/commands/ExecuteSlotCommand.js +1 -1
- package/dist/commands/SchedulerCommand.js +3 -1
- package/dist/commands/SchedulerRunOnceCommand.js +1 -1
- package/dist/commands/scheduler-runtime.d.ts +31 -2
- package/dist/commands/scheduler-runtime.js +63 -9
- package/dist/delivery/DeliveryLedgerPort.d.ts +14 -0
- package/dist/delivery/DeliveryLedgerPort.js +43 -0
- package/dist/delivery/OutboxWorker.d.ts +2 -0
- package/dist/delivery/OutboxWorker.js +25 -13
- package/dist/delivery/errorClass.d.ts +1 -1
- package/dist/delivery/errorClass.js +7 -0
- package/dist/download/DownloadManager.d.ts +5 -0
- package/dist/download/DownloadManager.js +12 -2
- package/dist/download/handlers/IllustrationTargetHandler.d.ts +27 -1
- package/dist/download/handlers/IllustrationTargetHandler.js +105 -7
- package/dist/download/handlers/NovelTargetHandler.d.ts +27 -1
- package/dist/download/handlers/NovelTargetHandler.js +107 -3
- package/dist/notification/NotificationPolicy.d.ts +11 -0
- package/dist/notification/NotificationPolicy.js +22 -5
- package/dist/package.json +1 -1
- package/dist/pixiv-client/TargetSearchRunner.js +24 -8
- package/dist/scheduler/SlotCoordinator.d.ts +74 -1
- package/dist/scheduler/SlotCoordinator.js +108 -1
- package/dist/scheduler/WorkIdentity.d.ts +49 -0
- package/dist/scheduler/WorkIdentity.js +31 -0
- package/dist/storage/repositories/DeliveryRepository.d.ts +9 -0
- package/dist/storage/repositories/DeliveryRepository.js +16 -0
- package/dist/storage/repositories/OutboxRepository.d.ts +15 -0
- package/dist/storage/repositories/OutboxRepository.js +31 -0
- package/dist/storage/repositories/SlotRepository.d.ts +27 -0
- package/dist/storage/repositories/SlotRepository.js +45 -0
- package/dist/topic/TopicPipeline.js +4 -0
- package/dist/utils/errors.d.ts +9 -0
- package/dist/utils/errors.js +14 -1
- package/dist/version.js +1 -1
- package/dist/webui/package.json +1 -1
- package/node_modules/@redtidev/pixiv-client/dist/transport/transport.d.ts +9 -0
- package/node_modules/@redtidev/pixiv-client/dist/transport/transport.d.ts.map +1 -1
- package/node_modules/@redtidev/pixiv-client/dist/transport/transport.js +66 -14
- package/node_modules/@redtidev/pixiv-client/dist/transport/transport.js.map +1 -1
- package/node_modules/@redtidev/pixiv-client/src/transport/__tests__/transport-cancellation.test.ts +257 -0
- package/node_modules/@redtidev/pixiv-client/src/transport/transport.ts +81 -18
- 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
|
}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -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;
|
package/dist/utils/errors.js
CHANGED
|
@@ -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.
|
|
5
|
+
exports.BUILD = { version: '2.19.3', commit: '699f027bb45a' };
|
|
6
6
|
//# sourceMappingURL=version.js.map
|
package/dist/webui/package.json
CHANGED
|
@@ -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;
|
|
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
|
-
//
|
|
345
|
-
//
|
|
346
|
-
//
|
|
347
|
-
// (
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
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(
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"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"}
|