pro-editor-schema 0.1.15 → 0.1.16
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/index.d.mts +4 -5
- package/dist/index.d.ts +4 -5
- package/dist/index.js +29 -50
- package/dist/index.mjs +29 -49
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -457,19 +457,18 @@ type ValidationError = {
|
|
|
457
457
|
description: string;
|
|
458
458
|
};
|
|
459
459
|
|
|
460
|
-
declare const validateElement: (element: Element, root: Element,
|
|
461
|
-
declare const validateXml: (xml: Element | HTMLElement,
|
|
460
|
+
declare const validateElement: (element: Element, root: Element, elementsLinkedTo?: readonly string[]) => ValidationError[];
|
|
461
|
+
declare const validateXml: (xml: Element | HTMLElement, elementsLinkedTo?: readonly string[]) => ValidationError[];
|
|
462
462
|
|
|
463
463
|
declare const validateFootnoteCue: (footnoteElement: Element, root: Element) => ValidationError[];
|
|
464
464
|
declare const validateConsecutiveFootnotes: (root: Element) => ValidationError[];
|
|
465
465
|
declare const validateConsecutiveFootnoteCues: (root: Element) => ValidationError[];
|
|
466
466
|
declare const validateFootnotes: (root: Element) => ValidationError[];
|
|
467
467
|
|
|
468
|
-
declare const validateLinkend: (linkElement: Element,
|
|
469
|
-
declare const validateLinkends: (root: Element, referenceChapterLinkends?: readonly string[]) => ValidationError[];
|
|
468
|
+
declare const validateLinkend: (linkElement: Element, elementsLinkedTo?: readonly string[]) => ValidationError[];
|
|
470
469
|
|
|
471
470
|
declare const validateAttributes: (element: Element, schema: Schema) => ValidationError[];
|
|
472
471
|
|
|
473
472
|
declare const validateElementAgainstSchema: (element: Element, schema: Schema) => ValidationError[];
|
|
474
473
|
|
|
475
|
-
export { ABSTRACT_SCHEMA, ABSTRACT_TAG, AFFILIATION_SCHEMA, AFFILIATION_TAG, ALIGNMENT_ATTRIBUTE, ALTTEXT_SCHEMA, ALTTEXT_TAG, APPENDIX_SCHEMA, APPENDIX_TAG, ATOM_SCHEMAS, AUTHORGROUP_SCHEMA, AUTHORGROUP_TAG, AUTHOR_SCHEMA, AUTHOR_TAG, type AllowedChildren, type AttributeDefinition, BLOCKQUOTE_SCHEMA, BLOCKQUOTE_TAG, BOX_SCHEMA, B_SCHEMA, CAPTION_SCHEMA, CAPTION_TAG, CHAPTER_SCHEMA, CHAPTER_TAG, COMMENT_QUERY_SECTION_SCHEMA, COMMENT_SCHEMA, CONTENT_SCHEMA, DEGREES_SCHEMA, DEGREES_TAG, DELETION_SCHEMA, DIALOGUE_SCHEMA, DIALOGUE_TAG, ELEMENT_SCHEMAS, ELEMENT_TAGS, ELE_ID_ATTRIBUTE, EMAIL_SCHEMA, EMAIL_TAG, EMPHASIS_SCHEMA, EPIGRAPH_SCHEMA, EPIGRAPH_TAG, EQUATION_SCHEMA, EQUATION_TAG, FIGNOTE_SCHEMA, FIGNOTE_TAG, FIGSOURCE_SCHEMA, FIGSOURCE_TAG, FIGURE_PLACEMENT_ATTRIBUTE, FIGURE_SCHEMA, FIGURE_TAG, FIRSTNAME_SCHEMA, FIRSTNAME_TAG, FOOTNOTE_LINK_SCHEMA, FOOTNOTE_LINK_TAG, FOOTNOTE_NUMBER_SCHEMA, FOOTNOTE_NUMBER_TAG, FOOTNOTE_SCHEMA, FOOTNOTE_SECTION_SCHEMA, FOOTNOTE_TAG, type FreeAttribute, GROUP_ELEMENTS_TAGS, GROUP_ELEMENT_SCHEMAS, HEADING_SCHEMA, HIGHLIGHTMARK_SCHEMA, HONORIFIC_SCHEMA, HONORIFIC_TAG, HTML_TABLE_SCHEMA, HTML_TABLE_TAG, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, IMAGEOBJECT_SCHEMA, IMAGEOBJECT_TAG, IMG_SCHEMA, IMG_TAG, INDENT_TYPE_ATTRIBUTE, INFORMALFIGURE_SCHEMA, INFORMALFIGURE_TAG, INFO_SCHEMA, INFO_TAG, INLINEEQUATION_SCHEMA, INLINEEQUATION_TAG, INLINE_ELEMENT_SCHEMAS, INLINE_ELEMENT_TAGS_ALLOWED_CHILDREN, INSERTION_SCHEMA, I_SCHEMA, KEYWORDSET_SCHEMA, KEYWORDSET_TAG, KEYWORD_SCHEMA, KEYWORD_TAG, LABEL_SCHEMA, LABEL_TAG, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, LINE_SCHEMA, LINE_TAG, LINK_SCHEMA, LINK_TAG, LI_SCHEMA, LI_TAG, LRH_SCHEMA, LRH_TAG, MEDIAOBJECT_SCHEMA, MEDIAOBJECT_TAG, OLINK_SCHEMA, OLINK_TAG, OL_SCHEMA, OL_TAG, ORGNAME_SCHEMA, ORGNAME_TAG, ORG_SCHEMA, ORG_TAG, ORIENTATION_ATTRIBUTE, PARA_SCHEMA, PARA_TAG, PERSONNAME_SCHEMA, PERSONNAME_TAG, PLACEMENT_ATTRIBUTE, POEM_SCHEMA, POEM_TAG, POSTNOMINALS_TAG, PUNC_SCHEMA, PUNC_TAG, QUERY_SCHEMA, REPLY_SCHEMA, RIGHT_INDENT_ATTRIBUTE, RRH_SCHEMA, RRH_TAG, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SC_SCHEMA, SECTION_TAG, SIDEBAR_TAG, SOURCE_SCHEMA, SOURCE_TAG, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPEAKER_SCHEMA, SPEAKER_TAG, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STRIKE_SCHEMA, STYLE_NAME_ATTRIBUTE, SUBTITLE_SCHEMA, SUBTITLE_TAG, SUB_SCHEMA, SUP_SCHEMA, SURNAME_SCHEMA, SURNAME_TAG, type Schema, type SchemaCode, type SchemaKind, TABLE_SCHEMA, TABLE_TAG, TAG_SCHEMA, TAG_TAG, TBLFN_SCHEMA, TBLFN_TAG, TBLSOURCE_SCHEMA, TBLSOURCE_TAG, TBODY_SCHEMA, TBODY_TAG, TD_SCHEMA, TD_TAG, TGROUP_SCHEMA, TGROUP_TAG, THEAD_SCHEMA, THEAD_TAG, TITLE_SCHEMA, TITLE_TAG, TOKEN_SCHEMA, TOKEN_TAG, TP_SCHEMA, TP_TAG, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, TR_SCHEMA, TR_TAG, UL_SCHEMA, UL_TAG, URI_SCHEMA, URI_TAG, U_SCHEMA, type ValidationError, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateAttributes, validateConsecutiveFootnoteCues, validateConsecutiveFootnotes, validateElement, validateElementAgainstSchema, validateFootnoteCue, validateFootnotes, validateLinkend,
|
|
474
|
+
export { ABSTRACT_SCHEMA, ABSTRACT_TAG, AFFILIATION_SCHEMA, AFFILIATION_TAG, ALIGNMENT_ATTRIBUTE, ALTTEXT_SCHEMA, ALTTEXT_TAG, APPENDIX_SCHEMA, APPENDIX_TAG, ATOM_SCHEMAS, AUTHORGROUP_SCHEMA, AUTHORGROUP_TAG, AUTHOR_SCHEMA, AUTHOR_TAG, type AllowedChildren, type AttributeDefinition, BLOCKQUOTE_SCHEMA, BLOCKQUOTE_TAG, BOX_SCHEMA, B_SCHEMA, CAPTION_SCHEMA, CAPTION_TAG, CHAPTER_SCHEMA, CHAPTER_TAG, COMMENT_QUERY_SECTION_SCHEMA, COMMENT_SCHEMA, CONTENT_SCHEMA, DEGREES_SCHEMA, DEGREES_TAG, DELETION_SCHEMA, DIALOGUE_SCHEMA, DIALOGUE_TAG, ELEMENT_SCHEMAS, ELEMENT_TAGS, ELE_ID_ATTRIBUTE, EMAIL_SCHEMA, EMAIL_TAG, EMPHASIS_SCHEMA, EPIGRAPH_SCHEMA, EPIGRAPH_TAG, EQUATION_SCHEMA, EQUATION_TAG, FIGNOTE_SCHEMA, FIGNOTE_TAG, FIGSOURCE_SCHEMA, FIGSOURCE_TAG, FIGURE_PLACEMENT_ATTRIBUTE, FIGURE_SCHEMA, FIGURE_TAG, FIRSTNAME_SCHEMA, FIRSTNAME_TAG, FOOTNOTE_LINK_SCHEMA, FOOTNOTE_LINK_TAG, FOOTNOTE_NUMBER_SCHEMA, FOOTNOTE_NUMBER_TAG, FOOTNOTE_SCHEMA, FOOTNOTE_SECTION_SCHEMA, FOOTNOTE_TAG, type FreeAttribute, GROUP_ELEMENTS_TAGS, GROUP_ELEMENT_SCHEMAS, HEADING_SCHEMA, HIGHLIGHTMARK_SCHEMA, HONORIFIC_SCHEMA, HONORIFIC_TAG, HTML_TABLE_SCHEMA, HTML_TABLE_TAG, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, IMAGEOBJECT_SCHEMA, IMAGEOBJECT_TAG, IMG_SCHEMA, IMG_TAG, INDENT_TYPE_ATTRIBUTE, INFORMALFIGURE_SCHEMA, INFORMALFIGURE_TAG, INFO_SCHEMA, INFO_TAG, INLINEEQUATION_SCHEMA, INLINEEQUATION_TAG, INLINE_ELEMENT_SCHEMAS, INLINE_ELEMENT_TAGS_ALLOWED_CHILDREN, INSERTION_SCHEMA, I_SCHEMA, KEYWORDSET_SCHEMA, KEYWORDSET_TAG, KEYWORD_SCHEMA, KEYWORD_TAG, LABEL_SCHEMA, LABEL_TAG, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, LINE_SCHEMA, LINE_TAG, LINK_SCHEMA, LINK_TAG, LI_SCHEMA, LI_TAG, LRH_SCHEMA, LRH_TAG, MEDIAOBJECT_SCHEMA, MEDIAOBJECT_TAG, OLINK_SCHEMA, OLINK_TAG, OL_SCHEMA, OL_TAG, ORGNAME_SCHEMA, ORGNAME_TAG, ORG_SCHEMA, ORG_TAG, ORIENTATION_ATTRIBUTE, PARA_SCHEMA, PARA_TAG, PERSONNAME_SCHEMA, PERSONNAME_TAG, PLACEMENT_ATTRIBUTE, POEM_SCHEMA, POEM_TAG, POSTNOMINALS_TAG, PUNC_SCHEMA, PUNC_TAG, QUERY_SCHEMA, REPLY_SCHEMA, RIGHT_INDENT_ATTRIBUTE, RRH_SCHEMA, RRH_TAG, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SC_SCHEMA, SECTION_TAG, SIDEBAR_TAG, SOURCE_SCHEMA, SOURCE_TAG, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPEAKER_SCHEMA, SPEAKER_TAG, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STRIKE_SCHEMA, STYLE_NAME_ATTRIBUTE, SUBTITLE_SCHEMA, SUBTITLE_TAG, SUB_SCHEMA, SUP_SCHEMA, SURNAME_SCHEMA, SURNAME_TAG, type Schema, type SchemaCode, type SchemaKind, TABLE_SCHEMA, TABLE_TAG, TAG_SCHEMA, TAG_TAG, TBLFN_SCHEMA, TBLFN_TAG, TBLSOURCE_SCHEMA, TBLSOURCE_TAG, TBODY_SCHEMA, TBODY_TAG, TD_SCHEMA, TD_TAG, TGROUP_SCHEMA, TGROUP_TAG, THEAD_SCHEMA, THEAD_TAG, TITLE_SCHEMA, TITLE_TAG, TOKEN_SCHEMA, TOKEN_TAG, TP_SCHEMA, TP_TAG, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, TR_SCHEMA, TR_TAG, UL_SCHEMA, UL_TAG, URI_SCHEMA, URI_TAG, U_SCHEMA, type ValidationError, type ValidationErrorKind, type ValidationErrorLevel, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateAttributes, validateConsecutiveFootnoteCues, validateConsecutiveFootnotes, validateElement, validateElementAgainstSchema, validateFootnoteCue, validateFootnotes, validateLinkend, validateXml };
|
package/dist/index.d.ts
CHANGED
|
@@ -457,19 +457,18 @@ type ValidationError = {
|
|
|
457
457
|
description: string;
|
|
458
458
|
};
|
|
459
459
|
|
|
460
|
-
declare const validateElement: (element: Element, root: Element,
|
|
461
|
-
declare const validateXml: (xml: Element | HTMLElement,
|
|
460
|
+
declare const validateElement: (element: Element, root: Element, elementsLinkedTo?: readonly string[]) => ValidationError[];
|
|
461
|
+
declare const validateXml: (xml: Element | HTMLElement, elementsLinkedTo?: readonly string[]) => ValidationError[];
|
|
462
462
|
|
|
463
463
|
declare const validateFootnoteCue: (footnoteElement: Element, root: Element) => ValidationError[];
|
|
464
464
|
declare const validateConsecutiveFootnotes: (root: Element) => ValidationError[];
|
|
465
465
|
declare const validateConsecutiveFootnoteCues: (root: Element) => ValidationError[];
|
|
466
466
|
declare const validateFootnotes: (root: Element) => ValidationError[];
|
|
467
467
|
|
|
468
|
-
declare const validateLinkend: (linkElement: Element,
|
|
469
|
-
declare const validateLinkends: (root: Element, referenceChapterLinkends?: readonly string[]) => ValidationError[];
|
|
468
|
+
declare const validateLinkend: (linkElement: Element, elementsLinkedTo?: readonly string[]) => ValidationError[];
|
|
470
469
|
|
|
471
470
|
declare const validateAttributes: (element: Element, schema: Schema) => ValidationError[];
|
|
472
471
|
|
|
473
472
|
declare const validateElementAgainstSchema: (element: Element, schema: Schema) => ValidationError[];
|
|
474
473
|
|
|
475
|
-
export { ABSTRACT_SCHEMA, ABSTRACT_TAG, AFFILIATION_SCHEMA, AFFILIATION_TAG, ALIGNMENT_ATTRIBUTE, ALTTEXT_SCHEMA, ALTTEXT_TAG, APPENDIX_SCHEMA, APPENDIX_TAG, ATOM_SCHEMAS, AUTHORGROUP_SCHEMA, AUTHORGROUP_TAG, AUTHOR_SCHEMA, AUTHOR_TAG, type AllowedChildren, type AttributeDefinition, BLOCKQUOTE_SCHEMA, BLOCKQUOTE_TAG, BOX_SCHEMA, B_SCHEMA, CAPTION_SCHEMA, CAPTION_TAG, CHAPTER_SCHEMA, CHAPTER_TAG, COMMENT_QUERY_SECTION_SCHEMA, COMMENT_SCHEMA, CONTENT_SCHEMA, DEGREES_SCHEMA, DEGREES_TAG, DELETION_SCHEMA, DIALOGUE_SCHEMA, DIALOGUE_TAG, ELEMENT_SCHEMAS, ELEMENT_TAGS, ELE_ID_ATTRIBUTE, EMAIL_SCHEMA, EMAIL_TAG, EMPHASIS_SCHEMA, EPIGRAPH_SCHEMA, EPIGRAPH_TAG, EQUATION_SCHEMA, EQUATION_TAG, FIGNOTE_SCHEMA, FIGNOTE_TAG, FIGSOURCE_SCHEMA, FIGSOURCE_TAG, FIGURE_PLACEMENT_ATTRIBUTE, FIGURE_SCHEMA, FIGURE_TAG, FIRSTNAME_SCHEMA, FIRSTNAME_TAG, FOOTNOTE_LINK_SCHEMA, FOOTNOTE_LINK_TAG, FOOTNOTE_NUMBER_SCHEMA, FOOTNOTE_NUMBER_TAG, FOOTNOTE_SCHEMA, FOOTNOTE_SECTION_SCHEMA, FOOTNOTE_TAG, type FreeAttribute, GROUP_ELEMENTS_TAGS, GROUP_ELEMENT_SCHEMAS, HEADING_SCHEMA, HIGHLIGHTMARK_SCHEMA, HONORIFIC_SCHEMA, HONORIFIC_TAG, HTML_TABLE_SCHEMA, HTML_TABLE_TAG, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, IMAGEOBJECT_SCHEMA, IMAGEOBJECT_TAG, IMG_SCHEMA, IMG_TAG, INDENT_TYPE_ATTRIBUTE, INFORMALFIGURE_SCHEMA, INFORMALFIGURE_TAG, INFO_SCHEMA, INFO_TAG, INLINEEQUATION_SCHEMA, INLINEEQUATION_TAG, INLINE_ELEMENT_SCHEMAS, INLINE_ELEMENT_TAGS_ALLOWED_CHILDREN, INSERTION_SCHEMA, I_SCHEMA, KEYWORDSET_SCHEMA, KEYWORDSET_TAG, KEYWORD_SCHEMA, KEYWORD_TAG, LABEL_SCHEMA, LABEL_TAG, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, LINE_SCHEMA, LINE_TAG, LINK_SCHEMA, LINK_TAG, LI_SCHEMA, LI_TAG, LRH_SCHEMA, LRH_TAG, MEDIAOBJECT_SCHEMA, MEDIAOBJECT_TAG, OLINK_SCHEMA, OLINK_TAG, OL_SCHEMA, OL_TAG, ORGNAME_SCHEMA, ORGNAME_TAG, ORG_SCHEMA, ORG_TAG, ORIENTATION_ATTRIBUTE, PARA_SCHEMA, PARA_TAG, PERSONNAME_SCHEMA, PERSONNAME_TAG, PLACEMENT_ATTRIBUTE, POEM_SCHEMA, POEM_TAG, POSTNOMINALS_TAG, PUNC_SCHEMA, PUNC_TAG, QUERY_SCHEMA, REPLY_SCHEMA, RIGHT_INDENT_ATTRIBUTE, RRH_SCHEMA, RRH_TAG, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SC_SCHEMA, SECTION_TAG, SIDEBAR_TAG, SOURCE_SCHEMA, SOURCE_TAG, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPEAKER_SCHEMA, SPEAKER_TAG, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STRIKE_SCHEMA, STYLE_NAME_ATTRIBUTE, SUBTITLE_SCHEMA, SUBTITLE_TAG, SUB_SCHEMA, SUP_SCHEMA, SURNAME_SCHEMA, SURNAME_TAG, type Schema, type SchemaCode, type SchemaKind, TABLE_SCHEMA, TABLE_TAG, TAG_SCHEMA, TAG_TAG, TBLFN_SCHEMA, TBLFN_TAG, TBLSOURCE_SCHEMA, TBLSOURCE_TAG, TBODY_SCHEMA, TBODY_TAG, TD_SCHEMA, TD_TAG, TGROUP_SCHEMA, TGROUP_TAG, THEAD_SCHEMA, THEAD_TAG, TITLE_SCHEMA, TITLE_TAG, TOKEN_SCHEMA, TOKEN_TAG, TP_SCHEMA, TP_TAG, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, TR_SCHEMA, TR_TAG, UL_SCHEMA, UL_TAG, URI_SCHEMA, URI_TAG, U_SCHEMA, type ValidationError, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateAttributes, validateConsecutiveFootnoteCues, validateConsecutiveFootnotes, validateElement, validateElementAgainstSchema, validateFootnoteCue, validateFootnotes, validateLinkend,
|
|
474
|
+
export { ABSTRACT_SCHEMA, ABSTRACT_TAG, AFFILIATION_SCHEMA, AFFILIATION_TAG, ALIGNMENT_ATTRIBUTE, ALTTEXT_SCHEMA, ALTTEXT_TAG, APPENDIX_SCHEMA, APPENDIX_TAG, ATOM_SCHEMAS, AUTHORGROUP_SCHEMA, AUTHORGROUP_TAG, AUTHOR_SCHEMA, AUTHOR_TAG, type AllowedChildren, type AttributeDefinition, BLOCKQUOTE_SCHEMA, BLOCKQUOTE_TAG, BOX_SCHEMA, B_SCHEMA, CAPTION_SCHEMA, CAPTION_TAG, CHAPTER_SCHEMA, CHAPTER_TAG, COMMENT_QUERY_SECTION_SCHEMA, COMMENT_SCHEMA, CONTENT_SCHEMA, DEGREES_SCHEMA, DEGREES_TAG, DELETION_SCHEMA, DIALOGUE_SCHEMA, DIALOGUE_TAG, ELEMENT_SCHEMAS, ELEMENT_TAGS, ELE_ID_ATTRIBUTE, EMAIL_SCHEMA, EMAIL_TAG, EMPHASIS_SCHEMA, EPIGRAPH_SCHEMA, EPIGRAPH_TAG, EQUATION_SCHEMA, EQUATION_TAG, FIGNOTE_SCHEMA, FIGNOTE_TAG, FIGSOURCE_SCHEMA, FIGSOURCE_TAG, FIGURE_PLACEMENT_ATTRIBUTE, FIGURE_SCHEMA, FIGURE_TAG, FIRSTNAME_SCHEMA, FIRSTNAME_TAG, FOOTNOTE_LINK_SCHEMA, FOOTNOTE_LINK_TAG, FOOTNOTE_NUMBER_SCHEMA, FOOTNOTE_NUMBER_TAG, FOOTNOTE_SCHEMA, FOOTNOTE_SECTION_SCHEMA, FOOTNOTE_TAG, type FreeAttribute, GROUP_ELEMENTS_TAGS, GROUP_ELEMENT_SCHEMAS, HEADING_SCHEMA, HIGHLIGHTMARK_SCHEMA, HONORIFIC_SCHEMA, HONORIFIC_TAG, HTML_TABLE_SCHEMA, HTML_TABLE_TAG, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, IMAGEOBJECT_SCHEMA, IMAGEOBJECT_TAG, IMG_SCHEMA, IMG_TAG, INDENT_TYPE_ATTRIBUTE, INFORMALFIGURE_SCHEMA, INFORMALFIGURE_TAG, INFO_SCHEMA, INFO_TAG, INLINEEQUATION_SCHEMA, INLINEEQUATION_TAG, INLINE_ELEMENT_SCHEMAS, INLINE_ELEMENT_TAGS_ALLOWED_CHILDREN, INSERTION_SCHEMA, I_SCHEMA, KEYWORDSET_SCHEMA, KEYWORDSET_TAG, KEYWORD_SCHEMA, KEYWORD_TAG, LABEL_SCHEMA, LABEL_TAG, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, LINE_SCHEMA, LINE_TAG, LINK_SCHEMA, LINK_TAG, LI_SCHEMA, LI_TAG, LRH_SCHEMA, LRH_TAG, MEDIAOBJECT_SCHEMA, MEDIAOBJECT_TAG, OLINK_SCHEMA, OLINK_TAG, OL_SCHEMA, OL_TAG, ORGNAME_SCHEMA, ORGNAME_TAG, ORG_SCHEMA, ORG_TAG, ORIENTATION_ATTRIBUTE, PARA_SCHEMA, PARA_TAG, PERSONNAME_SCHEMA, PERSONNAME_TAG, PLACEMENT_ATTRIBUTE, POEM_SCHEMA, POEM_TAG, POSTNOMINALS_TAG, PUNC_SCHEMA, PUNC_TAG, QUERY_SCHEMA, REPLY_SCHEMA, RIGHT_INDENT_ATTRIBUTE, RRH_SCHEMA, RRH_TAG, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SC_SCHEMA, SECTION_TAG, SIDEBAR_TAG, SOURCE_SCHEMA, SOURCE_TAG, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPEAKER_SCHEMA, SPEAKER_TAG, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STRIKE_SCHEMA, STYLE_NAME_ATTRIBUTE, SUBTITLE_SCHEMA, SUBTITLE_TAG, SUB_SCHEMA, SUP_SCHEMA, SURNAME_SCHEMA, SURNAME_TAG, type Schema, type SchemaCode, type SchemaKind, TABLE_SCHEMA, TABLE_TAG, TAG_SCHEMA, TAG_TAG, TBLFN_SCHEMA, TBLFN_TAG, TBLSOURCE_SCHEMA, TBLSOURCE_TAG, TBODY_SCHEMA, TBODY_TAG, TD_SCHEMA, TD_TAG, TGROUP_SCHEMA, TGROUP_TAG, THEAD_SCHEMA, THEAD_TAG, TITLE_SCHEMA, TITLE_TAG, TOKEN_SCHEMA, TOKEN_TAG, TP_SCHEMA, TP_TAG, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, TR_SCHEMA, TR_TAG, UL_SCHEMA, UL_TAG, URI_SCHEMA, URI_TAG, U_SCHEMA, type ValidationError, type ValidationErrorKind, type ValidationErrorLevel, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateAttributes, validateConsecutiveFootnoteCues, validateConsecutiveFootnotes, validateElement, validateElementAgainstSchema, validateFootnoteCue, validateFootnotes, validateLinkend, validateXml };
|
package/dist/index.js
CHANGED
|
@@ -218,7 +218,6 @@ __export(index_exports, {
|
|
|
218
218
|
validateFootnoteCue: () => validateFootnoteCue,
|
|
219
219
|
validateFootnotes: () => validateFootnotes,
|
|
220
220
|
validateLinkend: () => validateLinkend,
|
|
221
|
-
validateLinkends: () => validateLinkends,
|
|
222
221
|
validateXml: () => validateXml
|
|
223
222
|
});
|
|
224
223
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -1938,7 +1937,7 @@ var generateValidationIssueId = () => {
|
|
|
1938
1937
|
return `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
1939
1938
|
};
|
|
1940
1939
|
|
|
1941
|
-
// src/validation/addValidationIssue.ts
|
|
1940
|
+
// src/validation/utils/addValidationIssue.ts
|
|
1942
1941
|
var createValidationIssue = (issue) => ({
|
|
1943
1942
|
id: generateValidationIssueId(),
|
|
1944
1943
|
...issue
|
|
@@ -1946,6 +1945,9 @@ var createValidationIssue = (issue) => ({
|
|
|
1946
1945
|
var addValidationIssue = (errors, issue) => {
|
|
1947
1946
|
errors.push(createValidationIssue(issue));
|
|
1948
1947
|
};
|
|
1948
|
+
var getStore = (element) => {
|
|
1949
|
+
return element.getAttribute("store") || "";
|
|
1950
|
+
};
|
|
1949
1951
|
|
|
1950
1952
|
// src/validation/utils/retrieveTextIgnoringNodesWithSelector.ts
|
|
1951
1953
|
var retrieveTextIgnoringNodesWithSelector = (element, selector = ".del") => {
|
|
@@ -1968,10 +1970,6 @@ var extractFootnoteNumber = (footnote) => {
|
|
|
1968
1970
|
};
|
|
1969
1971
|
var validateFootnoteCue = (footnoteElement, root) => {
|
|
1970
1972
|
const errors = [];
|
|
1971
|
-
const store = footnoteElement.getAttribute("store");
|
|
1972
|
-
if (!store) {
|
|
1973
|
-
return errors;
|
|
1974
|
-
}
|
|
1975
1973
|
const linkend = footnoteElement.getAttribute("xmlid") || "";
|
|
1976
1974
|
const footnoteNumber = footnoteElement.querySelector(
|
|
1977
1975
|
FOOTNOTE_NUMBER_SCHEMA.tag
|
|
@@ -1984,7 +1982,7 @@ var validateFootnoteCue = (footnoteElement, root) => {
|
|
|
1984
1982
|
}
|
|
1985
1983
|
if (!footnoteNumber) {
|
|
1986
1984
|
addValidationIssue(errors, {
|
|
1987
|
-
store,
|
|
1985
|
+
store: getStore(footnoteElement),
|
|
1988
1986
|
title: "Footnote number missing",
|
|
1989
1987
|
kind: "missing",
|
|
1990
1988
|
description: "The footnote number is missing. Please add it to the footnote.",
|
|
@@ -1993,7 +1991,7 @@ var validateFootnoteCue = (footnoteElement, root) => {
|
|
|
1993
1991
|
}
|
|
1994
1992
|
const label = extractFootnoteNumber(footnoteNumber);
|
|
1995
1993
|
addValidationIssue(errors, {
|
|
1996
|
-
store,
|
|
1994
|
+
store: getStore(footnoteElement),
|
|
1997
1995
|
title: "Unreferenced footnote",
|
|
1998
1996
|
kind: "unlinked",
|
|
1999
1997
|
description: `The footnote ${label} is not referenced to any footnote cue in this chapter. Please reference it in the chapter.`,
|
|
@@ -2007,7 +2005,6 @@ var validateConsecutiveFootnotes = (root) => {
|
|
|
2007
2005
|
return [];
|
|
2008
2006
|
}
|
|
2009
2007
|
for (const [index, footnote] of footnotes.entries()) {
|
|
2010
|
-
const store = footnote.getAttribute("store") || "";
|
|
2011
2008
|
const expectedNumber = index + 1;
|
|
2012
2009
|
const footnoteNumberElement = footnote.querySelector(
|
|
2013
2010
|
FOOTNOTE_NUMBER_SCHEMA.tag
|
|
@@ -2021,7 +2018,7 @@ var validateConsecutiveFootnotes = (root) => {
|
|
|
2021
2018
|
}
|
|
2022
2019
|
return [
|
|
2023
2020
|
createValidationIssue({
|
|
2024
|
-
store,
|
|
2021
|
+
store: getStore(footnote),
|
|
2025
2022
|
title: "Non-consecutive footnote numbers",
|
|
2026
2023
|
kind: "missing",
|
|
2027
2024
|
description: "Footnote numbers must be consecutive. Please reorder the footnotes.",
|
|
@@ -2039,7 +2036,6 @@ var validateConsecutiveFootnoteCues = (root) => {
|
|
|
2039
2036
|
return [];
|
|
2040
2037
|
}
|
|
2041
2038
|
for (const [index, footnoteLink] of footnoteLinks.entries()) {
|
|
2042
|
-
const store = footnoteLink.getAttribute("store") || "";
|
|
2043
2039
|
const expectedNumber = index + 1;
|
|
2044
2040
|
const label = extractFootnoteNumber(footnoteLink);
|
|
2045
2041
|
if (label === expectedNumber) {
|
|
@@ -2047,7 +2043,7 @@ var validateConsecutiveFootnoteCues = (root) => {
|
|
|
2047
2043
|
}
|
|
2048
2044
|
return [
|
|
2049
2045
|
createValidationIssue({
|
|
2050
|
-
store,
|
|
2046
|
+
store: getStore(footnoteLink),
|
|
2051
2047
|
title: "Non-consecutive footnote cues",
|
|
2052
2048
|
kind: "missing",
|
|
2053
2049
|
description: "Footnote cues must be consecutive. Please reorder the footnote cues.",
|
|
@@ -2068,29 +2064,22 @@ var validateFootnotes = (root) => {
|
|
|
2068
2064
|
};
|
|
2069
2065
|
|
|
2070
2066
|
// src/validation/validateLinkend.ts
|
|
2071
|
-
var
|
|
2072
|
-
return
|
|
2073
|
-
};
|
|
2074
|
-
var findElementInReferenceChapters = (linkend, referenceChapterLinkends) => {
|
|
2075
|
-
return referenceChapterLinkends.includes(linkend);
|
|
2067
|
+
var findElementLinkedTo = (linkend, elementsLinkedTo) => {
|
|
2068
|
+
return elementsLinkedTo.includes(linkend);
|
|
2076
2069
|
};
|
|
2077
|
-
var validateLinkend = (linkElement,
|
|
2078
|
-
const store = linkElement.getAttribute("store");
|
|
2079
|
-
if (!store) {
|
|
2080
|
-
return [];
|
|
2081
|
-
}
|
|
2070
|
+
var validateLinkend = (linkElement, elementsLinkedTo = []) => {
|
|
2082
2071
|
const linkend = linkElement.getAttribute("linkend");
|
|
2083
2072
|
if (!linkend) {
|
|
2084
2073
|
return [];
|
|
2085
2074
|
}
|
|
2086
2075
|
const isLinkFootnoteCue = linkElement.tagName.toUpperCase() === FOOTNOTE_LINK_SCHEMA.tag;
|
|
2087
2076
|
if (isLinkFootnoteCue) {
|
|
2088
|
-
if (
|
|
2077
|
+
if (findElementLinkedTo(linkend, elementsLinkedTo)) {
|
|
2089
2078
|
return [];
|
|
2090
2079
|
}
|
|
2091
2080
|
return [
|
|
2092
2081
|
createValidationIssue({
|
|
2093
|
-
store,
|
|
2082
|
+
store: getStore(linkElement),
|
|
2094
2083
|
title: "Unlinked footnote cue",
|
|
2095
2084
|
kind: "unlinked",
|
|
2096
2085
|
description: "This footnote cue is not referenced to any footnote in this chapter. Please link it again manually.",
|
|
@@ -2098,12 +2087,12 @@ var validateLinkend = (linkElement, root, referenceChapterLinkends = []) => {
|
|
|
2098
2087
|
})
|
|
2099
2088
|
];
|
|
2100
2089
|
}
|
|
2101
|
-
if (
|
|
2090
|
+
if (findElementLinkedTo(linkend, elementsLinkedTo)) {
|
|
2102
2091
|
return [];
|
|
2103
2092
|
}
|
|
2104
2093
|
return [
|
|
2105
2094
|
createValidationIssue({
|
|
2106
|
-
store,
|
|
2095
|
+
store: getStore(linkElement),
|
|
2107
2096
|
title: "Unlinked element",
|
|
2108
2097
|
kind: "unlinked",
|
|
2109
2098
|
description: "This link is not referenced to any element in the current chapter or reference chapters. Please link it again manually.",
|
|
@@ -2111,15 +2100,6 @@ var validateLinkend = (linkElement, root, referenceChapterLinkends = []) => {
|
|
|
2111
2100
|
})
|
|
2112
2101
|
];
|
|
2113
2102
|
};
|
|
2114
|
-
var validateLinkends = (root, referenceChapterLinkends = []) => {
|
|
2115
|
-
const errors = [];
|
|
2116
|
-
for (const linkElement of root.querySelectorAll("[linkend]")) {
|
|
2117
|
-
errors.push(
|
|
2118
|
-
...validateLinkend(linkElement, root, referenceChapterLinkends)
|
|
2119
|
-
);
|
|
2120
|
-
}
|
|
2121
|
-
return errors;
|
|
2122
|
-
};
|
|
2123
2103
|
|
|
2124
2104
|
// src/validation/validateAttributes.ts
|
|
2125
2105
|
var validateAttributes = (element, schema) => {
|
|
@@ -2132,7 +2112,7 @@ var validateAttributes = (element, schema) => {
|
|
|
2132
2112
|
const name = getAttributeName(attribute);
|
|
2133
2113
|
if (!element.hasAttribute(name)) {
|
|
2134
2114
|
addValidationIssue(errors, {
|
|
2135
|
-
store: element
|
|
2115
|
+
store: getStore(element),
|
|
2136
2116
|
title: `Missing required attribute "${name}"`,
|
|
2137
2117
|
level: "warning",
|
|
2138
2118
|
kind: "missing",
|
|
@@ -2180,7 +2160,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
2180
2160
|
const errors = [];
|
|
2181
2161
|
if (element.tagName.toUpperCase() !== schema.tag) {
|
|
2182
2162
|
addValidationIssue(errors, {
|
|
2183
|
-
store: element
|
|
2163
|
+
store: getStore(element),
|
|
2184
2164
|
title: `Expected ${schema.tag}, got ${element.tagName}`,
|
|
2185
2165
|
level: "warning",
|
|
2186
2166
|
kind: "forbidden",
|
|
@@ -2189,7 +2169,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
2189
2169
|
}
|
|
2190
2170
|
if (schema.code === "insertion" && !element.classList.contains("ins")) {
|
|
2191
2171
|
addValidationIssue(errors, {
|
|
2192
|
-
store: element
|
|
2172
|
+
store: getStore(element),
|
|
2193
2173
|
title: 'Missing class "ins" for insertion element',
|
|
2194
2174
|
level: "warning",
|
|
2195
2175
|
kind: "missing",
|
|
@@ -2198,7 +2178,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
2198
2178
|
}
|
|
2199
2179
|
if (schema.code === "deletion" && !element.classList.contains("del")) {
|
|
2200
2180
|
addValidationIssue(errors, {
|
|
2201
|
-
store: element
|
|
2181
|
+
store: getStore(element),
|
|
2202
2182
|
title: 'Missing class "del" for deletion element',
|
|
2203
2183
|
level: "warning",
|
|
2204
2184
|
kind: "missing",
|
|
@@ -2207,7 +2187,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
2207
2187
|
}
|
|
2208
2188
|
if (schema.code === "commentQuerySection" && !element.classList.contains("cmtQurySection")) {
|
|
2209
2189
|
addValidationIssue(errors, {
|
|
2210
|
-
store: element
|
|
2190
|
+
store: getStore(element),
|
|
2211
2191
|
title: 'Missing class "cmtQurySection" for comment query section',
|
|
2212
2192
|
level: "warning",
|
|
2213
2193
|
kind: "missing",
|
|
@@ -2231,7 +2211,7 @@ var validateChildren = (element, schema) => {
|
|
|
2231
2211
|
);
|
|
2232
2212
|
if (!allowedChild) {
|
|
2233
2213
|
addValidationIssue(errors, {
|
|
2234
|
-
store: child
|
|
2214
|
+
store: getStore(child),
|
|
2235
2215
|
title: `Forbidden child element ${child.tagName}`,
|
|
2236
2216
|
level: "warning",
|
|
2237
2217
|
kind: "forbidden",
|
|
@@ -2242,7 +2222,7 @@ var validateChildren = (element, schema) => {
|
|
|
2242
2222
|
const childSchema = findSchemaByElement(child);
|
|
2243
2223
|
if (!childSchema) {
|
|
2244
2224
|
addValidationIssue(errors, {
|
|
2245
|
-
store: child
|
|
2225
|
+
store: getStore(child),
|
|
2246
2226
|
title: `No schema found for child element ${child.tagName}`,
|
|
2247
2227
|
level: "warning",
|
|
2248
2228
|
kind: "missing",
|
|
@@ -2261,7 +2241,7 @@ var validateChildren = (element, schema) => {
|
|
|
2261
2241
|
);
|
|
2262
2242
|
if (!hasChild) {
|
|
2263
2243
|
addValidationIssue(errors, {
|
|
2264
|
-
store: element
|
|
2244
|
+
store: getStore(element),
|
|
2265
2245
|
title: `Missing required child element ${allowedChild.tagName}`,
|
|
2266
2246
|
level: "warning",
|
|
2267
2247
|
kind: "missing",
|
|
@@ -2271,7 +2251,7 @@ var validateChildren = (element, schema) => {
|
|
|
2271
2251
|
}
|
|
2272
2252
|
if (schema.allowedChildTagNames.size === 0 && childElements.length > 0) {
|
|
2273
2253
|
addValidationIssue(errors, {
|
|
2274
|
-
store: element
|
|
2254
|
+
store: getStore(element),
|
|
2275
2255
|
title: "Leaf element cannot contain child elements",
|
|
2276
2256
|
level: "warning",
|
|
2277
2257
|
kind: "forbidden",
|
|
@@ -2295,7 +2275,7 @@ var getLinkableRoles = () => {
|
|
|
2295
2275
|
}
|
|
2296
2276
|
return [];
|
|
2297
2277
|
};
|
|
2298
|
-
var validateElement = (element, root,
|
|
2278
|
+
var validateElement = (element, root, elementsLinkedTo) => {
|
|
2299
2279
|
if (isIgnoredElement(element)) {
|
|
2300
2280
|
return [];
|
|
2301
2281
|
}
|
|
@@ -2306,23 +2286,23 @@ var validateElement = (element, root, referenceChapterLinkends) => {
|
|
|
2306
2286
|
const role = element.getAttribute("role") || "";
|
|
2307
2287
|
const linkableRoles = getLinkableRoles();
|
|
2308
2288
|
if (schema.tag === LINK_SCHEMA.tag && linkableRoles.includes(role) || schema.tag === FOOTNOTE_LINK_SCHEMA.tag) {
|
|
2309
|
-
errors.push(...validateLinkend(element,
|
|
2289
|
+
errors.push(...validateLinkend(element, elementsLinkedTo));
|
|
2310
2290
|
}
|
|
2311
2291
|
if (schema.tag === FOOTNOTE_SCHEMA.tag) {
|
|
2312
2292
|
errors.push(...validateFootnoteCue(element, root));
|
|
2313
2293
|
}
|
|
2314
2294
|
}
|
|
2315
2295
|
for (const child of Array.from(element.children)) {
|
|
2316
|
-
errors.push(...validateElement(child, root,
|
|
2296
|
+
errors.push(...validateElement(child, root, elementsLinkedTo));
|
|
2317
2297
|
}
|
|
2318
2298
|
return errors;
|
|
2319
2299
|
};
|
|
2320
|
-
var validateXml = (xml,
|
|
2300
|
+
var validateXml = (xml, elementsLinkedTo) => {
|
|
2321
2301
|
const errors = [];
|
|
2322
2302
|
errors.push(...validateConsecutiveFootnotes(xml));
|
|
2323
2303
|
errors.push(...validateConsecutiveFootnoteCues(xml));
|
|
2324
2304
|
for (const child of Array.from(xml.children)) {
|
|
2325
|
-
errors.push(...validateElement(child, xml,
|
|
2305
|
+
errors.push(...validateElement(child, xml, elementsLinkedTo));
|
|
2326
2306
|
}
|
|
2327
2307
|
return errors;
|
|
2328
2308
|
};
|
|
@@ -2526,6 +2506,5 @@ var validateXml = (xml, referenceChapterLinkends) => {
|
|
|
2526
2506
|
validateFootnoteCue,
|
|
2527
2507
|
validateFootnotes,
|
|
2528
2508
|
validateLinkend,
|
|
2529
|
-
validateLinkends,
|
|
2530
2509
|
validateXml
|
|
2531
2510
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1713,7 +1713,7 @@ var generateValidationIssueId = () => {
|
|
|
1713
1713
|
return `${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
1714
1714
|
};
|
|
1715
1715
|
|
|
1716
|
-
// src/validation/addValidationIssue.ts
|
|
1716
|
+
// src/validation/utils/addValidationIssue.ts
|
|
1717
1717
|
var createValidationIssue = (issue) => ({
|
|
1718
1718
|
id: generateValidationIssueId(),
|
|
1719
1719
|
...issue
|
|
@@ -1721,6 +1721,9 @@ var createValidationIssue = (issue) => ({
|
|
|
1721
1721
|
var addValidationIssue = (errors, issue) => {
|
|
1722
1722
|
errors.push(createValidationIssue(issue));
|
|
1723
1723
|
};
|
|
1724
|
+
var getStore = (element) => {
|
|
1725
|
+
return element.getAttribute("store") || "";
|
|
1726
|
+
};
|
|
1724
1727
|
|
|
1725
1728
|
// src/validation/utils/retrieveTextIgnoringNodesWithSelector.ts
|
|
1726
1729
|
var retrieveTextIgnoringNodesWithSelector = (element, selector = ".del") => {
|
|
@@ -1743,10 +1746,6 @@ var extractFootnoteNumber = (footnote) => {
|
|
|
1743
1746
|
};
|
|
1744
1747
|
var validateFootnoteCue = (footnoteElement, root) => {
|
|
1745
1748
|
const errors = [];
|
|
1746
|
-
const store = footnoteElement.getAttribute("store");
|
|
1747
|
-
if (!store) {
|
|
1748
|
-
return errors;
|
|
1749
|
-
}
|
|
1750
1749
|
const linkend = footnoteElement.getAttribute("xmlid") || "";
|
|
1751
1750
|
const footnoteNumber = footnoteElement.querySelector(
|
|
1752
1751
|
FOOTNOTE_NUMBER_SCHEMA.tag
|
|
@@ -1759,7 +1758,7 @@ var validateFootnoteCue = (footnoteElement, root) => {
|
|
|
1759
1758
|
}
|
|
1760
1759
|
if (!footnoteNumber) {
|
|
1761
1760
|
addValidationIssue(errors, {
|
|
1762
|
-
store,
|
|
1761
|
+
store: getStore(footnoteElement),
|
|
1763
1762
|
title: "Footnote number missing",
|
|
1764
1763
|
kind: "missing",
|
|
1765
1764
|
description: "The footnote number is missing. Please add it to the footnote.",
|
|
@@ -1768,7 +1767,7 @@ var validateFootnoteCue = (footnoteElement, root) => {
|
|
|
1768
1767
|
}
|
|
1769
1768
|
const label = extractFootnoteNumber(footnoteNumber);
|
|
1770
1769
|
addValidationIssue(errors, {
|
|
1771
|
-
store,
|
|
1770
|
+
store: getStore(footnoteElement),
|
|
1772
1771
|
title: "Unreferenced footnote",
|
|
1773
1772
|
kind: "unlinked",
|
|
1774
1773
|
description: `The footnote ${label} is not referenced to any footnote cue in this chapter. Please reference it in the chapter.`,
|
|
@@ -1782,7 +1781,6 @@ var validateConsecutiveFootnotes = (root) => {
|
|
|
1782
1781
|
return [];
|
|
1783
1782
|
}
|
|
1784
1783
|
for (const [index, footnote] of footnotes.entries()) {
|
|
1785
|
-
const store = footnote.getAttribute("store") || "";
|
|
1786
1784
|
const expectedNumber = index + 1;
|
|
1787
1785
|
const footnoteNumberElement = footnote.querySelector(
|
|
1788
1786
|
FOOTNOTE_NUMBER_SCHEMA.tag
|
|
@@ -1796,7 +1794,7 @@ var validateConsecutiveFootnotes = (root) => {
|
|
|
1796
1794
|
}
|
|
1797
1795
|
return [
|
|
1798
1796
|
createValidationIssue({
|
|
1799
|
-
store,
|
|
1797
|
+
store: getStore(footnote),
|
|
1800
1798
|
title: "Non-consecutive footnote numbers",
|
|
1801
1799
|
kind: "missing",
|
|
1802
1800
|
description: "Footnote numbers must be consecutive. Please reorder the footnotes.",
|
|
@@ -1814,7 +1812,6 @@ var validateConsecutiveFootnoteCues = (root) => {
|
|
|
1814
1812
|
return [];
|
|
1815
1813
|
}
|
|
1816
1814
|
for (const [index, footnoteLink] of footnoteLinks.entries()) {
|
|
1817
|
-
const store = footnoteLink.getAttribute("store") || "";
|
|
1818
1815
|
const expectedNumber = index + 1;
|
|
1819
1816
|
const label = extractFootnoteNumber(footnoteLink);
|
|
1820
1817
|
if (label === expectedNumber) {
|
|
@@ -1822,7 +1819,7 @@ var validateConsecutiveFootnoteCues = (root) => {
|
|
|
1822
1819
|
}
|
|
1823
1820
|
return [
|
|
1824
1821
|
createValidationIssue({
|
|
1825
|
-
store,
|
|
1822
|
+
store: getStore(footnoteLink),
|
|
1826
1823
|
title: "Non-consecutive footnote cues",
|
|
1827
1824
|
kind: "missing",
|
|
1828
1825
|
description: "Footnote cues must be consecutive. Please reorder the footnote cues.",
|
|
@@ -1843,29 +1840,22 @@ var validateFootnotes = (root) => {
|
|
|
1843
1840
|
};
|
|
1844
1841
|
|
|
1845
1842
|
// src/validation/validateLinkend.ts
|
|
1846
|
-
var
|
|
1847
|
-
return
|
|
1848
|
-
};
|
|
1849
|
-
var findElementInReferenceChapters = (linkend, referenceChapterLinkends) => {
|
|
1850
|
-
return referenceChapterLinkends.includes(linkend);
|
|
1843
|
+
var findElementLinkedTo = (linkend, elementsLinkedTo) => {
|
|
1844
|
+
return elementsLinkedTo.includes(linkend);
|
|
1851
1845
|
};
|
|
1852
|
-
var validateLinkend = (linkElement,
|
|
1853
|
-
const store = linkElement.getAttribute("store");
|
|
1854
|
-
if (!store) {
|
|
1855
|
-
return [];
|
|
1856
|
-
}
|
|
1846
|
+
var validateLinkend = (linkElement, elementsLinkedTo = []) => {
|
|
1857
1847
|
const linkend = linkElement.getAttribute("linkend");
|
|
1858
1848
|
if (!linkend) {
|
|
1859
1849
|
return [];
|
|
1860
1850
|
}
|
|
1861
1851
|
const isLinkFootnoteCue = linkElement.tagName.toUpperCase() === FOOTNOTE_LINK_SCHEMA.tag;
|
|
1862
1852
|
if (isLinkFootnoteCue) {
|
|
1863
|
-
if (
|
|
1853
|
+
if (findElementLinkedTo(linkend, elementsLinkedTo)) {
|
|
1864
1854
|
return [];
|
|
1865
1855
|
}
|
|
1866
1856
|
return [
|
|
1867
1857
|
createValidationIssue({
|
|
1868
|
-
store,
|
|
1858
|
+
store: getStore(linkElement),
|
|
1869
1859
|
title: "Unlinked footnote cue",
|
|
1870
1860
|
kind: "unlinked",
|
|
1871
1861
|
description: "This footnote cue is not referenced to any footnote in this chapter. Please link it again manually.",
|
|
@@ -1873,12 +1863,12 @@ var validateLinkend = (linkElement, root, referenceChapterLinkends = []) => {
|
|
|
1873
1863
|
})
|
|
1874
1864
|
];
|
|
1875
1865
|
}
|
|
1876
|
-
if (
|
|
1866
|
+
if (findElementLinkedTo(linkend, elementsLinkedTo)) {
|
|
1877
1867
|
return [];
|
|
1878
1868
|
}
|
|
1879
1869
|
return [
|
|
1880
1870
|
createValidationIssue({
|
|
1881
|
-
store,
|
|
1871
|
+
store: getStore(linkElement),
|
|
1882
1872
|
title: "Unlinked element",
|
|
1883
1873
|
kind: "unlinked",
|
|
1884
1874
|
description: "This link is not referenced to any element in the current chapter or reference chapters. Please link it again manually.",
|
|
@@ -1886,15 +1876,6 @@ var validateLinkend = (linkElement, root, referenceChapterLinkends = []) => {
|
|
|
1886
1876
|
})
|
|
1887
1877
|
];
|
|
1888
1878
|
};
|
|
1889
|
-
var validateLinkends = (root, referenceChapterLinkends = []) => {
|
|
1890
|
-
const errors = [];
|
|
1891
|
-
for (const linkElement of root.querySelectorAll("[linkend]")) {
|
|
1892
|
-
errors.push(
|
|
1893
|
-
...validateLinkend(linkElement, root, referenceChapterLinkends)
|
|
1894
|
-
);
|
|
1895
|
-
}
|
|
1896
|
-
return errors;
|
|
1897
|
-
};
|
|
1898
1879
|
|
|
1899
1880
|
// src/validation/validateAttributes.ts
|
|
1900
1881
|
var validateAttributes = (element, schema) => {
|
|
@@ -1907,7 +1888,7 @@ var validateAttributes = (element, schema) => {
|
|
|
1907
1888
|
const name = getAttributeName(attribute);
|
|
1908
1889
|
if (!element.hasAttribute(name)) {
|
|
1909
1890
|
addValidationIssue(errors, {
|
|
1910
|
-
store: element
|
|
1891
|
+
store: getStore(element),
|
|
1911
1892
|
title: `Missing required attribute "${name}"`,
|
|
1912
1893
|
level: "warning",
|
|
1913
1894
|
kind: "missing",
|
|
@@ -1955,7 +1936,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
1955
1936
|
const errors = [];
|
|
1956
1937
|
if (element.tagName.toUpperCase() !== schema.tag) {
|
|
1957
1938
|
addValidationIssue(errors, {
|
|
1958
|
-
store: element
|
|
1939
|
+
store: getStore(element),
|
|
1959
1940
|
title: `Expected ${schema.tag}, got ${element.tagName}`,
|
|
1960
1941
|
level: "warning",
|
|
1961
1942
|
kind: "forbidden",
|
|
@@ -1964,7 +1945,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
1964
1945
|
}
|
|
1965
1946
|
if (schema.code === "insertion" && !element.classList.contains("ins")) {
|
|
1966
1947
|
addValidationIssue(errors, {
|
|
1967
|
-
store: element
|
|
1948
|
+
store: getStore(element),
|
|
1968
1949
|
title: 'Missing class "ins" for insertion element',
|
|
1969
1950
|
level: "warning",
|
|
1970
1951
|
kind: "missing",
|
|
@@ -1973,7 +1954,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
1973
1954
|
}
|
|
1974
1955
|
if (schema.code === "deletion" && !element.classList.contains("del")) {
|
|
1975
1956
|
addValidationIssue(errors, {
|
|
1976
|
-
store: element
|
|
1957
|
+
store: getStore(element),
|
|
1977
1958
|
title: 'Missing class "del" for deletion element',
|
|
1978
1959
|
level: "warning",
|
|
1979
1960
|
kind: "missing",
|
|
@@ -1982,7 +1963,7 @@ var validateElementAgainstSchema = (element, schema) => {
|
|
|
1982
1963
|
}
|
|
1983
1964
|
if (schema.code === "commentQuerySection" && !element.classList.contains("cmtQurySection")) {
|
|
1984
1965
|
addValidationIssue(errors, {
|
|
1985
|
-
store: element
|
|
1966
|
+
store: getStore(element),
|
|
1986
1967
|
title: 'Missing class "cmtQurySection" for comment query section',
|
|
1987
1968
|
level: "warning",
|
|
1988
1969
|
kind: "missing",
|
|
@@ -2006,7 +1987,7 @@ var validateChildren = (element, schema) => {
|
|
|
2006
1987
|
);
|
|
2007
1988
|
if (!allowedChild) {
|
|
2008
1989
|
addValidationIssue(errors, {
|
|
2009
|
-
store: child
|
|
1990
|
+
store: getStore(child),
|
|
2010
1991
|
title: `Forbidden child element ${child.tagName}`,
|
|
2011
1992
|
level: "warning",
|
|
2012
1993
|
kind: "forbidden",
|
|
@@ -2017,7 +1998,7 @@ var validateChildren = (element, schema) => {
|
|
|
2017
1998
|
const childSchema = findSchemaByElement(child);
|
|
2018
1999
|
if (!childSchema) {
|
|
2019
2000
|
addValidationIssue(errors, {
|
|
2020
|
-
store: child
|
|
2001
|
+
store: getStore(child),
|
|
2021
2002
|
title: `No schema found for child element ${child.tagName}`,
|
|
2022
2003
|
level: "warning",
|
|
2023
2004
|
kind: "missing",
|
|
@@ -2036,7 +2017,7 @@ var validateChildren = (element, schema) => {
|
|
|
2036
2017
|
);
|
|
2037
2018
|
if (!hasChild) {
|
|
2038
2019
|
addValidationIssue(errors, {
|
|
2039
|
-
store: element
|
|
2020
|
+
store: getStore(element),
|
|
2040
2021
|
title: `Missing required child element ${allowedChild.tagName}`,
|
|
2041
2022
|
level: "warning",
|
|
2042
2023
|
kind: "missing",
|
|
@@ -2046,7 +2027,7 @@ var validateChildren = (element, schema) => {
|
|
|
2046
2027
|
}
|
|
2047
2028
|
if (schema.allowedChildTagNames.size === 0 && childElements.length > 0) {
|
|
2048
2029
|
addValidationIssue(errors, {
|
|
2049
|
-
store: element
|
|
2030
|
+
store: getStore(element),
|
|
2050
2031
|
title: "Leaf element cannot contain child elements",
|
|
2051
2032
|
level: "warning",
|
|
2052
2033
|
kind: "forbidden",
|
|
@@ -2070,7 +2051,7 @@ var getLinkableRoles = () => {
|
|
|
2070
2051
|
}
|
|
2071
2052
|
return [];
|
|
2072
2053
|
};
|
|
2073
|
-
var validateElement = (element, root,
|
|
2054
|
+
var validateElement = (element, root, elementsLinkedTo) => {
|
|
2074
2055
|
if (isIgnoredElement(element)) {
|
|
2075
2056
|
return [];
|
|
2076
2057
|
}
|
|
@@ -2081,23 +2062,23 @@ var validateElement = (element, root, referenceChapterLinkends) => {
|
|
|
2081
2062
|
const role = element.getAttribute("role") || "";
|
|
2082
2063
|
const linkableRoles = getLinkableRoles();
|
|
2083
2064
|
if (schema.tag === LINK_SCHEMA.tag && linkableRoles.includes(role) || schema.tag === FOOTNOTE_LINK_SCHEMA.tag) {
|
|
2084
|
-
errors.push(...validateLinkend(element,
|
|
2065
|
+
errors.push(...validateLinkend(element, elementsLinkedTo));
|
|
2085
2066
|
}
|
|
2086
2067
|
if (schema.tag === FOOTNOTE_SCHEMA.tag) {
|
|
2087
2068
|
errors.push(...validateFootnoteCue(element, root));
|
|
2088
2069
|
}
|
|
2089
2070
|
}
|
|
2090
2071
|
for (const child of Array.from(element.children)) {
|
|
2091
|
-
errors.push(...validateElement(child, root,
|
|
2072
|
+
errors.push(...validateElement(child, root, elementsLinkedTo));
|
|
2092
2073
|
}
|
|
2093
2074
|
return errors;
|
|
2094
2075
|
};
|
|
2095
|
-
var validateXml = (xml,
|
|
2076
|
+
var validateXml = (xml, elementsLinkedTo) => {
|
|
2096
2077
|
const errors = [];
|
|
2097
2078
|
errors.push(...validateConsecutiveFootnotes(xml));
|
|
2098
2079
|
errors.push(...validateConsecutiveFootnoteCues(xml));
|
|
2099
2080
|
for (const child of Array.from(xml.children)) {
|
|
2100
|
-
errors.push(...validateElement(child, xml,
|
|
2081
|
+
errors.push(...validateElement(child, xml, elementsLinkedTo));
|
|
2101
2082
|
}
|
|
2102
2083
|
return errors;
|
|
2103
2084
|
};
|
|
@@ -2300,6 +2281,5 @@ export {
|
|
|
2300
2281
|
validateFootnoteCue,
|
|
2301
2282
|
validateFootnotes,
|
|
2302
2283
|
validateLinkend,
|
|
2303
|
-
validateLinkends,
|
|
2304
2284
|
validateXml
|
|
2305
2285
|
};
|