narou 0.8.0 → 0.9.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 (130) hide show
  1. package/dist/chunk-3UZPHZZH.js +43 -0
  2. package/dist/chunk-46WN4HIZ.js +25 -0
  3. package/dist/chunk-55V5YY6H.js +71 -0
  4. package/dist/chunk-5OZA6DNS.js +14 -0
  5. package/dist/chunk-67BSHN66.js +82 -0
  6. package/dist/chunk-6SHYBHWX.js +0 -0
  7. package/dist/chunk-AIRK7Y7G.js +0 -0
  8. package/dist/chunk-C54MSVRN.js +3064 -0
  9. package/dist/chunk-EQL67JCA.js +38 -0
  10. package/dist/chunk-IKR7OZGM.js +49 -0
  11. package/dist/chunk-IVQKYEQQ.js +371 -0
  12. package/dist/chunk-JFVJBECE.js +36 -0
  13. package/dist/chunk-JS5XPNGB.js +93 -0
  14. package/dist/chunk-OVGZ6RWT.js +23 -0
  15. package/dist/chunk-U3H4E2XZ.js +396 -0
  16. package/dist/index.browser.cjs +1221 -0
  17. package/dist/index.browser.d.cts +40 -0
  18. package/dist/index.browser.d.ts +40 -36
  19. package/dist/index.browser.js +127 -83
  20. package/dist/index.cjs +4305 -0
  21. package/dist/index.common.cjs +1032 -0
  22. package/dist/index.common.d.cts +6 -0
  23. package/dist/index.common.d.ts +6 -15
  24. package/dist/index.common.js +74 -35
  25. package/dist/index.d.cts +47 -0
  26. package/dist/index.d.ts +47 -43
  27. package/dist/index.js +132 -91
  28. package/dist/narou-61329eea.d.ts +298 -0
  29. package/dist/narou-98ededc8.d.ts +298 -0
  30. package/dist/narou-fetch.cjs +3190 -0
  31. package/dist/narou-fetch.d.cts +16 -0
  32. package/dist/narou-fetch.d.ts +16 -13
  33. package/dist/narou-fetch.js +10 -46
  34. package/dist/narou-jsonp.cjs +158 -0
  35. package/dist/narou-jsonp.d.cts +13 -0
  36. package/dist/narou-jsonp.d.ts +13 -10
  37. package/dist/narou-jsonp.js +10 -24
  38. package/dist/narou-ranking-results.cjs +18 -0
  39. package/dist/narou-ranking-results.d.cts +4 -0
  40. package/dist/narou-ranking-results.d.ts +4 -10
  41. package/dist/narou-ranking-results.js +1 -3
  42. package/dist/narou-search-results-6727b1ce.d.ts +716 -0
  43. package/dist/narou-search-results-b7c10db0.d.ts +716 -0
  44. package/dist/narou-search-results.cjs +61 -0
  45. package/dist/narou-search-results.d.cts +2 -0
  46. package/dist/narou-search-results.d.ts +2 -131
  47. package/dist/narou-search-results.js +11 -63
  48. package/dist/narou.cjs +108 -0
  49. package/dist/narou.d.cts +4 -0
  50. package/dist/narou.d.ts +4 -26
  51. package/dist/narou.js +8 -30
  52. package/dist/params.cjs +436 -0
  53. package/dist/params.d.cts +2 -0
  54. package/dist/params.d.ts +2 -324
  55. package/dist/params.js +39 -247
  56. package/dist/ranking-history.cjs +38 -0
  57. package/dist/ranking-history.d.cts +17 -0
  58. package/dist/ranking-history.d.ts +17 -14
  59. package/dist/ranking-history.js +7 -14
  60. package/dist/ranking.cjs +659 -0
  61. package/dist/ranking.d.cts +47 -0
  62. package/dist/ranking.d.ts +47 -46
  63. package/dist/ranking.js +9 -87
  64. package/dist/search-builder-r18.cjs +473 -0
  65. package/dist/search-builder-r18.d.cts +32 -0
  66. package/dist/search-builder-r18.d.ts +32 -29
  67. package/dist/search-builder-r18.js +9 -45
  68. package/dist/search-builder.cjs +510 -0
  69. package/dist/search-builder.d.cts +4 -0
  70. package/dist/search-builder.d.ts +4 -220
  71. package/dist/search-builder.js +12 -381
  72. package/dist/user-search.cjs +300 -0
  73. package/dist/user-search.d.cts +66 -0
  74. package/dist/user-search.d.ts +66 -63
  75. package/dist/user-search.js +9 -94
  76. package/dist/util/jsonp.cjs +62 -0
  77. package/dist/util/jsonp.d.cts +13 -0
  78. package/dist/util/jsonp.d.ts +13 -17
  79. package/dist/util/jsonp.js +7 -46
  80. package/dist/util/type.cjs +18 -0
  81. package/dist/util/type.d.cts +4 -0
  82. package/dist/util/type.d.ts +4 -4
  83. package/dist/util/type.js +0 -3
  84. package/dist/util/unzipp.cjs +47 -0
  85. package/dist/util/unzipp.d.cts +3 -0
  86. package/dist/util/unzipp.d.ts +3 -4
  87. package/dist/util/unzipp.js +7 -12
  88. package/package.json +35 -33
  89. package/src/narou-fetch.ts +6 -16
  90. package/src/narou-jsonp.ts +0 -2
  91. package/src/narou-ranking-results.ts +10 -0
  92. package/src/narou-search-results.ts +118 -63
  93. package/src/narou.ts +42 -3
  94. package/src/params.ts +220 -61
  95. package/src/user-search.ts +109 -109
  96. package/src/util/unzipp.ts +13 -3
  97. package/dist/index.browser.d.ts.map +0 -1
  98. package/dist/index.browser.js.map +0 -1
  99. package/dist/index.common.d.ts.map +0 -1
  100. package/dist/index.common.js.map +0 -1
  101. package/dist/index.d.ts.map +0 -1
  102. package/dist/index.js.map +0 -1
  103. package/dist/narou-fetch.d.ts.map +0 -1
  104. package/dist/narou-fetch.js.map +0 -1
  105. package/dist/narou-jsonp.d.ts.map +0 -1
  106. package/dist/narou-jsonp.js.map +0 -1
  107. package/dist/narou-ranking-results.d.ts.map +0 -1
  108. package/dist/narou-ranking-results.js.map +0 -1
  109. package/dist/narou-search-results.d.ts.map +0 -1
  110. package/dist/narou-search-results.js.map +0 -1
  111. package/dist/narou.d.ts.map +0 -1
  112. package/dist/narou.js.map +0 -1
  113. package/dist/params.d.ts.map +0 -1
  114. package/dist/params.js.map +0 -1
  115. package/dist/ranking-history.d.ts.map +0 -1
  116. package/dist/ranking-history.js.map +0 -1
  117. package/dist/ranking.d.ts.map +0 -1
  118. package/dist/ranking.js.map +0 -1
  119. package/dist/search-builder-r18.d.ts.map +0 -1
  120. package/dist/search-builder-r18.js.map +0 -1
  121. package/dist/search-builder.d.ts.map +0 -1
  122. package/dist/search-builder.js.map +0 -1
  123. package/dist/user-search.d.ts.map +0 -1
  124. package/dist/user-search.js.map +0 -1
  125. package/dist/util/jsonp.d.ts.map +0 -1
  126. package/dist/util/jsonp.js.map +0 -1
  127. package/dist/util/type.d.ts.map +0 -1
  128. package/dist/util/type.js.map +0 -1
  129. package/dist/util/unzipp.d.ts.map +0 -1
  130. package/dist/util/unzipp.js.map +0 -1
@@ -0,0 +1,32 @@
1
+ import { d as NovelSearchBuilderBase } from './narou-98ededc8.js';
2
+ import { r as NarouSearchResult, d as SearchResultFieldNames, N as NarouSearchResults, h as R18Site, e as R18Fields, w as SearchResultR18Fields, O as OptionalFields, v as SearchResultOptionalFields } from './narou-search-results-6727b1ce.js';
3
+ import './ranking-history.cjs';
4
+ import './util/type.cjs';
5
+
6
+ type DefaultR18SearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "biggenre" | "genre" | "isr15" | "id">;
7
+ /**
8
+ * 18禁API検索ヘルパー
9
+ * @class SearchBuilderR18
10
+ */
11
+ declare class SearchBuilderR18<T extends SearchResultFieldNames = DefaultR18SearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
12
+ /**
13
+ * なろう小説APIへの検索リクエストを実行する
14
+ * @override
15
+ * @returns {Promise<NarouSearchResults>} 検索結果
16
+ */
17
+ execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>>;
18
+ r18Site(sites: R18Site | readonly R18Site[]): this;
19
+ /**
20
+ *
21
+ * @return {SearchBuilder} this
22
+ */
23
+ xid(ids: number | readonly number[]): this;
24
+ /**
25
+ *
26
+ * @return {SearchBuilder} this
27
+ */
28
+ fields<TFields extends R18Fields>(fields: TFields | readonly TFields[]): SearchBuilderR18<SearchResultR18Fields<R18Fields>>;
29
+ opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilderR18<T, SearchResultOptionalFields<TFields>>;
30
+ }
31
+
32
+ export { DefaultR18SearchResultFields, SearchBuilderR18 as default };
@@ -1,29 +1,32 @@
1
- import { NovelSearchBuilderBase } from "./search-builder";
2
- import NarouSearchResults, { NarouSearchResult, SearchResultR18Fields, SearchResultOptionalFields } from "./narou-search-results";
3
- import { R18Site, SearchResultFieldNames, R18Fields, OptionalFields } from "./params";
4
- export declare type DefaultR18SearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "biggenre" | "genre" | "isr15" | "id">;
5
- /**
6
- * 18禁API検索ヘルパー
7
- * @class SearchBuilderR18
8
- */
9
- export default class SearchBuilderR18<T extends SearchResultFieldNames = DefaultR18SearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
10
- /**
11
- * なろう小説APIへの検索リクエストを実行する
12
- * @override
13
- * @returns {Promise<NarouSearchResults>} 検索結果
14
- */
15
- execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>>;
16
- r18Site(sites: R18Site | readonly R18Site[]): this;
17
- /**
18
- *
19
- * @return {SearchBuilder} this
20
- */
21
- xid(ids: number | readonly number[]): this;
22
- /**
23
- *
24
- * @return {SearchBuilder} this
25
- */
26
- fields<TFields extends R18Fields>(fields: TFields | readonly TFields[]): SearchBuilderR18<SearchResultR18Fields<R18Fields>>;
27
- opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilderR18<T, SearchResultOptionalFields<TFields>>;
28
- }
29
- //# sourceMappingURL=search-builder-r18.d.ts.map
1
+ import { d as NovelSearchBuilderBase } from './narou-61329eea.js';
2
+ import { r as NarouSearchResult, d as SearchResultFieldNames, N as NarouSearchResults, h as R18Site, e as R18Fields, w as SearchResultR18Fields, O as OptionalFields, v as SearchResultOptionalFields } from './narou-search-results-b7c10db0.js';
3
+ import './ranking-history.js';
4
+ import './util/type.js';
5
+
6
+ type DefaultR18SearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "biggenre" | "genre" | "isr15" | "id">;
7
+ /**
8
+ * 18禁API検索ヘルパー
9
+ * @class SearchBuilderR18
10
+ */
11
+ declare class SearchBuilderR18<T extends SearchResultFieldNames = DefaultR18SearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
12
+ /**
13
+ * なろう小説APIへの検索リクエストを実行する
14
+ * @override
15
+ * @returns {Promise<NarouSearchResults>} 検索結果
16
+ */
17
+ execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>>;
18
+ r18Site(sites: R18Site | readonly R18Site[]): this;
19
+ /**
20
+ *
21
+ * @return {SearchBuilder} this
22
+ */
23
+ xid(ids: number | readonly number[]): this;
24
+ /**
25
+ *
26
+ * @return {SearchBuilder} this
27
+ */
28
+ fields<TFields extends R18Fields>(fields: TFields | readonly TFields[]): SearchBuilderR18<SearchResultR18Fields<R18Fields>>;
29
+ opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilderR18<T, SearchResultOptionalFields<TFields>>;
30
+ }
31
+
32
+ export { DefaultR18SearchResultFields, SearchBuilderR18 as default };
@@ -1,45 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const search_builder_1 = require("./search-builder");
4
- /**
5
- * 18禁API検索ヘルパー
6
- * @class SearchBuilderR18
7
- */
8
- class SearchBuilderR18 extends search_builder_1.NovelSearchBuilderBase {
9
- /**
10
- * なろう小説APIへの検索リクエストを実行する
11
- * @override
12
- * @returns {Promise<NarouSearchResults>} 検索結果
13
- */
14
- execute() {
15
- return this.api.executeNovel18(this.params);
16
- }
17
- r18Site(sites) {
18
- this.set({ nocgenre: search_builder_1.NovelSearchBuilderBase.array2string(sites) });
19
- return this;
20
- }
21
- /**
22
- *
23
- * @return {SearchBuilder} this
24
- */
25
- xid(ids) {
26
- this.set({ xid: search_builder_1.NovelSearchBuilderBase.array2string(ids) });
27
- return this;
28
- }
29
- /**
30
- *
31
- * @return {SearchBuilder} this
32
- */
33
- fields(fields) {
34
- this.set({ of: search_builder_1.NovelSearchBuilderBase.array2string(fields) });
35
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
- return this;
37
- }
38
- opt(option) {
39
- this.set({ opt: search_builder_1.NovelSearchBuilderBase.array2string(option) });
40
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
- return this;
42
- }
43
- }
44
- exports.default = SearchBuilderR18;
45
- //# sourceMappingURL=search-builder-r18.js.map
1
+ import {
2
+ SearchBuilderR18
3
+ } from "./chunk-3UZPHZZH.js";
4
+ import "./chunk-IVQKYEQQ.js";
5
+ import "./chunk-U3H4E2XZ.js";
6
+ import "./chunk-IKR7OZGM.js";
7
+ export {
8
+ SearchBuilderR18 as default
9
+ };
@@ -0,0 +1,510 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/search-builder.ts
21
+ var search_builder_exports = {};
22
+ __export(search_builder_exports, {
23
+ NovelSearchBuilderBase: () => NovelSearchBuilderBase,
24
+ SearchBuilderBase: () => SearchBuilderBase,
25
+ default: () => SearchBuilder
26
+ });
27
+ module.exports = __toCommonJS(search_builder_exports);
28
+
29
+ // src/params.ts
30
+ var BooleanNumber = {
31
+ True: 1,
32
+ False: 0
33
+ };
34
+ var R18Site = {
35
+ /** ノクターンノベルズ(男性向け) */
36
+ Nocturne: 1,
37
+ /** ムーンライトノベルズ(女性向け) */
38
+ MoonLight: 2,
39
+ /** ムーンライトノベルズ(BL) */
40
+ MoonLightBL: 3,
41
+ /** ミッドナイトノベルズ(大人向け) */
42
+ Midnight: 4
43
+ };
44
+ var R18SiteNotation = {
45
+ [R18Site.Nocturne]: "\u30CE\u30AF\u30BF\u30FC\u30F3\u30CE\u30D9\u30EB\u30BA(\u7537\u6027\u5411\u3051)",
46
+ [R18Site.MoonLight]: "\u30E0\u30FC\u30F3\u30E9\u30A4\u30C8\u30CE\u30D9\u30EB\u30BA(\u5973\u6027\u5411\u3051)",
47
+ [R18Site.MoonLightBL]: "\u30E0\u30FC\u30F3\u30E9\u30A4\u30C8\u30CE\u30D9\u30EB\u30BA(BL)",
48
+ [R18Site.Midnight]: "\u30DF\u30C3\u30C9\u30CA\u30A4\u30C8\u30CE\u30D9\u30EB\u30BA(\u5927\u4EBA\u5411\u3051)"
49
+ };
50
+ var BigGenre = {
51
+ /** 恋愛 */
52
+ Renai: 1,
53
+ /** ファンタジー */
54
+ Fantasy: 2,
55
+ /** 文芸 */
56
+ Bungei: 3,
57
+ /** SF */
58
+ Sf: 4,
59
+ /** その他 */
60
+ Sonota: 99,
61
+ /** ノンジャンル */
62
+ NonGenre: 98
63
+ };
64
+ var BigGenreNotation = {
65
+ [BigGenre.Renai]: "\u604B\u611B",
66
+ [BigGenre.Fantasy]: "\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC",
67
+ [BigGenre.Bungei]: "\u6587\u82B8",
68
+ [BigGenre.Sf]: "SF",
69
+ [BigGenre.Sonota]: "\u305D\u306E\u4ED6",
70
+ [BigGenre.NonGenre]: "\u30CE\u30F3\u30B8\u30E3\u30F3\u30EB"
71
+ };
72
+ var Genre = {
73
+ /** 異世界〔恋愛〕*/
74
+ RenaiIsekai: 101,
75
+ /** 現実世界〔恋愛〕*/
76
+ RenaiGenjitsusekai: 102,
77
+ /** ハイファンタジー〔ファンタジー〕*/
78
+ FantasyHigh: 201,
79
+ /** ローファンタジー〔ファンタジー〕*/
80
+ FantasyLow: 202,
81
+ /** 純文学〔文芸〕*/
82
+ BungeiJyunbungei: 301,
83
+ /** ヒューマンドラマ〔文芸〕*/
84
+ BungeiHumanDrama: 302,
85
+ /** 歴史〔文芸〕*/
86
+ BungeiHistory: 303,
87
+ /** 推理〔文芸〕*/
88
+ BungeiSuiri: 304,
89
+ /** ホラー〔文芸〕*/
90
+ BungeiHorror: 305,
91
+ /** アクション〔文芸〕*/
92
+ BungeiAction: 306,
93
+ /** コメディー〔文芸〕*/
94
+ BungeiComedy: 307,
95
+ /** VRゲーム〔SF〕*/
96
+ SfVrgame: 401,
97
+ /** 宇宙〔SF〕*/
98
+ SfSpace: 402,
99
+ /** 空想科学〔SF〕*/
100
+ SfKuusoukagaku: 403,
101
+ /** パニック〔SF〕*/
102
+ SfPanic: 404,
103
+ /** 童話〔その他〕*/
104
+ SonotaDouwa: 9901,
105
+ /** 詩〔その他〕*/
106
+ SonotaShi: 9902,
107
+ /** エッセイ〔その他〕*/
108
+ SonotaEssei: 9903,
109
+ /** リプレイ〔その他〕*/
110
+ SonotaReplay: 9904,
111
+ /** その他〔その他〕 */
112
+ SonotaSonota: 9999,
113
+ /** ノンジャンル〔ノンジャンル〕*/
114
+ NonGenre: 9801
115
+ };
116
+ var GenreNotation = {
117
+ [Genre.RenaiIsekai]: "\u7570\u4E16\u754C\u3014\u604B\u611B\u3015",
118
+ [Genre.RenaiGenjitsusekai]: "\u73FE\u5B9F\u4E16\u754C\u3014\u604B\u611B\u3015",
119
+ [Genre.FantasyHigh]: "\u30CF\u30A4\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC\u3014\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC\u3015",
120
+ [Genre.FantasyLow]: "\u30ED\u30FC\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC\u3014\u30D5\u30A1\u30F3\u30BF\u30B8\u30FC\u3015",
121
+ [Genre.BungeiJyunbungei]: "\u7D14\u6587\u5B66\u3014\u6587\u82B8\u3015",
122
+ [Genre.BungeiHumanDrama]: "\u30D2\u30E5\u30FC\u30DE\u30F3\u30C9\u30E9\u30DE\u3014\u6587\u82B8\u3015",
123
+ [Genre.BungeiHistory]: "\u6B74\u53F2\u3014\u6587\u82B8\u3015",
124
+ [Genre.BungeiSuiri]: "\u63A8\u7406\u3014\u6587\u82B8\u3015",
125
+ [Genre.BungeiHorror]: "\u30DB\u30E9\u30FC\u3014\u6587\u82B8\u3015",
126
+ [Genre.BungeiAction]: "\u30A2\u30AF\u30B7\u30E7\u30F3\u3014\u6587\u82B8\u3015",
127
+ [Genre.BungeiComedy]: "\u30B3\u30E1\u30C7\u30A3\u30FC\u3014\u6587\u82B8\u3015",
128
+ [Genre.SfVrgame]: "VR\u30B2\u30FC\u30E0\u3014SF\u3015",
129
+ [Genre.SfSpace]: "\u5B87\u5B99\u3014SF\u3015",
130
+ [Genre.SfKuusoukagaku]: "\u7A7A\u60F3\u79D1\u5B66\u3014SF\u3015",
131
+ [Genre.SfPanic]: "\u30D1\u30CB\u30C3\u30AF\u3014SF\u3015",
132
+ [Genre.SonotaDouwa]: "\u7AE5\u8A71\u3014\u305D\u306E\u4ED6\u3015",
133
+ [Genre.SonotaShi]: "\u8A69\u3014\u305D\u306E\u4ED6\u3015",
134
+ [Genre.SonotaEssei]: "\u30A8\u30C3\u30BB\u30A4\u3014\u305D\u306E\u4ED6\u3015",
135
+ [Genre.SonotaReplay]: "\u30EA\u30D7\u30EC\u30A4\u3014\u305D\u306E\u4ED6\u3015",
136
+ [Genre.SonotaSonota]: "\u305D\u306E\u4ED6\u3014\u305D\u306E\u4ED6\u3015",
137
+ [Genre.NonGenre]: "\u30CE\u30F3\u30B8\u30E3\u30F3\u30EB\u3014\u30CE\u30F3\u30B8\u30E3\u30F3\u30EB\u3015"
138
+ };
139
+ var StopParam = {
140
+ /** 長期連載停止中を除きます */
141
+ NoStopping: 1,
142
+ /** 長期連載停止中のみ取得します */
143
+ Stopping: 2
144
+ };
145
+
146
+ // src/search-builder.ts
147
+ var SearchBuilderBase = class {
148
+ /**
149
+ * constructor
150
+ * @private
151
+ */
152
+ constructor(params = {}, api) {
153
+ this.params = params;
154
+ this.api = api;
155
+ }
156
+ static distinct(array) {
157
+ return Array.from(new Set(array));
158
+ }
159
+ static array2string(n) {
160
+ if (Array.isArray(n)) {
161
+ return this.distinct(n).join("-");
162
+ } else {
163
+ return n.toString();
164
+ }
165
+ }
166
+ /**
167
+ *
168
+ * @return {SearchBuilder} this
169
+ */
170
+ limit(num) {
171
+ this.set({ lim: num });
172
+ return this;
173
+ }
174
+ /**
175
+ *
176
+ * @return {SearchBuilder} this
177
+ */
178
+ start(num) {
179
+ this.set({ st: num });
180
+ return this;
181
+ }
182
+ /**
183
+ *
184
+ * @return {SearchBuilder} this
185
+ */
186
+ page(no, count = 20) {
187
+ return this.limit(count).start(no * count);
188
+ }
189
+ /**
190
+ * 出力順序を指定する。指定しない場合は新着順となります。
191
+ * old 古い順
192
+ * @param {TOrder} order 出力順序
193
+ * @return {SearchBuilder} this
194
+ */
195
+ order(order) {
196
+ this.set({ order });
197
+ return this;
198
+ }
199
+ /**
200
+ * gzip圧縮する。
201
+ *
202
+ * 転送量上限を減らすためにも推奨
203
+ * @param {GzipLevel} level gzip圧縮レベル(1~5)
204
+ * @return {SearchBuilder} this
205
+ */
206
+ gzip(level) {
207
+ this.set({ gzip: level });
208
+ return this;
209
+ }
210
+ /**
211
+ * クエリパラメータをセットする
212
+ * @private
213
+ * @return {SearchBuilder} this
214
+ */
215
+ set(obj) {
216
+ this.params = { ...this.params, ...obj };
217
+ return this;
218
+ }
219
+ /**
220
+ * クエリパラメータを削除する
221
+ */
222
+ unset(key) {
223
+ delete this.params[key];
224
+ return this;
225
+ }
226
+ };
227
+ var NovelSearchBuilderBase = class _NovelSearchBuilderBase extends SearchBuilderBase {
228
+ /**
229
+ * a
230
+ * @return {SearchBuilder} this
231
+ */
232
+ word(word) {
233
+ this.set({ word });
234
+ return this;
235
+ }
236
+ /**
237
+ *
238
+ * @return {SearchBuilder} this
239
+ */
240
+ notWord(word) {
241
+ this.set({ notword: word });
242
+ return this;
243
+ }
244
+ /**
245
+ *
246
+ * @return {SearchBuilder} this
247
+ */
248
+ byTitle(bool = true) {
249
+ this.set({ title: bool ? BooleanNumber.True : BooleanNumber.False });
250
+ return this;
251
+ }
252
+ /**
253
+ *
254
+ * @return {SearchBuilder} this
255
+ */
256
+ byOutline(bool = true) {
257
+ this.set({ ex: bool ? BooleanNumber.True : BooleanNumber.False });
258
+ return this;
259
+ }
260
+ /**
261
+ *
262
+ * @return {SearchBuilder} this
263
+ */
264
+ byKeyword(bool = true) {
265
+ this.set({ keyword: bool ? BooleanNumber.True : BooleanNumber.False });
266
+ return this;
267
+ }
268
+ /**
269
+ *
270
+ * @return {SearchBuilder} this
271
+ */
272
+ byAuthor(bool = true) {
273
+ this.set({ wname: bool ? BooleanNumber.True : BooleanNumber.False });
274
+ return this;
275
+ }
276
+ /**
277
+ *
278
+ * @return {SearchBuilder} this
279
+ */
280
+ isBL(bool = true) {
281
+ if (bool) {
282
+ this.set({ isbl: BooleanNumber.True });
283
+ } else {
284
+ this.set({ notbl: BooleanNumber.True });
285
+ }
286
+ return this;
287
+ }
288
+ /**
289
+ *
290
+ * @return {SearchBuilder} this
291
+ */
292
+ isGL(bool = true) {
293
+ if (bool) {
294
+ this.set({ isgl: BooleanNumber.True });
295
+ } else {
296
+ this.set({ notgl: BooleanNumber.True });
297
+ }
298
+ return this;
299
+ }
300
+ /**
301
+ *
302
+ * @return {SearchBuilder} this
303
+ */
304
+ isZankoku(bool = true) {
305
+ if (bool) {
306
+ this.set({ iszankoku: BooleanNumber.True });
307
+ } else {
308
+ this.set({ notzankoku: BooleanNumber.True });
309
+ }
310
+ return this;
311
+ }
312
+ /**
313
+ *
314
+ * @return {SearchBuilder} this
315
+ */
316
+ isTensei(bool = true) {
317
+ if (bool) {
318
+ this.set({ istensei: BooleanNumber.True });
319
+ } else {
320
+ this.set({ nottensei: BooleanNumber.True });
321
+ }
322
+ return this;
323
+ }
324
+ /**
325
+ *
326
+ * @return {SearchBuilder} this
327
+ */
328
+ isTenni(bool = true) {
329
+ if (bool) {
330
+ this.set({ istenni: BooleanNumber.True });
331
+ } else {
332
+ this.set({ nottenni: BooleanNumber.True });
333
+ }
334
+ return this;
335
+ }
336
+ /**
337
+ *
338
+ * @return {SearchBuilder} this
339
+ */
340
+ isTT() {
341
+ this.set({ istt: BooleanNumber.True });
342
+ return this;
343
+ }
344
+ /**
345
+ *
346
+ * @return {SearchBuilder} this
347
+ */
348
+ length(length) {
349
+ this.set({ length: _NovelSearchBuilderBase.array2string(length) });
350
+ return this;
351
+ }
352
+ kaiwaritu(min, max) {
353
+ let n;
354
+ if (max != null) {
355
+ n = `${min}-${max}`;
356
+ } else {
357
+ n = min;
358
+ }
359
+ this.set({ kaiwaritu: n });
360
+ return this;
361
+ }
362
+ /**
363
+ *
364
+ * @return {SearchBuilder} this
365
+ */
366
+ sasie(num) {
367
+ this.set({ sasie: _NovelSearchBuilderBase.array2string(num) });
368
+ return this;
369
+ }
370
+ /**
371
+ *
372
+ * @return {SearchBuilder} this
373
+ */
374
+ time(num) {
375
+ this.set({ time: _NovelSearchBuilderBase.array2string(num) });
376
+ return this;
377
+ }
378
+ /**
379
+ *
380
+ * @return {SearchBuilder} this
381
+ */
382
+ ncode(ncodes) {
383
+ this.set({ ncode: _NovelSearchBuilderBase.array2string(ncodes) });
384
+ return this;
385
+ }
386
+ /**
387
+ *
388
+ * @return {SearchBuilder} this
389
+ */
390
+ type(type) {
391
+ this.set({ type });
392
+ return this;
393
+ }
394
+ /**
395
+ *
396
+ * @return {SearchBuilder} this
397
+ */
398
+ buntai(buntai) {
399
+ this.set({ buntai: _NovelSearchBuilderBase.array2string(buntai) });
400
+ return this;
401
+ }
402
+ /**
403
+ *
404
+ * @return {SearchBuilder} this
405
+ */
406
+ isStop(bool = true) {
407
+ this.set({ stop: bool ? StopParam.Stopping : StopParam.NoStopping });
408
+ return this;
409
+ }
410
+ /**
411
+ *
412
+ * @return {SearchBuilder} this
413
+ */
414
+ isPickup(bool = true) {
415
+ this.set({ ispickup: bool ? BooleanNumber.True : BooleanNumber.False });
416
+ return this;
417
+ }
418
+ lastUpdate(x, y) {
419
+ let date;
420
+ if (typeof x == "string") {
421
+ date = x;
422
+ } else if (x instanceof Date && y instanceof Date) {
423
+ date = `${Math.floor(x.getTime() / 1e3)}-${Math.floor(
424
+ x.getTime() / 1e3
425
+ )}`;
426
+ } else {
427
+ date = `${x}-${y}`;
428
+ }
429
+ this.set({ lastup: date });
430
+ return this;
431
+ }
432
+ /**
433
+ * なろう小説APIへの検索リクエストを実行する
434
+ * @returns {Promise<NarouSearchResults>} 検索結果
435
+ */
436
+ execute() {
437
+ return this.api.executeNovel(this.params);
438
+ }
439
+ };
440
+ var SearchBuilder = class _SearchBuilder extends NovelSearchBuilderBase {
441
+ /**
442
+ *
443
+ * @return {SearchBuilder} this
444
+ */
445
+ bigGenre(genre) {
446
+ this.set({ biggenre: _SearchBuilder.array2string(genre) });
447
+ return this;
448
+ }
449
+ /**
450
+ *
451
+ * @return {SearchBuilder} this
452
+ */
453
+ notBigGenre(genre) {
454
+ this.set({ notbiggenre: _SearchBuilder.array2string(genre) });
455
+ return this;
456
+ }
457
+ /**
458
+ *
459
+ * @return {SearchBuilder} this
460
+ */
461
+ genre(genre) {
462
+ this.set({ genre: _SearchBuilder.array2string(genre) });
463
+ return this;
464
+ }
465
+ /**
466
+ *
467
+ * @return {SearchBuilder} this
468
+ */
469
+ notGenre(genre) {
470
+ this.set({ notgenre: _SearchBuilder.array2string(genre) });
471
+ return this;
472
+ }
473
+ /**
474
+ *
475
+ * @return {SearchBuilder} this
476
+ */
477
+ userId(ids) {
478
+ this.set({ userid: _SearchBuilder.array2string(ids) });
479
+ return this;
480
+ }
481
+ /**
482
+ *
483
+ * @return {SearchBuilder} this
484
+ */
485
+ isR15(bool = true) {
486
+ if (bool) {
487
+ this.set({ isr15: 1 });
488
+ } else {
489
+ this.set({ notr15: 1 });
490
+ }
491
+ return this;
492
+ }
493
+ /**
494
+ *
495
+ * @return {SearchBuilder} this
496
+ */
497
+ fields(fields) {
498
+ this.set({ of: _SearchBuilder.array2string(fields) });
499
+ return this;
500
+ }
501
+ opt(option) {
502
+ this.set({ opt: _SearchBuilder.array2string(option) });
503
+ return this;
504
+ }
505
+ };
506
+ // Annotate the CommonJS export names for ESM import in node:
507
+ 0 && (module.exports = {
508
+ NovelSearchBuilderBase,
509
+ SearchBuilderBase
510
+ });
@@ -0,0 +1,4 @@
1
+ export { D as DefaultSearchResultFields, d as NovelSearchBuilderBase, c as SearchBuilderBase, S as default } from './narou-98ededc8.js';
2
+ import './narou-search-results-6727b1ce.js';
3
+ import './util/type.cjs';
4
+ import './ranking-history.cjs';