@book000/pixivts 0.48.57 → 0.48.59

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 (169) hide show
  1. package/dist/checks.d.ts +19 -0
  2. package/dist/checks.d.ts.map +1 -0
  3. package/dist/checks.js +85 -0
  4. package/dist/checks.js.map +1 -0
  5. package/dist/checks.test.d.ts +2 -0
  6. package/dist/checks.test.d.ts.map +1 -0
  7. package/dist/checks.test.js +306 -0
  8. package/dist/checks.test.js.map +1 -0
  9. package/dist/index.d.ts +30 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +51 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/options.d.ts +248 -0
  14. package/dist/options.d.ts.map +1 -0
  15. package/dist/options.js +154 -0
  16. package/dist/options.js.map +1 -0
  17. package/dist/options.test.d.ts +2 -0
  18. package/dist/options.test.d.ts.map +1 -0
  19. package/dist/options.test.js +117 -0
  20. package/dist/options.test.js.map +1 -0
  21. package/dist/pixiv.d.ts +292 -0
  22. package/dist/pixiv.d.ts.map +1 -0
  23. package/dist/pixiv.js +759 -0
  24. package/dist/pixiv.js.map +1 -0
  25. package/dist/pixiv.test.d.ts +2 -0
  26. package/dist/pixiv.test.d.ts.map +1 -0
  27. package/dist/pixiv.test.js +705 -0
  28. package/dist/pixiv.test.js.map +1 -0
  29. package/dist/saving-responses/index.d.ts +119 -0
  30. package/dist/saving-responses/index.d.ts.map +1 -0
  31. package/dist/saving-responses/index.js +263 -0
  32. package/dist/saving-responses/index.js.map +1 -0
  33. package/dist/saving-responses/index.test.d.ts +2 -0
  34. package/dist/saving-responses/index.test.d.ts.map +1 -0
  35. package/dist/saving-responses/index.test.js +469 -0
  36. package/dist/saving-responses/index.test.js.map +1 -0
  37. package/dist/saving-responses/response-entity.d.ts +16 -0
  38. package/dist/saving-responses/response-entity.d.ts.map +1 -0
  39. package/dist/saving-responses/response-entity.js +101 -0
  40. package/dist/saving-responses/response-entity.js.map +1 -0
  41. package/dist/types/endpoints/v1/illust/bookmark/delete.d.ts +14 -0
  42. package/dist/types/endpoints/v1/illust/bookmark/delete.d.ts.map +1 -0
  43. package/dist/types/endpoints/v1/illust/bookmark/delete.js +3 -0
  44. package/dist/types/endpoints/v1/illust/bookmark/delete.js.map +1 -0
  45. package/dist/types/endpoints/v1/illust/detail.d.ts +25 -0
  46. package/dist/types/endpoints/v1/illust/detail.d.ts.map +1 -0
  47. package/dist/types/endpoints/v1/illust/detail.js +20 -0
  48. package/dist/types/endpoints/v1/illust/detail.js.map +1 -0
  49. package/dist/types/endpoints/v1/illust/ranking.d.ts +51 -0
  50. package/dist/types/endpoints/v1/illust/ranking.d.ts.map +1 -0
  51. package/dist/types/endpoints/v1/illust/ranking.js +40 -0
  52. package/dist/types/endpoints/v1/illust/ranking.js.map +1 -0
  53. package/dist/types/endpoints/v1/illust/recommended.d.ts +85 -0
  54. package/dist/types/endpoints/v1/illust/recommended.d.ts.map +1 -0
  55. package/dist/types/endpoints/v1/illust/recommended.js +37 -0
  56. package/dist/types/endpoints/v1/illust/recommended.js.map +1 -0
  57. package/dist/types/endpoints/v1/illust/series.d.ts +45 -0
  58. package/dist/types/endpoints/v1/illust/series.d.ts.map +1 -0
  59. package/dist/types/endpoints/v1/illust/series.js +31 -0
  60. package/dist/types/endpoints/v1/illust/series.js.map +1 -0
  61. package/dist/types/endpoints/v1/illust/ugoira/metadata.d.ts +25 -0
  62. package/dist/types/endpoints/v1/illust/ugoira/metadata.d.ts.map +1 -0
  63. package/dist/types/endpoints/v1/illust/ugoira/metadata.js +20 -0
  64. package/dist/types/endpoints/v1/illust/ugoira/metadata.js.map +1 -0
  65. package/dist/types/endpoints/v1/manga/recommended.d.ts +72 -0
  66. package/dist/types/endpoints/v1/manga/recommended.d.ts.map +1 -0
  67. package/dist/types/endpoints/v1/manga/recommended.js +33 -0
  68. package/dist/types/endpoints/v1/manga/recommended.js.map +1 -0
  69. package/dist/types/endpoints/v1/novel/bookmark/delete.d.ts +14 -0
  70. package/dist/types/endpoints/v1/novel/bookmark/delete.d.ts.map +1 -0
  71. package/dist/types/endpoints/v1/novel/bookmark/delete.js +3 -0
  72. package/dist/types/endpoints/v1/novel/bookmark/delete.js.map +1 -0
  73. package/dist/types/endpoints/v1/novel/ranking.d.ts +47 -0
  74. package/dist/types/endpoints/v1/novel/ranking.d.ts.map +1 -0
  75. package/dist/types/endpoints/v1/novel/ranking.js +39 -0
  76. package/dist/types/endpoints/v1/novel/ranking.js.map +1 -0
  77. package/dist/types/endpoints/v1/novel/recommended.d.ts +72 -0
  78. package/dist/types/endpoints/v1/novel/recommended.d.ts.map +1 -0
  79. package/dist/types/endpoints/v1/novel/recommended.js +32 -0
  80. package/dist/types/endpoints/v1/novel/recommended.js.map +1 -0
  81. package/dist/types/endpoints/v1/novel/related.d.ts +37 -0
  82. package/dist/types/endpoints/v1/novel/related.d.ts.map +1 -0
  83. package/dist/types/endpoints/v1/novel/related.js +24 -0
  84. package/dist/types/endpoints/v1/novel/related.js.map +1 -0
  85. package/dist/types/endpoints/v1/search/illust.d.ts +90 -0
  86. package/dist/types/endpoints/v1/search/illust.d.ts.map +1 -0
  87. package/dist/types/endpoints/v1/search/illust.js +35 -0
  88. package/dist/types/endpoints/v1/search/illust.js.map +1 -0
  89. package/dist/types/endpoints/v1/search/novel.d.ts +90 -0
  90. package/dist/types/endpoints/v1/search/novel.d.ts.map +1 -0
  91. package/dist/types/endpoints/v1/search/novel.js +35 -0
  92. package/dist/types/endpoints/v1/search/novel.js.map +1 -0
  93. package/dist/types/endpoints/v1/user/bookmarks/illust.d.ts +48 -0
  94. package/dist/types/endpoints/v1/user/bookmarks/illust.d.ts.map +1 -0
  95. package/dist/types/endpoints/v1/user/bookmarks/illust.js +31 -0
  96. package/dist/types/endpoints/v1/user/bookmarks/illust.js.map +1 -0
  97. package/dist/types/endpoints/v1/user/bookmarks/novel.d.ts +44 -0
  98. package/dist/types/endpoints/v1/user/bookmarks/novel.d.ts.map +1 -0
  99. package/dist/types/endpoints/v1/user/bookmarks/novel.js +28 -0
  100. package/dist/types/endpoints/v1/user/bookmarks/novel.js.map +1 -0
  101. package/dist/types/endpoints/v1/user/detail.d.ts +44 -0
  102. package/dist/types/endpoints/v1/user/detail.d.ts.map +1 -0
  103. package/dist/types/endpoints/v1/user/detail.js +26 -0
  104. package/dist/types/endpoints/v1/user/detail.js.map +1 -0
  105. package/dist/types/endpoints/v2/illust/bookmark/add.d.ts +28 -0
  106. package/dist/types/endpoints/v2/illust/bookmark/add.d.ts.map +1 -0
  107. package/dist/types/endpoints/v2/illust/bookmark/add.js +3 -0
  108. package/dist/types/endpoints/v2/illust/bookmark/add.js.map +1 -0
  109. package/dist/types/endpoints/v2/illust/related.d.ts +41 -0
  110. package/dist/types/endpoints/v2/illust/related.d.ts.map +1 -0
  111. package/dist/types/endpoints/v2/illust/related.js +29 -0
  112. package/dist/types/endpoints/v2/illust/related.js.map +1 -0
  113. package/dist/types/endpoints/v2/novel/bookmark/add.d.ts +27 -0
  114. package/dist/types/endpoints/v2/novel/bookmark/add.d.ts.map +1 -0
  115. package/dist/types/endpoints/v2/novel/bookmark/add.js +3 -0
  116. package/dist/types/endpoints/v2/novel/bookmark/add.js.map +1 -0
  117. package/dist/types/endpoints/v2/novel/detail.d.ts +25 -0
  118. package/dist/types/endpoints/v2/novel/detail.d.ts.map +1 -0
  119. package/dist/types/endpoints/v2/novel/detail.js +20 -0
  120. package/dist/types/endpoints/v2/novel/detail.js.map +1 -0
  121. package/dist/types/endpoints/v2/novel/series.d.ts +49 -0
  122. package/dist/types/endpoints/v2/novel/series.d.ts.map +1 -0
  123. package/dist/types/endpoints/v2/novel/series.js +31 -0
  124. package/dist/types/endpoints/v2/novel/series.js.map +1 -0
  125. package/dist/types/endpoints/webview/v2/novel.d.ts +21 -0
  126. package/dist/types/endpoints/webview/v2/novel.d.ts.map +1 -0
  127. package/dist/types/endpoints/webview/v2/novel.js +18 -0
  128. package/dist/types/endpoints/webview/v2/novel.js.map +1 -0
  129. package/dist/types/error-response.d.ts +29 -0
  130. package/dist/types/error-response.d.ts.map +1 -0
  131. package/dist/types/error-response.js +3 -0
  132. package/dist/types/error-response.js.map +1 -0
  133. package/dist/types/pixiv-common.d.ts +96 -0
  134. package/dist/types/pixiv-common.d.ts.map +1 -0
  135. package/dist/types/pixiv-common.js +66 -0
  136. package/dist/types/pixiv-common.js.map +1 -0
  137. package/dist/types/pixiv-illust-series.d.ts +56 -0
  138. package/dist/types/pixiv-illust-series.d.ts.map +1 -0
  139. package/dist/types/pixiv-illust-series.js +26 -0
  140. package/dist/types/pixiv-illust-series.js.map +1 -0
  141. package/dist/types/pixiv-illust.d.ts +167 -0
  142. package/dist/types/pixiv-illust.d.ts.map +1 -0
  143. package/dist/types/pixiv-illust.js +53 -0
  144. package/dist/types/pixiv-illust.js.map +1 -0
  145. package/dist/types/pixiv-novel-series.d.ts +84 -0
  146. package/dist/types/pixiv-novel-series.d.ts.map +1 -0
  147. package/dist/types/pixiv-novel-series.js +43 -0
  148. package/dist/types/pixiv-novel-series.js.map +1 -0
  149. package/dist/types/pixiv-novel.d.ts +122 -0
  150. package/dist/types/pixiv-novel.d.ts.map +1 -0
  151. package/dist/types/pixiv-novel.js +42 -0
  152. package/dist/types/pixiv-novel.js.map +1 -0
  153. package/dist/types/pixiv-ugoira.d.ts +50 -0
  154. package/dist/types/pixiv-ugoira.d.ts.map +1 -0
  155. package/dist/types/pixiv-ugoira.js +34 -0
  156. package/dist/types/pixiv-ugoira.js.map +1 -0
  157. package/dist/types/pixiv-user.d.ts +184 -0
  158. package/dist/types/pixiv-user.d.ts.map +1 -0
  159. package/dist/types/pixiv-user.js +97 -0
  160. package/dist/types/pixiv-user.js.map +1 -0
  161. package/dist/utils.d.ts +3 -0
  162. package/dist/utils.d.ts.map +1 -0
  163. package/dist/utils.js +15 -0
  164. package/dist/utils.js.map +1 -0
  165. package/dist/utils.test.d.ts +2 -0
  166. package/dist/utils.test.d.ts.map +1 -0
  167. package/dist/utils.test.js +15 -0
  168. package/dist/utils.test.js.map +1 -0
  169. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixiv.test.js","sourceRoot":"","sources":["../src/pixiv.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import { DataSource } from 'typeorm';
2
+ import { DBResponse } from './response-entity';
3
+ type HttpMethod = 'GET' | 'POST';
4
+ export interface AddResponseOptions {
5
+ method: HttpMethod;
6
+ endpoint: string;
7
+ url: string | null;
8
+ requestHeaders: string | null;
9
+ requestBody: string | null;
10
+ responseType: string;
11
+ statusCode: number;
12
+ responseHeaders: string | null;
13
+ responseBody: string;
14
+ }
15
+ /**
16
+ * レスポンスを保存するデータベースのオプション
17
+ */
18
+ export interface ResponseDatabaseOptions {
19
+ /**
20
+ * ホスト名 (MySQL のみ)
21
+ */
22
+ hostname?: string;
23
+ /**
24
+ * ポート (MySQL のみ)
25
+ */
26
+ port?: string;
27
+ /**
28
+ * ユーザー名 (MySQL のみ)
29
+ */
30
+ username?: string;
31
+ /**
32
+ * パスワード (MySQL のみ)
33
+ */
34
+ password?: string;
35
+ /**
36
+ * データベース名 (MySQL のみ)
37
+ */
38
+ database?: string;
39
+ }
40
+ export interface ResponseEndPoint {
41
+ method: HttpMethod;
42
+ endpoint: string;
43
+ statusCode: number;
44
+ }
45
+ export type ResponseEndPointWithCount = ResponseEndPoint & {
46
+ count: number;
47
+ };
48
+ interface GetResponseRangeOptions {
49
+ page?: number;
50
+ limit?: number;
51
+ }
52
+ /**
53
+ * レスポンスを保存するデータベース
54
+ */
55
+ export declare class ResponseDatabase {
56
+ private dataSource;
57
+ constructor(options?: ResponseDatabaseOptions);
58
+ /**
59
+ * データソースを初期化する
60
+ *
61
+ * @returns 初期化に成功したかどうか
62
+ */
63
+ init(): Promise<boolean>;
64
+ /**
65
+ * データソースをマイグレーションする
66
+ */
67
+ migrate(): Promise<void>;
68
+ /**
69
+ * データソーススキーマを同期する
70
+ */
71
+ sync(): Promise<void>;
72
+ /**
73
+ * レスポンスを追加する
74
+ *
75
+ * @param options レスポンスの追加オプション
76
+ * @returns 追加されたレスポンス
77
+ */
78
+ addResponse(options: AddResponseOptions): Promise<DBResponse | undefined>;
79
+ /**
80
+ * レスポンスを取得する。但し直近90日間のレスポンスのみ取得可能
81
+ *
82
+ * @param endpoint エンドポイントの情報。指定しない場合はすべてのレスポンスを取得する
83
+ * @param rangeOptions 取得するレスポンスの範囲
84
+ *
85
+ * @returns レスポンスの配列
86
+ */
87
+ getResponses(endpoint?: ResponseEndPoint | ResponseEndPoint[], rangeOptions?: GetResponseRangeOptions): Promise<DBResponse[]>;
88
+ /**
89
+ * レスポンスの数を取得する。但し直近90日間のレスポンスのみ取得可能
90
+ *
91
+ * @param endpoint エンドポイントの情報。指定しない場合はすべてのレスポンスを取得する
92
+ * @returns レスポンスの数
93
+ */
94
+ getResponseCount(endpoint?: ResponseEndPoint | ResponseEndPoint[]): Promise<number>;
95
+ /**
96
+ * エンドポイントを取得する。但し直近90日間のレスポンスのみ取得可能
97
+ */
98
+ getEndpoints(): Promise<ResponseEndPointWithCount[]>;
99
+ close(): Promise<void>;
100
+ isInitialized(): boolean;
101
+ /**
102
+ * データソースを取得する
103
+ *
104
+ * @returns データソース
105
+ */
106
+ getDataSource(): DataSource;
107
+ /**
108
+ * 環境変数で指定されたデータベースのポートをパースする。
109
+ * 数値にパースできない場合と1以上でない場合はエラーを投げる。
110
+ * undefinedの場合は、各データベースのデフォルトポートを使用する
111
+ *
112
+ * @param port データベースのポート
113
+ * @returns パースされたポート
114
+ */
115
+ private parsePort;
116
+ static printDebug(text: string, error?: Error): void;
117
+ }
118
+ export {};
119
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/saving-responses/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA6B,MAAM,SAAS,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG9C,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,CAAA;AAEhC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AACD,MAAM,MAAM,yBAAyB,GAAG,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5E,UAAU,uBAAuB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAY;gBAElB,OAAO,GAAE,uBAA4B;IAgCjD;;;;OAIG;IACU,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBrC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC;;;;;OAKG;IACU,WAAW,CACtB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAsBlC;;;;;;;OAOG;IACU,YAAY,CACvB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,EAChD,YAAY,CAAC,EAAE,uBAAuB,GACrC,OAAO,CAAC,UAAU,EAAE,CAAC;IAoDxB;;;;;OAKG;IACU,gBAAgB,CAC3B,QAAQ,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,GAC/C,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAoBpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACI,aAAa,IAAI,UAAU;IAIlC;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;WAaH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;CAc5D"}
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ResponseDatabase = void 0;
7
+ const typeorm_1 = require("typeorm");
8
+ const typeorm_naming_strategies_1 = require("typeorm-naming-strategies");
9
+ const response_entity_1 = require("./response-entity");
10
+ const node_crypto_1 = __importDefault(require("node:crypto"));
11
+ /**
12
+ * レスポンスを保存するデータベース
13
+ */
14
+ class ResponseDatabase {
15
+ constructor(options = {}) {
16
+ const configuration = {
17
+ DB_HOSTNAME: options.hostname ?? process.env.RESPONSE_DB_HOSTNAME,
18
+ DB_PORT: options.port ?? process.env.RESPONSE_DB_PORT,
19
+ DB_USERNAME: options.username ?? process.env.RESPONSE_DB_USERNAME,
20
+ DB_PASSWORD: options.password ?? process.env.RESPONSE_DB_PASSWORD,
21
+ DB_DATABASE: options.database ?? process.env.RESPONSE_DB_DATABASE,
22
+ };
23
+ // DB_PORTがintパースできない場合はエラー
24
+ // DB_PORTがundefinedの場合はデフォルトポートを使用する
25
+ const port = this.parsePort(configuration.DB_PORT);
26
+ this.dataSource = new typeorm_1.DataSource({
27
+ type: 'mysql',
28
+ host: configuration.DB_HOSTNAME,
29
+ port,
30
+ username: configuration.DB_USERNAME,
31
+ password: configuration.DB_PASSWORD,
32
+ database: configuration.DB_DATABASE,
33
+ synchronize: true,
34
+ logging: process.env.PRINT_DB_LOGS === 'true',
35
+ namingStrategy: new typeorm_naming_strategies_1.SnakeNamingStrategy(),
36
+ entities: [response_entity_1.DBResponse],
37
+ subscribers: [],
38
+ migrations: [],
39
+ timezone: '+09:00',
40
+ supportBigNumbers: true,
41
+ bigNumberStrings: true,
42
+ });
43
+ }
44
+ /**
45
+ * データソースを初期化する
46
+ *
47
+ * @returns 初期化に成功したかどうか
48
+ */
49
+ async init() {
50
+ if (this.dataSource.isInitialized) {
51
+ return true;
52
+ }
53
+ try {
54
+ await this.dataSource.initialize();
55
+ ResponseDatabase.printDebug('Responses database initialized');
56
+ return true;
57
+ }
58
+ catch (error) {
59
+ ResponseDatabase.printDebug('Responses database initialization failed', error);
60
+ return false;
61
+ }
62
+ }
63
+ /**
64
+ * データソースをマイグレーションする
65
+ */
66
+ async migrate() {
67
+ if (!this.dataSource.isInitialized) {
68
+ throw new Error('Responses database is not initialized');
69
+ }
70
+ if (this.dataSource.migrations.length === 0) {
71
+ return;
72
+ }
73
+ await this.dataSource.runMigrations();
74
+ }
75
+ /**
76
+ * データソーススキーマを同期する
77
+ */
78
+ async sync() {
79
+ if (!this.dataSource.isInitialized) {
80
+ throw new Error('Responses database is not initialized');
81
+ }
82
+ await this.dataSource.synchronize();
83
+ }
84
+ /**
85
+ * レスポンスを追加する
86
+ *
87
+ * @param options レスポンスの追加オプション
88
+ * @returns 追加されたレスポンス
89
+ */
90
+ async addResponse(options) {
91
+ if (!this.dataSource.isInitialized) {
92
+ throw new Error('Responses database is not initialized');
93
+ }
94
+ const response = new response_entity_1.DBResponse();
95
+ response.method = options.method;
96
+ response.endpoint = options.endpoint;
97
+ response.url = options.url;
98
+ response.urlHash = node_crypto_1.default
99
+ .createHash('sha256')
100
+ .update(options.url ?? '')
101
+ .digest('hex');
102
+ response.requestHeaders = options.requestHeaders;
103
+ response.requestBody = options.requestBody;
104
+ response.responseType = options.responseType;
105
+ response.statusCode = options.statusCode;
106
+ response.responseHeaders = options.responseHeaders;
107
+ response.responseBody = options.responseBody;
108
+ response.createdAt = new Date();
109
+ return response.save();
110
+ }
111
+ /**
112
+ * レスポンスを取得する。但し直近90日間のレスポンスのみ取得可能
113
+ *
114
+ * @param endpoint エンドポイントの情報。指定しない場合はすべてのレスポンスを取得する
115
+ * @param rangeOptions 取得するレスポンスの範囲
116
+ *
117
+ * @returns レスポンスの配列
118
+ */
119
+ async getResponses(endpoint, rangeOptions) {
120
+ if (!this.dataSource.isInitialized) {
121
+ throw new Error('Responses database is not initialized');
122
+ }
123
+ const options = rangeOptions ?? {};
124
+ const page = options.page;
125
+ const limit = options.limit;
126
+ // ResponseEndPointWithCountで来る場合があるので、ResponseEndPointに変換する
127
+ // 配列でない場合は配列に変換する
128
+ const endpoints = endpoint
129
+ ? Array.isArray(endpoint)
130
+ ? endpoint.map((v) => ({
131
+ method: v.method,
132
+ endpoint: v.endpoint,
133
+ statusCode: v.statusCode,
134
+ }))
135
+ : [
136
+ {
137
+ method: endpoint.method,
138
+ endpoint: endpoint.endpoint,
139
+ statusCode: endpoint.statusCode,
140
+ // 90日前以降のレスポンスのみ取得する
141
+ createdAt: (0, typeorm_1.MoreThanOrEqual)(new Date(Date.now() - 1000 * 60 * 60 * 24 * 90)),
142
+ },
143
+ ]
144
+ : {
145
+ // 90日前以降のレスポンスのみ取得する
146
+ createdAt: (0, typeorm_1.MoreThanOrEqual)(new Date(Date.now() - 1000 * 60 * 60 * 24 * 90)),
147
+ };
148
+ if (page === undefined || limit === undefined) {
149
+ return response_entity_1.DBResponse.find({ where: endpoints, order: { id: 'DESC' } });
150
+ }
151
+ if (page <= 0 || limit <= 0) {
152
+ throw new Error(`Responses database range is invalid (page: ${page}, limit: ${limit})`);
153
+ }
154
+ return response_entity_1.DBResponse.find({
155
+ where: endpoints,
156
+ order: { id: 'DESC' },
157
+ skip: (page - 1) * limit,
158
+ take: limit,
159
+ });
160
+ }
161
+ /**
162
+ * レスポンスの数を取得する。但し直近90日間のレスポンスのみ取得可能
163
+ *
164
+ * @param endpoint エンドポイントの情報。指定しない場合はすべてのレスポンスを取得する
165
+ * @returns レスポンスの数
166
+ */
167
+ async getResponseCount(endpoint) {
168
+ if (!this.dataSource.isInitialized) {
169
+ throw new Error('Responses database is not initialized');
170
+ }
171
+ const endpoints = endpoint
172
+ ? Array.isArray(endpoint)
173
+ ? endpoint.map((v) => ({
174
+ method: v.method,
175
+ endpoint: v.endpoint,
176
+ statusCode: v.statusCode,
177
+ createdAt: (0, typeorm_1.MoreThanOrEqual)(new Date(Date.now() - 1000 * 60 * 60 * 24 * 90)),
178
+ }))
179
+ : [
180
+ {
181
+ method: endpoint.method,
182
+ endpoint: endpoint.endpoint,
183
+ statusCode: endpoint.statusCode,
184
+ createdAt: (0, typeorm_1.MoreThanOrEqual)(new Date(Date.now() - 1000 * 60 * 60 * 24 * 90)),
185
+ },
186
+ ]
187
+ : {
188
+ // 90日前以降のレスポンスのみ取得する
189
+ createdAt: (0, typeorm_1.MoreThanOrEqual)(new Date(Date.now() - 1000 * 60 * 60 * 24 * 90)),
190
+ };
191
+ return response_entity_1.DBResponse.count({ where: endpoints });
192
+ }
193
+ /**
194
+ * エンドポイントを取得する。但し直近90日間のレスポンスのみ取得可能
195
+ */
196
+ async getEndpoints() {
197
+ if (!this.dataSource.isInitialized) {
198
+ throw new Error('Responses database is not initialized');
199
+ }
200
+ // method, endpointの組み合わせを取得する
201
+ return response_entity_1.DBResponse.createQueryBuilder()
202
+ .where({
203
+ responseType: 'JSON',
204
+ createdAt: (0, typeorm_1.MoreThan)(new Date(Date.now() - 1000 * 60 * 60 * 24 * 90)),
205
+ })
206
+ .groupBy('method, endpoint, status_code')
207
+ .select([
208
+ 'method',
209
+ 'endpoint',
210
+ 'status_code AS statusCode',
211
+ 'COUNT(*) AS count',
212
+ ])
213
+ .getRawMany();
214
+ }
215
+ async close() {
216
+ if (!this.dataSource.isInitialized) {
217
+ return;
218
+ }
219
+ await this.dataSource.destroy();
220
+ }
221
+ isInitialized() {
222
+ return this.dataSource.isInitialized;
223
+ }
224
+ /**
225
+ * データソースを取得する
226
+ *
227
+ * @returns データソース
228
+ */
229
+ getDataSource() {
230
+ return this.dataSource;
231
+ }
232
+ /**
233
+ * 環境変数で指定されたデータベースのポートをパースする。
234
+ * 数値にパースできない場合と1以上でない場合はエラーを投げる。
235
+ * undefinedの場合は、各データベースのデフォルトポートを使用する
236
+ *
237
+ * @param port データベースのポート
238
+ * @returns パースされたポート
239
+ */
240
+ parsePort(port) {
241
+ if (port === undefined) {
242
+ return 3306;
243
+ }
244
+ const parsedPort = Number.parseInt(port);
245
+ if (Number.isNaN(parsedPort) || parsedPort <= 0) {
246
+ throw new Error('Responses database port is invalid');
247
+ }
248
+ return parsedPort;
249
+ }
250
+ static printDebug(text, error) {
251
+ if (process.env.NODE_ENV !== 'development' &&
252
+ process.env.NODE_ENV !== 'test') {
253
+ return;
254
+ }
255
+ if (error !== undefined) {
256
+ console.error(`[PixivTs@ResponseDatabase] ${text}`, error);
257
+ return;
258
+ }
259
+ console.debug(`[PixivTs@ResponseDatabase] ${text}`);
260
+ }
261
+ }
262
+ exports.ResponseDatabase = ResponseDatabase;
263
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/saving-responses/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/saving-responses/index.test.ts"],"names":[],"mappings":""}