narou 0.8.1 → 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 (162) 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 +20 -16
  19. package/dist/index.browser.js +116 -72
  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 +73 -34
  25. package/dist/index.d.cts +47 -0
  26. package/dist/index.d.ts +21 -17
  27. package/dist/index.js +121 -80
  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 +10 -7
  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 +8 -5
  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 +10 -62
  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 +38 -246
  56. package/dist/ranking-history.cjs +38 -0
  57. package/dist/ranking-history.d.cts +17 -0
  58. package/dist/ranking-history.d.ts +8 -5
  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 +8 -7
  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 +9 -6
  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.esm/user-search.js → dist/user-search.d.cts} +18 -46
  74. package/dist/user-search.d.ts +8 -5
  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 +4 -8
  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/util/unzipp.ts +13 -3
  96. package/dist/index.browser.d.ts.map +0 -1
  97. package/dist/index.browser.js.map +0 -1
  98. package/dist/index.common.d.ts.map +0 -1
  99. package/dist/index.common.js.map +0 -1
  100. package/dist/index.d.ts.map +0 -1
  101. package/dist/index.js.map +0 -1
  102. package/dist/narou-fetch.d.ts.map +0 -1
  103. package/dist/narou-fetch.js.map +0 -1
  104. package/dist/narou-jsonp.d.ts.map +0 -1
  105. package/dist/narou-jsonp.js.map +0 -1
  106. package/dist/narou-ranking-results.d.ts.map +0 -1
  107. package/dist/narou-ranking-results.js.map +0 -1
  108. package/dist/narou-search-results.d.ts.map +0 -1
  109. package/dist/narou-search-results.js.map +0 -1
  110. package/dist/narou.d.ts.map +0 -1
  111. package/dist/narou.js.map +0 -1
  112. package/dist/params.d.ts.map +0 -1
  113. package/dist/params.js.map +0 -1
  114. package/dist/ranking-history.d.ts.map +0 -1
  115. package/dist/ranking-history.js.map +0 -1
  116. package/dist/ranking.d.ts.map +0 -1
  117. package/dist/ranking.js.map +0 -1
  118. package/dist/search-builder-r18.d.ts.map +0 -1
  119. package/dist/search-builder-r18.js.map +0 -1
  120. package/dist/search-builder.d.ts.map +0 -1
  121. package/dist/search-builder.js.map +0 -1
  122. package/dist/user-search.d.ts.map +0 -1
  123. package/dist/user-search.js.map +0 -1
  124. package/dist/util/jsonp.d.ts.map +0 -1
  125. package/dist/util/jsonp.js.map +0 -1
  126. package/dist/util/type.d.ts.map +0 -1
  127. package/dist/util/type.js.map +0 -1
  128. package/dist/util/unzipp.d.ts.map +0 -1
  129. package/dist/util/unzipp.js.map +0 -1
  130. package/dist.esm/index.browser.js +0 -86
  131. package/dist.esm/index.browser.js.map +0 -1
  132. package/dist.esm/index.common.js +0 -38
  133. package/dist.esm/index.common.js.map +0 -1
  134. package/dist.esm/index.js +0 -94
  135. package/dist.esm/index.js.map +0 -1
  136. package/dist.esm/narou-fetch.js +0 -49
  137. package/dist.esm/narou-fetch.js.map +0 -1
  138. package/dist.esm/narou-jsonp.js +0 -27
  139. package/dist.esm/narou-jsonp.js.map +0 -1
  140. package/dist.esm/narou-ranking-results.js +0 -3
  141. package/dist.esm/narou-ranking-results.js.map +0 -1
  142. package/dist.esm/narou-search-results.js +0 -63
  143. package/dist.esm/narou-search-results.js.map +0 -1
  144. package/dist.esm/narou.js +0 -33
  145. package/dist.esm/narou.js.map +0 -1
  146. package/dist.esm/params.js +0 -247
  147. package/dist.esm/params.js.map +0 -1
  148. package/dist.esm/ranking-history.js +0 -14
  149. package/dist.esm/ranking-history.js.map +0 -1
  150. package/dist.esm/ranking.js +0 -90
  151. package/dist.esm/ranking.js.map +0 -1
  152. package/dist.esm/search-builder-r18.js +0 -45
  153. package/dist.esm/search-builder-r18.js.map +0 -1
  154. package/dist.esm/search-builder.js +0 -381
  155. package/dist.esm/search-builder.js.map +0 -1
  156. package/dist.esm/user-search.js.map +0 -1
  157. package/dist.esm/util/jsonp.js +0 -46
  158. package/dist.esm/util/jsonp.js.map +0 -1
  159. package/dist.esm/util/type.js +0 -3
  160. package/dist.esm/util/type.js.map +0 -1
  161. package/dist.esm/util/unzipp.js +0 -12
  162. package/dist.esm/util/unzipp.js.map +0 -1
@@ -0,0 +1,298 @@
1
+ import { r as NarouSearchResult, a as ParamsBaseWithOrder, q as GzipLevel, d as SearchResultFieldNames, S as SearchParams, g as Order, o as NovelTypeParam, m as BuntaiParam, N as NarouSearchResults, j as BigGenre, G as Genre, F as Fields, u as SearchResultFields, O as OptionalFields, v as SearchResultOptionalFields, y as PickedNarouSearchResult, b as RankingParams, c as RankingHistoryParams, U as UserSearchParams, s as UserSearchResult } from './narou-search-results-b7c10db0.js';
2
+ import { RankingHistoryRawResult } from './ranking-history.js';
3
+ import { Join } from './util/type.js';
4
+
5
+ type DefaultSearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "nocgenre" | "xid">;
6
+ declare abstract class SearchBuilderBase<TParams extends ParamsBaseWithOrder<TOrder>, TOrder extends string> {
7
+ protected params: TParams;
8
+ protected api: NarouNovel;
9
+ /**
10
+ * constructor
11
+ * @private
12
+ */
13
+ constructor(params: TParams, api: NarouNovel);
14
+ protected static distinct<T>(array: readonly T[]): T[];
15
+ protected static array2string<T extends string | number>(n: T | readonly T[]): Join<T>;
16
+ /**
17
+ *
18
+ * @return {SearchBuilder} this
19
+ */
20
+ limit(num: number): this;
21
+ /**
22
+ *
23
+ * @return {SearchBuilder} this
24
+ */
25
+ start(num: number): this;
26
+ /**
27
+ *
28
+ * @return {SearchBuilder} this
29
+ */
30
+ page(no: number, count?: number): this;
31
+ /**
32
+ * 出力順序を指定する。指定しない場合は新着順となります。
33
+ * old 古い順
34
+ * @param {TOrder} order 出力順序
35
+ * @return {SearchBuilder} this
36
+ */
37
+ order(order: TOrder): this;
38
+ /**
39
+ * gzip圧縮する。
40
+ *
41
+ * 転送量上限を減らすためにも推奨
42
+ * @param {GzipLevel} level gzip圧縮レベル(1~5)
43
+ * @return {SearchBuilder} this
44
+ */
45
+ gzip(level: GzipLevel): this;
46
+ /**
47
+ * クエリパラメータをセットする
48
+ * @private
49
+ * @return {SearchBuilder} this
50
+ */
51
+ protected set(obj: TParams): this;
52
+ /**
53
+ * クエリパラメータを削除する
54
+ */
55
+ protected unset(key: keyof TParams): this;
56
+ }
57
+ declare abstract class NovelSearchBuilderBase<T extends SearchResultFieldNames> extends SearchBuilderBase<SearchParams, Order> {
58
+ /**
59
+ * a
60
+ * @return {SearchBuilder} this
61
+ */
62
+ word(word: string): this;
63
+ /**
64
+ *
65
+ * @return {SearchBuilder} this
66
+ */
67
+ notWord(word: string): this;
68
+ /**
69
+ *
70
+ * @return {SearchBuilder} this
71
+ */
72
+ byTitle(bool?: boolean): this;
73
+ /**
74
+ *
75
+ * @return {SearchBuilder} this
76
+ */
77
+ byOutline(bool?: boolean): this;
78
+ /**
79
+ *
80
+ * @return {SearchBuilder} this
81
+ */
82
+ byKeyword(bool?: boolean): this;
83
+ /**
84
+ *
85
+ * @return {SearchBuilder} this
86
+ */
87
+ byAuthor(bool?: boolean): this;
88
+ /**
89
+ *
90
+ * @return {SearchBuilder} this
91
+ */
92
+ isBL(bool?: boolean): this;
93
+ /**
94
+ *
95
+ * @return {SearchBuilder} this
96
+ */
97
+ isGL(bool?: boolean): this;
98
+ /**
99
+ *
100
+ * @return {SearchBuilder} this
101
+ */
102
+ isZankoku(bool?: boolean): this;
103
+ /**
104
+ *
105
+ * @return {SearchBuilder} this
106
+ */
107
+ isTensei(bool?: boolean): this;
108
+ /**
109
+ *
110
+ * @return {SearchBuilder} this
111
+ */
112
+ isTenni(bool?: boolean): this;
113
+ /**
114
+ *
115
+ * @return {SearchBuilder} this
116
+ */
117
+ isTT(): this;
118
+ /**
119
+ *
120
+ * @return {SearchBuilder} this
121
+ */
122
+ length(length: number | readonly number[]): this;
123
+ /**
124
+ *
125
+ * @return {SearchBuilder} this
126
+ */
127
+ kaiwaritu(num: number): this;
128
+ kaiwaritu(min: number, max: number): this;
129
+ /**
130
+ *
131
+ * @return {SearchBuilder} this
132
+ */
133
+ sasie(num: number | readonly number[]): this;
134
+ /**
135
+ *
136
+ * @return {SearchBuilder} this
137
+ */
138
+ time(num: number | readonly number[]): this;
139
+ /**
140
+ *
141
+ * @return {SearchBuilder} this
142
+ */
143
+ ncode(ncodes: string | readonly string[]): this;
144
+ /**
145
+ *
146
+ * @return {SearchBuilder} this
147
+ */
148
+ type(type: NovelTypeParam): this;
149
+ /**
150
+ *
151
+ * @return {SearchBuilder} this
152
+ */
153
+ buntai(buntai: BuntaiParam | readonly BuntaiParam[]): this;
154
+ /**
155
+ *
156
+ * @return {SearchBuilder} this
157
+ */
158
+ isStop(bool?: boolean): this;
159
+ /**
160
+ *
161
+ * @return {SearchBuilder} this
162
+ */
163
+ isPickup(bool?: boolean): this;
164
+ /**
165
+ *
166
+ * @return {SearchBuilder} this
167
+ */
168
+ lastUpdate(date: string): this;
169
+ lastUpdate(from: number, to: number): this;
170
+ lastUpdate(from: Date, to: Date): this;
171
+ /**
172
+ * なろう小説APIへの検索リクエストを実行する
173
+ * @returns {Promise<NarouSearchResults>} 検索結果
174
+ */
175
+ execute(): Promise<NarouSearchResults<NarouSearchResult, T>>;
176
+ }
177
+ /**
178
+ * 検索ヘルパー
179
+ * @class SearchBuilder
180
+ */
181
+ declare class SearchBuilder<T extends keyof NarouSearchResult = DefaultSearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
182
+ /**
183
+ *
184
+ * @return {SearchBuilder} this
185
+ */
186
+ bigGenre(genre: BigGenre | readonly BigGenre[]): this;
187
+ /**
188
+ *
189
+ * @return {SearchBuilder} this
190
+ */
191
+ notBigGenre(genre: BigGenre | readonly BigGenre[]): this;
192
+ /**
193
+ *
194
+ * @return {SearchBuilder} this
195
+ */
196
+ genre(genre: Genre | readonly Genre[]): this;
197
+ /**
198
+ *
199
+ * @return {SearchBuilder} this
200
+ */
201
+ notGenre(genre: Genre | readonly Genre[]): this;
202
+ /**
203
+ *
204
+ * @return {SearchBuilder} this
205
+ */
206
+ userId(ids: number | readonly number[]): this;
207
+ /**
208
+ *
209
+ * @return {SearchBuilder} this
210
+ */
211
+ isR15(bool?: boolean): this;
212
+ /**
213
+ *
214
+ * @return {SearchBuilder} this
215
+ */
216
+ fields<TFields extends Fields>(fields: TFields | readonly TFields[]): SearchBuilder<SearchResultFields<TFields>, TOpt>;
217
+ opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilder<T, SearchResultOptionalFields<TFields>>;
218
+ }
219
+
220
+ /**
221
+ * ランキングAPIの結果
222
+ * @see https://dev.syosetu.com/man/rankapi/#output
223
+ */
224
+ interface NarouRankingResult {
225
+ /** Nコード */
226
+ ncode: string;
227
+ /** 順位 */
228
+ rank: number;
229
+ /** ポイント */
230
+ pt: number;
231
+ }
232
+ /**
233
+ * ランキングと小説情報をマージした結果
234
+ */
235
+ type RankingResult<T extends SearchResultFieldNames = DefaultSearchResultFields> = Partial<PickedNarouSearchResult<T>> & NarouRankingResult;
236
+
237
+ /**
238
+ * なろう小説APIへのリクエストパラメータ
239
+ */
240
+ type NarouParams = SearchParams | RankingParams | RankingHistoryParams | UserSearchParams;
241
+ /**
242
+ * なろう小説APIへのリクエストを実行する
243
+ * @class NarouNovel
244
+ * @private
245
+ */
246
+ declare abstract class NarouNovel {
247
+ /**
248
+ * なろうAPIへのAPIリクエストを実行する
249
+ * @param params クエリパラメータ
250
+ * @param endpoint APIエンドポイント
251
+ * @returns 実行結果
252
+ */
253
+ protected abstract execute<T>(params: NarouParams, endpoint: string): Promise<T>;
254
+ /**
255
+ * APIへの検索リクエストを実行する
256
+ * @param params クエリパラメータ
257
+ * @param endpoint APIエンドポイント
258
+ * @returns 検索結果
259
+ */
260
+ protected executeSearch<T extends keyof NarouSearchResult>(params: SearchParams, endpoint?: string): Promise<NarouSearchResults<NarouSearchResult, T>>;
261
+ /**
262
+ * 小説APIへの検索リクエストを実行する
263
+ * @param params クエリパラメータ
264
+ * @returns 検索結果
265
+ * @see https://dev.syosetu.com/man/api/
266
+ */
267
+ executeNovel<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
268
+ /**
269
+ * R18小説APIへの検索リクエストを実行する
270
+ * @param params クエリパラメータ
271
+ * @returns 検索結果
272
+ * @see https://dev.syosetu.com/xman/api/
273
+ */
274
+ executeNovel18<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
275
+ /**
276
+ * ランキングAPIへのリクエストを実行する
277
+ * @param params クエリパラメータ
278
+ * @returns ランキング結果
279
+ * @see https://dev.syosetu.com/man/rankapi/
280
+ */
281
+ executeRanking(params: RankingParams): Promise<NarouRankingResult[]>;
282
+ /**
283
+ * 殿堂入りAPiへのリクエストを実行する
284
+ * @param params クエリパラメータ
285
+ * @returns ランキング履歴結果
286
+ * @see https://dev.syosetu.com/man/rankinapi/
287
+ */
288
+ executeRankingHistory(params: RankingHistoryParams): Promise<RankingHistoryRawResult[]>;
289
+ /**
290
+ * ユーザー検索APIへのリクエストを実行する
291
+ * @param params クエリパラメータ
292
+ * @returns 検索結果
293
+ * @see https://dev.syosetu.com/man/userapi/
294
+ */
295
+ executeUserSearch<T extends keyof UserSearchResult>(params: UserSearchParams): Promise<NarouSearchResults<UserSearchResult, T>>;
296
+ }
297
+
298
+ export { DefaultSearchResultFields as D, NarouNovel as N, RankingResult as R, SearchBuilder as S, NarouParams as a, NarouRankingResult as b, SearchBuilderBase as c, NovelSearchBuilderBase as d };
@@ -0,0 +1,298 @@
1
+ import { r as NarouSearchResult, a as ParamsBaseWithOrder, q as GzipLevel, d as SearchResultFieldNames, S as SearchParams, g as Order, o as NovelTypeParam, m as BuntaiParam, N as NarouSearchResults, j as BigGenre, G as Genre, F as Fields, u as SearchResultFields, O as OptionalFields, v as SearchResultOptionalFields, y as PickedNarouSearchResult, b as RankingParams, c as RankingHistoryParams, U as UserSearchParams, s as UserSearchResult } from './narou-search-results-6727b1ce.js';
2
+ import { RankingHistoryRawResult } from './ranking-history.cjs';
3
+ import { Join } from './util/type.cjs';
4
+
5
+ type DefaultSearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "nocgenre" | "xid">;
6
+ declare abstract class SearchBuilderBase<TParams extends ParamsBaseWithOrder<TOrder>, TOrder extends string> {
7
+ protected params: TParams;
8
+ protected api: NarouNovel;
9
+ /**
10
+ * constructor
11
+ * @private
12
+ */
13
+ constructor(params: TParams, api: NarouNovel);
14
+ protected static distinct<T>(array: readonly T[]): T[];
15
+ protected static array2string<T extends string | number>(n: T | readonly T[]): Join<T>;
16
+ /**
17
+ *
18
+ * @return {SearchBuilder} this
19
+ */
20
+ limit(num: number): this;
21
+ /**
22
+ *
23
+ * @return {SearchBuilder} this
24
+ */
25
+ start(num: number): this;
26
+ /**
27
+ *
28
+ * @return {SearchBuilder} this
29
+ */
30
+ page(no: number, count?: number): this;
31
+ /**
32
+ * 出力順序を指定する。指定しない場合は新着順となります。
33
+ * old 古い順
34
+ * @param {TOrder} order 出力順序
35
+ * @return {SearchBuilder} this
36
+ */
37
+ order(order: TOrder): this;
38
+ /**
39
+ * gzip圧縮する。
40
+ *
41
+ * 転送量上限を減らすためにも推奨
42
+ * @param {GzipLevel} level gzip圧縮レベル(1~5)
43
+ * @return {SearchBuilder} this
44
+ */
45
+ gzip(level: GzipLevel): this;
46
+ /**
47
+ * クエリパラメータをセットする
48
+ * @private
49
+ * @return {SearchBuilder} this
50
+ */
51
+ protected set(obj: TParams): this;
52
+ /**
53
+ * クエリパラメータを削除する
54
+ */
55
+ protected unset(key: keyof TParams): this;
56
+ }
57
+ declare abstract class NovelSearchBuilderBase<T extends SearchResultFieldNames> extends SearchBuilderBase<SearchParams, Order> {
58
+ /**
59
+ * a
60
+ * @return {SearchBuilder} this
61
+ */
62
+ word(word: string): this;
63
+ /**
64
+ *
65
+ * @return {SearchBuilder} this
66
+ */
67
+ notWord(word: string): this;
68
+ /**
69
+ *
70
+ * @return {SearchBuilder} this
71
+ */
72
+ byTitle(bool?: boolean): this;
73
+ /**
74
+ *
75
+ * @return {SearchBuilder} this
76
+ */
77
+ byOutline(bool?: boolean): this;
78
+ /**
79
+ *
80
+ * @return {SearchBuilder} this
81
+ */
82
+ byKeyword(bool?: boolean): this;
83
+ /**
84
+ *
85
+ * @return {SearchBuilder} this
86
+ */
87
+ byAuthor(bool?: boolean): this;
88
+ /**
89
+ *
90
+ * @return {SearchBuilder} this
91
+ */
92
+ isBL(bool?: boolean): this;
93
+ /**
94
+ *
95
+ * @return {SearchBuilder} this
96
+ */
97
+ isGL(bool?: boolean): this;
98
+ /**
99
+ *
100
+ * @return {SearchBuilder} this
101
+ */
102
+ isZankoku(bool?: boolean): this;
103
+ /**
104
+ *
105
+ * @return {SearchBuilder} this
106
+ */
107
+ isTensei(bool?: boolean): this;
108
+ /**
109
+ *
110
+ * @return {SearchBuilder} this
111
+ */
112
+ isTenni(bool?: boolean): this;
113
+ /**
114
+ *
115
+ * @return {SearchBuilder} this
116
+ */
117
+ isTT(): this;
118
+ /**
119
+ *
120
+ * @return {SearchBuilder} this
121
+ */
122
+ length(length: number | readonly number[]): this;
123
+ /**
124
+ *
125
+ * @return {SearchBuilder} this
126
+ */
127
+ kaiwaritu(num: number): this;
128
+ kaiwaritu(min: number, max: number): this;
129
+ /**
130
+ *
131
+ * @return {SearchBuilder} this
132
+ */
133
+ sasie(num: number | readonly number[]): this;
134
+ /**
135
+ *
136
+ * @return {SearchBuilder} this
137
+ */
138
+ time(num: number | readonly number[]): this;
139
+ /**
140
+ *
141
+ * @return {SearchBuilder} this
142
+ */
143
+ ncode(ncodes: string | readonly string[]): this;
144
+ /**
145
+ *
146
+ * @return {SearchBuilder} this
147
+ */
148
+ type(type: NovelTypeParam): this;
149
+ /**
150
+ *
151
+ * @return {SearchBuilder} this
152
+ */
153
+ buntai(buntai: BuntaiParam | readonly BuntaiParam[]): this;
154
+ /**
155
+ *
156
+ * @return {SearchBuilder} this
157
+ */
158
+ isStop(bool?: boolean): this;
159
+ /**
160
+ *
161
+ * @return {SearchBuilder} this
162
+ */
163
+ isPickup(bool?: boolean): this;
164
+ /**
165
+ *
166
+ * @return {SearchBuilder} this
167
+ */
168
+ lastUpdate(date: string): this;
169
+ lastUpdate(from: number, to: number): this;
170
+ lastUpdate(from: Date, to: Date): this;
171
+ /**
172
+ * なろう小説APIへの検索リクエストを実行する
173
+ * @returns {Promise<NarouSearchResults>} 検索結果
174
+ */
175
+ execute(): Promise<NarouSearchResults<NarouSearchResult, T>>;
176
+ }
177
+ /**
178
+ * 検索ヘルパー
179
+ * @class SearchBuilder
180
+ */
181
+ declare class SearchBuilder<T extends keyof NarouSearchResult = DefaultSearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
182
+ /**
183
+ *
184
+ * @return {SearchBuilder} this
185
+ */
186
+ bigGenre(genre: BigGenre | readonly BigGenre[]): this;
187
+ /**
188
+ *
189
+ * @return {SearchBuilder} this
190
+ */
191
+ notBigGenre(genre: BigGenre | readonly BigGenre[]): this;
192
+ /**
193
+ *
194
+ * @return {SearchBuilder} this
195
+ */
196
+ genre(genre: Genre | readonly Genre[]): this;
197
+ /**
198
+ *
199
+ * @return {SearchBuilder} this
200
+ */
201
+ notGenre(genre: Genre | readonly Genre[]): this;
202
+ /**
203
+ *
204
+ * @return {SearchBuilder} this
205
+ */
206
+ userId(ids: number | readonly number[]): this;
207
+ /**
208
+ *
209
+ * @return {SearchBuilder} this
210
+ */
211
+ isR15(bool?: boolean): this;
212
+ /**
213
+ *
214
+ * @return {SearchBuilder} this
215
+ */
216
+ fields<TFields extends Fields>(fields: TFields | readonly TFields[]): SearchBuilder<SearchResultFields<TFields>, TOpt>;
217
+ opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilder<T, SearchResultOptionalFields<TFields>>;
218
+ }
219
+
220
+ /**
221
+ * ランキングAPIの結果
222
+ * @see https://dev.syosetu.com/man/rankapi/#output
223
+ */
224
+ interface NarouRankingResult {
225
+ /** Nコード */
226
+ ncode: string;
227
+ /** 順位 */
228
+ rank: number;
229
+ /** ポイント */
230
+ pt: number;
231
+ }
232
+ /**
233
+ * ランキングと小説情報をマージした結果
234
+ */
235
+ type RankingResult<T extends SearchResultFieldNames = DefaultSearchResultFields> = Partial<PickedNarouSearchResult<T>> & NarouRankingResult;
236
+
237
+ /**
238
+ * なろう小説APIへのリクエストパラメータ
239
+ */
240
+ type NarouParams = SearchParams | RankingParams | RankingHistoryParams | UserSearchParams;
241
+ /**
242
+ * なろう小説APIへのリクエストを実行する
243
+ * @class NarouNovel
244
+ * @private
245
+ */
246
+ declare abstract class NarouNovel {
247
+ /**
248
+ * なろうAPIへのAPIリクエストを実行する
249
+ * @param params クエリパラメータ
250
+ * @param endpoint APIエンドポイント
251
+ * @returns 実行結果
252
+ */
253
+ protected abstract execute<T>(params: NarouParams, endpoint: string): Promise<T>;
254
+ /**
255
+ * APIへの検索リクエストを実行する
256
+ * @param params クエリパラメータ
257
+ * @param endpoint APIエンドポイント
258
+ * @returns 検索結果
259
+ */
260
+ protected executeSearch<T extends keyof NarouSearchResult>(params: SearchParams, endpoint?: string): Promise<NarouSearchResults<NarouSearchResult, T>>;
261
+ /**
262
+ * 小説APIへの検索リクエストを実行する
263
+ * @param params クエリパラメータ
264
+ * @returns 検索結果
265
+ * @see https://dev.syosetu.com/man/api/
266
+ */
267
+ executeNovel<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
268
+ /**
269
+ * R18小説APIへの検索リクエストを実行する
270
+ * @param params クエリパラメータ
271
+ * @returns 検索結果
272
+ * @see https://dev.syosetu.com/xman/api/
273
+ */
274
+ executeNovel18<T extends keyof NarouSearchResult>(params: SearchParams): Promise<NarouSearchResults<NarouSearchResult, T>>;
275
+ /**
276
+ * ランキングAPIへのリクエストを実行する
277
+ * @param params クエリパラメータ
278
+ * @returns ランキング結果
279
+ * @see https://dev.syosetu.com/man/rankapi/
280
+ */
281
+ executeRanking(params: RankingParams): Promise<NarouRankingResult[]>;
282
+ /**
283
+ * 殿堂入りAPiへのリクエストを実行する
284
+ * @param params クエリパラメータ
285
+ * @returns ランキング履歴結果
286
+ * @see https://dev.syosetu.com/man/rankinapi/
287
+ */
288
+ executeRankingHistory(params: RankingHistoryParams): Promise<RankingHistoryRawResult[]>;
289
+ /**
290
+ * ユーザー検索APIへのリクエストを実行する
291
+ * @param params クエリパラメータ
292
+ * @returns 検索結果
293
+ * @see https://dev.syosetu.com/man/userapi/
294
+ */
295
+ executeUserSearch<T extends keyof UserSearchResult>(params: UserSearchParams): Promise<NarouSearchResults<UserSearchResult, T>>;
296
+ }
297
+
298
+ export { DefaultSearchResultFields as D, NarouNovel as N, RankingResult as R, SearchBuilder as S, NarouParams as a, NarouRankingResult as b, SearchBuilderBase as c, NovelSearchBuilderBase as d };