@book000/pixivts 0.55.1 → 0.56.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 (204) hide show
  1. package/README.md +115 -19
  2. package/dist/index.cjs +1317 -0
  3. package/dist/index.d.cts +1659 -0
  4. package/dist/index.d.ts +1659 -45
  5. package/dist/index.js +1304 -65
  6. package/package.json +35 -72
  7. package/dist/checks.d.ts +0 -19
  8. package/dist/checks.d.ts.map +0 -1
  9. package/dist/checks.js +0 -85
  10. package/dist/checks.js.map +0 -1
  11. package/dist/checks.test.d.ts +0 -2
  12. package/dist/checks.test.d.ts.map +0 -1
  13. package/dist/checks.test.js +0 -306
  14. package/dist/checks.test.js.map +0 -1
  15. package/dist/http-client.d.ts +0 -66
  16. package/dist/http-client.d.ts.map +0 -1
  17. package/dist/http-client.js +0 -138
  18. package/dist/http-client.js.map +0 -1
  19. package/dist/http-client.test.d.ts +0 -2
  20. package/dist/http-client.test.d.ts.map +0 -1
  21. package/dist/http-client.test.js +0 -149
  22. package/dist/http-client.test.js.map +0 -1
  23. package/dist/index.d.ts.map +0 -1
  24. package/dist/index.js.map +0 -1
  25. package/dist/options.d.ts +0 -317
  26. package/dist/options.d.ts.map +0 -1
  27. package/dist/options.js +0 -222
  28. package/dist/options.js.map +0 -1
  29. package/dist/options.test.d.ts +0 -2
  30. package/dist/options.test.d.ts.map +0 -1
  31. package/dist/options.test.js +0 -117
  32. package/dist/options.test.js.map +0 -1
  33. package/dist/pixiv.d.ts +0 -317
  34. package/dist/pixiv.d.ts.map +0 -1
  35. package/dist/pixiv.js +0 -810
  36. package/dist/pixiv.js.map +0 -1
  37. package/dist/pixiv.test.d.ts +0 -2
  38. package/dist/pixiv.test.d.ts.map +0 -1
  39. package/dist/pixiv.test.js +0 -883
  40. package/dist/pixiv.test.js.map +0 -1
  41. package/dist/saving-responses/index.d.ts +0 -130
  42. package/dist/saving-responses/index.d.ts.map +0 -1
  43. package/dist/saving-responses/index.js +0 -263
  44. package/dist/saving-responses/index.js.map +0 -1
  45. package/dist/saving-responses/index.test.d.ts +0 -2
  46. package/dist/saving-responses/index.test.d.ts.map +0 -1
  47. package/dist/saving-responses/index.test.js +0 -468
  48. package/dist/saving-responses/index.test.js.map +0 -1
  49. package/dist/saving-responses/response-entity.d.ts +0 -16
  50. package/dist/saving-responses/response-entity.d.ts.map +0 -1
  51. package/dist/saving-responses/response-entity.js +0 -101
  52. package/dist/saving-responses/response-entity.js.map +0 -1
  53. package/dist/types/endpoints/v1/illust/bookmark/delete.d.ts +0 -14
  54. package/dist/types/endpoints/v1/illust/bookmark/delete.d.ts.map +0 -1
  55. package/dist/types/endpoints/v1/illust/bookmark/delete.js +0 -3
  56. package/dist/types/endpoints/v1/illust/bookmark/delete.js.map +0 -1
  57. package/dist/types/endpoints/v1/illust/detail.d.ts +0 -25
  58. package/dist/types/endpoints/v1/illust/detail.d.ts.map +0 -1
  59. package/dist/types/endpoints/v1/illust/detail.js +0 -20
  60. package/dist/types/endpoints/v1/illust/detail.js.map +0 -1
  61. package/dist/types/endpoints/v1/illust/ranking.d.ts +0 -51
  62. package/dist/types/endpoints/v1/illust/ranking.d.ts.map +0 -1
  63. package/dist/types/endpoints/v1/illust/ranking.js +0 -40
  64. package/dist/types/endpoints/v1/illust/ranking.js.map +0 -1
  65. package/dist/types/endpoints/v1/illust/recommended.d.ts +0 -104
  66. package/dist/types/endpoints/v1/illust/recommended.d.ts.map +0 -1
  67. package/dist/types/endpoints/v1/illust/recommended.js +0 -44
  68. package/dist/types/endpoints/v1/illust/recommended.js.map +0 -1
  69. package/dist/types/endpoints/v1/illust/series.d.ts +0 -45
  70. package/dist/types/endpoints/v1/illust/series.d.ts.map +0 -1
  71. package/dist/types/endpoints/v1/illust/series.js +0 -31
  72. package/dist/types/endpoints/v1/illust/series.js.map +0 -1
  73. package/dist/types/endpoints/v1/illust/ugoira/metadata.d.ts +0 -25
  74. package/dist/types/endpoints/v1/illust/ugoira/metadata.d.ts.map +0 -1
  75. package/dist/types/endpoints/v1/illust/ugoira/metadata.js +0 -20
  76. package/dist/types/endpoints/v1/illust/ugoira/metadata.js.map +0 -1
  77. package/dist/types/endpoints/v1/manga/recommended.d.ts +0 -72
  78. package/dist/types/endpoints/v1/manga/recommended.d.ts.map +0 -1
  79. package/dist/types/endpoints/v1/manga/recommended.js +0 -33
  80. package/dist/types/endpoints/v1/manga/recommended.js.map +0 -1
  81. package/dist/types/endpoints/v1/novel/bookmark/delete.d.ts +0 -14
  82. package/dist/types/endpoints/v1/novel/bookmark/delete.d.ts.map +0 -1
  83. package/dist/types/endpoints/v1/novel/bookmark/delete.js +0 -3
  84. package/dist/types/endpoints/v1/novel/bookmark/delete.js.map +0 -1
  85. package/dist/types/endpoints/v1/novel/ranking.d.ts +0 -47
  86. package/dist/types/endpoints/v1/novel/ranking.d.ts.map +0 -1
  87. package/dist/types/endpoints/v1/novel/ranking.js +0 -39
  88. package/dist/types/endpoints/v1/novel/ranking.js.map +0 -1
  89. package/dist/types/endpoints/v1/novel/recommended.d.ts +0 -72
  90. package/dist/types/endpoints/v1/novel/recommended.d.ts.map +0 -1
  91. package/dist/types/endpoints/v1/novel/recommended.js +0 -32
  92. package/dist/types/endpoints/v1/novel/recommended.js.map +0 -1
  93. package/dist/types/endpoints/v1/novel/related.d.ts +0 -37
  94. package/dist/types/endpoints/v1/novel/related.d.ts.map +0 -1
  95. package/dist/types/endpoints/v1/novel/related.js +0 -24
  96. package/dist/types/endpoints/v1/novel/related.js.map +0 -1
  97. package/dist/types/endpoints/v1/search/illust.d.ts +0 -109
  98. package/dist/types/endpoints/v1/search/illust.d.ts.map +0 -1
  99. package/dist/types/endpoints/v1/search/illust.js +0 -40
  100. package/dist/types/endpoints/v1/search/illust.js.map +0 -1
  101. package/dist/types/endpoints/v1/search/novel.d.ts +0 -103
  102. package/dist/types/endpoints/v1/search/novel.d.ts.map +0 -1
  103. package/dist/types/endpoints/v1/search/novel.js +0 -38
  104. package/dist/types/endpoints/v1/search/novel.js.map +0 -1
  105. package/dist/types/endpoints/v1/user/bookmarks/illust.d.ts +0 -48
  106. package/dist/types/endpoints/v1/user/bookmarks/illust.d.ts.map +0 -1
  107. package/dist/types/endpoints/v1/user/bookmarks/illust.js +0 -31
  108. package/dist/types/endpoints/v1/user/bookmarks/illust.js.map +0 -1
  109. package/dist/types/endpoints/v1/user/bookmarks/novel.d.ts +0 -44
  110. package/dist/types/endpoints/v1/user/bookmarks/novel.d.ts.map +0 -1
  111. package/dist/types/endpoints/v1/user/bookmarks/novel.js +0 -28
  112. package/dist/types/endpoints/v1/user/bookmarks/novel.js.map +0 -1
  113. package/dist/types/endpoints/v1/user/detail.d.ts +0 -44
  114. package/dist/types/endpoints/v1/user/detail.d.ts.map +0 -1
  115. package/dist/types/endpoints/v1/user/detail.js +0 -26
  116. package/dist/types/endpoints/v1/user/detail.js.map +0 -1
  117. package/dist/types/endpoints/v1/user/follow/add.d.ts +0 -24
  118. package/dist/types/endpoints/v1/user/follow/add.d.ts.map +0 -1
  119. package/dist/types/endpoints/v1/user/follow/add.js +0 -3
  120. package/dist/types/endpoints/v1/user/follow/add.js.map +0 -1
  121. package/dist/types/endpoints/v1/user/follow/delete.d.ts +0 -14
  122. package/dist/types/endpoints/v1/user/follow/delete.d.ts.map +0 -1
  123. package/dist/types/endpoints/v1/user/follow/delete.js +0 -3
  124. package/dist/types/endpoints/v1/user/follow/delete.js.map +0 -1
  125. package/dist/types/endpoints/v1/user/following.d.ts +0 -38
  126. package/dist/types/endpoints/v1/user/following.d.ts.map +0 -1
  127. package/dist/types/endpoints/v1/user/following.js +0 -26
  128. package/dist/types/endpoints/v1/user/following.js.map +0 -1
  129. package/dist/types/endpoints/v1/user/illusts.d.ts +0 -51
  130. package/dist/types/endpoints/v1/user/illusts.d.ts.map +0 -1
  131. package/dist/types/endpoints/v1/user/illusts.js +0 -31
  132. package/dist/types/endpoints/v1/user/illusts.js.map +0 -1
  133. package/dist/types/endpoints/v1/user/novels.d.ts +0 -43
  134. package/dist/types/endpoints/v1/user/novels.d.ts.map +0 -1
  135. package/dist/types/endpoints/v1/user/novels.js +0 -29
  136. package/dist/types/endpoints/v1/user/novels.js.map +0 -1
  137. package/dist/types/endpoints/v2/illust/bookmark/add.d.ts +0 -28
  138. package/dist/types/endpoints/v2/illust/bookmark/add.d.ts.map +0 -1
  139. package/dist/types/endpoints/v2/illust/bookmark/add.js +0 -3
  140. package/dist/types/endpoints/v2/illust/bookmark/add.js.map +0 -1
  141. package/dist/types/endpoints/v2/illust/related.d.ts +0 -48
  142. package/dist/types/endpoints/v2/illust/related.d.ts.map +0 -1
  143. package/dist/types/endpoints/v2/illust/related.js +0 -32
  144. package/dist/types/endpoints/v2/illust/related.js.map +0 -1
  145. package/dist/types/endpoints/v2/novel/bookmark/add.d.ts +0 -27
  146. package/dist/types/endpoints/v2/novel/bookmark/add.d.ts.map +0 -1
  147. package/dist/types/endpoints/v2/novel/bookmark/add.js +0 -3
  148. package/dist/types/endpoints/v2/novel/bookmark/add.js.map +0 -1
  149. package/dist/types/endpoints/v2/novel/detail.d.ts +0 -25
  150. package/dist/types/endpoints/v2/novel/detail.d.ts.map +0 -1
  151. package/dist/types/endpoints/v2/novel/detail.js +0 -20
  152. package/dist/types/endpoints/v2/novel/detail.js.map +0 -1
  153. package/dist/types/endpoints/v2/novel/series.d.ts +0 -49
  154. package/dist/types/endpoints/v2/novel/series.d.ts.map +0 -1
  155. package/dist/types/endpoints/v2/novel/series.js +0 -31
  156. package/dist/types/endpoints/v2/novel/series.js.map +0 -1
  157. package/dist/types/endpoints/webview/v2/novel.d.ts +0 -21
  158. package/dist/types/endpoints/webview/v2/novel.d.ts.map +0 -1
  159. package/dist/types/endpoints/webview/v2/novel.js +0 -18
  160. package/dist/types/endpoints/webview/v2/novel.js.map +0 -1
  161. package/dist/types/error-response.d.ts +0 -31
  162. package/dist/types/error-response.d.ts.map +0 -1
  163. package/dist/types/error-response.js +0 -3
  164. package/dist/types/error-response.js.map +0 -1
  165. package/dist/types/errors.d.ts +0 -7
  166. package/dist/types/errors.d.ts.map +0 -1
  167. package/dist/types/errors.js +0 -14
  168. package/dist/types/errors.js.map +0 -1
  169. package/dist/types/pixiv-common.d.ts +0 -103
  170. package/dist/types/pixiv-common.d.ts.map +0 -1
  171. package/dist/types/pixiv-common.js +0 -68
  172. package/dist/types/pixiv-common.js.map +0 -1
  173. package/dist/types/pixiv-illust-series.d.ts +0 -56
  174. package/dist/types/pixiv-illust-series.d.ts.map +0 -1
  175. package/dist/types/pixiv-illust-series.js +0 -26
  176. package/dist/types/pixiv-illust-series.js.map +0 -1
  177. package/dist/types/pixiv-illust.d.ts +0 -180
  178. package/dist/types/pixiv-illust.d.ts.map +0 -1
  179. package/dist/types/pixiv-illust.js +0 -56
  180. package/dist/types/pixiv-illust.js.map +0 -1
  181. package/dist/types/pixiv-novel-series.d.ts +0 -84
  182. package/dist/types/pixiv-novel-series.d.ts.map +0 -1
  183. package/dist/types/pixiv-novel-series.js +0 -43
  184. package/dist/types/pixiv-novel-series.js.map +0 -1
  185. package/dist/types/pixiv-novel.d.ts +0 -131
  186. package/dist/types/pixiv-novel.d.ts.map +0 -1
  187. package/dist/types/pixiv-novel.js +0 -44
  188. package/dist/types/pixiv-novel.js.map +0 -1
  189. package/dist/types/pixiv-ugoira.d.ts +0 -50
  190. package/dist/types/pixiv-ugoira.d.ts.map +0 -1
  191. package/dist/types/pixiv-ugoira.js +0 -34
  192. package/dist/types/pixiv-ugoira.js.map +0 -1
  193. package/dist/types/pixiv-user.d.ts +0 -212
  194. package/dist/types/pixiv-user.d.ts.map +0 -1
  195. package/dist/types/pixiv-user.js +0 -118
  196. package/dist/types/pixiv-user.js.map +0 -1
  197. package/dist/utils.d.ts +0 -3
  198. package/dist/utils.d.ts.map +0 -1
  199. package/dist/utils.js +0 -15
  200. package/dist/utils.js.map +0 -1
  201. package/dist/utils.test.d.ts +0 -2
  202. package/dist/utils.test.d.ts.map +0 -1
  203. package/dist/utils.test.js +0 -15
  204. package/dist/utils.test.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@book000/pixivts",
3
- "version": "0.55.1",
3
+ "version": "0.56.0",
4
4
  "description": "pixiv Unofficial API Library for TypeScript",
5
5
  "keywords": [
6
6
  "pixiv",
@@ -15,84 +15,47 @@
15
15
  },
16
16
  "license": "MIT",
17
17
  "author": "Tomachi <tomachi@tomacheese.com>",
18
- "files": [
19
- "dist"
20
- ],
21
- "main": "dist/index.js",
22
- "types": "dist/index.d.ts",
23
18
  "repository": {
24
19
  "type": "git",
25
- "url": "git@github.com:book000/pixivts.git"
20
+ "url": "git+https://github.com/book000/pixivts.git",
21
+ "directory": "packages/core"
26
22
  },
27
- "dependencies": {
28
- "@types/qs": "6.15.1",
29
- "mysql2": "3.22.5",
30
- "qs": "6.15.2",
31
- "snake-camel-types": "1.0.1",
32
- "typeorm": "1.0.0",
33
- "typeorm-naming-strategies": "4.1.0"
23
+ "type": "module",
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "main": "./dist/index.cjs",
28
+ "module": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "import": {
33
+ "types": "./dist/index.d.ts",
34
+ "default": "./dist/index.js"
35
+ },
36
+ "require": {
37
+ "types": "./dist/index.d.cts",
38
+ "default": "./dist/index.cjs"
39
+ }
40
+ }
34
41
  },
35
42
  "devDependencies": {
36
- "@book000/eslint-config": "1.15.2",
37
- "@types/jest": "30.0.0",
38
43
  "@types/node": "24.13.2",
39
- "ctix": "2.8.1",
40
- "eslint": "10.4.1",
41
- "eslint-config-standard": "17.1.0",
42
- "eslint-plugin-import": "2.32.0",
43
- "eslint-plugin-n": "18.1.0",
44
- "eslint-plugin-promise": "7.3.0",
45
- "jest": "30.4.2",
46
- "prettier": "3.8.4",
47
- "rimraf": "6.1.3",
48
- "run-z": "2.1.0",
49
- "ts-jest": "29.4.11",
50
- "typedoc": "0.28.19",
51
- "typescript": "6.0.3"
52
- },
53
- "jest": {
54
- "moduleFileExtensions": [
55
- "ts",
56
- "js"
57
- ],
58
- "transform": {
59
- ".+\\.ts$": [
60
- "ts-jest",
61
- {
62
- "tsconfig": "tsconfig.json"
63
- }
64
- ]
65
- },
66
- "testMatch": [
67
- "**/*.test.ts"
68
- ],
69
- "collectCoverage": true,
70
- "coverageDirectory": "coverage",
71
- "coverageReporters": [
72
- "text",
73
- "lcov",
74
- "html"
75
- ],
76
- "collectCoverageFrom": [
77
- "src/**/*.ts",
78
- "!src/index.ts",
79
- "!src/**/*.test.ts",
80
- "!src/types/**"
81
- ]
44
+ "@vitest/coverage-v8": "3.2.4",
45
+ "msw": "2.7.4",
46
+ "tsup": "8.5.0",
47
+ "typedoc": "^0.28.19",
48
+ "typescript": "6.0.3",
49
+ "vitest": "3.2.4",
50
+ "zod": "3.24.1"
82
51
  },
83
52
  "scripts": {
84
- "build": "run-z clean ctix compile generate-docs",
85
- "clean": "rimraf dist output docs tsconfig.tsbuildinfo tsconfig.build.tsbuildinfo",
86
- "compile": "tsc -p tsconfig.build.json",
87
- "ctix": "ctix build --mode bundle -o src -w --backup false --use-semicolon false --generation-style default-alias-named-star",
88
- "generate-docs": "typedoc --gitRevision master src/index.ts",
89
- "fix": "run-z fix:prettier fix:eslint ctix",
90
- "fix:eslint": "eslint . -c eslint.config.mjs --fix",
91
- "fix:prettier": "prettier --write src",
92
- "test": "jest --coverage",
93
- "lint": "run-z lint:prettier,lint:eslint,lint:tsc",
94
- "lint:eslint": "eslint . -c eslint.config.mjs",
95
- "lint:prettier": "prettier --check src",
96
- "lint:tsc": "tsc"
53
+ "build": "tsup",
54
+ "build:dts-guard": "node ../../scripts/check-dts-no-zod.mjs",
55
+ "clean": "rimraf dist",
56
+ "generate-docs": "typedoc",
57
+ "lint": "tsc --noEmit",
58
+ "fix": "echo 'no fix needed'",
59
+ "test:e2e": "vitest run --config vitest.e2e.config.ts"
97
60
  }
98
61
  }
package/dist/checks.d.ts DELETED
@@ -1,19 +0,0 @@
1
- export type CheckFunction<T> = (data: T) => boolean;
2
- export type CheckFunctions<T> = Record<string, CheckFunction<T>>;
3
- export declare abstract class BaseSimpleCheck<T> {
4
- abstract checks(): CheckFunctions<T>;
5
- getFailedChecks(data: T, reThrow?: boolean): string[];
6
- is(data: T): data is T;
7
- throwIfFailed(data: T): boolean;
8
- }
9
- export declare abstract class BaseMultipleCheck<T, U> {
10
- abstract requestChecks(): CheckFunctions<T>;
11
- abstract responseChecks(): CheckFunctions<U>;
12
- getFailureRequestChecks(data: T, reThrow?: boolean): string[];
13
- isRequest(data: T): data is T;
14
- throwIfRequestFailed(data: T): boolean;
15
- getFailedResponseChecks(data: U, reThrow?: boolean): string[];
16
- isResponse(data: U): data is U;
17
- throwIfResponseFailed(data: U): boolean;
18
- }
19
- //# sourceMappingURL=checks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAA;AACnD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhE,8BAAsB,eAAe,CAAC,CAAC;IACrC,QAAQ,CAAC,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IAEpC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,UAAQ,GAAG,MAAM,EAAE;IAenD,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;IAItB,aAAa,CAAC,IAAI,EAAE,CAAC;CAOtB;AAED,8BAAsB,iBAAiB,CAAC,CAAC,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,IAAI,cAAc,CAAC,CAAC,CAAC;IAE3C,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC;IAE5C,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,UAAQ,GAAG,MAAM,EAAE;IAe3D,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;IAI7B,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAQ5B,uBAAuB,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,UAAQ,GAAG,MAAM,EAAE;IAe3D,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;IAI9B,qBAAqB,CAAC,IAAI,EAAE,CAAC;CAO9B"}
package/dist/checks.js DELETED
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseMultipleCheck = exports.BaseSimpleCheck = void 0;
4
- class BaseSimpleCheck {
5
- getFailedChecks(data, reThrow = false) {
6
- const checks = this.checks();
7
- return Object.keys(checks).filter((key) => {
8
- // Returns true if it failed
9
- try {
10
- return !checks[key](data); // Success if it returns true without throwing (returns false)
11
- }
12
- catch (error) {
13
- if (reThrow) {
14
- throw error;
15
- }
16
- return true; // An exception means failure (true)
17
- }
18
- });
19
- }
20
- is(data) {
21
- return this.getFailedChecks(data).length === 0;
22
- }
23
- throwIfFailed(data) {
24
- const failedChecks = this.getFailedChecks(data, true);
25
- if (failedChecks.length > 0) {
26
- throw new Error(`Failed checks: ${failedChecks.join(', ')}`);
27
- }
28
- return true;
29
- }
30
- }
31
- exports.BaseSimpleCheck = BaseSimpleCheck;
32
- class BaseMultipleCheck {
33
- getFailureRequestChecks(data, reThrow = false) {
34
- const checks = this.requestChecks();
35
- return Object.keys(checks).filter((key) => {
36
- // Returns true if it failed
37
- try {
38
- return !checks[key](data); // Success if it returns true without throwing (returns false)
39
- }
40
- catch (error) {
41
- if (reThrow) {
42
- throw error;
43
- }
44
- return true; // An exception means failure (true)
45
- }
46
- });
47
- }
48
- isRequest(data) {
49
- return this.getFailureRequestChecks(data).length === 0;
50
- }
51
- throwIfRequestFailed(data) {
52
- const failedChecks = this.getFailureRequestChecks(data, true);
53
- if (failedChecks.length > 0) {
54
- throw new Error(`Failed checks: ${failedChecks.join(', ')}`);
55
- }
56
- return true;
57
- }
58
- getFailedResponseChecks(data, reThrow = false) {
59
- const checks = this.responseChecks();
60
- return Object.keys(checks).filter((key) => {
61
- // Returns true if it failed
62
- try {
63
- return !checks[key](data); // Success if it returns true without throwing (returns false)
64
- }
65
- catch (error) {
66
- if (reThrow) {
67
- throw error;
68
- }
69
- return true; // An exception means failure (true)
70
- }
71
- });
72
- }
73
- isResponse(data) {
74
- return this.getFailedResponseChecks(data).length === 0;
75
- }
76
- throwIfResponseFailed(data) {
77
- const failedChecks = this.getFailedResponseChecks(data, true);
78
- if (failedChecks.length > 0) {
79
- throw new Error(`Failed checks: ${failedChecks.join(', ')}`);
80
- }
81
- return true;
82
- }
83
- }
84
- exports.BaseMultipleCheck = BaseMultipleCheck;
85
- //# sourceMappingURL=checks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=checks.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checks.test.d.ts","sourceRoot":"","sources":["../src/checks.test.ts"],"names":[],"mappings":""}
@@ -1,306 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const checks_1 = require("./checks");
4
- class SimpleCheckTest extends checks_1.BaseSimpleCheck {
5
- checks() {
6
- return {
7
- isObject: (data) => typeof data === 'object',
8
- hasName: (data) => 'name' in data && typeof data.name === 'string',
9
- nameNotEmpty: (data) => {
10
- return ('name' in data &&
11
- typeof data.name === 'string' &&
12
- data.name.length > 0);
13
- },
14
- hasValidAge: (data) => {
15
- return 'age' in data && typeof data.age === 'number' && data.age >= 0;
16
- },
17
- throwingCheck: () => {
18
- throw new Error('Test error');
19
- },
20
- };
21
- }
22
- }
23
- class MultipleCheckTest extends checks_1.BaseMultipleCheck {
24
- requestChecks() {
25
- return {
26
- isObject: (data) => typeof data === 'object',
27
- hasId: (data) => 'id' in data && typeof data.id === 'number',
28
- idPositive: (data) => {
29
- return 'id' in data && typeof data.id === 'number' && data.id > 0;
30
- },
31
- throwingCheck: () => {
32
- throw new Error('Test error in request');
33
- },
34
- };
35
- }
36
- responseChecks() {
37
- return {
38
- isObject: (data) => typeof data === 'object',
39
- hasData: (data) => 'data' in data,
40
- dataIsArray: (data) => {
41
- return 'data' in data && Array.isArray(data.data);
42
- },
43
- throwingCheck: () => {
44
- throw new Error('Test error in response');
45
- },
46
- };
47
- }
48
- }
49
- describe('BaseSimpleCheck', () => {
50
- let simpleCheck;
51
- beforeEach(() => {
52
- simpleCheck = new SimpleCheckTest();
53
- });
54
- describe('getFailedChecks', () => {
55
- it('should return appropriate failures for valid data', () => {
56
- const data = { name: 'Test', age: 20 };
57
- const failedChecks = simpleCheck.getFailedChecks(data);
58
- // throwingCheck always fails, so check that the other checks pass
59
- expect(failedChecks).toEqual(['throwingCheck']);
60
- });
61
- it('should return all failed check names for invalid data', () => {
62
- const data = { name: '', age: -5 };
63
- const failedChecks = simpleCheck.getFailedChecks(data);
64
- // Check that other validations fail in addition to throwingCheck
65
- expect(failedChecks).toContain('nameNotEmpty');
66
- expect(failedChecks).toContain('hasValidAge');
67
- expect(failedChecks).toContain('throwingCheck');
68
- });
69
- it('should include throwing checks by default', () => {
70
- const data = { name: 'Test', age: 20 };
71
- const failedChecks = simpleCheck.getFailedChecks(data);
72
- expect(failedChecks).toContain('throwingCheck');
73
- });
74
- it('should rethrow exceptions when reThrow is true', () => {
75
- const data = { name: 'Test', age: 20 };
76
- expect(() => simpleCheck.getFailedChecks(data, true)).toThrow('Test error');
77
- });
78
- });
79
- describe('is', () => {
80
- it('should return true for valid data', () => {
81
- const data = { name: 'Test', age: 20 };
82
- // throwingCheck always fails because it throws an error, but exclude it for this test
83
- jest.spyOn(simpleCheck, 'getFailedChecks').mockReturnValue([]);
84
- expect(simpleCheck.is(data)).toBe(true);
85
- });
86
- it('should return false for invalid data', () => {
87
- // Fixed to avoid assigning a string to a number property
88
- const data = { name: 'Test' }; // only name is specified, age is undefined
89
- expect(simpleCheck.is(data)).toBe(false);
90
- });
91
- });
92
- describe('throwIfFailed', () => {
93
- it('should not throw for valid data when mocked', () => {
94
- const data = { name: 'Test', age: 20 };
95
- // throwingCheck always fails because it throws an error, but exclude it for this test
96
- jest.spyOn(simpleCheck, 'getFailedChecks').mockReturnValue([]);
97
- expect(() => simpleCheck.throwIfFailed(data)).not.toThrow();
98
- expect(simpleCheck.throwIfFailed(data)).toBe(true);
99
- });
100
- it('should throw with correct message for invalid data', () => {
101
- const data = { name: '', age: -5 };
102
- // nameNotEmpty and hasValidAge also fail in addition to throwingCheck,
103
- // so mock the getFailedChecks result to contain only the specific errors
104
- jest
105
- .spyOn(simpleCheck, 'getFailedChecks')
106
- .mockReturnValue(['nameNotEmpty', 'hasValidAge']);
107
- expect(() => simpleCheck.throwIfFailed(data)).toThrow('Failed checks: nameNotEmpty, hasValidAge');
108
- });
109
- });
110
- });
111
- describe('BaseMultipleCheck', () => {
112
- let multipleCheck;
113
- beforeEach(() => {
114
- multipleCheck = new MultipleCheckTest();
115
- });
116
- describe('getFailureRequestChecks', () => {
117
- it('should return empty array for valid request data', () => {
118
- const data = { id: 1 };
119
- // throwingCheck always fails because it throws an error, but ignore it for this test
120
- jest.spyOn(multipleCheck, 'requestChecks').mockImplementation(() => {
121
- return {
122
- isObject: (data) => typeof data === 'object',
123
- hasId: (data) => 'id' in data && typeof data.id === 'number',
124
- idPositive: (data) => {
125
- return 'id' in data && typeof data.id === 'number' && data.id > 0;
126
- },
127
- throwingCheck: () => {
128
- throw new Error('Test error in request');
129
- },
130
- };
131
- });
132
- // Without overwriting throwingCheck in the requestChecks result,
133
- // partially mock getFailureRequestChecks to ignore the failure caused by throwingCheck
134
- const originalGetFailureRequestChecks = multipleCheck.getFailureRequestChecks.bind(multipleCheck);
135
- jest
136
- .spyOn(multipleCheck, 'getFailureRequestChecks')
137
- .mockImplementation((data, reThrow = false) => {
138
- const failures = originalGetFailureRequestChecks(data, reThrow);
139
- return failures.filter((key) => key !== 'throwingCheck');
140
- });
141
- const failedChecks = multipleCheck.getFailureRequestChecks(data);
142
- expect(failedChecks).toEqual([]);
143
- });
144
- it('should return failed check names for invalid request data', () => {
145
- const data = { id: 0 };
146
- // throwingCheck always fails because it throws an error, but ignore it for this test
147
- jest.spyOn(multipleCheck, 'requestChecks').mockImplementation(() => {
148
- return {
149
- isObject: (data) => typeof data === 'object',
150
- hasId: (data) => 'id' in data && typeof data.id === 'number',
151
- idPositive: (data) => {
152
- return 'id' in data && typeof data.id === 'number' && data.id > 0;
153
- },
154
- throwingCheck: () => {
155
- throw new Error('Test error in request');
156
- },
157
- };
158
- });
159
- // Without overwriting throwingCheck in the requestChecks result,
160
- // partially mock getFailureRequestChecks to ignore the failure caused by throwingCheck
161
- const originalGetFailureRequestChecks = multipleCheck.getFailureRequestChecks.bind(multipleCheck);
162
- jest
163
- .spyOn(multipleCheck, 'getFailureRequestChecks')
164
- .mockImplementation((data, reThrow = false) => {
165
- const failures = originalGetFailureRequestChecks(data, reThrow);
166
- return failures.filter((key) => key !== 'throwingCheck');
167
- });
168
- const failedChecks = multipleCheck.getFailureRequestChecks(data);
169
- expect(failedChecks).toEqual(['idPositive']);
170
- });
171
- it('should include throwing checks by default', () => {
172
- const data = { id: 1 };
173
- const failedChecks = multipleCheck.getFailureRequestChecks(data);
174
- expect(failedChecks).toContain('throwingCheck');
175
- });
176
- it('should rethrow exceptions when reThrow is true', () => {
177
- const data = { id: 1 };
178
- expect(() => multipleCheck.getFailureRequestChecks(data, true)).toThrow('Test error in request');
179
- });
180
- });
181
- describe('isRequest', () => {
182
- it('should return true for valid request data', () => {
183
- const data = { id: 1 };
184
- // throwingCheck always fails because it throws an error, but exclude it for this test
185
- jest.spyOn(multipleCheck, 'getFailureRequestChecks').mockReturnValue([]);
186
- expect(multipleCheck.isRequest(data)).toBe(true);
187
- });
188
- it('should return false for invalid request data', () => {
189
- // Fixed to avoid assigning a string to a number property
190
- const data = {}; // id is not specified
191
- expect(multipleCheck.isRequest(data)).toBe(false);
192
- });
193
- });
194
- describe('throwIfRequestFailed', () => {
195
- it('should not throw for valid request data', () => {
196
- const data = { id: 1 };
197
- // throwingCheck always fails because it throws an error, but exclude it for this test
198
- jest.spyOn(multipleCheck, 'getFailureRequestChecks').mockReturnValue([]);
199
- expect(() => multipleCheck.throwIfRequestFailed(data)).not.toThrow();
200
- expect(multipleCheck.throwIfRequestFailed(data)).toBe(true);
201
- });
202
- it('should throw for invalid request data', () => {
203
- const data = { id: -1 };
204
- // throwingCheck always fails because it throws an error, but partially ignore it for this test
205
- const spy = jest.spyOn(multipleCheck, 'getFailureRequestChecks');
206
- spy.mockReturnValue(['idPositive']);
207
- expect(() => multipleCheck.throwIfRequestFailed(data)).toThrow('Failed checks: idPositive');
208
- spy.mockRestore();
209
- });
210
- });
211
- describe('getFailedResponseChecks', () => {
212
- it('should return empty array for valid response data', () => {
213
- const data = { data: [] };
214
- // throwingCheck always fails because it throws an error, but ignore it for this test
215
- jest.spyOn(multipleCheck, 'responseChecks').mockImplementation(() => {
216
- return {
217
- isObject: (data) => typeof data === 'object',
218
- hasData: (data) => 'data' in data,
219
- dataIsArray: (data) => {
220
- return 'data' in data && Array.isArray(data.data);
221
- },
222
- throwingCheck: () => {
223
- throw new Error('Test error in response');
224
- },
225
- };
226
- });
227
- // Without overwriting throwingCheck in the responseChecks result,
228
- // partially mock getFailedResponseChecks to ignore the failure caused by throwingCheck
229
- const originalGetFailedResponseChecks = multipleCheck.getFailedResponseChecks.bind(multipleCheck);
230
- jest
231
- .spyOn(multipleCheck, 'getFailedResponseChecks')
232
- .mockImplementation((data, reThrow = false) => {
233
- const failures = originalGetFailedResponseChecks(data, reThrow);
234
- return failures.filter((key) => key !== 'throwingCheck');
235
- });
236
- const failedChecks = multipleCheck.getFailedResponseChecks(data);
237
- expect(failedChecks).toEqual([]);
238
- });
239
- it('should return failed check names for invalid response data', () => {
240
- const data = { data: 'not an array' };
241
- // throwingCheck always fails because it throws an error, but ignore it for this test
242
- jest.spyOn(multipleCheck, 'responseChecks').mockImplementation(() => {
243
- return {
244
- isObject: (data) => typeof data === 'object',
245
- hasData: (data) => 'data' in data,
246
- dataIsArray: (data) => {
247
- return 'data' in data && Array.isArray(data.data);
248
- },
249
- throwingCheck: () => {
250
- throw new Error('Test error in response');
251
- },
252
- };
253
- });
254
- // Without overwriting throwingCheck in the responseChecks result,
255
- // partially mock getFailedResponseChecks to ignore the failure caused by throwingCheck
256
- const originalGetFailedResponseChecks = multipleCheck.getFailedResponseChecks.bind(multipleCheck);
257
- jest
258
- .spyOn(multipleCheck, 'getFailedResponseChecks')
259
- .mockImplementation((data, reThrow = false) => {
260
- const failures = originalGetFailedResponseChecks(data, reThrow);
261
- return failures.filter((key) => key !== 'throwingCheck');
262
- });
263
- const failedChecks = multipleCheck.getFailedResponseChecks(data);
264
- expect(failedChecks).toEqual(['dataIsArray']);
265
- });
266
- it('should include throwing checks by default', () => {
267
- const data = { data: [] };
268
- const failedChecks = multipleCheck.getFailedResponseChecks(data);
269
- expect(failedChecks).toContain('throwingCheck');
270
- });
271
- it('should rethrow exceptions when reThrow is true', () => {
272
- const data = { data: [] };
273
- expect(() => multipleCheck.getFailedResponseChecks(data, true)).toThrow('Test error in response');
274
- });
275
- });
276
- describe('isResponse', () => {
277
- it('should return true for valid response data', () => {
278
- const data = { data: [] };
279
- // throwingCheck always fails because it throws an error, but exclude it for this test
280
- jest.spyOn(multipleCheck, 'getFailedResponseChecks').mockReturnValue([]);
281
- expect(multipleCheck.isResponse(data)).toBe(true);
282
- });
283
- it('should return false for invalid response data', () => {
284
- const data = { data: 'not an array' };
285
- expect(multipleCheck.isResponse(data)).toBe(false);
286
- });
287
- });
288
- describe('throwIfResponseFailed', () => {
289
- it('should not throw for valid response data', () => {
290
- const data = { data: [] };
291
- // throwingCheck always fails because it throws an error, but exclude it for this test
292
- jest.spyOn(multipleCheck, 'getFailedResponseChecks').mockReturnValue([]);
293
- expect(() => multipleCheck.throwIfResponseFailed(data)).not.toThrow();
294
- expect(multipleCheck.throwIfResponseFailed(data)).toBe(true);
295
- });
296
- it('should throw for invalid response data', () => {
297
- const data = { data: 'not an array' };
298
- // throwingCheck always fails because it throws an error, but partially ignore it for this test
299
- const spy = jest.spyOn(multipleCheck, 'getFailedResponseChecks');
300
- spy.mockReturnValue(['dataIsArray']);
301
- expect(() => multipleCheck.throwIfResponseFailed(data)).toThrow('Failed checks: dataIsArray');
302
- spy.mockRestore();
303
- });
304
- });
305
- });
306
- //# sourceMappingURL=checks.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checks.test.js","sourceRoot":"","sources":["../src/checks.test.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- /**
2
- * Retry settings for 429 errors.
3
- */
4
- export interface PixivRateLimitRetryOptions {
5
- /**
6
- * Maximum number of retries when a request hits the rate limit.
7
- */
8
- maxRetries: number;
9
- /**
10
- * Wait time (in milliseconds) before retrying when a request hits the rate limit.
11
- */
12
- waitMs: number;
13
- }
14
- /**
15
- * Response to a request to the pixiv API.
16
- */
17
- export interface PixivApiResponse<T> {
18
- data: T;
19
- status: number;
20
- headers: Record<string, string>;
21
- requestHeaders: Record<string, string>;
22
- requestBody: string | null;
23
- responseUrl: string | undefined;
24
- }
25
- /**
26
- * Client that performs HTTP requests to the pixiv API.
27
- *
28
- * When a 429 (rate limit) response is received, it automatically retries
29
- * based on the Retry-After header or the configured wait time.
30
- */
31
- export declare class PixivHttpClient {
32
- private readonly baseURL;
33
- private readonly defaultHeaders;
34
- private readonly rateLimitRetryOptions;
35
- /**
36
- * Constructor.
37
- *
38
- * @param baseURL Base URL for requests
39
- * @param headers Default headers to attach to all requests
40
- * @param rateLimitRetryOptions Retry settings for 429 errors
41
- */
42
- constructor(baseURL: string, headers: Record<string, string>, rateLimitRetryOptions?: PixivRateLimitRetryOptions | null);
43
- /**
44
- * Sends a GET request.
45
- *
46
- * @param path Request path
47
- * @param options Options such as query parameters
48
- * @returns Response
49
- */
50
- get<U>(path: string, options?: {
51
- params?: Record<string, any>;
52
- }): Promise<PixivApiResponse<U>>;
53
- /**
54
- * Sends a POST request.
55
- *
56
- * @param path Request path
57
- * @param body Request body
58
- * @param options Options such as headers
59
- * @returns Response
60
- */
61
- post<U>(path: string, body: string, options?: {
62
- headers?: Record<string, string>;
63
- }): Promise<PixivApiResponse<U>>;
64
- private fetchWithRetry;
65
- }
66
- //# sourceMappingURL=http-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;CAChC;AAyCD;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAmC;IAEzE;;;;;;OAMG;gBAED,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,qBAAqB,CAAC,EAAE,0BAA0B,GAAG,IAAI;IAO3D;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,EACT,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAO,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAwB/B;;;;;;;OAOG;IACG,IAAI,CAAC,CAAC,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAO,GACjD,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAuBjB,cAAc;CA4B7B"}