@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,26 @@
1
+ export type CollectedReference = {
2
+ id?: string;
3
+ label?: string;
4
+ raw?: string;
5
+ text?: string;
6
+ xml?: string;
7
+ xml_minimal?: string;
8
+ articleTitle?: string;
9
+ sourceTitle?: string;
10
+ year?: number;
11
+ volume?: string;
12
+ issue?: string;
13
+ fpage?: string;
14
+ lpage?: string;
15
+ doi?: string;
16
+ pmid?: string;
17
+ pmcid?: string;
18
+ authors?: Array<{
19
+ surname?: string;
20
+ givenNames?: string;
21
+ }>;
22
+ pubType?: string;
23
+ };
24
+ export declare function collectReferences(back: any, domPO?: any): CollectedReference[];
25
+ export declare function cleanupReferenceText(s: string): string;
26
+ //# sourceMappingURL=references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../../src/normalization/jats/utils/references.ts"],"names":[],"mappings":"AAiRA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,GAAG,EACT,KAAK,CAAC,EAAE,GAAG,GACV,kBAAkB,EAAE,CAgGtB;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAUtD"}
@@ -0,0 +1,371 @@
1
+ import { poText } from "./po/text";
2
+ import { normalizeArray } from "./strings";
3
+ import { asString } from "./strings";
4
+ import { escapeXml } from "./strings";
5
+ import { getText } from "./xml";
6
+ import { poFindFirstByLocal } from "./po/query";
7
+ import { poFindFirstByLocalAttr } from "./po/query";
8
+ import { poChildren } from "./po/nodes";
9
+ import { poSerialize } from "./po/serialize";
10
+ import { poSerializeCitationMinimal } from "./po/serialize";
11
+ function cleanupCitationText(s) {
12
+ if (!s)
13
+ return s;
14
+ let out = s;
15
+ // Collapse multiple whitespace
16
+ out = out.replace(/\s+/g, " ");
17
+ // No space before punctuation like , . ; : ) ] } ! ?
18
+ out = out.replace(/\s+([,;:.!?\)\]\}])/g, "$1");
19
+ // No space after opening punctuation like ( [ {
20
+ out = out.replace(/([\(\[\{])\s+/g, "$1");
21
+ // Ensure space after comma/period if followed by word/number
22
+ out = out.replace(/([,.])(\S)/g, "$1 $2");
23
+ // Fix spaced en-dash in page ranges
24
+ out = out.replace(/\s*[–-]\s*/g, "–");
25
+ // Trim
26
+ out = out.trim();
27
+ // Remove duplicate terminal punctuation
28
+ out = out.replace(/([.!?]){2,}$/g, "$1");
29
+ return out;
30
+ }
31
+ function serializeCitationMinimalFromObject(obj) {
32
+ const authors = [];
33
+ for (const nm of normalizeArray(obj?.["string-name"]).concat(normalizeArray(obj?.name))) {
34
+ const s = formatNameNode(nm);
35
+ if (s) {
36
+ const [surname, given] = s.split(/\s+(.+)?/).filter(Boolean);
37
+ const gn = given ? `<given-names>${escapeXml(given)}</given-names>` : "";
38
+ authors.push(`<string-name><surname>${escapeXml(surname || "")}</surname>${gn}</string-name>`);
39
+ }
40
+ }
41
+ const etal = asString(obj?.etal)
42
+ ? `<etal>${escapeXml(asString(obj?.etal))}</etal>`
43
+ : "";
44
+ const title = asString(obj?.["article-title"]) || asString(obj?.title) || undefined;
45
+ const source = asString(obj?.source) || undefined;
46
+ const volume = asString(obj?.volume) || undefined;
47
+ const issue = asString(obj?.issue) || undefined;
48
+ const fpage = asString(obj?.fpage) || undefined;
49
+ const lpage = asString(obj?.lpage) || undefined;
50
+ const year = asString(obj?.year) || undefined;
51
+ const parts = [];
52
+ if (authors.length)
53
+ parts.push(authors.join(""));
54
+ if (etal)
55
+ parts.push(etal);
56
+ if (title)
57
+ parts.push(`<article-title>${escapeXml(title)}</article-title>`);
58
+ if (source)
59
+ parts.push(`<source>${escapeXml(source)}</source>`);
60
+ if (volume)
61
+ parts.push(`<volume>${escapeXml(volume)}</volume>`);
62
+ if (issue)
63
+ parts.push(`<issue>${escapeXml(issue)}</issue>`);
64
+ if (fpage)
65
+ parts.push(`<fpage>${escapeXml(fpage)}</fpage>`);
66
+ if (lpage)
67
+ parts.push(`<lpage>${escapeXml(lpage)}</lpage>`);
68
+ if (year)
69
+ parts.push(`<year>${escapeXml(year)}</year>`);
70
+ if (!parts.length)
71
+ return undefined;
72
+ return `<citation>${parts.join("")}</citation>`;
73
+ }
74
+ // Parse a JATS citation node into structured fields + formatted string.
75
+ function parseCitationNode(node) {
76
+ if (!node)
77
+ return undefined;
78
+ const authorNames = extractAuthorNames(node);
79
+ const structuredAuthors = extractStructuredAuthors(node);
80
+ const articleTitle = asString(node?.["article-title"]) ||
81
+ asString(node?.["chapter-title"]) ||
82
+ asString(node?.["source-title"]) ||
83
+ asString(node?.title) ||
84
+ undefined;
85
+ const sourceTitle = asString(node?.source) || undefined;
86
+ const volume = asString(node?.volume) || undefined;
87
+ const issue = asString(node?.issue) || undefined;
88
+ const fpage = asString(node?.fpage) || asString(node?.page) || undefined;
89
+ const lpage = asString(node?.lpage) || undefined;
90
+ const dateYearStr = asString(node?.year) ||
91
+ asString(node?.date?.year) ||
92
+ // Some sources nest pub-date
93
+ asString((normalizeArray(node?.["pub-date"]) || [])?.[0]?.year) ||
94
+ undefined;
95
+ const yearNum = dateYearStr ? parseInt(dateYearStr, 10) : undefined;
96
+ const year = yearNum && !isNaN(yearNum) ? yearNum : undefined;
97
+ // Build formatted string (preserving existing logic)
98
+ const parts = [];
99
+ if (authorNames.length)
100
+ parts.push(joinAuthors(authorNames));
101
+ if (articleTitle)
102
+ parts.push(ensurePeriod(articleTitle));
103
+ if (sourceTitle)
104
+ parts.push(ensurePeriod(sourceTitle));
105
+ const volIss = [];
106
+ if (volume)
107
+ volIss.push(volume);
108
+ if (issue)
109
+ volIss.push(`(${issue})`);
110
+ if (volIss.length)
111
+ parts.push(volIss.join(" "));
112
+ const pages = lpage && fpage ? `${fpage}–${lpage}` : fpage || undefined;
113
+ if (pages)
114
+ parts.push(pages);
115
+ if (dateYearStr)
116
+ parts.push(`(${dateYearStr}).`);
117
+ const joined = parts.join(" ");
118
+ const formatted = cleanupCitationText(joined) || undefined;
119
+ return {
120
+ formatted,
121
+ articleTitle,
122
+ sourceTitle,
123
+ year,
124
+ volume,
125
+ issue,
126
+ fpage,
127
+ lpage,
128
+ authors: structuredAuthors.length ? structuredAuthors : undefined,
129
+ };
130
+ }
131
+ function joinAuthors(names) {
132
+ const withDots = names.map((n) => (n.endsWith(".") ? n : n + "."));
133
+ return withDots.length === 1 ? withDots[0] : withDots.join(", ");
134
+ }
135
+ function ensurePeriod(s) {
136
+ const t = (s || "").trim();
137
+ if (!t)
138
+ return t;
139
+ return /[.!?]$/.test(t) ? t : t + ".";
140
+ }
141
+ function excludeKeys(obj, keys) {
142
+ if (!obj || typeof obj !== "object")
143
+ return obj;
144
+ const out = Array.isArray(obj) ? [] : {};
145
+ for (const k of Object.keys(obj)) {
146
+ if (keys.includes(k))
147
+ continue;
148
+ const v = obj[k];
149
+ if (Array.isArray(v))
150
+ out[k] = v.map((it) => excludeKeys(it, keys));
151
+ else if (v && typeof v === "object")
152
+ out[k] = excludeKeys(v, keys);
153
+ else
154
+ out[k] = v;
155
+ }
156
+ return out;
157
+ }
158
+ function formatNameNode(n) {
159
+ if (!n)
160
+ return undefined;
161
+ const surname = asString(n?.surname) || asString(n?.["last-name"]) || undefined;
162
+ const given = asString(n?.["given-names"]) || asString(n?.["first-name"]) || undefined;
163
+ const full = !surname && !given ? getText(n) : undefined;
164
+ if (full)
165
+ return full.trim();
166
+ if (!surname && !given)
167
+ return undefined;
168
+ return [surname, given].filter(Boolean).join(" ");
169
+ }
170
+ function extractAuthorNames(node) {
171
+ const out = [];
172
+ // Person-group (author)
173
+ for (const pg of normalizeArray(node?.["person-group"])) {
174
+ const type = asString(pg?.["@_person-group-type"]) || "";
175
+ if (type && type.toLowerCase() !== "author")
176
+ continue;
177
+ for (const nm of normalizeArray(pg?.name).concat(normalizeArray(pg?.["string-name"]))) {
178
+ const formatted = formatNameNode(nm);
179
+ if (formatted)
180
+ out.push(formatted);
181
+ }
182
+ for (const collab of normalizeArray(pg?.collab)) {
183
+ const s = getText(collab);
184
+ if (s)
185
+ out.push(s);
186
+ }
187
+ }
188
+ // Fallback: direct names under the node
189
+ for (const nm of normalizeArray(node?.name).concat(normalizeArray(node?.["string-name"]))) {
190
+ const formatted = formatNameNode(nm);
191
+ if (formatted)
192
+ out.push(formatted);
193
+ }
194
+ // If still empty, try any contrib-like structure
195
+ for (const c of normalizeArray(node?.contrib)) {
196
+ const formatted = formatNameNode(c?.name || c?.["string-name"] || c);
197
+ if (formatted)
198
+ out.push(formatted);
199
+ }
200
+ return out;
201
+ }
202
+ function parseNameNodeStructured(n) {
203
+ if (!n)
204
+ return undefined;
205
+ const surname = asString(n?.surname) || asString(n?.["last-name"]) || undefined;
206
+ const givenNames = asString(n?.["given-names"]) || asString(n?.["first-name"]) || undefined;
207
+ if (!surname && !givenNames)
208
+ return undefined;
209
+ return {
210
+ ...(surname && { surname }),
211
+ ...(givenNames && { givenNames }),
212
+ };
213
+ }
214
+ function extractStructuredAuthors(node) {
215
+ const out = [];
216
+ for (const pg of normalizeArray(node?.["person-group"])) {
217
+ const type = asString(pg?.["@_person-group-type"]) || "";
218
+ if (type && type.toLowerCase() !== "author")
219
+ continue;
220
+ for (const nm of normalizeArray(pg?.name).concat(normalizeArray(pg?.["string-name"]))) {
221
+ const parsed = parseNameNodeStructured(nm);
222
+ if (parsed)
223
+ out.push(parsed);
224
+ }
225
+ }
226
+ if (!out.length) {
227
+ for (const nm of normalizeArray(node?.name).concat(normalizeArray(node?.["string-name"]))) {
228
+ const parsed = parseNameNodeStructured(nm);
229
+ if (parsed)
230
+ out.push(parsed);
231
+ }
232
+ }
233
+ return out;
234
+ }
235
+ function extractPubIds(node) {
236
+ const ids = {};
237
+ for (const pid of normalizeArray(node?.["pub-id"])) {
238
+ const type = (asString(pid?.["@_pub-id-type"]) || "").toLowerCase();
239
+ const val = asString(pid) || getText(pid) || undefined;
240
+ if (!val)
241
+ continue;
242
+ if (type === "doi")
243
+ ids.doi = val.trim();
244
+ else if (type === "pmid")
245
+ ids.pmid = val.trim();
246
+ else if (type === "pmc" || type === "pmcid")
247
+ ids.pmcid = val.trim();
248
+ }
249
+ if (!ids.doi) {
250
+ for (const el of normalizeArray(node?.["ext-link"])) {
251
+ const type = (asString(el?.["@_ext-link-type"]) || "").toLowerCase();
252
+ if (type === "doi") {
253
+ const val = asString(el) || getText(el) || undefined;
254
+ if (val)
255
+ ids.doi = val.trim();
256
+ break;
257
+ }
258
+ }
259
+ }
260
+ return ids;
261
+ }
262
+ export function collectReferences(back, domPO) {
263
+ const lists = normalizeArray(back?.["ref-list"]);
264
+ const refs = lists.flatMap((l) => normalizeArray(l?.ref));
265
+ const out = [];
266
+ for (const r of refs) {
267
+ const id = asString(r?.["@_id"]) || asString(r?.id) || undefined;
268
+ const label = getText(r?.label) || undefined;
269
+ // Prefer structured nodes if present; else fall back to formatting the <ref> while excluding <label>
270
+ const citationNode = r?.["mixed-citation"] ||
271
+ r?.["element-citation"] ||
272
+ r?.["citation"] ||
273
+ r?.["nlm-citation"] ||
274
+ undefined;
275
+ const sourceNode = citationNode || excludeKeys(r, ["label", "@_id", "id"]);
276
+ const parsed = parseCitationNode(sourceNode);
277
+ let raw = parsed?.formatted;
278
+ if (!raw) {
279
+ raw =
280
+ getText(r?.["mixed-citation"]) ||
281
+ getText(r?.["element-citation"]) ||
282
+ getText(r?.["citation"]) ||
283
+ getText(r?.["nlm-citation"]) ||
284
+ getText(r) ||
285
+ undefined;
286
+ if (raw)
287
+ raw = cleanupCitationText(raw);
288
+ }
289
+ // Extract pub-ids (DOI/PMID/PMCID) and publication type
290
+ const pubIds = extractPubIds(citationNode || r);
291
+ const pubType = asString(citationNode?.["@_publication-type"]) || undefined;
292
+ // Extract text/xml/xml_minimal using preserveOrder when possible
293
+ let text;
294
+ let xml;
295
+ let xml_minimal;
296
+ if (domPO) {
297
+ const backPO = poFindFirstByLocal(domPO, "back");
298
+ if (backPO) {
299
+ // Try to find a matching <ref> by id and serialize its citation child
300
+ const refPO = id
301
+ ? poFindFirstByLocalAttr(backPO, "ref", "id", id) ||
302
+ poFindFirstByLocalAttr(backPO, "ref", "hwp:id", id)
303
+ : undefined;
304
+ const citPO = refPO
305
+ ? ["mixed-citation", "element-citation", "citation", "nlm-citation"]
306
+ .map((nm) => poFindFirstByLocal(refPO, nm))
307
+ .find(Boolean)
308
+ : undefined;
309
+ const target = citPO || refPO;
310
+ if (target) {
311
+ const t = poText(poChildren(target)) || poText(target);
312
+ if (t && t.trim())
313
+ text = t.trim();
314
+ const x = poSerialize(target);
315
+ if (x && x.trim())
316
+ xml = x;
317
+ const xm = poSerializeCitationMinimal(target);
318
+ if (xm && xm.trim())
319
+ xml_minimal = xm;
320
+ }
321
+ }
322
+ }
323
+ // Fallback if PO unavailable: synthesize from object-mode text
324
+ if (!text) {
325
+ const refObj = citationNode || r;
326
+ text = getText(refObj) || undefined;
327
+ if (text && text.trim()) {
328
+ const escaped = escapeXml(text);
329
+ xml = `<citation>${escaped}</citation>`;
330
+ xml_minimal =
331
+ serializeCitationMinimalFromObject(refObj) ||
332
+ `<citation>${escaped}</citation>`;
333
+ }
334
+ }
335
+ out.push({
336
+ id,
337
+ label,
338
+ raw,
339
+ text,
340
+ xml,
341
+ xml_minimal,
342
+ articleTitle: parsed?.articleTitle,
343
+ sourceTitle: parsed?.sourceTitle,
344
+ year: parsed?.year,
345
+ volume: parsed?.volume,
346
+ issue: parsed?.issue,
347
+ fpage: parsed?.fpage,
348
+ lpage: parsed?.lpage,
349
+ doi: pubIds.doi,
350
+ pmid: pubIds.pmid,
351
+ pmcid: pubIds.pmcid,
352
+ authors: parsed?.authors,
353
+ pubType,
354
+ });
355
+ }
356
+ return out;
357
+ }
358
+ // --------------- flattened paragraphs ---------------
359
+ export function cleanupReferenceText(s) {
360
+ if (!s)
361
+ return s;
362
+ let out = s;
363
+ out = out.replace(/\s+/g, " ");
364
+ out = out.replace(/\s+([,;:.!?\)\]\}])/g, "$1");
365
+ out = out.replace(/([\(\[\{])\s+/g, "$1");
366
+ out = out.replace(/([,.])(\S)/g, "$1 $2");
367
+ out = out.replace(/\s*[–-]\s*/g, "–");
368
+ out = out.replace(/([.!?]){2,}$/g, "$1");
369
+ return out.trim();
370
+ }
371
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../../src/normalization/jats/utils/references.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function normalizeArray<T>(x: T | T[] | undefined | null): T[];
2
+ export declare function asString(x: any): string | undefined;
3
+ export declare function decodeEntities(s: string): string;
4
+ export declare function escapeXml(s: string): string;
5
+ export declare function stripDiacritics(s: string): string;
6
+ export declare function cleanHeading(x?: string): string | undefined;
7
+ export declare function extractEmail(text?: string): string | undefined;
8
+ //# sourceMappingURL=strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../../src/normalization/jats/utils/strings.ts"],"names":[],"mappings":"AAuHA,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,EAAE,CAGpE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAMnD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BhD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU3D;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI9D"}
@@ -0,0 +1,197 @@
1
+ const NAMED_ENTITIES = {
2
+ amp: "&",
3
+ lt: "<",
4
+ gt: ">",
5
+ quot: '"',
6
+ apos: "'",
7
+ nbsp: " ",
8
+ ndash: "–",
9
+ mdash: "—",
10
+ rsquo: "’",
11
+ lsquo: "‘",
12
+ rdquo: "”",
13
+ ldquo: "“",
14
+ hellip: "…",
15
+ middot: "·",
16
+ bull: "•",
17
+ deg: "°",
18
+ plusmn: "±",
19
+ pm: "±",
20
+ minus: "−",
21
+ times: "×",
22
+ divide: "÷",
23
+ micro: "µ",
24
+ alpha: "α",
25
+ beta: "β",
26
+ gamma: "γ",
27
+ delta: "δ",
28
+ epsilon: "ε",
29
+ zeta: "ζ",
30
+ eta: "η",
31
+ theta: "θ",
32
+ iota: "ι",
33
+ kappa: "κ",
34
+ lambda: "λ",
35
+ mu: "μ",
36
+ nu: "ν",
37
+ xi: "ξ",
38
+ omicron: "ο",
39
+ pi: "π",
40
+ rho: "ρ",
41
+ sigma: "σ",
42
+ tau: "τ",
43
+ upsilon: "υ",
44
+ phi: "φ",
45
+ chi: "χ",
46
+ psi: "ψ",
47
+ omega: "ω",
48
+ Alpha: "Α",
49
+ Beta: "Β",
50
+ Gamma: "Γ",
51
+ Delta: "Δ",
52
+ Epsilon: "Ε",
53
+ Zeta: "Ζ",
54
+ Eta: "Η",
55
+ Theta: "Θ",
56
+ Iota: "Ι",
57
+ Kappa: "Κ",
58
+ Lambda: "Λ",
59
+ Mu: "Μ",
60
+ Nu: "Ν",
61
+ Xi: "Ξ",
62
+ Omicron: "Ο",
63
+ Pi: "Π",
64
+ Rho: "Ρ",
65
+ Sigma: "Σ",
66
+ Tau: "Τ",
67
+ Upsilon: "Υ",
68
+ Phi: "Φ",
69
+ Chi: "Χ",
70
+ Psi: "Ψ",
71
+ Omega: "Ω",
72
+ le: "≤",
73
+ ge: "≥",
74
+ ne: "≠",
75
+ approx: "≈",
76
+ equiv: "≡",
77
+ infin: "∞",
78
+ laquo: "«",
79
+ raquo: "»",
80
+ copy: "©",
81
+ reg: "®",
82
+ trade: "™",
83
+ sect: "§",
84
+ para: "¶",
85
+ oe: "œ",
86
+ OE: "Œ",
87
+ ae: "æ",
88
+ AE: "Æ",
89
+ ntilde: "ñ",
90
+ Ntilde: "Ñ",
91
+ eacute: "é",
92
+ Eacute: "É",
93
+ aacute: "á",
94
+ Aacute: "Á",
95
+ oacute: "ó",
96
+ Oacute: "Ó",
97
+ uacute: "ú",
98
+ Uacute: "Ú",
99
+ agrave: "à",
100
+ Agrave: "À",
101
+ egrave: "è",
102
+ Egrave: "È",
103
+ igrave: "ì",
104
+ Igrave: "Ì",
105
+ ograve: "ò",
106
+ Ograve: "Ò",
107
+ ugrave: "ù",
108
+ Ugrave: "Ù",
109
+ acirc: "â",
110
+ ecirc: "ê",
111
+ icirc: "î",
112
+ ocirc: "ô",
113
+ ucirc: "û",
114
+ Atilde: "Ã",
115
+ atilde: "ã",
116
+ Otilde: "Õ",
117
+ otilde: "õ",
118
+ };
119
+ export function normalizeArray(x) {
120
+ if (!x)
121
+ return [];
122
+ return Array.isArray(x) ? x : [x];
123
+ }
124
+ export function asString(x) {
125
+ if (x == null)
126
+ return undefined;
127
+ if (typeof x === "string")
128
+ return x;
129
+ if (typeof x === "number")
130
+ return String(x);
131
+ if (typeof x === "object")
132
+ return asString(x["#text"]) ?? undefined;
133
+ return undefined;
134
+ }
135
+ export function decodeEntities(s) {
136
+ // numeric hex and decimal entities
137
+ s = s.replace(/&#x([0-9a-fA-F]+);/g, (_, hex) => {
138
+ const code = parseInt(hex, 16);
139
+ if (!Number.isFinite(code))
140
+ return _;
141
+ try {
142
+ return String.fromCodePoint(code);
143
+ }
144
+ catch {
145
+ return _;
146
+ }
147
+ });
148
+ s = s.replace(/&#([0-9]+);/g, (_, dec) => {
149
+ const code = parseInt(dec, 10);
150
+ if (!Number.isFinite(code))
151
+ return _;
152
+ try {
153
+ return String.fromCodePoint(code);
154
+ }
155
+ catch {
156
+ return _;
157
+ }
158
+ });
159
+ // Named entities
160
+ s = s.replace(/&([a-zA-Z][a-zA-Z0-9]+);/g, (m, name) => {
161
+ const rep = NAMED_ENTITIES[name];
162
+ if (rep != null)
163
+ return rep;
164
+ return m;
165
+ });
166
+ return s;
167
+ }
168
+ export function escapeXml(s) {
169
+ return s
170
+ .replace(/&/g, "&amp;")
171
+ .replace(/</g, "&lt;")
172
+ .replace(/>/g, "&gt;")
173
+ .replace(/"/g, "&quot;")
174
+ .replace(/'/g, "&apos;");
175
+ }
176
+ export function stripDiacritics(s) {
177
+ return s.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
178
+ }
179
+ export function cleanHeading(x) {
180
+ if (!x)
181
+ return undefined;
182
+ let s = String(x).trim();
183
+ // Strip numbering like "1.", "1)", "I.", "A)", etc.
184
+ s = s.replace(/^\s*([0-9]+|[ivxlcdmIVXLCDM]+|[A-Z])\s*[\.\)\-:]\s*/, "");
185
+ s = s.replace(/\s+/g, " ").trim();
186
+ s = stripDiacritics(s.toLowerCase());
187
+ // Remove trailing punctuation
188
+ s = s.replace(/[\.:;,-]+$/, "").trim();
189
+ return s || undefined;
190
+ }
191
+ export function extractEmail(text) {
192
+ if (!text)
193
+ return undefined;
194
+ const m = text.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}/i);
195
+ return m ? m[0] : undefined;
196
+ }
197
+ //# sourceMappingURL=strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../../src/normalization/jats/utils/strings.ts"],"names":[],"mappings":"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"}