jats-cli 1.0.11 → 1.0.13
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.
- package/dist/jats.cjs +142 -73
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -6
package/dist/jats.cjs
CHANGED
|
@@ -6561,7 +6561,7 @@ var require_xml2js = __commonJS({
|
|
|
6561
6561
|
var require_xml2json = __commonJS({
|
|
6562
6562
|
"../../node_modules/xml-js/lib/xml2json.js"(exports, module2) {
|
|
6563
6563
|
var helper = require_options_helper();
|
|
6564
|
-
var
|
|
6564
|
+
var xml2js3 = require_xml2js();
|
|
6565
6565
|
function validateOptions2(userOptions) {
|
|
6566
6566
|
var options = helper.copyOptions(userOptions);
|
|
6567
6567
|
helper.ensureSpacesExists(options);
|
|
@@ -6570,7 +6570,7 @@ var require_xml2json = __commonJS({
|
|
|
6570
6570
|
module2.exports = function(xml, userOptions) {
|
|
6571
6571
|
var options, js, json2, parentKey;
|
|
6572
6572
|
options = validateOptions2(userOptions);
|
|
6573
|
-
js =
|
|
6573
|
+
js = xml2js3(xml, options);
|
|
6574
6574
|
parentKey = "compact" in options && options.compact ? "_parent" : "parent";
|
|
6575
6575
|
if ("addParent" in options && options.addParent) {
|
|
6576
6576
|
json2 = JSON.stringify(js, function(k, v) {
|
|
@@ -6942,12 +6942,12 @@ var require_json2xml = __commonJS({
|
|
|
6942
6942
|
// ../../node_modules/xml-js/lib/index.js
|
|
6943
6943
|
var require_lib2 = __commonJS({
|
|
6944
6944
|
"../../node_modules/xml-js/lib/index.js"(exports, module2) {
|
|
6945
|
-
var
|
|
6945
|
+
var xml2js3 = require_xml2js();
|
|
6946
6946
|
var xml2json = require_xml2json();
|
|
6947
6947
|
var js2xml3 = require_js2xml();
|
|
6948
6948
|
var json2xml = require_json2xml();
|
|
6949
6949
|
module2.exports = {
|
|
6950
|
-
xml2js:
|
|
6950
|
+
xml2js: xml2js3,
|
|
6951
6951
|
xml2json,
|
|
6952
6952
|
js2xml: js2xml3,
|
|
6953
6953
|
json2xml
|
|
@@ -48999,7 +48999,7 @@ var {
|
|
|
48999
48999
|
} = import_index.default;
|
|
49000
49000
|
|
|
49001
49001
|
// src/version.ts
|
|
49002
|
-
var version = "1.0.
|
|
49002
|
+
var version = "1.0.13";
|
|
49003
49003
|
var version_default = version;
|
|
49004
49004
|
|
|
49005
49005
|
// src/parse.ts
|
|
@@ -56436,6 +56436,7 @@ var import_node_fs4 = __toESM(require("node:fs"), 1);
|
|
|
56436
56436
|
var import_node_path3 = __toESM(require("node:path"), 1);
|
|
56437
56437
|
var import_node_readline = __toESM(require("node:readline"), 1);
|
|
56438
56438
|
var import_client_s32 = __toESM(require_dist_cjs71(), 1);
|
|
56439
|
+
var import_xml_js2 = __toESM(require_lib2(), 1);
|
|
56439
56440
|
|
|
56440
56441
|
// ../jats-fetch/dist/utils.js
|
|
56441
56442
|
var import_node_fs3 = __toESM(require("node:fs"), 1);
|
|
@@ -57789,6 +57790,7 @@ async function streamToFile(url, dest, fetcher) {
|
|
|
57789
57790
|
// ../jats-fetch/dist/pubmed.js
|
|
57790
57791
|
var EFETCH_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi";
|
|
57791
57792
|
var ESUMMARY_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi";
|
|
57793
|
+
var OA_URL = "https://www.ncbi.nlm.nih.gov/pmc/utils/oa/oa.fcgi";
|
|
57792
57794
|
var IDCONV_URL = "https://www.ncbi.nlm.nih.gov/pmc/utils/idconv/v1.0/";
|
|
57793
57795
|
var LISTING_BASE_URL = "https://ftp.ncbi.nlm.nih.gov/pub/pmc/";
|
|
57794
57796
|
var LISTING_URL = `${LISTING_BASE_URL}oa_file_list.csv`;
|
|
@@ -57811,42 +57813,52 @@ function normalizePMID(session, pmid) {
|
|
|
57811
57813
|
}
|
|
57812
57814
|
return pmid;
|
|
57813
57815
|
}
|
|
57814
|
-
async function
|
|
57816
|
+
async function convertId(session, id, from, to, opts) {
|
|
57815
57817
|
var _a, _b, _c;
|
|
57816
|
-
pmid = normalizePMID(session, pmid);
|
|
57817
57818
|
const toc = tic();
|
|
57818
|
-
const resp = await ((_a = opts === null || opts === void 0 ? void 0 : opts.fetcher) !== null && _a !== void 0 ? _a : defaultFetcher)(`${IDCONV_URL}?tool=jats-xml&format=json&ids=${
|
|
57819
|
+
const resp = await ((_a = opts === null || opts === void 0 ? void 0 : opts.fetcher) !== null && _a !== void 0 ? _a : defaultFetcher)(`${IDCONV_URL}?tool=jats-xml&format=json&ids=${id}`, "json");
|
|
57819
57820
|
if (!resp.ok) {
|
|
57820
|
-
session.log.debug(`Failed to convert
|
|
57821
|
+
session.log.debug(`Failed to convert ${from} ID: ${id}`);
|
|
57821
57822
|
return;
|
|
57822
57823
|
}
|
|
57823
57824
|
const data = await resp.json();
|
|
57824
|
-
const
|
|
57825
|
-
|
|
57825
|
+
const newId = (_c = (_b = data === null || data === void 0 ? void 0 : data.records) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c[to];
|
|
57826
|
+
if (newId) {
|
|
57827
|
+
session.log.debug(toc(`Used nih.gov to transform ${id} to ${newId} in %s.`));
|
|
57828
|
+
}
|
|
57829
|
+
return newId;
|
|
57830
|
+
}
|
|
57831
|
+
async function convertIds(session, ids, from, to, opts) {
|
|
57832
|
+
var _a, _b, _c;
|
|
57833
|
+
const toc = tic();
|
|
57834
|
+
const resp = await ((_a = opts === null || opts === void 0 ? void 0 : opts.fetcher) !== null && _a !== void 0 ? _a : defaultFetcher)(`${IDCONV_URL}?tool=jats-xml&format=json&ids=${ids.join(",")}`, "json");
|
|
57835
|
+
if (!resp.ok) {
|
|
57836
|
+
session.log.debug(`Failed to convert ${from} ${ids.length} IDs`);
|
|
57837
|
+
return;
|
|
57838
|
+
}
|
|
57839
|
+
const data = await resp.json();
|
|
57840
|
+
const entries = (_b = data === null || data === void 0 ? void 0 : data.records) === null || _b === void 0 ? void 0 : _b.filter((record) => !!record[from] && !!record[to]).map((record) => [record[from], record[to]]);
|
|
57841
|
+
const newIds = entries ? Object.fromEntries(entries) : {};
|
|
57842
|
+
session.log.debug(toc(`Used nih.gov to transform ${(_c = entries === null || entries === void 0 ? void 0 : entries.length) !== null && _c !== void 0 ? _c : 0}/${ids.length} ${from} to ${to} in %s.`));
|
|
57843
|
+
return newIds;
|
|
57844
|
+
}
|
|
57845
|
+
async function convertPMID2PMCID(session, pmid, opts) {
|
|
57846
|
+
pmid = normalizePMID(session, pmid);
|
|
57847
|
+
const pmcid = await convertId(session, pmid, "pmid", "pmcid", opts);
|
|
57826
57848
|
return pmcid;
|
|
57827
57849
|
}
|
|
57828
57850
|
async function convertPMIDs2DOIs(session, pmids, opts) {
|
|
57829
|
-
var _a, _b, _c
|
|
57851
|
+
var _a, _b, _c;
|
|
57830
57852
|
pmids = [...new Set(pmids.map((pmid) => normalizePMID(session, pmid)))];
|
|
57831
|
-
const pmDois = {};
|
|
57832
57853
|
const toc = tic();
|
|
57833
|
-
const
|
|
57834
|
-
if (
|
|
57835
|
-
|
|
57836
|
-
(_b = data === null || data === void 0 ? void 0 : data.records) === null || _b === void 0 ? void 0 : _b.forEach((record) => {
|
|
57837
|
-
if (record.doi)
|
|
57838
|
-
pmDois[record.pmid] = record.doi;
|
|
57839
|
-
});
|
|
57840
|
-
const pmDoiCount = Object.keys(pmDois).length;
|
|
57841
|
-
if (pmDoiCount === pmids.length) {
|
|
57842
|
-
session.log.debug(toc(`Used nih.gov to convert ${pmDoiCount} PMIDs to DOIs in %s.`));
|
|
57843
|
-
return pmDois;
|
|
57844
|
-
}
|
|
57854
|
+
const pmDois = (_a = await convertIds(session, pmids, "pmid", "doi", opts)) !== null && _a !== void 0 ? _a : {};
|
|
57855
|
+
if (Object.keys(pmDois).length === pmids.length) {
|
|
57856
|
+
return pmDois;
|
|
57845
57857
|
}
|
|
57846
|
-
const esummaryResp = await ((
|
|
57858
|
+
const esummaryResp = await ((_b = opts === null || opts === void 0 ? void 0 : opts.fetcher) !== null && _b !== void 0 ? _b : defaultFetcher)(`${ESUMMARY_URL}?db=pubmed&format=json&id=${pmids.filter((pmid) => !pmDois[pmid]).join(",")}`, "json");
|
|
57847
57859
|
if (esummaryResp.ok) {
|
|
57848
57860
|
const data = await esummaryResp.json();
|
|
57849
|
-
Object.entries((
|
|
57861
|
+
Object.entries((_c = data === null || data === void 0 ? void 0 : data.result) !== null && _c !== void 0 ? _c : {}).filter(([pmid]) => pmid !== "uids").forEach(([pmid, record]) => {
|
|
57850
57862
|
var _a2, _b2;
|
|
57851
57863
|
const pmDoi = (_b2 = (_a2 = record.articleids) === null || _a2 === void 0 ? void 0 : _a2.find((articleid) => {
|
|
57852
57864
|
return articleid.idtype === "doi";
|
|
@@ -57911,13 +57923,12 @@ async function getPubMedJatsFromS3(session, pmcid) {
|
|
|
57911
57923
|
session.log.debug(`Not available from open-access S3 bucket: ${pmcid}`);
|
|
57912
57924
|
return { success: false, source: pmcid };
|
|
57913
57925
|
} else {
|
|
57926
|
+
session.log.debug(`Fetching PMC JATS from S3 bucket: ${pmcid}`);
|
|
57914
57927
|
const result = await downloadFileFromS3(client, found.path, OA_CONFIG);
|
|
57915
57928
|
return result;
|
|
57916
57929
|
}
|
|
57917
57930
|
}
|
|
57918
57931
|
async function getListingsFile(session, dest, fetcher) {
|
|
57919
|
-
if (!dest)
|
|
57920
|
-
dest = __dirname;
|
|
57921
57932
|
if (!import_node_path3.default.extname(dest))
|
|
57922
57933
|
dest = import_node_path3.default.join(dest, LISTING_FILENAME);
|
|
57923
57934
|
if (import_node_path3.default.extname(dest) !== ".csv") {
|
|
@@ -57962,19 +57973,37 @@ async function searchListingForPMC(listingFile, pmcid) {
|
|
|
57962
57973
|
}
|
|
57963
57974
|
throw new Error(`Article ${pmcid} not found in ${listingFile}`);
|
|
57964
57975
|
}
|
|
57965
|
-
async function
|
|
57966
|
-
|
|
57976
|
+
async function getDownloadMetadata(pmcid, fetcher) {
|
|
57977
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
57978
|
+
const resp = await (fetcher !== null && fetcher !== void 0 ? fetcher : defaultFetcher)(`${OA_URL}?format=tgz&id=${pmcid}`, "xml");
|
|
57979
|
+
if (!resp.ok) {
|
|
57980
|
+
throw new Error(`Bad response from ${OA_URL}`);
|
|
57981
|
+
}
|
|
57982
|
+
const oaMeta = (0, import_xml_js2.xml2js)(await resp.text(), { compact: true });
|
|
57983
|
+
if (((_c = (_b = (_a = oaMeta.OA) === null || _a === void 0 ? void 0 : _a.records) === null || _b === void 0 ? void 0 : _b._attributes) === null || _c === void 0 ? void 0 : _c["returned-count"]) !== "1") {
|
|
57984
|
+
throw new Error(`Bad response from ${OA_URL} - returned count is not 1`);
|
|
57985
|
+
}
|
|
57986
|
+
const url = (_h = (_g = (_f = (_e = (_d = oaMeta === null || oaMeta === void 0 ? void 0 : oaMeta.OA) === null || _d === void 0 ? void 0 : _d.records) === null || _e === void 0 ? void 0 : _e.record) === null || _f === void 0 ? void 0 : _f.link) === null || _g === void 0 ? void 0 : _g._attributes) === null || _h === void 0 ? void 0 : _h.href;
|
|
57987
|
+
if (!url) {
|
|
57988
|
+
throw new Error(`Bad response from ${OA_URL} - href is not available`);
|
|
57989
|
+
}
|
|
57990
|
+
const { citation, license } = (_m = (_l = (_k = (_j = oaMeta.OA) === null || _j === void 0 ? void 0 : _j.records) === null || _k === void 0 ? void 0 : _k.record) === null || _l === void 0 ? void 0 : _l._attributes) !== null && _m !== void 0 ? _m : {};
|
|
57991
|
+
return { url, citation, license };
|
|
57992
|
+
}
|
|
57993
|
+
async function downloadAndUnzipPMC(session, url, outputDir, fetcher) {
|
|
57994
|
+
url = url.replace(/^ftp:/, "https:");
|
|
57995
|
+
const urlParts = url.split("/");
|
|
57967
57996
|
const filename = urlParts[urlParts.length - 1];
|
|
57968
57997
|
const dest = import_node_path3.default.join(outputDir, filename);
|
|
57969
57998
|
if (!import_node_fs4.default.existsSync(outputDir)) {
|
|
57970
57999
|
import_node_fs4.default.mkdirSync(outputDir, { recursive: true });
|
|
57971
58000
|
}
|
|
57972
58001
|
if (!import_node_fs4.default.existsSync(dest)) {
|
|
57973
|
-
session.log.info(`Downloading PMC data from ${
|
|
57974
|
-
await streamToFile(
|
|
58002
|
+
session.log.info(`Downloading PMC data from ${url}`);
|
|
58003
|
+
await streamToFile(url, dest, fetcher);
|
|
57975
58004
|
}
|
|
57976
58005
|
if (!import_node_fs4.default.existsSync(dest)) {
|
|
57977
|
-
throw new Error(`Unable to download ${
|
|
58006
|
+
throw new Error(`Unable to download ${url}`);
|
|
57978
58007
|
}
|
|
57979
58008
|
session.log.info(`Extracting PMC data from ${dest} to ${outputDir}`);
|
|
57980
58009
|
const unzip = makeExecutable(`tar -xf ${dest} -C ${outputDir}`, session.log);
|
|
@@ -57994,9 +58023,28 @@ async function downloadAndUnzipPMC(session, entry, outputDir, fetcher) {
|
|
|
57994
58023
|
import_node_fs4.default.rmdirSync(zipDir);
|
|
57995
58024
|
}
|
|
57996
58025
|
async function getDataFromPMC(session, pmcid, outputDir, listing, fetcher) {
|
|
57997
|
-
|
|
57998
|
-
|
|
57999
|
-
|
|
58026
|
+
let url;
|
|
58027
|
+
if (pmcid.endsWith(".tar.gz")) {
|
|
58028
|
+
url = pmcid;
|
|
58029
|
+
} else {
|
|
58030
|
+
if (!pmcid.startsWith("PMC")) {
|
|
58031
|
+
throw new Error("Data may only be downloaded for PMC articles");
|
|
58032
|
+
}
|
|
58033
|
+
try {
|
|
58034
|
+
const metadata = await getDownloadMetadata(pmcid);
|
|
58035
|
+
url = metadata.url;
|
|
58036
|
+
} catch {
|
|
58037
|
+
if (listing) {
|
|
58038
|
+
const listingFile = await getListingsFile(session, listing, fetcher);
|
|
58039
|
+
const entry = await searchListingForPMC(listingFile, pmcid);
|
|
58040
|
+
url = `${LISTING_BASE_URL}${entry.url}`;
|
|
58041
|
+
}
|
|
58042
|
+
}
|
|
58043
|
+
}
|
|
58044
|
+
if (!url) {
|
|
58045
|
+
throw new Error(`Unable to find PMC data download url for: ${pmcid}`);
|
|
58046
|
+
}
|
|
58047
|
+
await downloadAndUnzipPMC(session, url, outputDir, fetcher);
|
|
58000
58048
|
}
|
|
58001
58049
|
async function getPubMedJatsFromData(session, pmcid, outputDir, listing, fetcher) {
|
|
58002
58050
|
await getDataFromPMC(session, pmcid, outputDir, listing, fetcher);
|
|
@@ -58071,6 +58119,9 @@ async function downloadFromUrl(session, jatsUrl, opts) {
|
|
|
58071
58119
|
session.log.warn(`Expected content-type "application/xml" instead we got "${contentType}" for ${jatsUrl}`);
|
|
58072
58120
|
}
|
|
58073
58121
|
const data = await resp.text();
|
|
58122
|
+
if (!data.match(/<article/)) {
|
|
58123
|
+
throw new Error(`XML downloaded from ${jatsUrl} does not look like a JATS article`);
|
|
58124
|
+
}
|
|
58074
58125
|
session.log.debug(toc(`Fetched document with content-type "${contentType}" in %s`));
|
|
58075
58126
|
return data;
|
|
58076
58127
|
}
|
|
@@ -58126,43 +58177,66 @@ async function downloadJatsFromUrl(session, urlOrDoi, opts = {}) {
|
|
|
58126
58177
|
}
|
|
58127
58178
|
return { success: false, source: expectedUrls[0] };
|
|
58128
58179
|
}
|
|
58129
|
-
|
|
58130
|
-
|
|
58131
|
-
|
|
58132
|
-
|
|
58133
|
-
|
|
58134
|
-
|
|
58135
|
-
|
|
58136
|
-
|
|
58137
|
-
|
|
58180
|
+
try {
|
|
58181
|
+
if (doi.validate(urlOrDoi)) {
|
|
58182
|
+
const jatsUrl = await customResolveJatsUrlFromDoi(session, urlOrDoi, opts);
|
|
58183
|
+
const data = await downloadFromUrl(session, jatsUrl, opts);
|
|
58184
|
+
return { success: true, source: jatsUrl, data };
|
|
58185
|
+
}
|
|
58186
|
+
if (isUrl(urlOrDoi)) {
|
|
58187
|
+
session.log.debug("No resolver matched, and the URL doesn't look like a DOI. We will attempt to download it directly.");
|
|
58188
|
+
const data = await downloadFromUrl(session, urlOrDoi, opts);
|
|
58189
|
+
return { success: true, source: urlOrDoi, data };
|
|
58190
|
+
}
|
|
58191
|
+
} catch (error) {
|
|
58192
|
+
session.log.debug(error.message);
|
|
58193
|
+
return { success: false, source: urlOrDoi };
|
|
58138
58194
|
}
|
|
58139
|
-
|
|
58195
|
+
session.log.debug(`Could not find ${urlOrDoi} locally, and it doesn't look like a URL or DOI`);
|
|
58196
|
+
return { success: false, source: urlOrDoi };
|
|
58140
58197
|
}
|
|
58141
58198
|
async function jatsFetch(session, input, opts) {
|
|
58142
|
-
var _a
|
|
58199
|
+
var _a;
|
|
58143
58200
|
if (input === "listing" && !opts.data && !(opts.output && opts.listing)) {
|
|
58144
|
-
const
|
|
58201
|
+
const inputDest = (_a = opts.output) !== null && _a !== void 0 ? _a : opts.listing;
|
|
58202
|
+
if (!inputDest) {
|
|
58203
|
+
throw new Error("Destination for listing file must be specified");
|
|
58204
|
+
}
|
|
58205
|
+
const dest = await getListingsFile(session, inputDest);
|
|
58145
58206
|
session.log.info(`PMC Open Access listing saved to ${dest}`);
|
|
58146
58207
|
return;
|
|
58147
58208
|
}
|
|
58148
|
-
let output =
|
|
58209
|
+
let output = opts.output;
|
|
58210
|
+
let filename;
|
|
58211
|
+
if (input.endsWith(".tar.gz")) {
|
|
58212
|
+
opts.data = true;
|
|
58213
|
+
const foldername = input.split("/").slice(-1)[0].slice(0, -".tar.gz".length);
|
|
58214
|
+
filename = `${foldername}.xml`;
|
|
58215
|
+
if (!output) {
|
|
58216
|
+
output = foldername;
|
|
58217
|
+
}
|
|
58218
|
+
}
|
|
58219
|
+
if (!output)
|
|
58220
|
+
output = opts.data ? `${input}` : ".";
|
|
58149
58221
|
if (!import_node_path4.default.extname(output)) {
|
|
58150
|
-
|
|
58222
|
+
filename = filename !== null && filename !== void 0 ? filename : input.startsWith("PMC") ? `${input}.xml` : "jats.xml";
|
|
58151
58223
|
output = import_node_path4.default.join(output, filename);
|
|
58152
58224
|
}
|
|
58153
58225
|
if (import_node_path4.default.extname(output) && ![".xml", ".jats"].includes(import_node_path4.default.extname(output).toLowerCase())) {
|
|
58154
58226
|
throw new Error(`Output must be an XML file or a directory`);
|
|
58155
58227
|
}
|
|
58156
58228
|
let result;
|
|
58157
|
-
|
|
58158
|
-
result = await
|
|
58159
|
-
} catch {
|
|
58229
|
+
if (opts.data) {
|
|
58230
|
+
result = await getPubMedJatsFromData(session, input, import_node_path4.default.dirname(output), opts.listing);
|
|
58160
58231
|
}
|
|
58161
58232
|
if (!(result === null || result === void 0 ? void 0 : result.data) && input.startsWith("PMC")) {
|
|
58162
58233
|
result = await getPubMedJatsFromS3(session, input);
|
|
58163
|
-
|
|
58164
|
-
|
|
58165
|
-
|
|
58234
|
+
}
|
|
58235
|
+
if (!(result === null || result === void 0 ? void 0 : result.data)) {
|
|
58236
|
+
result = await downloadJatsFromUrl(session, input);
|
|
58237
|
+
}
|
|
58238
|
+
if (!(result === null || result === void 0 ? void 0 : result.data) && input.startsWith("PMC")) {
|
|
58239
|
+
result = await getPubMedJatsFromData(session, input, import_node_path4.default.dirname(output), opts.listing);
|
|
58166
58240
|
}
|
|
58167
58241
|
if (!(result === null || result === void 0 ? void 0 : result.data)) {
|
|
58168
58242
|
throw new Error(`Unable to resolve JATS XML content from ${input}`);
|
|
@@ -58174,17 +58248,10 @@ async function jatsFetch(session, input, opts) {
|
|
|
58174
58248
|
}
|
|
58175
58249
|
import_node_fs5.default.writeFileSync(output, result.data);
|
|
58176
58250
|
session.log.info(`JATS written to ${output}`);
|
|
58177
|
-
if (!opts.data)
|
|
58178
|
-
return;
|
|
58179
|
-
if (input.startsWith("PMC")) {
|
|
58180
|
-
await getDataFromPMC(session, input, import_node_path4.default.dirname(output), opts.listing);
|
|
58181
|
-
} else {
|
|
58182
|
-
session.log.error("Data may only be downloaded for PMC articles");
|
|
58183
|
-
}
|
|
58184
58251
|
}
|
|
58185
58252
|
|
|
58186
58253
|
// ../jats-xml/dist/jats.js
|
|
58187
|
-
var
|
|
58254
|
+
var import_xml_js3 = __toESM(require_lib2(), 1);
|
|
58188
58255
|
|
|
58189
58256
|
// ../jats-xml/node_modules/unist-util-is/lib/index.js
|
|
58190
58257
|
var convert2 = (
|
|
@@ -58516,7 +58583,7 @@ var Jats = class {
|
|
|
58516
58583
|
if (opts === null || opts === void 0 ? void 0 : opts.source)
|
|
58517
58584
|
this.source = opts.source;
|
|
58518
58585
|
try {
|
|
58519
|
-
this.raw = (0,
|
|
58586
|
+
this.raw = (0, import_xml_js3.xml2js)(data, { compact: false });
|
|
58520
58587
|
} catch (error) {
|
|
58521
58588
|
throw new Error("Problem parsing the JATS document, please ensure it is XML");
|
|
58522
58589
|
}
|
|
@@ -64759,7 +64826,7 @@ var u = (
|
|
|
64759
64826
|
|
|
64760
64827
|
// ../jats-convert/dist/index.js
|
|
64761
64828
|
var import_mathml_to_latex = __toESM(require_bundle_min(), 1);
|
|
64762
|
-
var
|
|
64829
|
+
var import_xml_js4 = __toESM(require_lib2(), 1);
|
|
64763
64830
|
|
|
64764
64831
|
// ../jats-convert/dist/transforms/admonitions.js
|
|
64765
64832
|
function admonitionTransform(tree, file) {
|
|
@@ -64977,7 +65044,9 @@ function recurseSections(tree, depth = 1, titleType) {
|
|
|
64977
65044
|
firstChild3 = (_b = sec.children) === null || _b === void 0 ? void 0 : _b[1];
|
|
64978
65045
|
}
|
|
64979
65046
|
if ((firstChild3 === null || firstChild3 === void 0 ? void 0 : firstChild3.type) === "title") {
|
|
64980
|
-
if (
|
|
65047
|
+
if (sec.type === "ack" && toText(firstChild3).toLowerCase().startsWith("ack")) {
|
|
65048
|
+
firstChild3.type = "__delete__";
|
|
65049
|
+
} else if (titleType === "strong") {
|
|
64981
65050
|
firstChild3.type = "p";
|
|
64982
65051
|
firstChild3.children = [{ type: "bold", children: firstChild3.children }];
|
|
64983
65052
|
} else {
|
|
@@ -64986,6 +65055,8 @@ function recurseSections(tree, depth = 1, titleType) {
|
|
|
64986
65055
|
firstChild3.depth = depth;
|
|
64987
65056
|
}
|
|
64988
65057
|
}
|
|
65058
|
+
if (sec.type === "ack")
|
|
65059
|
+
sec.part = "acknowledgments";
|
|
64989
65060
|
recurseSections(sec, depth + 1, titleType);
|
|
64990
65061
|
});
|
|
64991
65062
|
}
|
|
@@ -64995,8 +65066,6 @@ function sectionTransform(tree, titleType) {
|
|
|
64995
65066
|
remove(tree, "__delete__");
|
|
64996
65067
|
const topSections = (_a = tree.children) === null || _a === void 0 ? void 0 : _a.filter((n) => isSection(n));
|
|
64997
65068
|
topSections.forEach((sec) => {
|
|
64998
|
-
if (sec.type === "ack")
|
|
64999
|
-
sec.part = "acknowledgments";
|
|
65000
65069
|
sec.type = "block";
|
|
65001
65070
|
});
|
|
65002
65071
|
while (select3("sec", tree))
|
|
@@ -65462,7 +65531,7 @@ function journalTransforms(tree) {
|
|
|
65462
65531
|
}
|
|
65463
65532
|
|
|
65464
65533
|
// ../jats-convert/dist/version.js
|
|
65465
|
-
var version3 = "1.0.
|
|
65534
|
+
var version3 = "1.0.13";
|
|
65466
65535
|
var version_default3 = version3;
|
|
65467
65536
|
|
|
65468
65537
|
// ../jats-convert/dist/myst/inlineCitations.js
|
|
@@ -65683,7 +65752,7 @@ function texMathFromNode(node) {
|
|
|
65683
65752
|
});
|
|
65684
65753
|
}
|
|
65685
65754
|
});
|
|
65686
|
-
return import_mathml_to_latex.MathMLToLaTeX.convert((0,
|
|
65755
|
+
return import_mathml_to_latex.MathMLToLaTeX.convert((0, import_xml_js4.js2xml)({ type: "element", name: "root", elements: [math] }));
|
|
65687
65756
|
}
|
|
65688
65757
|
var handlers = {
|
|
65689
65758
|
body(node, state2) {
|
|
@@ -65980,7 +66049,7 @@ var handlers = {
|
|
|
65980
66049
|
}
|
|
65981
66050
|
case RefType.fn:
|
|
65982
66051
|
case RefType.tableFn: {
|
|
65983
|
-
state2.
|
|
66052
|
+
state2.addLeaf("footnoteReference", { label, identifier });
|
|
65984
66053
|
return;
|
|
65985
66054
|
}
|
|
65986
66055
|
default: {
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version = '1.0.
|
|
1
|
+
const version = '1.0.13';
|
|
2
2
|
export default version;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jats-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"description": "Typescript CLI for with JATS",
|
|
5
5
|
"author": "Rowan Cockett <rowan@curvenote.com>",
|
|
6
6
|
"homepage": "https://github.com/curvenote/jats",
|
|
@@ -45,11 +45,11 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"doi-utils": "^2.0.0",
|
|
47
47
|
"fair-principles": "^2.0.0",
|
|
48
|
-
"jats-convert": "^1.0.
|
|
49
|
-
"jats-fetch": "^1.0.
|
|
50
|
-
"jats-tags": "^1.0.
|
|
51
|
-
"jats-utils": "^1.0.
|
|
52
|
-
"jats-xml": "^1.0.
|
|
48
|
+
"jats-convert": "^1.0.13",
|
|
49
|
+
"jats-fetch": "^1.0.13",
|
|
50
|
+
"jats-tags": "^1.0.13",
|
|
51
|
+
"jats-utils": "^1.0.13",
|
|
52
|
+
"jats-xml": "^1.0.13",
|
|
53
53
|
"js-yaml": "^4.1.0",
|
|
54
54
|
"unist-util-is": "^5.2.1",
|
|
55
55
|
"unist-util-select": "^4.0.0"
|