paper-search-cli 0.3.1 → 0.3.2

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 (304) hide show
  1. package/README.md +1 -1
  2. package/README.zh.md +1 -1
  3. package/dist/capabilities/body-snippet-search/handler.d.ts +9 -0
  4. package/dist/capabilities/body-snippet-search/handler.d.ts.map +1 -0
  5. package/dist/capabilities/body-snippet-search/handler.js +17 -0
  6. package/dist/capabilities/body-snippet-search/handler.js.map +1 -0
  7. package/dist/capabilities/body-snippet-search/index.d.ts +7 -0
  8. package/dist/capabilities/body-snippet-search/index.d.ts.map +1 -0
  9. package/dist/capabilities/body-snippet-search/index.js +6 -0
  10. package/dist/capabilities/body-snippet-search/index.js.map +1 -0
  11. package/dist/capabilities/body-snippet-search/schemas.d.ts +36 -0
  12. package/dist/capabilities/body-snippet-search/schemas.d.ts.map +1 -0
  13. package/dist/capabilities/body-snippet-search/schemas.js +16 -0
  14. package/dist/capabilities/body-snippet-search/schemas.js.map +1 -0
  15. package/dist/capabilities/body-snippet-search/service.d.ts +4 -0
  16. package/dist/capabilities/body-snippet-search/service.d.ts.map +1 -0
  17. package/dist/capabilities/body-snippet-search/service.js +4 -0
  18. package/dist/capabilities/body-snippet-search/service.js.map +1 -0
  19. package/dist/capabilities/body-snippet-search/tools.d.ts +187 -0
  20. package/dist/capabilities/body-snippet-search/tools.d.ts.map +1 -0
  21. package/dist/capabilities/body-snippet-search/tools.js +49 -0
  22. package/dist/capabilities/body-snippet-search/tools.js.map +1 -0
  23. package/dist/capabilities/body-snippet-search/types.d.ts +14 -0
  24. package/dist/capabilities/body-snippet-search/types.d.ts.map +1 -0
  25. package/dist/capabilities/body-snippet-search/types.js +2 -0
  26. package/dist/capabilities/body-snippet-search/types.js.map +1 -0
  27. package/dist/capabilities/citation-expansion/CitationService.d.ts +47 -0
  28. package/dist/capabilities/citation-expansion/CitationService.d.ts.map +1 -0
  29. package/dist/capabilities/citation-expansion/CitationService.js +243 -0
  30. package/dist/capabilities/citation-expansion/CitationService.js.map +1 -0
  31. package/dist/capabilities/citation-expansion/handler.d.ts +36 -0
  32. package/dist/capabilities/citation-expansion/handler.d.ts.map +1 -0
  33. package/dist/capabilities/citation-expansion/handler.js +44 -0
  34. package/dist/capabilities/citation-expansion/handler.js.map +1 -0
  35. package/dist/capabilities/citation-expansion/index.d.ts +6 -0
  36. package/dist/capabilities/citation-expansion/index.d.ts.map +1 -0
  37. package/dist/capabilities/citation-expansion/index.js +5 -0
  38. package/dist/capabilities/citation-expansion/index.js.map +1 -0
  39. package/dist/capabilities/citation-expansion/schemas.d.ts +28 -0
  40. package/dist/capabilities/citation-expansion/schemas.d.ts.map +1 -0
  41. package/dist/capabilities/citation-expansion/schemas.js +13 -0
  42. package/dist/capabilities/citation-expansion/schemas.js.map +1 -0
  43. package/dist/capabilities/citation-expansion/tools.d.ts +82 -0
  44. package/dist/capabilities/citation-expansion/tools.d.ts.map +1 -0
  45. package/dist/capabilities/citation-expansion/tools.js +48 -0
  46. package/dist/capabilities/citation-expansion/tools.js.map +1 -0
  47. package/dist/capabilities/citation-expansion/types.d.ts +22 -0
  48. package/dist/capabilities/citation-expansion/types.d.ts.map +1 -0
  49. package/dist/capabilities/citation-expansion/types.js +2 -0
  50. package/dist/capabilities/citation-expansion/types.js.map +1 -0
  51. package/dist/capabilities/journal-metrics/JournalMetricsService.d.ts +3 -0
  52. package/dist/capabilities/journal-metrics/JournalMetricsService.d.ts.map +1 -0
  53. package/dist/capabilities/journal-metrics/JournalMetricsService.js +142 -0
  54. package/dist/capabilities/journal-metrics/JournalMetricsService.js.map +1 -0
  55. package/dist/capabilities/journal-metrics/handler.d.ts +12 -0
  56. package/dist/capabilities/journal-metrics/handler.d.ts.map +1 -0
  57. package/dist/capabilities/journal-metrics/handler.js +38 -0
  58. package/dist/capabilities/journal-metrics/handler.js.map +1 -0
  59. package/dist/capabilities/journal-metrics/index.d.ts +6 -0
  60. package/dist/capabilities/journal-metrics/index.d.ts.map +1 -0
  61. package/dist/capabilities/journal-metrics/index.js +5 -0
  62. package/dist/capabilities/journal-metrics/index.js.map +1 -0
  63. package/dist/capabilities/journal-metrics/schemas.d.ts +28 -0
  64. package/dist/capabilities/journal-metrics/schemas.d.ts.map +1 -0
  65. package/dist/capabilities/journal-metrics/schemas.js +13 -0
  66. package/dist/capabilities/journal-metrics/schemas.js.map +1 -0
  67. package/dist/capabilities/journal-metrics/tools.d.ts +67 -0
  68. package/dist/capabilities/journal-metrics/tools.d.ts.map +1 -0
  69. package/dist/capabilities/journal-metrics/tools.js +27 -0
  70. package/dist/capabilities/journal-metrics/tools.js.map +1 -0
  71. package/dist/capabilities/journal-metrics/types.d.ts +36 -0
  72. package/dist/capabilities/journal-metrics/types.d.ts.map +1 -0
  73. package/dist/capabilities/journal-metrics/types.js +2 -0
  74. package/dist/capabilities/journal-metrics/types.js.map +1 -0
  75. package/dist/capabilities/metadata-search/MultiSourceSearchService.d.ts +9 -0
  76. package/dist/capabilities/metadata-search/MultiSourceSearchService.d.ts.map +1 -0
  77. package/dist/capabilities/metadata-search/MultiSourceSearchService.js +78 -0
  78. package/dist/capabilities/metadata-search/MultiSourceSearchService.js.map +1 -0
  79. package/dist/capabilities/metadata-search/handler.d.ts +23 -0
  80. package/dist/capabilities/metadata-search/handler.d.ts.map +1 -0
  81. package/dist/capabilities/metadata-search/handler.js +163 -0
  82. package/dist/capabilities/metadata-search/handler.js.map +1 -0
  83. package/dist/capabilities/metadata-search/index.d.ts +6 -0
  84. package/dist/capabilities/metadata-search/index.d.ts.map +1 -0
  85. package/dist/capabilities/metadata-search/index.js +5 -0
  86. package/dist/capabilities/metadata-search/index.js.map +1 -0
  87. package/dist/capabilities/metadata-search/schemas.d.ts +83 -0
  88. package/dist/capabilities/metadata-search/schemas.d.ts.map +1 -0
  89. package/dist/capabilities/metadata-search/schemas.js +81 -0
  90. package/dist/capabilities/metadata-search/schemas.js.map +1 -0
  91. package/dist/capabilities/metadata-search/tools.d.ts +178 -0
  92. package/dist/capabilities/metadata-search/tools.d.ts.map +1 -0
  93. package/dist/capabilities/metadata-search/tools.js +75 -0
  94. package/dist/capabilities/metadata-search/tools.js.map +1 -0
  95. package/dist/capabilities/metadata-search/types.d.ts +13 -0
  96. package/dist/capabilities/metadata-search/types.d.ts.map +1 -0
  97. package/dist/capabilities/metadata-search/types.js +2 -0
  98. package/dist/capabilities/metadata-search/types.js.map +1 -0
  99. package/dist/capabilities/pdf-discovery/DownloadTier.d.ts +22 -0
  100. package/dist/capabilities/pdf-discovery/DownloadTier.d.ts.map +1 -0
  101. package/dist/capabilities/pdf-discovery/DownloadTier.js +2 -0
  102. package/dist/capabilities/pdf-discovery/DownloadTier.js.map +1 -0
  103. package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.d.ts +10 -0
  104. package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.d.ts.map +1 -0
  105. package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.js +53 -0
  106. package/dist/capabilities/pdf-discovery/OpenAccessFallbackService.js.map +1 -0
  107. package/dist/capabilities/pdf-discovery/handler.d.ts +19 -0
  108. package/dist/capabilities/pdf-discovery/handler.d.ts.map +1 -0
  109. package/dist/capabilities/pdf-discovery/handler.js +56 -0
  110. package/dist/capabilities/pdf-discovery/handler.js.map +1 -0
  111. package/dist/capabilities/pdf-discovery/index.d.ts +7 -0
  112. package/dist/capabilities/pdf-discovery/index.d.ts.map +1 -0
  113. package/dist/capabilities/pdf-discovery/index.js +5 -0
  114. package/dist/capabilities/pdf-discovery/index.js.map +1 -0
  115. package/dist/capabilities/pdf-discovery/schemas.d.ts +37 -0
  116. package/dist/capabilities/pdf-discovery/schemas.d.ts.map +1 -0
  117. package/dist/capabilities/pdf-discovery/schemas.js +22 -0
  118. package/dist/capabilities/pdf-discovery/schemas.js.map +1 -0
  119. package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.d.ts +3 -0
  120. package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.d.ts.map +1 -0
  121. package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.js +27 -0
  122. package/dist/capabilities/pdf-discovery/tiers/directPdfUrl.js.map +1 -0
  123. package/dist/capabilities/pdf-discovery/tiers/primary.d.ts +3 -0
  124. package/dist/capabilities/pdf-discovery/tiers/primary.d.ts.map +1 -0
  125. package/dist/capabilities/pdf-discovery/tiers/primary.js +21 -0
  126. package/dist/capabilities/pdf-discovery/tiers/primary.js.map +1 -0
  127. package/dist/capabilities/pdf-discovery/tiers/repositories.d.ts +3 -0
  128. package/dist/capabilities/pdf-discovery/tiers/repositories.d.ts.map +1 -0
  129. package/dist/capabilities/pdf-discovery/tiers/repositories.js +35 -0
  130. package/dist/capabilities/pdf-discovery/tiers/repositories.js.map +1 -0
  131. package/dist/capabilities/pdf-discovery/tiers/scihub.d.ts +3 -0
  132. package/dist/capabilities/pdf-discovery/tiers/scihub.d.ts.map +1 -0
  133. package/dist/capabilities/pdf-discovery/tiers/scihub.js +21 -0
  134. package/dist/capabilities/pdf-discovery/tiers/scihub.js.map +1 -0
  135. package/dist/capabilities/pdf-discovery/tiers/unpaywall.d.ts +3 -0
  136. package/dist/capabilities/pdf-discovery/tiers/unpaywall.d.ts.map +1 -0
  137. package/dist/capabilities/pdf-discovery/tiers/unpaywall.js +29 -0
  138. package/dist/capabilities/pdf-discovery/tiers/unpaywall.js.map +1 -0
  139. package/dist/capabilities/pdf-discovery/tools.d.ts +114 -0
  140. package/dist/capabilities/pdf-discovery/tools.d.ts.map +1 -0
  141. package/dist/capabilities/pdf-discovery/tools.js +42 -0
  142. package/dist/capabilities/pdf-discovery/tools.js.map +1 -0
  143. package/dist/capabilities/pdf-discovery/types.d.ts +19 -0
  144. package/dist/capabilities/pdf-discovery/types.d.ts.map +1 -0
  145. package/dist/capabilities/pdf-discovery/types.js +2 -0
  146. package/dist/capabilities/pdf-discovery/types.js.map +1 -0
  147. package/dist/cli.js +6 -6
  148. package/dist/cli.js.map +1 -1
  149. package/dist/core/capabilityProfile.d.ts +1 -17
  150. package/dist/core/capabilityProfile.d.ts.map +1 -1
  151. package/dist/core/capabilityProfile.js +1 -166
  152. package/dist/core/capabilityProfile.js.map +1 -1
  153. package/dist/core/diagnostics.d.ts +1 -42
  154. package/dist/core/diagnostics.d.ts.map +1 -1
  155. package/dist/core/diagnostics.js +1 -585
  156. package/dist/core/diagnostics.js.map +1 -1
  157. package/dist/core/handleToolCall.d.ts +1 -0
  158. package/dist/core/handleToolCall.d.ts.map +1 -1
  159. package/dist/core/handleToolCall.js +265 -509
  160. package/dist/core/handleToolCall.js.map +1 -1
  161. package/dist/core/httpPolicies.d.ts +2 -0
  162. package/dist/core/httpPolicies.d.ts.map +1 -0
  163. package/dist/core/httpPolicies.js +2 -0
  164. package/dist/core/httpPolicies.js.map +1 -0
  165. package/dist/core/liveSmoke.d.ts +1 -41
  166. package/dist/core/liveSmoke.d.ts.map +1 -1
  167. package/dist/core/liveSmoke.js +1 -225
  168. package/dist/core/liveSmoke.js.map +1 -1
  169. package/dist/core/platformFactories.d.ts +2 -0
  170. package/dist/core/platformFactories.d.ts.map +1 -0
  171. package/dist/core/platformFactories.js +2 -0
  172. package/dist/core/platformFactories.js.map +1 -0
  173. package/dist/core/platformMetadata.d.ts +1 -27
  174. package/dist/core/platformMetadata.d.ts.map +1 -1
  175. package/dist/core/platformMetadata.js +1 -257
  176. package/dist/core/platformMetadata.js.map +1 -1
  177. package/dist/core/schemas.d.ts +10 -202
  178. package/dist/core/schemas.d.ts.map +1 -1
  179. package/dist/core/schemas.js +11 -118
  180. package/dist/core/schemas.js.map +1 -1
  181. package/dist/core/searchers.d.ts +24 -24
  182. package/dist/core/searchers.d.ts.map +1 -1
  183. package/dist/core/searchers.js +14 -79
  184. package/dist/core/searchers.js.map +1 -1
  185. package/dist/core/textReports.d.ts +1 -20
  186. package/dist/core/textReports.d.ts.map +1 -1
  187. package/dist/core/textReports.js +1 -84
  188. package/dist/core/textReports.js.map +1 -1
  189. package/dist/core/tools.d.ts.map +1 -1
  190. package/dist/core/tools.js +15 -237
  191. package/dist/core/tools.js.map +1 -1
  192. package/dist/infrastructure/cache/RequestCache.d.ts +26 -0
  193. package/dist/infrastructure/cache/RequestCache.d.ts.map +1 -0
  194. package/dist/infrastructure/cache/RequestCache.js +66 -0
  195. package/dist/infrastructure/cache/RequestCache.js.map +1 -0
  196. package/dist/infrastructure/http/ErrorHandler.d.ts +99 -0
  197. package/dist/infrastructure/http/ErrorHandler.d.ts.map +1 -0
  198. package/dist/infrastructure/http/ErrorHandler.js +266 -0
  199. package/dist/infrastructure/http/ErrorHandler.js.map +1 -0
  200. package/dist/infrastructure/http/HttpClient.d.ts +31 -0
  201. package/dist/infrastructure/http/HttpClient.d.ts.map +1 -0
  202. package/dist/infrastructure/http/HttpClient.js +50 -0
  203. package/dist/infrastructure/http/HttpClient.js.map +1 -0
  204. package/dist/infrastructure/pdf/PDFExtractor.d.ts +34 -0
  205. package/dist/infrastructure/pdf/PDFExtractor.d.ts.map +1 -0
  206. package/dist/infrastructure/pdf/PDFExtractor.js +130 -0
  207. package/dist/infrastructure/pdf/PDFExtractor.js.map +1 -0
  208. package/dist/infrastructure/pdf/PdfDownload.d.ts +7 -0
  209. package/dist/infrastructure/pdf/PdfDownload.d.ts.map +1 -0
  210. package/dist/infrastructure/pdf/PdfDownload.js +175 -0
  211. package/dist/infrastructure/pdf/PdfDownload.js.map +1 -0
  212. package/dist/infrastructure/rate-limit/RateLimiter.d.ts +50 -0
  213. package/dist/infrastructure/rate-limit/RateLimiter.d.ts.map +1 -0
  214. package/dist/infrastructure/rate-limit/RateLimiter.js +128 -0
  215. package/dist/infrastructure/rate-limit/RateLimiter.js.map +1 -0
  216. package/dist/infrastructure/security/SecurityUtils.d.ts +80 -0
  217. package/dist/infrastructure/security/SecurityUtils.d.ts.map +1 -0
  218. package/dist/infrastructure/security/SecurityUtils.js +357 -0
  219. package/dist/infrastructure/security/SecurityUtils.js.map +1 -0
  220. package/dist/management/capability-profile/index.d.ts +18 -0
  221. package/dist/management/capability-profile/index.d.ts.map +1 -0
  222. package/dist/management/capability-profile/index.js +167 -0
  223. package/dist/management/capability-profile/index.js.map +1 -0
  224. package/dist/management/config/index.d.ts +2 -0
  225. package/dist/management/config/index.d.ts.map +1 -0
  226. package/dist/management/config/index.js +2 -0
  227. package/dist/management/config/index.js.map +1 -0
  228. package/dist/management/diagnostics/index.d.ts +43 -0
  229. package/dist/management/diagnostics/index.d.ts.map +1 -0
  230. package/dist/management/diagnostics/index.js +586 -0
  231. package/dist/management/diagnostics/index.js.map +1 -0
  232. package/dist/management/reports/index.d.ts +21 -0
  233. package/dist/management/reports/index.d.ts.map +1 -0
  234. package/dist/management/reports/index.js +85 -0
  235. package/dist/management/reports/index.js.map +1 -0
  236. package/dist/management/skills/index.d.ts +2 -0
  237. package/dist/management/skills/index.d.ts.map +1 -0
  238. package/dist/management/skills/index.js +2 -0
  239. package/dist/management/skills/index.js.map +1 -0
  240. package/dist/management/smoke/index.d.ts +42 -0
  241. package/dist/management/smoke/index.d.ts.map +1 -0
  242. package/dist/management/smoke/index.js +226 -0
  243. package/dist/management/smoke/index.js.map +1 -0
  244. package/dist/registry/aliases.d.ts +2 -0
  245. package/dist/registry/aliases.d.ts.map +1 -0
  246. package/dist/registry/aliases.js +2 -0
  247. package/dist/registry/aliases.js.map +1 -0
  248. package/dist/registry/httpPolicies.d.ts +3 -0
  249. package/dist/registry/httpPolicies.d.ts.map +1 -0
  250. package/dist/registry/httpPolicies.js +17 -0
  251. package/dist/registry/httpPolicies.js.map +1 -0
  252. package/dist/registry/platformFactories.d.ts +8 -0
  253. package/dist/registry/platformFactories.d.ts.map +1 -0
  254. package/dist/registry/platformFactories.js +55 -0
  255. package/dist/registry/platformFactories.js.map +1 -0
  256. package/dist/registry/platformMetadata.d.ts +39 -0
  257. package/dist/registry/platformMetadata.d.ts.map +1 -0
  258. package/dist/registry/platformMetadata.js +321 -0
  259. package/dist/registry/platformMetadata.js.map +1 -0
  260. package/dist/services/CitationService.d.ts +2 -65
  261. package/dist/services/CitationService.d.ts.map +1 -1
  262. package/dist/services/CitationService.js +1 -242
  263. package/dist/services/CitationService.js.map +1 -1
  264. package/dist/services/JournalMetricsService.d.ts +2 -37
  265. package/dist/services/JournalMetricsService.d.ts.map +1 -1
  266. package/dist/services/JournalMetricsService.js +1 -141
  267. package/dist/services/JournalMetricsService.js.map +1 -1
  268. package/dist/services/MultiSourceSearchService.d.ts +2 -18
  269. package/dist/services/MultiSourceSearchService.d.ts.map +1 -1
  270. package/dist/services/MultiSourceSearchService.js +1 -77
  271. package/dist/services/MultiSourceSearchService.js.map +1 -1
  272. package/dist/services/OpenAccessFallbackService.d.ts +3 -40
  273. package/dist/services/OpenAccessFallbackService.d.ts.map +1 -1
  274. package/dist/services/OpenAccessFallbackService.js +1 -146
  275. package/dist/services/OpenAccessFallbackService.js.map +1 -1
  276. package/dist/utils/ErrorHandler.d.ts +2 -98
  277. package/dist/utils/ErrorHandler.d.ts.map +1 -1
  278. package/dist/utils/ErrorHandler.js +2 -265
  279. package/dist/utils/ErrorHandler.js.map +1 -1
  280. package/dist/utils/HttpClient.d.ts +1 -5
  281. package/dist/utils/HttpClient.d.ts.map +1 -1
  282. package/dist/utils/HttpClient.js +1 -29
  283. package/dist/utils/HttpClient.js.map +1 -1
  284. package/dist/utils/PDFExtractor.d.ts +2 -33
  285. package/dist/utils/PDFExtractor.d.ts.map +1 -1
  286. package/dist/utils/PDFExtractor.js +2 -129
  287. package/dist/utils/PDFExtractor.js.map +1 -1
  288. package/dist/utils/PdfDownload.d.ts +1 -6
  289. package/dist/utils/PdfDownload.d.ts.map +1 -1
  290. package/dist/utils/PdfDownload.js +1 -141
  291. package/dist/utils/PdfDownload.js.map +1 -1
  292. package/dist/utils/RateLimiter.d.ts +1 -49
  293. package/dist/utils/RateLimiter.d.ts.map +1 -1
  294. package/dist/utils/RateLimiter.js +1 -127
  295. package/dist/utils/RateLimiter.js.map +1 -1
  296. package/dist/utils/RequestCache.d.ts +2 -25
  297. package/dist/utils/RequestCache.d.ts.map +1 -1
  298. package/dist/utils/RequestCache.js +2 -65
  299. package/dist/utils/RequestCache.js.map +1 -1
  300. package/dist/utils/SecurityUtils.d.ts +2 -79
  301. package/dist/utils/SecurityUtils.d.ts.map +1 -1
  302. package/dist/utils/SecurityUtils.js +2 -356
  303. package/dist/utils/SecurityUtils.js.map +1 -1
  304. package/package.json +1 -1
@@ -1,38 +1,3 @@
1
- interface QueryJournalMetricsOptions {
2
- journals: string[];
3
- includeRaw?: boolean;
4
- }
5
- export interface JournalMetricsRow {
6
- journal: string;
7
- status: 'found' | 'not_found' | 'error';
8
- source: 'easyScholar';
9
- message?: string;
10
- core: {
11
- impact_factor?: string;
12
- impact_factor_5y?: string;
13
- jcr_quartile?: string;
14
- ssci_quartile?: string;
15
- jci?: string;
16
- cas_base?: string;
17
- cas_upgraded?: string;
18
- cas_small?: string;
19
- cas_top?: string;
20
- cas_zone?: string;
21
- cas_small_zones?: string[];
22
- esi?: string;
23
- warning?: string;
24
- pku?: string;
25
- cssci?: string;
26
- cscd?: string;
27
- ahci?: string;
28
- ccf?: string;
29
- ei?: string;
30
- china_st_core?: string;
31
- };
32
- official_all?: Record<string, unknown>;
33
- official_select?: Record<string, unknown>;
34
- custom_rank?: unknown;
35
- }
36
- export declare function queryJournalMetrics(options: QueryJournalMetricsOptions): Promise<JournalMetricsRow[]>;
37
- export {};
1
+ export { queryJournalMetrics } from '../capabilities/journal-metrics/JournalMetricsService.js';
2
+ export type { JournalMetricsRow, QueryJournalMetricsOptions } from '../capabilities/journal-metrics/types.js';
38
3
  //# sourceMappingURL=JournalMetricsService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JournalMetricsService.d.ts","sourceRoot":"","sources":["../../src/services/JournalMetricsService.ts"],"names":[],"mappings":"AAKA,UAAU,0BAA0B;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAiBD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;IACxC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QACJ,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwHD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAuC3G"}
1
+ {"version":3,"file":"JournalMetricsService.d.ts","sourceRoot":"","sources":["../../src/services/JournalMetricsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAE/F,YAAY,EACV,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,0CAA0C,CAAC"}
@@ -1,142 +1,2 @@
1
- import axios from 'axios';
2
- const EASYSCHOLAR_URL = 'https://www.easyscholar.cc/open/getPublicationRank';
3
- const REQUEST_DELAY_MS = 500;
4
- function easyScholarKey() {
5
- const key = process.env.EASYSCHOLAR_KEY || '';
6
- if (!key.trim()) {
7
- throw new Error('EasyScholar API key not configured. Set EASYSCHOLAR_KEY with `paper-search setup EASYSCHOLAR_KEY`.');
8
- }
9
- return key.trim();
10
- }
11
- function uniqueJournals(journals) {
12
- const seen = new Set();
13
- const unique = [];
14
- for (const journal of journals.map(item => item.trim()).filter(Boolean)) {
15
- if (seen.has(journal))
16
- continue;
17
- seen.add(journal);
18
- unique.push(journal);
19
- }
20
- return unique;
21
- }
22
- function stringValue(value) {
23
- if (typeof value !== 'string')
24
- return undefined;
25
- const trimmed = value.trim();
26
- return trimmed || undefined;
27
- }
28
- function extractZone(value) {
29
- const text = stringValue(value);
30
- const match = text?.match(/(\d+)区/);
31
- return match?.[1];
32
- }
33
- function extractSmallZones(value) {
34
- const text = stringValue(value);
35
- if (!text)
36
- return undefined;
37
- const matches = [...text.matchAll(/([^/。;;]+?)([1-4])区/g)].map(match => `${match[1].trim()}${match[2]}区`);
38
- return matches.length ? matches : undefined;
39
- }
40
- function normalizeOfficialRank(all) {
41
- const casUpgraded = stringValue(all.sciUp);
42
- const casBase = stringValue(all.sciBase);
43
- const casSmall = stringValue(all.sciUpSmall);
44
- const core = {
45
- impact_factor: stringValue(all.sciif),
46
- impact_factor_5y: stringValue(all.sciif5),
47
- jcr_quartile: stringValue(all.sci),
48
- ssci_quartile: stringValue(all.ssci),
49
- jci: stringValue(all.jci),
50
- cas_base: casBase,
51
- cas_upgraded: casUpgraded,
52
- cas_small: casSmall,
53
- cas_top: stringValue(all.sciUpTop),
54
- cas_zone: extractZone(casUpgraded) || extractZone(casBase),
55
- cas_small_zones: extractSmallZones(casSmall),
56
- esi: stringValue(all.esi),
57
- warning: stringValue(all.sciwarn),
58
- pku: stringValue(all.pku),
59
- cssci: stringValue(all.cssci),
60
- cscd: stringValue(all.cscd),
61
- ahci: stringValue(all.ahci),
62
- ccf: stringValue(all.ccf),
63
- ei: stringValue(all.eii),
64
- china_st_core: stringValue(all.zhongguokejihexin)
65
- };
66
- return Object.fromEntries(Object.entries(core).filter(([, value]) => value !== undefined));
67
- }
68
- function formatResult(journal, data, includeRaw) {
69
- if (data.code !== 200 || data.msg !== 'SUCCESS' || !data.data) {
70
- return {
71
- journal,
72
- status: 'not_found',
73
- source: 'easyScholar',
74
- message: data.msg || `EasyScholar returned code ${data.code ?? 'unknown'}`,
75
- core: {}
76
- };
77
- }
78
- const officialAll = data.data.officialRank?.all || {};
79
- const officialSelect = data.data.officialRank?.select || {};
80
- if (Object.keys(officialAll).length === 0) {
81
- return {
82
- journal,
83
- status: 'not_found',
84
- source: 'easyScholar',
85
- message: 'No officialRank.all fields returned for this journal.',
86
- core: {}
87
- };
88
- }
89
- const row = {
90
- journal,
91
- status: 'found',
92
- source: 'easyScholar',
93
- core: normalizeOfficialRank(officialAll)
94
- };
95
- if (includeRaw) {
96
- row.official_all = officialAll;
97
- row.official_select = officialSelect;
98
- row.custom_rank = data.data.customRank || {};
99
- }
100
- return row;
101
- }
102
- async function delay(ms) {
103
- await new Promise(resolve => setTimeout(resolve, ms));
104
- }
105
- export async function queryJournalMetrics(options) {
106
- const secretKey = easyScholarKey();
107
- const journals = uniqueJournals(options.journals);
108
- if (journals.length === 0) {
109
- throw new Error('Provide at least one journal name.');
110
- }
111
- const rows = [];
112
- for (let index = 0; index < journals.length; index += 1) {
113
- const journal = journals[index];
114
- try {
115
- const response = await axios.get(EASYSCHOLAR_URL, {
116
- params: {
117
- secretKey,
118
- publicationName: journal
119
- },
120
- timeout: 15000,
121
- headers: {
122
- 'User-Agent': 'Paper-Search-CLI/JournalMetrics'
123
- }
124
- });
125
- rows.push(formatResult(journal, response.data, Boolean(options.includeRaw)));
126
- }
127
- catch (error) {
128
- rows.push({
129
- journal,
130
- status: 'error',
131
- source: 'easyScholar',
132
- message: error?.message || String(error),
133
- core: {}
134
- });
135
- }
136
- if (index < journals.length - 1) {
137
- await delay(REQUEST_DELAY_MS);
138
- }
139
- }
140
- return rows;
141
- }
1
+ export { queryJournalMetrics } from '../capabilities/journal-metrics/JournalMetricsService.js';
142
2
  //# sourceMappingURL=JournalMetricsService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JournalMetricsService.js","sourceRoot":"","sources":["../../src/services/JournalMetricsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JournalMetricsService.js","sourceRoot":"","sources":["../../src/services/JournalMetricsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC"}
@@ -1,19 +1,3 @@
1
- import type { Searchers } from '../core/searchers.js';
2
- import { Paper } from '../models/Paper.js';
3
- import { SearchOptions } from '../platforms/PaperSource.js';
4
- export interface MultiSourceSearchResult {
5
- query: string;
6
- sources_requested: string;
7
- sources_used: string[];
8
- source_results: Record<string, number>;
9
- errors: Record<string, string>;
10
- failed_sources: string[];
11
- warnings: string[];
12
- total: number;
13
- raw_total: number;
14
- papers: Record<string, unknown>[];
15
- }
16
- export declare function parseSourceList(sources: string | undefined, searchers: Searchers): string[];
17
- export declare function searchMultipleSources(searchers: Searchers, query: string, sources: string, options: SearchOptions, sourceTimeoutMs?: number): Promise<MultiSourceSearchResult>;
18
- export declare function dedupePapers(papers: Paper[]): Paper[];
1
+ export { dedupePapers, parseSourceList, searchMultipleSources } from '../capabilities/metadata-search/MultiSourceSearchService.js';
2
+ export type { MultiSourceSearchResult } from '../capabilities/metadata-search/types.js';
19
3
  //# sourceMappingURL=MultiSourceSearchService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSourceSearchService.d.ts","sourceRoot":"","sources":["../../src/services/MultiSourceSearchService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAgB,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAe,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIzE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACnC;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAc3F;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,EACtB,eAAe,GAAE,MAA6B,GAC7C,OAAO,CAAC,uBAAuB,CAAC,CA8ClC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAYrD"}
1
+ {"version":3,"file":"MultiSourceSearchService.d.ts","sourceRoot":"","sources":["../../src/services/MultiSourceSearchService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,qBAAqB,EACtB,MAAM,6DAA6D,CAAC;AAErE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -1,78 +1,2 @@
1
- import { TIMEOUTS } from '../config/constants.js';
2
- import { PaperFactory } from '../models/Paper.js';
3
- import { withTimeout } from '../utils/SecurityUtils.js';
4
- import { getAliasMap, getDefaultAllSources, resolvePlatformId } from '../core/platformMetadata.js';
5
- const ALIASES = getAliasMap();
6
- export function parseSourceList(sources, searchers) {
7
- const requested = !sources || sources.trim() === '' ? 'crossref' : sources.trim();
8
- if (requested.toLowerCase() === 'all') {
9
- return getDefaultAllSources().filter(source => source in searchers);
10
- }
11
- return requested
12
- .split(',')
13
- .map(source => source.trim().toLowerCase())
14
- .filter(Boolean)
15
- .map(source => ALIASES[source] || resolvePlatformId(source))
16
- .filter((source, index, values) => values.indexOf(source) === index)
17
- .filter(source => source in searchers);
18
- }
19
- export async function searchMultipleSources(searchers, query, sources, options, sourceTimeoutMs = TIMEOUTS.SOURCE_TASK) {
20
- const selected = parseSourceList(sources, searchers);
21
- const settled = await Promise.allSettled(selected.map(async (source) => {
22
- const searcher = searchers[source];
23
- const results = await withTimeout(searcher.search(query, options), sourceTimeoutMs, `${source} search timed out after ${sourceTimeoutMs}ms`);
24
- return { source, results };
25
- }));
26
- const sourceResults = {};
27
- const errors = {};
28
- const failedSources = [];
29
- const merged = [];
30
- for (let i = 0; i < settled.length; i += 1) {
31
- const source = selected[i];
32
- const result = settled[i];
33
- if (result.status === 'rejected') {
34
- sourceResults[source] = 0;
35
- errors[source] = result.reason?.message || String(result.reason);
36
- failedSources.push(source);
37
- continue;
38
- }
39
- sourceResults[source] = result.value.results.length;
40
- merged.push(...result.value.results);
41
- }
42
- const deduped = dedupePapers(merged);
43
- return {
44
- query,
45
- sources_requested: sources,
46
- sources_used: selected,
47
- source_results: sourceResults,
48
- errors,
49
- failed_sources: failedSources,
50
- warnings: failedSources.map(source => `${source}: ${errors[source]}`),
51
- total: deduped.length,
52
- raw_total: merged.length,
53
- papers: deduped.map(paper => PaperFactory.toDict(paper))
54
- };
55
- }
56
- export function dedupePapers(papers) {
57
- const seen = new Set();
58
- const out = [];
59
- for (const paper of papers) {
60
- const key = paperKey(paper);
61
- if (seen.has(key))
62
- continue;
63
- seen.add(key);
64
- out.push(paper);
65
- }
66
- return out;
67
- }
68
- function paperKey(paper) {
69
- const doi = (paper.doi || '').trim().toLowerCase();
70
- if (doi)
71
- return `doi:${doi}`;
72
- const title = (paper.title || '').trim().toLowerCase();
73
- const authors = (paper.authors || []).join(';').trim().toLowerCase();
74
- if (title)
75
- return `title:${title}|authors:${authors}`;
76
- return `id:${paper.source || 'unknown'}:${paper.paperId || 'unknown'}`;
77
- }
1
+ export { dedupePapers, parseSourceList, searchMultipleSources } from '../capabilities/metadata-search/MultiSourceSearchService.js';
78
2
  //# sourceMappingURL=MultiSourceSearchService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSourceSearchService.js","sourceRoot":"","sources":["../../src/services/MultiSourceSearchService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiSourceSearchService.js","sourceRoot":"","sources":["../../src/services/MultiSourceSearchService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,qBAAqB,EACtB,MAAM,6DAA6D,CAAC"}
@@ -1,41 +1,4 @@
1
- import type { Searchers } from '../core/searchers.js';
2
- export interface DownloadWithFallbackOptions {
3
- source: string;
4
- paperId: string;
5
- doi?: string;
6
- title?: string;
7
- savePath?: string;
8
- /** When false, suppress the final Sci-Hub fallback. Default is true. */
9
- useSciHub?: boolean;
10
- }
11
- export interface DownloadWithFallbackResult {
12
- status: 'ok' | 'error';
13
- path?: string;
14
- attempts: Array<{
15
- stage: string;
16
- status: 'ok' | 'error' | 'skipped';
17
- message: string;
18
- }>;
19
- }
20
- export interface DownloadTier {
21
- id: string;
22
- stage: string;
23
- run(context: DownloadTierContext): Promise<DownloadTierResult>;
24
- }
25
- export interface DownloadTierContext {
26
- searchers: Searchers;
27
- source: string;
28
- paperId: string;
29
- doi?: string;
30
- title?: string;
31
- savePath: string;
32
- useSciHub: boolean;
33
- }
34
- export interface DownloadTierResult {
35
- status: 'ok' | 'error' | 'skipped';
36
- path?: string;
37
- message: string;
38
- }
39
- export declare const INSTITUTIONAL_ACCESS_TIER_ID = "institutional_access";
40
- export declare function downloadWithFallback(searchers: Searchers, options: DownloadWithFallbackOptions): Promise<DownloadWithFallbackResult>;
1
+ export { createDefaultDownloadTiers, downloadWithFallback, INSTITUTIONAL_ACCESS_TIER_ID, insertDownloadTierBefore } from '../capabilities/pdf-discovery/OpenAccessFallbackService.js';
2
+ export type { DownloadTier, DownloadTierContext, DownloadTierResult } from '../capabilities/pdf-discovery/DownloadTier.js';
3
+ export type { DownloadWithFallbackOptions, DownloadWithFallbackResult } from '../capabilities/pdf-discovery/types.js';
41
4
  //# sourceMappingURL=OpenAccessFallbackService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAccessFallbackService.d.ts","sourceRoot":"","sources":["../../src/services/OpenAccessFallbackService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKtD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,4BAA4B,yBAAyB,CAAC;AAgCnE,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,0BAA0B,CAAC,CAsBrC"}
1
+ {"version":3,"file":"OpenAccessFallbackService.d.ts","sourceRoot":"","sources":["../../src/services/OpenAccessFallbackService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,4DAA4D,CAAC;AAEpE,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,+CAA+C,CAAC;AAEvD,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,wCAAwC,CAAC"}
@@ -1,147 +1,2 @@
1
- import { downloadPdfFromUrl, safeFilename } from '../utils/PdfDownload.js';
2
- export const INSTITUTIONAL_ACCESS_TIER_ID = 'institutional_access';
3
- const REPOSITORY_SOURCES = ['pmc', 'europepmc', 'core', 'openaire'];
4
- const DEFAULT_DOWNLOAD_TIERS = [
5
- {
6
- id: 'primary',
7
- stage: 'primary',
8
- run: tryPrimaryDownload
9
- },
10
- {
11
- id: 'direct_pdf_url',
12
- stage: 'direct_pdf_url',
13
- run: tryDirectMetadataUrl
14
- },
15
- {
16
- id: 'repositories',
17
- stage: 'repositories',
18
- run: tryRepositoryFallback
19
- },
20
- {
21
- id: 'unpaywall',
22
- stage: 'unpaywall',
23
- run: tryUnpaywall
24
- },
25
- {
26
- id: 'scihub',
27
- stage: 'scihub',
28
- run: trySciHub
29
- }
30
- ];
31
- export async function downloadWithFallback(searchers, options) {
32
- const savePath = options.savePath || './downloads';
33
- const attempts = [];
34
- const context = {
35
- searchers,
36
- source: normalizeSource(options.source),
37
- paperId: options.paperId,
38
- doi: options.doi,
39
- title: options.title,
40
- savePath,
41
- useSciHub: options.useSciHub !== false
42
- };
43
- for (const tier of DEFAULT_DOWNLOAD_TIERS) {
44
- const result = await tier.run(context);
45
- attempts.push({ stage: tier.stage, status: result.status, message: result.message });
46
- if (result.status === 'ok' && result.path) {
47
- return { status: 'ok', path: result.path, attempts };
48
- }
49
- }
50
- return { status: 'error', attempts };
51
- }
52
- async function tryPrimaryDownload(context) {
53
- const primary = context.searchers[context.source];
54
- if (!primary?.getCapabilities().download) {
55
- return { status: 'skipped', message: `No primary downloader for ${context.source}` };
56
- }
57
- try {
58
- const path = await primary.downloadPdf(context.paperId, { savePath: context.savePath });
59
- return { status: 'ok', path, message: path };
60
- }
61
- catch (error) {
62
- return { status: 'error', message: error?.message || String(error) };
63
- }
64
- }
65
- async function tryDirectMetadataUrl(context) {
66
- const searcher = context.searchers[context.source];
67
- if (!searcher) {
68
- return { status: 'skipped', message: `No metadata searcher for ${context.source}.` };
69
- }
70
- try {
71
- const paper = await searcher.getPaperByDoi(context.paperId);
72
- if (!paper?.pdfUrl) {
73
- return { status: 'skipped', message: 'No pdf_url found in source metadata.' };
74
- }
75
- const path = await downloadPdfFromUrl(paper.pdfUrl, context.savePath, `${context.source}_${safeFilename(paper.paperId)}`);
76
- return { status: 'ok', path, message: path };
77
- }
78
- catch (error) {
79
- return { status: 'error', message: error?.message || String(error) };
80
- }
81
- }
82
- async function tryRepositoryFallback(context) {
83
- const queries = [context.doi || '', context.title || ''].filter(Boolean);
84
- if (queries.length === 0) {
85
- return { status: 'skipped', message: 'No DOI/title provided for repository discovery.' };
86
- }
87
- for (const source of REPOSITORY_SOURCES) {
88
- const searcher = context.searchers[source];
89
- if (!searcher)
90
- continue;
91
- for (const query of queries) {
92
- try {
93
- const papers = await searcher.search(query, { maxResults: 3 });
94
- const paper = papers.find(candidate => candidate.pdfUrl);
95
- if (!paper?.pdfUrl)
96
- continue;
97
- const path = await downloadPdfFromUrl(paper.pdfUrl, context.savePath, `${source}_${safeFilename(paper.paperId)}`);
98
- return { status: 'ok', path, message: path };
99
- }
100
- catch {
101
- continue;
102
- }
103
- }
104
- }
105
- return { status: 'skipped', message: 'No repository PDF candidate succeeded.' };
106
- }
107
- async function tryUnpaywall(context) {
108
- if (!context.doi) {
109
- return { status: 'skipped', message: 'DOI not provided.' };
110
- }
111
- try {
112
- const unpaywall = context.searchers.unpaywall;
113
- const pdfUrl = await unpaywall.resolveBestPdfUrl(context.doi);
114
- if (!pdfUrl) {
115
- return { status: 'skipped', message: 'No OA PDF URL found or email not configured.' };
116
- }
117
- const path = await downloadPdfFromUrl(pdfUrl, context.savePath, `unpaywall_${safeFilename(context.doi)}`);
118
- return { status: 'ok', path, message: path };
119
- }
120
- catch (error) {
121
- return { status: 'error', message: error?.message || String(error) };
122
- }
123
- }
124
- async function trySciHub(context) {
125
- if (!context.useSciHub) {
126
- return { status: 'skipped', message: 'Sci-Hub fallback disabled by useSciHub=false.' };
127
- }
128
- const identifier = context.doi || context.title || context.paperId;
129
- try {
130
- const path = await context.searchers.scihub.downloadPdf(identifier, { savePath: context.savePath });
131
- return { status: 'ok', path, message: path };
132
- }
133
- catch (error) {
134
- return { status: 'error', message: error?.message || String(error) };
135
- }
136
- }
137
- function normalizeSource(source) {
138
- const normalized = source.trim().toLowerCase();
139
- if (normalized === 'google_scholar')
140
- return 'googlescholar';
141
- if (normalized === 'pubmed_central')
142
- return 'pmc';
143
- if (normalized === 'europe_pmc')
144
- return 'europepmc';
145
- return normalized;
146
- }
1
+ export { createDefaultDownloadTiers, downloadWithFallback, INSTITUTIONAL_ACCESS_TIER_ID, insertDownloadTierBefore } from '../capabilities/pdf-discovery/OpenAccessFallbackService.js';
147
2
  //# sourceMappingURL=OpenAccessFallbackService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAccessFallbackService.js","sourceRoot":"","sources":["../../src/services/OpenAccessFallbackService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAccessFallbackService.js","sourceRoot":"","sources":["../../src/services/OpenAccessFallbackService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,EACzB,MAAM,4DAA4D,CAAC"}
@@ -1,99 +1,3 @@
1
- /**
2
- * Unified Error Handler for API requests
3
- * Provides consistent error handling across all platforms
4
- */
5
- /**
6
- * API Error codes and their meanings
7
- */
8
- export declare const HTTP_ERROR_CODES: {
9
- readonly 400: "Bad Request - Invalid parameters or syntax";
10
- readonly 401: "Unauthorized - Invalid or missing API key";
11
- readonly 403: "Forbidden - Access denied or rate limit exceeded";
12
- readonly 404: "Not Found - Resource does not exist";
13
- readonly 405: "Method Not Allowed - HTTP method not supported";
14
- readonly 408: "Request Timeout - Server took too long to respond";
15
- readonly 429: "Too Many Requests - Rate limit exceeded";
16
- readonly 500: "Internal Server Error - Server error";
17
- readonly 502: "Bad Gateway - Server communication error";
18
- readonly 503: "Service Unavailable - Server temporarily unavailable";
19
- readonly 504: "Gateway Timeout - Server timeout";
20
- };
21
- /**
22
- * Custom API Error class with detailed information
23
- */
24
- export declare class ApiError extends Error {
25
- readonly status?: number;
26
- readonly platform: string;
27
- readonly operation: string;
28
- readonly timestamp: string;
29
- readonly retryable: boolean;
30
- readonly details?: any;
31
- constructor(options: {
32
- message: string;
33
- status?: number;
34
- platform: string;
35
- operation: string;
36
- details?: any;
37
- });
38
- private isRetryable;
39
- toJSON(): {
40
- name: string;
41
- message: string;
42
- status: number | undefined;
43
- platform: string;
44
- operation: string;
45
- timestamp: string;
46
- retryable: boolean;
47
- };
48
- }
49
- /**
50
- * Error Handler class for unified error processing
51
- */
52
- export declare class ErrorHandler {
53
- private platform;
54
- private verbose;
55
- constructor(platform: string, verbose?: boolean);
56
- /**
57
- * Handle HTTP errors from axios or similar libraries
58
- */
59
- handleHttpError(error: any, operation: string): never;
60
- /**
61
- * Handle generic errors
62
- */
63
- handleError(error: any, operation: string): never;
64
- /**
65
- * Extract error message from various error formats
66
- */
67
- private extractErrorMessage;
68
- /**
69
- * Create user-friendly error message
70
- */
71
- private createUserMessage;
72
- /**
73
- * Sanitize URL for logging
74
- */
75
- private sanitizeUrl;
76
- /**
77
- * Log error with consistent format
78
- */
79
- private logError;
80
- /**
81
- * Check if an error is retryable
82
- */
83
- static isRetryable(error: any): boolean;
84
- /**
85
- * Get suggested retry delay based on error
86
- */
87
- static getRetryDelay(error: any, attempt?: number): number;
88
- /**
89
- * Retry a function with exponential backoff and full jitter
90
- */
91
- static retryWithBackoff<T>(fn: () => Promise<T>, options?: {
92
- maxRetries?: number;
93
- initialDelayMs?: number;
94
- maxDelayMs?: number;
95
- context?: string;
96
- }): Promise<T>;
97
- }
98
- export default ErrorHandler;
1
+ export * from '../infrastructure/http/ErrorHandler.js';
2
+ export { default } from '../infrastructure/http/ErrorHandler.js';
99
3
  //# sourceMappingURL=ErrorHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../src/utils/ErrorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;CAYnB,CAAC;AAEX;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,OAAO,CAAC,EAAE,GAAG,CAAC;gBAElB,OAAO,EAAE;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,GAAG,CAAC;KACf;IAaD,OAAO,CAAC,WAAW;IAMnB,MAAM;;;;;;;;;CAWP;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;gBAEb,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAKtD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IAiCrD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IAqBjD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IASvC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,GAAE,MAAU,GAAG,MAAM;IAyB7D;;OAEG;WACU,gBAAgB,CAAC,CAAC,EAC7B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC,CAAC,CAAC;CAgCd;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../src/utils/ErrorHandler.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC"}