@manuscripts/transform 2.3.36 → 2.3.37-LEAN-3911.1

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 (113) hide show
  1. package/dist/cjs/jats/importer/create-article-node.js +31 -0
  2. package/dist/cjs/jats/importer/index.js +3 -3
  3. package/dist/cjs/jats/importer/jats-body-transformations.js +70 -0
  4. package/dist/cjs/jats/importer/jats-comments.js +27 -104
  5. package/dist/cjs/jats/importer/{jats-body-dom-parser.js → jats-dom-parser.js} +229 -9
  6. package/dist/cjs/jats/importer/jats-front-transformations.js +262 -0
  7. package/dist/cjs/jats/importer/jats-journal-meta-parser.js +8 -1
  8. package/dist/cjs/jats/importer/jats-parser-utils.js +39 -5
  9. package/dist/cjs/jats/importer/jats-reference-parser.js +16 -27
  10. package/dist/cjs/jats/importer/jats-references.js +18 -18
  11. package/dist/cjs/jats/importer/parse-jats-article.js +42 -78
  12. package/dist/cjs/jats/index.js +4 -3
  13. package/dist/cjs/jats/jats-exporter.js +253 -366
  14. package/dist/cjs/{transformer → jats}/labels.js +3 -3
  15. package/dist/cjs/lib/utils.js +9 -1
  16. package/dist/cjs/transformer/id.js +10 -5
  17. package/dist/cjs/transformer/index.js +0 -18
  18. package/dist/cjs/version.js +1 -1
  19. package/dist/{cjs/transformer/serializer.js → es/jats/importer/create-article-node.js} +12 -8
  20. package/dist/es/jats/importer/index.js +2 -1
  21. package/dist/es/jats/importer/jats-body-transformations.js +70 -0
  22. package/dist/es/jats/importer/jats-comments.js +26 -101
  23. package/dist/es/jats/importer/{jats-body-dom-parser.js → jats-dom-parser.js} +230 -10
  24. package/dist/es/jats/importer/jats-front-transformations.js +259 -0
  25. package/dist/es/jats/importer/jats-journal-meta-parser.js +6 -0
  26. package/dist/es/jats/importer/jats-parser-utils.js +40 -6
  27. package/dist/es/jats/importer/jats-reference-parser.js +16 -27
  28. package/dist/es/jats/importer/jats-references.js +18 -18
  29. package/dist/es/jats/importer/parse-jats-article.js +43 -77
  30. package/dist/es/jats/index.js +3 -1
  31. package/dist/es/jats/jats-exporter.js +255 -368
  32. package/dist/es/{transformer → jats}/labels.js +3 -3
  33. package/dist/es/lib/utils.js +7 -0
  34. package/dist/es/transformer/id.js +8 -3
  35. package/dist/es/transformer/index.js +0 -16
  36. package/dist/es/version.js +1 -1
  37. package/dist/{cjs/transformer/models.js → types/jats/importer/create-article-node.d.ts} +3 -3
  38. package/dist/types/jats/importer/index.d.ts +2 -1
  39. package/dist/types/jats/importer/jats-body-transformations.d.ts +5 -0
  40. package/dist/types/jats/importer/jats-comments.d.ts +4 -10
  41. package/dist/types/jats/importer/{jats-body-dom-parser.d.ts → jats-dom-parser.d.ts} +1 -1
  42. package/dist/types/jats/importer/jats-front-transformations.d.ts +38 -0
  43. package/dist/types/jats/importer/jats-journal-meta-parser.d.ts +10 -0
  44. package/dist/types/jats/importer/jats-references.d.ts +19 -8
  45. package/dist/types/jats/importer/parse-jats-article.d.ts +12 -5
  46. package/dist/types/jats/index.d.ts +3 -1
  47. package/dist/types/jats/jats-exporter.d.ts +14 -27
  48. package/dist/types/{transformer → jats}/labels.d.ts +2 -1
  49. package/dist/types/lib/utils.d.ts +3 -0
  50. package/dist/types/schema/nodes/bibliography_item.d.ts +28 -5
  51. package/dist/types/schema/nodes/contributor.d.ts +10 -0
  52. package/dist/types/schema/nodes/keyword_group.d.ts +1 -0
  53. package/dist/types/transformer/id.d.ts +5 -2
  54. package/dist/types/transformer/index.d.ts +0 -16
  55. package/dist/types/version.d.ts +1 -1
  56. package/package.json +3 -2
  57. package/dist/cjs/__tests__/data/project-dump.json +0 -825
  58. package/dist/cjs/jats/importer/jats-front-parser.js +0 -321
  59. package/dist/cjs/transformer/__tests__/__helpers__/doc.js +0 -37
  60. package/dist/cjs/transformer/builders.js +0 -219
  61. package/dist/cjs/transformer/decode.js +0 -874
  62. package/dist/cjs/transformer/document-object-types.js +0 -31
  63. package/dist/cjs/transformer/encode.js +0 -664
  64. package/dist/cjs/transformer/footnote-category.js +0 -20
  65. package/dist/cjs/transformer/footnotes-order.js +0 -60
  66. package/dist/cjs/transformer/highlight-markers.js +0 -138
  67. package/dist/cjs/transformer/html.js +0 -400
  68. package/dist/cjs/transformer/manuscript-dependencies.js +0 -21
  69. package/dist/cjs/transformer/model-map.js +0 -26
  70. package/dist/cjs/transformer/object-types.js +0 -57
  71. package/dist/cjs/transformer/project-bundle.js +0 -94
  72. package/dist/cjs/transformer/update-identifiers.js +0 -93
  73. package/dist/es/__tests__/data/project-dump.json +0 -825
  74. package/dist/es/jats/importer/jats-front-parser.js +0 -315
  75. package/dist/es/transformer/__tests__/__helpers__/doc.js +0 -29
  76. package/dist/es/transformer/builders.js +0 -186
  77. package/dist/es/transformer/decode.js +0 -864
  78. package/dist/es/transformer/document-object-types.js +0 -28
  79. package/dist/es/transformer/encode.js +0 -654
  80. package/dist/es/transformer/footnote-category.js +0 -16
  81. package/dist/es/transformer/footnotes-order.js +0 -55
  82. package/dist/es/transformer/highlight-markers.js +0 -132
  83. package/dist/es/transformer/html.js +0 -393
  84. package/dist/es/transformer/manuscript-dependencies.js +0 -17
  85. package/dist/es/transformer/model-map.js +0 -22
  86. package/dist/es/transformer/models.js +0 -16
  87. package/dist/es/transformer/object-types.js +0 -52
  88. package/dist/es/transformer/project-bundle.js +0 -85
  89. package/dist/es/transformer/serializer.js +0 -17
  90. package/dist/es/transformer/update-identifiers.js +0 -87
  91. package/dist/types/jats/importer/jats-front-parser.d.ts +0 -84
  92. package/dist/types/transformer/__tests__/__helpers__/doc.d.ts +0 -18
  93. package/dist/types/transformer/builders.d.ts +0 -61
  94. package/dist/types/transformer/decode.d.ts +0 -51
  95. package/dist/types/transformer/document-object-types.d.ts +0 -17
  96. package/dist/types/transformer/encode.d.ts +0 -29
  97. package/dist/types/transformer/footnote-category.d.ts +0 -17
  98. package/dist/types/transformer/footnotes-order.d.ts +0 -22
  99. package/dist/types/transformer/highlight-markers.d.ts +0 -31
  100. package/dist/types/transformer/html.d.ts +0 -36
  101. package/dist/types/transformer/manuscript-dependencies.d.ts +0 -4
  102. package/dist/types/transformer/model-map.d.ts +0 -19
  103. package/dist/types/transformer/models.d.ts +0 -48
  104. package/dist/types/transformer/object-types.d.ts +0 -30
  105. package/dist/types/transformer/project-bundle.d.ts +0 -30
  106. package/dist/types/transformer/serializer.d.ts +0 -19
  107. package/dist/types/transformer/update-identifiers.d.ts +0 -23
  108. /package/dist/cjs/{transformer → jats}/filename.js +0 -0
  109. /package/dist/cjs/{transformer → jats}/timestamp.js +0 -0
  110. /package/dist/es/{transformer → jats}/filename.js +0 -0
  111. /package/dist/es/{transformer → jats}/timestamp.js +0 -0
  112. /package/dist/types/{transformer → jats}/filename.d.ts +0 -0
  113. /package/dist/types/{transformer → jats}/timestamp.d.ts +0 -0
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { schema } from '../schema';
17
- import { nodeNames } from './node-names';
17
+ import { nodeNames } from '../transformer/node-names';
18
18
  const labelledNodeTypes = [
19
19
  schema.nodes.figure_element,
20
20
  schema.nodes.table_element,
@@ -25,7 +25,7 @@ const excludedTypes = [schema.nodes.graphical_abstract_section];
25
25
  const chooseLabel = (nodeType) => {
26
26
  return nodeNames.get(nodeType);
27
27
  };
28
- export const buildTargets = (fragment) => {
28
+ export const buildTargets = (node) => {
29
29
  const counters = {};
30
30
  for (const nodeType of labelledNodeTypes) {
31
31
  counters[nodeType.name] = {
@@ -39,7 +39,7 @@ export const buildTargets = (fragment) => {
39
39
  return `${counter.label} ${counter.index}`;
40
40
  };
41
41
  const targets = new Map();
42
- fragment.descendants((node, pos, parent) => {
42
+ node.descendants((node, pos, parent) => {
43
43
  var _a;
44
44
  if (node.type.name in counters) {
45
45
  if (parent && excludedTypes.includes(parent.type)) {
@@ -74,3 +74,10 @@ export const getTrimmedTextContent = (node, querySelector) => {
74
74
  }
75
75
  return (_b = (_a = node.querySelector(querySelector)) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim();
76
76
  };
77
+ export const setElementAttributes = (element, attributes) => {
78
+ Object.entries(attributes).forEach(([key, value]) => {
79
+ if (value) {
80
+ element.setAttribute(key, value);
81
+ }
82
+ });
83
+ };
@@ -15,9 +15,14 @@
15
15
  */
16
16
  import { v4 as uuid } from 'uuid';
17
17
  import { nodeTypesMap } from './node-types';
18
- export const generateNodeID = (type) => {
19
- return nodeTypesMap.get(type) + ':' + uuid().toUpperCase();
20
- };
18
+ export var ExtraObjectTypes;
19
+ (function (ExtraObjectTypes) {
20
+ ExtraObjectTypes["PlaceholderElement"] = "MPPlaceholderElement";
21
+ ExtraObjectTypes["GeneralTableFootnote"] = "MPGeneralTableFootnote";
22
+ })(ExtraObjectTypes || (ExtraObjectTypes = {}));
21
23
  export const generateID = (objectType) => {
22
24
  return objectType + ':' + uuid().toUpperCase();
23
25
  };
26
+ export const generateNodeID = (type) => {
27
+ return nodeTypesMap.get(type) + ':' + uuid().toUpperCase();
28
+ };
@@ -13,24 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export * from './builders';
17
- export * from './decode';
18
- export * from './document-object-types';
19
- export * from './encode';
20
- export * from './filename';
21
- export * from './highlight-markers';
22
- export * from './html';
23
16
  export * from './id';
24
- export * from './labels';
25
- export * from './manuscript-dependencies';
26
- export * from './models';
27
17
  export * from './node-names';
28
18
  export * from './node-title';
29
19
  export * from './node-types';
30
- export * from './object-types';
31
- export * from './project-bundle';
32
20
  export * from './section-category';
33
- export * from './serializer';
34
- export * from './timestamp';
35
- export * from './update-identifiers';
36
- export { createTestDoc } from './__tests__/__helpers__/doc';
@@ -1 +1 @@
1
- export const VERSION = "2.3.36";
1
+ export const VERSION = "2.3.37-LEAN-3911.1";
@@ -1,6 +1,5 @@
1
- "use strict";
2
1
  /*!
3
- * © 2019 Atypon Systems LLC
2
+ * © 2024 Atypon Systems LLC
4
3
  *
5
4
  * Licensed under the Apache License, Version 2.0 (the "License");
6
5
  * you may not use this file except in compliance with the License.
@@ -14,4 +13,5 @@
14
13
  * See the License for the specific language governing permissions and
15
14
  * limitations under the License.
16
15
  */
17
- Object.defineProperty(exports, "__esModule", { value: true });
16
+ import { Manuscript } from '@manuscripts/json-schema';
17
+ export declare const createArticleNode: (manuscript: Partial<Manuscript>) => import("prosemirror-model").Node;
@@ -13,4 +13,5 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export { parseJATSFront, parseJATSBody, parseJATSArticle, } from './parse-jats-article';
16
+ export { createArticleNode } from './create-article-node';
17
+ export { parseJATSArticle } from './parse-jats-article';
@@ -13,6 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import { BibliographyItemAttributes } from '../../schema';
17
+ import { References } from './jats-references';
16
18
  export declare const jatsBodyTransformations: {
17
19
  ensureSection(body: Element, createElement: (tagName: string) => HTMLElement): void;
18
20
  createAbstractSection(abstractNode: Element, createElement: (tagName: string) => HTMLElement): HTMLElement;
@@ -36,4 +38,7 @@ export declare const jatsBodyTransformations: {
36
38
  moveFloatsGroupToBody(doc: Document, body: Element, createElement: (tagName: string) => HTMLElement): void;
37
39
  createKeywords(document: Document, body: Element, createElement: (tagName: string) => HTMLElement): void;
38
40
  createSuppleMaterials(document: Document, body: Element, createElement: (tagName: string) => HTMLElement): void;
41
+ moveReferencesToBackmatter(body: Element, references: References | undefined, createElement: (tagName: string) => HTMLElement): void;
42
+ createBibliographySection(createElement: (tagName: string) => HTMLElement): HTMLElement;
43
+ createBibliographyItem(item: BibliographyItemAttributes, createElement: (tagName: string) => HTMLElement): HTMLElement;
39
44
  };
@@ -13,18 +13,12 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { CommentAnnotation, Model } from '@manuscripts/json-schema';
17
- import { References } from './jats-references';
18
16
  export type JATSComment = {
19
- id: string;
17
+ index: number;
20
18
  text: string;
19
+ id: string;
21
20
  };
22
- export type JATSCommentMark = {
23
- token: string;
24
- comment: JATSComment;
25
- };
21
+ export declare const DEFAULT_PROFILE_ID = "MPUserProfile:0000000000000000000000000000000000000001";
26
22
  export declare const isJATSComment: (node: Node) => boolean;
27
23
  export declare const parseJATSComment: (node: Node) => JATSComment | undefined;
28
- export declare const markComments: (doc: Document) => JATSCommentMark[];
29
- export declare const createComments: (models: Model[], marks: JATSCommentMark[]) => CommentAnnotation[];
30
- export declare const createReferenceComments: (references: References) => CommentAnnotation[];
24
+ export declare const markComments: (doc: Document) => void;
@@ -21,4 +21,4 @@ export type MarkRule = ParseRule & {
21
21
  export type NodeRule = ParseRule & {
22
22
  node?: Nodes | null;
23
23
  };
24
- export declare const jatsBodyDOMParser: DOMParser;
24
+ export declare const jatsDOMParser: DOMParser;
@@ -0,0 +1,38 @@
1
+ /*!
2
+ * © 2024 Atypon Systems LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare const defaultTitle = "Untitled Manuscript";
17
+ export declare const jatsFrontTransformations: {
18
+ setArticleAttrs(doc: Document, template?: string): void;
19
+ createTitle(front: Element, createElement: (tagName: string) => HTMLElement): Element;
20
+ createAuthorNotes(document: Document, createElement: (tagName: string) => HTMLElement): HTMLElement | undefined;
21
+ appendFootnote(node: Element, element: Element, createElement: (tagName: string) => HTMLElement): void;
22
+ appendParagraph(document: Document, node: Element, element: Element): void;
23
+ appendCorresp(node: Element, element: Element, createElement: (tagName: string) => HTMLElement): void;
24
+ createContributors(front: Element, createElement: (tagName: string) => HTMLElement): HTMLElement;
25
+ createContributorElement(priority: number, createElement: (tagName: string) => HTMLElement): HTMLElement;
26
+ setNameAttrs(node: Element, element: Element): void;
27
+ setOrcidAttribute(node: Element, element: Element): void;
28
+ setIsCorrespondingAttribute(node: Element, element: Element): void;
29
+ setContributorReferences(node: Element, element: Element, createElement: (tagName: string) => HTMLElement): void;
30
+ appendFootnoteID(xref: Element, footnotes: Element, rid: string, createElement: (tagName: string) => HTMLElement): void;
31
+ appendCorrespID(xref: Element, corresps: Element, rid: string, createElement: (tagName: string) => HTMLElement): void;
32
+ appendAffiliationID(affs: Element, rid: string, createElement: (tagName: string) => HTMLElement): void;
33
+ createAffiliations(front: Element, createElement: (tagName: string) => HTMLElement): HTMLElement;
34
+ createAffiliationElement(element: Element, priority: number, createElement: (tagName: string) => HTMLElement): HTMLElement;
35
+ appendEmail(element: Element, affiliation: Element): void;
36
+ setInstitutionAttrs(element: Element, affiliation: Element): void;
37
+ setAddressAttrs(element: Element, affiliation: Element): void;
38
+ };
@@ -13,6 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import { ObjectTypes } from '@manuscripts/json-schema';
16
17
  export type ISSN = {
17
18
  ISSN: string;
18
19
  publicationType?: string;
@@ -35,3 +36,12 @@ export declare const parseJournalMeta: (element: Element | null) => {
35
36
  publisherName: string | undefined;
36
37
  title: string | undefined;
37
38
  };
39
+ export declare const parseJournal: (element: Element | null) => {
40
+ _id: string;
41
+ objectType: ObjectTypes;
42
+ abbreviatedTitles: AbbreviatedTitle[];
43
+ journalIdentifiers: JournalIdentifier[];
44
+ ISSNs: ISSN[];
45
+ publisherName: string | undefined;
46
+ title: string | undefined;
47
+ };
@@ -1,12 +1,23 @@
1
- import { BibliographyItem } from '@manuscripts/json-schema';
2
- import { JATSComment } from './jats-comments';
1
+ /*!
2
+ * © 2023 Atypon Systems LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { BibliographyItemAttributes } from '../../schema';
3
17
  export declare class References {
4
- items: Map<string, BibliographyItem>;
18
+ items: Map<string, BibliographyItemAttributes>;
5
19
  IDs: Map<string, string>;
6
- comments: Map<string, JATSComment[]>;
7
20
  constructor();
8
- add(item: BibliographyItem, id: string | null, comments: JATSComment[]): void;
9
- getBibliographyItems(): BibliographyItem[];
10
- getComments(id: string): JATSComment[];
11
- private getValue;
21
+ add(item: BibliographyItemAttributes, id: string | null): void;
22
+ getBibliographyItems(): BibliographyItemAttributes[];
12
23
  }
@@ -13,8 +13,15 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { Model } from '@manuscripts/json-schema';
17
- import { References } from './jats-references';
18
- export declare const parseJATSFront: (doc: Document, front: Element) => Model[];
19
- export declare const parseJATSBody: (doc: Document, body: Element, references?: References) => IterableIterator<Model>;
20
- export declare const parseJATSArticle: (doc: Document) => Model[];
16
+ export declare const parseJATSArticle: (doc: Document, template?: string) => {
17
+ node: import("prosemirror-model").Node;
18
+ journal: {
19
+ _id: string;
20
+ objectType: import("@manuscripts/json-schema/dist/types").ObjectTypes;
21
+ abbreviatedTitles: import("./jats-journal-meta-parser").AbbreviatedTitle[];
22
+ journalIdentifiers: import("./jats-journal-meta-parser").JournalIdentifier[];
23
+ ISSNs: import("./jats-journal-meta-parser").ISSN[];
24
+ publisherName: string | undefined;
25
+ title: string | undefined;
26
+ };
27
+ };
@@ -13,6 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export { parseJATSFront, parseJATSBody, parseJATSArticle } from './importer';
16
+ export { parseJATSArticle, createArticleNode } from './importer';
17
17
  export * from './jats-exporter';
18
18
  export * from './jats-versions';
19
+ export * from './timestamp';
20
+ export * from './labels';
@@ -13,18 +13,13 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { Model } from '@manuscripts/json-schema';
16
+ import { BibliographyItem, Journal } from '@manuscripts/json-schema';
17
17
  import { CitationProvider } from '@manuscripts/library';
18
18
  import { DOMSerializer } from 'prosemirror-model';
19
- import { CitationNode, ManuscriptFragment, ManuscriptNode } from '../schema';
20
- import { Target } from '../transformer/labels';
19
+ import { CitationNode, ManuscriptNode } from '../schema';
21
20
  import { IDGenerator, MediaPathGenerator } from '../types';
22
21
  import { Version } from './jats-versions';
23
- interface Links {
24
- self?: {
25
- [key: string]: string;
26
- };
27
- }
22
+ import { Target } from './labels';
28
23
  export declare const createCounter: () => {
29
24
  increment: (field: string) => number;
30
25
  };
@@ -32,17 +27,11 @@ export type CSLOptions = {
32
27
  style: string;
33
28
  locale: string;
34
29
  };
35
- export interface JATSExporterOptions {
36
- csl: CSLOptions;
30
+ export type ExportOptions = {
37
31
  version?: Version;
38
- doi?: string;
39
- id?: string;
40
- frontMatterOnly?: boolean;
41
- links?: Links;
42
- citationType?: 'element' | 'mixed';
43
- idGenerator?: IDGenerator;
44
- mediaPathGenerator?: MediaPathGenerator;
45
- }
32
+ journal?: Journal;
33
+ csl: CSLOptions;
34
+ };
46
35
  export declare const buildCitations: (citations: CitationNode[]) => {
47
36
  citationID: string;
48
37
  citationItems: {
@@ -54,13 +43,12 @@ export declare const buildCitations: (citations: CitationNode[]) => {
54
43
  }[];
55
44
  export declare class JATSExporter {
56
45
  protected document: Document;
57
- protected modelMap: Map<string, Model>;
58
- protected models: Model[];
59
46
  protected serializer: DOMSerializer;
60
47
  protected labelTargets?: Map<string, Target>;
61
48
  protected citationTexts: Map<string, string>;
62
49
  protected citationProvider: CitationProvider;
63
- protected generateCitations(fragment: ManuscriptFragment): {
50
+ protected manuscriptNode: ManuscriptNode;
51
+ protected generateCitations(): {
64
52
  citationID: string;
65
53
  citationItems: {
66
54
  id: string;
@@ -69,20 +57,20 @@ export declare class JATSExporter {
69
57
  noteIndex: number;
70
58
  };
71
59
  }[];
72
- protected generateCitationTexts(fragment: ManuscriptFragment, csl: CSLOptions): void;
73
- serializeToJATS: (fragment: ManuscriptFragment, modelMap: Map<string, Model>, manuscriptID: string, options: JATSExporterOptions) => Promise<string>;
60
+ protected getLibraryItem: (manuscriptID: string) => (id: string) => BibliographyItem | undefined;
61
+ protected generateCitationTexts(csl: CSLOptions, manuscriptID: string): void;
62
+ serializeToJATS: (manuscriptNode: ManuscriptNode, options: ExportOptions) => Promise<string>;
74
63
  private nodeFromJATS;
75
64
  protected rewriteMediaPaths: (generator: MediaPathGenerator) => Promise<void>;
76
65
  protected rewriteIDs: (generator?: IDGenerator) => Promise<void>;
77
66
  protected setTitleContent: (element: HTMLElement, title: string) => void;
78
- protected buildFront: (doi?: string, id?: string, links?: Links) => HTMLElement;
67
+ protected buildFront: (journal?: Journal) => HTMLElement;
79
68
  protected buildDateElement: (timestamp: number, type: string) => HTMLElement;
80
69
  protected buildCountingElement: (tagName: string, count: number | undefined) => HTMLElement | undefined;
81
- protected buildBody: (fragment: ManuscriptFragment) => HTMLBodyElement;
70
+ protected buildBody: () => HTMLBodyElement;
82
71
  protected buildBack: (body: HTMLElement) => HTMLElement;
83
72
  protected createSerializer: () => void;
84
73
  private createEquation;
85
- protected serializeFragment: (fragment: ManuscriptFragment) => HTMLElement | DocumentFragment;
86
74
  protected serializeNode: (node: ManuscriptNode) => Node;
87
75
  private validateContributor;
88
76
  private buildContributors;
@@ -109,4 +97,3 @@ export declare class JATSExporter {
109
97
  private fillEmptyFootnotes;
110
98
  private fillEmptyTableFooters;
111
99
  }
112
- export {};
@@ -13,6 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import { ManuscriptNode } from 'migration-base';
16
17
  import { ManuscriptFragment } from '../schema';
17
18
  export interface Target {
18
19
  type: string;
@@ -20,4 +21,4 @@ export interface Target {
20
21
  label: string;
21
22
  caption: string;
22
23
  }
23
- export declare const buildTargets: (fragment: ManuscriptFragment) => Map<string, Target>;
24
+ export declare const buildTargets: (node: ManuscriptNode | ManuscriptFragment) => Map<string, Target>;
@@ -26,3 +26,6 @@ export declare const findParentNodeClosestToPos: ($pos: ResolvedPos, predicate:
26
26
  node: ProsemirrorNode;
27
27
  } | undefined;
28
28
  export declare const getTrimmedTextContent: (node: Element | Document | null, querySelector: string) => string | null | undefined;
29
+ export declare const setElementAttributes: (element: Element, attributes: {
30
+ [key: string]: string | undefined;
31
+ }) => void;
@@ -13,14 +13,36 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { BibliographicDate, BibliographicName } from '@manuscripts/json-schema';
17
16
  import { NodeSpec } from 'prosemirror-model';
18
17
  import { ManuscriptNode } from '../types';
19
- interface Attrs {
18
+ type LooseNumber = string | number;
19
+ export interface BibliographyItemAuthor {
20
+ given?: string;
21
+ family?: string;
22
+ _id: string;
23
+ objectType: 'MPBibliographicName';
24
+ }
25
+ export interface BibliographyItemDate {
26
+ 'date-parts'?: [
27
+ [
28
+ LooseNumber,
29
+ LooseNumber?,
30
+ LooseNumber?
31
+ ],
32
+ [
33
+ LooseNumber,
34
+ LooseNumber?,
35
+ LooseNumber?
36
+ ]?
37
+ ];
38
+ _id: string;
39
+ objectType: 'MPBibliographicDate';
40
+ }
41
+ export interface BibliographyItemAttributes {
20
42
  id: string;
21
43
  type: string;
22
- author?: BibliographicName[];
23
- issued?: BibliographicDate;
44
+ author?: BibliographyItemAuthor[];
45
+ issued?: BibliographyItemDate;
24
46
  containerTitle?: string;
25
47
  doi?: string;
26
48
  volume?: string;
@@ -29,9 +51,10 @@ interface Attrs {
29
51
  page?: string;
30
52
  title?: string;
31
53
  literal?: string;
54
+ paragraphStyle?: string;
32
55
  }
33
56
  export interface BibliographyItemNode extends ManuscriptNode {
34
- attrs: Attrs;
57
+ attrs: BibliographyItemAttributes;
35
58
  }
36
59
  export declare const bibliographyItem: NodeSpec;
37
60
  export {};
@@ -1,9 +1,18 @@
1
1
  import { BibliographicName } from '@manuscripts/json-schema';
2
2
  import { NodeSpec } from 'prosemirror-model';
3
3
  import { ManuscriptNode } from '../types';
4
+ export type ContributorCorresp = {
5
+ correspID: string;
6
+ correspLabel: string;
7
+ };
8
+ export type ContributorFootnote = {
9
+ noteID: string;
10
+ noteLabel: string;
11
+ };
4
12
  interface Attrs {
5
13
  id: string;
6
14
  role: string;
15
+ corresp: ContributorCorresp[];
7
16
  affiliations: string[];
8
17
  bibliographicName: BibliographicName;
9
18
  userID: string;
@@ -13,6 +22,7 @@ interface Attrs {
13
22
  ORCIDIdentifier: string;
14
23
  priority: number;
15
24
  isJointContributor: boolean;
25
+ footnote: ContributorFootnote[];
16
26
  }
17
27
  export interface ContributorNode extends ManuscriptNode {
18
28
  attrs: Attrs;
@@ -17,6 +17,7 @@ import { NodeSpec } from 'prosemirror-model';
17
17
  import { ManuscriptNode } from '../types';
18
18
  interface Attrs {
19
19
  id: string;
20
+ type: string;
20
21
  }
21
22
  export interface KeywordGroupNode extends ManuscriptNode {
22
23
  attrs: Attrs;
@@ -15,6 +15,9 @@
15
15
  */
16
16
  import { ObjectTypes } from '@manuscripts/json-schema';
17
17
  import { ManuscriptNodeType } from '../schema';
18
- import { ExtraObjectTypes } from './object-types';
19
- export declare const generateNodeID: (type: ManuscriptNodeType) => string;
18
+ export declare enum ExtraObjectTypes {
19
+ PlaceholderElement = "MPPlaceholderElement",
20
+ GeneralTableFootnote = "MPGeneralTableFootnote"
21
+ }
20
22
  export declare const generateID: (objectType: ObjectTypes | ExtraObjectTypes) => string;
23
+ export declare const generateNodeID: (type: ManuscriptNodeType) => string;
@@ -13,24 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export * from './builders';
17
- export * from './decode';
18
- export * from './document-object-types';
19
- export * from './encode';
20
- export * from './filename';
21
- export * from './highlight-markers';
22
- export * from './html';
23
16
  export * from './id';
24
- export * from './labels';
25
- export * from './manuscript-dependencies';
26
- export * from './models';
27
17
  export * from './node-names';
28
18
  export * from './node-title';
29
19
  export * from './node-types';
30
- export * from './object-types';
31
- export * from './project-bundle';
32
20
  export * from './section-category';
33
- export * from './serializer';
34
- export * from './timestamp';
35
- export * from './update-identifiers';
36
- export { createTestDoc } from './__tests__/__helpers__/doc';
@@ -1 +1 @@
1
- export declare const VERSION = "2.3.36";
1
+ export declare const VERSION = "2.3.37-LEAN-3911.1";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@manuscripts/transform",
3
3
  "description": "ProseMirror transformer for Manuscripts applications",
4
- "version": "2.3.36",
4
+ "version": "2.3.37-LEAN-3911.1",
5
5
  "repository": "github:Atypon-OpenSource/manuscripts-transform",
6
6
  "license": "Apache-2.0",
7
7
  "main": "dist/cjs",
@@ -38,6 +38,7 @@
38
38
  "mime": "^3.0.0",
39
39
  "prosemirror-model": "^1.18.3",
40
40
  "prosemirror-tables": "^1.3.5",
41
+ "prosemirror-utils": "^1.2.2",
41
42
  "semver": "^7.6.2",
42
43
  "uuid": "^9.0.0",
43
44
  "w3c-xmlserializer": "^4.0.0"
@@ -82,4 +83,4 @@
82
83
  "rimraf": "^3.0.2",
83
84
  "typescript": "^4.0.5"
84
85
  }
85
- }
86
+ }