@moontaiworks/fanbox-dl 1.3.4 → 1.3.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"path-manager.d.ts","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAW;;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAGD,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB;IAMvD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAWpD,GAAG,CAAC,IAAI,EAAE,MAAM;IAOhB,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,mBAAmB,GAAG,OAAO,CAAC;CAM5D"}
1
+ {"version":3,"file":"path-manager.d.ts","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,WAAW;;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAGD,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB;IAMvD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAYpD,GAAG,CAAC,IAAI,EAAE,MAAM;IAOhB,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,mBAAmB,GAAG,OAAO,CAAC;CAO5D"}
@@ -14,6 +14,7 @@ var _PathManager_flatPosts;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.PathManager = void 0;
16
16
  const node_path_1 = require("node:path");
17
+ const INVALID_FILENAME_CHARS = /[<>:"/\\|?*\x00-\x1F]/g;
17
18
  class PathManager {
18
19
  constructor({ flatPosts, rootPath }) {
19
20
  _PathManager_flatPosts.set(this, void 0);
@@ -22,7 +23,8 @@ class PathManager {
22
23
  this.name = (0, node_path_1.basename)(this.path);
23
24
  }
24
25
  asset(index, name, extension) {
25
- const fileName = `${index}-${name}.${extension}`;
26
+ const sanitizedName = name.replace(INVALID_FILENAME_CHARS, "-");
27
+ const fileName = `${index}-${sanitizedName}.${extension}`;
26
28
  if (__classPrivateFieldGet(this, _PathManager_flatPosts, "f")) {
27
29
  const parent = (0, node_path_1.dirname)(this.path);
28
30
  return (0, node_path_1.join)(parent, `${this.name}.${fileName}`);
@@ -40,7 +42,8 @@ class PathManager {
40
42
  }
41
43
  post(post) {
42
44
  const date = post.publishedDatetime.split("T")[0];
43
- const title = `${date}-${post.id}-${post.title}`;
45
+ const sanitizedTitle = post.title.replace(INVALID_FILENAME_CHARS, "-");
46
+ const title = `${date}-${post.id}-${sanitizedTitle}`;
44
47
  return this.dir(title);
45
48
  }
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"path-manager.js","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAA6D;AAS7D,MAAa,WAAW;IAKtB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAsB;QAFvD,yCAAoB;QAGlB,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;QAC9B,uBAAA,IAAI,0BAAc,SAAS,MAAA,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAA,oBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB;QAClD,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QAEjD,IAAI,uBAAA,IAAI,8BAAW,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAA,gBAAI,EAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,WAAW,CAAC;YACrB,SAAS,EAAE,uBAAA,IAAI,8BAAW;YAC1B,QAAQ,EAAE,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAsD;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAEjD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF;AAvCD,kCAuCC"}
1
+ {"version":3,"file":"path-manager.js","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAA6D;AAU7D,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAExD,MAAa,WAAW;IAKtB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAsB;QAFvD,yCAAoB;QAGlB,IAAI,CAAC,IAAI,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,CAAC;QAC9B,uBAAA,IAAI,0BAAc,SAAS,MAAA,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAA,oBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;QAE1D,IAAI,uBAAA,IAAI,8BAAW,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAA,gBAAI,EAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,WAAW,CAAC;YACrB,SAAS,EAAE,uBAAA,IAAI,8BAAW;YAC1B,QAAQ,EAAE,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAA,gBAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAsD;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,cAAc,EAAE,CAAC;QAErD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF;AAzCD,kCAyCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AA4ED,qBAAa,aAAa;;gBAStB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9B,EACE,WAAe,EACf,UAAgB,EAChB,UAAc,EACd,gBAAgB,EAChB,SAAgC,GACjC,GAAE,mBAAwB;IAoBvB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG;CA2C5C"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAqFD,qBAAa,aAAa;;gBAWtB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9B,EACE,WAAiB,EACjB,UAAiB,EACjB,UAAc,EACd,gBAAgB,EAChB,SAAgC,GACjC,GAAE,mBAAwB;IAoBvB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG;CA8F5C"}
@@ -1,86 +1,86 @@
1
1
  "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
2
7
  var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
8
  if (kind === "m") throw new TypeError("Private method is not writable");
4
9
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
10
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
11
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
12
  };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _ConcurrencyLimiter_active, _ConcurrencyLimiter_logger, _ConcurrencyLimiter_queue, _TimeLimiter_availableAt, _TimeLimiter_logger, _RequestWorker_instances, _RequestWorker_concurrencyLimiter, _RequestWorker_logger, _RequestWorker_maxRetries, _RequestWorker_rateLimitPauseMs, _RequestWorker_timeLimiter, _RequestWorker_transport, _RequestWorker_fetch;
13
+ var _ConcurrentLimiter_activeRequests, _ConcurrentLimiter_logger, _TimeRateLimiter_logger, _TimeRateLimiter_nextAvailableAt, _RequestWorker_instances, _RequestWorker_concurrentLimiter, _RequestWorker_logger, _RequestWorker_maxRetries, _RequestWorker_pendingRequests, _RequestWorker_rateLimitPauseMs, _RequestWorker_scheduledPump, _RequestWorker_timeRateLimiter, _RequestWorker_transport, _RequestWorker_fetch, _RequestWorker_pump, _RequestWorker_schedulePump;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RequestWorker = void 0;
16
16
  const http2_js_1 = require("./http2.js");
17
- class ConcurrencyLimiter {
17
+ class ConcurrentLimiter {
18
+ get activeRequests() {
19
+ return __classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f");
20
+ }
18
21
  constructor({ logger }, concurrency) {
19
22
  this.concurrency = concurrency;
20
- _ConcurrencyLimiter_active.set(this, 0);
21
- _ConcurrencyLimiter_logger.set(this, void 0);
22
- _ConcurrencyLimiter_queue.set(this, []);
23
- __classPrivateFieldSet(this, _ConcurrencyLimiter_logger, logger, "f");
24
- __classPrivateFieldGet(this, _ConcurrencyLimiter_logger, "f").trace({ concurrency }, "Initialized ConcurrencyLimiter");
25
- }
26
- async acquire() {
27
- var _a;
28
- if (__classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f") >= this.concurrency) {
29
- __classPrivateFieldGet(this, _ConcurrencyLimiter_logger, "f").trace(`Concurrency limit reached (${__classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f")}/${this.concurrency}), waiting for release.`);
30
- await new Promise((release) => __classPrivateFieldGet(this, _ConcurrencyLimiter_queue, "f").push(release));
31
- }
32
- __classPrivateFieldSet(this, _ConcurrencyLimiter_active, (_a = __classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f"), ++_a), "f");
23
+ _ConcurrentLimiter_activeRequests.set(this, 0);
24
+ _ConcurrentLimiter_logger.set(this, void 0);
25
+ __classPrivateFieldSet(this, _ConcurrentLimiter_logger, logger, "f");
26
+ __classPrivateFieldGet(this, _ConcurrentLimiter_logger, "f").trace(`Initialized ConcurrentLimiter with max ${concurrency} concurrent requests`);
27
+ }
28
+ acquire() {
29
+ if (!this.canAcquire())
30
+ return false;
31
+ __classPrivateFieldSet(this, _ConcurrentLimiter_activeRequests, __classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f") + 1, "f");
32
+ return true;
33
+ }
34
+ canAcquire() {
35
+ if (__classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f") < this.concurrency)
36
+ return true;
37
+ __classPrivateFieldGet(this, _ConcurrentLimiter_logger, "f").trace(`Concurrency limit reached (${__classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f")}/${this.concurrency}), dropping new concurrent request.`);
38
+ return false;
33
39
  }
34
40
  release() {
35
- var _a;
36
- __classPrivateFieldSet(this, _ConcurrencyLimiter_active, (_a = __classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f"), --_a), "f");
37
- if (__classPrivateFieldGet(this, _ConcurrencyLimiter_queue, "f").length > 0) {
38
- const next = __classPrivateFieldGet(this, _ConcurrencyLimiter_queue, "f").shift();
39
- if (next) {
40
- __classPrivateFieldGet(this, _ConcurrencyLimiter_logger, "f").trace(`Concurrency limit released (${__classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f")}/${this.concurrency}), processing next request.`);
41
- next();
42
- }
43
- }
41
+ __classPrivateFieldSet(this, _ConcurrentLimiter_activeRequests, __classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f") - 1, "f");
44
42
  }
45
43
  }
46
- _ConcurrencyLimiter_active = new WeakMap(), _ConcurrencyLimiter_logger = new WeakMap(), _ConcurrencyLimiter_queue = new WeakMap();
47
- class TimeLimiter {
44
+ _ConcurrentLimiter_activeRequests = new WeakMap(), _ConcurrentLimiter_logger = new WeakMap();
45
+ class TimeRateLimiter {
46
+ get nextAvailableAt() {
47
+ return __classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f");
48
+ }
48
49
  constructor({ logger }, intervalMs) {
49
50
  this.intervalMs = intervalMs;
50
- _TimeLimiter_availableAt.set(this, 0);
51
- _TimeLimiter_logger.set(this, void 0);
52
- __classPrivateFieldSet(this, _TimeLimiter_logger, logger, "f");
53
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Initialized TimeLimiter with interval ${intervalMs}ms`);
54
- }
55
- setNextAvailableAt(availableAt) {
56
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Setting next available time to ${new Date(availableAt).toISOString()}.`);
57
- __classPrivateFieldSet(this, _TimeLimiter_availableAt, availableAt, "f");
58
- }
59
- async wait() {
60
- const now = Date.now();
61
- if (__classPrivateFieldGet(this, _TimeLimiter_availableAt, "f") > now) {
62
- const waitMs = __classPrivateFieldGet(this, _TimeLimiter_availableAt, "f") - now;
63
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Waiting for time limiter for ${waitMs}ms, until ${new Date(__classPrivateFieldGet(this, _TimeLimiter_availableAt, "f")).toISOString()}.`);
64
- await sleep(waitMs);
65
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Time limiter continued at ${new Date(__classPrivateFieldGet(this, _TimeLimiter_availableAt, "f")).toISOString()}.`);
66
- }
67
- this.setNextAvailableAt(Date.now() + this.intervalMs);
51
+ _TimeRateLimiter_logger.set(this, void 0);
52
+ _TimeRateLimiter_nextAvailableAt.set(this, 0);
53
+ __classPrivateFieldSet(this, _TimeRateLimiter_logger, logger, "f");
54
+ __classPrivateFieldGet(this, _TimeRateLimiter_logger, "f").trace(`Initialized TimeRateLimiter with interval ${intervalMs}ms`);
55
+ }
56
+ postponeUntil(availableAt) {
57
+ __classPrivateFieldSet(this, _TimeRateLimiter_nextAvailableAt, Math.max(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f"), availableAt), "f");
58
+ __classPrivateFieldGet(this, _TimeRateLimiter_logger, "f").trace(`Setting next available time to ${new Date(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f")).toISOString()}.`);
59
+ }
60
+ reserveNextStart() {
61
+ __classPrivateFieldSet(this, _TimeRateLimiter_nextAvailableAt, Math.max(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f"), Date.now()) + this.intervalMs, "f");
62
+ __classPrivateFieldGet(this, _TimeRateLimiter_logger, "f").trace(`Setting next available time to ${new Date(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f")).toISOString()}.`);
63
+ }
64
+ waitMs() {
65
+ return __classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f") - Date.now();
68
66
  }
69
67
  }
70
- _TimeLimiter_availableAt = new WeakMap(), _TimeLimiter_logger = new WeakMap();
68
+ _TimeRateLimiter_logger = new WeakMap(), _TimeRateLimiter_nextAvailableAt = new WeakMap();
71
69
  class RequestWorker {
72
- constructor({ logger }, { concurrency = 5, intervalMs = 500, maxRetries = 3, rateLimitPauseMs, transport = new http2_js_1.Http2Transport(), } = {}) {
70
+ constructor({ logger }, { concurrency = 100, intervalMs = 1000, maxRetries = 3, rateLimitPauseMs, transport = new http2_js_1.Http2Transport(), } = {}) {
73
71
  _RequestWorker_instances.add(this);
74
- _RequestWorker_concurrencyLimiter.set(this, void 0);
72
+ _RequestWorker_concurrentLimiter.set(this, void 0);
75
73
  _RequestWorker_logger.set(this, void 0);
76
74
  _RequestWorker_maxRetries.set(this, void 0);
75
+ _RequestWorker_pendingRequests.set(this, []);
77
76
  _RequestWorker_rateLimitPauseMs.set(this, void 0);
78
- _RequestWorker_timeLimiter.set(this, void 0);
77
+ _RequestWorker_scheduledPump.set(this, void 0);
78
+ _RequestWorker_timeRateLimiter.set(this, void 0);
79
79
  _RequestWorker_transport.set(this, void 0);
80
80
  __classPrivateFieldSet(this, _RequestWorker_logger, logger, "f");
81
81
  __classPrivateFieldSet(this, _RequestWorker_transport, transport, "f");
82
- __classPrivateFieldSet(this, _RequestWorker_concurrencyLimiter, new ConcurrencyLimiter({ logger }, concurrency), "f");
83
- __classPrivateFieldSet(this, _RequestWorker_timeLimiter, new TimeLimiter({ logger }, intervalMs), "f");
82
+ __classPrivateFieldSet(this, _RequestWorker_concurrentLimiter, new ConcurrentLimiter({ logger }, concurrency), "f");
83
+ __classPrivateFieldSet(this, _RequestWorker_timeRateLimiter, new TimeRateLimiter({ logger }, intervalMs), "f");
84
84
  __classPrivateFieldSet(this, _RequestWorker_maxRetries, maxRetries, "f");
85
85
  __classPrivateFieldSet(this, _RequestWorker_rateLimitPauseMs, rateLimitPauseMs, "f");
86
86
  logger.trace({
@@ -92,16 +92,16 @@ class RequestWorker {
92
92
  }, "Initialized RequestWorker");
93
93
  }
94
94
  async fetch(request) {
95
- await __classPrivateFieldGet(this, _RequestWorker_concurrencyLimiter, "f").acquire();
96
- return __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_fetch).call(this, request).finally(() => {
97
- __classPrivateFieldGet(this, _RequestWorker_concurrencyLimiter, "f").release();
95
+ return new Promise((resolve, reject) => {
96
+ __classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").push({ reject, request, resolve });
97
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Queued request into ${__classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").length} requests with ${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").activeRequests}/${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").concurrency} active requests.`);
98
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_pump).call(this);
98
99
  });
99
100
  }
100
101
  }
101
102
  exports.RequestWorker = RequestWorker;
102
- _RequestWorker_concurrencyLimiter = new WeakMap(), _RequestWorker_logger = new WeakMap(), _RequestWorker_maxRetries = new WeakMap(), _RequestWorker_rateLimitPauseMs = new WeakMap(), _RequestWorker_timeLimiter = new WeakMap(), _RequestWorker_transport = new WeakMap(), _RequestWorker_instances = new WeakSet(), _RequestWorker_fetch = async function _RequestWorker_fetch(request, retryRemains = __classPrivateFieldGet(this, _RequestWorker_maxRetries, "f")) {
103
+ _RequestWorker_concurrentLimiter = new WeakMap(), _RequestWorker_logger = new WeakMap(), _RequestWorker_maxRetries = new WeakMap(), _RequestWorker_pendingRequests = new WeakMap(), _RequestWorker_rateLimitPauseMs = new WeakMap(), _RequestWorker_scheduledPump = new WeakMap(), _RequestWorker_timeRateLimiter = new WeakMap(), _RequestWorker_transport = new WeakMap(), _RequestWorker_instances = new WeakSet(), _RequestWorker_fetch = async function _RequestWorker_fetch(request, retryRemains = __classPrivateFieldGet(this, _RequestWorker_maxRetries, "f")) {
103
104
  __classPrivateFieldGet(this, _RequestWorker_logger, "f").info(`Fetching request with max ${retryRemains} retries to ${request instanceof Request ? request.url : request.toString()}`);
104
- await __classPrivateFieldGet(this, _RequestWorker_timeLimiter, "f").wait();
105
105
  const requestObj = request instanceof Request ? request.clone() : new Request(request);
106
106
  const response = await __classPrivateFieldGet(this, _RequestWorker_transport, "f").fetch(requestObj);
107
107
  if (response.ok)
@@ -110,8 +110,8 @@ _RequestWorker_concurrencyLimiter = new WeakMap(), _RequestWorker_logger = new W
110
110
  const retryAfter = __classPrivateFieldGet(this, _RequestWorker_rateLimitPauseMs, "f") ?? parseRetryAfter(response) ?? 60000;
111
111
  const availableAt = Date.now() + retryAfter;
112
112
  __classPrivateFieldGet(this, _RequestWorker_logger, "f").warn(`Received 429 Too Many Requests. Pausing requests until ${new Date(availableAt).toISOString()}.`);
113
+ __classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").postponeUntil(availableAt);
113
114
  await sleep(retryAfter);
114
- __classPrivateFieldGet(this, _RequestWorker_timeLimiter, "f").setNextAvailableAt(availableAt);
115
115
  }
116
116
  if (retryRemains <= 0) {
117
117
  const url = request instanceof Request ? request.url : request.toString();
@@ -119,6 +119,41 @@ _RequestWorker_concurrencyLimiter = new WeakMap(), _RequestWorker_logger = new W
119
119
  return response;
120
120
  }
121
121
  return __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_fetch).call(this, request, retryRemains - 1);
122
+ }, _RequestWorker_pump = function _RequestWorker_pump() {
123
+ if (__classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").length === 0)
124
+ return;
125
+ if (!__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").canAcquire()) {
126
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Concurrency limit reached (${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").activeRequests}/${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").concurrency}).`);
127
+ return;
128
+ }
129
+ const waitMs = __classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").waitMs();
130
+ if (waitMs > 0) {
131
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_schedulePump).call(this, waitMs);
132
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Waiting for request scheduler for ${waitMs}ms, until ${new Date(__classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").nextAvailableAt).toISOString()}.`);
133
+ return;
134
+ }
135
+ const next = __classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").shift();
136
+ if (!next) {
137
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`No pending requests to process.`);
138
+ return;
139
+ }
140
+ __classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").acquire();
141
+ __classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").reserveNextStart();
142
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Processing queued request with ${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").activeRequests}/${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").concurrency} active requests and ${__classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").length} pending requests.`);
143
+ void __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_fetch).call(this, next.request)
144
+ .then(next.resolve, next.reject)
145
+ .finally(() => {
146
+ __classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").release();
147
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_pump).call(this);
148
+ });
149
+ }, _RequestWorker_schedulePump = function _RequestWorker_schedulePump(waitMs) {
150
+ if (__classPrivateFieldGet(this, _RequestWorker_scheduledPump, "f"))
151
+ return;
152
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Waiting for request scheduler for ${waitMs}ms, until ${new Date(__classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").nextAvailableAt).toISOString()}.`);
153
+ __classPrivateFieldSet(this, _RequestWorker_scheduledPump, setTimeout(() => {
154
+ __classPrivateFieldSet(this, _RequestWorker_scheduledPump, undefined, "f");
155
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_pump).call(this);
156
+ }, waitMs), "f");
122
157
  };
123
158
  function parseRetryAfter(response, now = Date.now()) {
124
159
  const retryAfter = response.headers.get("Retry-After");
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-manager.d.ts","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAW;;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAGD,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB;IAMvD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAWpD,GAAG,CAAC,IAAI,EAAE,MAAM;IAOhB,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,mBAAmB,GAAG,OAAO,CAAC;CAM5D"}
1
+ {"version":3,"file":"path-manager.d.ts","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,UAAU,kBAAkB;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,WAAW;;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;gBAGD,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB;IAMvD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAYpD,GAAG,CAAC,IAAI,EAAE,MAAM;IAOhB,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,mBAAmB,GAAG,OAAO,CAAC;CAO5D"}
@@ -11,6 +11,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
11
11
  };
12
12
  var _PathManager_flatPosts;
13
13
  import { basename, dirname, join, resolve } from "node:path";
14
+ const INVALID_FILENAME_CHARS = /[<>:"/\\|?*\x00-\x1F]/g;
14
15
  export class PathManager {
15
16
  constructor({ flatPosts, rootPath }) {
16
17
  _PathManager_flatPosts.set(this, void 0);
@@ -19,7 +20,8 @@ export class PathManager {
19
20
  this.name = basename(this.path);
20
21
  }
21
22
  asset(index, name, extension) {
22
- const fileName = `${index}-${name}.${extension}`;
23
+ const sanitizedName = name.replace(INVALID_FILENAME_CHARS, "-");
24
+ const fileName = `${index}-${sanitizedName}.${extension}`;
23
25
  if (__classPrivateFieldGet(this, _PathManager_flatPosts, "f")) {
24
26
  const parent = dirname(this.path);
25
27
  return join(parent, `${this.name}.${fileName}`);
@@ -37,7 +39,8 @@ export class PathManager {
37
39
  }
38
40
  post(post) {
39
41
  const date = post.publishedDatetime.split("T")[0];
40
- const title = `${date}-${post.id}-${post.title}`;
42
+ const sanitizedTitle = post.title.replace(INVALID_FILENAME_CHARS, "-");
43
+ const title = `${date}-${post.id}-${sanitizedTitle}`;
41
44
  return this.dir(title);
42
45
  }
43
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"path-manager.js","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAS7D,MAAM,OAAO,WAAW;IAKtB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAsB;QAFvD,yCAAoB;QAGlB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,uBAAA,IAAI,0BAAc,SAAS,MAAA,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB;QAClD,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QAEjD,IAAI,uBAAA,IAAI,8BAAW,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,WAAW,CAAC;YACrB,SAAS,EAAE,uBAAA,IAAI,8BAAW;YAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAsD;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAEjD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"path-manager.js","sourceRoot":"","sources":["../../../../src/downloader/fs/path-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAU7D,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAExD,MAAM,OAAO,WAAW;IAKtB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAsB;QAFvD,yCAAoB;QAGlB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9B,uBAAA,IAAI,0BAAc,SAAS,MAAA,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,IAAY,EAAE,SAAiB;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;QAE1D,IAAI,uBAAA,IAAI,8BAAW,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,WAAW,CAAC;YACrB,SAAS,EAAE,uBAAA,IAAI,8BAAW;YAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;SAChC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAsD;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,cAAc,EAAE,CAAC;QAErD,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AA4ED,qBAAa,aAAa;;gBAStB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9B,EACE,WAAe,EACf,UAAgB,EAChB,UAAc,EACd,gBAAgB,EAChB,SAAgC,GACjC,GAAE,mBAAwB;IAoBvB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG;CA2C5C"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAqFD,qBAAa,aAAa;;gBAWtB,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9B,EACE,WAAiB,EACjB,UAAiB,EACjB,UAAc,EACd,gBAAgB,EAChB,SAAgC,GACjC,GAAE,mBAAwB;IAoBvB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG;CA8F5C"}
@@ -1,83 +1,83 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
1
6
  var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
7
  if (kind === "m") throw new TypeError("Private method is not writable");
3
8
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
10
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
11
  };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _ConcurrencyLimiter_active, _ConcurrencyLimiter_logger, _ConcurrencyLimiter_queue, _TimeLimiter_availableAt, _TimeLimiter_logger, _RequestWorker_instances, _RequestWorker_concurrencyLimiter, _RequestWorker_logger, _RequestWorker_maxRetries, _RequestWorker_rateLimitPauseMs, _RequestWorker_timeLimiter, _RequestWorker_transport, _RequestWorker_fetch;
12
+ var _ConcurrentLimiter_activeRequests, _ConcurrentLimiter_logger, _TimeRateLimiter_logger, _TimeRateLimiter_nextAvailableAt, _RequestWorker_instances, _RequestWorker_concurrentLimiter, _RequestWorker_logger, _RequestWorker_maxRetries, _RequestWorker_pendingRequests, _RequestWorker_rateLimitPauseMs, _RequestWorker_scheduledPump, _RequestWorker_timeRateLimiter, _RequestWorker_transport, _RequestWorker_fetch, _RequestWorker_pump, _RequestWorker_schedulePump;
13
13
  import { Http2Transport } from "./http2.js";
14
- class ConcurrencyLimiter {
14
+ class ConcurrentLimiter {
15
+ get activeRequests() {
16
+ return __classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f");
17
+ }
15
18
  constructor({ logger }, concurrency) {
16
19
  this.concurrency = concurrency;
17
- _ConcurrencyLimiter_active.set(this, 0);
18
- _ConcurrencyLimiter_logger.set(this, void 0);
19
- _ConcurrencyLimiter_queue.set(this, []);
20
- __classPrivateFieldSet(this, _ConcurrencyLimiter_logger, logger, "f");
21
- __classPrivateFieldGet(this, _ConcurrencyLimiter_logger, "f").trace({ concurrency }, "Initialized ConcurrencyLimiter");
22
- }
23
- async acquire() {
24
- var _a;
25
- if (__classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f") >= this.concurrency) {
26
- __classPrivateFieldGet(this, _ConcurrencyLimiter_logger, "f").trace(`Concurrency limit reached (${__classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f")}/${this.concurrency}), waiting for release.`);
27
- await new Promise((release) => __classPrivateFieldGet(this, _ConcurrencyLimiter_queue, "f").push(release));
28
- }
29
- __classPrivateFieldSet(this, _ConcurrencyLimiter_active, (_a = __classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f"), ++_a), "f");
20
+ _ConcurrentLimiter_activeRequests.set(this, 0);
21
+ _ConcurrentLimiter_logger.set(this, void 0);
22
+ __classPrivateFieldSet(this, _ConcurrentLimiter_logger, logger, "f");
23
+ __classPrivateFieldGet(this, _ConcurrentLimiter_logger, "f").trace(`Initialized ConcurrentLimiter with max ${concurrency} concurrent requests`);
24
+ }
25
+ acquire() {
26
+ if (!this.canAcquire())
27
+ return false;
28
+ __classPrivateFieldSet(this, _ConcurrentLimiter_activeRequests, __classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f") + 1, "f");
29
+ return true;
30
+ }
31
+ canAcquire() {
32
+ if (__classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f") < this.concurrency)
33
+ return true;
34
+ __classPrivateFieldGet(this, _ConcurrentLimiter_logger, "f").trace(`Concurrency limit reached (${__classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f")}/${this.concurrency}), dropping new concurrent request.`);
35
+ return false;
30
36
  }
31
37
  release() {
32
- var _a;
33
- __classPrivateFieldSet(this, _ConcurrencyLimiter_active, (_a = __classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f"), --_a), "f");
34
- if (__classPrivateFieldGet(this, _ConcurrencyLimiter_queue, "f").length > 0) {
35
- const next = __classPrivateFieldGet(this, _ConcurrencyLimiter_queue, "f").shift();
36
- if (next) {
37
- __classPrivateFieldGet(this, _ConcurrencyLimiter_logger, "f").trace(`Concurrency limit released (${__classPrivateFieldGet(this, _ConcurrencyLimiter_active, "f")}/${this.concurrency}), processing next request.`);
38
- next();
39
- }
40
- }
38
+ __classPrivateFieldSet(this, _ConcurrentLimiter_activeRequests, __classPrivateFieldGet(this, _ConcurrentLimiter_activeRequests, "f") - 1, "f");
41
39
  }
42
40
  }
43
- _ConcurrencyLimiter_active = new WeakMap(), _ConcurrencyLimiter_logger = new WeakMap(), _ConcurrencyLimiter_queue = new WeakMap();
44
- class TimeLimiter {
41
+ _ConcurrentLimiter_activeRequests = new WeakMap(), _ConcurrentLimiter_logger = new WeakMap();
42
+ class TimeRateLimiter {
43
+ get nextAvailableAt() {
44
+ return __classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f");
45
+ }
45
46
  constructor({ logger }, intervalMs) {
46
47
  this.intervalMs = intervalMs;
47
- _TimeLimiter_availableAt.set(this, 0);
48
- _TimeLimiter_logger.set(this, void 0);
49
- __classPrivateFieldSet(this, _TimeLimiter_logger, logger, "f");
50
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Initialized TimeLimiter with interval ${intervalMs}ms`);
51
- }
52
- setNextAvailableAt(availableAt) {
53
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Setting next available time to ${new Date(availableAt).toISOString()}.`);
54
- __classPrivateFieldSet(this, _TimeLimiter_availableAt, availableAt, "f");
55
- }
56
- async wait() {
57
- const now = Date.now();
58
- if (__classPrivateFieldGet(this, _TimeLimiter_availableAt, "f") > now) {
59
- const waitMs = __classPrivateFieldGet(this, _TimeLimiter_availableAt, "f") - now;
60
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Waiting for time limiter for ${waitMs}ms, until ${new Date(__classPrivateFieldGet(this, _TimeLimiter_availableAt, "f")).toISOString()}.`);
61
- await sleep(waitMs);
62
- __classPrivateFieldGet(this, _TimeLimiter_logger, "f").trace(`Time limiter continued at ${new Date(__classPrivateFieldGet(this, _TimeLimiter_availableAt, "f")).toISOString()}.`);
63
- }
64
- this.setNextAvailableAt(Date.now() + this.intervalMs);
48
+ _TimeRateLimiter_logger.set(this, void 0);
49
+ _TimeRateLimiter_nextAvailableAt.set(this, 0);
50
+ __classPrivateFieldSet(this, _TimeRateLimiter_logger, logger, "f");
51
+ __classPrivateFieldGet(this, _TimeRateLimiter_logger, "f").trace(`Initialized TimeRateLimiter with interval ${intervalMs}ms`);
52
+ }
53
+ postponeUntil(availableAt) {
54
+ __classPrivateFieldSet(this, _TimeRateLimiter_nextAvailableAt, Math.max(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f"), availableAt), "f");
55
+ __classPrivateFieldGet(this, _TimeRateLimiter_logger, "f").trace(`Setting next available time to ${new Date(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f")).toISOString()}.`);
56
+ }
57
+ reserveNextStart() {
58
+ __classPrivateFieldSet(this, _TimeRateLimiter_nextAvailableAt, Math.max(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f"), Date.now()) + this.intervalMs, "f");
59
+ __classPrivateFieldGet(this, _TimeRateLimiter_logger, "f").trace(`Setting next available time to ${new Date(__classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f")).toISOString()}.`);
60
+ }
61
+ waitMs() {
62
+ return __classPrivateFieldGet(this, _TimeRateLimiter_nextAvailableAt, "f") - Date.now();
65
63
  }
66
64
  }
67
- _TimeLimiter_availableAt = new WeakMap(), _TimeLimiter_logger = new WeakMap();
65
+ _TimeRateLimiter_logger = new WeakMap(), _TimeRateLimiter_nextAvailableAt = new WeakMap();
68
66
  export class RequestWorker {
69
- constructor({ logger }, { concurrency = 5, intervalMs = 500, maxRetries = 3, rateLimitPauseMs, transport = new Http2Transport(), } = {}) {
67
+ constructor({ logger }, { concurrency = 100, intervalMs = 1000, maxRetries = 3, rateLimitPauseMs, transport = new Http2Transport(), } = {}) {
70
68
  _RequestWorker_instances.add(this);
71
- _RequestWorker_concurrencyLimiter.set(this, void 0);
69
+ _RequestWorker_concurrentLimiter.set(this, void 0);
72
70
  _RequestWorker_logger.set(this, void 0);
73
71
  _RequestWorker_maxRetries.set(this, void 0);
72
+ _RequestWorker_pendingRequests.set(this, []);
74
73
  _RequestWorker_rateLimitPauseMs.set(this, void 0);
75
- _RequestWorker_timeLimiter.set(this, void 0);
74
+ _RequestWorker_scheduledPump.set(this, void 0);
75
+ _RequestWorker_timeRateLimiter.set(this, void 0);
76
76
  _RequestWorker_transport.set(this, void 0);
77
77
  __classPrivateFieldSet(this, _RequestWorker_logger, logger, "f");
78
78
  __classPrivateFieldSet(this, _RequestWorker_transport, transport, "f");
79
- __classPrivateFieldSet(this, _RequestWorker_concurrencyLimiter, new ConcurrencyLimiter({ logger }, concurrency), "f");
80
- __classPrivateFieldSet(this, _RequestWorker_timeLimiter, new TimeLimiter({ logger }, intervalMs), "f");
79
+ __classPrivateFieldSet(this, _RequestWorker_concurrentLimiter, new ConcurrentLimiter({ logger }, concurrency), "f");
80
+ __classPrivateFieldSet(this, _RequestWorker_timeRateLimiter, new TimeRateLimiter({ logger }, intervalMs), "f");
81
81
  __classPrivateFieldSet(this, _RequestWorker_maxRetries, maxRetries, "f");
82
82
  __classPrivateFieldSet(this, _RequestWorker_rateLimitPauseMs, rateLimitPauseMs, "f");
83
83
  logger.trace({
@@ -89,15 +89,15 @@ export class RequestWorker {
89
89
  }, "Initialized RequestWorker");
90
90
  }
91
91
  async fetch(request) {
92
- await __classPrivateFieldGet(this, _RequestWorker_concurrencyLimiter, "f").acquire();
93
- return __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_fetch).call(this, request).finally(() => {
94
- __classPrivateFieldGet(this, _RequestWorker_concurrencyLimiter, "f").release();
92
+ return new Promise((resolve, reject) => {
93
+ __classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").push({ reject, request, resolve });
94
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Queued request into ${__classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").length} requests with ${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").activeRequests}/${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").concurrency} active requests.`);
95
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_pump).call(this);
95
96
  });
96
97
  }
97
98
  }
98
- _RequestWorker_concurrencyLimiter = new WeakMap(), _RequestWorker_logger = new WeakMap(), _RequestWorker_maxRetries = new WeakMap(), _RequestWorker_rateLimitPauseMs = new WeakMap(), _RequestWorker_timeLimiter = new WeakMap(), _RequestWorker_transport = new WeakMap(), _RequestWorker_instances = new WeakSet(), _RequestWorker_fetch = async function _RequestWorker_fetch(request, retryRemains = __classPrivateFieldGet(this, _RequestWorker_maxRetries, "f")) {
99
+ _RequestWorker_concurrentLimiter = new WeakMap(), _RequestWorker_logger = new WeakMap(), _RequestWorker_maxRetries = new WeakMap(), _RequestWorker_pendingRequests = new WeakMap(), _RequestWorker_rateLimitPauseMs = new WeakMap(), _RequestWorker_scheduledPump = new WeakMap(), _RequestWorker_timeRateLimiter = new WeakMap(), _RequestWorker_transport = new WeakMap(), _RequestWorker_instances = new WeakSet(), _RequestWorker_fetch = async function _RequestWorker_fetch(request, retryRemains = __classPrivateFieldGet(this, _RequestWorker_maxRetries, "f")) {
99
100
  __classPrivateFieldGet(this, _RequestWorker_logger, "f").info(`Fetching request with max ${retryRemains} retries to ${request instanceof Request ? request.url : request.toString()}`);
100
- await __classPrivateFieldGet(this, _RequestWorker_timeLimiter, "f").wait();
101
101
  const requestObj = request instanceof Request ? request.clone() : new Request(request);
102
102
  const response = await __classPrivateFieldGet(this, _RequestWorker_transport, "f").fetch(requestObj);
103
103
  if (response.ok)
@@ -106,8 +106,8 @@ _RequestWorker_concurrencyLimiter = new WeakMap(), _RequestWorker_logger = new W
106
106
  const retryAfter = __classPrivateFieldGet(this, _RequestWorker_rateLimitPauseMs, "f") ?? parseRetryAfter(response) ?? 60000;
107
107
  const availableAt = Date.now() + retryAfter;
108
108
  __classPrivateFieldGet(this, _RequestWorker_logger, "f").warn(`Received 429 Too Many Requests. Pausing requests until ${new Date(availableAt).toISOString()}.`);
109
+ __classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").postponeUntil(availableAt);
109
110
  await sleep(retryAfter);
110
- __classPrivateFieldGet(this, _RequestWorker_timeLimiter, "f").setNextAvailableAt(availableAt);
111
111
  }
112
112
  if (retryRemains <= 0) {
113
113
  const url = request instanceof Request ? request.url : request.toString();
@@ -115,6 +115,41 @@ _RequestWorker_concurrencyLimiter = new WeakMap(), _RequestWorker_logger = new W
115
115
  return response;
116
116
  }
117
117
  return __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_fetch).call(this, request, retryRemains - 1);
118
+ }, _RequestWorker_pump = function _RequestWorker_pump() {
119
+ if (__classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").length === 0)
120
+ return;
121
+ if (!__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").canAcquire()) {
122
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Concurrency limit reached (${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").activeRequests}/${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").concurrency}).`);
123
+ return;
124
+ }
125
+ const waitMs = __classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").waitMs();
126
+ if (waitMs > 0) {
127
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_schedulePump).call(this, waitMs);
128
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Waiting for request scheduler for ${waitMs}ms, until ${new Date(__classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").nextAvailableAt).toISOString()}.`);
129
+ return;
130
+ }
131
+ const next = __classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").shift();
132
+ if (!next) {
133
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`No pending requests to process.`);
134
+ return;
135
+ }
136
+ __classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").acquire();
137
+ __classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").reserveNextStart();
138
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Processing queued request with ${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").activeRequests}/${__classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").concurrency} active requests and ${__classPrivateFieldGet(this, _RequestWorker_pendingRequests, "f").length} pending requests.`);
139
+ void __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_fetch).call(this, next.request)
140
+ .then(next.resolve, next.reject)
141
+ .finally(() => {
142
+ __classPrivateFieldGet(this, _RequestWorker_concurrentLimiter, "f").release();
143
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_pump).call(this);
144
+ });
145
+ }, _RequestWorker_schedulePump = function _RequestWorker_schedulePump(waitMs) {
146
+ if (__classPrivateFieldGet(this, _RequestWorker_scheduledPump, "f"))
147
+ return;
148
+ __classPrivateFieldGet(this, _RequestWorker_logger, "f").trace(`Waiting for request scheduler for ${waitMs}ms, until ${new Date(__classPrivateFieldGet(this, _RequestWorker_timeRateLimiter, "f").nextAvailableAt).toISOString()}.`);
149
+ __classPrivateFieldSet(this, _RequestWorker_scheduledPump, setTimeout(() => {
150
+ __classPrivateFieldSet(this, _RequestWorker_scheduledPump, undefined, "f");
151
+ __classPrivateFieldGet(this, _RequestWorker_instances, "m", _RequestWorker_pump).call(this);
152
+ }, waitMs), "f");
118
153
  };
119
154
  function parseRetryAfter(response, now = Date.now()) {
120
155
  const retryAfter = response.headers.get("Retry-After");
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,OAAO,EAAE,cAAc,EAAsB,MAAM,YAAY,CAAC;AAUhE,MAAM,kBAAkB;IAKtB,YACE,EAAE,MAAM,EAAsB,EACtB,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;QAN7B,qCAAU,CAAC,EAAC;QACZ,6CAAgB;QAChB,oCAAyB,EAAE,EAAC;QAM1B,uBAAA,IAAI,8BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,kCAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,gCAAgC,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,OAAO;;QACX,IAAI,uBAAA,IAAI,kCAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,uBAAA,IAAI,kCAAQ,CAAC,KAAK,CAChB,8BAA8B,uBAAA,IAAI,kCAAQ,IAAI,IAAI,CAAC,WAAW,yBAAyB,CACxF,CAAC;YACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,uBAAA,IAAI,iCAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,yDAAA,CAAE,kEAAY,EAAd,IAAc,CAAA,MAAA,CAAC;IACjB,CAAC;IAED,OAAO;;QACL,yDAAA,CAAE,kEAAY,EAAd,IAAc,CAAA,MAAA,CAAC;QACf,IAAI,uBAAA,IAAI,iCAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,uBAAA,IAAI,iCAAO,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC;gBACT,uBAAA,IAAI,kCAAQ,CAAC,KAAK,CAChB,+BAA+B,uBAAA,IAAI,kCAAQ,IAAI,IAAI,CAAC,WAAW,6BAA6B,CAC7F,CAAC;gBACF,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC;IACH,CAAC;CACF;;AAED,MAAM,WAAW;IAIf,YACE,EAAE,MAAM,EAAsB,EACtB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QAL5B,mCAAe,CAAC,EAAC;QACjB,sCAAgB;QAMd,uBAAA,IAAI,uBAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAAC,yCAAyC,UAAU,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,kBAAkB,CAAC,WAAmB;QACpC,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAChB,kCAAkC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,GAAG,CACzE,CAAC;QACF,uBAAA,IAAI,4BAAgB,WAAW,MAAA,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,uBAAA,IAAI,gCAAa,GAAG,GAAG,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,uBAAA,IAAI,gCAAa,GAAG,GAAG,CAAC;YACvC,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAChB,gCAAgC,MAAM,aAAa,IAAI,IAAI,CAAC,uBAAA,IAAI,gCAAa,CAAC,CAAC,WAAW,EAAE,GAAG,CAChG,CAAC;YACF,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACpB,uBAAA,IAAI,2BAAQ,CAAC,KAAK,CAChB,6BAA6B,IAAI,IAAI,CAAC,uBAAA,IAAI,gCAAa,CAAC,CAAC,WAAW,EAAE,GAAG,CAC1E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;CACF;;AAED,MAAM,OAAO,aAAa;IAQxB,YACE,EAAE,MAAM,EAAsB,EAC9B,EACE,WAAW,GAAG,CAAC,EACf,UAAU,GAAG,GAAG,EAChB,UAAU,GAAG,CAAC,EACd,gBAAgB,EAChB,SAAS,GAAG,IAAI,cAAc,EAAE,MACT,EAAE;;QAf7B,oDAAwC;QACxC,wCAAgB;QAChB,4CAAoB;QACpB,kDAA2B;QAC3B,6CAA0B;QAC1B,2CAA0B;QAYxB,uBAAA,IAAI,yBAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,4BAAc,SAAS,MAAA,CAAC;QAC5B,uBAAA,IAAI,qCAAuB,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,MAAA,CAAC;QAC3E,uBAAA,IAAI,8BAAgB,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,MAAA,CAAC;QAC5D,uBAAA,IAAI,6BAAe,UAAU,MAAA,CAAC;QAC9B,uBAAA,IAAI,mCAAqB,gBAAgB,MAAA,CAAC;QAC1C,MAAM,CAAC,KAAK,CACV;YACE,WAAW;YACX,UAAU;YACV,UAAU;YACV,gBAAgB;YAChB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI;SACtC,EACD,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAA+B;QACzC,MAAM,uBAAA,IAAI,yCAAoB,CAAC,OAAO,EAAE,CAAC;QAEzC,OAAO,uBAAA,IAAI,sDAAO,MAAX,IAAI,EAAQ,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,uBAAA,IAAI,yCAAoB,CAAC,OAAO,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;CAqCF;6UAnCC,KAAK,+BACH,OAA+B,EAC/B,YAAY,GAAG,uBAAA,IAAI,iCAAY;IAE/B,uBAAA,IAAI,6BAAQ,CAAC,IAAI,CACf,6BAA6B,YAAY,eAAe,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CACxH,CAAC;IACF,MAAM,uBAAA,IAAI,kCAAa,CAAC,IAAI,EAAE,CAAC;IAE/B,MAAM,UAAU,GACd,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,MAAM,uBAAA,IAAI,gCAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC;IAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,UAAU,GACd,uBAAA,IAAI,uCAAkB,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,KAAM,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAC5C,uBAAA,IAAI,6BAAQ,CAAC,IAAI,CACf,0DAA0D,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,GAAG,CACjG,CAAC;QACF,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;QACxB,uBAAA,IAAI,kCAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1E,uBAAA,IAAI,6BAAQ,CAAC,KAAK,CAChB,cAAc,GAAG,gBAAgB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,yBAAyB,CACjG,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,uBAAA,IAAI,sDAAO,MAAX,IAAI,EAAQ,OAAO,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;AAChD,CAAC;AAGH,SAAS,eAAe,CACtB,QAAkB,EAClB,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAK,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/transport/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moontaiworks/fanbox-dl",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "description": "A TypeScript PixivFanbox Downloader and SDK",
5
5
  "author": "moontai0724",
6
6
  "license": "MIT",