narou 0.8.1 → 0.9.1

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 (194) hide show
  1. package/dist/chunk-3L6BVCEQ.js +3065 -0
  2. package/dist/chunk-3L6BVCEQ.js.map +1 -0
  3. package/dist/chunk-5M7JXPW3.js +1 -0
  4. package/dist/chunk-5M7JXPW3.js.map +1 -0
  5. package/dist/chunk-AUZ3RYOM.js +50 -0
  6. package/dist/chunk-AUZ3RYOM.js.map +1 -0
  7. package/dist/chunk-ELL5TDE4.js +94 -0
  8. package/dist/chunk-ELL5TDE4.js.map +1 -0
  9. package/dist/chunk-H4TVIA56.js +83 -0
  10. package/dist/chunk-H4TVIA56.js.map +1 -0
  11. package/dist/chunk-JMTNQTNC.js +24 -0
  12. package/dist/chunk-JMTNQTNC.js.map +1 -0
  13. package/dist/chunk-M2JOQXK7.js +15 -0
  14. package/dist/chunk-M2JOQXK7.js.map +1 -0
  15. package/dist/chunk-M5TG4H6A.js +1 -0
  16. package/dist/chunk-M5TG4H6A.js.map +1 -0
  17. package/dist/chunk-PH7RAXIZ.js +397 -0
  18. package/dist/chunk-PH7RAXIZ.js.map +1 -0
  19. package/dist/chunk-SKRVT2TT.js +44 -0
  20. package/dist/chunk-SKRVT2TT.js.map +1 -0
  21. package/dist/chunk-SUVA6EFY.js +26 -0
  22. package/dist/chunk-SUVA6EFY.js.map +1 -0
  23. package/dist/chunk-TNDGN3EF.js +39 -0
  24. package/dist/chunk-TNDGN3EF.js.map +1 -0
  25. package/dist/chunk-TZ3HVU6L.js +72 -0
  26. package/dist/chunk-TZ3HVU6L.js.map +1 -0
  27. package/dist/chunk-VHDE4QIZ.js +37 -0
  28. package/dist/chunk-VHDE4QIZ.js.map +1 -0
  29. package/dist/chunk-VHXJSFYZ.js +372 -0
  30. package/dist/chunk-VHXJSFYZ.js.map +1 -0
  31. package/dist/index.browser.cjs +1222 -0
  32. package/dist/index.browser.cjs.map +1 -0
  33. package/dist/index.browser.d.cts +40 -0
  34. package/dist/index.browser.d.ts +20 -16
  35. package/dist/index.browser.js +116 -71
  36. package/dist/index.browser.js.map +1 -1
  37. package/dist/index.cjs +4306 -0
  38. package/dist/index.cjs.map +1 -0
  39. package/dist/index.common.cjs +1033 -0
  40. package/dist/index.common.cjs.map +1 -0
  41. package/dist/index.common.d.cts +6 -0
  42. package/dist/index.common.d.ts +6 -15
  43. package/dist/index.common.js +73 -33
  44. package/dist/index.common.js.map +1 -1
  45. package/dist/index.d.cts +47 -0
  46. package/dist/index.d.ts +21 -17
  47. package/dist/index.js +121 -79
  48. package/dist/index.js.map +1 -1
  49. package/dist/narou-61329eea.d.ts +298 -0
  50. package/dist/narou-98ededc8.d.ts +298 -0
  51. package/dist/narou-fetch.cjs +3191 -0
  52. package/dist/narou-fetch.cjs.map +1 -0
  53. package/dist/narou-fetch.d.cts +16 -0
  54. package/dist/narou-fetch.d.ts +10 -7
  55. package/dist/narou-fetch.js +10 -45
  56. package/dist/narou-fetch.js.map +1 -1
  57. package/dist/narou-jsonp.cjs +159 -0
  58. package/dist/narou-jsonp.cjs.map +1 -0
  59. package/dist/narou-jsonp.d.cts +13 -0
  60. package/dist/narou-jsonp.d.ts +8 -5
  61. package/dist/narou-jsonp.js +10 -23
  62. package/dist/narou-jsonp.js.map +1 -1
  63. package/dist/narou-ranking-results.cjs +19 -0
  64. package/dist/narou-ranking-results.cjs.map +1 -0
  65. package/dist/narou-ranking-results.d.cts +4 -0
  66. package/dist/narou-ranking-results.d.ts +4 -10
  67. package/dist/narou-ranking-results.js +1 -2
  68. package/dist/narou-ranking-results.js.map +1 -1
  69. package/dist/narou-search-results-6727b1ce.d.ts +716 -0
  70. package/dist/narou-search-results-b7c10db0.d.ts +716 -0
  71. package/dist/narou-search-results.cjs +62 -0
  72. package/dist/narou-search-results.cjs.map +1 -0
  73. package/dist/narou-search-results.d.cts +2 -0
  74. package/dist/narou-search-results.d.ts +2 -131
  75. package/dist/narou-search-results.js +10 -61
  76. package/dist/narou-search-results.js.map +1 -1
  77. package/dist/narou.cjs +109 -0
  78. package/dist/narou.cjs.map +1 -0
  79. package/dist/narou.d.cts +4 -0
  80. package/dist/narou.d.ts +4 -26
  81. package/dist/narou.js +8 -29
  82. package/dist/narou.js.map +1 -1
  83. package/dist/params.cjs +437 -0
  84. package/dist/params.cjs.map +1 -0
  85. package/dist/params.d.cts +2 -0
  86. package/dist/params.d.ts +2 -324
  87. package/dist/params.js +38 -245
  88. package/dist/params.js.map +1 -1
  89. package/dist/ranking-history.cjs +39 -0
  90. package/dist/ranking-history.cjs.map +1 -0
  91. package/dist/ranking-history.d.cts +17 -0
  92. package/dist/ranking-history.d.ts +8 -5
  93. package/dist/ranking-history.js +7 -13
  94. package/dist/ranking-history.js.map +1 -1
  95. package/dist/ranking.cjs +660 -0
  96. package/dist/ranking.cjs.map +1 -0
  97. package/dist/ranking.d.cts +47 -0
  98. package/dist/ranking.d.ts +8 -7
  99. package/dist/ranking.js +9 -86
  100. package/dist/ranking.js.map +1 -1
  101. package/dist/search-builder-r18.cjs +474 -0
  102. package/dist/search-builder-r18.cjs.map +1 -0
  103. package/dist/search-builder-r18.d.cts +32 -0
  104. package/dist/search-builder-r18.d.ts +9 -6
  105. package/dist/search-builder-r18.js +9 -44
  106. package/dist/search-builder-r18.js.map +1 -1
  107. package/dist/search-builder.cjs +511 -0
  108. package/dist/search-builder.cjs.map +1 -0
  109. package/dist/search-builder.d.cts +4 -0
  110. package/dist/search-builder.d.ts +4 -220
  111. package/dist/search-builder.js +12 -380
  112. package/dist/search-builder.js.map +1 -1
  113. package/dist/user-search.cjs +301 -0
  114. package/dist/user-search.cjs.map +1 -0
  115. package/{dist.esm/user-search.js → dist/user-search.d.cts} +18 -46
  116. package/dist/user-search.d.ts +8 -5
  117. package/dist/user-search.js +9 -93
  118. package/dist/user-search.js.map +1 -1
  119. package/dist/util/jsonp.cjs +63 -0
  120. package/dist/util/jsonp.cjs.map +1 -0
  121. package/dist/util/jsonp.d.cts +13 -0
  122. package/dist/util/jsonp.d.ts +4 -8
  123. package/dist/util/jsonp.js +7 -45
  124. package/dist/util/jsonp.js.map +1 -1
  125. package/dist/util/type.cjs +19 -0
  126. package/dist/util/type.cjs.map +1 -0
  127. package/dist/util/type.d.cts +4 -0
  128. package/dist/util/type.d.ts +4 -4
  129. package/dist/util/type.js +0 -2
  130. package/dist/util/type.js.map +1 -1
  131. package/dist/util/unzipp.cjs +48 -0
  132. package/dist/util/unzipp.cjs.map +1 -0
  133. package/dist/util/unzipp.d.cts +3 -0
  134. package/dist/util/unzipp.d.ts +3 -4
  135. package/dist/util/unzipp.js +7 -11
  136. package/dist/util/unzipp.js.map +1 -1
  137. package/package.json +38 -36
  138. package/src/narou-fetch.ts +6 -16
  139. package/src/narou-jsonp.ts +0 -2
  140. package/src/narou-ranking-results.ts +10 -0
  141. package/src/narou-search-results.ts +118 -63
  142. package/src/narou.ts +42 -3
  143. package/src/params.ts +220 -61
  144. package/src/util/unzipp.ts +13 -3
  145. package/dist/index.browser.d.ts.map +0 -1
  146. package/dist/index.common.d.ts.map +0 -1
  147. package/dist/index.d.ts.map +0 -1
  148. package/dist/narou-fetch.d.ts.map +0 -1
  149. package/dist/narou-jsonp.d.ts.map +0 -1
  150. package/dist/narou-ranking-results.d.ts.map +0 -1
  151. package/dist/narou-search-results.d.ts.map +0 -1
  152. package/dist/narou.d.ts.map +0 -1
  153. package/dist/params.d.ts.map +0 -1
  154. package/dist/ranking-history.d.ts.map +0 -1
  155. package/dist/ranking.d.ts.map +0 -1
  156. package/dist/search-builder-r18.d.ts.map +0 -1
  157. package/dist/search-builder.d.ts.map +0 -1
  158. package/dist/user-search.d.ts.map +0 -1
  159. package/dist/util/jsonp.d.ts.map +0 -1
  160. package/dist/util/type.d.ts.map +0 -1
  161. package/dist/util/unzipp.d.ts.map +0 -1
  162. package/dist.esm/index.browser.js +0 -86
  163. package/dist.esm/index.browser.js.map +0 -1
  164. package/dist.esm/index.common.js +0 -38
  165. package/dist.esm/index.common.js.map +0 -1
  166. package/dist.esm/index.js +0 -94
  167. package/dist.esm/index.js.map +0 -1
  168. package/dist.esm/narou-fetch.js +0 -49
  169. package/dist.esm/narou-fetch.js.map +0 -1
  170. package/dist.esm/narou-jsonp.js +0 -27
  171. package/dist.esm/narou-jsonp.js.map +0 -1
  172. package/dist.esm/narou-ranking-results.js +0 -3
  173. package/dist.esm/narou-ranking-results.js.map +0 -1
  174. package/dist.esm/narou-search-results.js +0 -63
  175. package/dist.esm/narou-search-results.js.map +0 -1
  176. package/dist.esm/narou.js +0 -33
  177. package/dist.esm/narou.js.map +0 -1
  178. package/dist.esm/params.js +0 -247
  179. package/dist.esm/params.js.map +0 -1
  180. package/dist.esm/ranking-history.js +0 -14
  181. package/dist.esm/ranking-history.js.map +0 -1
  182. package/dist.esm/ranking.js +0 -90
  183. package/dist.esm/ranking.js.map +0 -1
  184. package/dist.esm/search-builder-r18.js +0 -45
  185. package/dist.esm/search-builder-r18.js.map +0 -1
  186. package/dist.esm/search-builder.js +0 -381
  187. package/dist.esm/search-builder.js.map +0 -1
  188. package/dist.esm/user-search.js.map +0 -1
  189. package/dist.esm/util/jsonp.js +0 -46
  190. package/dist.esm/util/jsonp.js.map +0 -1
  191. package/dist.esm/util/type.js +0 -3
  192. package/dist.esm/util/type.js.map +0 -1
  193. package/dist.esm/util/unzipp.js +0 -12
  194. package/dist.esm/util/unzipp.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+CAA4C;AASnC,0BATF,qBAAe,CASE;AARxB,+CAA4C;AAQlB,0BARnB,qBAAe,CAQmB;AAPzC,uCAAuC;AACvC,uDAA+E;AAC/E,qDAA6C;AAC7C,6DAAoD;AACpD,+CAA8C;AAE9C,iDAA+B;AAG/B,MAAM,eAAe,GAAG,IAAI,qBAAe,EAAE,CAAC;AAE9C;;;;GAIG;AACH,SAAgB,MAAM,CACpB,IAAI,GAAG,EAAE,EACT,MAAkB,eAAe;IAEjC,MAAM,OAAO,GAAG,IAAI,wBAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3C,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAPD,wBAOC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CACvB,IAAI,GAAG,EAAE,EACT,MAAkB,eAAe;IAEjC,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9C,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAPD,8BAOC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,MAAkB,eAAe;IACrE,MAAM,OAAO,GAAG,IAAI,qBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAJD,gCAIC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,MAAkB,eAAe;IACvD,MAAM,OAAO,GAAG,IAAI,iBAAc,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAHD,0BAGC;AAED;;GAEG;AACI,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,MAAkB,eAAe;IAEjC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,GAAG,CAAC,sCAAoB,CAAC,CAAC;KACzC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;KACzB;AACH,CAAC;AAVD,wCAUC;AAED,kBAAe;IACb,MAAM;IACN,SAAS;IACT,UAAU;IACV,OAAO;IACP,cAAc;CACf,CAAC"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import NarouNovel from \"./narou\";\nimport NarouNovelFetch from \"./narou-fetch\";\nimport NarouNovelJsonp from \"./narou-jsonp\";\nimport RankingBuilder from \"./ranking\";\nimport { formatRankingHistory, RankingHistoryResult } from \"./ranking-history\";\nimport SearchBuilder from \"./search-builder\";\nimport SearchBuilderR18 from \"./search-builder-r18\";\nimport UserSearchBuilder from \"./user-search\";\n\nexport * from \"./index.common\";\nexport { NarouNovelFetch, NarouNovelJsonp };\n\nconst narouNovelFetch = new NarouNovelFetch();\n\n/**\n * なろう小説 API で小説を検索する\n * @param {string} [word] - 検索ワード\n * @returns {SearchBuilder}\n */\nexport function search(\n word = \"\",\n api: NarouNovel = narouNovelFetch\n): SearchBuilder {\n const builder = new SearchBuilder({}, api);\n if (word != \"\") builder.word(word);\n return builder;\n}\n\n/**\n * 18禁小説 API で小説を検索する\n * @param {string} [word] - 検索ワード\n * @returns {SearchBuilder}\n */\nexport function searchR18(\n word = \"\",\n api: NarouNovel = narouNovelFetch\n): SearchBuilderR18 {\n const builder = new SearchBuilderR18({}, api);\n if (word != \"\") builder.word(word);\n return builder;\n}\n\n/**\n * なろうユーザ検索 API でユーザを検索する\n */\nexport function searchUser(word = \"\", api: NarouNovel = narouNovelFetch) {\n const builder = new UserSearchBuilder({}, api);\n if (word != \"\") builder.word(word);\n return builder;\n}\n\n/**\n * なろう小説ランキング API でランキングを取得する\n */\nexport function ranking(api: NarouNovel = narouNovelFetch): RankingBuilder {\n const builder = new RankingBuilder({}, api);\n return builder;\n}\n\n/**\n * なろう殿堂入り API でランキング履歴を取得する\n */\nexport async function rankingHistory(\n ncode: string,\n api: NarouNovel = narouNovelFetch\n): Promise<RankingHistoryResult[]> {\n const result = await api.executeRankingHistory({ ncode });\n if (Array.isArray(result)) {\n return result.map(formatRankingHistory);\n } else {\n throw new Error(result);\n }\n}\n\nexport default {\n search,\n searchR18,\n searchUser,\n ranking,\n rankingHistory,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAM,kBAAkB,IAAI,gBAAgB;AAOrC,SAAS,OACd,OAAO,IACP,MAAkB,iBACH;AACf,QAAM,UAAU,IAAI,cAAc,CAAC,GAAG,GAAG;AACzC,MAAI,QAAQ;AAAI,YAAQ,KAAK,IAAI;AACjC,SAAO;AACT;AAOO,SAAS,UACd,OAAO,IACP,MAAkB,iBACA;AAClB,QAAM,UAAU,IAAI,iBAAiB,CAAC,GAAG,GAAG;AAC5C,MAAI,QAAQ;AAAI,YAAQ,KAAK,IAAI;AACjC,SAAO;AACT;AAKO,SAAS,WAAW,OAAO,IAAI,MAAkB,iBAAiB;AACvE,QAAM,UAAU,IAAI,kBAAkB,CAAC,GAAG,GAAG;AAC7C,MAAI,QAAQ;AAAI,YAAQ,KAAK,IAAI;AACjC,SAAO;AACT;AAKO,SAAS,QAAQ,MAAkB,iBAAiC;AACzE,QAAM,UAAU,IAAI,eAAe,CAAC,GAAG,GAAG;AAC1C,SAAO;AACT;AAKA,eAAsB,eACpB,OACA,MAAkB,iBACe;AACjC,QAAM,SAAS,MAAM,IAAI,sBAAsB,EAAE,MAAM,CAAC;AACxD,MAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,WAAO,OAAO,IAAI,oBAAoB;AAAA,EACxC,OAAO;AACL,UAAM,IAAI,MAAM,MAAM;AAAA,EACxB;AACF;AAEA,IAAO,cAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
@@ -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 };