pixivflow 2.15.0 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/auth/PixivAuth.d.ts +18 -0
  2. package/dist/auth/PixivAuth.d.ts.map +1 -0
  3. package/dist/auth/PixivAuth.js +200 -0
  4. package/dist/auth/PixivAuth.js.map +1 -0
  5. package/dist/commands/DoctorCommand.d.ts.map +1 -1
  6. package/dist/commands/DoctorCommand.js +23 -0
  7. package/dist/commands/DoctorCommand.js.map +1 -1
  8. package/dist/commands/DownloadCommand.js +4 -4
  9. package/dist/commands/DownloadCommand.js.map +1 -1
  10. package/dist/commands/HealthCommand.d.ts.map +1 -1
  11. package/dist/commands/HealthCommand.js +14 -1
  12. package/dist/commands/HealthCommand.js.map +1 -1
  13. package/dist/commands/RandomDownloadCommand.js +4 -4
  14. package/dist/commands/RandomDownloadCommand.js.map +1 -1
  15. package/dist/commands/TagsCommand.js +4 -4
  16. package/dist/commands/TagsCommand.js.map +1 -1
  17. package/dist/commands/TopicCommand.d.ts.map +1 -1
  18. package/dist/commands/TopicCommand.js +4 -4
  19. package/dist/commands/TopicCommand.js.map +1 -1
  20. package/dist/commands/scheduler-runtime.d.ts +2 -2
  21. package/dist/commands/scheduler-runtime.d.ts.map +1 -1
  22. package/dist/commands/scheduler-runtime.js +4 -4
  23. package/dist/commands/scheduler-runtime.js.map +1 -1
  24. package/dist/config/types.d.ts +7 -0
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/download/IllustrationDownloader.d.ts +1 -1
  27. package/dist/download/IllustrationDownloader.d.ts.map +1 -1
  28. package/dist/download/NovelDownloader.d.ts +1 -1
  29. package/dist/download/NovelDownloader.d.ts.map +1 -1
  30. package/dist/download/RankingService.d.ts +1 -1
  31. package/dist/download/RankingService.d.ts.map +1 -1
  32. package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
  33. package/dist/download/handlers/IllustrationTargetHandler.js +12 -5
  34. package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
  35. package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
  36. package/dist/download/handlers/NovelTargetHandler.js +12 -5
  37. package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
  38. package/dist/download/pipeline/DownloadPipeline.d.ts +1 -1
  39. package/dist/download/pipeline/DownloadPipeline.d.ts.map +1 -1
  40. package/dist/download/plan/DownloadPlanner.d.ts +1 -1
  41. package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
  42. package/dist/download/recovery/ErrorRecovery.d.ts.map +1 -1
  43. package/dist/download/recovery/ErrorRecovery.js +8 -2
  44. package/dist/download/recovery/ErrorRecovery.js.map +1 -1
  45. package/dist/interfaces/IPixivClient.d.ts +1 -5
  46. package/dist/interfaces/IPixivClient.d.ts.map +1 -1
  47. package/dist/package.json +1 -1
  48. package/dist/pixiv/AuthClient.d.ts +6 -12
  49. package/dist/pixiv/AuthClient.d.ts.map +1 -1
  50. package/dist/pixiv/AuthClient.js +7 -188
  51. package/dist/pixiv/AuthClient.js.map +1 -1
  52. package/dist/pixiv/PixivClient.d.ts +14 -156
  53. package/dist/pixiv/PixivClient.d.ts.map +1 -1
  54. package/dist/pixiv/PixivClient.js +15 -292
  55. package/dist/pixiv/PixivClient.js.map +1 -1
  56. package/dist/pixiv-client/PixivAuthTokenProvider.d.ts +16 -0
  57. package/dist/pixiv-client/PixivAuthTokenProvider.d.ts.map +1 -0
  58. package/dist/pixiv-client/PixivAuthTokenProvider.js +27 -0
  59. package/dist/pixiv-client/PixivAuthTokenProvider.js.map +1 -0
  60. package/dist/pixiv-client/PixivFlowPixivClient.d.ts +77 -0
  61. package/dist/pixiv-client/PixivFlowPixivClient.d.ts.map +1 -0
  62. package/dist/pixiv-client/PixivFlowPixivClient.js +146 -0
  63. package/dist/pixiv-client/PixivFlowPixivClient.js.map +1 -0
  64. package/dist/pixiv-client/TargetSearchRunner.d.ts +29 -0
  65. package/dist/pixiv-client/TargetSearchRunner.d.ts.map +1 -0
  66. package/dist/pixiv-client/TargetSearchRunner.js +182 -0
  67. package/dist/pixiv-client/TargetSearchRunner.js.map +1 -0
  68. package/dist/pixiv-client/createPixivFlowClient.d.ts +11 -0
  69. package/dist/pixiv-client/createPixivFlowClient.d.ts.map +1 -0
  70. package/dist/pixiv-client/createPixivFlowClient.js +29 -0
  71. package/dist/pixiv-client/createPixivFlowClient.js.map +1 -0
  72. package/dist/pixiv-client/query-mapper.d.ts +14 -0
  73. package/dist/pixiv-client/query-mapper.d.ts.map +1 -0
  74. package/dist/pixiv-client/query-mapper.js +63 -0
  75. package/dist/pixiv-client/query-mapper.js.map +1 -0
  76. package/dist/random-download.js +4 -4
  77. package/dist/random-download.js.map +1 -1
  78. package/dist/storage/Database.d.ts +4 -0
  79. package/dist/storage/Database.d.ts.map +1 -1
  80. package/dist/storage/Database.js +7 -0
  81. package/dist/storage/Database.js.map +1 -1
  82. package/dist/storage/DatabaseMigration.d.ts.map +1 -1
  83. package/dist/storage/DatabaseMigration.js +8 -0
  84. package/dist/storage/DatabaseMigration.js.map +1 -1
  85. package/dist/storage/repositories/RateLimitStateRepository.d.ts +17 -0
  86. package/dist/storage/repositories/RateLimitStateRepository.d.ts.map +1 -0
  87. package/dist/storage/repositories/RateLimitStateRepository.js +46 -0
  88. package/dist/storage/repositories/RateLimitStateRepository.js.map +1 -0
  89. package/dist/tags/types.d.ts +1 -1
  90. package/dist/tags/types.d.ts.map +1 -1
  91. package/dist/utils/concurrency.d.ts.map +1 -1
  92. package/dist/utils/concurrency.js +2 -1
  93. package/dist/utils/concurrency.js.map +1 -1
  94. package/dist/utils/errors.d.ts +20 -0
  95. package/dist/utils/errors.d.ts.map +1 -1
  96. package/dist/utils/errors.js +56 -1
  97. package/dist/utils/errors.js.map +1 -1
  98. package/dist/utils/pixiv-sort.d.ts +1 -1
  99. package/dist/utils/pixiv-sort.d.ts.map +1 -1
  100. package/dist/utils/pixiv-utils.d.ts +1 -1
  101. package/dist/utils/pixiv-utils.d.ts.map +1 -1
  102. package/dist/utils/token-maintenance.d.ts +1 -1
  103. package/dist/utils/token-maintenance.d.ts.map +1 -1
  104. package/dist/version.js +1 -1
  105. package/dist/webui/package.json +1 -1
  106. package/dist/webui/services/DownloadTaskManager.js +4 -4
  107. package/dist/webui/services/DownloadTaskManager.js.map +1 -1
  108. package/package.json +11 -4
  109. package/dist/pixiv/IPixivRequestHandler.d.ts +0 -26
  110. package/dist/pixiv/IPixivRequestHandler.d.ts.map +0 -1
  111. package/dist/pixiv/IPixivRequestHandler.js +0 -3
  112. package/dist/pixiv/IPixivRequestHandler.js.map +0 -1
  113. package/dist/pixiv/RateLimitCoordinator.d.ts +0 -30
  114. package/dist/pixiv/RateLimitCoordinator.d.ts.map +0 -1
  115. package/dist/pixiv/RateLimitCoordinator.js +0 -66
  116. package/dist/pixiv/RateLimitCoordinator.js.map +0 -1
  117. package/dist/pixiv/client/IllustService.d.ts +0 -24
  118. package/dist/pixiv/client/IllustService.d.ts.map +0 -1
  119. package/dist/pixiv/client/IllustService.js +0 -70
  120. package/dist/pixiv/client/IllustService.js.map +0 -1
  121. package/dist/pixiv/client/MediaDownloadService.d.ts +0 -11
  122. package/dist/pixiv/client/MediaDownloadService.d.ts.map +0 -1
  123. package/dist/pixiv/client/MediaDownloadService.js +0 -22
  124. package/dist/pixiv/client/MediaDownloadService.js.map +0 -1
  125. package/dist/pixiv/client/NovelService.d.ts +0 -30
  126. package/dist/pixiv/client/NovelService.d.ts.map +0 -1
  127. package/dist/pixiv/client/NovelService.js +0 -203
  128. package/dist/pixiv/client/NovelService.js.map +0 -1
  129. package/dist/pixiv/client/PixivApiCore.d.ts +0 -52
  130. package/dist/pixiv/client/PixivApiCore.d.ts.map +0 -1
  131. package/dist/pixiv/client/PixivApiCore.js +0 -412
  132. package/dist/pixiv/client/PixivApiCore.js.map +0 -1
  133. package/dist/pixiv/client/SearchService.d.ts +0 -21
  134. package/dist/pixiv/client/SearchService.d.ts.map +0 -1
  135. package/dist/pixiv/client/SearchService.js +0 -207
  136. package/dist/pixiv/client/SearchService.js.map +0 -1
  137. package/dist/pixiv/client/search/SearchFilters.d.ts +0 -31
  138. package/dist/pixiv/client/search/SearchFilters.d.ts.map +0 -1
  139. package/dist/pixiv/client/search/SearchFilters.js +0 -102
  140. package/dist/pixiv/client/search/SearchFilters.js.map +0 -1
  141. package/dist/pixiv/types.d.ts +0 -72
  142. package/dist/pixiv/types.d.ts.map +0 -1
  143. package/dist/pixiv/types.js +0 -6
  144. package/dist/pixiv/types.js.map +0 -1
@@ -20,11 +20,17 @@ class DefaultErrorRecovery {
20
20
  return { action: 'skip', reason: '404 not found or item is private' };
21
21
  }
22
22
  // For network errors, respect server-provided wait time or exponential backoff
23
- if (error instanceof errors_1.NetworkError) {
23
+ if ((0, errors_1.isRetryableNetworkError)(error)) {
24
24
  if (attempt >= this.maxAttempts) {
25
25
  return { action: 'skip', reason: 'network retries exhausted' };
26
26
  }
27
- const delayFromServer = typeof error.waitTime === 'number' && error.waitTime > 0 ? error.waitTime : undefined;
27
+ const hinted = (0, errors_1.rateLimitWaitMs)(error);
28
+ const legacyWait = error instanceof errors_1.NetworkError ? error.waitTime : undefined;
29
+ const delayFromServer = typeof hinted === 'number' && hinted > 0
30
+ ? hinted
31
+ : typeof legacyWait === 'number' && legacyWait > 0
32
+ ? legacyWait
33
+ : undefined;
28
34
  const backoff = Math.min(this.baseDelayMs * Math.pow(2, attempt - 1), this.maxDelayMs);
29
35
  const delayMs = delayFromServer ?? backoff;
30
36
  logger_1.logger.warn(`Network error when downloading ${context.itemType ?? 'item'} ${context.itemId ?? ''} (attempt ${attempt}/${this.maxAttempts}), retrying after ${delayMs}ms`);
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorRecovery.js","sourceRoot":"","sources":["../../../src/download/recovery/ErrorRecovery.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AACtC,+CAA+E;AAwB/E,MAAa,oBAAoB;IACd,WAAW,CAAS;IACpB,WAAW,CAAS;IACpB,UAAU,CAAS;IAEpC,YAAY,UAAuC,EAAE;QACnD,MAAM,EAAE,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAC1E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,KAAc,EAAE,OAAwB;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7C,6CAA6C;QAC7C,IAAI,IAAA,mBAAU,EAAC,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;QACxE,CAAC;QAED,+EAA+E;QAC/E,IAAI,KAAK,YAAY,qBAAY,EAAE,CAAC;YAClC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAChC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC;YACjE,CAAC;YACD,MAAM,eAAe,GACnB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,eAAe,IAAI,OAAO,CAAC;YAC3C,eAAM,CAAC,IAAI,CACT,kCAAkC,OAAO,CAAC,QAAQ,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,aAAa,OAAO,IAAI,IAAI,CAAC,WAAW,qBAAqB,OAAO,IAAI,CAC7J,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAChG,CAAC;QAED,IAAI,IAAA,wBAAe,EAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;QACrE,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,eAAM,CAAC,IAAI,CACT,YAAY,OAAO,CAAC,QAAQ,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,aAAa,OAAO,IAAI,IAAI,CAAC,WAAW,WAAW,OAAO,IAAI,CAC7H,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAChG,CAAC;CACF;AAlDD,oDAkDC"}
1
+ {"version":3,"file":"ErrorRecovery.js","sourceRoot":"","sources":["../../../src/download/recovery/ErrorRecovery.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,10 @@
1
+ import type { PixivIllust, PixivNovel, PixivNovelTextResponse } from '@redtidev/pixiv-client';
1
2
  import { TargetConfig } from '../config';
2
- import { PixivIllust, PixivNovel, PixivNovelTextResponse, PixivUser } from '../pixiv/PixivClient';
3
3
  /**
4
4
  * Interface for Pixiv API client
5
5
  * Provides abstraction for Pixiv API interactions
6
6
  */
7
7
  export interface IPixivClient {
8
- /**
9
- * Get user information
10
- */
11
- getUser(): Promise<PixivUser>;
12
8
  /**
13
9
  * Search illustrations using target config
14
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IPixivClient.d.ts","sourceRoot":"","sources":["../../src/interfaces/IPixivClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IPixivClient.d.ts","sourceRoot":"","sources":["../../src/interfaces/IPixivClient.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "pixivflow",
4
- "version": "2.15.0",
4
+ "version": "2.16.0",
5
5
  "private": true
6
6
  }
@@ -1,13 +1,7 @@
1
- import { NetworkConfig, PixivCredentialConfig } from '../config';
2
- import { Database } from '../storage/Database';
3
- export declare class PixivAuth {
4
- private readonly credentials;
5
- private readonly network;
6
- private readonly database;
7
- private configPath?;
8
- constructor(credentials: PixivCredentialConfig, network: NetworkConfig, database: Database, configPath?: string);
9
- getAccessToken(): Promise<string>;
10
- private refreshAccessToken;
11
- private generateClientHash;
12
- }
1
+ /**
2
+ * @deprecated Pixiv OAuth/refresh-token handling is PixivFlow product code and
3
+ * now lives at `../auth/PixivAuth`. This shim preserves the old import path.
4
+ * The reusable kit only consumes access tokens via AccessTokenProvider.
5
+ */
6
+ export { PixivAuth } from '../auth/PixivAuth';
13
7
  //# sourceMappingURL=AuthClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthClient.d.ts","sourceRoot":"","sources":["../../src/pixiv/AuthClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAoB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAmBjE,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,OAAO,CAAC,UAAU,CAAC,CAAS;gBAGT,WAAW,EAAE,qBAAqB,EAClC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,QAAQ,EACnC,UAAU,CAAC,EAAE,MAAM;IAKR,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;YAUhC,kBAAkB;IA2IhC,OAAO,CAAC,kBAAkB;CAI3B"}
1
+ {"version":3,"file":"AuthClient.d.ts","sourceRoot":"","sources":["../../src/pixiv/AuthClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,192 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.PixivAuth = void 0;
37
- const node_crypto_1 = require("node:crypto");
38
- const promises_1 = require("node:timers/promises");
39
- const logger_1 = require("../logger");
40
- const login_helper_1 = require("../utils/login-helper");
41
- const errors_1 = require("../utils/errors");
42
- const TOKEN_CACHE_KEY = 'pixiv_access_token';
43
- const REFRESH_TOKEN_CACHE_KEY = 'pixiv_refresh_token';
44
- class PixivAuth {
45
- credentials;
46
- network;
47
- database;
48
- configPath;
49
- constructor(credentials, network, database, configPath) {
50
- this.credentials = credentials;
51
- this.network = network;
52
- this.database = database;
53
- this.configPath = configPath;
54
- }
55
- async getAccessToken() {
56
- const cached = this.database.getToken(TOKEN_CACHE_KEY);
57
- if (cached && cached.accessToken && cached.expiresAt > Date.now() + 60_000) {
58
- return cached.accessToken;
59
- }
60
- const refreshed = await this.refreshAccessToken();
61
- return refreshed.accessToken;
62
- }
63
- async refreshAccessToken() {
64
- const url = 'https://oauth.secure.pixiv.net/auth/token';
65
- let lastError;
66
- for (let attempt = 0; attempt < (this.network.retries ?? 3); attempt++) {
67
- try {
68
- const body = new URLSearchParams({
69
- client_id: this.credentials.clientId,
70
- client_secret: this.credentials.clientSecret,
71
- grant_type: 'refresh_token',
72
- refresh_token: this.credentials.refreshToken,
73
- include_policy: 'true',
74
- });
75
- const clientTime = new Date().toISOString();
76
- const headers = {
77
- 'User-Agent': this.credentials.userAgent,
78
- 'Content-Type': 'application/x-www-form-urlencoded',
79
- 'X-Client-Time': clientTime,
80
- 'X-Client-Hash': this.generateClientHash(clientTime),
81
- };
82
- const controller = new AbortController();
83
- const timeout = setTimeout(() => controller.abort(), this.network.timeoutMs);
84
- try {
85
- // Route the token refresh through the configured proxy when enabled:
86
- // native fetch ignores HTTP(S)_PROXY env, so a plain fetch here would
87
- // bypass the proxy on servers that can only reach Pixiv through it.
88
- const fetchOptions = {
89
- method: 'POST',
90
- body,
91
- headers,
92
- signal: controller.signal,
93
- };
94
- const proxy = this.network?.proxy;
95
- if (proxy?.enabled && proxy.host && proxy.port) {
96
- const { ProxyAgent } = require('undici');
97
- const proto = (proxy.protocol || 'http').toLowerCase();
98
- const auth = proxy.username && proxy.password
99
- ? `${encodeURIComponent(proxy.username)}:${encodeURIComponent(proxy.password)}@`
100
- : '';
101
- fetchOptions.dispatcher = new ProxyAgent(`${proto}://${auth}${proxy.host}:${proxy.port}`);
102
- }
103
- const response = await fetch(url, fetchOptions);
104
- if (!response.ok) {
105
- // Check for authentication errors (401, 403) which indicate refresh token is invalid/expired
106
- if (response.status === 401 || response.status === 403) {
107
- const errorMessage = `Pixiv authentication failed (HTTP ${response.status}): Your refresh token is invalid or has expired.`;
108
- throw new errors_1.AuthenticationError(errorMessage);
109
- }
110
- throw new Error(`Failed to refresh token: ${response.status} ${response.statusText}`);
111
- }
112
- const data = (await response.json());
113
- const expiresAt = Date.now() + data.expires_in * 1000;
114
- const stored = {
115
- accessToken: data.access_token,
116
- expiresAt,
117
- refreshToken: data.refresh_token,
118
- tokenType: data.token_type,
119
- };
120
- this.database.setToken(TOKEN_CACHE_KEY, stored);
121
- // CRITICAL: Auto-update refresh token in all storage locations
122
- // This ensures the refresh token never expires and is always up-to-date
123
- if (data.refresh_token && data.refresh_token !== this.credentials.refreshToken) {
124
- logger_1.logger.info('Received updated refresh token, updating all storage locations');
125
- // Update internal credentials immediately
126
- this.credentials.refreshToken = data.refresh_token;
127
- // 1. Store in database (primary storage)
128
- this.database.setToken(REFRESH_TOKEN_CACHE_KEY, {
129
- accessToken: '',
130
- expiresAt,
131
- refreshToken: data.refresh_token,
132
- tokenType: data.token_type,
133
- });
134
- logger_1.logger.debug('✓ Token saved to database');
135
- // 2. Store in file system (unified storage)
136
- try {
137
- const { saveTokenToStorage } = await Promise.resolve().then(() => __importStar(require('../utils/token-manager')));
138
- const databasePath = this.database ? this.database.databasePath : undefined;
139
- saveTokenToStorage(data.refresh_token, databasePath);
140
- logger_1.logger.debug('✓ Token saved to file system');
141
- }
142
- catch (error) {
143
- logger_1.logger.warn('Failed to save token to file system', {
144
- error: error instanceof Error ? error.message : String(error),
145
- });
146
- }
147
- // 3. Auto-update config file to ensure refresh token never expires
148
- // This is the key to "one-time setup, forever working" solution
149
- if (this.configPath) {
150
- try {
151
- await (0, login_helper_1.updateConfigWithToken)(this.configPath, data.refresh_token);
152
- logger_1.logger.debug('✓ Config file automatically updated with new refresh token');
153
- }
154
- catch (error) {
155
- logger_1.logger.warn('Failed to update config file with new refresh token', {
156
- error: error instanceof Error ? error.message : String(error),
157
- });
158
- // Don't throw - other storage updates succeeded
159
- }
160
- }
161
- logger_1.logger.info('✓ Refresh token updated in all storage locations');
162
- }
163
- logger_1.logger.info('Refreshed Pixiv access token');
164
- return stored;
165
- }
166
- finally {
167
- clearTimeout(timeout);
168
- }
169
- }
170
- catch (error) {
171
- lastError = error;
172
- // If it's an authentication error, don't retry - the token is definitely invalid
173
- if (error instanceof errors_1.AuthenticationError) {
174
- throw error;
175
- }
176
- logger_1.logger.warn('Refresh token attempt failed', { attempt: attempt + 1, error: `${error}` });
177
- await (0, promises_1.setTimeout)(Math.min(1000 * (attempt + 1), 5000));
178
- }
179
- }
180
- // Check if the last error was an authentication error
181
- if (lastError instanceof errors_1.AuthenticationError) {
182
- throw lastError;
183
- }
184
- throw new Error(`Unable to refresh Pixiv token after ${this.network.retries} attempts: ${lastError}`);
185
- }
186
- generateClientHash(time) {
187
- const salt = '28c1fdd170a5204386cb1313c7077b32';
188
- return (0, node_crypto_1.createHash)('md5').update(time + salt).digest('hex');
189
- }
190
- }
191
- exports.PixivAuth = PixivAuth;
4
+ /**
5
+ * @deprecated Pixiv OAuth/refresh-token handling is PixivFlow product code and
6
+ * now lives at `../auth/PixivAuth`. This shim preserves the old import path.
7
+ * The reusable kit only consumes access tokens via AccessTokenProvider.
8
+ */
9
+ var PixivAuth_1 = require("../auth/PixivAuth");
10
+ Object.defineProperty(exports, "PixivAuth", { enumerable: true, get: function () { return PixivAuth_1.PixivAuth; } });
192
11
  //# sourceMappingURL=AuthClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthClient.js","sourceRoot":"","sources":["../../src/pixiv/AuthClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthClient.js","sourceRoot":"","sources":["../../src/pixiv/AuthClient.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,+CAA8C;AAArC,sGAAA,SAAS,OAAA"}
@@ -1,157 +1,15 @@
1
- import { StandaloneConfig, TargetConfig } from '../config';
2
- import { PixivAuth } from './AuthClient';
3
- import { IPixivClient } from '../interfaces/IPixivClient';
4
- import type { PixivUser, PixivIllust, PixivNovel, PixivNovelTextResponse, PixivTag } from './types';
5
- import { RateLimitCoordinator } from './RateLimitCoordinator';
6
- export type { PixivUser, PixivIllust, PixivNovel, PixivIllustPage, PixivNovelTextResponse } from './types';
7
- export declare class PixivClient implements IPixivClient {
8
- private readonly auth;
9
- private readonly config;
10
- private readonly baseUrl;
11
- private readonly proxyAgent?;
12
- private readonly apiCore;
13
- private readonly rateLimiter;
14
- private readonly illustService;
15
- private readonly novelService;
16
- private readonly mediaService;
17
- private readonly searchService;
18
- constructor(auth: PixivAuth, config: StandaloneConfig);
19
- /** Process-wide Pixiv rate-limit gate (used by doctor/health). */
20
- getRateLimiter(): RateLimitCoordinator;
21
- /**
22
- * Safely parse date string to timestamp
23
- * Returns 0 for invalid dates to ensure consistent sorting
24
- * @deprecated Use parsePixivDate from pixiv-utils instead
25
- */
26
- private parseDate;
27
- /**
28
- * Parse date range from target config
29
- * Returns { startDate, endDate } as Date objects, or null if invalid
30
- * Validates that startDate <= endDate
31
- */
32
- private parseDateRange;
33
- /**
34
- * Check if item date is within the specified range
35
- * Handles invalid dates gracefully
36
- */
37
- private isDateInRange;
38
- /**
39
- * Search illustrations using target config
40
- * Implements IPixivClient interface
41
- */
42
- searchIllustrations(target: TargetConfig): Promise<PixivIllust[]>;
43
- getTagAutocomplete(seed: string): Promise<PixivTag[]>;
44
- searchIllustrationsForTags(seed: string, limit: number, options?: {
45
- startDate?: string;
46
- endDate?: string;
47
- includeR18?: boolean;
48
- }): Promise<PixivIllust[]>;
49
- searchNovelsForTags(seed: string, limit: number, options?: {
50
- startDate?: string;
51
- endDate?: string;
52
- includeR18?: boolean;
53
- }): Promise<PixivNovel[]>;
54
- /**
55
- * Get current user information
56
- * Implements IPixivClient interface
57
- */
58
- getUser(): Promise<PixivUser>;
59
- /**
60
- * Get illustration details by ID
61
- * Implements IPixivClient interface
62
- */
63
- getIllustration(id: number): Promise<PixivIllust>;
64
- /**
65
- * Get novel details by ID
66
- * Implements IPixivClient interface
67
- */
68
- getNovel(id: number): Promise<PixivNovel>;
69
- /**
70
- * Get user illustrations
71
- * Implements IPixivClient interface
72
- */
73
- getUserIllustrations(userId: string, options?: {
74
- limit?: number;
75
- offset?: number;
76
- }): Promise<PixivIllust[]>;
77
- /**
78
- * Get user novels
79
- * Implements IPixivClient interface
80
- */
81
- getUserNovels(userId: string, options?: {
82
- limit?: number;
83
- offset?: number;
84
- }): Promise<PixivNovel[]>;
85
- /**
86
- * Search illustrations for a single tag (internal method)
87
- */
88
- /**
89
- * Search novels using target config
90
- * Implements IPixivClient interface
91
- */
92
- searchNovels(target: TargetConfig): Promise<PixivNovel[]>;
93
- /**
94
- * Search novels for a single tag (internal method)
95
- */
96
- /**
97
- * Get ranking illustrations
98
- * @param mode Ranking mode (day, week, month, etc.)
99
- * @param date Date in YYYY-MM-DD format (optional, defaults to today)
100
- * @param limit Maximum number of results
101
- */
102
- getRankingIllustrations(mode?: string, date?: string, limit?: number): Promise<PixivIllust[]>;
103
- /**
104
- * Get ranking novels
105
- * @param mode Ranking mode (day, week, month, etc.)
106
- * @param date Date in YYYY-MM-DD format (optional, defaults to today)
107
- * @param limit Maximum number of results
108
- */
109
- getRankingNovels(mode?: string, date?: string, limit?: number): Promise<PixivNovel[]>;
110
- /**
111
- * Get illustration detail with tags for filtering
112
- */
113
- getIllustDetailWithTags(illustId: number): Promise<{
114
- illust: PixivIllust;
115
- tags: Array<{
116
- name: string;
117
- translated_name?: string;
118
- }>;
119
- }>;
120
- /**
121
- * Get novel detail with tags for filtering
122
- */
123
- getNovelDetailWithTags(novelId: number): Promise<{
124
- novel: PixivNovel;
125
- tags: Array<{
126
- name: string;
127
- translated_name?: string;
128
- }>;
129
- }>;
130
- getIllustDetail(illustId: number): Promise<PixivIllust>;
131
- getNovelDetail(novelId: number): Promise<PixivNovel>;
132
- /**
133
- * Get novel text content
134
- * Implements IPixivClient interface
135
- */
136
- getNovelText(novelId: number): Promise<PixivNovelTextResponse>;
137
- ugoiraMetadata(illustId: number): Promise<{
138
- zip_urls: {
139
- medium?: string;
140
- original?: string;
141
- };
142
- frames: Array<{
143
- file: string;
144
- delay: number;
145
- }>;
146
- silence_before?: number;
147
- silence_after?: number;
148
- }>;
149
- /**
150
- * Get all novels in a series
151
- */
152
- getNovelSeries(seriesId: number): Promise<PixivNovel[]>;
153
- downloadImage(originalUrl: string): Promise<ArrayBuffer>;
154
- private createRequestUrl;
155
- private request;
156
- }
1
+ /**
2
+ * @deprecated Import from `../pixiv-client/PixivFlowPixivClient` (product) or
3
+ * from `@redtidev/pixiv-client` (the independent kit). This module is a
4
+ * thin backward-compatibility shim for code that still imports the old path.
5
+ *
6
+ * The reusable Pixiv protocol/client code now lives in the
7
+ * `packages/pixiv-client` workspace package (@redtidev/pixiv-client). The
8
+ * class below is the PixivFlow-specific compatibility adapter (TargetConfig
9
+ * queries, product defaults) composed on top of it.
10
+ */
11
+ export { PixivFlowPixivClient as PixivClient } from '../pixiv-client/PixivFlowPixivClient';
12
+ export { createPixivFlowClient } from '../pixiv-client/createPixivFlowClient';
13
+ export type { PixivFlowPixivClientOptions } from '../pixiv-client/PixivFlowPixivClient';
14
+ export type { PixivUser, PixivIllust, PixivNovel, PixivIllustPage, PixivNovelTextResponse, PixivTag, UgoiraMetadata, } from '@redtidev/pixiv-client';
157
15
  //# sourceMappingURL=PixivClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PixivClient.d.ts","sourceRoot":"","sources":["../../src/pixiv/PixivClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PixivClient.d.ts","sourceRoot":"","sources":["../../src/pixiv/PixivClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,YAAY,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAGxF,YAAY,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,QAAQ,EACR,cAAc,GACf,MAAM,wBAAwB,CAAC"}