@mantra-ai/core 0.1.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 (385) hide show
  1. package/dist/ai/google/client.d.ts +67 -0
  2. package/dist/ai/google/client.d.ts.map +1 -0
  3. package/dist/ai/google/client.js +169 -0
  4. package/dist/ai/google/client.js.map +1 -0
  5. package/dist/ai/google/generate.d.ts +10 -0
  6. package/dist/ai/google/generate.d.ts.map +1 -0
  7. package/dist/ai/google/generate.js +137 -0
  8. package/dist/ai/google/generate.js.map +1 -0
  9. package/dist/ai/google/index.d.ts +4 -0
  10. package/dist/ai/google/index.d.ts.map +1 -0
  11. package/dist/ai/google/index.js +4 -0
  12. package/dist/ai/google/index.js.map +1 -0
  13. package/dist/ai/google/types.d.ts +88 -0
  14. package/dist/ai/google/types.d.ts.map +1 -0
  15. package/dist/ai/google/types.js +55 -0
  16. package/dist/ai/google/types.js.map +1 -0
  17. package/dist/ai/index.d.ts +3 -0
  18. package/dist/ai/index.d.ts.map +1 -0
  19. package/dist/ai/index.js +3 -0
  20. package/dist/ai/index.js.map +1 -0
  21. package/dist/ai/openai/client.d.ts +22 -0
  22. package/dist/ai/openai/client.d.ts.map +1 -0
  23. package/dist/ai/openai/client.js +49 -0
  24. package/dist/ai/openai/client.js.map +1 -0
  25. package/dist/ai/openai/generate.d.ts +14 -0
  26. package/dist/ai/openai/generate.d.ts.map +1 -0
  27. package/dist/ai/openai/generate.js +178 -0
  28. package/dist/ai/openai/generate.js.map +1 -0
  29. package/dist/ai/openai/index.d.ts +4 -0
  30. package/dist/ai/openai/index.d.ts.map +1 -0
  31. package/dist/ai/openai/index.js +4 -0
  32. package/dist/ai/openai/index.js.map +1 -0
  33. package/dist/ai/openai/types.d.ts +86 -0
  34. package/dist/ai/openai/types.d.ts.map +1 -0
  35. package/dist/ai/openai/types.js +56 -0
  36. package/dist/ai/openai/types.js.map +1 -0
  37. package/dist/ai/prompts/index.d.ts +1 -0
  38. package/dist/ai/prompts/index.d.ts.map +1 -0
  39. package/dist/ai/prompts/index.js +2 -0
  40. package/dist/ai/prompts/index.js.map +1 -0
  41. package/dist/errors/index.d.ts +3 -0
  42. package/dist/errors/index.d.ts.map +1 -0
  43. package/dist/errors/index.js +4 -0
  44. package/dist/errors/index.js.map +1 -0
  45. package/dist/errors/schemas.d.ts +304 -0
  46. package/dist/errors/schemas.d.ts.map +1 -0
  47. package/dist/errors/schemas.js +57 -0
  48. package/dist/errors/schemas.js.map +1 -0
  49. package/dist/errors/types.d.ts +30 -0
  50. package/dist/errors/types.d.ts.map +1 -0
  51. package/dist/errors/types.js +33 -0
  52. package/dist/errors/types.js.map +1 -0
  53. package/dist/index.d.ts +21 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +21 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/normalization/jats/index.d.ts +4 -0
  58. package/dist/normalization/jats/index.d.ts.map +1 -0
  59. package/dist/normalization/jats/index.js +3 -0
  60. package/dist/normalization/jats/index.js.map +1 -0
  61. package/dist/normalization/jats/normalize.d.ts +7 -0
  62. package/dist/normalization/jats/normalize.d.ts.map +1 -0
  63. package/dist/normalization/jats/normalize.js +213 -0
  64. package/dist/normalization/jats/normalize.js.map +1 -0
  65. package/dist/normalization/jats/utils/build/finalize.d.ts +3 -0
  66. package/dist/normalization/jats/utils/build/finalize.d.ts.map +1 -0
  67. package/dist/normalization/jats/utils/build/finalize.js +462 -0
  68. package/dist/normalization/jats/utils/build/finalize.js.map +1 -0
  69. package/dist/normalization/jats/utils/build/flatten.d.ts +20 -0
  70. package/dist/normalization/jats/utils/build/flatten.d.ts.map +1 -0
  71. package/dist/normalization/jats/utils/build/flatten.js +502 -0
  72. package/dist/normalization/jats/utils/build/flatten.js.map +1 -0
  73. package/dist/normalization/jats/utils/build/meta.d.ts +10 -0
  74. package/dist/normalization/jats/utils/build/meta.d.ts.map +1 -0
  75. package/dist/normalization/jats/utils/build/meta.js +32 -0
  76. package/dist/normalization/jats/utils/build/meta.js.map +1 -0
  77. package/dist/normalization/jats/utils/build/version.d.ts +3 -0
  78. package/dist/normalization/jats/utils/build/version.d.ts.map +1 -0
  79. package/dist/normalization/jats/utils/build/version.js +11 -0
  80. package/dist/normalization/jats/utils/build/version.js.map +1 -0
  81. package/dist/normalization/jats/utils/category.d.ts +11 -0
  82. package/dist/normalization/jats/utils/category.d.ts.map +1 -0
  83. package/dist/normalization/jats/utils/category.js +431 -0
  84. package/dist/normalization/jats/utils/category.js.map +1 -0
  85. package/dist/normalization/jats/utils/collectors/abstracts.d.ts +3 -0
  86. package/dist/normalization/jats/utils/collectors/abstracts.d.ts.map +1 -0
  87. package/dist/normalization/jats/utils/collectors/abstracts.js +168 -0
  88. package/dist/normalization/jats/utils/collectors/abstracts.js.map +1 -0
  89. package/dist/normalization/jats/utils/collectors/back.d.ts +35 -0
  90. package/dist/normalization/jats/utils/collectors/back.d.ts.map +1 -0
  91. package/dist/normalization/jats/utils/collectors/back.js +801 -0
  92. package/dist/normalization/jats/utils/collectors/back.js.map +1 -0
  93. package/dist/normalization/jats/utils/collectors/contributors.d.ts +4 -0
  94. package/dist/normalization/jats/utils/collectors/contributors.d.ts.map +1 -0
  95. package/dist/normalization/jats/utils/collectors/contributors.js +77 -0
  96. package/dist/normalization/jats/utils/collectors/contributors.js.map +1 -0
  97. package/dist/normalization/jats/utils/collectors/keywords.d.ts +2 -0
  98. package/dist/normalization/jats/utils/collectors/keywords.d.ts.map +1 -0
  99. package/dist/normalization/jats/utils/collectors/keywords.js +14 -0
  100. package/dist/normalization/jats/utils/collectors/keywords.js.map +1 -0
  101. package/dist/normalization/jats/utils/collectors/meta.d.ts +6 -0
  102. package/dist/normalization/jats/utils/collectors/meta.d.ts.map +1 -0
  103. package/dist/normalization/jats/utils/collectors/meta.js +103 -0
  104. package/dist/normalization/jats/utils/collectors/meta.js.map +1 -0
  105. package/dist/normalization/jats/utils/collectors/sections.d.ts +7 -0
  106. package/dist/normalization/jats/utils/collectors/sections.d.ts.map +1 -0
  107. package/dist/normalization/jats/utils/collectors/sections.js +484 -0
  108. package/dist/normalization/jats/utils/collectors/sections.js.map +1 -0
  109. package/dist/normalization/jats/utils/licenses.d.ts +5 -0
  110. package/dist/normalization/jats/utils/licenses.d.ts.map +1 -0
  111. package/dist/normalization/jats/utils/licenses.js +64 -0
  112. package/dist/normalization/jats/utils/licenses.js.map +1 -0
  113. package/dist/normalization/jats/utils/po/nodes.d.ts +6 -0
  114. package/dist/normalization/jats/utils/po/nodes.d.ts.map +1 -0
  115. package/dist/normalization/jats/utils/po/nodes.js +60 -0
  116. package/dist/normalization/jats/utils/po/nodes.js.map +1 -0
  117. package/dist/normalization/jats/utils/po/query.d.ts +7 -0
  118. package/dist/normalization/jats/utils/po/query.d.ts.map +1 -0
  119. package/dist/normalization/jats/utils/po/query.js +67 -0
  120. package/dist/normalization/jats/utils/po/query.js.map +1 -0
  121. package/dist/normalization/jats/utils/po/serialize.d.ts +4 -0
  122. package/dist/normalization/jats/utils/po/serialize.d.ts.map +1 -0
  123. package/dist/normalization/jats/utils/po/serialize.js +329 -0
  124. package/dist/normalization/jats/utils/po/serialize.js.map +1 -0
  125. package/dist/normalization/jats/utils/po/text.d.ts +7 -0
  126. package/dist/normalization/jats/utils/po/text.d.ts.map +1 -0
  127. package/dist/normalization/jats/utils/po/text.js +114 -0
  128. package/dist/normalization/jats/utils/po/text.js.map +1 -0
  129. package/dist/normalization/jats/utils/references.d.ts +26 -0
  130. package/dist/normalization/jats/utils/references.d.ts.map +1 -0
  131. package/dist/normalization/jats/utils/references.js +371 -0
  132. package/dist/normalization/jats/utils/references.js.map +1 -0
  133. package/dist/normalization/jats/utils/strings.d.ts +8 -0
  134. package/dist/normalization/jats/utils/strings.d.ts.map +1 -0
  135. package/dist/normalization/jats/utils/strings.js +197 -0
  136. package/dist/normalization/jats/utils/strings.js.map +1 -0
  137. package/dist/normalization/jats/utils/types.d.ts +233 -0
  138. package/dist/normalization/jats/utils/types.d.ts.map +1 -0
  139. package/dist/normalization/jats/utils/types.js +2 -0
  140. package/dist/normalization/jats/utils/types.js.map +1 -0
  141. package/dist/normalization/jats/utils/xml.d.ts +5 -0
  142. package/dist/normalization/jats/utils/xml.d.ts.map +1 -0
  143. package/dist/normalization/jats/utils/xml.js +69 -0
  144. package/dist/normalization/jats/utils/xml.js.map +1 -0
  145. package/dist/normalization/normalized-doc-schema.d.ts +1094 -0
  146. package/dist/normalization/normalized-doc-schema.d.ts.map +1 -0
  147. package/dist/normalization/normalized-doc-schema.js +410 -0
  148. package/dist/normalization/normalized-doc-schema.js.map +1 -0
  149. package/dist/normalization/pdf/index.d.ts +4 -0
  150. package/dist/normalization/pdf/index.d.ts.map +1 -0
  151. package/dist/normalization/pdf/index.js +3 -0
  152. package/dist/normalization/pdf/index.js.map +1 -0
  153. package/dist/normalization/pdf/normalize.d.ts +31 -0
  154. package/dist/normalization/pdf/normalize.d.ts.map +1 -0
  155. package/dist/normalization/pdf/normalize.js +321 -0
  156. package/dist/normalization/pdf/normalize.js.map +1 -0
  157. package/dist/normalization/pdf/prompt.d.ts +3 -0
  158. package/dist/normalization/pdf/prompt.d.ts.map +1 -0
  159. package/dist/normalization/pdf/prompt.js +118 -0
  160. package/dist/normalization/pdf/prompt.js.map +1 -0
  161. package/dist/sources/arxiv/client.d.ts +4 -0
  162. package/dist/sources/arxiv/client.d.ts.map +1 -0
  163. package/dist/sources/arxiv/client.js +13 -0
  164. package/dist/sources/arxiv/client.js.map +1 -0
  165. package/dist/sources/biorxiv/client.d.ts +21 -0
  166. package/dist/sources/biorxiv/client.d.ts.map +1 -0
  167. package/dist/sources/biorxiv/client.js +173 -0
  168. package/dist/sources/biorxiv/client.js.map +1 -0
  169. package/dist/sources/crossref/client.d.ts +3 -0
  170. package/dist/sources/crossref/client.d.ts.map +1 -0
  171. package/dist/sources/crossref/client.js +24 -0
  172. package/dist/sources/crossref/client.js.map +1 -0
  173. package/dist/sources/europepmc/client.d.ts +3 -0
  174. package/dist/sources/europepmc/client.d.ts.map +1 -0
  175. package/dist/sources/europepmc/client.js +29 -0
  176. package/dist/sources/europepmc/client.js.map +1 -0
  177. package/dist/sources/medrxiv/browser.d.ts +16 -0
  178. package/dist/sources/medrxiv/browser.d.ts.map +1 -0
  179. package/dist/sources/medrxiv/browser.js +210 -0
  180. package/dist/sources/medrxiv/browser.js.map +1 -0
  181. package/dist/sources/medrxiv/client.d.ts +34 -0
  182. package/dist/sources/medrxiv/client.d.ts.map +1 -0
  183. package/dist/sources/medrxiv/client.js +673 -0
  184. package/dist/sources/medrxiv/client.js.map +1 -0
  185. package/dist/sources/medrxiv/shared.d.ts +7 -0
  186. package/dist/sources/medrxiv/shared.d.ts.map +1 -0
  187. package/dist/sources/medrxiv/shared.js +18 -0
  188. package/dist/sources/medrxiv/shared.js.map +1 -0
  189. package/dist/sources/plos/client.d.ts +13 -0
  190. package/dist/sources/plos/client.d.ts.map +1 -0
  191. package/dist/sources/plos/client.js +147 -0
  192. package/dist/sources/plos/client.js.map +1 -0
  193. package/dist/sources/preprint-discovery.d.ts +55 -0
  194. package/dist/sources/preprint-discovery.d.ts.map +1 -0
  195. package/dist/sources/preprint-discovery.js +115 -0
  196. package/dist/sources/preprint-discovery.js.map +1 -0
  197. package/dist/types/expand.d.ts +5 -0
  198. package/dist/types/expand.d.ts.map +1 -0
  199. package/dist/types/expand.js +20 -0
  200. package/dist/types/expand.js.map +1 -0
  201. package/dist/types/methods-types.d.ts +37 -0
  202. package/dist/types/methods-types.d.ts.map +1 -0
  203. package/dist/types/methods-types.js +2 -0
  204. package/dist/types/methods-types.js.map +1 -0
  205. package/dist/types/multi-input-types.d.ts +57 -0
  206. package/dist/types/multi-input-types.d.ts.map +1 -0
  207. package/dist/types/multi-input-types.js +2 -0
  208. package/dist/types/multi-input-types.js.map +1 -0
  209. package/dist/types/paper/types.d.ts +41 -0
  210. package/dist/types/paper/types.d.ts.map +1 -0
  211. package/dist/types/paper/types.js +2 -0
  212. package/dist/types/paper/types.js.map +1 -0
  213. package/dist/types/results-types.d.ts +122 -0
  214. package/dist/types/results-types.d.ts.map +1 -0
  215. package/dist/types/results-types.js +17 -0
  216. package/dist/types/results-types.js.map +1 -0
  217. package/dist/types/supp-types.d.ts +6 -0
  218. package/dist/types/supp-types.d.ts.map +1 -0
  219. package/dist/types/supp-types.js +2 -0
  220. package/dist/types/supp-types.js.map +1 -0
  221. package/dist/types/version.d.ts +1828 -0
  222. package/dist/types/version.d.ts.map +1 -0
  223. package/dist/types/version.js +311 -0
  224. package/dist/types/version.js.map +1 -0
  225. package/dist/types/work.d.ts +4455 -0
  226. package/dist/types/work.d.ts.map +1 -0
  227. package/dist/types/work.js +330 -0
  228. package/dist/types/work.js.map +1 -0
  229. package/dist/works/adapters/crossref.d.ts +28 -0
  230. package/dist/works/adapters/crossref.d.ts.map +1 -0
  231. package/dist/works/adapters/crossref.js +43 -0
  232. package/dist/works/adapters/crossref.js.map +1 -0
  233. package/dist/works/adapters/europepmc.d.ts +14 -0
  234. package/dist/works/adapters/europepmc.d.ts.map +1 -0
  235. package/dist/works/adapters/europepmc.js +46 -0
  236. package/dist/works/adapters/europepmc.js.map +1 -0
  237. package/dist/works/adapters/openalex.d.ts +5 -0
  238. package/dist/works/adapters/openalex.d.ts.map +1 -0
  239. package/dist/works/adapters/openalex.js +75 -0
  240. package/dist/works/adapters/openalex.js.map +1 -0
  241. package/dist/works/errors.d.ts +23 -0
  242. package/dist/works/errors.d.ts.map +1 -0
  243. package/dist/works/errors.js +37 -0
  244. package/dist/works/errors.js.map +1 -0
  245. package/dist/works/id/detect-identifier.d.ts +15 -0
  246. package/dist/works/id/detect-identifier.d.ts.map +1 -0
  247. package/dist/works/id/detect-identifier.js +50 -0
  248. package/dist/works/id/detect-identifier.js.map +1 -0
  249. package/dist/works/id/normalize-external-id.d.ts +3 -0
  250. package/dist/works/id/normalize-external-id.d.ts.map +1 -0
  251. package/dist/works/id/normalize-external-id.js +44 -0
  252. package/dist/works/id/normalize-external-id.js.map +1 -0
  253. package/dist/works/id/normalize-ids.d.ts +66 -0
  254. package/dist/works/id/normalize-ids.d.ts.map +1 -0
  255. package/dist/works/id/normalize-ids.js +112 -0
  256. package/dist/works/id/normalize-ids.js.map +1 -0
  257. package/dist/works/id/normalize-internals.d.ts +7 -0
  258. package/dist/works/id/normalize-internals.d.ts.map +1 -0
  259. package/dist/works/id/normalize-internals.js +65 -0
  260. package/dist/works/id/normalize-internals.js.map +1 -0
  261. package/dist/works/id/resolve.d.ts +31 -0
  262. package/dist/works/id/resolve.d.ts.map +1 -0
  263. package/dist/works/id/resolve.js +123 -0
  264. package/dist/works/id/resolve.js.map +1 -0
  265. package/dist/works/id/resolveIds/assign.d.ts +4 -0
  266. package/dist/works/id/resolveIds/assign.d.ts.map +1 -0
  267. package/dist/works/id/resolveIds/assign.js +15 -0
  268. package/dist/works/id/resolveIds/assign.js.map +1 -0
  269. package/dist/works/id/resolveIds/flags.d.ts +11 -0
  270. package/dist/works/id/resolveIds/flags.d.ts.map +1 -0
  271. package/dist/works/id/resolveIds/flags.js +27 -0
  272. package/dist/works/id/resolveIds/flags.js.map +1 -0
  273. package/dist/works/id/resolveIds/idctx.d.ts +4 -0
  274. package/dist/works/id/resolveIds/idctx.d.ts.map +1 -0
  275. package/dist/works/id/resolveIds/idctx.js +25 -0
  276. package/dist/works/id/resolveIds/idctx.js.map +1 -0
  277. package/dist/works/id/resolveIds/index.d.ts +13 -0
  278. package/dist/works/id/resolveIds/index.d.ts.map +1 -0
  279. package/dist/works/id/resolveIds/index.js +498 -0
  280. package/dist/works/id/resolveIds/index.js.map +1 -0
  281. package/dist/works/id/resolveIds/versioning.d.ts +27 -0
  282. package/dist/works/id/resolveIds/versioning.d.ts.map +1 -0
  283. package/dist/works/id/resolveIds/versioning.js +156 -0
  284. package/dist/works/id/resolveIds/versioning.js.map +1 -0
  285. package/dist/works/id/resolveIds/workWhere.d.ts +3 -0
  286. package/dist/works/id/resolveIds/workWhere.d.ts.map +1 -0
  287. package/dist/works/id/resolveIds/workWhere.js +35 -0
  288. package/dist/works/id/resolveIds/workWhere.js.map +1 -0
  289. package/dist/works/id/types.d.ts +6 -0
  290. package/dist/works/id/types.d.ts.map +1 -0
  291. package/dist/works/id/types.js +2 -0
  292. package/dist/works/id/types.js.map +1 -0
  293. package/dist/works/pdf-fallback/candidates.d.ts +12 -0
  294. package/dist/works/pdf-fallback/candidates.d.ts.map +1 -0
  295. package/dist/works/pdf-fallback/candidates.js +51 -0
  296. package/dist/works/pdf-fallback/candidates.js.map +1 -0
  297. package/dist/works/pdf-fallback/fetch.d.ts +21 -0
  298. package/dist/works/pdf-fallback/fetch.d.ts.map +1 -0
  299. package/dist/works/pdf-fallback/fetch.js +89 -0
  300. package/dist/works/pdf-fallback/fetch.js.map +1 -0
  301. package/dist/works/pdf-fallback/index.d.ts +28 -0
  302. package/dist/works/pdf-fallback/index.d.ts.map +1 -0
  303. package/dist/works/pdf-fallback/index.js +35 -0
  304. package/dist/works/pdf-fallback/index.js.map +1 -0
  305. package/dist/works/plan.d.ts +8 -0
  306. package/dist/works/plan.d.ts.map +1 -0
  307. package/dist/works/plan.js +62 -0
  308. package/dist/works/plan.js.map +1 -0
  309. package/dist/works/strategies/arxiv.d.ts +3 -0
  310. package/dist/works/strategies/arxiv.d.ts.map +1 -0
  311. package/dist/works/strategies/arxiv.js +56 -0
  312. package/dist/works/strategies/arxiv.js.map +1 -0
  313. package/dist/works/strategies/biorxiv.d.ts +3 -0
  314. package/dist/works/strategies/biorxiv.d.ts.map +1 -0
  315. package/dist/works/strategies/biorxiv.js +63 -0
  316. package/dist/works/strategies/biorxiv.js.map +1 -0
  317. package/dist/works/strategies/europepmc.d.ts +3 -0
  318. package/dist/works/strategies/europepmc.d.ts.map +1 -0
  319. package/dist/works/strategies/europepmc.js +15 -0
  320. package/dist/works/strategies/europepmc.js.map +1 -0
  321. package/dist/works/strategies/index.d.ts +12 -0
  322. package/dist/works/strategies/index.d.ts.map +1 -0
  323. package/dist/works/strategies/index.js +19 -0
  324. package/dist/works/strategies/index.js.map +1 -0
  325. package/dist/works/strategies/landing-url.d.ts +3 -0
  326. package/dist/works/strategies/landing-url.d.ts.map +1 -0
  327. package/dist/works/strategies/landing-url.js +10 -0
  328. package/dist/works/strategies/landing-url.js.map +1 -0
  329. package/dist/works/strategies/medrxiv.d.ts +3 -0
  330. package/dist/works/strategies/medrxiv.d.ts.map +1 -0
  331. package/dist/works/strategies/medrxiv.js +47 -0
  332. package/dist/works/strategies/medrxiv.js.map +1 -0
  333. package/dist/works/strategies/plos.d.ts +3 -0
  334. package/dist/works/strategies/plos.d.ts.map +1 -0
  335. package/dist/works/strategies/plos.js +15 -0
  336. package/dist/works/strategies/plos.js.map +1 -0
  337. package/dist/works/strategies/shared.d.ts +11 -0
  338. package/dist/works/strategies/shared.d.ts.map +1 -0
  339. package/dist/works/strategies/shared.js +97 -0
  340. package/dist/works/strategies/shared.js.map +1 -0
  341. package/dist/works/strategies/ten1101.d.ts +3 -0
  342. package/dist/works/strategies/ten1101.d.ts.map +1 -0
  343. package/dist/works/strategies/ten1101.js +84 -0
  344. package/dist/works/strategies/ten1101.js.map +1 -0
  345. package/dist/works/text/acquire-fulltext.d.ts +7 -0
  346. package/dist/works/text/acquire-fulltext.d.ts.map +1 -0
  347. package/dist/works/text/acquire-fulltext.js +62 -0
  348. package/dist/works/text/acquire-fulltext.js.map +1 -0
  349. package/dist/works/text/normalize.d.ts +40 -0
  350. package/dist/works/text/normalize.d.ts.map +1 -0
  351. package/dist/works/text/normalize.js +188 -0
  352. package/dist/works/text/normalize.js.map +1 -0
  353. package/dist/works/types.d.ts +215 -0
  354. package/dist/works/types.d.ts.map +1 -0
  355. package/dist/works/types.js +6 -0
  356. package/dist/works/types.js.map +1 -0
  357. package/dist/works/util/debug.d.ts +7 -0
  358. package/dist/works/util/debug.d.ts.map +1 -0
  359. package/dist/works/util/debug.js +9 -0
  360. package/dist/works/util/debug.js.map +1 -0
  361. package/dist/works/util/license.d.ts +9 -0
  362. package/dist/works/util/license.d.ts.map +1 -0
  363. package/dist/works/util/license.js +39 -0
  364. package/dist/works/util/license.js.map +1 -0
  365. package/dist/works/util/normalize.d.ts +2 -0
  366. package/dist/works/util/normalize.d.ts.map +1 -0
  367. package/dist/works/util/normalize.js +76 -0
  368. package/dist/works/util/normalize.js.map +1 -0
  369. package/dist/works/util/parse.d.ts +8 -0
  370. package/dist/works/util/parse.d.ts.map +1 -0
  371. package/dist/works/util/parse.js +32 -0
  372. package/dist/works/util/parse.js.map +1 -0
  373. package/dist/works/util/source.d.ts +10 -0
  374. package/dist/works/util/source.d.ts.map +1 -0
  375. package/dist/works/util/source.js +48 -0
  376. package/dist/works/util/source.js.map +1 -0
  377. package/dist/works/util/version-label.d.ts +2 -0
  378. package/dist/works/util/version-label.d.ts.map +1 -0
  379. package/dist/works/util/version-label.js +8 -0
  380. package/dist/works/util/version-label.js.map +1 -0
  381. package/dist/works/util/work-id.d.ts +2 -0
  382. package/dist/works/util/work-id.d.ts.map +1 -0
  383. package/dist/works/util/work-id.js +27 -0
  384. package/dist/works/util/work-id.js.map +1 -0
  385. package/package.json +208 -0
@@ -0,0 +1,484 @@
1
+ import { nsArray, getBodyNode, getText } from "../xml";
2
+ import { classifySection } from "../category";
3
+ import { getBodyNodePO, poFindDescendantsByLocal, poFindFirstByLocal, poFindSectionById, poChildSections, poFindFirstByLocalAttr, } from "../po/query";
4
+ import { poGetAttr, poChildren, poIsTextNode, poTagName, poMatchesLocal, } from "../po/nodes";
5
+ import { poText } from "../po/text";
6
+ import { poSerialize, poSerializeMinimal } from "../po/serialize";
7
+ import { asString, cleanHeading } from "../strings";
8
+ export function collectSections(article, body, domPO) {
9
+ const bodyPO = getBodyNodePO(domPO);
10
+ const secsObj = nsArray(body, "sec");
11
+ const sections = secsObj.map((s, idx) => collectSectionNode(s, 1, undefined, domPO, bodyPO, idx));
12
+ if (sections.length)
13
+ return sections;
14
+ // Fallback: some JATS (esp. preprints) put paragraphs directly under <body>
15
+ // or use loose structures like <list> without explicit <sec> wrappers.
16
+ const parasPO = collectLooseBodyParagraphsFromPO(domPO);
17
+ const parasObj = collectLooseBodyParagraphs(body);
18
+ const paras = parasPO.length ? parasPO : parasObj;
19
+ if (paras.length) {
20
+ return [
21
+ { normalized_title: "Other", category: "other", paragraphs: paras },
22
+ ];
23
+ }
24
+ // Consider scanning sub-articles (translation/version/digest) when main body is thin
25
+ const subarts = nsArray(article, "sub-article");
26
+ if (subarts.length) {
27
+ const allowed = /translation|version|digest/i;
28
+ for (const sa of subarts) {
29
+ const t = asString(sa?.["@_article-type"]) || "";
30
+ if (!allowed.test(t))
31
+ continue;
32
+ const sb = getBodyNode(sa);
33
+ const ssecs = nsArray(sb, "sec").map((s) => collectSectionNode(s, 1, undefined, domPO));
34
+ if (ssecs.length)
35
+ return ssecs;
36
+ // PO fallback within this sub-article
37
+ const saPO = poFindDescendantsByLocal(domPO, "sub-article").find((node) => {
38
+ const at = (poGetAttr(node, "article-type") || "").toLowerCase();
39
+ return allowed.test(at);
40
+ });
41
+ if (saPO) {
42
+ const bodyPO = poFindFirstByLocal(saPO, "body") ||
43
+ poFindFirstByLocal(saPO, "article-body");
44
+ if (bodyPO) {
45
+ const parasSA = collectLooseBodyParagraphsFromPORoot(bodyPO);
46
+ if (parasSA.length)
47
+ return [
48
+ {
49
+ normalized_title: "Other",
50
+ category: "other",
51
+ paragraphs: parasSA,
52
+ },
53
+ ];
54
+ }
55
+ }
56
+ }
57
+ }
58
+ return sections;
59
+ }
60
+ export function collectSectionNode(s, level, parentCategory, domPO, searchRootPO, siblingIndex) {
61
+ const id = asString(s?.["@_id"]) || asString(s?.id) || undefined;
62
+ const sec_type = asString(s?.["@_sec-type"]) || undefined;
63
+ let title = getText(s?.title) || getText(s?.label) || undefined;
64
+ const { category, normalized_title } = classifySection(title, sec_type, level, parentCategory);
65
+ const subsecsObj = nsArray(s, "sec");
66
+ const blocks = [];
67
+ let secPO;
68
+ if (domPO) {
69
+ if (id)
70
+ secPO = poFindSectionById(domPO, id);
71
+ // Fallback: align by sibling index under the preserveOrder search root
72
+ if (!secPO && searchRootPO && typeof siblingIndex === "number") {
73
+ const directSecs = poChildSections(searchRootPO);
74
+ secPO = directSecs[siblingIndex];
75
+ }
76
+ if (!secPO && searchRootPO) {
77
+ // Secondary fallback by normalized title under search root
78
+ const want = cleanHeading(title || "");
79
+ if (want) {
80
+ const match = poChildSections(searchRootPO).find((node) => {
81
+ const tnode = poFindFirstByLocal(node, "title") ||
82
+ poFindFirstByLocal(node, "label");
83
+ const t = (tnode && (poText(poChildren(tnode)) || poText(tnode))) ||
84
+ undefined;
85
+ return cleanHeading(t || "") === want;
86
+ });
87
+ secPO = match;
88
+ }
89
+ }
90
+ if (secPO) {
91
+ // Build ordered blocks by iterating direct children
92
+ let poSecIdx = 0; // index among direct child <sec> elements
93
+ const children = poChildren(secPO);
94
+ for (const ch of children) {
95
+ if (poIsTextNode(ch)) {
96
+ const t = poText(ch);
97
+ if (t && t.trim())
98
+ blocks.push({ kind: "paragraph", text: t.trim() });
99
+ continue;
100
+ }
101
+ const nm = poTagName(ch) || "";
102
+ if (poMatchesLocal(nm, "title") || poMatchesLocal(nm, "label"))
103
+ continue; // header handled separately
104
+ if (poMatchesLocal(nm, "sec")) {
105
+ const os = subsecsObj[poSecIdx];
106
+ // Recurse using object-mode node and align by index under this PO parent
107
+ const sub = os
108
+ ? collectSectionNode(os, level + 1, category, domPO, secPO, poSecIdx)
109
+ : // Fallback: recurse with a minimal shell if object-mode missing
110
+ { title: undefined, paragraphs: [] };
111
+ blocks.push({ kind: "section", section: sub });
112
+ poSecIdx += 1;
113
+ continue;
114
+ }
115
+ if (poMatchesLocal(nm, "p")) {
116
+ const t = (poText(poChildren(ch)) || poText(ch) || "").trim();
117
+ const x = poSerialize(ch);
118
+ const xm = poSerializeMinimal(ch);
119
+ if (t)
120
+ blocks.push({
121
+ kind: "paragraph",
122
+ text: t,
123
+ ...(x && x.trim() ? { xml: x } : {}),
124
+ ...(xm && xm.trim() ? { xml_minimal: xm } : {}),
125
+ });
126
+ continue;
127
+ }
128
+ if (poMatchesLocal(nm, "list")) {
129
+ // Emit a paragraph per list-item's main text
130
+ const items = poFindDescendantsByLocal(ch, "list-item");
131
+ for (const it of items) {
132
+ const p = poFindFirstByLocal(it, "p");
133
+ const t = ((p && (poText(poChildren(p)) || poText(p))) ||
134
+ poText(it) ||
135
+ "").trim();
136
+ if (!t)
137
+ continue;
138
+ const x = p ? poSerialize(p) : undefined;
139
+ const xm = p ? poSerializeMinimal(p) : undefined;
140
+ blocks.push({
141
+ kind: "paragraph",
142
+ text: t,
143
+ ...(x && x.trim() ? { xml: x } : {}),
144
+ ...(xm && xm.trim() ? { xml_minimal: xm } : {}),
145
+ });
146
+ }
147
+ continue;
148
+ }
149
+ if (poMatchesLocal(nm, "boxed-text")) {
150
+ for (const p of poFindDescendantsByLocal(ch, "p")) {
151
+ const t = (poText(poChildren(p)) || poText(p) || "").trim();
152
+ if (!t)
153
+ continue;
154
+ const x = poSerialize(p);
155
+ const xm = poSerializeMinimal(p);
156
+ blocks.push({
157
+ kind: "paragraph",
158
+ text: t,
159
+ ...(x && x.trim() ? { xml: x } : {}),
160
+ ...(xm && xm.trim() ? { xml_minimal: xm } : {}),
161
+ });
162
+ }
163
+ continue;
164
+ }
165
+ if (poMatchesLocal(nm, "fig")) {
166
+ const figId = poGetAttr(ch, "id") || poGetAttr(ch, "hwp:id");
167
+ const labelNode = poFindFirstByLocal(ch, "label");
168
+ const label = (labelNode &&
169
+ (poText(poChildren(labelNode)) || poText(labelNode))) ||
170
+ undefined;
171
+ const cap = poFindFirstByLocal(ch, "caption");
172
+ const titleNode = cap ? poFindFirstByLocal(cap, "title") : undefined;
173
+ const title = titleNode
174
+ ? poText(poChildren(titleNode)) || poText(titleNode) || undefined
175
+ : undefined;
176
+ const capParas = [];
177
+ const capXml = [];
178
+ const capXmlMin = [];
179
+ if (cap) {
180
+ for (const p of poFindDescendantsByLocal(cap, "p")) {
181
+ const t = (poText(poChildren(p)) || poText(p) || "").trim();
182
+ if (!t)
183
+ continue;
184
+ capParas.push(t);
185
+ const x = poSerialize(p);
186
+ const xm = poSerializeMinimal(p);
187
+ if (x && x.trim())
188
+ capXml.push(x);
189
+ if (xm && xm.trim())
190
+ capXmlMin.push(xm);
191
+ }
192
+ // Fallback: some captions put text directly under <caption> without <p>
193
+ if (!capParas.length) {
194
+ const tAll = (poText(poChildren(cap)) ||
195
+ poText(cap) ||
196
+ "").trim();
197
+ if (tAll)
198
+ capParas.push(tAll);
199
+ const xAll = poSerialize(cap);
200
+ const xmAll = poSerializeMinimal(cap);
201
+ if (xAll && xAll.trim())
202
+ capXml.push(xAll);
203
+ if (xmAll && xmAll.trim())
204
+ capXmlMin.push(xmAll);
205
+ }
206
+ }
207
+ const slugNode = poFindDescendantsByLocal(ch, "object-id").find((n) => {
208
+ const sub = poGetAttr(n, "hwp:sub-type");
209
+ return (sub || "").toLowerCase() === "slug";
210
+ });
211
+ const slug = (slugNode && (poText(poChildren(slugNode)) || poText(slugNode))) ||
212
+ undefined;
213
+ const figCaption = {
214
+ ...(capParas.length ? { paragraphs: capParas } : {}),
215
+ ...(capXml.length ? { xml: capXml } : {}),
216
+ ...(capXmlMin.length ? { xml_minimal: capXmlMin } : {}),
217
+ };
218
+ const figBlock = {
219
+ kind: "figure",
220
+ ...(figId ? { id: figId } : {}),
221
+ ...(label && label.trim() ? { label: label.trim() } : {}),
222
+ ...(title && title.trim() ? { title: title.trim() } : {}),
223
+ ...(slug && slug.trim() ? { slug: slug.trim() } : {}),
224
+ ...(Object.keys(figCaption).length ? { caption: figCaption } : {}),
225
+ };
226
+ blocks.push(figBlock);
227
+ continue;
228
+ }
229
+ if (poMatchesLocal(nm, "table-wrap")) {
230
+ const tblId = poGetAttr(ch, "id") || poGetAttr(ch, "hwp:id");
231
+ const labelNode = poFindFirstByLocal(ch, "label");
232
+ const label = (labelNode &&
233
+ (poText(poChildren(labelNode)) || poText(labelNode))) ||
234
+ undefined;
235
+ const cap = poFindFirstByLocal(ch, "caption");
236
+ const titleNode = cap ? poFindFirstByLocal(cap, "title") : undefined;
237
+ const title = titleNode
238
+ ? poText(poChildren(titleNode)) || poText(titleNode) || undefined
239
+ : undefined;
240
+ const capParas = [];
241
+ const capXml = [];
242
+ const capXmlMin = [];
243
+ if (cap) {
244
+ for (const p of poFindDescendantsByLocal(cap, "p")) {
245
+ const t = (poText(poChildren(p)) || poText(p) || "").trim();
246
+ if (!t)
247
+ continue;
248
+ capParas.push(t);
249
+ const x = poSerialize(p);
250
+ const xm = poSerializeMinimal(p);
251
+ if (x && x.trim())
252
+ capXml.push(x);
253
+ if (xm && xm.trim())
254
+ capXmlMin.push(xm);
255
+ }
256
+ // Fallback if caption has no <p>
257
+ if (!capParas.length) {
258
+ const tAll = (poText(poChildren(cap)) ||
259
+ poText(cap) ||
260
+ "").trim();
261
+ if (tAll)
262
+ capParas.push(tAll);
263
+ const xAll = poSerialize(cap);
264
+ const xmAll = poSerializeMinimal(cap);
265
+ if (xAll && xAll.trim())
266
+ capXml.push(xAll);
267
+ if (xmAll && xmAll.trim())
268
+ capXmlMin.push(xmAll);
269
+ }
270
+ }
271
+ const tblSlugNode = poFindDescendantsByLocal(ch, "object-id").find((n) => {
272
+ const sub = poGetAttr(n, "hwp:sub-type");
273
+ return (sub || "").toLowerCase() === "slug";
274
+ });
275
+ const tblSlug = (tblSlugNode &&
276
+ (poText(poChildren(tblSlugNode)) || poText(tblSlugNode))) ||
277
+ undefined;
278
+ const tblCaption = {
279
+ ...(capParas.length ? { paragraphs: capParas } : {}),
280
+ ...(capXml.length ? { xml: capXml } : {}),
281
+ ...(capXmlMin.length ? { xml_minimal: capXmlMin } : {}),
282
+ };
283
+ const tblBlock = {
284
+ kind: "table",
285
+ ...(tblId ? { id: tblId } : {}),
286
+ ...(label && label.trim() ? { label: label.trim() } : {}),
287
+ ...(title && title.trim() ? { title: title.trim() } : {}),
288
+ ...(tblSlug && tblSlug.trim() ? { slug: tblSlug.trim() } : {}),
289
+ ...(Object.keys(tblCaption).length ? { caption: tblCaption } : {}),
290
+ };
291
+ blocks.push(tblBlock);
292
+ continue;
293
+ }
294
+ if (poMatchesLocal(nm, "def-list")) {
295
+ for (const di of poFindDescendantsByLocal(ch, "def-item")) {
296
+ const term = poFindFirstByLocal(di, "term");
297
+ const defn = poFindFirstByLocal(di, "def");
298
+ const line = [
299
+ poText(poChildren(term)) || poText(term),
300
+ poText(poChildren(defn)) || poText(defn),
301
+ ]
302
+ .filter(Boolean)
303
+ .map((s) => String(s).trim())
304
+ .filter(Boolean)
305
+ .join(" – ");
306
+ if (line)
307
+ blocks.push({ kind: "paragraph", text: line });
308
+ }
309
+ continue;
310
+ }
311
+ if (poMatchesLocal(nm, "disp-formula")) {
312
+ const t = (poText(poChildren(ch)) || poText(ch) || "").trim();
313
+ if (t)
314
+ blocks.push({ kind: "paragraph", text: t });
315
+ continue;
316
+ }
317
+ // Other nodes are ignored at block level
318
+ }
319
+ }
320
+ }
321
+ // If we couldn't find a PO-aligned section, build best-effort blocks from object-mode
322
+ if (!blocks.length) {
323
+ // Paragraphs first (object-order)
324
+ const poRoot = domPO || undefined;
325
+ for (const p of nsArray(s, "p")) {
326
+ let txt;
327
+ let xml;
328
+ let xmlm;
329
+ if (poRoot && typeof p === "object") {
330
+ const pid = asString(p?.["@_id"]) ||
331
+ asString(p?.["@_hwp:id"]) ||
332
+ undefined;
333
+ if (pid) {
334
+ const pPO = poFindFirstByLocalAttr(poRoot, "p", "id", pid) ||
335
+ poFindFirstByLocalAttr(poRoot, "p", "hwp:id", pid);
336
+ if (pPO) {
337
+ txt = poText(poChildren(pPO)) || poText(pPO);
338
+ xml = poSerialize(pPO) || xml;
339
+ xmlm = poSerializeMinimal(pPO) || xmlm;
340
+ }
341
+ }
342
+ }
343
+ if (!txt)
344
+ txt = getText(p);
345
+ if (txt && txt.trim())
346
+ blocks.push({
347
+ kind: "paragraph",
348
+ text: txt.trim(),
349
+ ...(xml ? { xml } : {}),
350
+ ...(xmlm ? { xml_minimal: xmlm } : {}),
351
+ });
352
+ }
353
+ // Then nested sections (object-order)
354
+ let i = 0;
355
+ for (const x of subsecsObj) {
356
+ const sub = collectSectionNode(x, level + 1, category, domPO, secPO || searchRootPO, i);
357
+ blocks.push({ kind: "section", section: sub });
358
+ i += 1;
359
+ }
360
+ }
361
+ const ret = { id, sec_type, title };
362
+ if (normalized_title)
363
+ ret.normalized_title = normalized_title;
364
+ if (category)
365
+ ret.category = category;
366
+ if (blocks.length)
367
+ ret.blocks = blocks;
368
+ if (subsecsObj.length) {
369
+ const subs = [];
370
+ let i = 0;
371
+ for (const x of subsecsObj) {
372
+ const sub = collectSectionNode(x, level + 1, category, domPO, secPO || searchRootPO, i);
373
+ subs.push(sub);
374
+ i += 1;
375
+ }
376
+ if (subs.length)
377
+ ret.sections = subs;
378
+ }
379
+ return ret;
380
+ }
381
+ export function collectLooseBodyParagraphs(body) {
382
+ const out = [];
383
+ const push = (s) => {
384
+ if (s && s.trim())
385
+ out.push(s.trim());
386
+ };
387
+ // direct paragraphs under body
388
+ for (const p of nsArray(body, "p"))
389
+ push(getText(p));
390
+ // list items under body
391
+ for (const list of nsArray(body, "list")) {
392
+ for (const it of nsArray(list, "list-item")) {
393
+ // prefer paragraph child, else the item's text
394
+ const p = nsArray(it, "p");
395
+ push((p.length ? getText(p[0]) : undefined) || getText(it));
396
+ }
397
+ }
398
+ // boxed-text sometimes used for notes without sections
399
+ for (const bx of nsArray(body, "boxed-text")) {
400
+ for (const p of nsArray(bx, "p"))
401
+ push(getText(p));
402
+ }
403
+ // captions for figures and tables under body
404
+ for (const fig of nsArray(body, "fig")) {
405
+ for (const cap of nsArray(fig, "caption"))
406
+ push(getText(cap));
407
+ }
408
+ for (const tw of nsArray(body, "table-wrap")) {
409
+ for (const cap of nsArray(tw, "caption"))
410
+ push(getText(cap));
411
+ }
412
+ // definition lists
413
+ for (const dl of nsArray(body, "def-list")) {
414
+ for (const di of nsArray(dl, "def-item")) {
415
+ const term = getText(di?.term) || getText(di);
416
+ const def = getText(di?.def) || undefined;
417
+ const line = [term, def].filter(Boolean).join(" – ");
418
+ push(line);
419
+ }
420
+ }
421
+ // display formulas (textual fallback)
422
+ for (const df of nsArray(body, "disp-formula"))
423
+ push(getText(df));
424
+ return out;
425
+ }
426
+ export function collectLooseBodyParagraphsFromPO(domPO) {
427
+ const body = getBodyNodePO(domPO);
428
+ if (!body)
429
+ return [];
430
+ return collectLooseBodyParagraphsFromPORoot(body);
431
+ }
432
+ export function collectLooseBodyParagraphsFromPORoot(body) {
433
+ const out = [];
434
+ const push = (s) => {
435
+ if (s && s.trim())
436
+ out.push(s.trim());
437
+ };
438
+ const children = poChildren(body);
439
+ for (const ch of children) {
440
+ // Capture direct text nodes under body (not under title/caption)
441
+ if (poIsTextNode(ch)) {
442
+ push(poText(ch));
443
+ continue;
444
+ }
445
+ const name = poTagName(ch) || "";
446
+ if (poMatchesLocal(name, "p")) {
447
+ push(poText(poChildren(ch)) || poText(ch));
448
+ }
449
+ else if (poMatchesLocal(name, "list")) {
450
+ for (const it of poFindDescendantsByLocal(ch, "list-item")) {
451
+ const p = poFindFirstByLocal(it, "p");
452
+ push((p && poText(poChildren(p))) || poText(it));
453
+ }
454
+ }
455
+ else if (poMatchesLocal(name, "boxed-text")) {
456
+ for (const p of poFindDescendantsByLocal(ch, "p"))
457
+ push(poText(poChildren(p)) || poText(p));
458
+ }
459
+ else if (poMatchesLocal(name, "fig") ||
460
+ poMatchesLocal(name, "table-wrap")) {
461
+ const cap = poFindFirstByLocal(ch, "caption");
462
+ if (cap)
463
+ push(poText(poChildren(cap)) || poText(cap));
464
+ }
465
+ else if (poMatchesLocal(name, "def-list")) {
466
+ for (const di of poFindDescendantsByLocal(ch, "def-item")) {
467
+ const term = poFindFirstByLocal(di, "term");
468
+ const defn = poFindFirstByLocal(di, "def");
469
+ const t = [
470
+ poText(poChildren(term)) || poText(term),
471
+ poText(poChildren(defn)) || poText(defn),
472
+ ]
473
+ .filter(Boolean)
474
+ .join(" – ");
475
+ push(t);
476
+ }
477
+ }
478
+ else if (poMatchesLocal(name, "disp-formula")) {
479
+ push(poText(poChildren(ch)) || poText(ch));
480
+ }
481
+ }
482
+ return out;
483
+ }
484
+ //# sourceMappingURL=sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sections.js","sourceRoot":"","sources":["../../../../../src/normalization/jats/utils/collectors/sections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { LicenseCandidate } from "./types";
2
+ export declare function extractLicenseTextFromXml(xml: string): string | null;
3
+ export declare function extractLicensesFromPreserveOrder(domPO: any): LicenseCandidate[];
4
+ export declare function licenseOpennessScore(href?: string, text?: string): number;
5
+ //# sourceMappingURL=licenses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"licenses.d.ts","sourceRoot":"","sources":["../../../../src/normalization/jats/utils/licenses.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAOhD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcpE;AAED,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,GAAG,GACT,gBAAgB,EAAE,CAiBpB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CA4BzE"}
@@ -0,0 +1,64 @@
1
+ import { decodeEntities } from "./strings";
2
+ import { poFindFirstByLocal } from "./po/query";
3
+ import { poFindDescendantsByLocal } from "./po/query";
4
+ import { poGetAttr } from "./po/nodes";
5
+ import { poText } from "./po/text";
6
+ import { poChildren } from "./po/nodes";
7
+ export function extractLicenseTextFromXml(xml) {
8
+ // Grab the first license block and strip tags while keeping inline text
9
+ const m = xml.match(/<license\b[\s\S]*?<\/license>/i);
10
+ if (!m)
11
+ return null;
12
+ const licXml = m[0];
13
+ // Prefer inner license-p if present
14
+ const p = licXml.match(/<license-p\b[\s\S]*?<\/license-p>/i);
15
+ const inner = p ? p[0] : licXml;
16
+ // Remove tags but keep text content; collapse whitespace
17
+ const text = inner
18
+ .replace(/<[^>]+>/g, " ")
19
+ .replace(/\s+/g, " ")
20
+ .trim();
21
+ return decodeEntities(text);
22
+ }
23
+ export function extractLicensesFromPreserveOrder(domPO) {
24
+ const out = [];
25
+ const article = poFindFirstByLocal(domPO, "article");
26
+ if (!article)
27
+ return out;
28
+ const licenses = poFindDescendantsByLocal(article, "license");
29
+ for (const lic of licenses) {
30
+ const type = poGetAttr(lic, "license-type");
31
+ const href = poGetAttr(lic, "href");
32
+ // combine all license-p text under this license
33
+ const texts = poFindDescendantsByLocal(lic, "license-p")
34
+ .map((n) => poText(poChildren(n)) || poText(n))
35
+ .filter(Boolean);
36
+ const text = texts.join(" ").trim() || poText(poChildren(lic)) || undefined;
37
+ const score = licenseOpennessScore(href, text);
38
+ out.push({ type, href, text, score });
39
+ }
40
+ return out;
41
+ }
42
+ export function licenseOpennessScore(href, text) {
43
+ const hay = ((href || "") + " " + (text || "")).toLowerCase();
44
+ // Highest openness
45
+ if (/creativecommons\.org\/(publicdomain\/zero|publicdomain\b)/.test(hay) ||
46
+ /\bcc0\b|public\s+domain/.test(hay))
47
+ return 100;
48
+ if (/creativecommons\.org\/licenses\/by\//.test(hay) || /\bcc-by\b/.test(hay))
49
+ return 90;
50
+ if (/creativecommons\.org\/licenses\/by-sa\//.test(hay) ||
51
+ /\bcc-by-sa\b/.test(hay))
52
+ return 85;
53
+ if (/creativecommons\.org\/licenses\/by-nc\//.test(hay) ||
54
+ /\bcc-by-nc\b/.test(hay))
55
+ return 75;
56
+ if (/creativecommons\.org\/licenses\/by-nd\//.test(hay) ||
57
+ /\bcc-by-nd\b/.test(hay))
58
+ return 70;
59
+ if (/all\s*rights\s*reserved/.test(hay))
60
+ return 10;
61
+ // Unknown licenses get a neutral low score
62
+ return 50;
63
+ }
64
+ //# sourceMappingURL=licenses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"licenses.js","sourceRoot":"","sources":["../../../../src/normalization/jats/utils/licenses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function poTagName(node: any): string | undefined;
2
+ export declare function poChildren(node: any): any[];
3
+ export declare function poIsTextNode(node: any): boolean;
4
+ export declare function poGetAttr(node: any, attr: string): string | undefined;
5
+ export declare function poMatchesLocal(name: string | undefined, local: string): boolean;
6
+ //# sourceMappingURL=nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../../src/normalization/jats/utils/po/nodes.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAMvD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAc3C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAI/C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgBrE;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAIT"}