@manuscripts/transform 1.5.8 → 2.0.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 (133) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/jats/importer/index.js +1 -3
  3. package/dist/cjs/jats/importer/jats-body-dom-parser.js +23 -227
  4. package/dist/cjs/jats/importer/jats-body-transformations.js +110 -201
  5. package/dist/cjs/jats/importer/jats-comments.js +100 -98
  6. package/dist/cjs/jats/importer/jats-front-parser.js +87 -81
  7. package/dist/cjs/jats/importer/jats-journal-meta-parser.js +51 -39
  8. package/dist/cjs/jats/importer/jats-parser-utils.js +17 -56
  9. package/dist/cjs/jats/importer/jats-reference-parser.js +24 -79
  10. package/dist/cjs/jats/importer/jats-references.js +34 -0
  11. package/dist/cjs/jats/importer/parse-jats-article.js +67 -173
  12. package/dist/cjs/jats/index.js +1 -3
  13. package/dist/cjs/jats/jats-exporter.js +34 -55
  14. package/dist/cjs/lib/section-group-type.js +30 -0
  15. package/dist/cjs/lib/utils.js +1 -25
  16. package/dist/cjs/schema/index.js +20 -17
  17. package/dist/cjs/schema/nodes/abstracts.js +27 -0
  18. package/dist/cjs/schema/nodes/affiliations.js +27 -0
  19. package/dist/cjs/schema/nodes/backmatter.js +27 -0
  20. package/dist/cjs/schema/nodes/body.js +27 -0
  21. package/dist/cjs/schema/nodes/citation.js +10 -15
  22. package/dist/cjs/schema/nodes/{comment_list.js → comments.js} +4 -4
  23. package/dist/cjs/schema/nodes/contributors.js +27 -0
  24. package/dist/cjs/schema/nodes/{meta_section.js → core_section.js} +6 -5
  25. package/dist/cjs/schema/nodes/cross_reference.js +4 -3
  26. package/dist/cjs/schema/nodes/inline_footnote.js +6 -5
  27. package/dist/cjs/schema/nodes/keyword.js +0 -1
  28. package/dist/cjs/schema/nodes/{keywords_group.js → keyword_group.js} +6 -6
  29. package/dist/cjs/schema/nodes/{keywords_section.js → keywords.js} +7 -7
  30. package/dist/cjs/schema/nodes/keywords_element.js +1 -1
  31. package/dist/cjs/schema/nodes/manuscript.js +5 -2
  32. package/dist/cjs/transformer/builders.js +9 -86
  33. package/dist/cjs/transformer/decode.js +147 -176
  34. package/dist/cjs/transformer/encode.js +66 -67
  35. package/dist/cjs/transformer/highlight-markers.js +48 -36
  36. package/dist/cjs/transformer/html.js +7 -23
  37. package/dist/cjs/transformer/labels.js +3 -17
  38. package/dist/cjs/transformer/node-names.js +1 -1
  39. package/dist/cjs/transformer/node-title.js +1 -1
  40. package/dist/cjs/transformer/node-types.js +7 -6
  41. package/dist/cjs/transformer/object-types.js +1 -2
  42. package/dist/cjs/transformer/section-category.js +31 -31
  43. package/dist/es/index.js +1 -1
  44. package/dist/es/jats/importer/index.js +1 -1
  45. package/dist/es/jats/importer/jats-body-dom-parser.js +23 -227
  46. package/dist/es/jats/importer/jats-body-transformations.js +111 -202
  47. package/dist/es/jats/importer/jats-comments.js +97 -96
  48. package/dist/es/jats/importer/jats-front-parser.js +88 -82
  49. package/dist/es/jats/importer/jats-journal-meta-parser.js +51 -39
  50. package/dist/es/jats/importer/jats-parser-utils.js +16 -54
  51. package/dist/es/jats/importer/jats-reference-parser.js +27 -82
  52. package/dist/es/jats/importer/jats-references.js +30 -0
  53. package/dist/es/jats/importer/parse-jats-article.js +70 -174
  54. package/dist/es/jats/index.js +1 -1
  55. package/dist/es/jats/jats-exporter.js +34 -55
  56. package/dist/es/lib/section-group-type.js +27 -0
  57. package/dist/es/lib/utils.js +0 -22
  58. package/dist/es/schema/index.js +21 -18
  59. package/dist/es/schema/nodes/abstracts.js +24 -0
  60. package/dist/es/schema/nodes/affiliations.js +24 -0
  61. package/dist/es/schema/nodes/backmatter.js +24 -0
  62. package/dist/es/schema/nodes/body.js +24 -0
  63. package/dist/es/schema/nodes/citation.js +10 -15
  64. package/dist/es/schema/nodes/{comment_list.js → comments.js} +3 -3
  65. package/dist/es/schema/nodes/contributors.js +24 -0
  66. package/dist/es/schema/nodes/{meta_section.js → core_section.js} +5 -4
  67. package/dist/es/schema/nodes/cross_reference.js +4 -3
  68. package/dist/es/schema/nodes/inline_footnote.js +6 -5
  69. package/dist/es/schema/nodes/keyword.js +0 -1
  70. package/dist/es/schema/nodes/{keywords_group.js → keyword_group.js} +4 -4
  71. package/dist/es/schema/nodes/{keywords_section.js → keywords.js} +5 -5
  72. package/dist/es/schema/nodes/keywords_element.js +1 -1
  73. package/dist/es/schema/nodes/manuscript.js +3 -1
  74. package/dist/es/transformer/builders.js +6 -73
  75. package/dist/es/transformer/decode.js +147 -175
  76. package/dist/es/transformer/encode.js +70 -71
  77. package/dist/es/transformer/highlight-markers.js +44 -32
  78. package/dist/es/transformer/html.js +7 -23
  79. package/dist/es/transformer/labels.js +3 -17
  80. package/dist/es/transformer/node-names.js +1 -1
  81. package/dist/es/transformer/node-title.js +1 -1
  82. package/dist/es/transformer/node-types.js +7 -6
  83. package/dist/es/transformer/object-types.js +0 -1
  84. package/dist/es/transformer/section-category.js +29 -29
  85. package/dist/types/index.d.ts +1 -1
  86. package/dist/types/jats/importer/index.d.ts +1 -1
  87. package/dist/types/jats/importer/jats-body-transformations.d.ts +16 -19
  88. package/dist/types/jats/importer/jats-comments.d.ts +13 -9
  89. package/dist/types/jats/importer/jats-front-parser.d.ts +35 -12
  90. package/dist/types/jats/importer/jats-journal-meta-parser.d.ts +4 -4
  91. package/dist/types/jats/importer/jats-parser-utils.d.ts +1 -6
  92. package/dist/types/jats/importer/jats-reference-parser.d.ts +2 -6
  93. package/dist/types/jats/importer/jats-references.d.ts +12 -0
  94. package/dist/types/jats/importer/parse-jats-article.d.ts +5 -17
  95. package/dist/types/jats/index.d.ts +1 -1
  96. package/dist/types/lib/section-group-type.d.ts +23 -0
  97. package/dist/types/lib/utils.d.ts +1 -4
  98. package/dist/types/schema/index.d.ts +4 -5
  99. package/dist/types/schema/nodes/{meta_section.d.ts → abstracts.d.ts} +1 -9
  100. package/dist/types/schema/nodes/affiliations.d.ts +17 -0
  101. package/dist/types/schema/nodes/backmatter.d.ts +17 -0
  102. package/dist/types/schema/nodes/body.d.ts +17 -0
  103. package/dist/types/schema/nodes/citation.d.ts +3 -5
  104. package/dist/types/schema/nodes/comments.d.ts +17 -0
  105. package/dist/types/schema/nodes/contributors.d.ts +17 -0
  106. package/dist/types/schema/nodes/core_section.d.ts +17 -0
  107. package/dist/types/schema/nodes/cross_reference.d.ts +1 -1
  108. package/dist/types/schema/nodes/inline_footnote.d.ts +1 -1
  109. package/dist/types/schema/nodes/keyword.d.ts +0 -1
  110. package/dist/types/schema/nodes/{contributors_element.d.ts → keyword_group.d.ts} +3 -4
  111. package/dist/types/schema/nodes/{comment_list.d.ts → keywords.d.ts} +3 -2
  112. package/dist/types/schema/nodes/manuscript.d.ts +1 -0
  113. package/dist/types/schema/types.d.ts +1 -1
  114. package/dist/types/transformer/builders.d.ts +2 -14
  115. package/dist/types/transformer/decode.d.ts +5 -9
  116. package/dist/types/transformer/encode.d.ts +4 -4
  117. package/dist/types/transformer/highlight-markers.d.ts +7 -2
  118. package/dist/types/transformer/object-types.d.ts +1 -2
  119. package/dist/types/transformer/section-category.d.ts +4 -3
  120. package/package.json +1 -6
  121. package/dist/cjs/lib/core-section-categories.js +0 -29
  122. package/dist/cjs/schema/nodes/affiliations_section.js +0 -36
  123. package/dist/cjs/schema/nodes/contributors_element.js +0 -49
  124. package/dist/cjs/schema/nodes/contributors_section.js +0 -36
  125. package/dist/es/lib/core-section-categories.js +0 -26
  126. package/dist/es/schema/nodes/affiliations_section.js +0 -32
  127. package/dist/es/schema/nodes/contributors_element.js +0 -46
  128. package/dist/es/schema/nodes/contributors_section.js +0 -32
  129. package/dist/types/lib/core-section-categories.d.ts +0 -8
  130. package/dist/types/schema/nodes/affiliations_section.d.ts +0 -11
  131. package/dist/types/schema/nodes/contributors_section.d.ts +0 -12
  132. package/dist/types/schema/nodes/keywords_group.d.ts +0 -26
  133. package/dist/types/schema/nodes/keywords_section.d.ts +0 -26
package/dist/cjs/index.js CHANGED
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.isSectionLabelNode = void 0;
18
- __exportStar(require("./lib/core-section-categories"), exports);
18
+ __exportStar(require("./lib/section-group-type"), exports);
19
19
  __exportStar(require("./lib/table-cell-styles"), exports);
20
20
  __exportStar(require("./lib/utils"), exports);
21
21
  __exportStar(require("./mathjax"), exports);
@@ -15,10 +15,8 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.getElementsOrder = exports.parseJATSArticle = exports.parseJATSReferences = exports.parseJATSBody = exports.parseJATSFront = void 0;
18
+ exports.parseJATSArticle = exports.parseJATSBody = exports.parseJATSFront = void 0;
19
19
  var parse_jats_article_1 = require("./parse-jats-article");
20
20
  Object.defineProperty(exports, "parseJATSFront", { enumerable: true, get: function () { return parse_jats_article_1.parseJATSFront; } });
21
21
  Object.defineProperty(exports, "parseJATSBody", { enumerable: true, get: function () { return parse_jats_article_1.parseJATSBody; } });
22
- Object.defineProperty(exports, "parseJATSReferences", { enumerable: true, get: function () { return parse_jats_article_1.parseJATSReferences; } });
23
22
  Object.defineProperty(exports, "parseJATSArticle", { enumerable: true, get: function () { return parse_jats_article_1.parseJATSArticle; } });
24
- Object.defineProperty(exports, "getElementsOrder", { enumerable: true, get: function () { return parse_jats_article_1.getElementsOrder; } });
@@ -338,75 +338,6 @@ const nodes = [
338
338
  };
339
339
  },
340
340
  },
341
- {
342
- tag: 'ref',
343
- node: 'bibliography_item',
344
- context: 'bibliography_element/',
345
- getAttrs: (node) => {
346
- const element = node;
347
- const ref = {
348
- id: element.getAttribute('id'),
349
- type: element.getAttribute('type'),
350
- };
351
- const author = element.getAttribute('author');
352
- if (author) {
353
- ref.author = author;
354
- }
355
- const issued = element.getAttribute('issued');
356
- if (issued) {
357
- ref.issued = issued;
358
- }
359
- const containerTitle = element.getAttribute('container-title');
360
- if (containerTitle) {
361
- ref.containerTitle = containerTitle;
362
- }
363
- const doi = element.getAttribute('doi');
364
- if (doi) {
365
- ref.doi = doi;
366
- }
367
- const volume = element.getAttribute('volume');
368
- if (volume) {
369
- ref.volume = volume;
370
- }
371
- const issue = element.getAttribute('issue');
372
- if (issue) {
373
- ref.issue = issue;
374
- }
375
- const supplement = element.getAttribute('supplement');
376
- if (supplement) {
377
- ref.supplement = supplement;
378
- }
379
- const page = element.getAttribute('page');
380
- if (page) {
381
- ref.page = page;
382
- }
383
- const title = element.getAttribute('title');
384
- if (title) {
385
- ref.title = title;
386
- }
387
- const literal = element.getAttribute('literal');
388
- if (literal) {
389
- ref.literal = literal;
390
- }
391
- return ref;
392
- },
393
- },
394
- {
395
- tag: 'ref-list',
396
- node: 'bibliography_element',
397
- context: 'bibliography_section/',
398
- getAttrs: (node) => {
399
- const element = node;
400
- const titleNode = element.querySelector('title');
401
- if (titleNode) {
402
- element.removeChild(titleNode);
403
- }
404
- return {
405
- id: element.getAttribute('id'),
406
- contents: '',
407
- };
408
- },
409
- },
410
341
  {
411
342
  tag: 'fn-group',
412
343
  node: 'footnotes_element',
@@ -496,144 +427,24 @@ const nodes = [
496
427
  },
497
428
  },
498
429
  {
499
- tag: 'sec[sec-type="bibliography"]',
500
- node: 'bibliography_section',
501
- getAttrs: (node) => {
502
- const element = node;
503
- return {
504
- id: element.getAttribute('id'),
505
- };
506
- },
507
- },
508
- {
509
- tag: 'sec[sec-type="affiliations"]',
510
- node: 'affiliations_section',
511
- getAttrs: (node) => {
512
- const element = node;
513
- return {
514
- id: element.getAttribute('id'),
515
- category: 'MPSectionCategory:affiliations',
516
- };
517
- },
430
+ tag: 'sec[sec-type="keywords"]',
431
+ node: 'keywords',
518
432
  },
519
433
  {
520
- tag: 'aff',
521
- node: 'affiliation',
522
- context: 'affiliations_section/',
523
- getAttrs: (node) => {
524
- const element = node;
525
- const aff = {
526
- id: element.getAttribute('id'),
527
- };
528
- const institution = element.getAttribute('institution');
529
- if (institution) {
530
- aff.institution = institution;
531
- }
532
- const email = element.getAttribute('email');
533
- if (email) {
534
- aff.bibliographicName = JSON.parse(email);
535
- }
536
- const department = element.getAttribute('department');
537
- if (department) {
538
- aff.department = department;
539
- }
540
- const addressLine1 = element.getAttribute('addressLine1');
541
- if (addressLine1) {
542
- aff.addressLine1 = addressLine1;
543
- }
544
- const addressLine2 = element.getAttribute('addressLine2');
545
- if (addressLine2) {
546
- aff.addressLine2 = addressLine2;
547
- }
548
- const addressLine3 = element.getAttribute('addressLine3');
549
- if (addressLine3) {
550
- aff.addressLine3 = addressLine3;
551
- }
552
- const postCode = element.getAttribute('postCode');
553
- if (postCode) {
554
- aff.postCode = postCode;
555
- }
556
- const country = element.getAttribute('country');
557
- if (country) {
558
- aff.country = country;
559
- }
560
- const priority = element.getAttribute('priority');
561
- if (priority) {
562
- aff.priority = parseInt(priority);
563
- }
564
- return aff;
565
- },
434
+ tag: 'sec[sec-type="abstracts"]',
435
+ node: 'abstracts',
566
436
  },
567
437
  {
568
- tag: 'sec[sec-type="contributors"]',
569
- node: 'contributors_section',
570
- getAttrs: (node) => {
571
- const element = node;
572
- return {
573
- id: element.getAttribute('id'),
574
- category: 'MPSectionCategory:contributors',
575
- };
576
- },
438
+ tag: 'sec[sec-type="body"]',
439
+ node: 'body',
577
440
  },
578
441
  {
579
- tag: 'contrib',
580
- node: 'contributor',
581
- context: 'contributors_section/',
582
- getAttrs: (node) => {
583
- const element = node;
584
- const contrib = {
585
- id: element.getAttribute('id'),
586
- };
587
- const role = element.getAttribute('role');
588
- if (role) {
589
- contrib.role = role;
590
- }
591
- const affiliations = element.getAttribute('affiliations');
592
- if (affiliations) {
593
- contrib.affiliations = JSON.parse(affiliations);
594
- }
595
- const footnote = element.getAttribute('footnote');
596
- if (footnote) {
597
- contrib.footnote = JSON.parse(footnote);
598
- }
599
- const corresp = element.getAttribute('corresp');
600
- if (corresp) {
601
- contrib.corresp = JSON.parse(corresp);
602
- }
603
- const bibliographicName = element.getAttribute('bibliographicName');
604
- if (bibliographicName) {
605
- contrib.bibliographicName = JSON.parse(bibliographicName);
606
- }
607
- const userID = element.getAttribute('userID');
608
- if (userID) {
609
- contrib.userID = userID;
610
- }
611
- const priority = element.getAttribute('priority');
612
- if (priority) {
613
- contrib.priority = parseInt(priority);
614
- }
615
- const invitationID = element.getAttribute('invitationID');
616
- if (invitationID) {
617
- contrib.invitationID = invitationID;
618
- }
619
- const objectType = element.getAttribute('objectType');
620
- if (objectType) {
621
- contrib.objectType = objectType;
622
- }
623
- const isCorresponding = element.getAttribute('isCorresponding');
624
- if (isCorresponding) {
625
- contrib.isCorresponding = JSON.parse(isCorresponding);
626
- }
627
- const ORCIDIdentifier = element.getAttribute('ORCIDIdentifier');
628
- if (ORCIDIdentifier) {
629
- contrib.ORCIDIdentifier = ORCIDIdentifier;
630
- }
631
- return contrib;
632
- },
442
+ tag: 'sec[sec-type="backmatter"]',
443
+ node: 'backmatter',
633
444
  },
634
445
  {
635
- tag: 'sec[sec-type="keywords"]',
636
- node: 'keywords_section',
446
+ tag: 'sec',
447
+ node: 'section',
637
448
  getAttrs: (node) => {
638
449
  const element = node;
639
450
  return {
@@ -644,24 +455,13 @@ const nodes = [
644
455
  },
645
456
  {
646
457
  tag: 'kwd-group-list',
647
- context: 'keywords_section/',
458
+ context: 'keywords/',
648
459
  node: 'keywords_element',
649
460
  },
650
- {
651
- tag: 'sec',
652
- node: 'section',
653
- getAttrs: (node) => {
654
- const element = node;
655
- return {
656
- id: element.getAttribute('id'),
657
- category: (0, transformer_1.chooseSectionCategory)(element),
658
- };
659
- },
660
- },
661
461
  {
662
462
  tag: 'kwd-group',
663
463
  context: 'keywords_element/',
664
- node: 'keywords_group',
464
+ node: 'keyword_group',
665
465
  getAttrs: (node) => {
666
466
  const element = node;
667
467
  return {
@@ -671,7 +471,7 @@ const nodes = [
671
471
  },
672
472
  {
673
473
  tag: 'kwd',
674
- context: 'keywords_group//',
474
+ context: 'keyword_group//',
675
475
  node: 'keyword',
676
476
  },
677
477
  {
@@ -726,7 +526,7 @@ const nodes = [
726
526
  {
727
527
  tag: 'title',
728
528
  node: 'section_title',
729
- context: 'section/|footnotes_section/|bibliography_section/|keywords_section/',
529
+ context: 'section/|footnotes_section/|bibliography_section/|keywords/',
730
530
  },
731
531
  {
732
532
  tag: 'title',
@@ -775,15 +575,11 @@ const nodes = [
775
575
  tag: 'xref[ref-type="bibr"]',
776
576
  node: 'citation',
777
577
  getAttrs: (node) => {
778
- var _a;
578
+ var _a, _b;
779
579
  const element = node;
780
- const embeddedCitationAttr = element.getAttribute('data-reference-embedded-citation');
781
580
  return {
782
- rid: element.getAttribute('rid'),
783
- contents: (_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim(),
784
- embeddedCitationItems: embeddedCitationAttr
785
- ? JSON.parse(embeddedCitationAttr)
786
- : null,
581
+ rids: ((_a = element.getAttribute('rid')) === null || _a === void 0 ? void 0 : _a.split(/\s+/)) || [],
582
+ contents: (_b = element.textContent) === null || _b === void 0 ? void 0 : _b.trim(),
787
583
  };
788
584
  },
789
585
  },
@@ -791,11 +587,11 @@ const nodes = [
791
587
  tag: 'xref[ref-type="fn"]',
792
588
  node: 'inline_footnote',
793
589
  getAttrs: (node) => {
794
- var _a;
590
+ var _a, _b;
795
591
  const element = node;
796
592
  return {
797
- rid: element.getAttribute('rid'),
798
- contents: (_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim(),
593
+ rids: ((_a = element.getAttribute('rid')) === null || _a === void 0 ? void 0 : _a.split(/\s+/)) || [],
594
+ contents: (_b = element.textContent) === null || _b === void 0 ? void 0 : _b.trim(),
799
595
  };
800
596
  },
801
597
  },
@@ -803,11 +599,11 @@ const nodes = [
803
599
  tag: 'xref',
804
600
  node: 'cross_reference',
805
601
  getAttrs: (node) => {
806
- var _a;
602
+ var _a, _b;
807
603
  const element = node;
808
604
  return {
809
- rid: element.getAttribute('rid'),
810
- label: (_a = element.textContent) === null || _a === void 0 ? void 0 : _a.trim(),
605
+ rids: ((_a = element.getAttribute('rid')) === null || _a === void 0 ? void 0 : _a.split(/\s+/)) || [],
606
+ label: (_b = element.textContent) === null || _b === void 0 ? void 0 : _b.trim(),
811
607
  };
812
608
  },
813
609
  },